From e549aaf4139f96aecee5db6fa1fadff683ffe98a Mon Sep 17 00:00:00 2001 From: Luxferre Date: Sat, 24 Oct 2026 18:59:48 +0300 Subject: [PATCH] Add modem/networks DWM plugins, Dual-SIM & PIN/PUK support, built-in dmenu views, and game UX fixes --- AGENTS.md | 13 +- MANUAL.md | 40 +- README.md | 17 +- .../rootfs/etc/conf.d/msm-modem-uim-selection | 9 +- overlay/rootfs/etc/doas.d/50-sxmo.conf | 6 + overlay/rootfs/usr/bin/dwm | Bin 56264 -> 56264 bytes overlay/rootfs/usr/bin/dwm-plugin | Bin 13540 -> 13540 bytes overlay/rootfs/usr/bin/snake | Bin 13716 -> 13720 bytes overlay/rootfs/usr/bin/sxmo_bluetoothmenu.sh | 7 + overlay/rootfs/usr/bin/sxmo_modem.sh | 4 +- overlay/rootfs/usr/bin/sxmo_modeminfo.sh | 7 + overlay/rootfs/usr/bin/sxmo_modemlog.sh | 7 + overlay/rootfs/usr/bin/sxmo_networks.sh | 7 + overlay/rootfs/usr/bin/sxmo_unlocksim.sh | 27 + overlay/rootfs/usr/bin/tetris | Bin 17812 -> 17816 bytes overlay/rootfs/usr/bin/xbluetooth | 1 + overlay/rootfs/usr/bin/xmodem | 1 + overlay/rootfs/usr/bin/xnetworks | 1 + overlay/rootfs/usr/lib/dwm/plugins/calllog.so | Bin 83348 -> 83348 bytes .../rootfs/usr/lib/dwm/plugins/callscreen.so | Bin 95620 -> 95620 bytes overlay/rootfs/usr/lib/dwm/plugins/camera.so | Bin 79236 -> 79236 bytes .../rootfs/usr/lib/dwm/plugins/contacts.so | Bin 99828 -> 99828 bytes overlay/rootfs/usr/lib/dwm/plugins/dialer.so | Bin 79236 -> 79236 bytes overlay/rootfs/usr/lib/dwm/plugins/dmenu.so | Bin 58608 -> 66800 bytes overlay/rootfs/usr/lib/dwm/plugins/files.so | Bin 95620 -> 95620 bytes overlay/rootfs/usr/lib/dwm/plugins/modem.so | Bin 0 -> 112036 bytes .../rootfs/usr/lib/dwm/plugins/networks.so | Bin 0 -> 107948 bytes overlay/rootfs/usr/lib/dwm/plugins/sms.so | Bin 120196 -> 120196 bytes overlay/rootfs/usr/lib/dwm/plugins/themes.so | Bin 103852 -> 103860 bytes overlay/rootfs/usr/lib/dwm/plugins/xdrawer.so | Bin 62852 -> 62868 bytes .../usr/libexec/msm-modem-uim-selection | 415 +++++ .../sxmo/default_hooks/sxmo_hook_games.sh | 9 + .../sxmo/default_hooks/sxmo_hook_modem.sh | 57 +- prebuilt/games/usr/bin/snake | Bin 13716 -> 13720 bytes prebuilt/games/usr/bin/tetris | Bin 17812 -> 17816 bytes prebuilt/sxmo-x11/usr/bin/dwm | Bin 56264 -> 56264 bytes prebuilt/sxmo-x11/usr/bin/dwm-plugin | Bin 13540 -> 13540 bytes prebuilt/sxmo-x11/usr/bin/xbluetooth | 1 + prebuilt/sxmo-x11/usr/bin/xmodem | 1 + prebuilt/sxmo-x11/usr/bin/xnetworks | 1 + .../sxmo-x11/usr/lib/dwm/plugins/calllog.so | Bin 83348 -> 83348 bytes .../usr/lib/dwm/plugins/callscreen.so | Bin 95620 -> 95620 bytes .../sxmo-x11/usr/lib/dwm/plugins/camera.so | Bin 79236 -> 79236 bytes .../sxmo-x11/usr/lib/dwm/plugins/contacts.so | Bin 99828 -> 99828 bytes .../sxmo-x11/usr/lib/dwm/plugins/dialer.so | Bin 79236 -> 79236 bytes .../sxmo-x11/usr/lib/dwm/plugins/dmenu.so | Bin 58608 -> 66800 bytes .../sxmo-x11/usr/lib/dwm/plugins/files.so | Bin 95620 -> 95620 bytes .../sxmo-x11/usr/lib/dwm/plugins/modem.so | Bin 0 -> 112036 bytes .../sxmo-x11/usr/lib/dwm/plugins/networks.so | Bin 0 -> 107948 bytes prebuilt/sxmo-x11/usr/lib/dwm/plugins/sms.so | Bin 120196 -> 120196 bytes .../sxmo-x11/usr/lib/dwm/plugins/themes.so | Bin 103852 -> 103860 bytes .../sxmo-x11/usr/lib/dwm/plugins/xdrawer.so | Bin 62852 -> 62868 bytes scripts/apply-bananarchy-overlay.sh | 3 + scripts/build-sxmo-x11.sh | 15 +- src/dwm-plugins/dwm_plugin_runner.c | 20 + src/dwm-plugins/modem_plugin.cpp | 1638 +++++++++++++++++ src/dwm-plugins/networks_plugin.cpp | 1503 +++++++++++++++ src/dwm-plugins/phone_data.h | 35 + src/games/snake.cpp | 372 ++-- src/games/tetris.cpp | 526 ++++-- src/sxmo-dmenu/dmenu.c | 379 +++- src/sxmo-dwm/dwm.c | 2 +- src/xdrawer/xdrawer.cpp | 83 +- 63 files changed, 4781 insertions(+), 426 deletions(-) create mode 100755 overlay/rootfs/usr/bin/sxmo_bluetoothmenu.sh create mode 100755 overlay/rootfs/usr/bin/sxmo_modeminfo.sh create mode 100755 overlay/rootfs/usr/bin/sxmo_modemlog.sh create mode 100755 overlay/rootfs/usr/bin/sxmo_networks.sh create mode 100755 overlay/rootfs/usr/bin/sxmo_unlocksim.sh create mode 120000 overlay/rootfs/usr/bin/xbluetooth create mode 120000 overlay/rootfs/usr/bin/xmodem create mode 120000 overlay/rootfs/usr/bin/xnetworks create mode 100755 overlay/rootfs/usr/lib/dwm/plugins/modem.so create mode 100755 overlay/rootfs/usr/lib/dwm/plugins/networks.so create mode 100755 overlay/rootfs/usr/libexec/msm-modem-uim-selection mode change 100644 => 100755 overlay/rootfs/usr/share/sxmo/default_hooks/sxmo_hook_games.sh create mode 120000 prebuilt/sxmo-x11/usr/bin/xbluetooth create mode 120000 prebuilt/sxmo-x11/usr/bin/xmodem create mode 120000 prebuilt/sxmo-x11/usr/bin/xnetworks create mode 100755 prebuilt/sxmo-x11/usr/lib/dwm/plugins/modem.so create mode 100755 prebuilt/sxmo-x11/usr/lib/dwm/plugins/networks.so create mode 100644 src/dwm-plugins/modem_plugin.cpp create mode 100644 src/dwm-plugins/networks_plugin.cpp diff --git a/AGENTS.md b/AGENTS.md index e76d824..2d653dd 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -7,23 +7,26 @@ It uses a pure **X11 (`Xlibre` + `sxmo-de-dwm`)** stack (no Wayland) optimized f ## 2. Repository Layout - `src/sxmo-dwm/`: Patched `dwm` window manager (`240x320` vertical `bstack` layout, 24px Pango status bar, desktop `"Menu"`/`"Names"` softkey bar, C-level `SW_LID` slider and locked-key wake handling, live `.Xresources` reload, and `.so` plugin loader via `dwm_plugin.h`). -- `src/sxmo-dmenu/`: Zero-lag resident DWM menu plugin (`dmenu.so`) and `/tmp/dwm_plugin_dmenu.sock` client (`dmenu` / `xdmenu`), featuring built-in Sxmo menus (`sys`, `applications`, `scripts`, `modem`, `config`, `power`, `st`, `nano`, `sthotkeys`) and `fcitx5-t9` XIM input. +- `src/sxmo-dmenu/`: Zero-lag resident DWM menu plugin (`dmenu.so`) and `/tmp/dwm_plugin_dmenu.sock` client (`dmenu` / `xdmenu`), featuring built-in Sxmo menus (`sys`, `applications`, `scripts`, `modem`, `config`, `power`, `audio`, `notifications`, `wm`, `timezone`, `games`, `st`, `nano`, `sthotkeys`) and `fcitx5-t9` XIM input. - `src/dwm-plugins/`: Preloaded C++20 `240x320` DWM plugins and shared headers: - `theme.h`: Unified `.Xresources` / `~/.xthemes/*.xth` parser, proportional font sizing (`theme.baseFontSize`), automatic shade derivation, and live Xft/Pango theme reloading (`PluginTheme`). - `phone_data.h`: Shared X11 geometry (`240x296` below the 24px bar), FIFO IPC (`/tmp/dwm_plugin_.fifo`), softkey chord detection, Sxmo TSV contact/call/SMS parsers, and `libjpeg`/`libpng` helpers. - - `dialer_plugin.cpp` (`dialer.so` / `xdialer`), `calllog_plugin.cpp` (`calllog.so` / `xcalllog`), `callscreen_plugin.cpp` (`callscreen.so` / `xcallscreen`), `contacts_plugin.cpp` (`contacts.so` / `xcontacts`), `sms_plugin.cpp` (`sms.so` / `xsms`), `files_plugin.cpp` (`files.so` / `xfiles`), `camera_plugin.cpp` (`camera.so` / `xcamera`), `themes_plugin.cpp` (`themes.so` / `xthemes`). - - `dwm_plugin_runner.c`: Lightweight `/usr/bin/dwm-plugin` launcher symlinked by `xdrawer`, `xdialer`, `xcalllog`, `xcallscreen`, `xcontacts`, `xsms`, `xfiles`, `xcamera`, `xthemes`, `dmenu`, and `xdmenu`. + - `dialer_plugin.cpp` (`dialer.so` / `xdialer`), `calllog_plugin.cpp` (`calllog.so` / `xcalllog`), `callscreen_plugin.cpp` (`callscreen.so` / `xcallscreen`), `contacts_plugin.cpp` (`contacts.so` / `xcontacts`), `sms_plugin.cpp` (`sms.so` / `xsms`), `files_plugin.cpp` (`files.so` / `xfiles`), `camera_plugin.cpp` (`camera.so` / `xcamera`), `themes_plugin.cpp` (`themes.so` / `xthemes`), `modem_plugin.cpp` (`modem.so` / `xmodem`), `networks_plugin.cpp` (`networks.so` / `xnetworks` / `xbluetooth`). + - `dwm_plugin_runner.c`: Lightweight `/usr/bin/dwm-plugin` launcher symlinked by `xdrawer`, `xdialer`, `xcalllog`, `xcallscreen`, `xcontacts`, `xsms`, `xfiles`, `xcamera`, `xthemes`, `xmodem`, `xnetworks`, `xbluetooth`, `dmenu`, and `xdmenu`. - `src/xdrawer/`: Global phone controls overlay (`xdrawer.so` / `xdrawer`), toggled by pressing both softkeys simultaneously. - `src/sxmo-st/`: Patched `st` terminal with HarfBuzz OpenType ligatures (`Fira Code`), `XIM` (`fcitx5-t9`), and live `SIGUSR1` `.Xresources` reload. - `src/fcitx5-t9/`: 6-mode keypad input method (`abc`, `Abc`, `ABC`, `Sym`, `Ctl`, `123` + `*` long-press `Ctrl+` latch) with fixed bottom preedit bar (`Y=290, H=30`). +- `src/games/`: Standalone keypad-driven `240x320` X11 games (`snake.cpp` -> `/usr/bin/snake`, `tetris.cpp` -> `/usr/bin/tetris`) with built-in 5x7 bitmap fonts, `timerfd`-driven pacing, and offscreen `Pixmap` double buffering. - `src/msm8905-cam/` & `src/leds-msm8905-torch/`: Out-of-tree Linux `6.12.1-msm8916` kernel modules for the rear `GC2395` camera (`/dev/video0`) and `SY7807` torch LED (`white:torch`) / WCD codec init / PM8909 `PON` shutdown. - `overlay/rootfs/`: System configuration overlay applied over the target rootfs (kept in sync with `prebuilt/`). -- `prebuilt/`: Cross-compiled `armv7` binaries and kernel modules (`sxmo-x11`, `fcitx5-t9`, `xlibre`, `kernel-6.12.1-msm8916`, `bantam`). +- `prebuilt/`: Cross-compiled `armv7` binaries and kernel modules (`sxmo-x11`, `fcitx5-t9`, `xlibre`, `kernel-6.12.1-msm8916`, `bantam`, `games`). - `devices/` & `patches/`: Device trees (`.dts`/`.dtb`), MIPI-DBI panel init sequences, and upstream patch sets. ## 3. Build & Image Generation Commands All cross-compilation scripts run inside rootless Docker (`alpine:3.24` `armv7` sysroot) and automatically update both `prebuilt/` and `overlay/rootfs/`: -- `./scripts/build-sxmo-x11.sh` — Builds `st`, `dmenu.so`, `dwm`, `dwm-plugin`, and all C++ `.so` plugins (`xdrawer`, `dialer`, `calllog`, `callscreen`, `contacts`, `sms`, `files`, `camera`, `themes`). +- `./scripts/build-sxmo-x11.sh` — Builds `st`, `dmenu.so`, `dwm`, `dwm-plugin`, and all C++ `.so` plugins (`xdrawer`, `dialer`, `calllog`, `callscreen`, `contacts`, `sms`, `files`, `camera`, `themes`, `modem`, `networks`). +- `./scripts/build-dmenu.sh` — Rebuilds only `dmenu.so`, `stest`, `dmenu_path`, and `dmenu_run`. +- `./scripts/build-games.sh` — Builds standalone X11 games in `src/games/` (`snake`, `tetris`). - `./scripts/build-fcitx5-t9.sh` — Builds `src/fcitx5-t9` (`libt9.so` / `t9.so`). - `./scripts/build-kernel-audio.sh` — Builds `6.12.1-msm8916` QDSP6 audio, torch LED, camera `.ko` modules, and device `.dtb` files. - `./scripts/build-xlibre.sh` — Builds Xlibre `Xorg` and `libinput`/`fbdev` DDX drivers. diff --git a/MANUAL.md b/MANUAL.md index 8221188..0d887d0 100644 --- a/MANUAL.md +++ b/MANUAL.md @@ -29,7 +29,7 @@ This manual covers flashing, operating, and customizing **Bananarchy Linux** (Sx - **Patched `sxmo-st` (`st`) with HarfBuzz ligatures & XIM**: patched with `libharfbuzz` (`hb.c`/`hb.h`) shaping (`liga`, `calt`, `clig`, `dlig`) so multi-character programming operators (`->`, `=>`, `!=`, `<=`, `>=`, `===`, `::`, `//`, `/*`) render as continuous ligatures at `pixelsize=18`, alongside full `XIM` (`fcitx5-t9`) input support. - **Patched `sxmo-dmenu` plugin (`dmenu.so` / `dmenu` / `xdmenu`) (`< 2 ms` popup/close)**: preloaded resident DWM plugin rendering a full-screen `240x296` 10-line vertical menu (positioned flush at `Y = 24..320` right below the 24px `dwm` bar, with a `26px` search bar and ten `27px` item rows) with a `#383838` top search bar, `#005577` prompt badge, `#1c1c1c` item list, `XIM` (`XSetLocaleModifiers("")`, `XSetICFocus`, `Xutf8LookupString`) for live `fcitx5-t9` search filtering and `#` mode switching, C-level focus preservation (`prevfocuswin`), built-in `< 0.5 ms` in-place Sxmo menu transitions (`Sys`, `Apps`, `Scripts`, `Modem`, `Config`, `Power`, `St`, `Nano`), and a `/tmp/dwm_plugin_dmenu.sock` IPC server for all `/usr/bin/dmenu` and `sxmo_dmenu.sh` calls. - **Patched `sxmo-dwm` (`dwm`) (`< 2 ms` display wake/unlock & native plugin system)**: configured for `240x320` (`bh = 24`, `#323232` top bar, `#005577` active tag/border, vertical `bstack` layout default, overflow-protected Pango status bar rendering keeping the right-aligned clock always visible, and a transparent-backgrounded bottom desktop softkey bar displaying `"Menu"` and `"Names"` over the wallpaper). Directly polls `/dev/input/by-path/platform-gpio-keys-event` (`SW_LID`) and intercepts locked-state wake keys (`XF86PowerOff`, `XF86PickupPhone`, `XF86KbdLcdMenu1`, `XF86KbdLcdMenu2`) in C to toggle `/sys/class/backlight/backlight/brightness` and `/sys/class/leds/white:kbd_backlight/brightness` in `< 2 ms` before running Sxmo state hooks asynchronously. - - **Preloaded DWM plugins (`src/sxmo-dmenu/`, `src/dwm-plugins/` & `src/xdrawer/`, `< 2 ms` FIFO/socket wakeup & unified `.Xresources` theming)**: `dwm` dynamically loads `.so` plugins from `/usr/lib/dwm/plugins/` and `~/.local/lib/dwm/plugins/` (`dmenu.so`, `xdrawer.so`, `dialer.so`, `calllog.so`, `callscreen.so`, `contacts.so`, `sms.so`, `files.so`, `camera.so`, `themes.so`) and preloads them as resident background daemons (`dwm-plugin --preload`) at startup. Each daemon keeps its X11 window, offscreen `Pixmap`, Xft/Pango layouts, and `stat()`-cached Sxmo TSV state initialized in memory while sleeping at 0% CPU on `/tmp/dwm_plugin_.fifo`. Every UI element across `dwm`, `dmenu`, `st`, and all C++ plugins obeys a single unified color and font scheme configured via `~/.Xresources` (`theme.*`, `dwm.*`, `dmenu.*`, `st.*`), with proportional font sizing derived from `theme.baseFontSize` (`12px` / `15px` / `16px` / `18px` at default `15`) and instant live reload via `xthemes`. + - **Preloaded DWM plugins (`src/sxmo-dmenu/`, `src/dwm-plugins/` & `src/xdrawer/`, `< 2 ms` FIFO/socket wakeup & unified `.Xresources` theming)**: `dwm` dynamically loads `.so` plugins from `/usr/lib/dwm/plugins/` and `~/.local/lib/dwm/plugins/` (`dmenu.so`, `xdrawer.so`, `dialer.so`, `calllog.so`, `callscreen.so`, `contacts.so`, `sms.so`, `files.so`, `camera.so`, `themes.so`, `modem.so`, `networks.so`) and preloads them as resident background daemons (`dwm-plugin --preload`) at startup. Each daemon keeps its X11 window, offscreen `Pixmap`, Xft/Pango layouts, and `stat()`-cached Sxmo TSV state initialized in memory while sleeping at 0% CPU on `/tmp/dwm_plugin_.fifo`. Every UI element across `dwm`, `dmenu`, `st`, and all C++ plugins obeys a single unified color and font scheme configured via `~/.Xresources` (`theme.*`, `dwm.*`, `dmenu.*`, `st.*`), with proportional font sizing derived from `theme.baseFontSize` (`12px` / `15px` / `16px` / `18px` at default `15`) and instant live reload via `xthemes`. 2. **Multi-mode `fcitx5-t9` keypad engine (`src/fcitx5-t9/`)**: - Supports 6 input modes cycled with `#` (`XF86NumericPound`): `abc`, `Abc`, `ABC`, `Sym`, `Ctl`, and `123`, updating the live top-bar status indicator (`[abc]`, `[Abc]`, `[ABC]`, `[Sym]`, `[Ctl]`, `[123]`) in real time. - Locks the candidate popup bar to the bottom of the screen (`X = 1, Y = 290, W = 238, H = 30`) with fixed-width 28-character monospace formatting (`Fira Code 9.5`), so neither the popup window nor individual letters ever jump when cycling through candidates. @@ -141,17 +141,17 @@ You can switch between **vertical stack (`TTT`, `bstack`)**, **horizontal tile ( - `Mod4+1`..`4`: switch to workspace tag `1`..`4` - `Mod4+Shift+q`: close focused window -#### 3.1.2 Preloaded DWM plugins (`DMenu`, `XDrawer`, `Dialer`, `Call Log`, `Call Screen`, `Contacts`, `SMS`, `Files`, `Camera`, `Themes`) -All ten core phone overlays are compiled as shared-object plugins (`/usr/lib/dwm/plugins/*.so`), preloaded at `dwm` startup (`dwm-plugin --preload` with an exclusive `/tmp/dwm_plugin_.lock` single-instance guard), and awakened over `/tmp/dwm_plugin_.fifo` in `< 2 ms`: +#### 3.1.2 Preloaded DWM plugins (`DMenu`, `XDrawer`, `Dialer`, `Call Log`, `Call Screen`, `Contacts`, `SMS`, `Files`, `Camera`, `Themes`, `Modem`, `Networks`) +All twelve core phone overlays are compiled as shared-object plugins (`/usr/lib/dwm/plugins/*.so`), preloaded at `dwm` startup (`dwm-plugin --preload` with an exclusive `/tmp/dwm_plugin_.lock` single-instance guard), and awakened over `/tmp/dwm_plugin_.fifo` in `< 2 ms`: 1. **`DMenu` (`dmenu.so` / `dmenu` / `xdmenu`) — Zero-Lag System & Context Menus**: - **Open / Close**: Press **Left softkey (`Menu`)** for the **System menu** (`sys`) or **Right softkey (`Back`)** inside an application for its **Context menu** (`ctx`); press the same softkey or `Escape` to close. - - **Built-in Native Menus & `< 0.5 ms` In-Place Transitions**: Renders `sys`, `ctx`, `applications` (including **Nano**, **Bantam**, **Files**, **Camera**, **Dialer**, **Contacts**), `scripts`, `modem`, `config`, `power` (with Polkit + `elogind` multi-session **Reboot** and **Poweroff** via `sxmo_power.sh`), `st`, `nano`, `sthotkeys`, and confirmation prompts directly inside the resident `240x296` plugin window without spawning shell scripts or new X11 connections. Submenu transitions (`@menu:...`) and hardware toggles (`@toggle:flashlight`, `@toggle:brightness`, `@toggle:autosuspend`, `@toggle:autocallscreenoff`, `@toggle:bluetooth`) update in place in `< 0.5 ms`. + - **Built-in Native Menus & `< 0.5 ms` In-Place Transitions**: Renders `sys`, `ctx`, `applications` (including **Nano**, **Bantam**, **Files**, **Camera**, **Dialer**, **Contacts**), `scripts`, `modem`, `config`, `power` (with Polkit + `elogind` multi-session **Reboot** and **Poweroff** via `sxmo_power.sh`), `audio`, `notifications`, `wm`, `timezone`, `games`, `st`, `nano`, `sthotkeys`, and confirmation prompts directly inside the resident `240x296` plugin window without spawning shell scripts or new X11 connections. Submenu transitions (`@menu:...`) and hardware toggles (`@toggle:flashlight`, `@toggle:brightness`, `@toggle:autosuspend`, `@toggle:autocallscreenoff`, `@toggle:bluetooth`, `@toggle:dnd`) update in place in `< 0.5 ms`. - **Client Socket Mode (`/tmp/dwm_plugin_dmenu.sock`)**: Any script piping items into `/usr/bin/dmenu` or `sxmo_dmenu.sh` streams its item list over the Unix domain socket to the resident `dmenu.so` daemon and receives the user's selection instantaneously, while `/tmp/dwm_plugin_dmenu.active` provides zero-overhead `sxmo_dmenu.sh isopen` checks. 2. **`XDrawer` (`xdrawer.so` / `xdrawer`) — Global Phone Controls**: - **Open / Close**: Press **both softkeys simultaneously** (`KEY_MENU` + `KEY_BACK`) from anywhere, or select `XDrawer` from the Sxmo menu. - - **Controls**: `Up`/`Down` selects a row (**Speaker Volume**, **Earpiece Volume**, **Flashlight**, **Sound**, **Microphone**, **Screen Brightness**, **Keypad Backlight**); `Left`/`Right` adjusts sliders or toggles; `Return` flips toggles; `1`–`7` jumps directly to row `1`–`7`; `Escape` or both softkeys closes the drawer. + - **Controls**: `Up`/`Down` selects a row (**Speaker Volume**, **Earpiece Volume**, **Ringer Mode** [`Ring+Vib` / `Vibrate` / `Silent` / `DND`], **Flashlight**, **Sound**, **Microphone**, **Screen Brightness**, **Keypad Backlight**); `Left`/`Right` adjusts sliders or cycles modes/toggles; `Return` flips toggles; `1`–`8` jumps directly to row `1`–`8`; `Escape` or both softkeys closes the drawer. 3. **`Dialer` (`dialer.so` / `xdialer`) — Keypad Dialer with Contact Integration**: - **Open**: On the empty desktop, press any **`0`–`9`, `*`, or `#` key** (which opens the dialer and immediately inserts that character), or launch **Dialer** from the Sxmo menu or Call Log. @@ -201,6 +201,36 @@ All ten core phone overlays are compiled as shared-object plugins (`/usr/lib/dwm - **Controls & Live Switching**: `Up`/`Down` browses installed themes with live color swatches and typography details; **Center `OK` (`Return`)**, **Call (green)**, or keys **`1`–`9`** immediately writes `~/.Xresources`, runs `xrdb -load ~/.Xresources`, and broadcasts `RELOAD_THEME` to `dwm`, `dmenu`, `st`, and all resident DWM plugins for zero-restart live theme switching. - **Built-in Theme Customizer & Options (`Left softkey` or `*`/`#`)**: Supports **Customize Theme Colors/Font** (`*` shortcut — adjust `Font Face`, `Base Size`, `Main BG`, `Bar BG`, `Header BG`, `Selected BG`, `Selected FG`, `Accent`, `Font Color`, and `Muted Color` with `Left`/`Right` presets or press `Return` to enter any 6-digit `#RRGGBB` hex code via the keypad), **Save Current as New Theme** (`#` shortcut), **Duplicate Theme**, **Edit `.xth` in Nano**, **Reset Default Theme**, and **Delete Theme**, plus CLI `xthemes --apply ` and `xthemes --export-default`. +11. **`Modem, Dual-SIM & PIN/PUK Manager` (`modem.so` / `xmodem`) — Dual-SIM Slot Provisioning, PIN/PUK Entry & Radio Controls**: + - **Open**: Select **Modem** from the Sxmo **System menu** (`Left softkey`), or run `xmodem` (`xmodem unlock`, `xmodem info`, `xmodem log`, `xmodem ussd`). Also opens automatically when the active SIM card is PIN- or PUK-locked (`sxmo_hook_modem.sh`). + - **Tabs (`Left`/`Right` or `1` / `2` / `3`)**: + - **`1:SIMs` (Dual-SIM & PIN/PUK Management)**: Inspects both physical Qualcomm UIM card slots (`qmicli -pd qrtr://0 --uim-get-card-status` + `/usr/libexec/msm-modem-uim-selection status`), displaying each slot's presence (`PRESENT` / `EMPTY`), active `Primary GW` provisioning badge (`[ACTIVE]`), lock state (`READY`, `PIN-LOCK`, `PUK-LOCK`), remaining PIN1/PUK1 retries, operator, and ICCID. Selecting a slot (`Return` or `Left softkey`) opens the **SIM Slot Actions** menu: + - **Activate SIM Slot 1 / 2**: Switches Qualcomm QMI `primary-gw-provisioning` to the chosen physical SIM slot, persists `preferred_sim_slot` in `/etc/conf.d/msm-modem-uim-selection`, and restarts `ModemManager`. + - **Unlock SIM PIN**: Masked numeric PIN dialog (`4`–`8` digits, `*` toggles show/hide digits) with live remaining retry counter. + - **Unblock SIM with PUK**: Guided 3-step wizard (`8`-digit PUK1 -> new `4`–`8` digit PIN -> confirm new PIN). + - **Enable / Disable PIN Lock**: Toggles SIM PIN verification requirement on power-up. + - **Change SIM PIN**: Guided 3-step wizard (Current PIN -> New PIN -> Confirm New PIN). + - **`2:Radio` (Modem Controls & USSD)**: Displays live signal strength (`%` and visual bar), registration state, access technology (`LTE` / `UMTS` / `GSM`), operator name, IMEI, and phone number, plus interactive rows to **Toggle Modem Monitor**, switch **Network Mode** (`4G/3G/2G`, `3G/2G`, `4G Only`, `3G Only`, `2G Only`), **Send USSD Code** (with keypad entry for `*100#`, etc., and live USSD response display), and **Restart ModemManager**. + - **`3:Log` (Modem Log)**: Color-coded history of calls, SMS events, and USSD responses from `$SXMO_LOGDIR/modemlog.tsv`. + +12. **`Networks & Bluetooth Manager` (`networks.so` / `xnetworks` / `xbluetooth`) — Wi-Fi, Cellular APN, Tethering & Bluetooth**: + - **Open**: Select **Networks** or **Bluetooth** from the Sxmo **System menu** (`Left softkey`), or run `xnetworks` / `xbluetooth`. + - **Tabs (`Left`/`Right` or `1` / `2` / `3`)**: + - **`1:Wi-Fi`**: Toggle Wi-Fi radio ON/OFF, scan (`*` or **Rescan Networks**), toggle **Wi-Fi Hotspot**, and browse saved/nearby SSIDs with signal bars, security badges (`WPA2`/`OPEN`), and `[CONNECTED]` status. Selecting an SSID opens **Connect / Switch**, **Enter Password** (multi-tap `abc`/`Abc`/`ABC`/`123`/`Sym` keypad modal with `*` password visibility toggle), **Disconnect**, or **Forget Network**. + - **`2:Cell/APN`**: Toggle **Mobile Data** (`sxmo_modemdata.sh`), view current cellular IPv4 address and bearer interface (`wwan0`), edit **APN Configuration** (`APN Name`, `Username`, `Password`, and **Save & Activate APN**), and toggle **USB Tethering**. + - **`3:Bluetooth`**: Toggle Bluetooth controller power (`doas rfkill unblock bluetooth` + `bluetoothctl power on/off`), scan for nearby devices (`*` or **Scan Nearby (`8s`)**), and manage paired/discovered devices (**Connect**, **Disconnect**, **Pair & Trust**, **Forget / Remove**). + +#### 3.1.3 Standalone Keypad Games (`Snake` & `Tetris`) +Two classic monochrome/Gameboy-styled X11 games (`src/games/snake.cpp` -> `/usr/bin/snake`, `src/games/tetris.cpp` -> `/usr/bin/tetris`) are included in the **Games** submenu (`Left softkey -> Games`): + +1. **`Snake` (`snake`)**: + - **Controls**: `2` / `Up`, `8` / `Down`, `4` / `Left`, `6` / `Right` to steer (with a 2-turn input queue and immediate mid-step turn response); `5` / `Return` / `#` / `*` / `P` to pause, resume, or start a new game after Game Over; `BackSpace` / `Right softkey` / `Escape` / `Q` to quit. + - **Gameplay**: Wrap-around playfield edges (`24x28` grid) with progressive speed scaling (`+1 px/s` per 5 food eaten) and automatic pause on focus loss. + +2. **`Tetris` (`tetris`)**: + - **Controls**: `4` / `Left` and `6` / `Right` to move horizontally; `2` / `Up` to rotate clockwise (with wall kicks); `8` / `Down` for soft drop; `0` / `5` / `Return` / `Space` for hard drop (or resume/new game when paused/game over); `#` / `*` / `P` to pause/resume; `BackSpace` / `Right softkey` / `Escape` / `Q` to quit. + - **Gameplay**: 4-shade beveled Gameboy palette, next-piece preview box, score/lines/level/best stats, progressive gravity scaling (`+1 px/s` per 10 lines cleared), and automatic pause on focus loss. + ### 3.2 Multi-mode `fcitx5-t9` keypad reference - **Short-press `#`** *(when no character is in preedit)*: cycles through the 6 input modes (`abc` -> `Abc` -> `ABC` -> `Sym` -> `Ctl` -> `123` -> `abc`), displaying a `1500ms` preedit status banner (`[Mode: abc]`, `[Mode: Abc]`, `[Mode: ABC]`, `[Mode: Sym]`, `[Mode: Ctl]`, `[Mode: 123]`). diff --git a/README.md b/README.md index 3fcc8f0..1880757 100644 --- a/README.md +++ b/README.md @@ -10,9 +10,9 @@ Bananarchy targets an ultra-lightweight **Sxmo X11 (`sxmo-de-dwm`)** environment - **Cross-compiled Xlibre (`X11Libre/xserver` 25.2.0) display server**: `modesetting` KMS + `ShadowFB` Damage partial-rectangle SPI transfers, software cursor fallback, and rootless `elogind` integration. - **Patched `sxmo-dwm` with native C/C++ plugin architecture**: `240x320` vertical `bstack` layout, 24px Pango status bar with an overflow-protected right-aligned clock, transparent-backgrounded `"Menu"` and `"Names"` desktop softkey labels, direct C `SW_LID` slider and locked-key wake handling in `< 2 ms`, and a dynamic `.so` plugin API (`dwm_plugin.h`) with preloaded resident daemons (`--preload`) and non-blocking FIFO IPC (`< 10 ms` wakeup latency). -- **Preloaded `240x320` keypad-driven DWM plugins (`dmenu`, `xdrawer`, `dialer`, `calllog`, `callscreen`, `contacts`, `sms`, `files`, `camera`, `themes`)**: - - **`DMenu` (`dmenu.so` / `dmenu` / `xdmenu`)**: zero-lag (`< 2 ms` popup/close) resident `240x320` full-screen 10-line vertical menu (`240x296` flush below the 24px top bar) with a `#383838` search bar, `#005577` prompt badge, `XIM` `fcitx5-t9` text input, in-place `< 0.5 ms` native Sxmo submenu transitions (`Sys`, `Apps`, `Scripts`, `Modem`, `Config`, `Power`, `St`, `Nano`), and a `/tmp/dwm_plugin_dmenu.sock` client interface serving all `/usr/bin/dmenu` and `sxmo_dmenu.sh` pipes instantaneously. - - **`XDrawer` (`xdrawer.so` / `xdrawer`)**: global phone controls overlay invoked from anywhere by pressing **both softkeys simultaneously**, providing instant sliders and toggles for speaker volume, earpiece volume, flashlight, sound mute, microphone mute, screen brightness, and keypad backlight. +- **Preloaded `240x320` keypad-driven DWM plugins (`dmenu`, `xdrawer`, `dialer`, `calllog`, `callscreen`, `contacts`, `sms`, `files`, `camera`, `themes`, `modem`, `networks`)**: + - **`DMenu` (`dmenu.so` / `dmenu` / `xdmenu`)**: zero-lag (`< 2 ms` popup/close) resident `240x320` full-screen 10-line vertical menu (`240x296` flush below the 24px top bar) with a `#383838` search bar, `#005577` prompt badge, `XIM` `fcitx5-t9` text input, in-place `< 0.5 ms` native Sxmo submenu transitions (`Sys`, `Apps`, `Scripts`, `Modem`, `Config`, `Power`, `Audio`, `Notifications`, `WM`, `Timezone`, `Games`, `St`, `Nano`), and a `/tmp/dwm_plugin_dmenu.sock` client interface serving all `/usr/bin/dmenu` and `sxmo_dmenu.sh` pipes instantaneously. + - **`XDrawer` (`xdrawer.so` / `xdrawer`)**: global phone controls overlay invoked from anywhere by pressing **both softkeys simultaneously**, providing instant sliders and toggles for speaker volume, earpiece volume, ringer mode (`Ring+Vib` / `Vibrate` / `Silent` / `DND`), flashlight, sound mute, microphone mute, screen brightness, and keypad backlight. - **`Dialer` (`dialer.so` / `xdialer`)**: opens automatically from the idle desktop when pressing any **`0`–`9`, `*`, or `#` key** (inserting that character immediately), with live T9/number contact filtering, hold-`0` for `+`, and single-press **Call** dialing. - **`Call Log` (`calllog.so` / `xcalllog`)**: opens automatically from the idle desktop when pressing the **Call (green)** button, with `All` / `Missed` / `In` / `Out` tabs, contact resolution, call durations, and instant redial. - **`Call Screen` (`callscreen.so` / `xcallscreen`)**: dedicated incoming, outgoing, and in-call screen integrated with Sxmo's `ModemManager` call lifecycle (`sxmo_modem.sh`, `sxmo_modemcall.sh`, `sxmo_modemdial.sh`), displaying resolved caller name and phone number, accepting/rejecting incoming calls via physical **Call (green)** and **End (red)** buttons (plus `*`/`0` ringtone silence), live `MM:SS` call timer, microphone mute/unmute (`1`/`*`), live call recording to `~/Recordings/call__.wav` (`2`/`#`), earpiece/speaker audio routing (`3`), volume control (`Left`/`Right`), and DTMF tone keypad mode (`0` / `Left softkey`). @@ -20,6 +20,8 @@ Bananarchy targets an ultra-lightweight **Sxmo X11 (`sxmo-de-dwm`)** environment - **`SMS Manager` (`sms.so` / `xsms`)**: conversation thread manager, bubble message history reader, and multi-tap keypad SMS composer/draft editor (with dynamic `Send` / `Draft` center softkey action) integrated with `$SXMO_LOGDIR//sms.txt`, `draft.txt`, `modemlog.tsv`, and `sxmo_modemsendsms.sh`. - **`File Manager` (`files.so` / `xfiles`)**: graphical directory browser with live T9/number filtering, dotfiles toggle (`*`), sort mode cycle (`#`), file operations (new folder/file, rename, copy, cut/move, paste, delete, properties, edit in `nano`, open terminal here), built-in text viewer, and built-in `libjpeg`/`libpng` image previewer. - **`Camera` (`camera.so` / `xcamera`)**: live V4L2 `/dev/video0` (`800x600` `RGB24` -> `240x180` 4:3) viewfinder with 1-second frame watchdog, auto-flash (`*`/`1`), continuous torch (`0`/`2`), digital zoom (`1x`/`2x`/`4x` via `Up`/`Down`), 3-second self-timer (`#`/`3`), direct `libjpeg` photo capture to `~/Pictures/photo-YYYYMMDD-HHMMSS.jpg`, and built-in photo gallery. + - **`Modem, Dual-SIM & PIN/PUK Manager` (`modem.so` / `xmodem`)**: 3-tab (`1:SIMs`, `2:Radio`, `3:Log`) cellular and Dual-SIM manager inspecting both physical Qualcomm UIM slots (`qmicli -pd qrtr://0 --uim-get-card-status` + `mmcli`), supporting active SIM slot switching (`primary-gw-provisioning` between Slot 1 and Slot 2 persisted in `/etc/conf.d/msm-modem-uim-selection`), masked keypad SIM PIN unlock (`4`–`8` digits), 3-step PUK unblock wizard (`8`-digit PUK + new PIN + confirm), PIN lock enable/disable and PIN change, 2G/3G/4G radio mode switching, interactive USSD session dialog (`*100#`, etc.), and color-coded modem event log viewer. + - **`Networks & Bluetooth Manager` (`networks.so` / `xnetworks` / `xbluetooth`)**: 3-tab (`1:Wi-Fi`, `2:Cell/APN`, `3:Bluetooth`) connectivity manager providing Wi-Fi radio toggle, visual signal bars, multi-tap Wi-Fi WPA/WPA2 password dialog (`*` show/hide password), Wi-Fi Hotspot and USB Tethering toggles, cellular data (`sxmo_modemdata.sh`) and inline APN editor (`Name`, `Username`, `Password`), and Bluetooth controller power, scanning, pairing, and audio/device connection management. - **`Theme Manager` (`themes.so` / `xthemes`)**: unified `.Xresources` theme browser and live customizer managing `~/.xthemes/*.xth` (where every `.xth` file is a valid `Xresources` file controlling `theme.*`, `dwm.*`, `dmenu.*`, `st.*`, and `svkbd.*` colors, font face, and `baseFontSize` with proportional derived font sizes, pre-populated with 20 themes: `Default.xth`, `BananaGold.xth`, `CatppuccinLatte.xth`, `CatppuccinMocha.xth`, `Cyberpunk.xth`, `Dracula.xth`, `EverforestDark.xth`, `GitHubDark.xth`, `GruvboxDark.xth`, `GruvboxLight.xth`, `Kanagawa.xth`, `LinuxConsole.xth`, `MatrixGreen.xth`, `MonokaiPro.xth`, `NordFrost.xth`, `OneDark.xth`, `RosePine.xth`, `SolarizedDark.xth`, `SolarizedLight.xth`, and `TokyoNight.xth`). Applying or editing a theme reloads `dwm`, `dmenu`, `st`, and all resident DWM plugins live without restarting X11. - **Patched `sxmo-st` terminal (`pixelsize=18`)**: **HarfBuzz (`libharfbuzz`) OpenType ligature shaping** (`liga`, `calt`, `clig`, `dlig`) and `XIM` support. - **Typography**: non-Nerd **`Fira Code` (`font-fira-code`) with ligatures** as the primary system and terminal font (with `DejaVu SansM Nerd Font` used strictly as an icon fallback). @@ -28,6 +30,7 @@ Bananarchy targets an ultra-lightweight **Sxmo X11 (`sxmo-de-dwm`)** environment - **Full Qualcomm QDSP6/Q6Voice audio & modem routing**: loudspeaker, earpiece speaker, and internal/headset microphones with PM8909 WCD analog codec 2.8V micbias, +6 dB EAR PA gain, and GSM/WCDMA/LTE voice routing (`ModemManager` + `q6voiced`). - **Rear 2MP camera support**: `msm8905-cam` V4L2 driver for GalaxyCore `GC2395` + MSM8909 `CAMSS` on `/dev/video0`, native `xcamera` DWM plugin, and the `bananarchy-photo` CLI utility. - **Pre-integrated Bantam AI agent**: cross-compiled from `https://code.luxferre.top/luxferre/bantam-cpp` and integrated into the Sxmo **Apps** menu (`Applications -> Bantam`, launching in an `st` terminal with `$HOME` as its default working directory). +- **Built-in keypad X11 games (`Snake` & `Tetris`)**: standalone zero-dependency X11 games (`src/games/snake.cpp`, `src/games/tetris.cpp`) integrated into the Sxmo **Games** menu (`System Menu -> Games`), featuring Nokia green / Gameboy beveled aesthetics, batched `XFillRectangles` rendering, and `timerfd`-driven pacing. - **Complete on-device development & scripting stack**: `git`, `gcc`/`g++`, `make`, GNU `coreutils`, `nano` (`$EDITOR`, pre-configured in `/etc/nanorc` with `-FEDSMAGic/max%_T2`), `ed`, `less` (`$PAGER="less -RXF"`), `rlwrap`, `frotz` (Z-machine interactive fiction interpreter), `janet` + `jpm`, `perl` + `IO::Socket::SSL`, `tcl` + `tcllib`/`tcl-tls`/`sqlite-tcl`, `sqlite`, `i2c-tools`, and `v4l-utils`. --- @@ -93,20 +96,22 @@ bananarchy/ │ └── 0001-bananarchy-multimode-t9-and-fcitx5-5.1.19.patch ├── src/ │ ├── sxmo-dwm/ # Patched sxmo-dwm (240x320 bstack, Pango bar, desktop softkey bar & plugin API) -│ ├── dwm-plugins/ # DWM plugins (dialer, calllog, callscreen, contacts, sms, files, camera, themes), theme.h & runner +│ ├── dwm-plugins/ # DWM plugins (dialer, calllog, callscreen, contacts, sms, files, camera, themes, modem, networks), theme.h & runner │ ├── xdrawer/ # XDrawer global phone controls DWM plugin (xdrawer.so / xdrawer) │ ├── sxmo-dmenu/ # Patched sxmo-dmenu zero-lag DWM plugin (dmenu.so) & client/fallback (dmenu / xdmenu) │ ├── sxmo-st/ # Patched sxmo-st terminal with HarfBuzz Fira Code ligature shaping & XIM │ ├── xf86-input-libinput/ # X11Libre xf86-input-libinput DDX driver │ ├── xf86-video-fbdev/ # X11Libre xf86-video-fbdev fallback DDX driver │ ├── fcitx5-t9/ # C++20 source of Bananarchy's 6-mode fcitx5-t9 input method +│ ├── games/ # Standalone keypad X11 games (snake.cpp, tetris.cpp) │ ├── leds-msm8905-torch/ # Kernel driver for SY7807 rear torch LED, WCD codec init & PM8909 PON shutdown │ └── msm8905-cam/ # Kernel V4L2 driver for GC2395 2MP rear camera & MSM8909 CAMSS (/dev/video0) ├── overlay/ │ └── rootfs/ # Complete Bananarchy rootfs overlay (OS branding, Sxmo X11, audio, camera, T9, .xthemes) ├── prebuilt/ │ ├── xlibre/ # Prebuilt armv7 Xlibre Xorg binary and modesetting/libinput/fbdev DDX modules -│ ├── sxmo-x11/ # Prebuilt armv7 patched dwm, dmenu.so/dmenu, 9 C++ DWM plugins, and st (HarfBuzz ligatures) +│ ├── sxmo-x11/ # Prebuilt armv7 patched dwm, dmenu.so/dmenu, 11 C++ DWM plugins, and st (HarfBuzz ligatures) +│ ├── games/ # Prebuilt armv7 standalone X11 games (snake, tetris) │ ├── kernel-6.12.1-msm8916/ # Prebuilt QDSP6/Q6Voice .ko, torch .ko, camera .ko, and 5 device DTBs │ ├── fcitx5-t9/ # Prebuilt armv7 libt9.so and fcitx5 addon/inputmethod configs │ └── bantam/ # Prebuilt armv7 bantam AI agent binary @@ -115,6 +120,8 @@ bananarchy/ ├── mipi-dbi-cmd.py # Compiles MIPI-DBI panel .txt init sequences into .bin firmware ├── build-xlibre.sh # Cross-compiles Xlibre + xf86-input-libinput + xf86-video-fbdev for armv7 Cortex-A7 ├── build-sxmo-x11.sh # Cross-compiles sxmo-st (HarfBuzz), sxmo-dmenu (dmenu.so + dmenu), sxmo-dwm & DWM plugins + ├── build-dmenu.sh # Cross-compiles sxmo-dmenu (dmenu.so + stest) standalone + ├── build-games.sh # Cross-compiles standalone X11 games (snake, tetris) for armv7 ├── build-kernel-audio.sh # Cross-compiles Linux 6.12.1-msm8916 QDSP6/torch/camera modules & DTBs ├── build-fcitx5-t9.sh # Cross-compiles src/fcitx5-t9 for armv7 ├── build-bantam.sh # Fetches master from https://code.luxferre.top/luxferre/bantam-cpp & cross-compiles for armv7 diff --git a/overlay/rootfs/etc/conf.d/msm-modem-uim-selection b/overlay/rootfs/etc/conf.d/msm-modem-uim-selection index 6d257d9..fe3d33d 100644 --- a/overlay/rootfs/etc/conf.d/msm-modem-uim-selection +++ b/overlay/rootfs/etc/conf.d/msm-modem-uim-selection @@ -1,6 +1,9 @@ # Maximum time to wait for SIM card to appear after starting the modem. -# Some SIM cards or modem firmwares might take longer to initialize. :( -# To avoid blocking boot without a SIM card for too long this is fairly short -# by default (4 seconds), but you can increase it to e.g. 30 seconds if necessary. +# Some SIM cards or modem firmwares might take longer to initialize. # Set to 0 to disable waiting entirely. sim_wait_time=4 + +# Preferred physical SIM slot (1 or 2) for Primary GW provisioning on Dual-SIM +# Qualcomm MSM8905/MSM8909 devices. Falls back automatically if the preferred +# slot has no SIM card inserted. +preferred_sim_slot=1 diff --git a/overlay/rootfs/etc/doas.d/50-sxmo.conf b/overlay/rootfs/etc/doas.d/50-sxmo.conf index 0518929..417ce70 100644 --- a/overlay/rootfs/etc/doas.d/50-sxmo.conf +++ b/overlay/rootfs/etc/doas.d/50-sxmo.conf @@ -16,10 +16,16 @@ permit nopass :wheel as root cmd rc-service args eg25-manager stop permit nopass :wheel as root cmd rc-service args eg25-manager start permit nopass :wheel as root cmd rc-service args modemmanager stop permit nopass :wheel as root cmd rc-service args modemmanager start +permit nopass :wheel as root cmd rc-service args modemmanager restart permit nopass :wheel as root cmd systemctl args start eg25-manager permit nopass :wheel as root cmd systemctl args stop eg25-manager permit nopass :wheel as root cmd systemctl args start ModemManager permit nopass :wheel as root cmd systemctl args stop ModemManager +permit nopass :wheel as root cmd systemctl args restart ModemManager +permit nopass :wheel as root cmd /usr/libexec/msm-modem-uim-selection +permit nopass :wheel as root cmd msm-modem-uim-selection +permit nopass :wheel as root cmd setup-timezone +permit nopass :wheel as root cmd /sbin/setup-timezone permit nopass :wheel as root cmd rtcwake permit nopass :wheel as root cmd tee args -a /sys/power/wake_lock permit nopass :wheel as root cmd tee args -a /sys/power/wake_unlock diff --git a/overlay/rootfs/usr/bin/dwm b/overlay/rootfs/usr/bin/dwm index 035bcbb9eee6d49d0561402bf42cf438c157d441..d5fb326be97fe5a40be2dc5e11fc851438cd58c1 100755 GIT binary patch delta 5490 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 bOQ&L46objBmGGG5eAf8}8!E!He%kl{Y{<@( delta 5490 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 diff --git a/overlay/rootfs/usr/bin/dwm-plugin b/overlay/rootfs/usr/bin/dwm-plugin index 9e3f0a32d88bf216658a7b7df73d82f1387d2a59..a1aca55f8a6faebd638a6b38ba3e9e87b7a56e71 100755 GIT binary patch delta 5303 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/dev/null 2>&1 && [ -n "${DISPLAY:-}" ]; then + exec xnetworks bluetooth +fi +exec /usr/bin/dwm-plugin networks bluetooth diff --git a/overlay/rootfs/usr/bin/sxmo_modem.sh b/overlay/rootfs/usr/bin/sxmo_modem.sh index 4aa6025..d641fb8 100755 --- a/overlay/rootfs/usr/bin/sxmo_modem.sh +++ b/overlay/rootfs/usr/bin/sxmo_modem.sh @@ -98,7 +98,7 @@ checkforfinishedcalls() { sxmo_notifs.sh new \ -g "incoming-call-$FINISHEDNUMBER" \ - "TERMNAME='$NOTIFMSG' sxmo_terminal.sh sh -c \"echo '$NOTIFMSG at $(date)' && read\"" \ + "xcalllog" \ "Missed $icon_phn $CONTACT ($FINISHEDNUMBER)" fi @@ -280,7 +280,7 @@ checkfornewtexts() { if [ -z "$SXMO_DISABLE_SMS_NOTIFS" ]; then sxmo_notifs.sh new \ -g "incoming-message-$NUM" \ - "sxmo_hook_tailtextlog.sh '$NUM'" \ + "xsms tailtextlog '$NUM'" \ "$CONTACTNAME: $TEXT" fi diff --git a/overlay/rootfs/usr/bin/sxmo_modeminfo.sh b/overlay/rootfs/usr/bin/sxmo_modeminfo.sh new file mode 100755 index 0000000..7528724 --- /dev/null +++ b/overlay/rootfs/usr/bin/sxmo_modeminfo.sh @@ -0,0 +1,7 @@ +#!/bin/sh +# SPDX-License-Identifier: AGPL-3.0-only +if command -v xmodem >/dev/null 2>&1 && [ -n "${DISPLAY:-}" ]; then + exec xmodem info +fi +. sxmo_common.sh +sxmo_terminal.sh sh -c "mmcli -m any && read" diff --git a/overlay/rootfs/usr/bin/sxmo_modemlog.sh b/overlay/rootfs/usr/bin/sxmo_modemlog.sh new file mode 100755 index 0000000..5823338 --- /dev/null +++ b/overlay/rootfs/usr/bin/sxmo_modemlog.sh @@ -0,0 +1,7 @@ +#!/bin/sh +# SPDX-License-Identifier: AGPL-3.0-only +if command -v xmodem >/dev/null 2>&1 && [ -n "${DISPLAY:-}" ]; then + exec xmodem log +fi +. sxmo_common.sh +sxmo_terminal.sh sh -c "tail -n9999 -f $SXMO_LOGDIR/modemlog.tsv" diff --git a/overlay/rootfs/usr/bin/sxmo_networks.sh b/overlay/rootfs/usr/bin/sxmo_networks.sh new file mode 100755 index 0000000..a46a704 --- /dev/null +++ b/overlay/rootfs/usr/bin/sxmo_networks.sh @@ -0,0 +1,7 @@ +#!/bin/sh +# SPDX-License-Identifier: AGPL-3.0-only +# Bananarchy Networks wrapper — routes to native xnetworks DWM plugin +if command -v xnetworks >/dev/null 2>&1 && [ -n "${DISPLAY:-}" ]; then + exec xnetworks "$@" +fi +exec /usr/bin/dwm-plugin networks "$@" diff --git a/overlay/rootfs/usr/bin/sxmo_unlocksim.sh b/overlay/rootfs/usr/bin/sxmo_unlocksim.sh new file mode 100755 index 0000000..140aab2 --- /dev/null +++ b/overlay/rootfs/usr/bin/sxmo_unlocksim.sh @@ -0,0 +1,27 @@ +#!/bin/sh +# SPDX-License-Identifier: AGPL-3.0-only +# Bananarchy SIM PIN/PUK unlock wrapper — routes to native xmodem plugin UI + +if command -v xmodem >/dev/null 2>&1 && [ -n "${DISPLAY:-}" ]; then + exec xmodem unlock +fi + +# Fallback if X11 plugin is not running +. sxmo_common.sh +SIM="$(mmcli -m any 2>/dev/null | grep -oE 'SIM/([0-9]+)' | head -n1 | cut -d'/' -f2 || true)" +[ -z "$SIM" ] && exit 0 +LOCKSTATE="$(mmcli -m any -K 2>/dev/null | grep 'modem.generic.unlock-required' | cut -d':' -f2 | tr -d ' ' || true)" +case "$LOCKSTATE" in + sim-pin) + PIN="$(printf "0000\n1234\nCancel" | sxmo_dmenu.sh -p "PIN")" + [ -z "$PIN" ] || [ "$PIN" = "Cancel" ] && exit 0 + mmcli -i "$SIM" --pin="$PIN" + ;; + sim-puk) + PUK="$(printf "Cancel\n" | sxmo_dmenu.sh -p "PUK (8 digits)")" + [ -z "$PUK" ] || [ "$PUK" = "Cancel" ] && exit 0 + NEWPIN="$(printf "0000\n1234\nCancel" | sxmo_dmenu.sh -p "New PIN")" + [ -z "$NEWPIN" ] || [ "$NEWPIN" = "Cancel" ] && exit 0 + mmcli -i "$SIM" --puk="$PUK" --pin="$NEWPIN" + ;; +esac diff --git a/overlay/rootfs/usr/bin/tetris b/overlay/rootfs/usr/bin/tetris index ebc99c4696c4a4dd128bb9a2f903ef90fa9672b7..249c4a7018231dbb52b90d7abaa3116a28c3c3c6 100755 GIT binary patch literal 17816 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 literal 17812 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 PY_k!+ndpo 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 Z@xJMZcIjX9Y4Xicsj6jlewqqX{{mrrM#lgE delta 6307 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 diff --git a/overlay/rootfs/usr/lib/dwm/plugins/callscreen.so b/overlay/rootfs/usr/lib/dwm/plugins/callscreen.so index 54db3435022183338300dd5e90f7278423cce498..c21e8330d2d3825ac4bf58f81a6fda58437263ef 100755 GIT binary patch delta 6625 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 diff --git a/overlay/rootfs/usr/lib/dwm/plugins/camera.so b/overlay/rootfs/usr/lib/dwm/plugins/camera.so index a8c5b21f1e2ba7973aea700dc8cfca1ee937953f..382407d3b2224f41bf54f1792b64ee4a77956490 100755 GIT binary patch delta 28511 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 YzQSj=ifY3qd0qOMb(}xgRL#Zw9|Gol>i_@% delta 28419 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 CmQcO` diff --git a/overlay/rootfs/usr/lib/dwm/plugins/dialer.so b/overlay/rootfs/usr/lib/dwm/plugins/dialer.so index 67c4b6fafae8d08132dba2f74a02fd0ecabfee54..a3e146481869c906496616875fd078f84b2be671 100755 GIT binary patch delta 30051 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 diff --git a/overlay/rootfs/usr/lib/dwm/plugins/dmenu.so b/overlay/rootfs/usr/lib/dwm/plugins/dmenu.so index 32cb263d2327edacb0c231149ded5c2fb79d77ad..716adb780708ad017d907d93e5741314fd160b7c 100755 GIT binary patch delta 35982 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 delta 29642 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�d2J?c%WUj#+k7YPFsY+uOar^D=j|KjqDrjjM0 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 R0{;`qt{x9&!yEhe{{Sav53B$H diff --git a/overlay/rootfs/usr/lib/dwm/plugins/files.so b/overlay/rootfs/usr/lib/dwm/plugins/files.so index daf5a672784f423c795b69e8f2d97d07349229c0..73b77714f09a1b899f694c4c87a746342be274fe 100755 GIT binary patch delta 6641 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 W8@1ipp}$zpU&zDcnU<+~ss9C``-Q*& delta 6581 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

&jj~skyXaJjE)Op0pj%KSkHnXJ#cLfP=*aH3@ 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

&jj~skyXaJjE)Op0pj%KSkHnXJ#cLfP=*aH3@ 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

RPHW!Um-5I%XKP*_*xVK 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 literal 0 HcmV?d00001 diff --git a/prebuilt/sxmo-x11/usr/lib/dwm/plugins/networks.so b/prebuilt/sxmo-x11/usr/lib/dwm/plugins/networks.so new file mode 100755 index 0000000000000000000000000000000000000000..811d380351393bc0a60f3d02b4853668dc73b38f GIT binary patch literal 107948 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 delta 8565 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 delta 34185 zcmaI92Yi&p_CNg0rZ>`i-82$HNdp1|2r(>4K$?hvh!GK&fPh@&0wM{BTrQ#p9%MHO zDk5SiLLi8U2&h~{1a5+Wh%^zheK&nJmG?WdPh#}`{%<~?dCrt`rkyiqX3orPjva73 zc)+nFiY(tM4|LhGo(SA+9TO9m@D>r6a}e<7B?yGU&G?qtT(YAeOxXJGCEmRw1w;y> z3kmhxIrB)4tH!b7v#6rHl4mkyXRUGjsxrt;LX=hBcF(&O?Hf#lA;69n+=Qo{1YxTq z5i*fA3r}(vgv2-^^hdcYTnxPC4neS&@PRI@dX@+>Kp(+f*y4h8FCtvCv*ADX5d`O5 zs6W!>LV)m8gdo)C5upMZu>3xX5Q>D-iA0#}Y>PM=B?!9dL@!~FyycnA?TO5s+9?@EMX zsYibdL4IS1uu|%QHAUcSE4p-xgz!6hVgU-AA!YEUt04RsKm@InzTQ_5db6xAYheTu zr4~lY1>yQLMA##R2L%hl*wI8-BQ>xN4f@fK2s@?xi%tay!r%<>M2cwi7lZ*riQp_1 zcmkrdj}ReVO4p%6AB6r{;8vu^A-%gxt5LzGvo5dHv}H`($p60ReI8e{-2 z@Gd+I1P>sTNCgf>fez?_b5b}L75o@oJWC3PBmE_RBJ7gFv(STEJ&15q%1;gaPT&ue z(mVU~W-5roN%T? z963JHp$S8LqWHr2w_TROw;XOoRrC1wh)eAxn=V*W_0E&e6W3@d2;`QDM_o#uw52Mm zj!X(A4j;M^VTV{VxyT^|J|FSvDW7>SA8$h$0@#p`7F2mmEhqk&@Nyjkc-{rWA1=S@ zo2LRvKX>RmmgJ16yAbP*xkM-goCh}n{&cuQP+>l~RbA5_*twh@XTzUXrJL~&LUvR= zH|q~l6qH4TIoY<9Y`~ZD=Z{~VGeB22W=G}EGaM9s6roCgaZ;UN*F_&13%+_je-6@r zo)Mz-FQ1jg;@8#$RDPqaTQ@7uvtm`wV>-7jQQ=w9MJJkx!UeGF@w7Y_q;ydQV(bvp z{Mbe9c0iqNSMBClN>aM0tN6q0$f69rT|~GdIQpvU{VG)Wh znrieaoz&9xj~`kd|AUl08&Z~?e=~&_RjKzX>rN@lezH0(k3_S|bkRNfJ33FF1W>6RK+1f%}WXw(Gc_xW4;y&9j~m8ej>-aFsvZ)r6(9!N{;qCxt*nl)euW9w|dXs|X6 zPWxC8=0Mkuf{TDtL#fD^?iJ;85=pc;eoo);Vnd;_yAR4kKFk&xK3bQmkSkcLyTteA z1bZ~-JnAnwdmYR|%y;4!b4CtIHeML-eK1|eZ&wNrVN;%A-U(?ylWD8!x@pLsqeP+?>k z`*oj<52`@!$5kw&-M8RqoqK{EJl-|%}HJH4+Xr-3LMR3UoF;vtF(J8#YZW+>)2?YlV zq7}oCp07<;CMiGEFx)~N>rZ<_W`3H)#HZOXNX0nthJ+O87*dO#AvNgJ^ZWHi0*(n% za)@W~P<-u$0SlMuzt^;AqI;x?X9m3g)I@M;8K@1<_xxKPU)BWkv?y&S-D_d_U8voq zVGR1U{U=Q)-HEt8y1H87%>Gd}Q7QpkDtgQf3_pPd*q#y4E^u?NrUBvd6dc;`nfyWAHdY6wYFhqVFLL+s-(3B^c3{527f8 z?}0pp6VjNd9GM&H<8JU!d-8Ga$uaB=;@!E^BG>41fwEL5^cU)G6(1fCsa=IJz3TCd z&&Ov*#)?y398K1WTVEXf(!2WJ1#Hp>tFu}NIose&I_YV1Wxe3$^xLL9k7zd1Gqp32 z>kMtMdh%Gi>QG+bV*O{?Q>v#~?GKMpFnMgy2?@>BaXY+X+(jYUeIIMwL@{Yz8c7hJ zpXX29#n~*QakBJ^BtY5?;DzDq;7b+tBbBcUg^AhhU;2u zr{=B7xmFvc=!6tspBFPG(<0Zf5+ii1j1ZlZ8lzk1jIW3uVivz%|6WgOl#%lbdM!(!By-!} zV?Wg1(K)^7Xs~mgKGv~1d1WV!HaS{}+tIPs8Zau7G4Z+1K4l)IcIwO42_;>011NkY zibb5lRs3^)o0nS#jAKvV9w%zn8#3f;5GV2|$kG}~I^aNrl{SvygU zNwkxiA(M6-Zwkj-E;cTZ$4xMkatDR*)t%6svG$nVq7)>hlg_rd@PX=vuIZ%H#bJes ziLquOVOI?)bsFeeO`;xZg7Q)o8Ol}QeGpRKulY@rp-e@Cyu`N)L(}ukZaveMrzEum zQoGmKN$pJ&PNk5uI?e9De&5kFWQLspC5;;R%N z;X7S)SrS8X!~skCCcfO|Sn9&rJh#gUzGN``xh`k;a^aiNCBRnz-&5inOID3pVGL78 zaOD)idu6dPKpn)xK|DO)=%x1IVILlzV{}!!^RTFJkoz53;x4uY+3 zNwM|IuKq+=RQ3K+;z0U{s@GCTi}>SfiR8Z6i0>sad_`Y!LL9pyCh<<2-#%LtZnlNM z$C~hSTNHe(30K-!1LF5}(jUdGE8ZGktBq3I^QkbJSLv=cL~WZI!+7|H)=w?t=>a@^ zMcYSB5FXw1!$Gf7*ZL+`=lUjRCKBI?FZ?s{2|rWlBYXASutY@%?PC%i*-3t9)1!wn z$uBcqd`Q%VVRGPf7(aj5LF3KBnM^d03BXeE@;^ThzSe3FZi1t%&hQt&&pQ4>mALY0 zLTW|bs-fhfC|^BnSVF7c0Sryz3PyKQd20wl$;6F^LRzB`%7s>DX}+!T2o(?y9&)b| zSGUTDpZLxjBT19^6TUY@m$ie*NpbYr!Q*!6<|^xE78VFrS@CqMt1zcFPC-f&6b|)k z>^ta%F4t1Xq|iaX?{b4L8NSn9?(pTp_f?k%dG?Zv}hJbX-iz3Azb#4cAf(^hH>{K@dMa>L=b^;HKA zgx}Uz9n`yu6!#?qUg&V`k+1PR^3_4->rk*xIMV_X0bebKL$6dlz3xZZn7R7RYCq2P zExi0$`VDGd9^S~qQ}t`rK0I8^!}Hr>I&BNK^^Bep}X6PqKvNVy$ChHZFEamcW zf<8-~g^4zshobbu)iV&vkG zuy$G?Hf|UUJ(~E|VA4-~9$zoqw<3!knugVqRJH_dr*}>A+SOrG6uI!S?^>xw^mBdY105wVtZW;`OxEI$t-OFBWXI&e8eh`$$vb z7vh4A!D+`@hgWpaBdve3;ENs>wA16}cIsyl&MXVHv0!xo+Z%qd@n7Uiapb>#NpWg( zgp4uW*Fi~J24pXpOg`K}+glwWXH4I9&}R4x;4gsRQZ;tdP+3vBr9kb(*)bPQYN!1z zv(%0}Je!AOEz{HvJUpF;!z>f|v^SZD{45C)oBHvvyCqs;V=NEbTf+EEz;s?a?J@`O z?qC|Powk_0)RSGoMW*oDX`SfscHg2L!^1~1aaPzc#SHX#ra@L-2fZ*WOeT&&I2~b9 zD?`|xhx=n`-=}sNc$I|u&Db{T9B^~0UE%LrsjY7Gj z!uhLD3@(l*F=g&kPR5kkP9K>3)Vr{nU}L(S-WCVE6X{=R6cRqFaT;i0c?zitS!p}n zE57hfU(avbmuqZs_K4eDrF!RWl2Y8oG@BcQpq;LUA9@W#zMU?IKNtR7_!q-p0Dl4e z%BrW{dqFl*ZHVVAO5i1z7^2h_s0Y(M$k`CWHMm_h(>?8Uy}?f{aAC03bG2B%^?kBK z{MWWLvPS$G-?^d%-&`?9lq)kVcI6*DS{=sLIBhi9QvB#tz2NCteX5>#+MoHrdLl}; z)S=p0oQrKw8;!C!m*24-I~%q5oORw=n5L}mQT^4|!O>yZB(+g5%af1TOppSuje?II&5#Jn$9Sty}XSsw@j{jJ=Y#<NI^a*gr%UzmIi5m?Z^!!Vdaz2aD~ei?3*-TJr*| zkK3r;OiD_sJ}NRze)}WSl=6>EQxAM(dg|+sOw)e)$n^AYADN~bJ~BPiKCWe;-T9W~ zcJ?A`YMHL`h~Gh>-j_rn!+@@9I>F99NoY7y%;pDE^~cz-w$qC`hPwgV2W<^ex6v(@ zCwY-FSV!32tM7Wdl|qtG*Rn4D^Asko4V`_#BbBe^MfU&_>9E8tUB|$nU&udz21h|=e@&? zLUBMqfRK=oAPgKhPzVVL5hv|T8M+2sWSrGr5QO`1N2>+lG~hwF^*;#0+5f`fNWd<~ zzU(QheWsY5AQm-^6A$kQCsW1CJ3>jdsM`@5{++3BkJV?cl39J^N}<7RJ*)3AQLY+1 z;2f4cthMe~w+eOFi+{*tz0*#u9skMe&t;*p<6K@U_nE~vRd0Jbw?%QCX&Y2?#c*|S z=uWeo_p)D_4|;jdKvJk-i0D#Mb< zhgO6s1Qq}2vNsx|V+eWRH{_24|JdlU$Eb)9YWkVh^XbIud5*y-e z^noQx=~0`l9EKe%No}Lq;(*e?qO%rRc~nUVEFsa`LKHJu8AimEhAJm(CSWh>Sj(jO zm?>Wx4P#s5_c6X-FgmEC_I1!F+gRv^nPF`=?tdivNQkx*llj2kW*N@&MgBZzoMDtl zeH5yELz97=e|?mp_|HJt8|pN3l_|VRbq3=jmR+TpF=df41K<5-2gvqbvoqrNi1np` zeFbz1OP|KmOUzO5ziWP=X`@q-a#NG62szwFH;9AE!iiRVvMep}*cCx&xhx1xa10jw z2bSCK1)=UIK?nkTfbAy}vEAanGP!?+;h=`)pK9Kv2|2u;`}>Rc%EAYf7#I^m% z`>dV;yxCU`FKgORY8&liZqd8|d{(}*m{=Z1=8Kcc!^sTsmGbbkT*Eod08M|;T{WH4 z#7bp;_^lu`;Ba9P;BLSWzzu*MX9Z!t_)U3YWJbqXi`Fe^oC|C>F#>2k)SF5uZV|lDuhQ7ONV&eSxO^^B+E=;H7g7z8l$j*_$ z8Exvk;RpI)A30F2tD|wv%${o=2)j{HD*pWq(1)8H*kaTdQXZ_ z=kum5%~Aa6!#Gc?v3E&z;^Pme6m5p;SPHic?i5r=Vwq#Tvt3$2vLd0hjm8@XAsl5_ z^#ayi_5-o?MLEX7h|91`d(p8z*&!V&u#Nf{M<8ypUDZ6S!<>hgvYI;^#~@B=mo}fR z$Fh){V00~atY0Hjs9$V-Z@*jli={7$|NZEnVeH+(1+LMl3}iLp|T8$dl*+}2?kc{c+s?L%8Ob< zPOy84JzDt0lqf}F8Ea#@VNe+s6%GSS?a|UtUSRF%XBdpQWao6mW!S~M$l4QS7=gH4 zr{Rd3Z1>4LHX;KIV-Tmb%R*d%5HlZgU-j|FzOtb^^wX>v?(4AlnPyE6W0l;3n91(N zJSLaNY(R|CeItZ)nzew(tQHNQ40`6G*+(PvgQY^rbWoNK_FU^E{fwYz9>JK?U#_qd zNop%SVYVxOSu@QV)<0N^IfNJmV$%EPL4~wJQN$uNq5l{j+9kfaClWTft$X~vYb~T4 zg7nfC+0iu~7#3OLmwS>hK>ye?xaj%zW6jH#_}p=9UOq2bfx`$H+m;^f{51P?HA0w% zJLu)Mru0v6?B^!u)wL*gPncO`OHK7eJojo#Px zDRoDgl{z+N#NR%R#LlPv)6l*$^Bv6z4XeZ!?Lg?8P1*!}H);=PsOGTd zznVRoJ}7#vIC5|Jv-eH^()^p_7HSV^eDYoYRtt4aAFL``=_M26{S56Zn%6YK8D^Yg z`erzVR)t+|@o_=82{;vSJ76EcMdBBGpMq7w<+GvBR%>@HViLs6?ebTcXq?wZEo5@W zVm@BTVoqy!Enw2faSBQ?EDXX&^$Kjgdpq4S=zcqc2R2ZBHtI=+;{IfTFufo{n zwjn2H*Vsv1Gql1ul~fVzdkXR1$7bhzGB&Nc9CdC5+n=eBd!}pM_{8neJ(eosNSF9| z#o(lVmOl+Kfj!I2R=UyDN*|hn&^Fd?_h!rUKFsSm8M$eE{-@X zUmR8urfQ}A#FzKIIc$&RrqwywtKyyfVC8CP+2{_oI(r@~e=i|CcGLK5 z`Xo*MbyA*Zv@3LYD?KNY1Hm!J4Xhm3eX@hls#e#ER_bVG<;WEzDuT)x7>j zFQk2ElIMp={2wE=y{@K}uH~uA3?ccxe^0HxuL%I<9@AY7%YBzf4}_=K8`wEiD-{gF znRAV{9y?S8vo2i!2Ee0&kXbJX5pV+BEphBYG4LSf^Hw^;kfBTjbT$@a;e$4dmV-}{ zqvFWV`v%QyV>97ptFkz#;<72ot&L7@yQXuMi}#!S#FEdWgB%UlbnY?1%1@L&${?i> z^Nu!`v{IQty!iRRp;fJkirp9ohgN+JWzkndLk%85mUG-=Vz->T)Xg^HLIkJ_7%Mk$Bg}@i(dH|r@CuyL8uQrZqLmiw3APm^u9XfF z^NuBw<>Ei^Ef7DzH(&hWSQ1GW8;=bj5u*Hy0kEP^!naO*NJrL%OSVqRL*N^?4w=H>FbF4M72ZKZPYrQ?zQgW8i7&h^CE zwLTVlZz?Z+vRHaNFLJRtW?@)di1I~gtT~noVjZNP3>IRnbiPQwj3kkw{L4tE8f=fO z)GChqQttg#hi55kffgfxm7)??eHj`2Y1?v5ah**U%?8w03c_u;0`bU~gB*RJk*be~ zwO`I9r^LJyq2b3&(S;d`d)9fuzRCv+u@BmI&AK7VNp#-UN|%W1PRQj^FvVGEuH};j z3@2?<}lj;K8tkhmi`HGzt zj{7Ry?Tjtf#Y!KFOTO|?GPS>sO;I*jYA3RRe+>hF1snLo`e5Mi0ya}b(au&V`omwv z6tx(4DZOH%7gk$^v(-^AEc8*jD1klsvemh`05vcgKUsjfm9SctDR9-O&am;G^>!d@ z85>G_+lBY1K(_6Ra}}>E9m{N`oz=@!6^~wFg7@$C zd)A#%fxEc?zlp$hN!z^9K7#Ak1Y|FYubvE)?KFy`&IE;RH{P>O08&h0G;)BtE8)F{ zKAX}m4PSd+V1M!VlaZueBwsU4GvMo(&>yWCiu}0vcq=uVK2gq9$`@W;>;f%p#caFq z>tNqlBh$h=d$h0>2cW92!%4RI#n8~sE6pm$CQpZ-KiC$>pO5{AL&JS$) z&~(o#1Y{`wfHsa$K7zi^g$CR!PC4b9w1%-@ge&V38$KAe7Wn7<|BnAJ;D0% zgd!C>oy|^5P@WY#B_`*?O}Y3E5q~-r9J=@~Qyw238N!Yq?rJ1cSE@8b2W6qn^FgdV3O>MRHX#z^ig~X)_=+JRyF2&E1e;Fe;Z0RiUYol zBtMByew#R{>2b`GP$fyqYTUX$75&G0NdGvQ&p1~4=)R(e*?`th_rAv|`Zm7Wy;^X*eEvp>TQ;bZ7wQT`n}f*t$afTF$Hn1z$- zhP(VJS6U`l!>X}Tut!~YA{}dmDBFt5O5f%9!}|P*uVMJ3y75nH9m@-q*g1GHnS*j3 zk)?PYGI+Y{y3WUk)hS5711lkB`6yFZ=g?ann1e&vlF*7RFB2+)Ln14^(y?y|6OIqH zY#4HVj~V}dh)ty34Zy0f(yy_yuu=gwVJq#@F}gPF^DrIhSW&nt@O|H+;~lys9?kZz z&p?b(ciEayX~%98Mc=b7AMTAKk=Ju5y<*;sN_nGF<-jUJoo0v3;B`8W$(`l(8e1}X zvAi$prlQkXS!S#sGD6tIYNbbk$7=BcTSj@YS{>I-JTP40l`5v-^u$VUYFT8Njv=Xe zRk!o1ZsS#bSI4TiMdyk!uu1HDE@s>Ww)XOxwclr(7gE;ieAM05J~+&qS9-p=U_Vj# z^7KGdSsm=FW>uM^pO1Jy9`7b@Jr`Ou4~wZq`yICtg%@8?QF_7RShnndUuh6-`&j8x zG$c3JiBqTRSArU=2bB7I`@SV>_q)K~dl^OPe(dd>eOO(mg3>G4l~V?w3s@`8w_i6! ztZp<5p;oiT?WnnrnDigFq6nQU7IbVemZhL{qa_=L$;rSTh#W2j*#w{gs}t6-yW8J4 zMYuMaWys+y%fYR{{IOfHxftWQP3xB6z*b~&$%;heRAA{A5Le{1Daa-uSCG>*2*?}l ztk=KOCQkr3iv^CAp2G49Lqf~AdK?QYD;8O-DV11SS?M7xt*lsJIpJG@r4`gCj^I%x ztuMYGYJKqCDU$Q@=L*_c0h_d5h}od^$9Fv{P#0)ZhZriI_pA>C*%A?0@ZaW>Gq5`U zRD)_>z4_W?)M75LU4hmUIn5S}&Igi0QFT6!tQWsIAMU%-{MYG#(n8U6J{*&b+YfQr z0Hpj7Nk)lNewae;il6)-cY6u`UVqbdDRYzNI2G4f)J(`s`vVpfWI7h}fG=l;270VWrJHELnL#PMhG`02c6)69L4 zGTF?;Yohs-rXJVwSf07&;~eIQM=nNUDPDtbtXO|Ba)2MF_Ttoi%xhqxY1K?apE%e#Oi_9i1&r5H5h?*?aJXiaCEi2;z76%mOUe-gmO^oWMiPhtV z$s7KwCRco`O)mIeGCAXW(d2~hd6Of)=Wt9(=~Q z+&(Emy{tyoNiDdXLurGNbyA&?b&}D@I!SM2odjXJJcgVXKffF~_&C-Jlpf_dR2qkI zwy~D%H>PP)H3K!aHtaT@g|+NZxgczVa~8>!K#%*o1Ys}S9JnoF+?5eUW!G%`k`;hc z;gaF{z!`rQgo|($a2w&~!DYdP!C9{g!Zo-`xQ%epa5A_DHG;4M?qoIW+i(-%2EujW znCvdxX}B41@o?C@_JHSd|jiJf4?F zy&Bpyp<{r0&;fgq+4%;+wnb@xv9CJu0IsMZCXvUui$7Ekl_w*I94Uu>)|q@tu4`wt z@#5vUi;*=+a#vsp5|%x%m}0xgvGjUYXYjFRz~Da~-?N?yW_70Y&SM+aC+!2In^3lT zY%}zgu07alv01!a!&Hl<=F_6dh7hRU9VqK;PzZKEluj^29mdUc6_drbjz1P;@C(h9 z_QRYMU%}c+sTp(R_8@k&Oksuh!*<^u+kFh)j(A96f}YXF>OanS zrd}X1$|(gxbVvb2T72Q>L}<*ne-18k*I(25riNni=+rJtQ!k*nR|=gN7=QRB?0;9~ ze2wb-)Wr_!JLzlKltq0`Va3LdFEBxI%W9u|%PK^z%CUQ&(iJc?Z9*(-*lskKHDqeX zuEJq}u2>;KRCKKKOHj94TCe8cU!1IXf3wPM!7)UCk_ zDGob_U4O0UI~^{GVR=;wI!AE-l0REEQF;pVbO`vPbj5_$j>)XDoFa_`)tQeFkd2aKyEwoa6^@eZWEG!RNaMl>36mVS67&uw` z#6v+|ja`=0*7%Bh)+RqzufR^HeM~}PwN8*WN=IphL4&KW={!=su|uXbSiF2Ah6IWA zH^P12?TA?fdtYiuf!#wAO@_75R8js*pu>x8Ei_*o`AcM)6;or5pG{6Pd5$ggp=HUD zg{Va$^0yz+LTk+l&@ywJT?LlI(C@g<|o-LInsVBeYwr|K$-G zDE@MDt$R|_)nzMlTIdCXV?=So zyTzzA_CPJP%yeBxcz?9uy6HmnOAGZe>v1jL3+)P7+Jf6kkAL+qda=DQkBM>%EwQk% zOKDbX3q8dz2GkX^Iu)Dk)Gc(ac`|sj+WeTla+1a7n4ZhC_1QHmlZh`nX5}$nx6nnF zZr$K_2)t;u-@!(83so3xa&id=|1ESnE>5)2siVvx$ZWFN;lucf@%d>BS7WSO=}+x> z*hIbtYZRqVx3e+XK_A1;*+Pe#pUA7^@ugN&O{}>UjFpe!mOQ-8U{@;R0$G7=ZVN6M z&eT|O1kMgI4vC4srHxrF;%Ow@hnofAiW*1A?+QZgRv72u-}#Opto}D9nYVFwdkZEL z9GEt|CkVy=f&m|Kv4A_p4}RhTmXs!D=k>cKB02Jr?9Gw9r6sbG?Pm zH^?}gYp~s5Z=tcq-!-hPLSEK<(>M7i|CaOlnid+3jeQH9VPd6E6W_ZX>Z>p@svHyR z?<^BzVVC&LZ8^b#|LxGR5vJQX&TpY1rtAsQWc2|7kPB^(DmfwkiweifIaF0WHN7RC)1FJ=asJkOC z+F>--YHL~k+l+JaC;hGL(M|mhTWVQp>y6)PZq@b&-dZCIuQuMOZPQ$8n%WA$5pmM};J#b%KFL^f zO=pjjCA=t8l4wY!o*kooxdK4r_$ZZ0A-7UCT02DYK<;7gaNkLA?0Nk* zt|N+r9>lmE(+kmqFanzKYU#NL*jgJrT9g5ve5(4`x{(`bAm@lph$9N0_gUK5WPo>7TaJZBW)dHaABi`9>rps{Hvju6`)JV%}qXZ{hMGVgJ59dR%nt<>b_c{J?#hd<_ArUPf_$02;` zA5l{HpgsrZglxw7?2nkDi(Mmf$0$}pxsBnKIiwTfqS&y|`QuxmE7qXeQ7y0&q~%|ehpR?LLBDn zB8CvvOw%nBGZV&O;sdYQ_~euM)=I7VV~JLGIDq2g1GxhJ)gMt8*?}Z$~FUYiosQkCxj+ zhCVrEVLl<+6aM2C0pAniTaQM2Z?d?RWhj2dF`1fy%@zdIv!23A+QrZhKSa2~q!K3+|dCj=Qbgwpav{ma?=F$A_%NYgUN|u(c zg67pi#&J85)#0*rxxGij@+bU6*7Rc*kLLGYwo?SEq7)+vn(4u+VVartWS1x!e#0tf ziBXORja!X(JgwZe+)j6QB!KL0)f=V}GF(mi$`Vub%S(?RZ+{)S11=eEC3thK5*w{$ z;M)pp*Z|#2S!qU$%dEPDb=c;FG9hcG5BW&#C4ZA*nRtDia%&yLPMW(5@+g3|Y9 z%d4kge1TEGZmDtOd7X#<=jwabV*wK3T5BH=w$p@mMmSG=wJz@ISR*5EtnnyMI}%u4 zs`M!TF(e47K}K75PRAYMtj65+ER=}&i@FiG?O9iyq;!Y9d+2&ulD?*yuGU}Hxs$~U z1$ly^32Pfe-6QgZSW_Pw_s_?Vsp*7G_R%gDTBZ+BH`B#>Q>{yRC{|}e z(bp=Nqie5E0HWTC|_B0wx|h+pqgCdi+{`m31^*SVC5SOwZbd$cZPHeV&;eU(?G zm02@Rd%tgZ1}2`+#&Dt%hc%7|6W?k~!3~oy8|7|=mi4$-aj?3XwupZ;4u#n&wCMoJ z5r1gPBU?r9=FuceoYMRf*&u$|+_z|Umsh!v#9G^gM@_7?O|-=l&n^g!J(%rQZC@V- zkuB3kg{P-CV`cwoc5_X9dAM@Gk@)fiMX53`w3*J)$i?d=NjfwQZ=Aq7B4kZbN))s|KTP%kk2JZBNTs6@Z;!N7NC>i&V zCfC@cuAery>YnwWACpgv&JG)+oG}oZV0>i)HoDp--+rLF3z^&?;a=)sBH2b)K$e^6 zQ415U+G=my=N;PiKy%Mp;3rc!#ITXjL^tE!^vxPcJcdZ}(L{HfnS3Wb_z0x6)fUqS zs*K^fiZQLF*aUymIvDGf#?~i;S6kS1dXMIyf+k!G=TC%M)Lu=nL(Ob^kHm|*w(#)E z$AJ&0<_#-fm6NFc-YV>BrvI=`%IgQqGh|+jX@4?hvRPh0qLb9GMl?}-XltU|3~b_TqE}!gYoeFLkK2Qb;*EMu6hbFW{`j6S{h?{1YmB#HRbrB}6u0@B zu#9F)OqO2-&u@>ZQ3~%ev8S61v&{4x>`fJ~VyOXjwjS>G65K0=8(4_Dj(f4>+K;K} zB|$ib@FBRxaQQ>jjrAn8OChBFDGkQ}$e2174@l7`+;hStq z!FM2Uo?g#}jtX1f}5H5_l*o9JQEcxT znbHMIheL@mw0B4gUFF(rUc>o|+)ht5#xt!L<71&iY(Gt}=gbWL6vXC+@q%cgk z42Ud~t3XaJSKTE>}*}8*ALLENrAZEKO9e70z5LvsK{2EbK8+ ziOC43!#@x%0RFBogY8HXAzrGn_T+iD`{v}AvlRBFjr7)+hwaI~2?8E!n;?HZ$DzWptPuwTcXSTh+&&lZ_}t_0 zJJ$5%DPe9ZTol>XNP|?P@taCyhw51u66~}YTmD9>R=th@S*?2Cg`{|Iu{fxmxcE6i z;2P-$)h~$dd(BXd5!6Vxn;j||@v0*>KU@+nZ;2}ds#&iMaz*x9)p!POsa|#^;Ug~@ zzST6+2$LYS>ey^pyWw)+I<~Mb`CH%?|CrC(~6DRGf8wGr3T{;LV^ zd0*1~t~eSs4l&xHJ(Z@wd~c~e-KljojdYQ!-i?H&IAcUL;(X$+#x2+7AQQbVy*p~i zr2a01>|MBtFl+?DwUxlet{Ul1lAK=042*{JTFV53YO_1ZkUh|=a@N3t96xsgW}DbAt2EM_$Fuk^t2ELrh_S1%JJd*r|M}Z0TuvsM zGL+t&4_`saH$tf=Do;zamMIC10K6 zfVe0CX zNYq?SvXb#)bklQ(Z3W*jKBHkR?=mpF4%HY>66i8RZ^2;{lkyi3jH}QKXWY?gtTT-; ziXB2{u9=S07r+OA+h819rux7WBVn8BD^D`0j~6J?5z8nX-%+)Al8eMy^{p3_Q=H1= zMFQh%`8FVD?575Mhugo}=RKjYm!_RYiiO*mt54yf(^IN`-lQLyta{p;L_V3#_Ziw^ zJM}cH^OgqMU~%NnyZ&2jd*1a^vFGO=hdthJgo)X)#4};NBCEl19qxxkJML@5tAEFG zj}lKD|4&skP^;=&Z{j=tsy5?DpE7%P0YUCi&U#?4?vBo5x9=e##!vJ=?5mm*_KtO0 zaYJq+`C}CJR*Ofq=phDwaV1cTpYc7VC3x38F2W^`gNNwH9zKWnEL8l z8YdL9L6zc1Qi^Vyqk9$r-I*QZKljprnaB^ zLEaUrIDhhz=P1i1n21>+?o*I~s??vn5_rsV9k&$aiUG01748N{VT)DBYM{4O;Q?f! zOfai92aq8y!(n%4%FUv}kIO}R&okZ9+=ZRtf=0$`zfIK|Kt_%av&edWu&F%cBm7vA zx_CG)#w0`7%S-po`4IVF2`~XrKYAb%7+1 ztW=c-lC;RpxO(BjwH^BvkVfq62p3;F9$Kw31d_M`)y69tMp|NFS#7bfLN{9ydKl*` zu{gZCf!3-<29aK#stAF?|Hw;ire4s;OUEVye=!2GWIJ&24T{Z!$>Bs8qTXj_xnrQr@&LsRj#JQ-h= zp>K?;tS}Pf^mDNt8n9XQk6<#I6soF%$uO@}lP9hW5iwX1inN<1RaY1ZczU>z;HC`p zeru>YocByP`l5l(viPe5c{q@Vr&>Juiv@2Unt&e+VZ)yNU`PYavDm3|@h+VGSXKia zWtpgYC5D6#WhWVIbZs-N!B|UH5I)v6V}{?3WBmr2Zzk#n{OH#V_;bvx!dd3w`GZy8 z#t`2pc4C5Wz}`ANe}FVzlUN#{^CJKkug9bS*9A-7 zU1rT2gBPiQ!vXgIMgVRClmQm1E{B3a$5bw1Bs4S?57ya>TpNQP7h^vmF(_6wI*ddT zKh^VLWDIFieH=zchv%Evb#!(aopnp4p*Npqs5-+);Ixz2Z%jtwe;)spO}DVI?9HaD z*kiE=eKs~-#I2A&*>ny|mp|Eb%A{HpLn6|@)c4QfB%-N}9%tmF8 z=fP>!H>gQmh?X(rknaCxNTHT7WS6QHic==DsDffiSa=hb0^PqO*gasr=SzWlOgvL! z(IGcguf!7h6X(sw)eH4D4Ck~gYuE@(s(6qntMvLtI8&$cjw3N~H-O^&7nH?7$;1%9pzB7h zRLzVd&y!KAuj0r^a!^I%NF1533Xdo9BKACIPZ+y%QIBhDxN;)-FT%fF@}I+bzTksd z3b-4>80IOY7E7terPPZ^UCL7rB2_7+?nSC2Xip+_22W)-|EEc*>LMh&Bl#ebb9nN* zNY0d!H<|YR0Vk-3F}S+`b|bcuCXOG*@y}ZB6{Ceziig2fw6X17~K(G=7_7cG* z<35RCZ4bdMq-#UC1aSNUgl~t~y7ZV)C*jZU!T%2FXF2{Jj-QM0F$sUCF>#4g5pTi7 z9)kTqP;-JUoFEzDEfT>7KTI^-3lG$vNih9c0*c8nAs6VH; z0t#)gt&gHXu|cA^#wdy)srC4A7YG_B@!=%LL2_0iaRtdHiR4sIApxM+#VOhhjBz_b zv0b95GhDZBktlZeP;>!fC8xO0DK;RyD7eU0ubUt#kw`Z8kURv+1Ws~+lN2JHB^7cS z6x$_=r9BjvfDy|n4snX92nR_NdqJU=C}wn16w#wVu?Dg3+QCUO5H<$csmdn4Asu*6R*z@DjPJWaQO9qdLow;uGXk49R`gKVgW?*esD&M?o^A%k z1&QLWzUaF3ghW!(L!t*t1t+<}NtPnKQzAKsLQY8(D|#rd0;8By9OD!-5MC}(9MoSo z`QVKJyW!8@2)H?wbl>r>FQNq|w*(ok_v4yBZ2a{w#&&mT1u{wJnQrEp4n#OX%5=TH zTOI$2UxIXZj=zlK2Oum+_=Tu;_b3YMDPe^P`tN=K>&{u6qyvxUt_9eHZ!$=_$Aqkh zWDYVt!6~vh#Y0dWlqfPl(LE;g#_ne1fMN@$NZ=F~K~XGGL=@?}b=uV)g8m?w#|gYR z!BG&*kO&-mwc|t&g&!y~IYkR5{d#OX?^%;23bXFd5wWX>q74{cpn&|}6}XN!$Zg@xu@L^kgmmxxqAF45lc}be4F3Z#A-m7C{0~UdkSE!Jj?M9as0^$ACvI+ zph}V!ETYqUNLV}7oMbyE$v}9EM6v}W-Gg*g4}}^Si#Wv^P7#4{fkd$k6y5BL?V(`J z%;6NcH-u&sIU*uMBAEq}ZvMIVkjw{05GTp!Bu2a=cb6!#dKJ=O=;ruDP}JeJDEg06 zTm!{JJYZ%q2|ayvi{ab!{}2#d-~>UO;1mc>Nd#WKTK-*65n-U%$teU*u^SX65=D!) zr+aBd4~0D_mU9aH5G7i^85BxCN&nvkNq1+J^pNO*lFLc1aFV46XG(>f>qW7mhvF(Q zqBzAdPB8;vKZ)WXD7t$Wzf8;*X&C<}44ruNh8c_#WEtA|y{dY;UHku|HfX-#uUaFb zJ40GxF!21A^ZbGgIw`+JT8-pWYP)quh@q&PXDbZ9bFx{StV4fSLY~^IGx3WHwp!CU zhF>^#Hpi~jUzf0l1G{^UGwQpsa}8HGc7Kk2MgNn89jm?m1Qy5jG{bO#BZO(+H~F~Q zD;mts|MMIQ%X3&Aq7=?}KY)U2Cf zbaAg$mJHTy#VZd1lm<4uZ zA#NG2Fl55nmq%AP*+l7*%8*WieI8i8t<8Wa1?bM!`c~B8DU~W(_!TokOQ@9KmBk80BJ6Es0?EcI38zlD03-+u*}|1w<=u4FdW z3|7V+IigHZgg)gk3(Qu zpQCCX0@L74mH$vO$U9Se19z6qu;5X9!iF#X*-fZ<8Y`BKQC&hu!F77 zftg)J*1j?=DX%&bQn>qwL%lOeP$U-ox}c7BslFXb5{piD5H%}$)Blhy2AMC&gnl(O zd5W4Nqm`_ac6YF|wmP~Lm-JXMHtTLZovxj5B)V`oE5a^8kyP+Iia2TcTI0m;)z{OF z9bahbU|kl@%*EvrW*YJV+@@NPLHeR?TQi712~&NR0ee7@>T(7N9MI3=n(rtnf$pmU zq`D5j%u|P7<`K@YJZ8_sFU-K1Ro=tMu%WB*<6EIeT=qqwf@bVX5(W!$eB(STgsmxf zzPdW64$B306-=mmcb(@xb`_wG-cqd_MnXNO8UxB>j!aRoI{|g{oa(?Z66`(77{;+z zt_xK=e_ls3Ro92%a6ex4co=NRL8|cK0M4or4790c0yych9InGHfHzp&O;tHS;zi6p z>9GQP-&{X~tj8*qV>| zI&iw-cL{Hcgg3!(M~c}g#pD=nNtC2)wnfvr28}BfFUFj z6$_|n0rDY21np&QZyOYC^ipxH zPiyzGepPMsveva;^;#tXlAPFOJ=s>s{^lfd(LbQe^Zay4UwdkSLcX2jCc`z8~%}2s_ zrAt{8TsyL2xcMiXSnx<6%kkGZ!&OMK+R5I%iiS_b4wZ)vpNKJ`y6qbJY6`v{d!#pH z<`uYHgLR$npxAX5Cp??&N0$0~u>-S{8@LMG23mkyfDO0~+yG7i#{kB61vmq6m<62y zcYi#0@!AP!+naycJ!SMiOHB zJAYSf!p5QpMu;!KoRcO?2Wu`bpyoVM7yUMkjE&ym99O(0Yke_?smJK$VLLdZkd^6G zs!7Ke=_EQPolFXw;XICu$u`6P8r_tRfo2E&Je@olu5!LwI4-Lhrc=@pRz`nJCwfvu zyC6f()3izC$&owSJg_vNGY$?6nSBE5rcoF&GuuR|MNH8fAiSS`IEh3KwstgoBg`St zd&OAS&T?|H-OpgA-+)24wr$2je-(3}4fC;J0agH6K*W4{e-fF6FYeisv6Wav-=B=B zY7qT$GI=igsqP88m9eQ6?DCW(w6217MRiiWM|z3|WkA!1rxP+rbj%6|4k!e13Cp1g z73Ap((kB$zxY+TSibd%PeKUjTBQJH4-8w`t&55=kiS|${EBCvrgO2_GHI7lqrn@M6c{o6xo`(U-2ROx}v z(dkUgxEHBClZ?%1X=8^THMOHF63s#AcA_-d4Ie||?%8%VjG~HCk(+f;Z`)EkL9d6> zCtRH{2k4PJILjwOOKag2^e!WPYYG{bec$z0yRue+v@(!ZiQ^fgK2T*3EdgG?B*Ip~ zSvj`j4psoi9N*X{fHuO?#lu|2)Bl}9o{!0cWdRSq#$UEyvL{(YX)SinFBkZ0?oSkk zRwMOW@}WeB+0qG3mNmd4hGE#B2Ml<=Mwe%yBy4nN7MYZr>Nq#O!18l`NQFYa+D8E! zea&98!2=t91@#+|i$urBVr6Ur5=#~1V0S~E8kflqwG7ydTNm^m*oZ1Vz;0;}rCT&^ zDj7Lo0k+pgoHOTZ7h9BLKPeQYCG?f4*rq6_8>W)^&=&k*DtVsN(eP<#^Z9h#G@=h( zFBa5~Kpf3<=`^w|G})bv9UD=~p_itS0pq$wRdqI;$8nI}BRvZ(a?1*q--JSz--IH+ zrTUSuG$`T#3#^NyykA4Y2oppnx_2G%w6r<3TH%H5N)m~Xp_)qXm% z{fo1A?T5&<&w9g%VuP$9P%p<-<1RVCE@lv=T~PI!d?_AFG)=W0{U(Q=o=##0YTaRI z9i<)C>B}v@=KI^n6Z9Vl>XYo!BgKztOb%Mf4Z1D|tt5{g&Os{)p+DxJm5g#tf;xeS zF)=uoWQ5=E&|@YPaY~Q<_t3ey=-WqKk+uB;^*@Vl&Lxop*Eqv*SZQ5mU9VQKfF8^x z(Iby}_4S2F^}Lh)KjIuwyrwlpj6h@JUaoGe$3R76Yy*AZGLz79BY)UZ47a`?9U*|!ZvMfzg}&F74n|0 zd1xuB8aDXf&g0^i7M{Wc{3Uw3D9vsYqof5L2U{=ND`w#b8X&K%`{URg-8+LsMjy?? zFJWz<)dU(%ayWkZ(hD=l^019qXb$07dx@ZvW|GJkf?&dllg|W*P^Qq_JE>y(q?&uT zl%lk|J6X0ioq|zVlnyx!)hblt(RQZ8B}$iR1NRCe{Y~_e$)l0S^Ap3((7T(rN*!GC< zR(k10GC;pdN;q=?42!dhyzS^+8P)AAUZ;V? zmV0fwN|>qFgQE;p?Z%F1A2u2YQezufa8s*@!%Zn!Zv4D$@p^E(n4kF#WZf;@@-s^x zgV!VTrpUad;O*?;waO8n3-E3QZ>P)~EAuV@ueXPHE3)avNwr8h7g8yhy)v^}X3nC^ zW|OA{lcU9J))`E-l7Pu@uu6=oqpw?0heS_~RFzl+^*np*KTV;GLFrB>?n9lmz+|uu0dl=)q zqu5yVSg7Zc8%G0KDAZ?P##DZTZeqkncfU+x#+`J`G){d?vKQ)sbyXe=MxY z_PHGPDHT~PyJ*-PGWdn9j^~XDk8yrz+az9JmrNy4z@3YPP4wnm60Pa)BGs%(mN?v4 z00rlhSIH9kdOjHwTKHgu<%tHjbc%kSPo|J(sVg61u{3NRlwfRhDv18tFZ$P_Vs9_u z;-W2svWVFY^;FzVWN}N^+*$9_bQq9SuBLy60;ra zhIw5>k8a&}fwnRMZDp%d#ER7|sVL^^G0_$mON4WOZ+F`NX8->*R?_M7NzA0rpn~Sc zcbrzc8wcUJZ@z|J3agX`&|QEM&urPlmO;}1w%R!{*}snc8J}_AZK|J7epJ%xBC@hc zw~S|#ap~$3On-UI>wtoJspC_Ya5##}m8h3s&Gd&7GJKqt1vd<2 z!3l%#({37nRKXSS6$-9`@W&L~5t4F6!Fh;kR}gnu0onTs9Xzlg1KqDC?lfus4OeYxZzXEa>C_G=Bdl0T{8*7JDULionM z+%B?%Andq;-=aZI`*y3jtwHMZVO&iR|3Jn4%%|R0bEks&s~WC6B%(#beH_A{({Pp$ z{#ak`dY|!~YOY4f+rqf}N+W*+murXepJ}-EQ1*<>A?g~H`jCd(ui~v5?v#r8pJA_t zTQvxT_i0$dof?)vMc-H?hCfuqo8&8~`aE5Rmp9YwGA!Zpn>Lq`n+meFY4O|S-wAOv z-CIlEBr#=YyM=n?Va{jnN0eILKoSuHt%?6M!-Sfm6A^wg1oSoFFVsM z0aUpcZx71X`6DO?9pOc(SpDvz!#=_G3o-=C z+C<6`mhgU4A)^OXro#X72`3QFHTwAqk0S%W`h=Dfs1DG~Z;=_$&SsZ z6RuwZV;4%|G7B0IYsDRi*Y|Zs1_&!qJT0$2b2Se zKoyVz)B&kL1CR-9glx$|!kt`7xHEtaxC-0?9DoP#0vvdiK+-b8r7t7Ta7FN33zP$9 zAQ6$oF98LTfK(t8$N^?Ap%vT6ySee;*#q7P&^k~HU3dPHXsdRw1(dPfXwK>6`NQ6;I76-7FM~O zCx}koj@{B%DGD_~D6eJd`Txq&(dmC%2)}iLkEMq#%-{HpA5BmAZHxQS#F4h}FMa!T zd~^TTW`K2qrBB!Sdz}MaoDC^#IAKEx8%Ed=!iEnvbg*HgWMNaXnUpFN=tui2$k1Tc zzqZl~6(p`tF$xr*t18Jrs;(sJVEN@}4DM10EzU+DprzTBWLWT8blbJ`brw>NM~0Pj zH$p-@t1$SiqF+~%*x>D32)CWy1y^wVI~ZoDri#Rcu&&N+ql>EWvp1)Ts6%*o@Ulm2 zs1nc0Z5ZF^`&Hy^tQ*KqGAz`9S2UP$+c8~TNe0l=okWYE+?`~2a1Ol3&_C>i_jcyJ KiSFG=BL4{`+eW7V diff --git a/prebuilt/sxmo-x11/usr/lib/dwm/plugins/xdrawer.so b/prebuilt/sxmo-x11/usr/lib/dwm/plugins/xdrawer.so index d4eac0fc5e1b6e719e9311b61e0ac46032b3220d..f4a4a0fb6073bcae89f96b57d4abe0b24a3ab376 100755 GIT binary patch delta 35125 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 N$}^$M=6T+k{|63t#1jAj delta 31815 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�IvuC+O<0%wP!ppGb+oIFw7#y4O7(iO%8hwui{VjCKTSY4i9?l+ zR%y6XqtJMFDO!1crcSf4Hod)Xrxxeerxb^}&8|czq35cpS(DGf0 zAXb}b-L9npFs1Ql_!FC*vCUxSQRRBNDlZo@r}fl3pT#QB(@FUwQdzA*kT?s&;Vs@3 z!$cDoVhYG}68tDo@Ed=Vuj9oqKjGQa6o>bem|xlbOm3oA^VLXo9`>XPLZh$Sir_A| z3kTjCMD9k10G@!;8mEwo%2~C`@@rBM4 zq}Lse6oS@^4TaKzAlKs#!jJ$`u*t{KC+`OvnBOIuOHScuFd2 zmU&8i3c8E&sBJ)MGCT(>!Naq0<^#Ao3f(7gI(r5k54-|6l!XCHffIml{RMl_^tZy1 zu;w~F4cQ$OA7K-_L@`{#)8P`0T!3x0Xe0mOg3lMQj^<-{NF(QJqf2)uO7&J+zMJ(o zyq?zYo*nSe_WcB}C;L4@3V*^*OuAZ58_`oz?Vc?XH7z?ZM&8IpT50Wp5h+dFaeYW0 za}8NVs8I2T^<5p~fWE6^6zID;My{Tg?@g7~S!vVWAZ;U;Vfk9*7&9#uosKcxvQ^|5 z6D@Dngyc`hE!Rfwq%EYV5idFh;J4J~i{BDdeIr+7OVY%5tJAoOMs9?auH6?H-pFYz zBQ%4$2|TVGCRA*KWvC{SzI(8jMRqX94{@b8;$2s9 zr8nY?OI+zf1uXnRjr6vgS+y@}dn0!py-XwLXQ4R< z{agm;xUT=tR00T-Z-4ZzJe(lz#WjH!iLavO!48dtHa5?Zy;O!?~ z`SKrfIQ1jE@$a0bP~S**9iGI8jD~L*6l!U?@DUNrA4}+m%LV!O4iB9Oc|+6*rM91%MAufvY1Iubepl;!mJNl41{;Y&R$lv^YnRXn<6^C| zIt=_o1KH`0`yHc&r&n8P-Qj5IY#R+d!kSK!ktQCQCf#hKxkr>y@IyVj%eo&u3VVIO z5wBUDJvMCN;bTruTxC(}ff-L0G;+HQ^zIRrbfS%Vmnb69kh{gXVhBJS68(K;y4v@I zY&(w&yL5U{k;TvH0oWP6ao^N&}CE^qFaM7CMnkeC6QwOZJMM2dtck83CPobY$E- zyaJ35z2FvZBggjN$!LNtjFxDhBC^e;cumUc6rP)A^%c&0`mgsXc6ky=U}*zAe>5O2 z!5UB)eykS)RR|10^z-p7`kClpQS@kQh!FjFc5q(*5_l*^_R@$TZyb%VTfy&c=$|*B zlzk>)fMDl~m{FDn1=d^a>^Yx=vr>sFC4?AM~r%Q|stZjMjvJID(gm_mw<6U;d+v!EN15GvzAmN0%6yubi)tEz0+eI!Aav5FZCOYI&yU58Qm(WEn zj>*yA%X%c#Li@ljya-1cuA($xQpnXuiFLxTqAK@K5Q^W0(PFk&&gJZ9=H)T|;e@1% zoZd_`%l&ox!PpdskHF?K+h;~G+cU?y?nvgtF3D_ybViqC&N}4Y>>{@UatU4J4m;#t z=pvV)gJ576!JQ7lh%SN?Ay+@LL(SU$9cr#~NRuwoBOqPTUu>?04!QeTVyh@^I+&%4 z;0%Z0*)D?KNN`hU_L-g8Cpn}Gx=1(R%ravnvuB1N$$U9|q}`Vz9WhqeW9WpI#S34B zNa&)7pF{BFE=gZO(t%y%+D!KP9@a(fE6CMHiY;Jt$o1$Vr#k?_iY|gT9fGx)VpDB} zTuB$X3l6z|cad8SxlLWOZS7a5>3C}aE zK6yQa=N`iIB&%DVhw$tnJgco#b3zrsa|=!AGkQtGabai}d$pFwG==7zn1lv?#UfL) zLO8+7GQ9c7oK#6gBDDgix|BsO zSN&G~Eb>Ev^G|_OqB<|)+!Qzm1x}G_pNMnWocoV}I372mSbl#IB=)P)MH2X47dWE? z&Tdt#h;zV9C;cM;CfzQGa7UR+n^bj=pQ*G-;M@>6nW~>foYey7I5^F3m5Rcb2;sR1 z|Msn|qVPFF_%ejAd25L%e1=Y7Oa^20TWKPOMhG9mGMGP56rL!A`>+h=dx*k^3E{R9 zWH8@kuPvcUB8BjOBYgDye~H3_gz&Nw9Wr?Hh=}1WFg`iu<~99_SOMt_|QVv>L4i|);WAhCQ3a*H7=C_XXBtJf||T_BGhl3%}7OAN)p{-0&M=O6mL@ z+aSk!ozxa)^4xKJV(J05)YzKII2iY&0Ji~;0Ji|ufSZnIJ#Yo!!eHE8X98CNX8{iZ zKLbty9spSQSAbsumjEXL*8xnn1aKZu1UNhhU*`kf1Xv142P6Ta0RDgm@LhrHfPV#C z0jOeFJnZ>w$HQ8{Y`|i`Qb0OD1DFm-07L*>0kw#93sCn05+8sql_=cw1XLx_>~CTs zTWl}YOsq+((bVv`Zoy2r+W1n<_!?OrW;4bH0WUSus&C@Fk7HfQY_%Z_J4#_R=ya5V z=av}fYcuUrR|7ulk?Eyor!=GS`8A%~*GlJ{R-p$wWgMl=R%7e(iKk4%%L|>=<1?l} zAl67rPb=U^XY};?=|pdyTV*^=NLUtllMFQU+eq*{4K(#zr5}@iD`S-UA}$UkfnTSm zYrhQz|Dm4l{WcNAL<4>Bt#UTch3GM3)<63;hKr-xqboS>k&VOkkvM$8h3Bdaft~x~ z9Ws_m7JiZU$LnDsgvW6rQ*^Mw9^}K(m{As{Afmde%xOeK!pD2yGpe@2ZT$OL;+R6-<6wFU?aG^SCNZcYmjn zbKGqUt@ti5)X#6&dg{b z?i{^Kp%addRFuQ(+cflCs8oy1t8>Z(j!U<&70*olM>Uc>jyr&zD~{W1i^A`2Y;1At zvTEl}${UUEG?m59uwt?6YS7c06 ze~}@G7JRRS4`rC?`R@}wjaILx&TG;k7iy;N7c{yA%%@hx#;MbJnZh%dRa|%mtGJ7N zj*8>9SVv(yo#Udc1GI2aP*W`7!abbu6oQK@iCKZT_zY`XqXeg5`~6VMy6lJ-K4Qgj z`22pzR*Nf`wcpESLVsracXrt6YaOeN|R3)czw=bK0V!XQ4AK zwCO_7M2=f+>9^xh!G}wTL_tDq5c;m5u!HH#ES|~uq^DuejK~< zv+!avJT1T+UOWW>zLwkAmG(or@`~HSt~7kaLa$y7(s4NE=w0|6e0>p0HOt(iFrZ+d zaD?iUXPn|z=sJAhJdVpW->80VL7;kEtz5$4=F(YgK)t4(f^BEC2V;8mFSyGUm{zistO%xx~is;yG}`OXfMk7fj}%ZE;*84qf=i@q%KrBo;dVpHa|4Y3Xj3 zKzunhMjeMr^S6+g?uK!y;NOUqf8UL(%~2@&C8HZl(A12$JlG4OE3AOoU0IRu<0?zepHM3V9j$H*KVcQ zQP~swAskM;$+@N2RHRT7-#r(k8h+yIW*8rIm;u!kS%%5is1 zv3ak7qcO_Vv3XNoaH<%QFUQ)0<9;^Lgv)v+YdR72Q?g_*hi$YZVH8LfT%^<(FPu*% z2v0>uj{eVR?oY`iNcF{(a|B4*QVIUSqOG30Qh!))$ZL<*VyzM2r=)Lz;gJDrt z8!G}aPXX+Gj*uCEUjq=<3zHzg8FZBPOfYr?UXAqQIBl0qE*j{RtAT+j4pl;IlBo4+ zQoB2gUCUUOMOFU_j78h;5+~14#g{;_`~1AfjuPz@R10t`1vhDbEf+1CQy&p2eZTWRLCs9`6&$oL}ZQ+A#Db?8(i zB%R}krnS=B*P?VAyF`1Wuj0)riE;y9p*V4jeL8`|_ZH*x8n`o77qwW4pP3{Xg<5`q zQ;G&`R8{e{s*X6GLYxEL;+#aBS|QFQA#M-~7ocr$>T?1a{h|gC) zlBy@5lWxHH^m0uHt+6ON=@g5lx+6T%a=Md_vwYM^53@|~q+={M9(Tw`T0Vcghc6lW zDU5Wbx`WDN6g~3qQ99m=RRpcYS?JD-er%ISQ1h^L*MPj~UOyYs0EPX{`m ze#TQ#=hG$Yz{d|4v(%SatMKJLm73WEPnH*Jrqa0;FVAk^a?Rrk_AhuSEQ6Br);>zs zI_21p${R3qxo42~Z0B}-JMEYxntcIOF;uoxS}_$Vt~9?`pjb3#E?YjS^ZxdzL!ws2 zBnCiYo|*br#wgBM*J|E(^s4VT#s=?-1{`6@P>m%RQY-z@lWZ0q_gd+?${=Zul@?S6 z#b;aRYG!qd%HD`$5m#9MqIsnokG&Dcc=K_}g;dgUuljmWyvCZQN$MuaUUOrT3Dy@n zPh2{bW3Ra}-e4=8eLZ$?1A54$q6S?4V1b_2p`9<{bwn6jKO3)(Gj5B8p1&RQR5J^#F$fTLH@eGXU{` zP=FLr9f<`bK#nf&0PqIDd_ZdCiIq1JB~)KEk;eU}-E|FpAl5dx6 z^(95lN*wvQq?h`VORm$_MvJ@~b_FUJhodlTMER6nDW1LurAtJf{a~bC%cnl3dq> zDqnKlReso;JaCh5^(LF#M6UNFw;1_QBIiBuk$sR` zrSk2bSV@39EtQ}5AeULG+GO%_PjX%^Kj1+&Ih}Gw;XLH!I!|Oe5t+&wj!VkRKKcn6 zKb5S7e3e9ga}3!jmERph4oH8M-5x_~o#mNh$XD)xR}#q29x;~_NP%bk`LX1dr`(!A zwtC4Ca>y&bVhrXv^1GwRBOeyh;*+2sL(cfhe;q@%^kgB`J+Hb{k0F=)9F*vg?54gf zu%PeH5(Jhj<+sL=pOx~lQKM97-Ssgj-^RoUsO5Vhk)^nM zYy`@IgUeT`cXgyRZF&a)6M$9(!A;Pw0@y9W;%^DWJ`-)riTr=y4qLUbrPhkhmDi?cAXrqm;xNgT(Vf2 zxeAztN1+|D@CU%Dz*}B#*G&YDo7JwH0{jS=r8Ds_?YblKU70*^d9i2as@cFry)qv$ zTrAJb_$zR!EK~7DyDkFpbg^^o370Qw*R4f>_B~|Y*sjZ1*RDGSy#GT8Hnr<6ereC( zJaBn=X=c%(cAbAS;uN>*Vu6c}qN4!bf4p5+0X+Tdc3nsd3UtOEFXVfqiRazGV=Nc0Aj0FL@^yY4Em_8v;y)~>r{pi4|kXr^h_|4$)K*9%ko z?_%x$B-i&ct|k7A&+#CP{e9rTj4qyIm-!ZxQC4Xc4*bx8tq$Dez}}d=GPynu%>Hp9 zdyWTY4V3*KNUR)m!atPkjR5xF3$YtO;Kw8g!2XLNmK?(K)3)|^;t<;j&*_MTmM;7c zM|a>?k)Q`K>uXr=onXPx0(=VzVWKSjTTJLg{4pf;V0;Wa7_G=HKu8`nG=-OLHNexPM|7K4gldBlQ({nX9L|f{YGc9-)FJOZ$9yG!hD%9nenqcR|K#` z0AYd2leIp}v1J?wHaLz0)hcn70GS}{z&p9>vz+0UE5MNgAl}Fh%Oa2*3*vPHF)&LN zGy!S&CEb%xewJsOaThqoaCh>%&q_=WUQf3AA~jj(3lA$O$3K~D`$d@(bO$T=9@fc$ zpM@va0OdfLkY{o)P!5#8LHNkzonI6= 2 && sub_argv[1] && sub_argv[1][0]) { len = snprintf(cmd, sizeof(cmd), "OPEN %s\n", sub_argv[1]); + } else if (sub_argc >= 1 && sub_argv[0]) { + const char *b0 = strrchr(sub_argv[0], '/'); + b0 = b0 ? (b0 + 1) : sub_argv[0]; + if (strcasecmp(b0, "xbluetooth") == 0 || strcasecmp(b0, "bluetooth") == 0) { + len = snprintf(cmd, sizeof(cmd), "OPEN bluetooth\n"); + } else { + len = snprintf(cmd, sizeof(cmd), "OPEN\n"); + } } else { len = snprintf(cmd, sizeof(cmd), "OPEN\n"); } @@ -254,6 +267,13 @@ static const char *resolve_plugin_name_from_argv0(const char *argv0) { if (strcasecmp(base, "xthemes") == 0 || strcasecmp(base, "themes") == 0) { return "themes"; } + if (strcasecmp(base, "xmodem") == 0 || strcasecmp(base, "modem") == 0) { + return "modem"; + } + if (strcasecmp(base, "xnetworks") == 0 || strcasecmp(base, "networks") == 0 || + strcasecmp(base, "xbluetooth") == 0 || strcasecmp(base, "bluetooth") == 0) { + return "networks"; + } return NULL; } diff --git a/src/dwm-plugins/modem_plugin.cpp b/src/dwm-plugins/modem_plugin.cpp new file mode 100644 index 0000000..a8d9944 --- /dev/null +++ b/src/dwm-plugins/modem_plugin.cpp @@ -0,0 +1,1638 @@ +// SPDX-License-Identifier: GPL-2.0-only +// Bananarchy Modem, Dual-SIM & PIN/PUK Manager Plugin (modem.so / xmodem) + +#include "phone_data.h" +#include "../sxmo-dwm/dwm_plugin.h" + +#include +#include +#include +#include +#include +#include +#include + +#ifdef None +#undef None +#endif + +namespace { + +using namespace bananarchy; + +volatile sig_atomic_t gRunning = 1; + +void handleSignal(int) { + gRunning = 0; +} + +enum class TabId { + SimCards = 0, + RadioInfo = 1, + ModemLog = 2, +}; + +enum class ModalMode { + None = 0, + SimActions = 1, + VerifyPin = 2, + UnblockPuk = 3, + TogglePinLock = 4, + ChangePin = 5, + UssdDialog = 6, +}; + +struct SimSlotInfo { + int slotNum = 1; + std::string state = "absent"; // present, absent, error + std::string rawState = "absent"; + std::string appType = "none"; // usim, sim, none + std::string appState = "none"; + std::string aid; + std::string pin1State = "not-initialized"; + int pin1Retries = 0; + int puk1Retries = 0; + std::string upinState = "not-initialized"; + int upinRetries = 0; + int upukRetries = 0; + + bool isActiveProvisioned = false; + bool isPreferred = false; + + bool needsPin() const { + return state == "present" && + (pin1State == "enabled-not-verified" || appState == "pin1"); + } + + bool needsPuk() const { + return state == "present" && + (pin1State == "blocked" || appState == "puk1"); + } + + bool isPinEnabled() const { + return pin1State == "enabled-not-verified" || + pin1State == "enabled-verified" || + pin1State == "blocked"; + } +}; + +struct ModemStatusData { + bool qmiAvailable = false; + int preferredSlot = 1; + int primaryGwSlot = 0; + SimSlotInfo slots[2]; + + bool mmPresent = false; + std::string mmState = "nomodem"; + std::string mmFailedReason; + std::string mmPowerState = "off"; + std::string mmUnlockRequired; + int mmPinRetries = -1; + int mmPukRetries = -1; + std::string operatorName; + std::string operatorCode; + std::string accessTech; + int signalQuality = 0; + std::string imei; + std::string ownNumber; + std::string simDbusPath; + std::string simIccid; + std::string simOperatorName; + std::string currentModes; + int modePresetIdx = 0; +}; + +struct RadioModePreset { + const char* label; + const char* allowed; + const char* preferred; +}; + +constexpr RadioModePreset kRadioModes[] = { + {"2G/3G/4G (4G Pref)", "2g|3g|4g", "4g"}, + {"2G/3G/4G (3G Pref)", "2g|3g|4g", "3g"}, + {"2G/3G (3G Pref)", "2g|3g", "3g"}, + {"4G LTE Only", "4g", "none"}, + {"3G UMTS Only", "3g", "none"}, + {"2G GSM Only", "2g", "none"}, +}; +constexpr int kNumRadioModes = + static_cast(sizeof(kRadioModes) / sizeof(kRadioModes[0])); + +struct ModemLogRow { + std::string timeStr; + std::string eventType; + std::string target; + std::string detail; +}; + +std::string shellQuote(const std::string& s) { + std::string out = "'"; + for (char c : s) { + if (c == '\'') { + out += "'\\''"; + } else { + out.push_back(c); + } + } + out.push_back('\''); + return out; +} + +void parseKvLines(const std::string& text, + std::unordered_map& out, + char sep) { + std::istringstream ss(text); + std::string line; + while (std::getline(ss, line)) { + size_t pos = line.find(sep); + if (pos == std::string::npos) continue; + std::string k = trimStr(line.substr(0, pos)); + std::string v = trimStr(line.substr(pos + 1)); + if (!k.empty()) { + out[k] = v; + } + } +} + +ModemStatusData queryModemAndSimStatus() { + ModemStatusData d; + d.slots[0].slotNum = 1; + d.slots[1].slotNum = 2; + + // 1. Query QMI UIM status for both physical slots via helper + std::string uimOut = runCaptureCmd( + "doas -n /usr/libexec/msm-modem-uim-selection status 2>/dev/null || " + "/usr/libexec/msm-modem-uim-selection status 2>/dev/null"); + std::unordered_map uimKv; + parseKvLines(uimOut, uimKv, '='); + + d.qmiAvailable = (uimKv["MODEM_AVAILABLE"] == "1"); + if (!uimKv["PREFERRED_SLOT"].empty()) { + d.preferredSlot = std::clamp(std::atoi(uimKv["PREFERRED_SLOT"].c_str()), 1, 2); + } + if (!uimKv["PRIMARY_GW_SLOT"].empty()) { + d.primaryGwSlot = std::atoi(uimKv["PRIMARY_GW_SLOT"].c_str()); + } + + for (int i = 0; i < 2; ++i) { + std::string pfx = "SLOT" + std::to_string(i + 1) + "_"; + auto& s = d.slots[i]; + s.slotNum = i + 1; + if (!uimKv[pfx + "STATE"].empty()) s.state = uimKv[pfx + "STATE"]; + if (!uimKv[pfx + "RAW_STATE"].empty()) s.rawState = uimKv[pfx + "RAW_STATE"]; + if (!uimKv[pfx + "APP_TYPE"].empty()) s.appType = uimKv[pfx + "APP_TYPE"]; + if (!uimKv[pfx + "APP_STATE"].empty()) s.appState = uimKv[pfx + "APP_STATE"]; + s.aid = uimKv[pfx + "AID"]; + if (!uimKv[pfx + "PIN1_STATE"].empty()) s.pin1State = uimKv[pfx + "PIN1_STATE"]; + if (!uimKv[pfx + "PIN1_RETRIES"].empty()) { + s.pin1Retries = std::atoi(uimKv[pfx + "PIN1_RETRIES"].c_str()); + } + if (!uimKv[pfx + "PUK1_RETRIES"].empty()) { + s.puk1Retries = std::atoi(uimKv[pfx + "PUK1_RETRIES"].c_str()); + } + if (!uimKv[pfx + "UPIN_STATE"].empty()) s.upinState = uimKv[pfx + "UPIN_STATE"]; + if (!uimKv[pfx + "UPIN_RETRIES"].empty()) { + s.upinRetries = std::atoi(uimKv[pfx + "UPIN_RETRIES"].c_str()); + } + if (!uimKv[pfx + "UPUK_RETRIES"].empty()) { + s.upukRetries = std::atoi(uimKv[pfx + "UPUK_RETRIES"].c_str()); + } + s.isActiveProvisioned = (d.primaryGwSlot == (i + 1)); + s.isPreferred = (d.preferredSlot == (i + 1)); + } + + // 2. Query ModemManager (-m any -K) + std::string mmOut = runCaptureCmd("mmcli -m any -K 2>/dev/null"); + std::unordered_map mmKv; + parseKvLines(mmOut, mmKv, ':'); + + auto cleanMmVal = [](const std::string& v) -> std::string { + return (v == "--") ? "" : v; + }; + + if (!mmKv["modem.dbus-path"].empty()) { + d.mmPresent = true; + d.mmState = cleanMmVal(mmKv["modem.generic.state"]); + d.mmFailedReason = cleanMmVal(mmKv["modem.generic.state-failed-reason"]); + d.mmPowerState = cleanMmVal(mmKv["modem.generic.power-state"]); + d.mmUnlockRequired = cleanMmVal(mmKv["modem.generic.unlock-required"]); + d.operatorName = cleanMmVal(mmKv["modem.3gpp.operator-name"]); + d.operatorCode = cleanMmVal(mmKv["modem.3gpp.operator-code"]); + d.accessTech = cleanMmVal(mmKv["modem.generic.access-technologies.value[1]"]); + if (d.accessTech.empty()) { + d.accessTech = cleanMmVal(mmKv["modem.generic.access-technologies"]); + } + std::string sigStr = cleanMmVal(mmKv["modem.generic.signal-quality.value"]); + if (!sigStr.empty()) { + d.signalQuality = std::clamp(std::atoi(sigStr.c_str()), 0, 100); + } + d.imei = cleanMmVal(mmKv["modem.3gpp.imei"]); + if (d.imei.empty()) { + d.imei = cleanMmVal(mmKv["modem.generic.equipment-identifier"]); + } + d.ownNumber = cleanMmVal(mmKv["modem.generic.own-numbers.value[1]"]); + d.simDbusPath = cleanMmVal(mmKv["modem.generic.sim"]); + d.currentModes = cleanMmVal(mmKv["modem.generic.current-modes"]); + + if (d.currentModes.find("allowed: 2g, 3g, 4g; preferred: 4g") != std::string::npos) { + d.modePresetIdx = 0; + } else if (d.currentModes.find("allowed: 2g, 3g, 4g; preferred: 3g") != std::string::npos) { + d.modePresetIdx = 1; + } else if (d.currentModes.find("allowed: 2g, 3g; preferred: 3g") != std::string::npos) { + d.modePresetIdx = 2; + } else if (d.currentModes.find("allowed: 4g") != std::string::npos) { + d.modePresetIdx = 3; + } else if (d.currentModes.find("allowed: 3g") != std::string::npos) { + d.modePresetIdx = 4; + } else if (d.currentModes.find("allowed: 2g") != std::string::npos) { + d.modePresetIdx = 5; + } + + // Parse unlock-retries if present, e.g. "sim-pin (3), sim-puk (10)" + for (int idx = 1; idx <= 6; ++idx) { + std::string rk = "modem.generic.unlock-retries.value[" + std::to_string(idx) + "]"; + std::string rv = cleanMmVal(mmKv[rk]); + if (rv.empty()) break; + if (rv.find("sim-pin (") != std::string::npos) { + size_t p = rv.find('('); + if (p != std::string::npos) d.mmPinRetries = std::atoi(rv.c_str() + p + 1); + } else if (rv.find("sim-puk (") != std::string::npos) { + size_t p = rv.find('('); + if (p != std::string::npos) d.mmPukRetries = std::atoi(rv.c_str() + p + 1); + } + } + } + + // 3. Query active SIM object if available + if (!d.simDbusPath.empty()) { + std::string simOut = runCaptureCmd( + "mmcli -i " + shellQuote(d.simDbusPath) + " -K 2>/dev/null"); + std::unordered_map simKv; + parseKvLines(simOut, simKv, ':'); + d.simIccid = cleanMmVal(simKv["sim.properties.iccid"]); + d.simOperatorName = cleanMmVal(simKv["sim.properties.operator-name"]); + if (d.operatorName.empty() && !d.simOperatorName.empty()) { + d.operatorName = d.simOperatorName; + } + } + + // Sync ModemManager lock info into active slot if QMI didn't report retries + int actIdx = (d.primaryGwSlot >= 1 && d.primaryGwSlot <= 2) + ? (d.primaryGwSlot - 1) + : (d.preferredSlot - 1); + if (actIdx >= 0 && actIdx < 2) { + if (d.mmUnlockRequired == "sim-pin" && d.slots[actIdx].pin1State == "not-initialized") { + d.slots[actIdx].state = "present"; + d.slots[actIdx].pin1State = "enabled-not-verified"; + } else if (d.mmUnlockRequired == "sim-puk") { + d.slots[actIdx].state = "present"; + d.slots[actIdx].pin1State = "blocked"; + } + if (d.mmPinRetries >= 0 && d.slots[actIdx].pin1Retries == 0) { + d.slots[actIdx].pin1Retries = d.mmPinRetries; + } + if (d.mmPukRetries >= 0 && d.slots[actIdx].puk1Retries == 0) { + d.slots[actIdx].puk1Retries = d.mmPukRetries; + } + } + + return d; +} + +std::vector loadRecentModemLog(const ContactBook& book, + size_t maxEntries = 80) { + std::vector out; + std::ifstream in(getModemLogFilePath()); + if (!in.is_open()) return out; + + std::vector lines; + std::string line; + while (std::getline(in, line)) { + if (!line.empty()) lines.push_back(line); + } + + for (auto it = lines.rbegin(); + it != lines.rend() && out.size() < maxEntries; ++it) { + size_t t1 = it->find('\t'); + if (t1 == std::string::npos) continue; + size_t t2 = it->find('\t', t1 + 1); + if (t2 == std::string::npos) continue; + size_t t3 = it->find('\t', t2 + 1); + + ModemLogRow row; + row.timeStr = formatShortTime(trimStr(it->substr(0, t1))); + row.eventType = trimStr(it->substr(t1 + 1, t2 - t1 - 1)); + std::string rawNum = trimStr( + t3 == std::string::npos ? it->substr(t2 + 1) + : it->substr(t2 + 1, t3 - t2 - 1)); + std::string cname = book.resolveName(rawNum); + row.target = cname.empty() ? rawNum : (cname + " (" + rawNum + ")"); + if (t3 != std::string::npos) { + row.detail = trimStr(it->substr(t3 + 1)); + } + out.push_back(row); + } + return out; +} + +int runModemApp(int argc, char** argv) { + gRunning = 1; + std::setlocale(LC_ALL, ""); + XSetLocaleModifiers(""); + + bool isPreload = false; + std::string openArg; + for (int i = 1; i < argc; ++i) { + if (!argv[i]) continue; + if (std::strcmp(argv[i], "--preload") == 0) { + isPreload = true; + } else if (argv[i][0] != '-' && openArg.empty()) { + openArg = argv[i]; + } + } + + std::string daemonPidPath = getPluginDaemonPidPath("modem"); + std::string activePidPath = getRuntimeFile("xmodem.pid"); + + if (isPluginDaemonAlive("modem")) { + if (!isPreload) { + sendPluginCommand("modem", + openArg.empty() ? "OPEN" : ("OPEN " + openArg)); + } + return 0; + } + + writeIntFile(daemonPidPath, static_cast(::getpid())); + int fifoFd = setupPluginDaemonFifo("modem"); + + struct sigaction sa {}; + sa.sa_handler = handleSignal; + sigemptyset(&sa.sa_mask); + sigaction(SIGINT, &sa, nullptr); + sigaction(SIGTERM, &sa, nullptr); + + Display* dpy = XOpenDisplay(nullptr); + if (!dpy) { + if (fifoFd >= 0) ::close(fifoFd); + ::unlink(daemonPidPath.c_str()); + return 1; + } + + int screen = DefaultScreen(dpy); + Window root = RootWindow(dpy, screen); + Visual* visual = DefaultVisual(dpy, screen); + Colormap cmap = DefaultColormap(dpy, screen); + + ThemeSpec initSpec; + initSpec.loadActive(dpy, screen); + + XSetWindowAttributes swa {}; + swa.override_redirect = True; + swa.background_pixel = initSpec.bgMain; + swa.border_pixel = initSpec.selBg; + swa.event_mask = ExposureMask | KeyPressMask | KeyReleaseMask | + VisibilityChangeMask | StructureNotifyMask; + + Window win = XCreateWindow( + dpy, root, kWinX, kWinY, kWinWidth, kWinHeight, 0, + DefaultDepth(dpy, screen), CopyFromParent, visual, + CWOverrideRedirect | CWBackPixel | CWBorderPixel | CWEventMask, &swa); + + XClassHint ch {}; + char resName[] = "xmodem"; + char resClass[] = "XModem"; + ch.res_name = resName; + ch.res_class = resClass; + XSetClassHint(dpy, win, &ch); + XStoreName(dpy, win, "Modem & SIM"); + + Pixmap pix = XCreatePixmap(dpy, win, kWinWidth, kWinHeight, + DefaultDepth(dpy, screen)); + GC gc = XCreateGC(dpy, pix, 0, nullptr); + XftDraw* xftDraw = XftDrawCreate(dpy, pix, visual, cmap); + + PluginTheme pt; + pt.init(dpy, screen, visual, cmap, win); + auto& layoutMain = pt.layoutMain; + auto& layoutSmall = pt.layoutSmall; + auto& layoutIcon = pt.layoutIcon; + auto& colWhite = pt.colWhite; + auto& colLight = pt.colLight; + auto& colMuted = pt.colMuted; + auto& colYellow = pt.colYellow; + auto& colGreen = pt.colGreen; + auto& colBlue = pt.colBlue; + auto& colOrange = pt.colOrange; + auto& colRed = pt.colRed; + + ContactBook book; + ModemStatusData status; + std::vector logRows; + + TabId activeTab = TabId::SimCards; + ModalMode modal = ModalMode::None; + + int simRowSel = 0; // 0 = SIM 1, 1 = SIM 2, 2 = Switch Active, 3 = Unlock PIN/PUK, 4 = PIN Lock Toggle, 5 = Change PIN + int radioRowSel = 0; // 0 = Network Mode, 1 = USSD, 2 = Modem Power, 3 = Restart MM, 4 = Refresh + int logRowSel = 0; + int actionSel = 0; + int targetSlot = 1; + + // PIN / PUK / Change PIN wizard state + int wizardStep = 0; + bool revealDigits = false; + std::string inputPin1; + std::string inputPin2; + std::string inputPin3; + std::string modalError; + + // USSD state + std::string ussdInput = "*100#"; + std::string ussdResponse; + bool ussdWaitingReply = false; + + std::string statusBanner; + int64_t statusBannerUntilMs = 0; + + bool visible = false; + int64_t openStartMs = 0; + int64_t startupIgnoreUntilMs = 0; + int64_t lastRefreshMs = 0; + bool initialSoftkeysReleased = true; + int softkeyPending = 0; + int64_t softkeyDeadlineMs = 0; + + auto setBanner = [&](const std::string& msg, int durationMs = 2400) { + statusBanner = msg; + statusBannerUntilMs = nowMs() + durationMs; + }; + + auto refreshData = [&](bool reloadLog = false) { + status = queryModemAndSimStatus(); + if (reloadLog || activeTab == TabId::ModemLog) { + book.load(); + logRows = loadRecentModemLog(book); + if (logRowSel >= static_cast(logRows.size())) { + logRowSel = std::max(0, static_cast(logRows.size()) - 1); + } + } + lastRefreshMs = nowMs(); + }; + + auto openPinOrPukModalForSlot = [&](int slotNum) { + targetSlot = std::clamp(slotNum, 1, 2); + const auto& s = status.slots[targetSlot - 1]; + wizardStep = 0; + revealDigits = false; + inputPin1.clear(); + inputPin2.clear(); + inputPin3.clear(); + modalError.clear(); + if (s.needsPuk() || status.mmUnlockRequired == "sim-puk") { + modal = ModalMode::UnblockPuk; + } else { + modal = ModalMode::VerifyPin; + } + }; + + auto applyOpenArg = [&](const std::string& arg) { + std::string a = toLowerStr(trimStr(arg)); + modal = ModalMode::None; + if (a == "unlock" || a == "pin" || a == "puk") { + activeTab = TabId::SimCards; + int lockSlot = (status.primaryGwSlot >= 1 && status.primaryGwSlot <= 2) + ? status.primaryGwSlot + : status.preferredSlot; + if (status.slots[0].needsPin() || status.slots[0].needsPuk()) { + lockSlot = 1; + } else if (status.slots[1].needsPin() || status.slots[1].needsPuk()) { + lockSlot = 2; + } + simRowSel = lockSlot - 1; + openPinOrPukModalForSlot(lockSlot); + } else if (a == "info" || a == "status" || a == "radio") { + activeTab = TabId::RadioInfo; + } else if (a == "log" || a == "logs") { + activeTab = TabId::ModemLog; + book.load(); + logRows = loadRecentModemLog(book); + } else if (a == "ussd") { + activeTab = TabId::RadioInfo; + modal = ModalMode::UssdDialog; + ussdResponse.clear(); + ussdWaitingReply = false; + } else { + activeTab = TabId::SimCards; + // If active SIM is locked, auto-highlight it + if (status.slots[0].needsPin() || status.slots[0].needsPuk()) { + simRowSel = 0; + } else if (status.slots[1].needsPin() || status.slots[1].needsPuk()) { + simRowSel = 1; + } + } + }; + + auto drawPango = [&](PangoLayout* layout, XftColor* color, int x, int y, int h, + const std::string& text, int maxW = -1) -> int { + pango_layout_set_text(layout, text.c_str(), static_cast(text.size())); + if (maxW > 0) { + pango_layout_set_width(layout, maxW * PANGO_SCALE); + pango_layout_set_ellipsize(layout, PANGO_ELLIPSIZE_END); + } else { + pango_layout_set_width(layout, -1); + pango_layout_set_ellipsize(layout, PANGO_ELLIPSIZE_NONE); + } + int tw = 0, th = 0; + pango_layout_get_pixel_size(layout, &tw, &th); + int dy = y + std::max(0, (h - th) / 2); + pango_xft_render_layout(xftDraw, color, layout, x * PANGO_SCALE, + dy * PANGO_SCALE); + return tw; + }; + + auto pangoTextWidth = [&](PangoLayout* layout, const std::string& text) -> int { + pango_layout_set_width(layout, -1); + pango_layout_set_text(layout, text.c_str(), static_cast(text.size())); + int tw = 0, th = 0; + pango_layout_get_pixel_size(layout, &tw, &th); + return tw; + }; + + auto drawSoftkeyBar = [&](const std::string& leftLabel, + const std::string& centerLabel, + const std::string& rightLabel) { + const int barY = kWinHeight - 26; + XSetForeground(dpy, gc, pt.spec.bgFooter); + XFillRectangle(dpy, pix, gc, 0, barY, kWinWidth, 26); + XSetForeground(dpy, gc, pt.spec.divider); + XDrawLine(dpy, pix, gc, 0, barY, kWinWidth, barY); + + drawPango(layoutMain, &colBlue, 6, barY, 26, leftLabel); + int cw = pangoTextWidth(layoutMain, centerLabel); + drawPango(layoutMain, &colWhite, (kWinWidth - cw) / 2, barY, 26, centerLabel); + int rw = pangoTextWidth(layoutMain, rightLabel); + drawPango(layoutMain, &colLight, kWinWidth - rw - 6, barY, 26, rightLabel); + }; + + auto drawSignalBars = [&](int x, int y, int pct) { + int bars = (pct <= 0) ? 0 : (pct < 25 ? 1 : (pct < 50 ? 2 : (pct < 75 ? 3 : 4))); + for (int i = 0; i < 4; ++i) { + int bh = 4 + i * 3; + int bx = x + i * 5; + int by = y + (14 - bh); + XSetForeground(dpy, gc, (i < bars) ? pt.spec.success : pt.spec.border); + XFillRectangle(dpy, pix, gc, bx, by, 3, bh); + } + }; + + auto maskPinStr = [&](const std::string& s) -> std::string { + if (revealDigits) return s; + return std::string(s.size(), '*'); + }; + + auto render = [&]() { + if (!visible) return; + pt.checkAndReload(); + + XSetForeground(dpy, gc, pt.spec.bgMain); + XFillRectangle(dpy, pix, gc, 0, 0, kWinWidth, kWinHeight); + + // Top Tab Bar (Y=0..30) + XSetForeground(dpy, gc, pt.spec.bgHeader); + XFillRectangle(dpy, pix, gc, 0, 0, kWinWidth, 30); + XSetForeground(dpy, gc, pt.spec.border); + XDrawLine(dpy, pix, gc, 0, 29, kWinWidth, 29); + + const char* tabLabels[3] = {"1:SIMs", "2:Radio", "3:Log"}; + int tabW = kWinWidth / 3; + for (int t = 0; t < 3; ++t) { + bool isSel = (static_cast(activeTab) == t); + if (isSel) { + XSetForeground(dpy, gc, pt.spec.selBg); + XFillRectangle(dpy, pix, gc, t * tabW, 0, tabW, 29); + XSetForeground(dpy, gc, pt.spec.accent); + XFillRectangle(dpy, pix, gc, t * tabW, 27, tabW, 2); + } + int tw = pangoTextWidth(layoutSmall, tabLabels[t]); + drawPango(layoutSmall, isSel ? &colWhite : &colMuted, + t * tabW + (tabW - tw) / 2, 0, 28, tabLabels[t]); + } + + const int contentY = 32; + const int contentH = kWinHeight - 32 - 26; + + if (activeTab == TabId::SimCards) { + // Draw SIM 1 & SIM 2 Cards (height 68px each) + for (int i = 0; i < 2; ++i) { + const auto& s = status.slots[i]; + int cardY = contentY + i * 70; + bool rowSelected = (simRowSel == i); + + XSetForeground(dpy, gc, rowSelected ? pt.spec.selBg : pt.spec.bgAltEven); + XFillRectangle(dpy, pix, gc, 4, cardY, kWinWidth - 8, 66); + XSetForeground(dpy, gc, rowSelected ? pt.spec.accent : pt.spec.border); + XDrawRectangle(dpy, pix, gc, 4, cardY, kWinWidth - 9, 65); + + drawPango(layoutIcon, s.state == "present" ? &colGreen : &colMuted, + 10, cardY + 2, 22, kIconSim); + + std::string title = "SIM Slot " + std::to_string(s.slotNum); + if (s.isActiveProvisioned) { + title += " [ACTIVE]"; + } else if (s.isPreferred) { + title += " [PREF]"; + } + drawPango(layoutMain, rowSelected ? &colWhite : &colLight, + 30, cardY + 2, 22, title, 198); + + std::string line2; + XftColor* line2Col = &colMuted; + if (s.state == "present") { + if (s.needsPuk()) { + line2 = "BLOCKED (Enter PUK)"; + line2Col = &colRed; + } else if (s.needsPin()) { + line2 = "LOCKED (Enter PIN)"; + line2Col = &colOrange; + } else if (s.isActiveProvisioned) { + std::string op = status.operatorName.empty() ? "Ready" : status.operatorName; + if (!status.ownNumber.empty()) op += " " + status.ownNumber; + line2 = op; + line2Col = &colGreen; + } else { + line2 = "Present (Standby " + s.appType + ")"; + line2Col = &colBlue; + } + } else if (s.state == "error") { + line2 = "No SIM (No ATR)"; + } else { + line2 = "Empty Slot"; + } + drawPango(layoutSmall, line2Col, 10, cardY + 24, 20, line2, 220); + + std::string line3; + if (s.state == "present") { + std::string pState = s.pin1State; + if (pState == "enabled-not-verified") pState = "PIN Req"; + else if (pState == "enabled-verified") pState = "PIN On"; + else if (pState == "disabled") pState = "PIN Off"; + else if (pState == "blocked") pState = "PUK Req"; + line3 = pState + " (PIN:" + std::to_string(s.pin1Retries) + + " PUK:" + std::to_string(s.puk1Retries) + ")"; + } else { + line3 = "Insert nano-SIM & restart/switch"; + } + drawPango(layoutSmall, rowSelected ? &colLight : &colMuted, + 10, cardY + 44, 18, line3, 220); + } + + // Quick Action Rows below the 2 SIM cards (4 rows, 24px each) + int actSlot = (simRowSel == 1) ? 2 : 1; + int otherSlot = (status.preferredSlot == 1) ? 2 : 1; + std::string quickRows[4] = { + std::string(kIconRefresh) + " Switch Active to SIM " + std::to_string(otherSlot), + std::string(kIconUnlock) + " Unlock SIM (PIN / PUK)", + std::string(kIconLock) + " Enable / Disable SIM PIN", + std::string(kIconKey) + " Change SIM PIN Code", + }; + (void)actSlot; + + int baseY = contentY + 142; + for (int r = 0; r < 4; ++r) { + int ry = baseY + r * 23; + bool isSel = (simRowSel == (r + 2)); + XSetForeground(dpy, gc, isSel ? pt.spec.selBg : ((r % 2 == 0) ? pt.spec.bgAltEven : pt.spec.bgAltOdd)); + XFillRectangle(dpy, pix, gc, 4, ry, kWinWidth - 8, 22); + drawPango(layoutSmall, isSel ? &colWhite : &colLight, + 10, ry, 22, quickRows[r], kWinWidth - 20); + } + + drawSoftkeyBar("Actions", "Select", "Close"); + } else if (activeTab == TabId::RadioInfo) { + // Modem summary card (height 102px) + XSetForeground(dpy, gc, pt.spec.bgAltEven); + XFillRectangle(dpy, pix, gc, 4, contentY, kWinWidth - 8, 102); + XSetForeground(dpy, gc, pt.spec.border); + XDrawRectangle(dpy, pix, gc, 4, contentY, kWinWidth - 9, 101); + + std::string stStr = status.mmPresent ? status.mmState : "nomodem"; + if (!status.mmFailedReason.empty()) { + stStr += " (" + status.mmFailedReason + ")"; + } + XftColor* stCol = &colRed; + if (status.mmState == "connected" || status.mmState == "registered") { + stCol = &colGreen; + } else if (status.mmState == "searching" || status.mmState == "connecting") { + stCol = &colOrange; + } + drawPango(layoutMain, stCol, 10, contentY + 2, 22, + "State: " + stStr, 185); + drawSignalBars(kWinWidth - 32, contentY + 6, status.signalQuality); + + std::string opLine = "Operator: " + + (status.operatorName.empty() ? "--" : status.operatorName); + if (!status.accessTech.empty()) { + opLine += " [" + status.accessTech + "]"; + } + drawPango(layoutSmall, &colLight, 10, contentY + 24, 18, opLine, 220); + + std::string sigLine = "Signal: " + std::to_string(status.signalQuality) + + "% | Slot: SIM " + + (status.primaryGwSlot > 0 ? std::to_string(status.primaryGwSlot) : "--"); + drawPango(layoutSmall, &colLight, 10, contentY + 42, 18, sigLine, 220); + + std::string imeiLine = "IMEI: " + (status.imei.empty() ? "--" : status.imei); + drawPango(layoutSmall, &colMuted, 10, contentY + 60, 18, imeiLine, 220); + + std::string iccidLine = "ICCID: " + + (status.simIccid.empty() ? "--" : status.simIccid); + drawPango(layoutSmall, &colMuted, 10, contentY + 78, 18, iccidLine, 220); + + // 5 Interactive Radio Control Rows + std::string modeLabel = kRadioModes[status.modePresetIdx].label; + bool powerOn = (status.mmPowerState == "on" || status.mmState == "registered" || + status.mmState == "connected" || status.mmState == "searching"); + std::string radioRows[5] = { + std::string(kIconSignal) + " Mode: < " + modeLabel + " >", + std::string(kIconPhone) + " USSD Code (" + ussdInput + ")", + std::string(kIconFlash) + " Radio Power: " + (powerOn ? "ON" : "OFF"), + std::string(kIconRefresh) + " Restart ModemManager", + std::string(kIconInfo) + " Refresh Status Now", + }; + + int baseY = contentY + 106; + for (int r = 0; r < 5; ++r) { + int ry = baseY + r * 25; + bool isSel = (radioRowSel == r); + XSetForeground(dpy, gc, isSel ? pt.spec.selBg : ((r % 2 == 0) ? pt.spec.bgAltEven : pt.spec.bgAltOdd)); + XFillRectangle(dpy, pix, gc, 4, ry, kWinWidth - 8, 24); + drawPango(layoutSmall, isSel ? &colWhite : &colLight, + 10, ry, 24, radioRows[r], kWinWidth - 20); + } + + drawSoftkeyBar("Refresh", "Apply", "Close"); + } else if (activeTab == TabId::ModemLog) { + if (logRows.empty()) { + drawPango(layoutMain, &colMuted, 16, contentY + 60, 24, + "No modem events logged."); + } else { + const int rowH = 38; + const int maxVis = contentH / rowH; // 6 rows + int startIdx = std::clamp(logRowSel - maxVis / 2, 0, + std::max(0, static_cast(logRows.size()) - maxVis)); + for (int i = 0; i < maxVis && (startIdx + i) < static_cast(logRows.size()); ++i) { + int idx = startIdx + i; + const auto& row = logRows[idx]; + int ry = contentY + i * rowH; + bool isSel = (idx == logRowSel); + + XSetForeground(dpy, gc, isSel ? pt.spec.selBg + : ((i % 2 == 0) ? pt.spec.bgAltEven : pt.spec.bgAltOdd)); + XFillRectangle(dpy, pix, gc, 0, ry, kWinWidth, rowH - 1); + + const char* ic = kIconInfo; + XftColor* icCol = &colBlue; + if (row.eventType.find("missed") != std::string::npos) { + ic = kIconMissedCall; + icCol = &colRed; + } else if (row.eventType.find("call_") != std::string::npos) { + ic = kIconPhone; + icCol = &colGreen; + } else if (row.eventType.find("txt") != std::string::npos) { + ic = kIconSms; + icCol = &colYellow; + } + drawPango(layoutIcon, icCol, 6, ry + 2, 18, ic); + drawPango(layoutSmall, isSel ? &colWhite : &colLight, + 26, ry + 2, 18, row.eventType + " | " + row.timeStr, 208); + std::string sub = row.target; + if (!row.detail.empty()) sub += " - " + row.detail; + drawPango(layoutSmall, isSel ? &colLight : &colMuted, + 26, ry + 19, 17, sub, 208); + } + } + drawSoftkeyBar("Refresh", "Call/SMS", "Close"); + } + + // Modal Overlays + if (modal == ModalMode::SimActions) { + XSetForeground(dpy, gc, pt.spec.bgOverlay); + XFillRectangle(dpy, pix, gc, 12, 44, kWinWidth - 24, 196); + XSetForeground(dpy, gc, pt.spec.accent); + XDrawRectangle(dpy, pix, gc, 12, 44, kWinWidth - 25, 195); + + std::string hdr = "SIM Slot " + std::to_string(targetSlot) + " Actions"; + drawPango(layoutMain, &colYellow, 20, 48, 24, hdr, kWinWidth - 40); + + const char* actLabels[5] = { + "Set as Active SIM Slot", + "Unlock SIM (Enter PIN)", + "Unblock SIM (Enter PUK)", + "Enable / Disable SIM PIN", + "Change SIM PIN Code", + }; + for (int i = 0; i < 5; ++i) { + int ry = 76 + i * 30; + bool isSel = (actionSel == i); + XSetForeground(dpy, gc, isSel ? pt.spec.selBg : pt.spec.bgButton); + XFillRectangle(dpy, pix, gc, 18, ry, kWinWidth - 36, 26); + drawPango(layoutSmall, isSel ? &colWhite : &colLight, + 24, ry, 26, actLabels[i], kWinWidth - 48); + } + drawSoftkeyBar("Select", "OK", "Back"); + } else if (modal == ModalMode::VerifyPin || + modal == ModalMode::UnblockPuk || + modal == ModalMode::TogglePinLock || + modal == ModalMode::ChangePin) { + XSetForeground(dpy, gc, pt.spec.bgOverlay); + XFillRectangle(dpy, pix, gc, 10, 40, kWinWidth - 20, 210); + XSetForeground(dpy, gc, pt.spec.accent); + XDrawRectangle(dpy, pix, gc, 10, 40, kWinWidth - 21, 209); + + const auto& s = status.slots[targetSlot - 1]; + std::string title; + std::string prompt; + std::string activeInput; + std::string retriesText; + + if (modal == ModalMode::VerifyPin) { + title = "Unlock SIM " + std::to_string(targetSlot) + " (PIN)"; + prompt = "Enter 4-8 digit SIM PIN:"; + activeInput = maskPinStr(inputPin1); + retriesText = "PIN attempts remaining: " + std::to_string(s.pin1Retries); + } else if (modal == ModalMode::UnblockPuk) { + title = "Unblock SIM " + std::to_string(targetSlot) + " (PUK)"; + retriesText = "PUK attempts remaining: " + std::to_string(s.puk1Retries); + if (wizardStep == 0) { + prompt = "Step 1/3: Enter 8-digit PUK:"; + activeInput = revealDigits ? inputPin1 : inputPin1; // PUK is usually visible or toggleable + } else if (wizardStep == 1) { + prompt = "Step 2/3: Enter New PIN (4-8 digits):"; + activeInput = maskPinStr(inputPin2); + } else { + prompt = "Step 3/3: Confirm New PIN:"; + activeInput = maskPinStr(inputPin3); + } + } else if (modal == ModalMode::TogglePinLock) { + bool enableTarget = !s.isPinEnabled(); + title = (enableTarget ? "Enable" : "Disable") + + std::string(" SIM ") + std::to_string(targetSlot) + " PIN"; + prompt = "Enter current SIM PIN:"; + activeInput = maskPinStr(inputPin1); + retriesText = "PIN attempts remaining: " + std::to_string(s.pin1Retries); + } else if (modal == ModalMode::ChangePin) { + title = "Change SIM " + std::to_string(targetSlot) + " PIN"; + retriesText = "PIN attempts remaining: " + std::to_string(s.pin1Retries); + if (wizardStep == 0) { + prompt = "Step 1/3: Current SIM PIN:"; + activeInput = maskPinStr(inputPin1); + } else if (wizardStep == 1) { + prompt = "Step 2/3: New SIM PIN (4-8 digits):"; + activeInput = maskPinStr(inputPin2); + } else { + prompt = "Step 3/3: Confirm New SIM PIN:"; + activeInput = maskPinStr(inputPin3); + } + } + + drawPango(layoutMain, &colYellow, 18, 46, 24, title, kWinWidth - 36); + drawPango(layoutSmall, (s.pin1Retries <= 1 && s.pin1Retries > 0) ? &colRed : &colOrange, + 18, 72, 20, retriesText, kWinWidth - 36); + drawPango(layoutSmall, &colLight, 18, 98, 20, prompt, kWinWidth - 36); + + // Input box + XSetForeground(dpy, gc, pt.spec.bgInputFocus); + XFillRectangle(dpy, pix, gc, 18, 122, kWinWidth - 36, 34); + XSetForeground(dpy, gc, pt.spec.accent); + XDrawRectangle(dpy, pix, gc, 18, 122, kWinWidth - 37, 33); + + std::string dispBox = activeInput + "_"; + drawPango(layoutMain, &colWhite, 26, 122, 34, dispBox, kWinWidth - 52); + + drawPango(layoutSmall, &colMuted, 18, 164, 18, + "Press [*] to Show/Hide digits", kWinWidth - 36); + drawPango(layoutSmall, &colMuted, 18, 182, 18, + "Press [BackSpace] to delete digit", kWinWidth - 36); + + if (!modalError.empty()) { + drawPango(layoutSmall, &colRed, 18, 204, 20, modalError, kWinWidth - 36); + } + + drawSoftkeyBar("Submit", "OK", "Cancel"); + } else if (modal == ModalMode::UssdDialog) { + XSetForeground(dpy, gc, pt.spec.bgOverlay); + XFillRectangle(dpy, pix, gc, 10, 40, kWinWidth - 20, 210); + XSetForeground(dpy, gc, pt.spec.accent); + XDrawRectangle(dpy, pix, gc, 10, 40, kWinWidth - 21, 209); + + drawPango(layoutMain, &colYellow, 18, 46, 24, + ussdWaitingReply ? "USSD Reply" : "Send USSD Code", kWinWidth - 36); + + XSetForeground(dpy, gc, pt.spec.bgInputFocus); + XFillRectangle(dpy, pix, gc, 18, 74, kWinWidth - 36, 30); + XSetForeground(dpy, gc, pt.spec.accent); + XDrawRectangle(dpy, pix, gc, 18, 74, kWinWidth - 37, 29); + drawPango(layoutMain, &colWhite, 24, 74, 30, ussdInput + "_", kWinWidth - 48); + + // Response area + XSetForeground(dpy, gc, pt.spec.bgInput); + XFillRectangle(dpy, pix, gc, 18, 110, kWinWidth - 36, 130); + std::string respText = ussdResponse.empty() + ? "Dial e.g. *100# and press Send." + : ussdResponse; + pango_layout_set_width(layoutSmall, (kWinWidth - 48) * PANGO_SCALE); + pango_layout_set_wrap(layoutSmall, PANGO_WRAP_WORD_CHAR); + pango_layout_set_text(layoutSmall, respText.c_str(), + static_cast(respText.size())); + pango_xft_render_layout(xftDraw, &colLight, layoutSmall, + 24 * PANGO_SCALE, 116 * PANGO_SCALE); + + drawSoftkeyBar("Send", "Send", "Close"); + } + + // Status Toast Banner + if (!statusBanner.empty() && nowMs() < statusBannerUntilMs) { + XSetForeground(dpy, gc, pt.spec.bgToast); + XFillRectangle(dpy, pix, gc, 8, kWinHeight - 56, kWinWidth - 16, 26); + XSetForeground(dpy, gc, pt.spec.accent); + XDrawRectangle(dpy, pix, gc, 8, kWinHeight - 56, kWinWidth - 17, 25); + drawPango(layoutSmall, &colWhite, 14, kWinHeight - 56, 26, + statusBanner, kWinWidth - 28); + } + + XCopyArea(dpy, pix, win, gc, 0, 0, kWinWidth, kWinHeight, 0, 0); + XFlush(dpy); + }; + + auto grabKeys = [&]() { + for (int i = 0; i < 6; ++i) { + if (XGrabKeyboard(dpy, win, True, GrabModeAsync, GrabModeAsync, + CurrentTime) == GrabSuccess) { + break; + } + usleep(15000); + } + }; + + auto showWindow = [&](const std::string& arg = "") { + closeOtherPlugins("modem"); + refreshData(true); + applyOpenArg(arg); + writeIntFile(activePidPath, static_cast(::getpid())); + if (!visible) { + XMapRaised(dpy, win); + visible = true; + } else { + XRaiseWindow(dpy, win); + } + openStartMs = nowMs(); + startupIgnoreUntilMs = openStartMs + 180; + initialSoftkeysReleased = (querySoftkeysDown(dpy) == 0); + softkeyPending = 0; + grabKeys(); + render(); + }; + + auto hideWindow = [&]() { + if (!visible) return; + XUngrabKeyboard(dpy, CurrentTime); + XUnmapWindow(dpy, win); + XFlush(dpy); + visible = false; + modal = ModalMode::None; + ::unlink(activePidPath.c_str()); + }; + + auto switchSimSlotNow = [&](int slotNum) { + slotNum = std::clamp(slotNum, 1, 2); + setBanner("Switching active SIM to Slot " + std::to_string(slotNum) + "..."); + render(); + int rc = 0; + runCaptureCmd("doas -n /usr/libexec/msm-modem-uim-selection switch " + + std::to_string(slotNum) + " >/dev/null 2>&1", &rc); + runAsyncCmd("sxmo_hook_statusbar.sh modem >/dev/null 2>&1"); + refreshData(false); + if (rc == 0) { + setBanner("Active SIM set to Slot " + std::to_string(slotNum)); + } else { + setBanner("Failed to switch SIM slot"); + } + }; + + auto submitModalInput = [&]() { + if (modal == ModalMode::VerifyPin) { + if (inputPin1.size() < 4 || inputPin1.size() > 8) { + modalError = "PIN must be 4 to 8 digits"; + return; + } + setBanner("Verifying SIM PIN..."); + render(); + int rc = -1; + runCaptureCmd("doas -n /usr/libexec/msm-modem-uim-selection verify-pin " + + std::to_string(targetSlot) + " " + shellQuote(inputPin1) + + " >/dev/null 2>&1", &rc); + refreshData(false); + runAsyncCmd("sxmo_hook_statusbar.sh modem >/dev/null 2>&1"); + if (rc == 0) { + modal = ModalMode::None; + setBanner("SIM " + std::to_string(targetSlot) + " unlocked"); + } else { + inputPin1.clear(); + modalError = "Incorrect PIN"; + } + } else if (modal == ModalMode::UnblockPuk) { + if (wizardStep == 0) { + if (inputPin1.size() != 8) { + modalError = "PUK must be 8 digits"; + return; + } + modalError.clear(); + wizardStep = 1; + } else if (wizardStep == 1) { + if (inputPin2.size() < 4 || inputPin2.size() > 8) { + modalError = "New PIN must be 4-8 digits"; + return; + } + modalError.clear(); + wizardStep = 2; + } else { + if (inputPin3 != inputPin2) { + inputPin3.clear(); + modalError = "PIN confirmation does not match"; + return; + } + setBanner("Unblocking SIM with PUK..."); + render(); + int rc = -1; + runCaptureCmd("doas -n /usr/libexec/msm-modem-uim-selection unblock-puk " + + std::to_string(targetSlot) + " " + shellQuote(inputPin1) + + " " + shellQuote(inputPin2) + " >/dev/null 2>&1", &rc); + refreshData(false); + runAsyncCmd("sxmo_hook_statusbar.sh modem >/dev/null 2>&1"); + if (rc == 0) { + modal = ModalMode::None; + setBanner("SIM unblocked and new PIN set"); + } else { + wizardStep = 0; + inputPin1.clear(); + inputPin2.clear(); + inputPin3.clear(); + modalError = "PUK unblock failed"; + } + } + } else if (modal == ModalMode::TogglePinLock) { + if (inputPin1.size() < 4 || inputPin1.size() > 8) { + modalError = "PIN must be 4 to 8 digits"; + return; + } + bool enableTarget = !status.slots[targetSlot - 1].isPinEnabled(); + std::string modeStr = enableTarget ? "enable" : "disable"; + setBanner((enableTarget ? "Enabling" : "Disabling") + std::string(" SIM PIN...")); + render(); + int rc = -1; + runCaptureCmd("doas -n /usr/libexec/msm-modem-uim-selection set-pin-lock " + + std::to_string(targetSlot) + " " + modeStr + " " + + shellQuote(inputPin1) + " >/dev/null 2>&1", &rc); + refreshData(false); + if (rc == 0) { + modal = ModalMode::None; + setBanner(std::string("SIM PIN protection ") + + (enableTarget ? "enabled" : "disabled")); + } else { + inputPin1.clear(); + modalError = "Failed (wrong PIN?)"; + } + } else if (modal == ModalMode::ChangePin) { + if (wizardStep == 0) { + if (inputPin1.size() < 4 || inputPin1.size() > 8) { + modalError = "Current PIN must be 4-8 digits"; + return; + } + modalError.clear(); + wizardStep = 1; + } else if (wizardStep == 1) { + if (inputPin2.size() < 4 || inputPin2.size() > 8) { + modalError = "New PIN must be 4-8 digits"; + return; + } + modalError.clear(); + wizardStep = 2; + } else { + if (inputPin3 != inputPin2) { + inputPin3.clear(); + modalError = "New PINs do not match"; + return; + } + setBanner("Changing SIM PIN..."); + render(); + int rc = -1; + runCaptureCmd("doas -n /usr/libexec/msm-modem-uim-selection change-pin " + + std::to_string(targetSlot) + " " + shellQuote(inputPin1) + + " " + shellQuote(inputPin2) + " >/dev/null 2>&1", &rc); + refreshData(false); + if (rc == 0) { + modal = ModalMode::None; + setBanner("SIM PIN changed successfully"); + } else { + wizardStep = 0; + inputPin1.clear(); + inputPin2.clear(); + inputPin3.clear(); + modalError = "Failed to change PIN"; + } + } + } else if (modal == ModalMode::UssdDialog) { + if (ussdInput.empty()) return; + ussdResponse = "Sending USSD request..."; + render(); + std::string cmd = ussdWaitingReply + ? ("mmcli -m any --3gpp-ussd-respond=" + shellQuote(ussdInput) + " 2>&1") + : ("mmcli -m any --3gpp-ussd-initiate=" + shellQuote(ussdInput) + " 2>&1"); + int rc = 0; + std::string out = trimStr(runCaptureCmd(cmd, &rc)); + ussdResponse = out.empty() ? "(No response)" : out; + std::string stOut = runCaptureCmd("mmcli -m any --3gpp-ussd-status -K 2>/dev/null"); + ussdWaitingReply = (stOut.find("user-response") != std::string::npos); + if (ussdWaitingReply) { + ussdInput.clear(); + } + } + }; + + auto applyRadioModePreset = [&](int presetIdx) { + presetIdx = (presetIdx + kNumRadioModes) % kNumRadioModes; + status.modePresetIdx = presetIdx; + const auto& p = kRadioModes[presetIdx]; + setBanner(std::string("Setting mode: ") + p.label); + render(); + std::string cmd = "mmcli -m any --set-allowed-modes=" + + shellQuote(p.allowed); + if ( std::strcmp(p.preferred, "none") != 0) { + cmd += " --set-preferred-mode=" + shellQuote(p.preferred); + } + cmd += " >/dev/null 2>&1"; + int rc = 0; + runCaptureCmd(cmd, &rc); + refreshData(false); + setBanner(rc == 0 ? (std::string("Mode: ") + p.label) : "Mode change failed"); + }; + + auto triggerSimRowAction = [&](int row) { + if (row == 0 || row == 1) { + targetSlot = row + 1; + actionSel = 0; + modal = ModalMode::SimActions; + } else if (row == 2) { + int otherSlot = (status.preferredSlot == 1) ? 2 : 1; + switchSimSlotNow(otherSlot); + } else if (row == 3) { + int slot = (status.primaryGwSlot >= 1 && status.primaryGwSlot <= 2) + ? status.primaryGwSlot + : status.preferredSlot; + openPinOrPukModalForSlot(slot); + } else if (row == 4) { + targetSlot = (status.primaryGwSlot >= 1 && status.primaryGwSlot <= 2) + ? status.primaryGwSlot + : status.preferredSlot; + wizardStep = 0; + inputPin1.clear(); + modalError.clear(); + modal = ModalMode::TogglePinLock; + } else if (row == 5) { + targetSlot = (status.primaryGwSlot >= 1 && status.primaryGwSlot <= 2) + ? status.primaryGwSlot + : status.preferredSlot; + wizardStep = 0; + inputPin1.clear(); + inputPin2.clear(); + inputPin3.clear(); + modalError.clear(); + modal = ModalMode::ChangePin; + } + }; + + auto handleLeftSoftkey = [&]() { + if (modal == ModalMode::SimActions) { + int act = actionSel; + modal = ModalMode::None; + if (act == 0) { + switchSimSlotNow(targetSlot); + } else if (act == 1) { + wizardStep = 0; + inputPin1.clear(); + modalError.clear(); + modal = ModalMode::VerifyPin; + } else if (act == 2) { + wizardStep = 0; + inputPin1.clear(); + inputPin2.clear(); + inputPin3.clear(); + modalError.clear(); + modal = ModalMode::UnblockPuk; + } else if (act == 3) { + wizardStep = 0; + inputPin1.clear(); + modalError.clear(); + modal = ModalMode::TogglePinLock; + } else if (act == 4) { + wizardStep = 0; + inputPin1.clear(); + inputPin2.clear(); + inputPin3.clear(); + modalError.clear(); + modal = ModalMode::ChangePin; + } + return; + } + if (modal != ModalMode::None) { + submitModalInput(); + return; + } + if (activeTab == TabId::SimCards) { + targetSlot = (simRowSel == 1) ? 2 : 1; + actionSel = 0; + modal = ModalMode::SimActions; + } else if (activeTab == TabId::RadioInfo) { + refreshData(false); + setBanner("Modem status refreshed"); + } else if (activeTab == TabId::ModemLog) { + refreshData(true); + setBanner("Modem log refreshed"); + } + }; + + auto handleRightSoftkey = [&]() { + if (modal != ModalMode::None) { + if (modal == ModalMode::UssdDialog) { + runAsyncCmd("mmcli -m any --3gpp-ussd-cancel >/dev/null 2>&1"); + } + modal = ModalMode::None; + return; + } + hideWindow(); + }; + + auto handleEnterKey = [&]() { + if (modal == ModalMode::SimActions) { + handleLeftSoftkey(); + return; + } + if (modal != ModalMode::None) { + submitModalInput(); + return; + } + if (activeTab == TabId::SimCards) { + triggerSimRowAction(simRowSel); + } else if (activeTab == TabId::RadioInfo) { + if (radioRowSel == 0) { + applyRadioModePreset(status.modePresetIdx + 1); + } else if (radioRowSel == 1) { + modal = ModalMode::UssdDialog; + ussdResponse.clear(); + ussdWaitingReply = false; + } else if (radioRowSel == 2) { + bool powerOn = (status.mmPowerState == "on" || + status.mmState == "registered" || + status.mmState == "connected" || + status.mmState == "searching"); + setBanner(powerOn ? "Disabling modem..." : "Enabling modem..."); + render(); + runCaptureCmd(powerOn ? "mmcli -m any -d >/dev/null 2>&1" + : "mmcli -m any -e >/dev/null 2>&1"); + refreshData(false); + runAsyncCmd("sxmo_hook_statusbar.sh modem >/dev/null 2>&1"); + } else if (radioRowSel == 3) { + setBanner("Restarting ModemManager..."); + render(); + runCaptureCmd("doas -n rc-service modemmanager restart >/dev/null 2>&1"); + refreshData(false); + setBanner("ModemManager restarted"); + } else if (radioRowSel == 4) { + refreshData(false); + setBanner("Refreshed"); + } + } else if (activeTab == TabId::ModemLog) { + if (!logRows.empty() && logRowSel >= 0 && + logRowSel < static_cast(logRows.size())) { + const auto& r = logRows[logRowSel]; + std::string num = normalizePhone(r.target); + if (!num.empty()) { + if (r.eventType.find("txt") != std::string::npos) { + hideWindow(); + if (!sendPluginCommand("sms", "OPEN thread:" + num)) { + runAsyncArgv("xsms", "tailtextlog", num.c_str()); + } + } else { + hideWindow(); + if (!sendPluginCommand("dialer", "OPEN " + num)) { + runAsyncArgv("xdialer", num.c_str()); + } + } + } + } + } + }; + + if (!isPreload) { + showWindow(openArg); + } + + int xfd = ConnectionNumber(dpy); + while (gRunning) { + while (XPending(dpy) > 0) { + XEvent ev; + XNextEvent(dpy, &ev); + if (ev.type == Expose && ev.xexpose.count == 0) { + render(); + } else if (ev.type == VisibilityNotify && visible && + ev.xvisibility.state != VisibilityUnobscured) { + XRaiseWindow(dpy, win); + } else if (ev.type == KeyRelease) { + if (!initialSoftkeysReleased && querySoftkeysDown(dpy) == 0) { + initialSoftkeysReleased = true; + } + } else if (ev.type == KeyPress && visible) { + int64_t now = nowMs(); + if (now < startupIgnoreUntilMs) continue; + + KeySym sym = XLookupKeysym(&ev.xkey, 0); + unsigned int kc = ev.xkey.keycode; + + bool isLSK = (kc == 135 || sym == XK_F1 || sym == XK_Menu || + sym == XF86XK_TaskPane); + bool isRSK = (kc == 166 || sym == XK_F2 || sym == XF86XK_Back || + sym == XK_Escape || + sym == static_cast(XF86XK_KbdLcdMenu2)); + + if (isLSK || isRSK) { + if (!initialSoftkeysReleased) continue; + int mask = querySoftkeysDown(dpy); + if (mask == 3 || (softkeyPending != 0 && + ((isLSK && softkeyPending == 2) || + (isRSK && softkeyPending == 1)))) { + softkeyPending = 0; + writeSoftkeySuppress(now + 400); + hideWindow(); + sendPluginCommand("xdrawer", "TOGGLE"); + continue; + } + softkeyPending = isLSK ? 1 : 2; + softkeyDeadlineMs = now + 90; + continue; + } + + if (sym == XF86XK_HangupPhone || sym == XK_Cancel) { + hideWindow(); + continue; + } + + // Modal numeric / code input handling + if (modal == ModalMode::VerifyPin || + modal == ModalMode::UnblockPuk || + modal == ModalMode::TogglePinLock || + modal == ModalMode::ChangePin) { + char dch = mapDialKey(sym, kc, ev.xkey.state); + if (dch == '*') { + revealDigits = !revealDigits; + render(); + continue; + } + std::string* curStr = &inputPin1; + size_t maxLen = (modal == ModalMode::UnblockPuk && wizardStep == 0) ? 8 : 8; + if ((modal == ModalMode::UnblockPuk || modal == ModalMode::ChangePin) && + wizardStep == 1) { + curStr = &inputPin2; + } else if ((modal == ModalMode::UnblockPuk || modal == ModalMode::ChangePin) && + wizardStep == 2) { + curStr = &inputPin3; + } + if (dch >= '0' && dch <= '9') { + if (curStr->size() < maxLen) { + curStr->push_back(dch); + modalError.clear(); + render(); + } + continue; + } + if (sym == XK_BackSpace || sym == XK_Delete) { + if (!curStr->empty()) { + curStr->pop_back(); + modalError.clear(); + render(); + } else if (wizardStep > 0) { + --wizardStep; + render(); + } + continue; + } + if (sym == XK_Return || sym == XK_KP_Enter) { + submitModalInput(); + render(); + continue; + } + continue; + } + + if (modal == ModalMode::UssdDialog) { + char dch = mapDialKey(sym, kc, ev.xkey.state); + if (dch != '\0') { + if (ussdInput.size() < 32) { + ussdInput.push_back(dch); + render(); + } + continue; + } + if (sym == XK_BackSpace || sym == XK_Delete) { + if (!ussdInput.empty()) { + ussdInput.pop_back(); + render(); + } + continue; + } + if (sym == XK_Return || sym == XK_KP_Enter || + sym == XF86XK_Send || sym == XF86XK_Phone || + sym == XF86XK_PickupPhone) { + submitModalInput(); + render(); + continue; + } + continue; + } + + if (modal == ModalMode::SimActions) { + if (sym == XK_Up || sym == XK_KP_Up) { + actionSel = (actionSel + 4) % 5; + render(); + } else if (sym == XK_Down || sym == XK_KP_Down) { + actionSel = (actionSel + 1) % 5; + render(); + } else if (sym == XK_Return || sym == XK_KP_Enter) { + handleEnterKey(); + render(); + } + continue; + } + + // Main View Navigation + char dch = mapDialKey(sym, kc, ev.xkey.state); + if (dch == '1') { + activeTab = TabId::SimCards; + render(); + continue; + } else if (dch == '2') { + activeTab = TabId::RadioInfo; + render(); + continue; + } else if (dch == '3') { + activeTab = TabId::ModemLog; + refreshData(true); + render(); + continue; + } + + if (sym == XK_Left || sym == XK_KP_Left) { + if (activeTab == TabId::RadioInfo && radioRowSel == 0) { + applyRadioModePreset(status.modePresetIdx - 1); + } else { + activeTab = static_cast((static_cast(activeTab) + 2) % 3); + if (activeTab == TabId::ModemLog) refreshData(true); + } + render(); + } else if (sym == XK_Right || sym == XK_KP_Right) { + if (activeTab == TabId::RadioInfo && radioRowSel == 0) { + applyRadioModePreset(status.modePresetIdx + 1); + } else { + activeTab = static_cast((static_cast(activeTab) + 1) % 3); + if (activeTab == TabId::ModemLog) refreshData(true); + } + render(); + } else if (sym == XK_Up || sym == XK_KP_Up) { + if (activeTab == TabId::SimCards) { + simRowSel = (simRowSel + 5) % 6; + } else if (activeTab == TabId::RadioInfo) { + radioRowSel = (radioRowSel + 4) % 5; + } else if (activeTab == TabId::ModemLog && !logRows.empty()) { + logRowSel = std::max(0, logRowSel - 1); + } + render(); + } else if (sym == XK_Down || sym == XK_KP_Down) { + if (activeTab == TabId::SimCards) { + simRowSel = (simRowSel + 1) % 6; + } else if (activeTab == TabId::RadioInfo) { + radioRowSel = (radioRowSel + 1) % 5; + } else if (activeTab == TabId::ModemLog && !logRows.empty()) { + logRowSel = std::min(static_cast(logRows.size()) - 1, logRowSel + 1); + } + render(); + } else if (sym == XK_Return || sym == XK_KP_Enter) { + handleEnterKey(); + render(); + } + } + } + + int timeoutMs = -1; + int64_t now = nowMs(); + if (visible) { + if (softkeyPending != 0) { + int64_t rem = softkeyDeadlineMs - now; + if (rem <= 0) { + int pend = softkeyPending; + softkeyPending = 0; + if (querySoftkeysDown(dpy) == 3) { + writeSoftkeySuppress(now + 400); + hideWindow(); + sendPluginCommand("xdrawer", "TOGGLE"); + } else if (pend == 1) { + handleLeftSoftkey(); + render(); + } else if (pend == 2) { + handleRightSoftkey(); + render(); + } + } else { + timeoutMs = static_cast(rem); + } + } + if (!statusBanner.empty()) { + int64_t bRem = statusBannerUntilMs - now; + if (bRem <= 0) { + statusBanner.clear(); + render(); + } else if (timeoutMs < 0 || bRem < timeoutMs) { + timeoutMs = static_cast(bRem); + } + } + // Periodic 5-second status refresh while visible on SIM/Radio tabs + if (modal == ModalMode::None && activeTab != TabId::ModemLog) { + int64_t rRem = (lastRefreshMs + 5000) - now; + if (rRem <= 0) { + refreshData(false); + render(); + rRem = 5000; + } + if (timeoutMs < 0 || rRem < timeoutMs) { + timeoutMs = static_cast(rRem); + } + } + } + + struct pollfd pfds[2]; + pfds[0].fd = xfd; + pfds[0].events = POLLIN; + pfds[1].fd = fifoFd; + pfds[1].events = POLLIN; + + int pr = ::poll(pfds, (fifoFd >= 0) ? 2 : 1, timeoutMs); + if (pr > 0 && fifoFd >= 0 && (pfds[1].revents & POLLIN)) { + for (const auto& cmd : readFifoLines(fifoFd)) { + if (cmd == "CLOSE") { + hideWindow(); + } else if (cmd == "RELOAD_THEME") { + pt.reload(); + if (visible) render(); + } else if (cmd == "TOGGLE") { + if (visible) hideWindow(); + else showWindow(); + } else if (cmd.rfind("OPEN", 0) == 0) { + std::string arg = (cmd.size() > 5) ? trimStr(cmd.substr(5)) : ""; + showWindow(arg); + } + } + } + } + + hideWindow(); + if (fifoFd >= 0) ::close(fifoFd); + ::unlink(daemonPidPath.c_str()); + XftDrawDestroy(xftDraw); + XFreePixmap(dpy, pix); + XFreeGC(dpy, gc); + XDestroyWindow(dpy, win); + XCloseDisplay(dpy); + return 0; +} + +int pluginInit(const DwmHostApi* host) { + if (host && host->spawn_plugin) { + host->spawn_plugin("modem", "--preload"); + } + return 0; +} + +void pluginCleanup(void) {} + +} // namespace + +extern "C" __attribute__((visibility("default"))) const DwmPlugin dwm_plugin_entry = { + DWM_PLUGIN_API_VERSION, + "modem", + "Bananarchy Dual-SIM, PIN/PUK & Modem Manager (240x320)", + pluginInit, + pluginCleanup, + nullptr, + nullptr, + nullptr, + runModemApp +}; diff --git a/src/dwm-plugins/networks_plugin.cpp b/src/dwm-plugins/networks_plugin.cpp new file mode 100644 index 0000000..2cbf112 --- /dev/null +++ b/src/dwm-plugins/networks_plugin.cpp @@ -0,0 +1,1503 @@ +// SPDX-License-Identifier: GPL-2.0-only +// Bananarchy Networks & Bluetooth Manager Plugin (networks.so / xnetworks) + +#include "phone_data.h" +#include "../sxmo-dwm/dwm_plugin.h" + +#include +#include +#include +#include +#include +#include +#include + +#ifdef None +#undef None +#endif + +namespace { + +using namespace bananarchy; + +volatile sig_atomic_t gRunning = 1; + +void handleSignal(int) { + gRunning = 0; +} + +enum class NetTab { + Wifi = 0, + Cellular = 1, + Bluetooth = 2, +}; + +enum class NetModal { + None = 0, + WifiActions = 1, + WifiPassword = 2, + ApnEditor = 3, + BtActions = 4, +}; + +enum class TextMode { + Lower = 0, // abc + Title = 1, // Abc + Upper = 2, // ABC + Num = 3, // 123 + Sym = 4, // Sym +}; + +const char* kMultiTapMap[10] = { + " 0+_-", // 0 + ".,?!@-_1:/#", // 1 + "abc2", // 2 + "def3", // 3 + "ghi4", // 4 + "jkl5", // 5 + "mno6", // 6 + "pqrs7", // 7 + "tuv8", // 8 + "wxyz9" // 9 +}; + +const char* kSymTapMap[10] = { + " 0+=", // 0 + ".,?!@1", // 1 + "_-/:;2", // 2 + "#*&$%3", // 3 + "()[]{}4", // 4 + "<>\"'`5", // 5 + "\\|^~6", // 6 + "+-=*7", // 7 + "$,.:8", // 8 + "!?;:9" // 9 +}; + +void popUtf8Char(std::string& s) { + if (s.empty()) return; + while (!s.empty() && (static_cast(s.back()) & 0xC0) == 0x80) { + s.pop_back(); + } + if (!s.empty()) s.pop_back(); +} + +std::string shellQuote(const std::string& s) { + std::string out = "'"; + for (char c : s) { + if (c == '\'') { + out += "'\\''"; + } else { + out.push_back(c); + } + } + out.push_back('\''); + return out; +} + +struct WifiApEntry { + std::string ssid; + int signal = 0; + std::string security; + bool inUse = false; + bool isSaved = false; +}; + +struct CellularNetInfo { + bool gsmConfigured = false; + bool gsmActive = false; + std::string gsmConName; + std::string apn; + std::string username; + std::string ipType = "ipv4v6"; + std::string wwanIp; + std::string wlanIp; + bool hotspotActive = false; + std::string hotspotInfo; + bool usbShareActive = false; +}; + +struct BtDeviceEntry { + std::string mac; + std::string name; + bool paired = false; + bool connected = false; +}; + +bool isWifiEnabledFast() { + std::string out = runCaptureCmd("/usr/sbin/rfkill list wifi 2>/dev/null"); + if (out.find("Soft blocked: yes") != std::string::npos || + out.find("Hard blocked: yes") != std::string::npos) { + return false; + } + std::string nm = trimStr(runCaptureCmd("nmcli radio wifi 2>/dev/null")); + if (nm == "disabled") return false; + return true; +} + +bool isBtEnabledFast() { + std::string out = runCaptureCmd("/usr/sbin/rfkill list bluetooth 2>/dev/null"); + if (out.find("Soft blocked: yes") != std::string::npos || + out.find("Hard blocked: yes") != std::string::npos) { + return false; + } + return true; +} + +std::vector queryWifiList(bool forceRescan) { + std::vector list; + std::unordered_set savedSsids; + + std::string conOut = runCaptureCmd( + "nmcli -t -f NAME,TYPE connection show 2>/dev/null"); + { + std::istringstream ss(conOut); + std::string line; + while (std::getline(ss, line)) { + size_t col = line.rfind(':'); + if (col == std::string::npos) continue; + std::string nm = line.substr(0, col); + std::string tp = line.substr(col + 1); + if (tp.find("wireless") != std::string::npos && !nm.empty()) { + savedSsids.insert(nm); + } + } + } + + std::string cmd = std::string("nmcli -t -f IN-USE,SSID,SIGNAL,SECURITY device wifi list --rescan ") + + (forceRescan ? "yes" : "no") + " 2>/dev/null"; + std::string out = runCaptureCmd(cmd); + std::istringstream ss(out); + std::string line; + std::unordered_map seenIdx; + + while (std::getline(ss, line)) { + if (line.empty()) continue; + // Parse IN-USE:SSID:SIGNAL:SECURITY (note SSID can contain escaped colons \:) + size_t c1 = line.find(':'); + if (c1 == std::string::npos) continue; + size_t c3 = line.rfind(':'); + if (c3 == std::string::npos || c3 <= c1) continue; + size_t c2 = line.rfind(':', c3 - 1); + if (c2 == std::string::npos || c2 <= c1) continue; + + std::string inUseStr = line.substr(0, c1); + std::string rawSsid = line.substr(c1 + 1, c2 - c1 - 1); + std::string sigStr = line.substr(c2 + 1, c3 - c2 - 1); + std::string secStr = line.substr(c3 + 1); + + std::string ssid; + for (size_t i = 0; i < rawSsid.size(); ++i) { + if (rawSsid[i] == '\\' && i + 1 < rawSsid.size()) { + ssid.push_back(rawSsid[++i]); + } else { + ssid.push_back(rawSsid[i]); + } + } + ssid = trimStr(ssid); + if (ssid.empty()) continue; + + WifiApEntry ap; + ap.ssid = ssid; + ap.signal = std::clamp(std::atoi(sigStr.c_str()), 0, 100); + ap.security = (secStr == "--") ? "" : trimStr(secStr); + ap.inUse = (inUseStr == "*"); + ap.isSaved = (savedSsids.count(ssid) > 0); + + auto it = seenIdx.find(ssid); + if (it == seenIdx.end()) { + seenIdx[ssid] = list.size(); + list.push_back(ap); + } else { + auto& existing = list[it->second]; + if (ap.inUse) existing.inUse = true; + if (ap.signal > existing.signal) existing.signal = ap.signal; + if (existing.security.empty() && !ap.security.empty()) { + existing.security = ap.security; + } + } + } + + std::sort(list.begin(), list.end(), + [](const WifiApEntry& a, const WifiApEntry& b) { + if (a.inUse != b.inUse) return a.inUse > b.inUse; + if (a.isSaved != b.isSaved) return a.isSaved > b.isSaved; + return a.signal > b.signal; + }); + return list; +} + +CellularNetInfo queryCellularInfo() { + CellularNetInfo info; + + std::string allCons = runCaptureCmd( + "nmcli -t -f NAME,TYPE,ACTIVE connection show 2>/dev/null"); + std::istringstream ss(allCons); + std::string line; + while (std::getline(ss, line)) { + size_t c2 = line.rfind(':'); + if (c2 == std::string::npos) continue; + size_t c1 = line.rfind(':', c2 - 1); + if (c1 == std::string::npos) continue; + std::string nm = line.substr(0, c1); + std::string tp = line.substr(c1 + 1, c2 - c1 - 1); + std::string act = line.substr(c2 + 1); + if (tp == "gsm" && info.gsmConName.empty()) { + info.gsmConfigured = true; + info.gsmConName = nm; + info.gsmActive = (act == "yes"); + } + if (nm == "Hotspot" && act == "yes") { + info.hotspotActive = true; + } + if (nm == "USBNetworkShare" && act == "yes") { + info.usbShareActive = true; + } + } + + if (info.gsmConfigured && !info.gsmConName.empty()) { + std::string det = runCaptureCmd( + "nmcli -t -f gsm.apn,gsm.username connection show " + + shellQuote(info.gsmConName) + " 2>/dev/null"); + std::istringstream ds(det); + std::string dline; + while (std::getline(ds, dline)) { + if (dline.rfind("gsm.apn:", 0) == 0) { + info.apn = trimStr(dline.substr(8)); + if (info.apn == "--") info.apn.clear(); + } else if (dline.rfind("gsm.username:", 0) == 0) { + info.username = trimStr(dline.substr(13)); + if (info.username == "--") info.username.clear(); + } + } + if (info.apn.empty()) info.apn = info.gsmConName; + } + + std::string ipOut = runCaptureCmd("ip -4 -o addr show 2>/dev/null"); + std::istringstream ips(ipOut); + while (std::getline(ips, line)) { + size_t inetPos = line.find("inet "); + if (inetPos == std::string::npos) continue; + std::string rest = line.substr(inetPos + 5); + size_t sp = rest.find(' '); + std::string cidr = (sp == std::string::npos) ? rest : rest.substr(0, sp); + if (line.find("wwan") != std::string::npos || + line.find("rmnet") != std::string::npos) { + info.wwanIp = cidr; + } else if (line.find("wlan") != std::string::npos) { + info.wlanIp = cidr; + } + } + + return info; +} + +std::vector queryBtDevices() { + std::vector out; + std::unordered_set pairedMacs; + std::unordered_set connectedMacs; + + auto parseMacSet = [](const std::string& raw, + std::unordered_set& dst) { + std::istringstream ss(raw); + std::string line; + while (std::getline(ss, line)) { + // Format: "Device XX:XX:XX:XX:XX:XX Name..." + if (line.rfind("Device ", 0) == 0 && line.size() >= 24) { + dst.insert(line.substr(7, 17)); + } + } + }; + + parseMacSet(runCaptureCmd("bluetoothctl devices Paired 2>/dev/null || " + "bluetoothctl paired-devices 2>/dev/null"), + pairedMacs); + parseMacSet(runCaptureCmd("bluetoothctl devices Connected 2>/dev/null"), + connectedMacs); + + std::string allRaw = runCaptureCmd("bluetoothctl devices 2>/dev/null"); + std::istringstream ss(allRaw); + std::string line; + while (std::getline(ss, line)) { + if (line.rfind("Device ", 0) != 0 || line.size() < 24) continue; + BtDeviceEntry d; + d.mac = line.substr(7, 17); + d.name = (line.size() > 25) ? trimStr(line.substr(25)) : d.mac; + d.paired = (pairedMacs.count(d.mac) > 0); + d.connected = (connectedMacs.count(d.mac) > 0); + out.push_back(d); + } + + std::sort(out.begin(), out.end(), + [](const BtDeviceEntry& a, const BtDeviceEntry& b) { + if (a.connected != b.connected) return a.connected > b.connected; + if (a.paired != b.paired) return a.paired > b.paired; + return a.name < b.name; + }); + return out; +} + +int runNetworksApp(int argc, char** argv) { + gRunning = 1; + std::setlocale(LC_ALL, ""); + XSetLocaleModifiers(""); + + bool isPreload = false; + std::string openArg; + + const char* base0 = std::strrchr(argv[0], '/'); + base0 = base0 ? (base0 + 1) : argv[0]; + if (base0 && (strcasecmp(base0, "xbluetooth") == 0 || + strcasecmp(base0, "bluetooth") == 0)) { + openArg = "bluetooth"; + } + + for (int i = 1; i < argc; ++i) { + if (!argv[i]) continue; + if (std::strcmp(argv[i], "--preload") == 0) { + isPreload = true; + } else if (argv[i][0] != '-') { + openArg = argv[i]; + } + } + + std::string daemonPidPath = getPluginDaemonPidPath("networks"); + std::string activePidPath = getRuntimeFile("xnetworks.pid"); + + if (isPluginDaemonAlive("networks")) { + if (!isPreload) { + sendPluginCommand("networks", + openArg.empty() ? "OPEN" : ("OPEN " + openArg)); + } + return 0; + } + + writeIntFile(daemonPidPath, static_cast(::getpid())); + int fifoFd = setupPluginDaemonFifo("networks"); + + struct sigaction sa {}; + sa.sa_handler = handleSignal; + sigemptyset(&sa.sa_mask); + sigaction(SIGINT, &sa, nullptr); + sigaction(SIGTERM, &sa, nullptr); + + Display* dpy = XOpenDisplay(nullptr); + if (!dpy) { + if (fifoFd >= 0) ::close(fifoFd); + ::unlink(daemonPidPath.c_str()); + return 1; + } + + int screen = DefaultScreen(dpy); + Window root = RootWindow(dpy, screen); + Visual* visual = DefaultVisual(dpy, screen); + Colormap cmap = DefaultColormap(dpy, screen); + + ThemeSpec initSpec; + initSpec.loadActive(dpy, screen); + + XSetWindowAttributes swa {}; + swa.override_redirect = True; + swa.background_pixel = initSpec.bgMain; + swa.border_pixel = initSpec.selBg; + swa.event_mask = ExposureMask | KeyPressMask | KeyReleaseMask | + VisibilityChangeMask | StructureNotifyMask; + + Window win = XCreateWindow( + dpy, root, kWinX, kWinY, kWinWidth, kWinHeight, 0, + DefaultDepth(dpy, screen), CopyFromParent, visual, + CWOverrideRedirect | CWBackPixel | CWBorderPixel | CWEventMask, &swa); + + XClassHint ch {}; + char resName[] = "xnetworks"; + char resClass[] = "XNetworks"; + ch.res_name = resName; + ch.res_class = resClass; + XSetClassHint(dpy, win, &ch); + XStoreName(dpy, win, "Networks & Bluetooth"); + + Pixmap pix = XCreatePixmap(dpy, win, kWinWidth, kWinHeight, + DefaultDepth(dpy, screen)); + GC gc = XCreateGC(dpy, pix, 0, nullptr); + XftDraw* xftDraw = XftDrawCreate(dpy, pix, visual, cmap); + + PluginTheme pt; + pt.init(dpy, screen, visual, cmap, win); + auto& layoutMain = pt.layoutMain; + auto& layoutSmall = pt.layoutSmall; + auto& layoutIcon = pt.layoutIcon; + auto& colWhite = pt.colWhite; + auto& colLight = pt.colLight; + auto& colMuted = pt.colMuted; + auto& colYellow = pt.colYellow; + auto& colGreen = pt.colGreen; + auto& colBlue = pt.colBlue; + auto& colOrange = pt.colOrange; + auto& colRed = pt.colRed; + + NetTab activeTab = NetTab::Wifi; + NetModal modal = NetModal::None; + + bool wifiOn = true; + std::vector wifiList; + int wifiRowSel = 0; // 0 = Wi-Fi Toggle, 1..N = AP entries + + CellularNetInfo cellInfo; + int cellRowSel = 0; // 0 = Mobile Data, 1 = Configure APN, 2 = Wi-Fi Hotspot, 3 = USB Share + + bool btOn = false; + std::vector btList; + int btRowSel = 0; // 0 = BT Power Toggle, 1 = Scan Devices, 2..N = BT devices + + int actionSel = 0; + + // Wi-Fi Password modal state + WifiApEntry targetAp; + std::string wifiPassword; + bool showPassword = false; + + // APN Editor modal state + std::string apnName; + std::string apnUser; + std::string apnPass; + int apnFieldSel = 0; // 0 = APN, 1 = Username, 2 = Password, 3 = Save + + // Bluetooth target device + BtDeviceEntry targetBt; + + // Multi-tap state for text inputs + TextMode textMode = TextMode::Lower; + int lastTapDigit = -1; + int lastTapCycle = 0; + int64_t lastTapMs = 0; + + std::string statusBanner; + int64_t statusBannerUntilMs = 0; + + bool visible = false; + int64_t openStartMs = 0; + int64_t startupIgnoreUntilMs = 0; + bool initialSoftkeysReleased = true; + int softkeyPending = 0; + int64_t softkeyDeadlineMs = 0; + + auto setBanner = [&](const std::string& msg, int durationMs = 2300) { + statusBanner = msg; + statusBannerUntilMs = nowMs() + durationMs; + }; + + auto refreshCurrentTab = [&](bool forceScan = false) { + if (activeTab == NetTab::Wifi) { + wifiOn = isWifiEnabledFast(); + if (wifiOn) { + wifiList = queryWifiList(forceScan); + } else { + wifiList.clear(); + } + int maxRow = static_cast(wifiList.size()); + if (wifiRowSel > maxRow) wifiRowSel = maxRow; + } else if (activeTab == NetTab::Cellular) { + cellInfo = queryCellularInfo(); + } else if (activeTab == NetTab::Bluetooth) { + btOn = isBtEnabledFast(); + if (btOn) { + if (forceScan) { + runCaptureCmd("bluetoothctl --timeout 5 scan on >/dev/null 2>&1"); + } + btList = queryBtDevices(); + } else { + btList.clear(); + } + int maxRow = 1 + static_cast(btList.size()); + if (btRowSel > maxRow) btRowSel = maxRow; + } + }; + + auto applyOpenArg = [&](const std::string& arg) { + std::string a = toLowerStr(trimStr(arg)); + modal = NetModal::None; + if (a == "bluetooth" || a == "bt") { + activeTab = NetTab::Bluetooth; + } else if (a == "cell" || a == "cellular" || a == "apn" || a == "hotspot") { + activeTab = NetTab::Cellular; + } else { + activeTab = NetTab::Wifi; + } + refreshCurrentTab(false); + }; + + auto textModeLabel = [&]() -> const char* { + switch (textMode) { + case TextMode::Lower: return "abc"; + case TextMode::Title: return "Abc"; + case TextMode::Upper: return "ABC"; + case TextMode::Num: return "123"; + case TextMode::Sym: return "Sym"; + } + return "abc"; + }; + + auto handleMultiTapKey = [&](std::string& targetStr, KeySym sym, + unsigned int kc, unsigned int state) -> bool { + char dch = mapDialKey(sym, kc, state); + if (dch == '#') { + textMode = static_cast((static_cast(textMode) + 1) % 5); + lastTapDigit = -1; + return true; + } + if (dch >= '0' && dch <= '9') { + int digit = dch - '0'; + int64_t now = nowMs(); + if (textMode == TextMode::Num) { + targetStr.push_back(dch); + lastTapDigit = -1; + return true; + } + const char* seq = (textMode == TextMode::Sym) + ? kSymTapMap[digit] + : kMultiTapMap[digit]; + int seqLen = static_cast(std::strlen(seq)); + if (seqLen <= 0) return false; + + if (digit == lastTapDigit && (now - lastTapMs) < 750 && !targetStr.empty()) { + popUtf8Char(targetStr); + lastTapCycle = (lastTapCycle + 1) % seqLen; + } else { + lastTapDigit = digit; + lastTapCycle = 0; + } + lastTapMs = now; + + char outCh = seq[lastTapCycle]; + if (textMode == TextMode::Upper) { + outCh = static_cast(std::toupper(static_cast(outCh))); + } else if (textMode == TextMode::Title && targetStr.empty()) { + outCh = static_cast(std::toupper(static_cast(outCh))); + } + targetStr.push_back(outCh); + return true; + } + if (sym == XK_BackSpace || sym == XK_Delete) { + if (!targetStr.empty()) { + popUtf8Char(targetStr); + lastTapDigit = -1; + return true; + } + } + // Also accept direct ASCII keysyms from XIM / hardware keyboards + if (sym >= 0x20 && sym <= 0x7e && !(state & (ControlMask | Mod1Mask))) { + targetStr.push_back(static_cast(sym)); + lastTapDigit = -1; + return true; + } + return false; + }; + + auto drawPango = [&](PangoLayout* layout, XftColor* color, int x, int y, int h, + const std::string& text, int maxW = -1) -> int { + pango_layout_set_text(layout, text.c_str(), static_cast(text.size())); + if (maxW > 0) { + pango_layout_set_width(layout, maxW * PANGO_SCALE); + pango_layout_set_ellipsize(layout, PANGO_ELLIPSIZE_END); + } else { + pango_layout_set_width(layout, -1); + pango_layout_set_ellipsize(layout, PANGO_ELLIPSIZE_NONE); + } + int tw = 0, th = 0; + pango_layout_get_pixel_size(layout, &tw, &th); + int dy = y + std::max(0, (h - th) / 2); + pango_xft_render_layout(xftDraw, color, layout, x * PANGO_SCALE, + dy * PANGO_SCALE); + return tw; + }; + + auto pangoTextWidth = [&](PangoLayout* layout, const std::string& text) -> int { + pango_layout_set_width(layout, -1); + pango_layout_set_text(layout, text.c_str(), static_cast(text.size())); + int tw = 0, th = 0; + pango_layout_get_pixel_size(layout, &tw, &th); + return tw; + }; + + auto drawSoftkeyBar = [&](const std::string& leftLabel, + const std::string& centerLabel, + const std::string& rightLabel) { + const int barY = kWinHeight - 26; + XSetForeground(dpy, gc, pt.spec.bgFooter); + XFillRectangle(dpy, pix, gc, 0, barY, kWinWidth, 26); + XSetForeground(dpy, gc, pt.spec.divider); + XDrawLine(dpy, pix, gc, 0, barY, kWinWidth, barY); + + drawPango(layoutMain, &colBlue, 6, barY, 26, leftLabel); + int cw = pangoTextWidth(layoutMain, centerLabel); + drawPango(layoutMain, &colWhite, (kWinWidth - cw) / 2, barY, 26, centerLabel); + int rw = pangoTextWidth(layoutMain, rightLabel); + drawPango(layoutMain, &colLight, kWinWidth - rw - 6, barY, 26, rightLabel); + }; + + auto render = [&]() { + if (!visible) return; + pt.checkAndReload(); + + XSetForeground(dpy, gc, pt.spec.bgMain); + XFillRectangle(dpy, pix, gc, 0, 0, kWinWidth, kWinHeight); + + // Top Tab Bar (Y=0..30) + XSetForeground(dpy, gc, pt.spec.bgHeader); + XFillRectangle(dpy, pix, gc, 0, 0, kWinWidth, 30); + XSetForeground(dpy, gc, pt.spec.border); + XDrawLine(dpy, pix, gc, 0, 29, kWinWidth, 29); + + const char* tabLabels[3] = {"1:Wi-Fi", "2:Cell/APN", "3:Bluetooth"}; + int tabW = kWinWidth / 3; + for (int t = 0; t < 3; ++t) { + bool isSel = (static_cast(activeTab) == t); + if (isSel) { + XSetForeground(dpy, gc, pt.spec.selBg); + XFillRectangle(dpy, pix, gc, t * tabW, 0, tabW, 29); + XSetForeground(dpy, gc, pt.spec.accent); + XFillRectangle(dpy, pix, gc, t * tabW, 27, tabW, 2); + } + int tw = pangoTextWidth(layoutSmall, tabLabels[t]); + drawPango(layoutSmall, isSel ? &colWhite : &colMuted, + t * tabW + (tabW - tw) / 2, 0, 28, tabLabels[t]); + } + + const int contentY = 32; + const int contentH = kWinHeight - 32 - 26; + + if (activeTab == NetTab::Wifi) { + // Row 0: Wi-Fi Power Toggle (height 32) + bool sel0 = (wifiRowSel == 0); + XSetForeground(dpy, gc, sel0 ? pt.spec.selBg : pt.spec.bgAltEven); + XFillRectangle(dpy, pix, gc, 4, contentY, kWinWidth - 8, 30); + drawPango(layoutIcon, wifiOn ? &colGreen : &colMuted, 10, contentY, 30, kIconWifi); + drawPango(layoutMain, sel0 ? &colWhite : &colLight, + 32, contentY, 30, std::string("Wi-Fi Radio: ") + (wifiOn ? "ON" : "OFF")); + drawPango(layoutIcon, wifiOn ? &colGreen : &colMuted, + kWinWidth - 28, contentY, 30, wifiOn ? kIconToggleOn : kIconToggleOff); + + int listY = contentY + 34; + int listH = contentH - 34; + if (!wifiOn) { + drawPango(layoutMain, &colMuted, 18, listY + 50, 24, + "Wi-Fi is turned off."); + } else if (wifiList.empty()) { + drawPango(layoutMain, &colMuted, 18, listY + 50, 24, + "No networks found. Press Scan."); + } else { + const int rowH = 38; + const int maxVis = listH / rowH; // 5 rows + int apSel = std::max(0, wifiRowSel - 1); + int startIdx = std::clamp(apSel - maxVis / 2, 0, + std::max(0, static_cast(wifiList.size()) - maxVis)); + for (int i = 0; i < maxVis && (startIdx + i) < static_cast(wifiList.size()); ++i) { + int idx = startIdx + i; + const auto& ap = wifiList[idx]; + int ry = listY + i * rowH; + bool isSel = (wifiRowSel == (idx + 1)); + + XSetForeground(dpy, gc, isSel ? pt.spec.selBg + : ((i % 2 == 0) ? pt.spec.bgAltEven : pt.spec.bgAltOdd)); + XFillRectangle(dpy, pix, gc, 4, ry, kWinWidth - 8, rowH - 2); + + drawPango(layoutIcon, ap.inUse ? &colGreen : (ap.isSaved ? &colBlue : &colLight), + 10, ry + 1, 20, ap.security.empty() ? kIconWifi : kIconLock); + drawPango(layoutMain, isSel ? &colWhite : &colLight, + 30, ry + 1, 20, ap.ssid, kWinWidth - 42); + + std::string sub = std::to_string(ap.signal) + "% "; + if (ap.inUse) sub += "[Connected] "; + else if (ap.isSaved) sub += "[Saved] "; + sub += ap.security.empty() ? "Open" : ap.security; + drawPango(layoutSmall, ap.inUse ? &colGreen : (isSel ? &colLight : &colMuted), + 30, ry + 19, 17, sub, kWinWidth - 42); + } + } + drawSoftkeyBar("Scan", "Select", "Close"); + } else if (activeTab == NetTab::Cellular) { + // Status Card (height 86) + XSetForeground(dpy, gc, pt.spec.bgAltEven); + XFillRectangle(dpy, pix, gc, 4, contentY, kWinWidth - 8, 86); + XSetForeground(dpy, gc, pt.spec.border); + XDrawRectangle(dpy, pix, gc, 4, contentY, kWinWidth - 9, 85); + + std::string cellSt = cellInfo.gsmActive ? "Connected" + : (cellInfo.gsmConfigured ? "Disconnected" : "Unconfigured"); + drawPango(layoutMain, cellInfo.gsmActive ? &colGreen : &colOrange, + 10, contentY + 2, 22, "Cellular: " + cellSt, 220); + drawPango(layoutSmall, &colLight, 10, contentY + 24, 18, + "APN: " + (cellInfo.apn.empty() ? "(not set)" : cellInfo.apn), 220); + drawPango(layoutSmall, &colMuted, 10, contentY + 43, 18, + "WWAN IP: " + (cellInfo.wwanIp.empty() ? "--" : cellInfo.wwanIp), 220); + drawPango(layoutSmall, &colMuted, 10, contentY + 62, 18, + "WLAN IP: " + (cellInfo.wlanIp.empty() ? "--" : cellInfo.wlanIp), 220); + + // 4 Interactive Rows + std::string rows[4] = { + std::string(kIconGlobe) + " Mobile Data: " + (cellInfo.gsmActive ? "ON" : "OFF"), + std::string(kIconEdit) + " Configure APN (" + (cellInfo.apn.empty() ? "Set" : cellInfo.apn) + ")", + std::string(kIconWifi) + " Wi-Fi Hotspot: " + (cellInfo.hotspotActive ? "ON" : "OFF"), + std::string(kIconFlash) + " USB Tethering: " + (cellInfo.usbShareActive ? "ON" : "OFF"), + }; + int baseY = contentY + 92; + for (int r = 0; r < 4; ++r) { + int ry = baseY + r * 32; + bool isSel = (cellRowSel == r); + XSetForeground(dpy, gc, isSel ? pt.spec.selBg + : ((r % 2 == 0) ? pt.spec.bgAltEven : pt.spec.bgAltOdd)); + XFillRectangle(dpy, pix, gc, 4, ry, kWinWidth - 8, 30); + drawPango(layoutSmall, isSel ? &colWhite : &colLight, + 10, ry, 30, rows[r], kWinWidth - 20); + } + drawSoftkeyBar("Refresh", "Toggle/Edit", "Close"); + } else if (activeTab == NetTab::Bluetooth) { + // Row 0: BT Power Toggle (height 28) + bool sel0 = (btRowSel == 0); + XSetForeground(dpy, gc, sel0 ? pt.spec.selBg : pt.spec.bgAltEven); + XFillRectangle(dpy, pix, gc, 4, contentY, kWinWidth - 8, 28); + drawPango(layoutIcon, btOn ? &colBlue : &colMuted, 10, contentY, 28, kIconBluetooth); + drawPango(layoutMain, sel0 ? &colWhite : &colLight, + 30, contentY, 28, std::string("Bluetooth: ") + (btOn ? "ON" : "OFF")); + drawPango(layoutIcon, btOn ? &colGreen : &colMuted, + kWinWidth - 28, contentY, 28, btOn ? kIconToggleOn : kIconToggleOff); + + // Row 1: Scan for Devices (height 26) + bool sel1 = (btRowSel == 1); + XSetForeground(dpy, gc, sel1 ? pt.spec.selBg : pt.spec.bgAltOdd); + XFillRectangle(dpy, pix, gc, 4, contentY + 30, kWinWidth - 8, 26); + drawPango(layoutIcon, &colYellow, 10, contentY + 30, 26, kIconSearch); + drawPango(layoutSmall, sel1 ? &colWhite : &colLight, + 30, contentY + 30, 26, "Scan for Bluetooth Devices"); + + int listY = contentY + 58; + int listH = contentH - 58; + if (!btOn) { + drawPango(layoutMain, &colMuted, 18, listY + 40, 24, + "Bluetooth is turned off."); + } else if (btList.empty()) { + drawPango(layoutMain, &colMuted, 18, listY + 40, 24, + "No devices. Select Scan."); + } else { + const int rowH = 38; + const int maxVis = listH / rowH; // 4 rows + int devSel = std::max(0, btRowSel - 2); + int startIdx = std::clamp(devSel - maxVis / 2, 0, + std::max(0, static_cast(btList.size()) - maxVis)); + for (int i = 0; i < maxVis && (startIdx + i) < static_cast(btList.size()); ++i) { + int idx = startIdx + i; + const auto& d = btList[idx]; + int ry = listY + i * rowH; + bool isSel = (btRowSel == (idx + 2)); + + XSetForeground(dpy, gc, isSel ? pt.spec.selBg + : ((i % 2 == 0) ? pt.spec.bgAltEven : pt.spec.bgAltOdd)); + XFillRectangle(dpy, pix, gc, 4, ry, kWinWidth - 8, rowH - 2); + + drawPango(layoutIcon, d.connected ? &colGreen : (d.paired ? &colBlue : &colMuted), + 10, ry + 1, 20, kIconBluetooth); + drawPango(layoutMain, isSel ? &colWhite : &colLight, + 30, ry + 1, 20, d.name, kWinWidth - 42); + + std::string st = d.connected ? "[Connected] " + : (d.paired ? "[Paired] " : "[Available] "); + st += d.mac; + drawPango(layoutSmall, d.connected ? &colGreen : (isSel ? &colLight : &colMuted), + 30, ry + 19, 17, st, kWinWidth - 42); + } + } + drawSoftkeyBar("Scan", "Select", "Close"); + } + + // Modal Overlays + if (modal == NetModal::WifiActions) { + XSetForeground(dpy, gc, pt.spec.bgOverlay); + XFillRectangle(dpy, pix, gc, 12, 48, kWinWidth - 24, 174); + XSetForeground(dpy, gc, pt.spec.accent); + XDrawRectangle(dpy, pix, gc, 12, 48, kWinWidth - 25, 173); + + drawPango(layoutMain, &colYellow, 20, 52, 24, targetAp.ssid, kWinWidth - 40); + const char* acts[4] = { + targetAp.inUse ? "Reconnect Network" : "Connect to Network", + "Enter / Update Password", + "Disconnect Network", + "Forget Saved Network", + }; + for (int i = 0; i < 4; ++i) { + int ry = 82 + i * 32; + bool isSel = (actionSel == i); + XSetForeground(dpy, gc, isSel ? pt.spec.selBg : pt.spec.bgButton); + XFillRectangle(dpy, pix, gc, 18, ry, kWinWidth - 36, 28); + drawPango(layoutSmall, isSel ? &colWhite : &colLight, + 24, ry, 28, acts[i], kWinWidth - 48); + } + drawSoftkeyBar("Select", "OK", "Back"); + } else if (modal == NetModal::WifiPassword) { + XSetForeground(dpy, gc, pt.spec.bgOverlay); + XFillRectangle(dpy, pix, gc, 10, 42, kWinWidth - 20, 200); + XSetForeground(dpy, gc, pt.spec.accent); + XDrawRectangle(dpy, pix, gc, 10, 42, kWinWidth - 21, 199); + + drawPango(layoutMain, &colYellow, 18, 48, 22, + "Wi-Fi: " + targetAp.ssid, kWinWidth - 80); + drawPango(layoutSmall, &colBlue, kWinWidth - 58, 48, 22, + std::string("[") + textModeLabel() + "]"); + + drawPango(layoutSmall, &colLight, 18, 76, 20, "Enter WPA/WEP Passphrase:"); + + XSetForeground(dpy, gc, pt.spec.bgInputFocus); + XFillRectangle(dpy, pix, gc, 18, 100, kWinWidth - 36, 34); + XSetForeground(dpy, gc, pt.spec.accent); + XDrawRectangle(dpy, pix, gc, 18, 100, kWinWidth - 37, 33); + + std::string disp = showPassword ? wifiPassword + : std::string(wifiPassword.size(), '*'); + drawPango(layoutMain, &colWhite, 24, 100, 34, disp + "_", kWinWidth - 48); + + drawPango(layoutSmall, &colMuted, 18, 144, 18, + "[#] Cycle input mode (abc/Abc/ABC/123/Sym)"); + drawPango(layoutSmall, &colMuted, 18, 164, 18, + "[*] Toggle Show/Hide password"); + drawPango(layoutSmall, &colMuted, 18, 184, 18, + "[BackSpace] Delete character"); + + drawSoftkeyBar("Connect", "Connect", "Cancel"); + } else if (modal == NetModal::ApnEditor) { + XSetForeground(dpy, gc, pt.spec.bgOverlay); + XFillRectangle(dpy, pix, gc, 10, 36, kWinWidth - 20, 220); + XSetForeground(dpy, gc, pt.spec.accent); + XDrawRectangle(dpy, pix, gc, 10, 36, kWinWidth - 21, 219); + + drawPango(layoutMain, &colYellow, 18, 40, 22, "Cellular APN Setup"); + drawPango(layoutSmall, &colBlue, kWinWidth - 58, 40, 22, + std::string("[") + textModeLabel() + "]"); + + const char* labels[3] = {"APN Name:", "Username (optional):", "Password (optional):"}; + std::string vals[3] = {apnName, apnUser, apnPass}; + for (int f = 0; f < 3; ++f) { + int fy = 66 + f * 44; + bool isF = (apnFieldSel == f); + drawPango(layoutSmall, isF ? &colYellow : &colMuted, 18, fy, 16, labels[f]); + XSetForeground(dpy, gc, isF ? pt.spec.bgInputFocus : pt.spec.bgInput); + XFillRectangle(dpy, pix, gc, 18, fy + 16, kWinWidth - 36, 24); + XSetForeground(dpy, gc, isF ? pt.spec.accent : pt.spec.border); + XDrawRectangle(dpy, pix, gc, 18, fy + 16, kWinWidth - 37, 23); + drawPango(layoutSmall, &colWhite, 22, fy + 16, 24, + vals[f] + (isF ? "_" : ""), kWinWidth - 44); + } + + bool saveSel = (apnFieldSel == 3); + XSetForeground(dpy, gc, saveSel ? pt.spec.selBg : pt.spec.bgButton); + XFillRectangle(dpy, pix, gc, 18, 202, kWinWidth - 36, 26); + drawPango(layoutMain, saveSel ? &colWhite : &colGreen, + 50, 202, 26, "Save & Activate APN"); + + drawSoftkeyBar("Save", "Select", "Cancel"); + } else if (modal == NetModal::BtActions) { + XSetForeground(dpy, gc, pt.spec.bgOverlay); + XFillRectangle(dpy, pix, gc, 12, 48, kWinWidth - 24, 174); + XSetForeground(dpy, gc, pt.spec.accent); + XDrawRectangle(dpy, pix, gc, 12, 48, kWinWidth - 25, 173); + + drawPango(layoutMain, &colYellow, 20, 52, 24, targetBt.name, kWinWidth - 40); + const char* acts[4] = { + "Connect Device", + "Disconnect Device", + "Pair & Trust Device", + "Forget / Remove Device", + }; + for (int i = 0; i < 4; ++i) { + int ry = 82 + i * 32; + bool isSel = (actionSel == i); + XSetForeground(dpy, gc, isSel ? pt.spec.selBg : pt.spec.bgButton); + XFillRectangle(dpy, pix, gc, 18, ry, kWinWidth - 36, 28); + drawPango(layoutSmall, isSel ? &colWhite : &colLight, + 24, ry, 28, acts[i], kWinWidth - 48); + } + drawSoftkeyBar("Select", "OK", "Back"); + } + + if (!statusBanner.empty() && nowMs() < statusBannerUntilMs) { + XSetForeground(dpy, gc, pt.spec.bgToast); + XFillRectangle(dpy, pix, gc, 8, kWinHeight - 56, kWinWidth - 16, 26); + XSetForeground(dpy, gc, pt.spec.accent); + XDrawRectangle(dpy, pix, gc, 8, kWinHeight - 56, kWinWidth - 17, 25); + drawPango(layoutSmall, &colWhite, 14, kWinHeight - 56, 26, + statusBanner, kWinWidth - 28); + } + + XCopyArea(dpy, pix, win, gc, 0, 0, kWinWidth, kWinHeight, 0, 0); + XFlush(dpy); + }; + + auto grabKeys = [&]() { + for (int i = 0; i < 6; ++i) { + if (XGrabKeyboard(dpy, win, True, GrabModeAsync, GrabModeAsync, + CurrentTime) == GrabSuccess) { + break; + } + usleep(15000); + } + }; + + auto showWindow = [&](const std::string& arg = "") { + closeOtherPlugins("networks"); + applyOpenArg(arg); + writeIntFile(activePidPath, static_cast(::getpid())); + if (!visible) { + XMapRaised(dpy, win); + visible = true; + } else { + XRaiseWindow(dpy, win); + } + openStartMs = nowMs(); + startupIgnoreUntilMs = openStartMs + 180; + initialSoftkeysReleased = (querySoftkeysDown(dpy) == 0); + softkeyPending = 0; + grabKeys(); + render(); + }; + + auto hideWindow = [&]() { + if (!visible) return; + XUngrabKeyboard(dpy, CurrentTime); + XUnmapWindow(dpy, win); + XFlush(dpy); + visible = false; + modal = NetModal::None; + ::unlink(activePidPath.c_str()); + }; + + auto connectWifiNow = [&](const std::string& ssid, const std::string& pass) { + modal = NetModal::None; + setBanner("Connecting to " + ssid + "..."); + render(); + int rc = 0; + std::string cmd = "nmcli device wifi connect " + shellQuote(ssid); + if (!pass.empty()) { + cmd += " password " + shellQuote(pass); + } + cmd += " >/dev/null 2>&1"; + runCaptureCmd(cmd, &rc); + refreshCurrentTab(false); + runAsyncCmd("sxmo_hook_statusbar.sh wifi >/dev/null 2>&1"); + setBanner(rc == 0 ? ("Connected to " + ssid) : ("Failed to connect to " + ssid)); + }; + + auto saveAndConnectApn = [&]() { + std::string cleanApn = trimStr(apnName); + if (cleanApn.empty()) { + setBanner("APN name cannot be empty"); + return; + } + modal = NetModal::None; + setBanner("Saving APN " + cleanApn + "..."); + render(); + if (cellInfo.gsmConfigured && !cellInfo.gsmConName.empty()) { + runCaptureCmd("nmcli connection delete " + + shellQuote(cellInfo.gsmConName) + " >/dev/null 2>&1"); + } + std::string cmd = "nmcli connection add type gsm con-name " + + shellQuote(cleanApn) + " ifname '*' apn " + + shellQuote(cleanApn) + " connection.autoconnect yes"; + if (!trimStr(apnUser).empty()) { + cmd += " gsm.username " + shellQuote(trimStr(apnUser)); + } + if (!trimStr(apnPass).empty()) { + cmd += " gsm.password " + shellQuote(trimStr(apnPass)); + } + cmd += " >/dev/null 2>&1 && nmcli connection up " + + shellQuote(cleanApn) + " >/dev/null 2>&1"; + int rc = 0; + runCaptureCmd(cmd, &rc); + refreshCurrentTab(false); + runAsyncCmd("sxmo_hook_statusbar.sh modem >/dev/null 2>&1"); + setBanner(rc == 0 ? ("Connected APN: " + cleanApn) : ("Saved APN: " + cleanApn)); + }; + + auto executeWifiAction = [&](int act) { + modal = NetModal::None; + if (act == 0) { + if (!targetAp.security.empty() && !targetAp.isSaved && !targetAp.inUse) { + wifiPassword.clear(); + showPassword = false; + modal = NetModal::WifiPassword; + } else { + setBanner("Connecting to " + targetAp.ssid + "..."); + render(); + int rc = 0; + if (targetAp.isSaved) { + runCaptureCmd("nmcli connection up " + shellQuote(targetAp.ssid) + + " >/dev/null 2>&1", &rc); + } else { + runCaptureCmd("nmcli device wifi connect " + shellQuote(targetAp.ssid) + + " >/dev/null 2>&1", &rc); + } + refreshCurrentTab(false); + runAsyncCmd("sxmo_hook_statusbar.sh wifi >/dev/null 2>&1"); + setBanner(rc == 0 ? ("Connected: " + targetAp.ssid) : "Connection failed"); + } + } else if (act == 1) { + wifiPassword.clear(); + showPassword = false; + modal = NetModal::WifiPassword; + } else if (act == 2) { + runCaptureCmd("nmcli connection down " + shellQuote(targetAp.ssid) + + " >/dev/null 2>&1"); + refreshCurrentTab(false); + runAsyncCmd("sxmo_hook_statusbar.sh wifi >/dev/null 2>&1"); + setBanner("Disconnected " + targetAp.ssid); + } else if (act == 3) { + runCaptureCmd("nmcli connection delete " + shellQuote(targetAp.ssid) + + " >/dev/null 2>&1"); + refreshCurrentTab(false); + runAsyncCmd("sxmo_hook_statusbar.sh wifi >/dev/null 2>&1"); + setBanner("Forgot " + targetAp.ssid); + } + }; + + auto executeBtAction = [&](int act) { + modal = NetModal::None; + int rc = 0; + if (act == 0) { + setBanner("Connecting " + targetBt.name + "..."); + render(); + runCaptureCmd("bluetoothctl connect " + shellQuote(targetBt.mac) + + " >/dev/null 2>&1", &rc); + refreshCurrentTab(false); + setBanner(rc == 0 ? ("Connected: " + targetBt.name) : "Connect failed"); + } else if (act == 1) { + setBanner("Disconnecting " + targetBt.name + "..."); + render(); + runCaptureCmd("bluetoothctl disconnect " + shellQuote(targetBt.mac) + + " >/dev/null 2>&1", &rc); + refreshCurrentTab(false); + setBanner("Disconnected " + targetBt.name); + } else if (act == 2) { + setBanner("Pairing " + targetBt.name + "..."); + render(); + runCaptureCmd("bluetoothctl --timeout 8 pair " + shellQuote(targetBt.mac) + + " >/dev/null 2>&1; bluetoothctl trust " + + shellQuote(targetBt.mac) + " >/dev/null 2>&1; " + "bluetoothctl connect " + shellQuote(targetBt.mac) + + " >/dev/null 2>&1", &rc); + refreshCurrentTab(false); + setBanner("Paired & trusted " + targetBt.name); + } else if (act == 3) { + runCaptureCmd("bluetoothctl remove " + shellQuote(targetBt.mac) + + " >/dev/null 2>&1", &rc); + refreshCurrentTab(false); + setBanner("Removed " + targetBt.name); + } + }; + + auto handleEnterKey = [&]() { + if (modal == NetModal::WifiActions) { + executeWifiAction(actionSel); + return; + } + if (modal == NetModal::WifiPassword) { + connectWifiNow(targetAp.ssid, wifiPassword); + return; + } + if (modal == NetModal::ApnEditor) { + if (apnFieldSel == 3) { + saveAndConnectApn(); + } else { + apnFieldSel = (apnFieldSel + 1) % 4; + } + return; + } + if (modal == NetModal::BtActions) { + executeBtAction(actionSel); + return; + } + + if (activeTab == NetTab::Wifi) { + if (wifiRowSel == 0) { + setBanner(wifiOn ? "Turning Wi-Fi OFF..." : "Turning Wi-Fi ON..."); + render(); + runCaptureCmd("doas -n sxmo_wifitoggle.sh " + + std::string(wifiOn ? "off" : "on") + " >/dev/null 2>&1"); + refreshCurrentTab(false); + runAsyncCmd("sxmo_hook_statusbar.sh wifi >/dev/null 2>&1"); + } else if (wifiRowSel - 1 < static_cast(wifiList.size())) { + targetAp = wifiList[wifiRowSel - 1]; + if (!targetAp.inUse && !targetAp.isSaved && !targetAp.security.empty()) { + wifiPassword.clear(); + showPassword = false; + modal = NetModal::WifiPassword; + } else { + actionSel = 0; + modal = NetModal::WifiActions; + } + } + } else if (activeTab == NetTab::Cellular) { + if (cellRowSel == 0) { + if (!cellInfo.gsmConfigured) { + apnName = cellInfo.apn; + apnUser = cellInfo.username; + apnPass.clear(); + apnFieldSel = 0; + modal = NetModal::ApnEditor; + } else { + bool turnOn = !cellInfo.gsmActive; + setBanner(turnOn ? "Enabling Mobile Data..." : "Disabling Mobile Data..."); + render(); + runCaptureCmd("nmcli connection " + std::string(turnOn ? "up " : "down ") + + shellQuote(cellInfo.gsmConName) + " >/dev/null 2>&1"); + refreshCurrentTab(false); + } + } else if (cellRowSel == 1) { + apnName = cellInfo.apn; + apnUser = cellInfo.username; + apnPass.clear(); + apnFieldSel = 0; + modal = NetModal::ApnEditor; + } else if (cellRowSel == 2) { + if (cellInfo.hotspotActive) { + setBanner("Stopping Wi-Fi Hotspot..."); + render(); + runCaptureCmd("nmcli connection delete Hotspot >/dev/null 2>&1"); + refreshCurrentTab(false); + setBanner("Hotspot stopped"); + } else { + setBanner("Starting Wi-Fi Hotspot..."); + render(); + std::string hsOut = trimStr(runCaptureCmd( + "nmcli device wifi hotspot 2>&1")); + refreshCurrentTab(false); + setBanner(hsOut.empty() ? "Hotspot active" : hsOut, 4000); + } + runAsyncCmd("sxmo_hook_statusbar.sh wifi >/dev/null 2>&1"); + } else if (cellRowSel == 3) { + if (cellInfo.usbShareActive) { + setBanner("Stopping USB Tethering..."); + render(); + runCaptureCmd("nmcli connection delete USBNetworkShare >/dev/null 2>&1"); + refreshCurrentTab(false); + setBanner("USB Tethering stopped"); + } else { + setBanner("Starting USB Tethering..."); + render(); + runCaptureCmd("nmcli connection add type ethernet ifname usb0 " + "con-name USBNetworkShare ipv4.method shared >/dev/null 2>&1 && " + "nmcli connection up USBNetworkShare >/dev/null 2>&1"); + refreshCurrentTab(false); + setBanner("USB Tethering active"); + } + } + } else if (activeTab == NetTab::Bluetooth) { + if (btRowSel == 0) { + setBanner(btOn ? "Turning Bluetooth OFF..." : "Turning Bluetooth ON..."); + render(); + runCaptureCmd("SXMO_OS=alpine doas -n sxmo_bluetoothtoggle.sh " + + std::string(btOn ? "off" : "on") + " >/dev/null 2>&1"); + refreshCurrentTab(false); + } else if (btRowSel == 1) { + setBanner("Scanning Bluetooth devices (5s)..."); + render(); + refreshCurrentTab(true); + setBanner("Found " + std::to_string(btList.size()) + " device(s)"); + } else if (btRowSel - 2 < static_cast(btList.size())) { + targetBt = btList[btRowSel - 2]; + actionSel = 0; + modal = NetModal::BtActions; + } + } + }; + + auto handleLeftSoftkey = [&]() { + if (modal == NetModal::ApnEditor) { + saveAndConnectApn(); + return; + } + if (modal != NetModal::None) { + handleEnterKey(); + return; + } + if (activeTab == NetTab::Wifi) { + setBanner("Scanning Wi-Fi networks..."); + render(); + refreshCurrentTab(true); + setBanner("Found " + std::to_string(wifiList.size()) + " network(s)"); + } else if (activeTab == NetTab::Cellular) { + refreshCurrentTab(false); + setBanner("Refreshed cellular state"); + } else if (activeTab == NetTab::Bluetooth) { + setBanner("Scanning Bluetooth (5s)..."); + render(); + refreshCurrentTab(true); + setBanner("Found " + std::to_string(btList.size()) + " device(s)"); + } + }; + + auto handleRightSoftkey = [&]() { + if (modal != NetModal::None) { + modal = NetModal::None; + return; + } + hideWindow(); + }; + + if (!isPreload) { + showWindow(openArg); + } + + int xfd = ConnectionNumber(dpy); + while (gRunning) { + while (XPending(dpy) > 0) { + XEvent ev; + XNextEvent(dpy, &ev); + if (ev.type == Expose && ev.xexpose.count == 0) { + render(); + } else if (ev.type == VisibilityNotify && visible && + ev.xvisibility.state != VisibilityUnobscured) { + XRaiseWindow(dpy, win); + } else if (ev.type == KeyRelease) { + if (!initialSoftkeysReleased && querySoftkeysDown(dpy) == 0) { + initialSoftkeysReleased = true; + } + } else if (ev.type == KeyPress && visible) { + int64_t now = nowMs(); + if (now < startupIgnoreUntilMs) continue; + + KeySym sym = XLookupKeysym(&ev.xkey, 0); + unsigned int kc = ev.xkey.keycode; + + bool isLSK = (kc == 135 || sym == XK_F1 || sym == XK_Menu || + sym == XF86XK_TaskPane); + bool isRSK = (kc == 166 || sym == XK_F2 || sym == XF86XK_Back || + sym == XK_Escape || + sym == static_cast(XF86XK_KbdLcdMenu2)); + + if (isLSK || isRSK) { + if (!initialSoftkeysReleased) continue; + int mask = querySoftkeysDown(dpy); + if (mask == 3 || (softkeyPending != 0 && + ((isLSK && softkeyPending == 2) || + (isRSK && softkeyPending == 1)))) { + softkeyPending = 0; + writeSoftkeySuppress(now + 400); + hideWindow(); + sendPluginCommand("xdrawer", "TOGGLE"); + continue; + } + softkeyPending = isLSK ? 1 : 2; + softkeyDeadlineMs = now + 90; + continue; + } + + if (sym == XF86XK_HangupPhone || sym == XK_Cancel) { + hideWindow(); + continue; + } + + if (modal == NetModal::WifiPassword) { + char dch = mapDialKey(sym, kc, ev.xkey.state); + if (dch == '*') { + showPassword = !showPassword; + render(); + continue; + } + if (sym == XK_Return || sym == XK_KP_Enter) { + connectWifiNow(targetAp.ssid, wifiPassword); + render(); + continue; + } + if (handleMultiTapKey(wifiPassword, sym, kc, ev.xkey.state)) { + render(); + } + continue; + } + + if (modal == NetModal::ApnEditor) { + if (sym == XK_Up || sym == XK_KP_Up) { + apnFieldSel = (apnFieldSel + 3) % 4; + lastTapDigit = -1; + render(); + continue; + } + if (sym == XK_Down || sym == XK_KP_Down) { + apnFieldSel = (apnFieldSel + 1) % 4; + lastTapDigit = -1; + render(); + continue; + } + if (sym == XK_Return || sym == XK_KP_Enter) { + handleEnterKey(); + render(); + continue; + } + if (apnFieldSel < 3) { + std::string* dst = (apnFieldSel == 0) ? &apnName + : ((apnFieldSel == 1) ? &apnUser : &apnPass); + if (handleMultiTapKey(*dst, sym, kc, ev.xkey.state)) { + render(); + } + } + continue; + } + + if (modal == NetModal::WifiActions || modal == NetModal::BtActions) { + if (sym == XK_Up || sym == XK_KP_Up) { + actionSel = (actionSel + 3) % 4; + render(); + } else if (sym == XK_Down || sym == XK_KP_Down) { + actionSel = (actionSel + 1) % 4; + render(); + } else if (sym == XK_Return || sym == XK_KP_Enter) { + handleEnterKey(); + render(); + } + continue; + } + + // Main View Tab & Row Navigation + char dch = mapDialKey(sym, kc, ev.xkey.state); + if (dch == '1') { + activeTab = NetTab::Wifi; + refreshCurrentTab(false); + render(); + continue; + } else if (dch == '2') { + activeTab = NetTab::Cellular; + refreshCurrentTab(false); + render(); + continue; + } else if (dch == '3') { + activeTab = NetTab::Bluetooth; + refreshCurrentTab(false); + render(); + continue; + } + + if (sym == XK_Left || sym == XK_KP_Left) { + activeTab = static_cast((static_cast(activeTab) + 2) % 3); + refreshCurrentTab(false); + render(); + } else if (sym == XK_Right || sym == XK_KP_Right) { + activeTab = static_cast((static_cast(activeTab) + 1) % 3); + refreshCurrentTab(false); + render(); + } else if (sym == XK_Up || sym == XK_KP_Up) { + if (activeTab == NetTab::Wifi) { + int total = 1 + static_cast(wifiList.size()); + wifiRowSel = (wifiRowSel + total - 1) % total; + } else if (activeTab == NetTab::Cellular) { + cellRowSel = (cellRowSel + 3) % 4; + } else if (activeTab == NetTab::Bluetooth) { + int total = 2 + static_cast(btList.size()); + btRowSel = (btRowSel + total - 1) % total; + } + render(); + } else if (sym == XK_Down || sym == XK_KP_Down) { + if (activeTab == NetTab::Wifi) { + int total = 1 + static_cast(wifiList.size()); + wifiRowSel = (wifiRowSel + 1) % total; + } else if (activeTab == NetTab::Cellular) { + cellRowSel = (cellRowSel + 1) % 4; + } else if (activeTab == NetTab::Bluetooth) { + int total = 2 + static_cast(btList.size()); + btRowSel = (btRowSel + 1) % total; + } + render(); + } else if (sym == XK_Return || sym == XK_KP_Enter) { + handleEnterKey(); + render(); + } + } + } + + int timeoutMs = -1; + int64_t now = nowMs(); + if (visible) { + if (softkeyPending != 0) { + int64_t rem = softkeyDeadlineMs - now; + if (rem <= 0) { + int pend = softkeyPending; + softkeyPending = 0; + if (querySoftkeysDown(dpy) == 3) { + writeSoftkeySuppress(now + 400); + hideWindow(); + sendPluginCommand("xdrawer", "TOGGLE"); + } else if (pend == 1) { + handleLeftSoftkey(); + render(); + } else if (pend == 2) { + handleRightSoftkey(); + render(); + } + } else { + timeoutMs = static_cast(rem); + } + } + if (!statusBanner.empty()) { + int64_t bRem = statusBannerUntilMs - now; + if (bRem <= 0) { + statusBanner.clear(); + render(); + } else if (timeoutMs < 0 || bRem < timeoutMs) { + timeoutMs = static_cast(bRem); + } + } + } + + struct pollfd pfds[2]; + pfds[0].fd = xfd; + pfds[0].events = POLLIN; + pfds[1].fd = fifoFd; + pfds[1].events = POLLIN; + + int pr = ::poll(pfds, (fifoFd >= 0) ? 2 : 1, timeoutMs); + if (pr > 0 && fifoFd >= 0 && (pfds[1].revents & POLLIN)) { + for (const auto& cmd : readFifoLines(fifoFd)) { + if (cmd == "CLOSE") { + hideWindow(); + } else if (cmd == "RELOAD_THEME") { + pt.reload(); + if (visible) render(); + } else if (cmd == "TOGGLE") { + if (visible) hideWindow(); + else showWindow(); + } else if (cmd.rfind("OPEN", 0) == 0) { + std::string arg = (cmd.size() > 5) ? trimStr(cmd.substr(5)) : ""; + showWindow(arg); + } + } + } + } + + hideWindow(); + if (fifoFd >= 0) ::close(fifoFd); + ::unlink(daemonPidPath.c_str()); + XftDrawDestroy(xftDraw); + XFreePixmap(dpy, pix); + XFreeGC(dpy, gc); + XDestroyWindow(dpy, win); + XCloseDisplay(dpy); + return 0; +} + +int pluginInit(const DwmHostApi* host) { + if (host && host->spawn_plugin) { + host->spawn_plugin("networks", "--preload"); + } + return 0; +} + +void pluginCleanup(void) {} + +} // namespace + +extern "C" __attribute__((visibility("default"))) const DwmPlugin dwm_plugin_entry = { + DWM_PLUGIN_API_VERSION, + "networks", + "Bananarchy Wi-Fi, Cellular APN, Hotspot & Bluetooth Manager (240x320)", + pluginInit, + pluginCleanup, + nullptr, + nullptr, + nullptr, + runNetworksApp +}; diff --git a/src/dwm-plugins/phone_data.h b/src/dwm-plugins/phone_data.h index de43f09..283930b 100644 --- a/src/dwm-plugins/phone_data.h +++ b/src/dwm-plugins/phone_data.h @@ -78,6 +78,17 @@ constexpr const char* kIconSoundOff = "\xef\x91\xa6"; // U+F466 mute constexpr const char* kIconMicOn = "\xf3\xb0\x8d\xac"; // U+F036C mic on constexpr const char* kIconMicOff = "\xf3\xb0\x8d\xad"; // U+F036D mic off constexpr const char* kIconRecord = "\xef\x84\x91"; // U+F111 circle / record dot +constexpr const char* kIconLock = "\xef\x80\xa3"; // U+F023 lock +constexpr const char* kIconUnlock = "\xef\x82\x9c"; // U+F09C unlock +constexpr const char* kIconSignal = "\xef\x80\x92"; // U+F012 signal bars +constexpr const char* kIconWifi = "\xef\x87\xab"; // U+F1EB wifi +constexpr const char* kIconBluetooth = "\xef\x8a\x94"; // U+F294 bluetooth +constexpr const char* kIconGlobe = "\xef\x82\xac"; // U+F0AC globe / network +constexpr const char* kIconSliders = "\xef\x87\x9e"; // U+F1DE sliders / config +constexpr const char* kIconToggleOn = "\xef\x88\x85"; // U+F205 toggle on +constexpr const char* kIconToggleOff = "\xef\x88\x84"; // U+F204 toggle off +constexpr const char* kIconKey = "\xef\x82\x84"; // U+F084 key / PIN +constexpr const char* kIconSim = "\xef\x9f\x84"; // U+F7C4 sim card / chip inline int64_t nowMs() { struct timespec ts {}; @@ -333,6 +344,26 @@ inline void runAsyncCmd(const std::string& cmd) { } } +inline std::string runCaptureCmd(const std::string& cmd, int* exitCodeOut = nullptr) { + FILE* fp = ::popen(cmd.c_str(), "r"); + if (!fp) { + if (exitCodeOut) { + *exitCodeOut = -1; + } + return ""; + } + std::string out; + char buf[512]; + while (std::fgets(buf, sizeof(buf), fp) != nullptr) { + out += buf; + } + int status = ::pclose(fp); + if (exitCodeOut) { + *exitCodeOut = status; + } + return out; +} + inline void runAsyncArgv(const char* prog, const char* arg1 = nullptr, const char* arg2 = nullptr, @@ -1013,6 +1044,8 @@ inline void closeOtherPlugins(const char* selfPluginName) { {"xfiles.pid", "files"}, {"xcamera.pid", "camera"}, {"xthemes.pid", "themes"}, + {"xmodem.pid", "modem"}, + {"xnetworks.pid", "networks"}, }; for (const auto& p : kAllPlugins) { if (selfPluginName && std::strcmp(p.name, selfPluginName) == 0) { @@ -1039,6 +1072,8 @@ inline void broadcastThemeReload(const char* selfPluginName = nullptr) { "files", "camera", "themes", + "modem", + "networks", }; for (const char* name : kPlugins) { if (selfPluginName && std::strcmp(name, selfPluginName) == 0) { diff --git a/src/games/snake.cpp b/src/games/snake.cpp index e268cea..988684f 100644 --- a/src/games/snake.cpp +++ b/src/games/snake.cpp @@ -3,28 +3,32 @@ // bitmap font so it has no font-file dependency. // // Controls (Nokia keypad + D-pad): -// 2 / Up -> turn up 8 / Down -> turn down +// 2 / Up -> turn up 8 / Down -> turn down // 4 / Left -> turn left 6 / Right -> turn right // 5 / OK / Enter -> pause / restart (after game over) +// # / * / P -> pause / resume // Back / Esc -> quit // // Build: g++ -O2 snake.cpp -lX11 -o snake #include +#include +#include +#include +#ifndef _EVDEVK +#define _EVDEVK(_v) (0x10081000 + (_v)) +#endif +#include #include #include #include #include +#include +#include #include #include #include -#include -#include -#include -#include #include -#include -#include static const int TOPBAR = 24; static const int COLS = 24; @@ -48,21 +52,22 @@ static const Glyph GLYPHS[] = { {'G', {0b01110,0b10001,0b10000,0b10111,0b10001,0b10001,0b01111}}, {'H', {0b10001,0b10001,0b10001,0b11111,0b10001,0b10001,0b10001}}, {'I', {0b01110,0b00100,0b00100,0b00100,0b00100,0b00100,0b01110}}, + {'J', {0b00010,0b00010,0b00010,0b00010,0b10010,0b10010,0b01100}}, {'K', {0b10001,0b10010,0b10100,0b11000,0b10100,0b10010,0b10001}}, {'L', {0b10000,0b10000,0b10000,0b10000,0b10000,0b10000,0b11111}}, {'M', {0b10001,0b11011,0b10101,0b10101,0b10001,0b10001,0b10001}}, {'N', {0b10001,0b10001,0b11001,0b10101,0b10011,0b10001,0b10001}}, {'O', {0b01110,0b10001,0b10001,0b10001,0b10001,0b10001,0b01110}}, {'P', {0b11110,0b10001,0b10001,0b11110,0b10000,0b10000,0b10000}}, + {'Q', {0b01110,0b10001,0b10001,0b10001,0b10101,0b10010,0b01101}}, {'R', {0b11110,0b10001,0b10001,0b11110,0b10100,0b10010,0b10001}}, {'S', {0b01111,0b10000,0b10000,0b01110,0b00001,0b00001,0b11110}}, {'T', {0b11111,0b00100,0b00100,0b00100,0b00100,0b00100,0b00100}}, + {'U', {0b10001,0b10001,0b10001,0b10001,0b10001,0b10001,0b01110}}, {'V', {0b10001,0b10001,0b10001,0b10001,0b10001,0b01010,0b00100}}, {'W', {0b10001,0b10001,0b10001,0b10101,0b10101,0b11011,0b10001}}, + {'X', {0b10001,0b10001,0b01010,0b00100,0b01010,0b10001,0b10001}}, {'Y', {0b10001,0b10001,0b01010,0b00100,0b00100,0b00100,0b00100}}, - {'J', {0b00010,0b00010,0b00010,0b00010,0b10010,0b10010,0b01100}}, - {'Q', {0b01110,0b10001,0b10001,0b10001,0b10101,0b10010,0b01101}}, - {'U', {0b10001,0b10001,0b10001,0b10001,0b10001,0b10001,0b01110}}, {'Z', {0b11111,0b00010,0b00100,0b01000,0b10000,0b10000,0b11111}}, {'0', {0b01110,0b10011,0b10101,0b10101,0b11001,0b10001,0b01110}}, {'1', {0b00100,0b01100,0b00100,0b00100,0b00100,0b00100,0b01110}}, @@ -81,11 +86,19 @@ static const Glyph GLYPHS[] = { {'=', {0b00000,0b00000,0b11111,0b00000,0b11111,0b00000,0b00000}}, }; static const int NGLYPH = int(sizeof(GLYPHS) / sizeof(GLYPHS[0])); +static unsigned char GLYPH_LUT[128][7]; -static const unsigned char* glyph(char c) { - for (int i = 0; i < NGLYPH; i++) - if (GLYPHS[i].ch == c) return GLYPHS[i].r; - return GLYPHS[0].r; // space +static void init_glyph_lut() { + memset(GLYPH_LUT, 0, sizeof(GLYPH_LUT)); + for (int i = 0; i < NGLYPH; i++) { + unsigned char idx = (unsigned char)GLYPHS[i].ch; + if (idx < 128) memcpy(GLYPH_LUT[idx], GLYPHS[i].r, 7); + } +} + +static inline const unsigned char* glyph(char c) { + unsigned char idx = (unsigned char)c; + return (idx < 128) ? GLYPH_LUT[idx] : GLYPH_LUT[(unsigned char)' ']; } // ---- X11 state ---- @@ -96,6 +109,7 @@ static Pixmap back; static int screen; static int cell, gx0, gy0, gw, gh; static int winW = 240, winH = 296; // overridden at runtime from the actual screen +static Atom wmDeleteAtom = None; // ---- colors (Nokia green monochrome) ---- static unsigned long C_BG, C_FG, C_HEAD, C_FOOD, C_DIM; @@ -114,10 +128,18 @@ static int best = 0; static int speed = 100; // ms per step (derived from pps below) static int pps = 90; // base speed px/sec; +1 px/sec per 5 food eaten static bool running = true; -static unsigned long now_ms() { +static bool dirty = true; +static bool resyncTimer = false; +static int64_t lastStepNs = 0; + +static int64_t now_ns() { struct timespec ts; clock_gettime(CLOCK_MONOTONIC, &ts); - return (unsigned long)(ts.tv_sec * 1000 + ts.tv_nsec / 1000000); + return (int64_t)ts.tv_sec * 1000000000LL + (int64_t)ts.tv_nsec; +} + +static inline int64_t step_ns() { + return (int64_t)speed * 1000000LL; } // Derive the per-step delay (ms) from the target pixels/second. The snake @@ -173,30 +195,33 @@ static void reset_game() { update_speed(); place_food(); state = PLAYING; + lastStepNs = now_ns(); + resyncTimer = true; + dirty = true; } // Queue a pending direction change; rapid key presses are stored so none are lost. // Filters reversals and duplicates against the last queued (or current) direction. -static void tq_push(int dx, int dy) { +static bool tq_push(int dx, int dy) { int refx = (tqn > 0) ? tqx[tqn - 1] : dirx; int refy = (tqn > 0) ? tqy[tqn - 1] : diry; - if (dx == -refx && dy == -refy) return; // reversal - if (dx == refx && dy == refy) return; // duplicate + if (dx == -refx && dy == -refy) return false; // reversal + if (dx == refx && dy == refy) return false; // duplicate (including X11 key repeat) if (tqn < 2) { tqx[tqn] = dx; tqy[tqn] = dy; tqn++; + return true; } + return false; } static void step() { // apply queued turn (no reversing); rapid presses are not lost if (tqn > 0) { int dx = tqx[0], dy = tqy[0]; - // shift queue tqx[0] = tqx[1]; tqy[0] = tqy[1]; tqn--; - // apply if not a reversal if (!(dx == -dirx && dy == -diry) && !(dx == 0 && dy == 0)) { dirx = dx; diry = dy; } @@ -208,11 +233,14 @@ static void step() { hy = (hy + ROWS) % ROWS; // self collision (ignore current tail cell since it will move, unless growing) for (int i = 0; i < snakelen - 1; i++) { - if (snake[i][0] == hx && snake[i][1] == hy) { state = GAMEOVER; return; } + if (snake[i][0] == hx && snake[i][1] == hy) { + state = GAMEOVER; + dirty = true; + return; + } } bool ate = (hx == foodx && hy == foody); if (!ate) { - // shift body toward tail for (int i = 0; i < snakelen - 1; i++) { snake[i][0] = snake[i + 1][0]; snake[i][1] = snake[i + 1][1]; @@ -226,109 +254,159 @@ static void step() { score += 10; if (score > best) best = score; int food = score / 10; // food items eaten so far - pps = 90 + food / 5; // +1 px/sec per 5 food eaten (progressive difficulty) + pps = 90 + food / 5; // +1 px/sec per 5 food eaten (progressive difficulty) update_speed(); place_food(); } + lastStepNs = now_ns(); + dirty = true; } +// Batched text rendering: coalesces horizontal pixel runs in each glyph row +// and emits a single XFillRectangles call per string. static void draw_text(int x, int y, int scale, unsigned long col, const char* s) { + XRectangle rects[512]; + int nrects = 0; int cx = x; - XSetForeground(dpy, gc, col); for (const char* p = s; *p; p++) { const unsigned char* g = glyph(*p); for (int r = 0; r < 7; r++) { unsigned char row = g[r]; - for (int b = 0; b < 5; b++) - if (row & (1 << (4 - b))) - XFillRectangle(dpy, back, gc, cx + b * scale, y + r * scale, scale, scale); + if (!row) continue; + int b = 0; + while (b < 5) { + if (row & (1 << (4 - b))) { + int start = b; + while (b < 5 && (row & (1 << (4 - b)))) b++; + if (nrects < (int)(sizeof(rects) / sizeof(rects[0]))) { + rects[nrects].x = (short)(cx + start * scale); + rects[nrects].y = (short)(y + r * scale); + rects[nrects].width = (unsigned short)((b - start) * scale); + rects[nrects].height = (unsigned short)scale; + nrects++; + } + } else { + b++; + } + } } cx += 6 * scale; } + if (nrects > 0) { + XSetForeground(dpy, gc, col); + XFillRectangles(dpy, back, gc, rects, nrects); + } } static void render() { XSetForeground(dpy, gc, C_BG); XFillRectangle(dpy, back, gc, 0, 0, winW, winH); - // border framing the whole window (adapts to the actual screen size) - XSetForeground(dpy, gc, C_DIM); - XDrawRectangle(dpy, back, gc, 2, 2, winW - 4, winH - 4); - // food - if (foodx >= 0) { - XSetForeground(dpy, gc, C_FOOD); - XFillRectangle(dpy, back, gc, gx0 + foodx * cell, gy0 + foody * cell, cell, cell); - } - // snake (batched for speed) - XRectangle bodyRects[COLS * ROWS]; - int nbody = 0; - for (int i = 0; i < snakelen - 1; i++) { - bodyRects[nbody].x = gx0 + snake[i][0] * cell; - bodyRects[nbody].y = gy0 + snake[i][1] * cell; - bodyRects[nbody].width = cell; - bodyRects[nbody].height = cell; - nbody++; - } - XSetForeground(dpy, gc, C_FG); - XFillRectangles(dpy, back, gc, bodyRects, nbody); - // head - XSetForeground(dpy, gc, C_HEAD); - XFillRectangle(dpy, back, gc, gx0 + snake[snakelen - 1][0] * cell, gy0 + snake[snakelen - 1][1] * cell, cell, cell); - // bright frame around the playfield so its boundaries are unmistakable - XSetForeground(dpy, gc, C_FG); - XDrawRectangle(dpy, back, gc, gx0, gy0, gw, gh); + if (state == PLAYING) { + // border framing the whole window (adapts to the actual screen size) + XSetForeground(dpy, gc, C_DIM); + XDrawRectangle(dpy, back, gc, 2, 2, winW - 4, winH - 4); + // food + if (foodx >= 0) { + XSetForeground(dpy, gc, C_FOOD); + XFillRectangle(dpy, back, gc, gx0 + foodx * cell, gy0 + foody * cell, cell, cell); + } + // snake body (batched for speed) + XRectangle bodyRects[COLS * ROWS]; + int nbody = 0; + for (int i = 0; i < snakelen - 1; i++) { + bodyRects[nbody].x = (short)(gx0 + snake[i][0] * cell); + bodyRects[nbody].y = (short)(gy0 + snake[i][1] * cell); + bodyRects[nbody].width = (unsigned short)cell; + bodyRects[nbody].height = (unsigned short)cell; + nbody++; + } + if (nbody > 0) { + XSetForeground(dpy, gc, C_FG); + XFillRectangles(dpy, back, gc, bodyRects, nbody); + } + // head + XSetForeground(dpy, gc, C_HEAD); + XFillRectangle(dpy, back, gc, gx0 + snake[snakelen - 1][0] * cell, + gy0 + snake[snakelen - 1][1] * cell, cell, cell); + // bright frame around the playfield (1px outside the cell grid so row 0 / col 0 are not overlapped) + XSetForeground(dpy, gc, C_FG); + XDrawRectangle(dpy, back, gc, gx0 - 1, gy0 - 1, gw + 1, gh + 1); - // score / best sit in the margin between the window frame (outer) and the - // playfield frame (inner), vertically centred there so the playfield boundary - // stays clear - int scoreY = (2 + gy0) / 2 - 3; - char buf[32]; - snprintf(buf, sizeof(buf), "SCORE %d", score); - draw_text(gx0, scoreY, 1, C_DIM, buf); - if (best > 0) { - snprintf(buf, sizeof(buf), "BEST %d", best); - draw_text(gx0 + gw - 11 * 6, scoreY, 1, C_DIM, buf); - } - - if (state == PAUSED || state == GAMEOVER) { - XSetForeground(dpy, gc, C_BG); - XFillRectangle(dpy, back, gc, 0, 0, winW, winH); - } - if (state == PAUSED) { + // score / best sit in the margin between the window frame (outer) and the + // playfield frame (inner), vertically centred there + int scoreY = (2 + gy0 - 1) / 2 - 3; + char buf[32]; + snprintf(buf, sizeof(buf), "SCORE %d", score); + draw_text(gx0, scoreY, 1, C_DIM, buf); + if (best > 0) { + snprintf(buf, sizeof(buf), "BEST %d", best); + int bw = (int)strlen(buf) * 6; + draw_text(gx0 + gw - bw, scoreY, 1, C_DIM, buf); + } + } else if (state == PAUSED) { + XSetForeground(dpy, gc, C_DIM); + XDrawRectangle(dpy, back, gc, 2, 2, winW - 4, winH - 4); draw_text(winW / 2 - 5 * 6, winH / 2 - 7 * 2, 2, C_FG, "PAUSE"); draw_text(winW / 2 - 4 * 6, winH / 2 + 7 * 2, 1, C_DIM, "5 RESUME"); } else if (state == GAMEOVER) { + XSetForeground(dpy, gc, C_DIM); + XDrawRectangle(dpy, back, gc, 2, 2, winW - 4, winH - 4); draw_text(winW / 2 - 9 * 6, winH / 2 - 14, 2, C_FG, "GAME OVER"); + char buf[32]; snprintf(buf, sizeof(buf), "SCORE %d", score); - draw_text(winW / 2 - 5 * 6, winH / 2 + 4, 1, C_DIM, buf); + draw_text(winW / 2 - (int)strlen(buf) * 3, winH / 2 + 4, 1, C_DIM, buf); draw_text(winW / 2 - 5 * 6, winH / 2 + 4 + 9, 1, C_DIM, "5 NEW GAME"); } XCopyArea(dpy, back, win, gc, 0, 0, winW, winH, 0, 0); XFlush(dpy); + dirty = false; +} + +static void handle_turn(int dx, int dy) { + if (state != PLAYING) return; + if (tq_push(dx, dy)) { + // If this is the first queued turn and at least half a step interval has + // already elapsed since the previous step, execute the turn immediately + // and re-anchor the step timer so turns feel instantaneous (< 1ms latency) + // without allowing rapid key mashing or U-turns to jump 2 cells at once. + if (tqn == 1 && (now_ns() - lastStepNs) >= (step_ns() / 2)) { + step(); + resyncTimer = true; + } + } } static void handle_key(KeySym ks) { switch (ks) { - case XK_Up: case XK_w: case XK_KP_Up: case XK_2: - tq_push(0, -1); break; - case XK_Down: case XK_s: case XK_KP_Down: case XK_8: case XK_x: - tq_push(0, 1); break; - case XK_Left: case XK_a: case XK_KP_Left: case XK_4: - tq_push(-1, 0); break; - case XK_Right: case XK_d: case XK_KP_Right: case XK_6: - tq_push(1, 0); break; - case XK_5: case XK_Return: case XK_KP_Enter: case XK_space: case XK_p: - if (state == PLAYING) state = PAUSED; - else if (state == PAUSED) { state = PLAYING; } + case XK_Up: case XK_w: case XK_KP_Up: case XK_2: case XK_KP_2: + handle_turn(0, -1); + break; + case XK_Down: case XK_s: case XK_KP_Down: case XK_8: case XK_KP_8: case XK_x: + handle_turn(0, 1); + break; + case XK_Left: case XK_a: case XK_KP_Left: case XK_4: case XK_KP_4: + handle_turn(-1, 0); + break; + case XK_Right: case XK_d: case XK_KP_Right: case XK_6: case XK_KP_6: + handle_turn(1, 0); + break; + case XK_p: case XK_numbersign: case XK_slash: case XK_KP_Divide: + case XK_asterisk: case XK_KP_Multiply: + if (state == PLAYING) { state = PAUSED; dirty = true; } + else if (state == PAUSED) { state = PLAYING; lastStepNs = now_ns(); resyncTimer = true; dirty = true; } + break; + case XK_5: case XK_KP_5: case XK_Return: case XK_KP_Enter: case XK_space: + if (state == PLAYING) { state = PAUSED; dirty = true; } + else if (state == PAUSED) { state = PLAYING; lastStepNs = now_ns(); resyncTimer = true; dirty = true; } else if (state == GAMEOVER) reset_game(); break; case XK_Escape: case XK_BackSpace: case XK_Delete: case XK_End: - case XK_Menu: + case XK_Menu: case XF86XK_Back: case XF86XK_KbdLcdMenu2: running = false; break; default: - if (state == GAMEOVER) reset_game(); break; } } @@ -349,10 +427,15 @@ static void setup_window() { if (winW < 96) winW = 96; if (winH < 96) winH = 96; win = XCreateWindow(dpy, RootWindow(dpy, screen), bw, TOPBAR + bw, winW, winH, 0, - CopyFromParent, InputOutput, CopyFromParent, 0, nullptr); + CopyFromParent, InputOutput, CopyFromParent, 0, nullptr); XStoreName(dpy, win, "Snake"); XClassHint* ch = XAllocClassHint(); - if (ch) { ch->res_name = (char*)"snake"; ch->res_class = (char*)"snake"; XSetClassHint(dpy, win, ch); XFree(ch); } + if (ch) { + ch->res_name = (char*)"snake"; + ch->res_class = (char*)"snake"; + XSetClassHint(dpy, win, ch); + XFree(ch); + } // float as a dialog so dwm doesn't tile it Atom wtype = XInternAtom(dpy, "_NET_WM_WINDOW_TYPE", False); @@ -366,10 +449,14 @@ static void setup_window() { sh.min_height = sh.max_height = winH; XSetWMNormalHints(dpy, win, &sh); - Atom wm_del = XInternAtom(dpy, "WM_DELETE_WINDOW", False); - XSetWMProtocols(dpy, win, &wm_del, 1); + wmDeleteAtom = XInternAtom(dpy, "WM_DELETE_WINDOW", False); + XSetWMProtocols(dpy, win, &wmDeleteAtom, 1); gc = XCreateGC(dpy, win, 0, nullptr); + // CRITICAL: disable GraphicsExposures so XCopyArea does not emit a NoExpose + // event on every frame (which previously woke select() in an infinite 100% + // CPU redraw storm). + XSetGraphicsExposures(dpy, gc, False); back = XCreatePixmap(dpy, win, winW, winH, DefaultDepth(dpy, screen)); C_BG = BlackPixel(dpy, screen); @@ -379,73 +466,74 @@ static void setup_window() { C_FOOD = 0x66ff66; C_DIM = 0x2f9f2f; - XSelectInput(dpy, win, KeyPressMask | StructureNotifyMask | ExposureMask); + XSelectInput(dpy, win, KeyPressMask | StructureNotifyMask | ExposureMask | FocusChangeMask); XMapWindow(dpy, win); compute_grid(); } static void handle_event(XEvent& e) { if (e.type == ClientMessage) { - Atom wm_del = XInternAtom(dpy, "WM_DELETE_WINDOW", False); - if ((Atom)e.xclient.data.l[0] == wm_del) running = false; + if ((Atom)e.xclient.data.l[0] == wmDeleteAtom) running = false; } else if (e.type == ConfigureNotify) { if (e.xconfigure.width != winW || e.xconfigure.height != winH) { - winW = e.xconfigure.width; winH = e.xconfigure.height; + winW = e.xconfigure.width; + winH = e.xconfigure.height; + if (back) XFreePixmap(dpy, back); + back = XCreatePixmap(dpy, win, winW, winH, DefaultDepth(dpy, screen)); compute_grid(); + dirty = true; } } else if (e.type == Expose) { - render(); + if (e.xexpose.count == 0) dirty = true; + } else if (e.type == FocusOut) { + if (e.xfocus.mode == NotifyNormal && state == PLAYING) { + state = PAUSED; + dirty = true; + } } else if (e.type == KeyPress) { char buf[8]; KeySym ks = 0; XLookupString(&e.xkey, buf, sizeof(buf), &ks, nullptr); if (ks == NoSymbol) ks = XLookupKeysym(&e.xkey, 0); - if (ks == XK_q) { running = false; return; } + if (ks == XK_q || ks == XK_Q) { running = false; return; } handle_key(ks); } } int main() { srand((unsigned)time(nullptr) ^ (unsigned)getpid()); + init_glyph_lut(); setup_window(); reset_game(); render(); int xfd = ConnectionNumber(dpy); - - // Precise, drift-free stepping via a kernel high-resolution timer (timerfd). - // The timer fires on an absolute CLOCK_MONOTONIC deadline, so wakeups are not - // quantized to the kernel tick the way a select() timeout is. A select() - // timeout shorter than one tick gets rounded UP to a whole tick, which made - // the final few milliseconds of each wait overshoot by up to ~20ms and showed - // up as speed jitter. Input still arrives on the X connection fd, so we - // select() on BOTH fds and react to either immediately -- there is no - // busy-spin, so the X server stays free and the controls stay responsive. int tfd = -1; #if defined(__linux__) tfd = timerfd_create(CLOCK_MONOTONIC, TFD_NONBLOCK | TFD_CLOEXEC); #endif - unsigned long nextStep = now_ms() + speed; + int64_t nextStep = now_ns() + step_ns(); State prevState = PLAYING; + resyncTimer = false; - auto arm_timer = [&](unsigned long deadline_ms) { + auto arm_timer = [&](int64_t deadline_ns) { + if (tfd < 0) return; struct itimerspec its; - its.it_interval.tv_sec = 0; its.it_interval.tv_nsec = 0; // one-shot - its.it_value.tv_sec = (time_t)(deadline_ms / 1000); - its.it_value.tv_nsec = (long)((deadline_ms % 1000) * 1000000UL); - if (its.it_value.tv_nsec >= 1000000000L) { - its.it_value.tv_sec += 1; its.it_value.tv_nsec -= 1000000000L; - } + its.it_interval.tv_sec = 0; + its.it_interval.tv_nsec = 0; + its.it_value.tv_sec = (time_t)(deadline_ns / 1000000000LL); + its.it_value.tv_nsec = (long)(deadline_ns % 1000000000LL); timerfd_settime(tfd, TFD_TIMER_ABSTIME, &its, nullptr); }; auto disarm_timer = [&]() { + if (tfd < 0) return; struct itimerspec its; memset(&its, 0, sizeof(its)); timerfd_settime(tfd, 0, &its, nullptr); }; - if (tfd >= 0) arm_timer(nextStep); + arm_timer(nextStep); while (running) { fd_set fds; @@ -455,18 +543,15 @@ int main() { struct timeval tvbuf, *tvp = nullptr; if (tfd >= 0) { - // While playing, also wait on the timer fd. While paused / game over the - // timer is disarmed, so we block on input only (resume stays instant). if (state == PLAYING) { FD_SET(tfd, &fds); if (tfd + 1 > nfds) nfds = tfd + 1; } - } else { - // Fallback (timerfd unavailable): bounded select so input stays live. - long sleepMs = (state == PLAYING) ? (long)nextStep - (long)now_ms() : 30; - if (sleepMs < 0) sleepMs = 0; - tvbuf.tv_sec = sleepMs / 1000; - tvbuf.tv_usec = (sleepMs % 1000) * 1000; + } else if (state == PLAYING) { + int64_t remNs = nextStep - now_ns(); + if (remNs < 0) remNs = 0; + tvbuf.tv_sec = (time_t)(remNs / 1000000000LL); + tvbuf.tv_usec = (suseconds_t)((remNs % 1000000000LL) / 1000LL); tvp = &tvbuf; } @@ -484,42 +569,45 @@ int main() { if (!running) break; } - // 2) (Re)start play cleanly: resync the clock on resume / restart / launch, - // and stop the timer whenever we leave the PLAYING state. - if (state != prevState) { - if (state == PLAYING) { nextStep = now_ms() + speed; if (tfd >= 0) arm_timer(nextStep); } - else if (tfd >= 0) disarm_timer(); + // 2) Resync timer on state transitions or immediate turn steps. + if (state != prevState || resyncTimer) { + if (state == PLAYING) { + nextStep = now_ns() + step_ns(); + arm_timer(nextStep); + } else { + disarm_timer(); + } prevState = state; - } - - // 3) Advance the simulation exactly once per timer expiration (or, in the - // fallback path, whenever the deadline is reached). If we ever fell more - // than one interval behind (e.g. the process was frozen for a screenshot) - // we drop the backlog instead of racing to catch up. - if (state == PLAYING) { + resyncTimer = false; + } else if (state == PLAYING) { + // 3) Advance simulation on scheduled timer expiration. bool due = false; if (tfd >= 0) { if (FD_ISSET(tfd, &fds)) { uint64_t expirations = 0; ssize_t n = read(tfd, &expirations, sizeof(expirations)); - (void)n; (void)expirations; + (void)n; due = true; } } else { - if ((long)(now_ms() - nextStep) >= 0) due = true; + if (now_ns() >= nextStep) due = true; } if (due) { step(); - nextStep += speed; // advance by exactly one interval (no drift) - unsigned long now = now_ms(); - if ((long)(now - nextStep) > (long)speed) nextStep = now + speed; - if (tfd >= 0 && state == PLAYING) arm_timer(nextStep); + if (state == PLAYING) { + nextStep += step_ns(); + int64_t now = now_ns(); + if (now - nextStep > step_ns()) nextStep = now + step_ns(); + arm_timer(nextStep); + } else { + disarm_timer(); + prevState = state; + } } } - // 4) Repaint on every loop turn (input or step) so the display never - // appears frozen and key feedback is immediate. - render(); + // 4) Repaint only when visual state actually changed. + if (dirty) render(); } if (tfd >= 0) close(tfd); diff --git a/src/games/tetris.cpp b/src/games/tetris.cpp index 14aa29b..8cc8019 100644 --- a/src/games/tetris.cpp +++ b/src/games/tetris.cpp @@ -4,28 +4,31 @@ // // Controls (Nokia keypad + D-pad): // 4 / Left -> move left 6 / Right -> move right -// 2 / Up -> rotate CW 8 / Down -> soft drop -// 0 / Space -> hard drop # / * / P -> pause -// 5 / OK -> resume / new game -// Back / Esc -> quit +// 2 / Up -> rotate CW 8 / Down -> soft drop +// 0 / 5 / Space -> hard drop # / * / P -> pause +// 5 / OK -> resume / new game +// Back / Esc -> quit // // Build: g++ -O2 tetris.cpp -lX11 -o tetris #include +#include +#include +#include +#ifndef _EVDEVK +#define _EVDEVK(_v) (0x10081000 + (_v)) +#endif +#include #include #include #include #include +#include +#include #include #include #include -#include -#include -#include -#include #include -#include -#include static const int TOPBAR = 24; static const int PCOLS = 10; @@ -44,27 +47,28 @@ static const Glyph GLYPHS[] = { {'A', {0b01110,0b10001,0b10001,0b11111,0b10001,0b10001,0b10001}}, {'B', {0b11110,0b10001,0b10001,0b11110,0b10001,0b10001,0b11110}}, {'C', {0b01110,0b10001,0b10000,0b10000,0b10000,0b10001,0b01110}}, + {'D', {0b11110,0b10001,0b10001,0b10001,0b10001,0b10001,0b01110}}, {'E', {0b11111,0b10000,0b10000,0b11110,0b10000,0b10000,0b11111}}, {'F', {0b11111,0b10000,0b10000,0b11110,0b10000,0b10000,0b10000}}, {'G', {0b01110,0b10001,0b10000,0b10111,0b10001,0b10001,0b01111}}, + {'H', {0b10001,0b10001,0b10001,0b11111,0b10001,0b10001,0b10001}}, {'I', {0b01110,0b00100,0b00100,0b00100,0b00100,0b00100,0b01110}}, + {'J', {0b00010,0b00010,0b00010,0b00010,0b10010,0b10010,0b01100}}, + {'K', {0b10001,0b10010,0b10100,0b11000,0b10100,0b10010,0b10001}}, {'L', {0b10000,0b10000,0b10000,0b10000,0b10000,0b10000,0b11111}}, {'M', {0b10001,0b11011,0b10101,0b10101,0b10001,0b10001,0b10001}}, {'N', {0b10001,0b10001,0b11001,0b10101,0b10011,0b10001,0b10001}}, {'O', {0b01110,0b10001,0b10001,0b10001,0b10001,0b10001,0b01110}}, {'P', {0b11110,0b10001,0b10001,0b11110,0b10000,0b10000,0b10000}}, + {'Q', {0b01110,0b10001,0b10001,0b10001,0b10101,0b10010,0b01101}}, {'R', {0b11110,0b10001,0b10001,0b11110,0b10100,0b10010,0b10001}}, {'S', {0b01111,0b10000,0b10000,0b01110,0b00001,0b00001,0b11110}}, {'T', {0b11111,0b00100,0b00100,0b00100,0b00100,0b00100,0b00100}}, + {'U', {0b10001,0b10001,0b10001,0b10001,0b10001,0b10001,0b01110}}, {'V', {0b10001,0b10001,0b10001,0b10001,0b10001,0b01010,0b00100}}, + {'W', {0b10001,0b10001,0b10001,0b10101,0b10101,0b11011,0b10001}}, {'X', {0b10001,0b10001,0b01010,0b00100,0b01010,0b10001,0b10001}}, {'Y', {0b10001,0b10001,0b01010,0b00100,0b00100,0b00100,0b00100}}, - {'D', {0b11110,0b10001,0b10001,0b10001,0b10001,0b10001,0b01110}}, - {'J', {0b00010,0b00010,0b00010,0b00010,0b10010,0b10010,0b01100}}, - {'K', {0b10001,0b10010,0b10100,0b11000,0b10100,0b10010,0b10001}}, - {'Q', {0b01110,0b10001,0b10001,0b10001,0b10101,0b10010,0b01101}}, - {'U', {0b10001,0b10001,0b10001,0b10001,0b10001,0b10001,0b01110}}, - {'W', {0b10001,0b10001,0b10001,0b10101,0b10101,0b11011,0b10001}}, {'Z', {0b11111,0b00010,0b00100,0b01000,0b10000,0b10000,0b11111}}, {'0', {0b01110,0b10011,0b10101,0b10101,0b11001,0b10001,0b01110}}, {'1', {0b00100,0b01100,0b00100,0b00100,0b00100,0b00100,0b01110}}, @@ -83,10 +87,19 @@ static const Glyph GLYPHS[] = { {'=', {0b00000,0b00000,0b11111,0b00000,0b11111,0b00000,0b00000}}, }; static const int NGLYPH = int(sizeof(GLYPHS) / sizeof(GLYPHS[0])); -static const unsigned char* glyph(char c) { - for (int i = 0; i < NGLYPH; i++) - if (GLYPHS[i].ch == c) return GLYPHS[i].r; - return GLYPHS[0].r; +static unsigned char GLYPH_LUT[128][7]; + +static void init_glyph_lut() { + memset(GLYPH_LUT, 0, sizeof(GLYPH_LUT)); + for (int i = 0; i < NGLYPH; i++) { + unsigned char idx = (unsigned char)GLYPHS[i].ch; + if (idx < 128) memcpy(GLYPH_LUT[idx], GLYPHS[i].r, 7); + } +} + +static inline const unsigned char* glyph(char c) { + unsigned char idx = (unsigned char)c; + return (idx < 128) ? GLYPH_LUT[idx] : GLYPH_LUT[(unsigned char)' ']; } // ---- X11 state ---- @@ -96,6 +109,7 @@ static GC gc; static Pixmap back; static int screen; static int winW = 240, winH = 296; // overridden at runtime from the actual screen +static Atom wmDeleteAtom = None; static unsigned long C_BG, C_FG, C_HEAD, C_FOOD, C_DIM; static unsigned long C_GB_DARK, C_GB_MED, C_GB_LIGHT, C_GB_PALE; @@ -120,6 +134,8 @@ static int score = 0, best = 0, lines = 0, level = 1; static int speed = 600; // ms per gravity step (derived from pps below) static int pps = 23; // base speed px/sec; +1 px/sec per 10 lines cleared static bool running = true; +static bool dirty = true; +static bool resyncTimer = false; static void piece_cells(int type, int rot, int out[4][2]) { int r = ((rot % 4) + 4) % 4; @@ -139,10 +155,14 @@ static bool collide(int px, int py, int cells[4][2]) { return false; } -static unsigned long now_ms() { +static int64_t now_ns() { struct timespec ts; clock_gettime(CLOCK_MONOTONIC, &ts); - return (unsigned long)(ts.tv_sec * 1000 + ts.tv_nsec / 1000000); + return (int64_t)ts.tv_sec * 1000000000LL + (int64_t)ts.tv_nsec; +} + +static inline int64_t step_ns() { + return (int64_t)speed * 1000000LL; } // Derive the gravity delay (ms) from the target pixels/second. A piece drops @@ -166,6 +186,8 @@ static void spawn() { state = GAMEOVER; if (score > best) best = score; } + resyncTimer = true; + dirty = true; } static void lock_piece() { @@ -174,7 +196,12 @@ static void lock_piece() { for (int i = 0; i < 4; i++) { int cx = curX + cells[i][0]; int cy = curY + cells[i][1]; - if (cy < 0) { state = GAMEOVER; if (score > best) best = score; return; } + if (cy < 0) { + state = GAMEOVER; + if (score > best) best = score; + dirty = true; + return; + } board[cx][cy] = curType + 1; } // clear full lines @@ -206,6 +233,7 @@ static void step() { piece_cells(curType, curRot, cells); if (!collide(curX, curY + 1, cells)) { curY++; + dirty = true; } else { lock_piece(); } @@ -223,7 +251,10 @@ static void hard_drop() { static void try_move(int dx) { int cells[4][2]; piece_cells(curType, curRot, cells); - if (!collide(curX + dx, curY, cells)) curX += dx; + if (!collide(curX + dx, curY, cells)) { + curX += dx; + dirty = true; + } } static void try_rotate() { @@ -236,6 +267,7 @@ static void try_rotate() { if (!collide(curX + kicks[k], curY, cells)) { curX += kicks[k]; curRot = nr; + dirty = true; return; } } @@ -245,36 +277,81 @@ static void reset_game() { for (int x = 0; x < PCOLS; x++) for (int y = 0; y < PROWS; y++) board[x][y] = 0; score = 0; lines = 0; level = 1; update_speed(); nextType = rand() % 7; - spawn(); state = PLAYING; + spawn(); } -static void draw_text(int x, int y, int scale, unsigned long col, const char* s) { +// Append a string's coalesced glyph rectangles into a caller-supplied array. +static int append_text_rects(int x, int y, int scale, const char* s, + XRectangle* rects, int maxRects, int nrects) { int cx = x; - XSetForeground(dpy, gc, col); for (const char* p = s; *p; p++) { const unsigned char* g = glyph(*p); for (int r = 0; r < 7; r++) { unsigned char row = g[r]; - for (int b = 0; b < 5; b++) - if (row & (1 << (4 - b))) - XFillRectangle(dpy, back, gc, cx + b * scale, y + r * scale, scale, scale); + if (!row) continue; + int b = 0; + while (b < 5) { + if (row & (1 << (4 - b))) { + int start = b; + while (b < 5 && (row & (1 << (4 - b)))) b++; + if (nrects < maxRects) { + rects[nrects].x = (short)(cx + start * scale); + rects[nrects].y = (short)(y + r * scale); + rects[nrects].width = (unsigned short)((b - start) * scale); + rects[nrects].height = (unsigned short)scale; + nrects++; + } + } else { + b++; + } + } } cx += 6 * scale; } + return nrects; } -// Draw a Gameboy-style beveled cell: medium body, pale top/left highlight, -// dark bottom/right shadow. bodycol is the fill shade (settled vs active). -static void draw_gb_cell(int x, int y, int size, unsigned long bodycol) { - XSetForeground(dpy, gc, bodycol); - XFillRectangle(dpy, back, gc, x + 1, y + 1, size - 2, size - 2); - XSetForeground(dpy, gc, C_GB_PALE); - XFillRectangle(dpy, back, gc, x + 1, y, size - 2, 1); - XFillRectangle(dpy, back, gc, x, y + 1, 1, size - 2); - XSetForeground(dpy, gc, C_GB_DARK); - XFillRectangle(dpy, back, gc, x + 1, y + size - 1, size - 2, 1); - XFillRectangle(dpy, back, gc, x + size - 1, y + 1, 1, size - 2); +static void draw_text(int x, int y, int scale, unsigned long col, const char* s) { + XRectangle rects[512]; + int nrects = append_text_rects(x, y, scale, s, rects, 512, 0); + if (nrects > 0) { + XSetForeground(dpy, gc, col); + XFillRectangles(dpy, back, gc, rects, nrects); + } +} + +static inline void append_bevel(int bx, int by, int size, + XRectangle* bodies, int& nb, + XRectangle* highlights, int& nh, + XRectangle* shadows, int& ns) { + bodies[nb].x = (short)(bx + 1); + bodies[nb].y = (short)(by + 1); + bodies[nb].width = (unsigned short)(size - 2); + bodies[nb].height = (unsigned short)(size - 2); + nb++; + + highlights[nh].x = (short)(bx + 1); + highlights[nh].y = (short)by; + highlights[nh].width = (unsigned short)(size - 2); + highlights[nh].height = 1; + nh++; + highlights[nh].x = (short)bx; + highlights[nh].y = (short)(by + 1); + highlights[nh].width = 1; + highlights[nh].height = (unsigned short)(size - 2); + nh++; + + shadows[ns].x = (short)(bx + 1); + shadows[ns].y = (short)(by + size - 1); + shadows[ns].width = (unsigned short)(size - 2); + shadows[ns].height = 1; + ns++; + shadows[ns].x = (short)(bx + size - 1); + shadows[ns].y = (short)(by + 1); + shadows[ns].width = 1; + shadows[ns].height = (unsigned short)(size - 2); + ns++; } static void render() { @@ -282,113 +359,136 @@ static void render() { XSetForeground(dpy, gc, C_BG); XFillRectangle(dpy, back, gc, 0, 0, winW, winH); - // single border framing the whole game (playfield + side panel) at the - // window edges, so it is visible on all four sides including right/bottom + // Outer border framing the whole game window XSetForeground(dpy, gc, C_DIM); XDrawRectangle(dpy, back, gc, 2, 2, winW - 4, winH - 4); - // settled blocks (batched for speed) - XRectangle bodies[PCOLS * PROWS], highlights[PCOLS * PROWS * 2], shadows[PCOLS * PROWS * 2]; - int nb = 0, nh = 0, ns = 0; - for (int x = 0; x < PCOLS; x++) - for (int y = 0; y < PROWS; y++) - if (board[x][y]) { - int bx = px0 + x * CELL, by = py0 + y * CELL; - bodies[nb].x = bx + 1; bodies[nb].y = by + 1; - bodies[nb].width = CELL - 2; bodies[nb].height = CELL - 2; - nb++; - highlights[nh].x = bx + 1; highlights[nh].y = by; - highlights[nh].width = CELL - 2; highlights[nh].height = 1; - nh++; - highlights[nh].x = bx; highlights[nh].y = by + 1; - highlights[nh].width = 1; highlights[nh].height = CELL - 2; - nh++; - shadows[ns].x = bx + 1; shadows[ns].y = by + CELL - 1; - shadows[ns].width = CELL - 2; shadows[ns].height = 1; - ns++; - shadows[ns].x = bx + CELL - 1; shadows[ns].y = by + 1; - shadows[ns].width = 1; shadows[ns].height = CELL - 2; - ns++; - } - XSetForeground(dpy, gc, C_GB_MED); XFillRectangles(dpy, back, gc, bodies, nb); - XSetForeground(dpy, gc, C_GB_PALE); XFillRectangles(dpy, back, gc, highlights, nh); - XSetForeground(dpy, gc, C_GB_DARK); XFillRectangles(dpy, back, gc, shadows, ns); - // active piece if (state == PLAYING) { + // 1px frame around the 10x20 well so its walls/floor are unmistakable + XDrawRectangle(dpy, back, gc, px0 - 1, py0 - 1, PCOLS * CELL + 1, PROWS * CELL + 1); + + // Side panel preview frame + int sx = px0 + PCOLS * CELL + 12; + int boxY = py0 + 10; + int boxH = 52; + XDrawRectangle(dpy, back, gc, sx - 2, boxY + 1, winW - sx - 3, boxH); + + // Batched beveled blocks: settled board, active piece, and next-piece preview + XRectangle settledBodies[PCOLS * PROWS]; + XRectangle activeBodies[4]; + XRectangle previewBodies[4]; + XRectangle highlights[(PCOLS * PROWS + 8) * 2]; + XRectangle shadows[(PCOLS * PROWS + 8) * 2]; + int nsb = 0, nab = 0, npb = 0, nh = 0, ns = 0; + + for (int x = 0; x < PCOLS; x++) { + for (int y = 0; y < PROWS; y++) { + if (board[x][y]) { + append_bevel(px0 + x * CELL, py0 + y * CELL, CELL, + settledBodies, nsb, highlights, nh, shadows, ns); + } + } + } + int cells[4][2]; piece_cells(curType, curRot, cells); for (int i = 0; i < 4; i++) { int cx = curX + cells[i][0]; int cy = curY + cells[i][1]; - if (cy >= 0) - draw_gb_cell(px0 + cx * CELL, py0 + cy * CELL, CELL, C_GB_LIGHT); + if (cy >= 0) { + append_bevel(px0 + cx * CELL, py0 + cy * CELL, CELL, + activeBodies, nab, highlights, nh, shadows, ns); + } } - } - // vertical separator line between the playfield and the side panel - int sepX = px0 + PCOLS * CELL + 6; - XSetForeground(dpy, gc, C_FG); - XDrawLine(dpy, back, gc, sepX, py0, sepX, py0 + PROWS * CELL); + int nc[4][2]; + piece_cells(nextType, 0, nc); + int minx = 4, miny = 4, maxx = -1, maxy = -1; + for (int i = 0; i < 4; i++) { + if (nc[i][0] < minx) minx = nc[i][0]; + if (nc[i][1] < miny) miny = nc[i][1]; + if (nc[i][0] > maxx) maxx = nc[i][0]; + if (nc[i][1] > maxy) maxy = nc[i][1]; + } + int pcell = 11; + int pcols = maxx - minx + 1; + int prows = maxy - miny + 1; + int nx0 = sx + ((winW - sx - 4) - pcols * pcell) / 2; + int ny0 = boxY + (boxH - prows * pcell) / 2 + 12; + for (int i = 0; i < 4; i++) { + int cx = nx0 + (nc[i][0] - minx) * pcell; + int cy = ny0 + (nc[i][1] - miny) * pcell; + append_bevel(cx, cy, pcell, previewBodies, npb, highlights, nh, shadows, ns); + } - // side panel - int sx = px0 + PCOLS * CELL + 12; - draw_text(sx, py0, 1, C_DIM, "NEXT"); - // framed preview box for the next piece - int boxY = py0 + 10; - int boxH = 52; - XSetForeground(dpy, gc, C_DIM); - XDrawRectangle(dpy, back, gc, sx - 2, boxY + 1, winW - sx - 3, boxH); - int nc[4][2]; - piece_cells(nextType, 0, nc); - int minx = 4, miny = 4, maxx = -1, maxy = -1; - for (int i = 0; i < 4; i++) { - minx = nc[i][0] < minx ? nc[i][0] : minx; - miny = nc[i][1] < miny ? nc[i][1] : miny; - maxx = nc[i][0] > maxx ? nc[i][0] : maxx; - maxy = nc[i][1] > maxy ? nc[i][1] : maxy; - } - int pcell = 11; // larger next-piece preview - int pcols = maxx - minx + 1; - int prows = maxy - miny + 1; - int nx0 = sx + ((winW - sx - 4) - pcols * pcell) / 2; - int ny0 = boxY + (boxH - prows * pcell) / 2 + 12; // sit lower in the frame - for (int i = 0; i < 4; i++) { - int cx = nx0 + (nc[i][0] - minx) * pcell; - int cy = ny0 + (nc[i][1] - miny) * pcell; - draw_gb_cell(cx, cy, pcell, C_HEAD); - } - int ty = boxY + boxH + 6; - char buf[32]; - snprintf(buf, sizeof(buf), "SCORE %d", score); draw_text(sx, ty, 1, C_DIM, buf); - snprintf(buf, sizeof(buf), "LINES %d", lines); draw_text(sx, ty + 9, 1, C_DIM, buf); - snprintf(buf, sizeof(buf), "LEVEL %d", level); draw_text(sx, ty + 18, 1, C_DIM, buf); - if (best > 0) { snprintf(buf, sizeof(buf), "BEST %d", best); draw_text(sx, ty + 27, 1, C_DIM, buf); } + if (nsb > 0) { + XSetForeground(dpy, gc, C_GB_MED); + XFillRectangles(dpy, back, gc, settledBodies, nsb); + } + if (nab > 0) { + XSetForeground(dpy, gc, C_GB_LIGHT); + XFillRectangles(dpy, back, gc, activeBodies, nab); + } + if (npb > 0) { + XSetForeground(dpy, gc, C_HEAD); + XFillRectangles(dpy, back, gc, previewBodies, npb); + } + if (nh > 0) { + XSetForeground(dpy, gc, C_GB_PALE); + XFillRectangles(dpy, back, gc, highlights, nh); + } + if (ns > 0) { + XSetForeground(dpy, gc, C_GB_DARK); + XFillRectangles(dpy, back, gc, shadows, ns); + } - // concise controls in the free space below the stats - int ky = ty + 27 + 12; - draw_text(sx, ky, 1, C_DIM, "KEYS"); - draw_text(sx, ky + 9, 1, C_DIM, "4/6 MOVE"); - draw_text(sx, ky + 18, 1, C_DIM, "2 ROTATE"); - draw_text(sx, ky + 27, 1, C_DIM, "8 SOFT"); - draw_text(sx, ky + 36, 1, C_DIM, "0 DROP"); - draw_text(sx, ky + 45, 1, C_DIM, "# PAUSE"); - draw_text(sx, ky + 54, 1, C_DIM, "5 OK"); + // Vertical separator line between playfield and side panel + int sepX = px0 + PCOLS * CELL + 6; + XSetForeground(dpy, gc, C_FG); + XDrawLine(dpy, back, gc, sepX, py0, sepX, py0 + PROWS * CELL); - if (state == PAUSED || state == GAMEOVER) { - XSetForeground(dpy, gc, C_BG); - XFillRectangle(dpy, back, gc, 0, 0, winW, winH); - } - if (state == PAUSED) { + // Batch ALL side-panel text (NEXT, stats, and controls) into a single XFillRectangles call! + XRectangle textRects[1024]; + int ntr = 0; + ntr = append_text_rects(sx, py0, 1, "NEXT", textRects, 1024, ntr); + int ty = boxY + boxH + 6; + char buf[32]; + snprintf(buf, sizeof(buf), "SCORE %d", score); + ntr = append_text_rects(sx, ty, 1, buf, textRects, 1024, ntr); + snprintf(buf, sizeof(buf), "LINES %d", lines); + ntr = append_text_rects(sx, ty + 9, 1, buf, textRects, 1024, ntr); + snprintf(buf, sizeof(buf), "LEVEL %d", level); + ntr = append_text_rects(sx, ty + 18, 1, buf, textRects, 1024, ntr); + if (best > 0) { + snprintf(buf, sizeof(buf), "BEST %d", best); + ntr = append_text_rects(sx, ty + 27, 1, buf, textRects, 1024, ntr); + } + int ky = ty + 27 + 12; + ntr = append_text_rects(sx, ky, 1, "KEYS", textRects, 1024, ntr); + ntr = append_text_rects(sx, ky + 9, 1, "4/6 MOVE", textRects, 1024, ntr); + ntr = append_text_rects(sx, ky + 18, 1, "2 ROTATE", textRects, 1024, ntr); + ntr = append_text_rects(sx, ky + 27, 1, "8 SOFT", textRects, 1024, ntr); + ntr = append_text_rects(sx, ky + 36, 1, "0 DROP", textRects, 1024, ntr); + ntr = append_text_rects(sx, ky + 45, 1, "# PAUSE", textRects, 1024, ntr); + ntr = append_text_rects(sx, ky + 54, 1, "5 OK", textRects, 1024, ntr); + if (ntr > 0) { + XSetForeground(dpy, gc, C_DIM); + XFillRectangles(dpy, back, gc, textRects, ntr); + } + } else if (state == PAUSED) { draw_text(winW / 2 - 5 * 6, winH / 2 - 7, 2, C_FG, "PAUSE"); draw_text(winW / 2 - 4 * 6, winH / 2 + 10, 1, C_DIM, "5 RESUME"); } else if (state == GAMEOVER) { draw_text(winW / 2 - 9 * 6, winH / 2 - 14, 2, C_FG, "GAME OVER"); - snprintf(buf, sizeof(buf), "SCORE %d", score); draw_text(winW / 2 - 5 * 6, winH / 2 + 4, 1, C_DIM, buf); + char buf[32]; + snprintf(buf, sizeof(buf), "SCORE %d", score); + draw_text(winW / 2 - (int)strlen(buf) * 3, winH / 2 + 4, 1, C_DIM, buf); draw_text(winW / 2 - 5 * 6, winH / 2 + 13, 1, C_DIM, "5 NEW GAME"); } XCopyArea(dpy, back, win, gc, 0, 0, winW, winH, 0, 0); XFlush(dpy); + dirty = false; } static void setup_window() { @@ -407,10 +507,15 @@ static void setup_window() { if (winW < 96) winW = 96; if (winH < 96) winH = 96; win = XCreateWindow(dpy, RootWindow(dpy, screen), bw, TOPBAR + bw, winW, winH, 0, - CopyFromParent, InputOutput, CopyFromParent, 0, nullptr); + CopyFromParent, InputOutput, CopyFromParent, 0, nullptr); XStoreName(dpy, win, "Tetris"); XClassHint* ch = XAllocClassHint(); - if (ch) { ch->res_name = (char*)"tetris"; ch->res_class = (char*)"tetris"; XSetClassHint(dpy, win, ch); XFree(ch); } + if (ch) { + ch->res_name = (char*)"tetris"; + ch->res_class = (char*)"tetris"; + XSetClassHint(dpy, win, ch); + XFree(ch); + } Atom wtype = XInternAtom(dpy, "_NET_WM_WINDOW_TYPE", False); Atom dialog = XInternAtom(dpy, "_NET_WM_WINDOW_TYPE_DIALOG", False); @@ -422,10 +527,14 @@ static void setup_window() { sh.min_height = sh.max_height = winH; XSetWMNormalHints(dpy, win, &sh); - Atom wm_del = XInternAtom(dpy, "WM_DELETE_WINDOW", False); - XSetWMProtocols(dpy, win, &wm_del, 1); + wmDeleteAtom = XInternAtom(dpy, "WM_DELETE_WINDOW", False); + XSetWMProtocols(dpy, win, &wmDeleteAtom, 1); gc = XCreateGC(dpy, win, 0, nullptr); + // CRITICAL: disable GraphicsExposures so XCopyArea does not emit a NoExpose + // event on every frame (which previously woke select() in an infinite 100% + // CPU redraw storm). + XSetGraphicsExposures(dpy, gc, False); back = XCreatePixmap(dpy, win, winW, winH, DefaultDepth(dpy, screen)); C_BG = BlackPixel(dpy, screen); @@ -439,121 +548,134 @@ static void setup_window() { C_GB_LIGHT = 0x7fdf7f; // active piece body C_GB_PALE = 0xbfffbf; // top/left highlight - XSelectInput(dpy, win, KeyPressMask | StructureNotifyMask | ExposureMask); + XSelectInput(dpy, win, KeyPressMask | StructureNotifyMask | ExposureMask | FocusChangeMask); XMapWindow(dpy, win); } static void handle_key(KeySym ks) { switch (ks) { - case XK_Left: case XK_a: case XK_KP_Left: case XK_4: - if (state == PLAYING) { try_move(-1); } + case XK_Left: case XK_a: case XK_KP_Left: case XK_4: case XK_KP_4: + if (state == PLAYING) try_move(-1); break; - case XK_Right: case XK_d: case XK_KP_Right: case XK_6: - if (state == PLAYING) { try_move(1); } + case XK_Right: case XK_d: case XK_KP_Right: case XK_6: case XK_KP_6: + if (state == PLAYING) try_move(1); break; - case XK_Up: case XK_w: case XK_KP_Up: case XK_2: - if (state == PLAYING) { try_rotate(); } + case XK_Up: case XK_w: case XK_KP_Up: case XK_2: case XK_KP_2: + if (state == PLAYING) try_rotate(); break; - case XK_Down: case XK_s: case XK_KP_Down: case XK_8: case XK_x: + case XK_Down: case XK_s: case XK_KP_Down: case XK_8: case XK_KP_8: case XK_x: if (state == PLAYING) { int cells[4][2]; piece_cells(curType, curRot, cells); if (!collide(curX, curY + 1, cells)) { curY++; + resyncTimer = true; + dirty = true; } else { lock_piece(); } } break; - case XK_space: case XK_0: - if (state == PLAYING) { hard_drop(); } + case XK_space: case XK_0: case XK_KP_0: + if (state == PLAYING) hard_drop(); + else if (state == PAUSED) { state = PLAYING; resyncTimer = true; dirty = true; } + else if (state == GAMEOVER) reset_game(); break; - // Pause: P, 3, *, and the # key. NOTE: on this device the # key emits - // XK_KP_Divide (not XK_numbersign), so register KP_Divide too while the - // on-screen label still shows '#'. - case XK_p: case XK_3: case XK_numbersign: case XK_asterisk: case XK_KP_Divide: + // Pause: P, 3, *, and the # key (which emits XK_KP_Divide on nokia-argon). + case XK_p: case XK_3: case XK_KP_3: + case XK_numbersign: case XK_slash: case XK_KP_Divide: + case XK_asterisk: case XK_KP_Multiply: if (state == PLAYING) { state = PAUSED; + dirty = true; } else if (state == PAUSED) { state = PLAYING; + resyncTimer = true; + dirty = true; } break; - case XK_5: case XK_Return: case XK_KP_Enter: + case XK_5: case XK_KP_5: case XK_Return: case XK_KP_Enter: if (state == PLAYING) { hard_drop(); } else if (state == PAUSED) { state = PLAYING; + resyncTimer = true; + dirty = true; } else if (state == GAMEOVER) { reset_game(); } break; - case XK_Escape: case XK_BackSpace: case XK_Delete: case XK_End: case XK_Menu: - running = false; break; + case XK_Escape: case XK_BackSpace: case XK_Delete: case XK_End: + case XK_Menu: case XF86XK_Back: case XF86XK_KbdLcdMenu2: + running = false; + break; default: - if (state == GAMEOVER) { reset_game(); } break; } } static void handle_event(XEvent& e) { if (e.type == ClientMessage) { - Atom wm_del = XInternAtom(dpy, "WM_DELETE_WINDOW", False); - if ((Atom)e.xclient.data.l[0] == wm_del) running = false; + if ((Atom)e.xclient.data.l[0] == wmDeleteAtom) running = false; } else if (e.type == ConfigureNotify) { - winW = e.xconfigure.width; winH = e.xconfigure.height; + if (e.xconfigure.width != winW || e.xconfigure.height != winH) { + winW = e.xconfigure.width; + winH = e.xconfigure.height; + if (back) XFreePixmap(dpy, back); + back = XCreatePixmap(dpy, win, winW, winH, DefaultDepth(dpy, screen)); + dirty = true; + } } else if (e.type == Expose) { - render(); + if (e.xexpose.count == 0) dirty = true; + } else if (e.type == FocusOut) { + if (e.xfocus.mode == NotifyNormal && state == PLAYING) { + state = PAUSED; + dirty = true; + } } else if (e.type == KeyPress) { char buf[8]; KeySym ks = 0; XLookupString(&e.xkey, buf, sizeof(buf), &ks, nullptr); if (ks == NoSymbol) ks = XLookupKeysym(&e.xkey, 0); - if (ks == XK_q) { running = false; return; } + if (ks == XK_q || ks == XK_Q) { running = false; return; } handle_key(ks); } } int main() { srand((unsigned)time(nullptr) ^ (unsigned)getpid()); + init_glyph_lut(); setup_window(); reset_game(); render(); int xfd = ConnectionNumber(dpy); - - // Precise, drift-free stepping via a kernel high-resolution timer (timerfd). - // The timer fires on an absolute CLOCK_MONOTONIC deadline, so wakeups are not - // quantized to the kernel tick the way a select() timeout is. A select() - // timeout shorter than one tick gets rounded UP to a whole tick, which made - // the final few milliseconds of each wait overshoot by up to ~20ms and showed - // up as speed jitter. Input still arrives on the X connection fd, so we - // select() on BOTH fds and react to either immediately -- there is no - // busy-spin, so the X server stays free and the controls stay responsive. int tfd = -1; #if defined(__linux__) tfd = timerfd_create(CLOCK_MONOTONIC, TFD_NONBLOCK | TFD_CLOEXEC); #endif - unsigned long nextStep = now_ms() + speed; + int64_t nextStep = now_ns() + step_ns(); State prevState = PLAYING; + resyncTimer = false; - auto arm_timer = [&](unsigned long deadline_ms) { + auto arm_timer = [&](int64_t deadline_ns) { + if (tfd < 0) return; struct itimerspec its; - its.it_interval.tv_sec = 0; its.it_interval.tv_nsec = 0; // one-shot - its.it_value.tv_sec = (time_t)(deadline_ms / 1000); - its.it_value.tv_nsec = (long)((deadline_ms % 1000) * 1000000UL); - if (its.it_value.tv_nsec >= 1000000000L) { - its.it_value.tv_sec += 1; its.it_value.tv_nsec -= 1000000000L; - } + its.it_interval.tv_sec = 0; + its.it_interval.tv_nsec = 0; + its.it_value.tv_sec = (time_t)(deadline_ns / 1000000000LL); + its.it_value.tv_nsec = (long)(deadline_ns % 1000000000LL); timerfd_settime(tfd, TFD_TIMER_ABSTIME, &its, nullptr); }; auto disarm_timer = [&]() { + if (tfd < 0) return; struct itimerspec its; memset(&its, 0, sizeof(its)); timerfd_settime(tfd, 0, &its, nullptr); }; - if (tfd >= 0) arm_timer(nextStep); + arm_timer(nextStep); while (running) { fd_set fds; @@ -563,18 +685,15 @@ int main() { struct timeval tvbuf, *tvp = nullptr; if (tfd >= 0) { - // While playing, also wait on the timer fd. While paused / game over the - // timer is disarmed, so we block on input only (resume stays instant). if (state == PLAYING) { FD_SET(tfd, &fds); if (tfd + 1 > nfds) nfds = tfd + 1; } - } else { - // Fallback (timerfd unavailable): bounded select so input stays live. - long sleepMs = (state == PLAYING) ? (long)nextStep - (long)now_ms() : 30; - if (sleepMs < 0) sleepMs = 0; - tvbuf.tv_sec = sleepMs / 1000; - tvbuf.tv_usec = (sleepMs % 1000) * 1000; + } else if (state == PLAYING) { + int64_t remNs = nextStep - now_ns(); + if (remNs < 0) remNs = 0; + tvbuf.tv_sec = (time_t)(remNs / 1000000000LL); + tvbuf.tv_usec = (suseconds_t)((remNs % 1000000000LL) / 1000LL); tvp = &tvbuf; } @@ -592,42 +711,51 @@ int main() { if (!running) break; } - // 2) (Re)start play cleanly: resync the clock on resume / restart / launch, - // and stop the timer whenever we leave the PLAYING state. - if (state != prevState) { - if (state == PLAYING) { nextStep = now_ms() + speed; if (tfd >= 0) arm_timer(nextStep); } - else if (tfd >= 0) disarm_timer(); + // 2) Resync timer on state transitions, soft drop, or piece spawn. + if (state != prevState || resyncTimer) { + if (state == PLAYING) { + nextStep = now_ns() + step_ns(); + arm_timer(nextStep); + } else { + disarm_timer(); + } prevState = state; - } - - // 3) Advance the simulation exactly once per timer expiration (or, in the - // fallback path, whenever the deadline is reached). If we ever fell more - // than one interval behind (e.g. the process was frozen for a screenshot) - // we drop the backlog instead of racing to catch up. - if (state == PLAYING) { + resyncTimer = false; + } else if (state == PLAYING) { + // 3) Advance simulation on scheduled gravity timer expiration. bool due = false; if (tfd >= 0) { if (FD_ISSET(tfd, &fds)) { uint64_t expirations = 0; ssize_t n = read(tfd, &expirations, sizeof(expirations)); - (void)n; (void)expirations; + (void)n; due = true; } } else { - if ((long)(now_ms() - nextStep) >= 0) due = true; + if (now_ns() >= nextStep) due = true; } if (due) { step(); - nextStep += speed; // advance by exactly one interval (no drift) - unsigned long now = now_ms(); - if ((long)(now - nextStep) > (long)speed) nextStep = now + speed; - if (tfd >= 0 && state == PLAYING) arm_timer(nextStep); + if (state == PLAYING) { + if (resyncTimer) { + nextStep = now_ns() + step_ns(); + resyncTimer = false; + } else { + nextStep += step_ns(); + int64_t now = now_ns(); + if (now - nextStep > step_ns()) nextStep = now + step_ns(); + } + arm_timer(nextStep); + } else { + disarm_timer(); + prevState = state; + resyncTimer = false; + } } } - // 4) Repaint on every loop turn (input or step) so the display never - // appears frozen and key feedback is immediate. - render(); + // 4) Repaint only when visual state actually changed. + if (dirty) render(); } if (tfd >= 0) close(tfd); diff --git a/src/sxmo-dmenu/dmenu.c b/src/sxmo-dmenu/dmenu.c index c0b819f..bd9cd9d 100644 --- a/src/sxmo-dmenu/dmenu.c +++ b/src/sxmo-dmenu/dmenu.c @@ -699,21 +699,46 @@ spawn_detached_sh(const char *cmd) } static void -trigger_plugin_open(const char *plugin_name) +trigger_plugin_open(const char *plugin_spec) { + if (!plugin_spec || !plugin_spec[0]) + return; + char plugin_name[64]; + const char *arg = NULL; + const char *colon = strchr(plugin_spec, ':'); + if (colon) { + size_t nlen = (size_t)(colon - plugin_spec); + if (nlen >= sizeof(plugin_name)) + nlen = sizeof(plugin_name) - 1; + memcpy(plugin_name, plugin_spec, nlen); + plugin_name[nlen] = '\0'; + arg = colon + 1; + } else { + snprintf(plugin_name, sizeof(plugin_name), "%s", plugin_spec); + } + char fifo_path[128]; snprintf(fifo_path, sizeof(fifo_path), "/tmp/dwm_plugin_%s.fifo", plugin_name); int fd = open(fifo_path, O_WRONLY | O_NONBLOCK | O_CLOEXEC); if (fd >= 0) { - const char *msg = (strcmp(plugin_name, "xdrawer") == 0) ? "TOGGLE\n" : "OPEN\n"; + char msg[128]; + if (strcmp(plugin_name, "xdrawer") == 0) + snprintf(msg, sizeof(msg), "TOGGLE\n"); + else if (arg && arg[0]) + snprintf(msg, sizeof(msg), "OPEN %s\n", arg); + else + snprintf(msg, sizeof(msg), "OPEN\n"); if (write(fd, msg, strlen(msg)) > 0) { close(fd); return; } close(fd); } - char cmd[128]; - snprintf(cmd, sizeof(cmd), "dwm-plugin %s", plugin_name); + char cmd[160]; + if (arg && arg[0]) + snprintf(cmd, sizeof(cmd), "dwm-plugin %s %s", plugin_name, arg); + else + snprintf(cmd, sizeof(cmd), "dwm-plugin %s", plugin_name); spawn_detached_sh(cmd); } @@ -841,9 +866,75 @@ handle_builtin_toggle(const char *toggle_name) close(fd); } } else if (strcmp(toggle_name, "bluetooth") == 0) { - int rc = system("doas sxmo_bluetoothtoggle.sh >/dev/null 2>&1"); + int rc = system("SXMO_OS=alpine doas -n sxmo_bluetoothtoggle.sh >/dev/null 2>&1"); (void)rc; spawn_detached_sh("sxmo_hook_statusbar.sh bluetooth"); + } else if (strcmp(toggle_name, "ring") == 0) { + const char *home = getenv("HOME"); + if (!home || !home[0]) + home = "/home/user"; + char dir[256], path[256]; + snprintf(dir, sizeof(dir), "%s/.config/sxmo", home); + snprintf(path, sizeof(path), "%s/.noring", dir); + if (access(path, F_OK) == 0) { + unlink(path); + } else { + mkdir(dir, 0755); + int fd = open(path, O_WRONLY | O_CREAT | O_TRUNC | O_CLOEXEC, 0644); + if (fd >= 0) + close(fd); + } + spawn_detached_sh("sxmo_hook_statusbar.sh audio"); + } else if (strcmp(toggle_name, "vibrate") == 0) { + const char *home = getenv("HOME"); + if (!home || !home[0]) + home = "/home/user"; + char dir[256], path[256]; + snprintf(dir, sizeof(dir), "%s/.config/sxmo", home); + snprintf(path, sizeof(path), "%s/.novibrate", dir); + if (access(path, F_OK) == 0) { + unlink(path); + } else { + mkdir(dir, 0755); + int fd = open(path, O_WRONLY | O_CREAT | O_TRUNC | O_CLOEXEC, 0644); + if (fd >= 0) + close(fd); + } + spawn_detached_sh("sxmo_hook_statusbar.sh audio"); + } else if (strcmp(toggle_name, "dnd") == 0) { + const char *rdir = getenv("XDG_RUNTIME_DIR"); + char path[256]; + snprintf(path, sizeof(path), "%s/sxmo.busy", (rdir && rdir[0]) ? rdir : "/run/user/10000"); + if (access(path, F_OK) == 0) { + unlink(path); + } else { + int fd = open(path, O_WRONLY | O_CREAT | O_TRUNC | O_CLOEXEC, 0644); + if (fd >= 0) + close(fd); + } + spawn_detached_sh("sxmo_hook_statusbar.sh audio"); + } else if (strcmp(toggle_name, "notif_clear_all") == 0) { + const char *ndir = getenv("SXMO_NOTIFDIR"); + char default_dir[256]; + if (!ndir || !ndir[0]) { + const char *home = getenv("HOME"); + snprintf(default_dir, sizeof(default_dir), "%s/.local/share/sxmo/notifications", + (home && home[0]) ? home : "/home/user"); + ndir = default_dir; + } + DIR *d = opendir(ndir); + if (d) { + struct dirent *ent; + while ((ent = readdir(d)) != NULL) { + if (ent->d_name[0] == '.') + continue; + char fpath[512]; + snprintf(fpath, sizeof(fpath), "%s/%s", ndir, ent->d_name); + unlink(fpath); + } + closedir(d); + } + spawn_detached_sh("sxmo_hook_statusbar.sh notifs"); } } @@ -926,6 +1017,27 @@ activate_selection(unsigned int ev_state) trigger_plugin_open(act + 8); return; } + if (strncmp(act, "@notif_open:", 12) == 0) { + const char *fpath = act + 12; + char action_cmd[512] = ""; + FILE *fp = fopen(fpath, "r"); + if (fp) { + char line1[256]; + if (fgets(line1, sizeof(line1), fp) && fgets(action_cmd, sizeof(action_cmd), fp)) { + char *nl = strpbrk(action_cmd, "\r\n"); + if (nl) + *nl = '\0'; + } + fclose(fp); + } + unlink(fpath); + spawn_detached_sh("sxmo_hook_statusbar.sh notifs"); + hide_menu(); + menu_mode = MODE_NONE; + if (action_cmd[0] && strcmp(action_cmd, "none") != 0) + spawn_detached_sh(action_cmd); + return; + } if (strncmp(act, "@toggle:", 8) == 0) { handle_builtin_toggle(act + 8); char cur_menu[64]; @@ -1628,6 +1740,135 @@ load_cache_or_hook(const char *cache_name, const char *hook_cmd) fclose(fp); } +static void +populate_notifications_menu(void) +{ + const char *ndir = getenv("SXMO_NOTIFDIR"); + char default_dir[256]; + if (!ndir || !ndir[0]) { + const char *home = getenv("HOME"); + snprintf(default_dir, sizeof(default_dir), "%s/.local/share/sxmo/notifications", + (home && home[0]) ? home : "/home/user"); + ndir = default_dir; + } + DIR *d = opendir(ndir); + if (!d) + return; + + struct dirent *ent; + while ((ent = readdir(d)) != NULL) { + if (ent->d_name[0] == '.') + continue; + char fpath[512]; + snprintf(fpath, sizeof(fpath), "%s/%s", ndir, ent->d_name); + struct stat st; + if (stat(fpath, &st) != 0 || !S_ISREG(st.st_mode)) + continue; + + FILE *fp = fopen(fpath, "r"); + if (!fp) + continue; + char l1[256] = "", l2[256] = "", l3[512] = ""; + (void)fgets(l1, sizeof(l1), fp); + (void)fgets(l2, sizeof(l2), fp); + if (fgets(l3, sizeof(l3), fp)) { + char *nl = strpbrk(l3, "\r\n"); + if (nl) + *nl = '\0'; + } + fclose(fp); + if (!l3[0]) + snprintf(l3, sizeof(l3), "%s", ent->d_name); + + char label[560], act[560]; + snprintf(label, sizeof(label), "%s %s", ICON_BEL, l3); + snprintf(act, sizeof(act), "@notif_open:%s", fpath); + add_menu_item(label, act, 0); + } + closedir(d); +} + +static int +cmp_cstr_ptr(const void *a, const void *b) +{ + const char *sa = *(const char *const *)a; + const char *sb = *(const char *const *)b; + return strcmp(sa, sb); +} + +static void +scan_zoneinfo_recursive(const char *base_dir, const char *rel_dir, + char ***list_io, size_t *count_io, size_t *cap_io) +{ + char full_dir[512]; + if (rel_dir && rel_dir[0]) + snprintf(full_dir, sizeof(full_dir), "%s/%s", base_dir, rel_dir); + else + snprintf(full_dir, sizeof(full_dir), "%s", base_dir); + + DIR *d = opendir(full_dir); + if (!d) + return; + + struct dirent *ent; + while ((ent = readdir(d)) != NULL) { + const char *nm = ent->d_name; + if (nm[0] == '.' || strcmp(nm, "posix") == 0 || strcmp(nm, "right") == 0 || + strcmp(nm, "zone.tab") == 0 || strcmp(nm, "zone1970.tab") == 0 || + strcmp(nm, "iso3166.tab") == 0 || strcmp(nm, "leapseconds") == 0 || + strcmp(nm, "tzdata.zi") == 0 || strcmp(nm, "localtime") == 0 || + strcmp(nm, "posixrules") == 0) + continue; + + char rel_path[512], child_full[512]; + if (rel_dir && rel_dir[0]) + snprintf(rel_path, sizeof(rel_path), "%s/%s", rel_dir, nm); + else + snprintf(rel_path, sizeof(rel_path), "%s", nm); + snprintf(child_full, sizeof(child_full), "%s/%s", base_dir, rel_path); + + struct stat st; + if (stat(child_full, &st) != 0) + continue; + if (S_ISDIR(st.st_mode)) { + scan_zoneinfo_recursive(base_dir, rel_path, list_io, count_io, cap_io); + } else if (S_ISREG(st.st_mode)) { + if (*count_io >= *cap_io) { + size_t ncap = (*cap_io == 0) ? 256 : (*cap_io * 2); + char **nlist = realloc(*list_io, ncap * sizeof(char *)); + if (!nlist) + break; + *list_io = nlist; + *cap_io = ncap; + } + (*list_io)[*count_io] = strdup(rel_path); + if ((*list_io)[*count_io]) + (*count_io)++; + } + } + closedir(d); +} + +static void +populate_timezone_menu(void) +{ + char **tz_list = NULL; + size_t tz_count = 0, tz_cap = 0; + scan_zoneinfo_recursive("/usr/share/zoneinfo", "", &tz_list, &tz_count, &tz_cap); + if (tz_count > 1) + qsort(tz_list, tz_count, sizeof(char *), cmp_cstr_ptr); + + for (size_t i = 0; i < tz_count; i++) { + char cmd[512]; + snprintf(cmd, sizeof(cmd), + "doas -n setup-timezone -z '%s' >/dev/null 2>&1; sxmo_hook_statusbar.sh time", + tz_list[i]); + add_menu_item(tz_list[i], cmd, 0); + free(tz_list[i]); + } + free(tz_list); +} + static void open_builtin_menu(const char *menu_name, int keep_idx) { @@ -1667,7 +1908,7 @@ open_builtin_menu(const char *menu_name, int keep_idx) int nnotifs = count_notifications(); if (nnotifs > 0) { snprintf(label, sizeof(label), "%s Notifications (%d)", ICON_BEL, nnotifs); - add_menu_item(label, "sxmo_notifs.sh menu", 0); + add_menu_item(label, "@menu:notifications", 1); } const char *sh = getenv("SHELL"); if (!sh || !sh[0]) @@ -1702,7 +1943,7 @@ open_builtin_menu(const char *menu_name, int keep_idx) if (bt_is_unblocked_fast()) { snprintf(label, sizeof(label), "%s Bluetooth", ICON_BTH); - add_menu_item(label, "sxmo_bluetoothmenu.sh", 0); + add_menu_item(label, "@plugin:networks:bluetooth", 0); } snprintf(label, sizeof(label), "%s Camera", ICON_CAM); @@ -1720,16 +1961,16 @@ open_builtin_menu(const char *menu_name, int keep_idx) } snprintf(label, sizeof(label), "%s Networks", ICON_NET); - add_menu_item(label, "sxmo_networks.sh", 0); + add_menu_item(label, "@plugin:networks", 0); snprintf(label, sizeof(label), "%s Audio", ICON_MUS); - add_menu_item(label, "sxmo_audio.sh", 0); + add_menu_item(label, "@menu:audio", 1); snprintf(label, sizeof(label), "%s Modem", ICON_PHN); - add_menu_item(label, "@menu:modem", 1); + add_menu_item(label, "@plugin:modem", 0); snprintf(label, sizeof(label), "%s Windows", ICON_WIN); - add_menu_item(label, "sxmo_wmmenu.sh", 0); + add_menu_item(label, "@menu:wm", 1); snprintf(label, sizeof(label), "%s Config", ICON_CFG); add_menu_item(label, "@menu:config", 1); @@ -1767,12 +2008,26 @@ open_builtin_menu(const char *menu_name, int keep_idx) } else if (strcmp(menu_name, "games") == 0) { reset_session_defaults(1, "Games"); append_active_call_entries(); - load_cache_or_hook("sxmo_games.cache", "sxmo_hook_games.sh"); + if (access("/usr/bin/snake", X_OK) == 0) { + snprintf(label, sizeof(label), "%s Snake", ICON_GAM); + add_menu_item(label, "snake", 0); + } + if (access("/usr/bin/tetris", X_OK) == 0) { + snprintf(label, sizeof(label), "%s Tetris", ICON_GAM); + add_menu_item(label, "tetris", 0); + } + const char *rdir = getenv("XDG_RUNTIME_DIR"); + char gcache[256]; + snprintf(gcache, sizeof(gcache), "%s/sxmo_games.cache", (rdir && rdir[0]) ? rdir : "/run/user/10000"); + if (access(gcache, R_OK) == 0 || access("/tmp/sxmo_games.cache", R_OK) == 0) + load_cache_or_hook("sxmo_games.cache", "sxmo_hook_games.sh"); + else + spawn_detached_sh("sxmo_hook_games.sh >/dev/null 2>&1"); snprintf(label, sizeof(label), "%s System Menu", ICON_MNU); add_menu_item(label, "@menu:sys", 1); snprintf(label, sizeof(label), "%s Close Menu", ICON_CLS); add_menu_item(label, "@close", 0); - } else if (strcmp(menu_name, "modem") == 0) { + } else if (strcmp(menu_name, "scripts") == 0) { reset_session_defaults(1, "Scripts"); append_active_call_entries(); load_cache_or_hook("sxmo_scripts.cache", "sxmo_hook_scripts.sh"); @@ -1783,16 +2038,87 @@ open_builtin_menu(const char *menu_name, int keep_idx) } else if (strcmp(menu_name, "modem") == 0) { reset_session_defaults(1, "Modem"); append_active_call_entries(); - snprintf(label, sizeof(label), "%s Modem PIN", ICON_PLK); - add_menu_item(label, "sxmo_unlocksim.sh", 0); - snprintf(label, sizeof(label), "%s Modem Info", ICON_INF); - add_menu_item(label, "sxmo_modeminfo.sh", 0); - snprintf(label, sizeof(label), "%s Modem Log", ICON_PHL); - add_menu_item(label, "sxmo_modemlog.sh", 0); + snprintf(label, sizeof(label), "%s SIM & Dual-SIM Manager", ICON_PHN); + add_menu_item(label, "@plugin:modem", 0); + snprintf(label, sizeof(label), "%s Unlock SIM (PIN / PUK)", ICON_PLK); + add_menu_item(label, "@plugin:modem:unlock", 0); + snprintf(label, sizeof(label), "%s Modem & Radio Status", ICON_INF); + add_menu_item(label, "@plugin:modem:info", 0); + snprintf(label, sizeof(label), "%s Send USSD Code", ICON_PHN); + add_menu_item(label, "@plugin:modem:ussd", 0); + snprintf(label, sizeof(label), "%s Modem Event Log", ICON_PHL); + add_menu_item(label, "@plugin:modem:log", 0); snprintf(label, sizeof(label), "%s System Menu", ICON_MNU); add_menu_item(label, "@menu:sys", 1); snprintf(label, sizeof(label), "%s Close Menu", ICON_CLS); add_menu_item(label, "@close", 0); + } else if (strcmp(menu_name, "audio") == 0) { + reset_session_defaults(1, "Audio"); + append_active_call_entries(); + const char *home = getenv("HOME"); + if (!home || !home[0]) + home = "/home/user"; + const char *rdir = getenv("XDG_RUNTIME_DIR"); + if (!rdir || !rdir[0]) + rdir = "/run/user/10000"; + char pbuf[256]; + + snprintf(label, sizeof(label), "%s Volume & Controls (XDrawer)", ICON_MUS); + add_menu_item(label, "@plugin:xdrawer", 0); + + snprintf(pbuf, sizeof(pbuf), "%s/.config/sxmo/.noring", home); + snprintf(label, sizeof(label), "%s Ring %s", ICON_BEL, (access(pbuf, F_OK) == 0) ? ICON_TOF : ICON_TON); + add_menu_item(label, "@toggle:ring", 1); + + snprintf(pbuf, sizeof(pbuf), "%s/.config/sxmo/.novibrate", home); + snprintf(label, sizeof(label), "%s Vibrate %s", ICON_BEL, (access(pbuf, F_OK) == 0) ? ICON_TOF : ICON_TON); + add_menu_item(label, "@toggle:vibrate", 1); + + snprintf(pbuf, sizeof(pbuf), "%s/sxmo.busy", rdir); + snprintf(label, sizeof(label), "%s Do Not Disturb %s", ICON_ZZZ, (access(pbuf, F_OK) == 0) ? ICON_TON : ICON_TOF); + add_menu_item(label, "@toggle:dnd", 1); + + snprintf(label, sizeof(label), "%s Route to Speaker", ICON_MUS); + add_menu_item(label, "amixer -c 0 cset name='SPK DAC Switch' on >/dev/null 2>&1; sxmo_hook_statusbar.sh audio", 1); + + snprintf(label, sizeof(label), "%s Route to Earpiece", ICON_PHN); + add_menu_item(label, "amixer -c 0 cset name='SPK DAC Switch' off >/dev/null 2>&1; sxmo_hook_statusbar.sh audio", 1); + + snprintf(label, sizeof(label), "%s System Menu", ICON_MNU); + add_menu_item(label, "@menu:sys", 1); + snprintf(label, sizeof(label), "%s Close Menu", ICON_CLS); + add_menu_item(label, "@close", 0); + } else if (strcmp(menu_name, "notifications") == 0) { + reset_session_defaults(1, "Notifs"); + populate_notifications_menu(); + snprintf(label, sizeof(label), "%s Clear All Notifications", ICON_CLS); + add_menu_item(label, "@toggle:notif_clear_all", 1); + snprintf(label, sizeof(label), "%s System Menu", ICON_MNU); + add_menu_item(label, "@menu:sys", 1); + snprintf(label, sizeof(label), "%s Close Menu", ICON_CLS); + add_menu_item(label, "@close", 0); + } else if (strcmp(menu_name, "wm") == 0) { + reset_session_defaults(1, "WM Menu"); + for (int ws = 1; ws <= 4; ws++) { + snprintf(label, sizeof(label), "%d Move to WS %d", ws, ws); + snprintf(cmd, sizeof(cmd), "sxmo_wm.sh moveworkspace %d", ws); + add_menu_item(label, cmd, 1); + } + snprintf(label, sizeof(label), "%s Shift stack", ICON_RLD); + add_menu_item(label, "sxmo_wm.sh switchfocus", 1); + snprintf(label, sizeof(label), "%s Toggle Layout", ICON_GRD); + add_menu_item(label, "sxmo_wm.sh togglelayout", 1); + snprintf(label, sizeof(label), "%s Kill window", ICON_CLS); + add_menu_item(label, "sxmo_killwindow.sh", 0); + snprintf(label, sizeof(label), "%s System Menu", ICON_MNU); + add_menu_item(label, "@menu:sys", 1); + snprintf(label, sizeof(label), "%s Close Menu", ICON_CLS); + add_menu_item(label, "@close", 0); + } else if (strcmp(menu_name, "timezone") == 0) { + reset_session_defaults(1, "Timezone"); + snprintf(label, sizeof(label), "%s Back to Config", ICON_CFG); + add_menu_item(label, "@menu:config", 1); + populate_timezone_menu(); } else if (strcmp(menu_name, "config") == 0) { reset_session_defaults(1, "Config"); append_active_call_entries(); @@ -1814,7 +2140,7 @@ open_builtin_menu(const char *menu_name, int keep_idx) add_menu_item(label, "@toggle:bluetooth", 1); snprintf(label, sizeof(label), "%s Change Timezone", ICON_CLK); - add_menu_item(label, "sxmo_timezonechange.sh", 0); + add_menu_item(label, "@menu:timezone", 1); snprintf(pbuf, sizeof(pbuf), "%s/.cache/sxmo/sxmo.nosuspend", home); snprintf(label, sizeof(label), "%s Auto-suspend %s", ICON_ZZZ, (access(pbuf, F_OK) == 0) ? ICON_TOF : ICON_TON); @@ -1967,6 +2293,8 @@ close_other_active_plugins(void) { "xfiles.pid", "/tmp/dwm_plugin_files.fifo" }, { "xcamera.pid", "/tmp/dwm_plugin_camera.fifo" }, { "xthemes.pid", "/tmp/dwm_plugin_themes.fifo" }, + { "xmodem.pid", "/tmp/dwm_plugin_modem.fifo" }, + { "xnetworks.pid", "/tmp/dwm_plugin_networks.fifo" }, }; const char *rdir = getenv("XDG_RUNTIME_DIR"); const char *base = (rdir && rdir[0]) ? rdir : "/run/user/10000"; @@ -2855,10 +3183,13 @@ dmenu_run_main(int argc, char *argv[]) if (!strcmp(argv[i], "--preload")) { preload = 1; } else if (!strcmp(argv[i], "sys") || !strcmp(argv[i], "ctx") || - !strcmp(argv[i], "applications") || !strcmp(argv[i], "scripts") || - !strcmp(argv[i], "modem") || !strcmp(argv[i], "config") || - !strcmp(argv[i], "power") || !strcmp(argv[i], "st") || - !strcmp(argv[i], "nano") || !strcmp(argv[i], "sthotkeys")) { + !strcmp(argv[i], "applications") || !strcmp(argv[i], "games") || + !strcmp(argv[i], "scripts") || !strcmp(argv[i], "modem") || + !strcmp(argv[i], "audio") || !strcmp(argv[i], "notifications") || + !strcmp(argv[i], "wm") || !strcmp(argv[i], "timezone") || + !strcmp(argv[i], "config") || !strcmp(argv[i], "power") || + !strcmp(argv[i], "st") || !strcmp(argv[i], "nano") || + !strcmp(argv[i], "sthotkeys")) { preload = 1; initial_builtin = argv[i]; } else if (!strcmp(argv[i], "-v")) { diff --git a/src/sxmo-dwm/dwm.c b/src/sxmo-dwm/dwm.c index 6bd5db7..54e5f5a 100644 --- a/src/sxmo-dwm/dwm.c +++ b/src/sxmo-dwm/dwm.c @@ -1583,7 +1583,7 @@ is_right_softkey(KeySym ks, unsigned int keycode) #include #include "dwm_plugin.h" -#define MAX_DWM_PLUGINS 16 +#define MAX_DWM_PLUGINS 24 typedef struct { void *handle; diff --git a/src/xdrawer/xdrawer.cpp b/src/xdrawer/xdrawer.cpp index d576258..667fbf0 100644 --- a/src/xdrawer/xdrawer.cpp +++ b/src/xdrawer/xdrawer.cpp @@ -42,7 +42,7 @@ constexpr int kWinX = 0; constexpr int kWinY = kTopBarHeight; constexpr int kWinWidth = kScreenWidth; constexpr int kWinHeight = kScreenHeight - kTopBarHeight; // 296px flush below 24px dwm bar -constexpr int kRowCount = 7; +constexpr int kRowCount = 8; // Nerd Font PUA icons matching sxmo_hook_icons.sh & dwm ("Fira Code, DejaVuSansM Nerd Font") constexpr const char* kIconSpeaker = "\xef\x80\xa8"; // U+F028 speaker @@ -54,6 +54,8 @@ constexpr const char* kIconMicOn = "\xf3\xb0\x8d\xac"; // U+F036C mic on constexpr const char* kIconMicOff = "\xf3\xb0\x8d\xad"; // U+F036D mic off constexpr const char* kIconBrightness = "\xf3\xb0\x83\x9d"; // U+F00DD brightness constexpr const char* kIconKeyboard = "\xef\x84\x9c"; // U+F11C keyboard +constexpr const char* kIconBell = "\xef\x83\xb3"; // U+F0F3 bell / ringer +constexpr const char* kIconBellSlash = "\xef\x87\xb6"; // U+F1F6 bell-slash constexpr const char* kIconToggleOn = "\xef\x88\x85"; // U+F205 toggle on constexpr const char* kIconToggleOff = "\xef\x88\x84"; // U+F204 toggle off @@ -240,8 +242,9 @@ enum class ControlId { Flashlight = 2, SoundMute = 3, MicMute = 4, - ScreenBright = 5, - KbdBright = 6, + RingerMode = 5, + ScreenBright = 6, + KbdBright = 7, }; struct ControlItem { @@ -314,7 +317,12 @@ class PhoneController { items_.push_back({ControlId::MicMute, kIconMicOn, kIconMicOff, "Microphone", false, 0, 1, 1, (dec1 > 0) ? 1 : 0}); - // 6. Screen brightness (slider 1..screenMax_) + // 6. Ringer Mode (0=Ring+Vib, 1=Vibrate, 2=Silent, 3=DND) + int ringerVal = readRingerMode(); + items_.push_back({ControlId::RingerMode, kIconBell, kIconBellSlash, + "Ringer", false, 0, 3, 1, ringerVal}); + + // 7. Screen brightness (slider 1..screenMax_) int scrCur = std::clamp(readIntFile(backlightDir_ + "/brightness", screenMax_), 1, screenMax_); int scrStep = std::max(1, screenMax_ / 14); items_.push_back({ControlId::ScreenBright, kIconBrightness, kIconBrightness, @@ -342,6 +350,8 @@ class PhoneController { ControlItem& it = items_[idx]; if (it.isSlider) { it.value = std::clamp(it.value + dir * it.stepVal, it.minVal, it.maxVal); + } else if (it.id == ControlId::RingerMode) { + it.value = (it.value + dir + 4) % 4; } else { it.value = it.value ? 0 : 1; } @@ -353,13 +363,38 @@ class PhoneController { return; } ControlItem& it = items_[idx]; - if (!it.isSlider) { + if (it.id == ControlId::RingerMode) { + it.value = (it.value + 1) % 4; + apply(it); + } else if (!it.isSlider) { it.value = it.value ? 0 : 1; apply(it); } } private: + static std::string getSxmoCfgDir() { + const char* xdg = std::getenv("XDG_CONFIG_HOME"); + if (xdg && xdg[0]) { + return std::string(xdg) + "/sxmo"; + } + const char* home = std::getenv("HOME"); + return std::string((home && home[0]) ? home : "/home/user") + "/.config/sxmo"; + } + + static int readRingerMode() { + std::string busyFile = getRuntimeFile("sxmo.busy"); + if (::access(busyFile.c_str(), F_OK) == 0) { + return 3; // DND + } + std::string cfg = getSxmoCfgDir(); + bool noRing = (::access((cfg + "/.noring").c_str(), F_OK) == 0); + bool noVib = (::access((cfg + "/.novibrate").c_str(), F_OK) == 0); + if (noRing && noVib) return 2; // Silent + if (noRing) return 1; // Vibrate only + return 0; // Ring + Vibrate + } + void apply(ControlItem& it) { switch (it.id) { case ControlId::SpeakerVol: { @@ -404,6 +439,30 @@ class PhoneController { : "wpctl set-mute @DEFAULT_AUDIO_SOURCE@ 1 >/dev/null 2>&1"); break; } + case ControlId::RingerMode: { + std::string cfg = getSxmoCfgDir(); + ::mkdir(cfg.c_str(), 0755); + std::string noRingPath = cfg + "/.noring"; + std::string noVibPath = cfg + "/.novibrate"; + std::string busyPath = getRuntimeFile("sxmo.busy"); + if (it.value == 0) { // Ring + Vibrate + ::unlink(noRingPath.c_str()); + ::unlink(noVibPath.c_str()); + ::unlink(busyPath.c_str()); + } else if (it.value == 1) { // Vibrate only + writeIntFile(noRingPath, 1); + ::unlink(noVibPath.c_str()); + ::unlink(busyPath.c_str()); + } else if (it.value == 2) { // Silent + writeIntFile(noRingPath, 1); + writeIntFile(noVibPath, 1); + ::unlink(busyPath.c_str()); + } else { // DND + writeIntFile(busyPath, 1); + } + runAsyncCmd("sxmo_hook_statusbar.sh audio >/dev/null 2>&1"); + break; + } case ControlId::ScreenBright: { writeIntFile(backlightDir_ + "/bl_power", 0); writeIntFile(backlightDir_ + "/brightness", it.value); @@ -597,10 +656,11 @@ static int xdrawer_run_main(int argc, char** argv) { } const ControlItem& it = items[i]; - bool activeState = (it.value > 0); + bool activeState = (it.id == ControlId::RingerMode) ? (it.value == 0 || it.value == 1) + : (it.value > 0); const char* rowIcon = activeState ? it.iconOn : it.iconOff; - int labelMaxW = it.isSlider ? 82 : 136; + int labelMaxW = it.isSlider ? 82 : 126; drawPango(layoutIcon, isSel ? &colYellow : &colLight, 8, ry, rowH, rowIcon); drawPango(layoutMain, isSel ? &colWhite : &colLight, 30, ry, rowH, it.label, labelMaxW); @@ -643,6 +703,13 @@ static int xdrawer_run_main(int argc, char** argv) { int pw = pangoWidth(layoutSmall, pctStr); drawPango(layoutSmall, isSel ? &colWhite : &colLight, kWinWidth - pw - 6, ry, rowH, pctStr); + } else if (it.id == ControlId::RingerMode) { + const char* rModes[4] = {"Ring+Vib", "Vibrate", "Silent", "DND"}; + std::string stStr = std::string("< ") + rModes[std::clamp(it.value, 0, 3)] + " >"; + int stW = pangoWidth(layoutSmall, stStr); + XftColor* rCol = (it.value == 0) ? (isSel ? &colYellow : &colGreen) + : ((it.value == 1) ? &colYellow : &colMuted); + drawPango(layoutSmall, rCol, kWinWidth - stW - 6, ry, rowH, stStr); } else { bool on = (it.value != 0); std::string stStr = on ? "ON" : "OFF"; @@ -715,6 +782,8 @@ static int xdrawer_run_main(int argc, char** argv) { closeOtherPlugin("xfiles.pid", "/tmp/dwm_plugin_files.fifo"); closeOtherPlugin("xcamera.pid", "/tmp/dwm_plugin_camera.fifo"); closeOtherPlugin("xthemes.pid", "/tmp/dwm_plugin_themes.fifo"); + closeOtherPlugin("xmodem.pid", "/tmp/dwm_plugin_modem.fifo"); + closeOtherPlugin("xnetworks.pid", "/tmp/dwm_plugin_networks.fifo"); theme.checkAndReload(dpy, screen, visual, cmap, layoutMain, layoutSmall, layoutIcon, nullptr, win); openStartMs = nowMs();

RPHW!Um-5I%XKP*_*xVK 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 literal 0 HcmV?d00001 diff --git a/overlay/rootfs/usr/lib/dwm/plugins/networks.so b/overlay/rootfs/usr/lib/dwm/plugins/networks.so new file mode 100755 index 0000000000000000000000000000000000000000..811d380351393bc0a60f3d02b4853668dc73b38f GIT binary patch literal 107948 zcmeFa3tUuX{y+YlnE{5IB9bDIjev?uHsGjeY~je904-6-$lRFWqBDpv0T!COf?}Cj zA>#!ZE7P|1Qi)x5({gpoZSCUzhH^JeU8zhM@B(JdQBeNx&zUoLnDV>T_xpPN|KHc| z@9yFAIp;jr&;9c}&zY7Prt=)fG0#6Gi({TU9UfM^ggX`U(J>A4!@EcpLGP`t&v49h zsTGXTr9yeSJoPdr{;c57i9S z%{u6@$2Qhv|Kn|Y_0p!rBZ@!1chj0-Cku84Yuc`}ADUV!46QRxf7m_s z!0Oc<=X{36JUzJW`i7wD-$&efeN)WWZ}?_@GkWCl+U+mRGnYrMC>r^v-yT}sQt;u! z1J6I!Z|Uek{de3x;#$P!f0R62GGz3-b=ah{AF2I>!0s! zT=NPWKJuRIVJ(YJ{QHZ7onNgSyzbM;w(IZJt$Xg7@8>?$w7B^XweKJ5-up~vKle=f z{;j#&eXkTb2Yd^0o%lV7Er=CS@lPoJ{?_Y$U`*fle~#>XKPkNLebJ3urU9Nyf+hW< z_EQFV?ii!{;K6Dg%eQIy97d`$OapOI;|4%Yb(myIcWr*j_P2Uk-?JxEk?+&l`!8fXl z^6`}4jR(~JI5HX1Kf3=vUj3DOmH$T8AC1@QCBF|ud0KOi_qwb-Du26Ie_3Ah9d)C+ zINnw-`L}uXx7F+ZsF%F{TPEK$zu$SyN8{ChnOA?+Ui=yFRX)}0-sCm^2(R(2_2U2g zviZ{Z45}Ls=>9RU@jv6m->1FWPxI>E-%EaHd6nPfMUTN=_F`>x-|@V0OW*r#Uj6Z2 z;`?Ik~d4)FBO80ka1*Zh9#)&9S36c^_=SEf%i{*hkv{XbsiUy=1k z<w+N*vS1$@#! zs(;ll-Kwoz3veX_x_{# zxxB`6#7iE&_o_e3OJ65>)qmAX9`5(5ALrG-y>~Qjf3?V~|3t6(5Adp=?nS>Euky2G z?Q4K5;E?y+#jy#%qgfzJzm2gYc^n%n-B$q~xrGyR1bR=+?JwXM4J(udu|I;p$47GP zjM82IJNT1Z@8g&ea!lnp=wo#j$1+il?%N>GO%HMG9O~2kKk>X3Ovu6gFgB1q4S)IV zZ5+ExdjA5(=fwC@qb4nO^jM72`=5kN47e9)N!BpUbhArS|UE^ySA3h^L=Q zMF@e!bh^!{tKzjqSH4oUArF&-z{ zpCjG-qkdBi$Bs$mHzR|Q^E(=Hv~V!SCyn=v7ymDL&9^g_v0CKP0Ptr6*}j2{eGhu9 z!?=hZ69MmyB0oa&kY@}w*HU7sV7c=ESZ;duy}1R2Wrg!CD3LSmk&+>(!4WtNip>G@d|2?_aTQ(10BnaNU7 z4$5Vj@W(JI_ukz6vO-fup{a)e3GKGN3m3z?B%bNtA&dyNUn;C#CcguF-JBJ#4l%7Frpmn{#6od zg~I0MK^dU(6{U+ny0Tuu@yHEYPSEC=O7Oq3eDmT-73RW)h1q46g%E{bF&hK3l$Tpg z`7~tEQRkr)8G_Pzxn+>!!rXZaD=^U|G%I=E2?C5IxmU4IDR8!%?(vm5~mGN|Ln0cONFRXa^XwVijT8O z=T$5yT$}}E0h`JVl|PzmLfN8{Ddmex@~18=_?1G+=9QK$VDO9O7-C^%VLqHxVI^XP zf<@NEA9bjO4^Fk1is65No(p?yS!gXzFESV&&CD;#hVwz( zBA?(54M>nxin|zW@~e^6LJlP8CglWS(E;&Str6QBAl9TDw|)ZFD)+k(H#1!&3Jh@lecKz z&4=eP4OtZv;O$Mtg{f|9kUbkQ(2ZsaO$%?*jKR&=UQ>Ic4kD?W)Nuz>QcoaIlBKj9 zKB~NMs${6LDkiySfEPbCc7u+>YD4Bvj}atw4@#QSRLQ`}?8?s{pBZvfa{a2yy z4bz=D4Z=y*2I1y^pOzImtI1N9PHmFRlUOC?f~hye3Vmc17DJm7$}9eZU`@H1U`@HX zV2Q7OTCmXEO$AFU3Ks-RCkD{7AiJOmWznK2=H@M~K%_hEQI7@f^%g(V2qYxJ3d8%t zPAG4&ugQwg2;&*IsHC)vmS75U5mEg*b)T5qtH2Y% zBe`FM6eZLT=Usw<1g;<3-{9 zO>7nw^EgA`RQ9KR;ms`;z4>W_^)u|1Xh`#jRrMOshw+1vc>*f={k|kWGm`;hSmqg(S zati00$}8L{qHIAtVH_AKu84~Z^`3aOSEGJenC{7FZo(36ajB_bN`8g7)G;YHClxD@ zSRc2roO=o@+$-#vWmxwst5}Rh-?G9&VlPqOO^tb2hq*~YWw?>z{G8G{T3n=zo*K_h zNAfiT53qtP_2`-PO_Hziv`ktC&4pX0%D8Chl158DHZhls2-ZYtz*se(XerMXI~1w^ z^X7vtq_tU*0^Ut}2%S}0jFkyAc_W?q`I)LTOAP+!q+q>WRwU>o>6~}-w9OzD&(6l+ zeolE1PfWRgN!gzv7h$dqY9=7ian za%4&iGa*Hp?iCN(Kavd2gxrO&h$L*e(w0Qdyo#x%#ieCfXDZFV51V1qcF{a64Pm9J zJip9ht+14qU{9=cp|rizcSnhKro2nvyb zXU4p;HO(UTrjKk7Xlki-@f55X5PfCK8b7ybO9?h%Dhw3I{kj(V2IPh!shR(YJRg4X zUbs~()RpGvy4Q8nGZ4Jf8i3)^RO<})@}S(tCXAy+Us`q+{hcSa#*S+r>Lj`K_7~}U z-&L1i)WVOI=NDH8Z+jyV?0o%Cg=a-#mh!(WI0G&I`w8~{zNH#yT2?;XXF+ZW{PT@P zu>YSHGLQU!;SyeA0?ee_j^hZ2<&i~&qJYq*qqwH%CW-ir78>14CZ6=>m--@UW7M58 z{)&xNcg6{CgEXlE{`xU&Lg&Do%`#ca3vt3>=Ay!~#n{_gXtE+0mLES^R9;+Ih=*cH z=@bfFwtKHa^u^P~Z3`@*TIN}Bj)FG$u!&tp5FvjdZCEW_Fb}?g<(uh{1dccqF0@uG zMk|Dy5RaFZupEkjrGT8}OoczGDD)h9fp4E$jI$AG*g!;=Sja9ELk+1|rlnFGx4Y6k zQ_1(!84dTn6id(<6{J4yP=kt#`#HV0(y07kj!+EyV0gr7XfTJ_bka-D?50wr?U}hdg#V@DF`;}> z9y)~Vv4Y1I=32#FU>vBZC|k^mEqUTpL4ey6#%jlwmyXr;KJ4=ZWTUr<^fo6Uf$#~0 zmsb?zj~UZ@J3k-ibm%UDUgnQo2obs6RJQQZiSCE@Or4rLZtQp*z!Lv)>}LN{-1N=O zYW%M8p)=h9L>f`Y3Ae^5)LlEaYTM6PE={bV?P@f>qfnFwv^QQtq z%%_{+KR~eO0dW*mMetM5k08#S1`&j$hY-ZahhYS9o;REz&aFlf#Q9kbL7a1qC5ZE> zaRj$B7Ef?LzVRT4bE!IlIM16z5a+~`3I3h26oNQcoJtTMF{Tj&Bc~I@`SwhLe_2@Yedl3+ArO9{p>Rz+|J zV>JY!)2j%+%Ger$BXGW!;7G>S5sYK3p5Q3PHWM6!&kG605jKFdO_Qct7}0a5nf) z@B#3j;M?FoK^&ORCio!uPY?&H=MsDf{3kdU{3rNZ@Sosr@Sotr;6K4!@SmU&{3rM) z@SmUw{3rN6_)o9^{3rMk_)oA9{3kdM{3kdc{3qB5{u4BV{{$`IKfxmKpWp)UpWr9p zKfz+~pWs69pI{UCPp}mHCujx#3GM~|2|fb;6D$M&36_KZ1S`OQf{Va^f{%j#1U~@( z308vt1Q&z<1ebvS1Rn?g2_6Ce2`&Zy3H}cJhaDO88Te1|_uxOlW#B)-D)67+pTU2E z)!;wD<={WT72rR?8t|Xs$KXG~mEb?YC&7P$hroY=tH6JPPl5jgSA+iqp9cR4?g9S^ zt^xlEJ_G&}d=~sC_#F68uonC$xEA~;SO@+Sd;|O^xD)&*XaoNVt^@xGt_S}KZUFxY zehB^(+z9>?tOx%IZUX-aHh}*G?chJb=fQu1FM$69Uj+XNZUO%Zz6<^nd~q+`vuf2(SK@!NjQ&o!$%{_?Hvw;W?1KKJ!4AFugZckR7zJ$SqfkCow3 zGCWL%2gz`i4Dar~(dK0teols;k>Mw0_)!`DsSH0P!{3wPZ^`giW%$c7e6tK+C&Sms z@ERGuREAf`@M0NWAj9X%@N5}AU52O1@MIaTli~3)JXVHB$?z~49wft6GQ7J>Mt>Q8 zPKKY6;U{JIQ5pWJ3_m2p-;?2Q$?#WY_{%bUvkYG+!`I008X3M+hF8e&Vi{f_!{^HI zY#BaXhNsH#WErlL;qfv&R)$B(@Gu!3B*RrQy!)z*{xbZW3_l~oPs;G4GW=5+en^JD zC&S;8;jhZ@mu2{78NN=2uaV(3GJL5FuaM!zGQ2>B&z0fXGJLuWPnF@xGF&Ia<7IfP z43CoGVKO{OhO17yeR2iNu!*wz|UWUiY@F*D`Cc}edxJrh1 z3o_cv@N+W!j0`_1!;i}FPi6Qa8UCIOe@lkHD#Krv;hSanIvKu3hS$jOr82xih8N55 z0vSG6hG)z0=`uW3h9}E#oeYnc;juD2N`{BY@F3uFnPswfg6jqkI%IgO3~!d<$7Hxe zh98#U2W9v>GQ3fSZ+lO~J8UKo2)u~YqaBQ*E>y?gSMO;FUtNvmP zpCzaR>B&oGdh+Z=ozB@3XO7#m!@R%Mn&KbP<63^ex?kQ(ELv$6TQP~PRQ#xw;)_W? zY9$w~_@??9Oa(ydk{ArSn>eJDshEpb4*YmMosgdMkOO7 zj`#P=;M%uw=^@^AGEx3MTxak-u1d*RziAskIF;%rweN3Lr|fKD2j-z3{cgc~DElbt&_BgA7LB%zG`9jgPurt@ zdqq*q9#y)JSik-rrcv)_8hXDal4Cn@5w0{xRx0;e@0n_5!$RIx@icbz`J+xQae$fd z%5(W5TykDxW-&*d%21_se``oeh&j;M_A^X=D0;IP_eycHD_GYtwkYm;!ZnWw^K&8T} zba1vFS6Dk|pJUdT^Neg*bvBC*H+$MK^35%3{<9VugIc@1QDY3`XA0^utMvhndULdK zi!sN{qCdbmjK+vE>UoZtv$3^YVvnn>?Ua)ZywGyHvtx=cAD33o$4z^pu`)H7@3(0% z|3OY1-@hT!>|>kJ!IVLpdtA}yL+otK*i)MnaXk2WK{<@z>JtFk%v~YA+1pZa;jWfPY!R*7dlKp6{0tJZ(wp=Q$B(AN!mX zv4gt?Ov$75?DHOKwW6aEr32hovskAEW8goAA`+jz4#sH~LrPOCwlTV{|KO1ww zp>76Mq7^%OTz@*RXyEJ`<5pt?KZ@qpMlGDe7=Dj2BuQfk0i0r9yNBqmZ0>QzwVTW{ z_r#dFNnEsse`v0<@^-yC872KOwA_rW(v{9Q$pO9zwFt>uj0p<2lJ;aI}NHP%wDs}yjtJi5oMmj59N>U`PM>m zJg@yZeGGrz!A59#1-1Mn8-2y`pc!;xq=O$q2U*;iCePauya&5kf43I>bbrH(sK2rQ zp}%K;aeu#E@YDSjE};H?X#20{H~Xgjk&KT_Th%xc9)hd;AV*`4H2aBC+T(io+`)^P zOtFL0Ou2GfK#%J>Y>MKmqk`&S8aJcuzJYJH_fw{{{o814=h%txlqqx##It*USWz;i zopHzTt7=o)vK~>{4_%79>)9^leJ2Kg(Ej>VuHj(#l=g2P3Blj59|;h-|EZI4WHJ0C z3E-O4uxH@ElO6c%UN`?|1Cl+1C5NW1;s;^o7h0=_u$X+K4QpOZj2b*mZOb#y z_~Cl_-+$;Sw@197zx7xmKZU0^hg#)tp4SH*8_iD=-~6dn!;_7oQoitT@CTxAThgi! z;iIi{@Y@ZuaCLxYD;m}Ot$aUzFiOALieJ9M7~CV^YBhWe{D-2=)H?>Q;h~5Iebli8 zv8UxX9YY1ipls~eFOIaW$5khdAxRp8uJvE|p}&9Nipv-Uow2@M)A)G~>s0$hnw28g ze2i>Vf&=~nV*>|U6}A22l>9BnxVVs}#LDP0vX*Vxkr_k0tmUvKRikx3i@V?mXy$6k zTGAMXwksNZc#p-5;}iJnuJGmCNAm_<&HTJR?AXW{4R5=jMaP&6jdSkz5p9ifEf>RVEG9za(bd)% zvvSjiEnGBLwQyUQ$~C&spBi>fo$T}F%?bJ~n%Rc8>M_&B~oycv>0 zb=L&&Ucq-o)az#*^V`AUNz}zee#T|?h~M@em%f$7wZn!I^-noD-QG^tpL2W!8=GZN zcdFT8V9^d`1EBV>pw=7~R4LIJ8c7nLlr%r4DTNQl2+2xQ3rYvP+&HwN4Np%IWv2T2 zH!XQlGttkZ7f!Zt=y|L&G^3waJN+HkU3C|Od!^LV{&!6jvtD;Sd*Qn4>x*saZW&F% zkL~0DKS}%p6!1GL%Llmq&8o)J!uI$3^E;+@r-p2ri%}2gnBG6u?6(ebs#5VO9mlIu zE`<(zS|5Jk?lG+6v#J?C?0f{5^{EJjvDy3r`>I@X? z6rs)*)Y*+XyL#)y{6w8+P-@pB)Z&=Y<&LeLTF!se<^#D`mkUqv1CDR~e%X}9N&cf! zE_GCG>kQ!3!2VJ-a7;?aQ&ku#v`VY)Yth3X<%;Jc%%_~nBIRh-aiU6vzbmV(h~<^- zPbuw1^*pOf0i`EjU=1A4;*uR!j_msa?xDz(wtvF*`}W%YhlcR&SeX}XeZbj+Y(`t# z?^D{ctp8|#<-QY){04c4l=cftPC^on3hL%GLph|CX+A}4qBbf<|HH{9*9$D{6tE}iYm3}(KTlN()_#+FU`xF(c#liX@=A! z7nr$m%e$1J#|QtlJx|fED|DRFcu2qx{%DT3%=keKdiRt!fSRlIAx)2)*_b0@pIlcy z)lQ5swzb>=N@NM6wDtUw7WX*bJr-gg*b&tK&rMBlB!M!YUG$XxyoK7>)}+Q$-}8Tc z4Dt+#gKmq>s3{q9OLi@W>slHEy& zn%F=@#8yTTD zqqWGLM&HA+5eAN}&VU7&YHM7Q>hs#FX^3gp`|+RW@bL5lMD5QO)OT*vvkq64(zXIQ z!52b!6^r@1lTE#|%&#+6^@Y`V$$S;H4(2|-at!|}WEj&XW*U8cK1Q7!&Tnhk))^Z#-;nH>(t7-HM&t}oj)EoD)| z_&DH4+kKE{rb2?Qp6h_Tko>Gm<=9gsH}}*+Zd9*7In9SxY*0aN?t$F&7v<)D$jvVB z;&PP&a-*_swXhgu#aYUYSRe7(sSns4Q>NbdjfL!r8d*a?oxd$C`7I$;`)wW@{+f`a z9iCq!=rTX}j>X*FeD851d|H$;+o=w%N2^<_UhWJJB1w6w>JTI)TL_Q;#`3i&DSN6? z1x-+@5T2YWM9o!o>Xbg#=Avw;0yXD5UPA3!)CmlYHs>$MgM8#WQbBX9xSUxMi0Y?fz@aOOTitGtDPI zAM=>5;Tu|BhE1%8#AJvP6Np@xgTK4bmJNL}TDF>2W@m#!r6?D!d|Kb)Fqy)6P%vt% z=_?b_F0Z9;&CgI%72jMGoliB@K^90$TMK8K6E%t_EBAgIXTPmw3GPUG_O+=YF)5Ik zuaP&ugCDLWnOUND$9IGI(?UfmH~A@kedE$pU)-6)Zsis2pOu+%_O|Es_csq*3xC8_ zUAlGo5m^2i9Z3OMA$X!jR=eoI=JmpORws-PS*15M)me5}*6NRn8Whmwf92(ffG$;+ zZ@a(WY{8%TVKv6LJdc5Ki-lhZP~Ca;gHBHx#2Q4Cqqip%mtz!yGn}6v4v0*m4}QytP`s z{-d;AcZIbn?W2nX%j7&P)>XAyK8A)nr4bnUC3&r;zlt?iRLgaoY6?y`Xfx4aiIM7J z{;XEC4>WVs73WT~UfF`xppA;>yZlr~6?ebYKEFTf7+HM>@3)KDd~6RukKcvP+*R#k z+lB0Jf!P=9CI58#4ZOn$%J}_L2;UOinWWyUhh^VVWE@>~M9@~TjlpdA>A7BR!MAXtwyZHi&1po8`3C)$fg&-v6dJ7ofX;(f`v zdo!j<_G6%AKTk1|=U7YbMO3S{^zRg=fGnoWv#IYC3D=cb}zM z?&Mdu%xFsuNE#W?$p!dzsmy*|0rOM%Y~9m;{0b_+lYCu!nIKt z4>(@?&ek+3Ebovt&7- zaYfT$i8ecz;@0n=K?IPebkeYCquGWPkkCB)`%b#_>YZ=HSj0 z|6to}r(cYE<7z!G=;rzg+PO!Bq*@wfzq;8%SbRubf7>wwdQ0Zv@1GGeQ+Od9<-+DZ zBh1vYj+Uw;LP+f^ozwkZ=`^eM@Z+1e>I)sw`DD#sg71qqZ-xJxB>KM*yn+W0hmaS% z#TspCF5X&zOjA*-H(ACyp3_foY_)t<5MB7S1wRl|XngZ46UQ4(e=sH89Sn~duW2;Y z2nCvT!tI(Gp-_|QNJ`cqFHJ&yc#Qb>o3_GFxqEi^OTH?af4Nib`?r?o^nSgq;|o~R zB&=(zI<<-o`hVcLzBlgS9M@cHE^fuxq6=4Mn=A)fXeQK#+ipgS5<85)=Bm6%Z#0;r z=&|B$EkxU6&~zL5ix@6uLd!9MvHN)Si(B-kK&4p@Kf9vAreEMV>|_)D?Z?C%RIO!k z_c{FQ{Azuy!FcADQMH&|pK|sKcI1OuEg$wV$)>M z>C6T7i)dBLqLFV~zr5eCezg=WA~Hrfg(DrMKD*Gr!9914hQ+MN?pI&iGAAkx@xE%{ zHP`zWP66&ctEgWRMWy#$XgG_OvF^cs%_%4R_S(n;5YBX?-oP-pD%Ys?@faq5xa; zvn=KtlZLMmG}@O;qjR61@>VrsXyG6aJUhm(abL`b8I|5M7H*|E- z7$#vl)HM|&?g<#Y9&2*;QO3VHxfn#z zuWR|gw(NyQ1lV_&{wC^w0CK-iTHG@JybveyWfCaud%?e9yQR%UJW<#0Lqs-&UlOIo z8{s@>f4GIiZch^KE}iE#S$gY-i1icj{OoyUL!7zDNc9!jjE80n&XeW!RePJQvlhybeCD}|~Pv(|W&+JglRy z5DyEfg@sJ74nnE0TA++2kGM6!_|h&IyQtGmw|HuCSHjr6qsb-_r~~uA2N^ICClk2S4r>4 zKiEuP*h~#x-I5EVKF^9 zwkHyLu*n?DN23;Z03TrI@nAf(Pk<|n>nD5&D>h0gw6D+i-9h0rPW_9A3F}; zSX3K>c4Jj$uCWoENrI|wo?b&IUcrie6Q_Hf$c1F_{ePMZyfmV^uQ(}H{g`kR_qwA((f{z zat0*o9Ph$@!lESx*^7!6i1ss}Hb}Ie?sb%R^t+^Wlxwc*7nEYQOzSAuTt8g6VLv_V zDEBmll2;V%r;lVml^c9uKM%CL3;Wq_3c|S5F#(`~+T5@yIZU()0d zqH6zP$>8@uHxr?oPg$xgob8(HQP_IYO<(9{K$o8@R?LEZ+Wq`nAM{6_Z=<~33(q1QDP>%0i)ige~QK~Bxs((m33+)zcdQJ z*hzVCW=H1$)zWIp3oZCXzmB*2WV1BKT0}>eEHsXfNcWJ>Hd;Osvsw2z zj698^(R4tpZ|jpsQ++Gymzi51q}ft!P=Y-p)^{R{xj_S(eKqo7#fBjrT>q2~ZS{^$ zh5uXa7UaZtS5M@9cPVVD-kf-JwaWG;^5Jsx81_7jbukKaDM`{YEqaU62txZ3Zq z#&uV9KwV-{P@TBPuV(hdXSeD9jC?pnL-cxrRu3-SRgHDhXv&C#uHl`qHNFET@F{#t8l)$iN)PK)|L(Q3fio7O394tvwK1W2(ys`}?%30$H5V5%*vq z_C4=M#$T_81SpC7Z&W=kMp-8W^}$gyKN0!=iNycLDudup{69$i4}{&ORgDu8|EUd) zvcmDSKG*Sy$o~`I|0fdv*HwA(U;8wyIJgg(pk?-V^;MTPAzPlJd3`UzTjMZ|ed zRj&{;WMA?A5pK zp61zTdbZ^ygVEv6N!%-I*IasMnK|x3qNH24{8_G8bJR?#MfyebCCX;Cg!5N%eTfYD zFf!ynoR!Pei~41k|Mhwqa$N;--D|Ev&T?}Ta_FGiH~FQML;LGSVlBxZIdqO+m;VDP z{B-2d*IawA`61S&)yHeDH<3MSku__PJtqJrXtzn(avDmWL$>@LGUPGHl!I{v0v~>s zZGIBjvMvy-6c44riuq!Hc2%O=4~5_1wqq+`wQ}z1&#NQ;h;_Th?=zR37N!q2<@lS2 zi`FaUyOY(vb*Vr6t@zVR=cWgDn*EOmnu8?EYWwmKWtZZTuRSw_VK>Wvxm_r%(#0sd z*xQK3jg5wsj;E{b$Q~(5Z_uZ7)Ks4kGHcJl*1ZHdkLDTnonotZfIHJM!|QEI>@~5D z$m$dQ2Mfy0e?$bOszY3$qSlM5?=$!|p(V{=L6uDT#5>iV3_PWyy81AB`>u+5bH7jN zI0yO8G(LcsFp+;pI)aPvC!YZqs6OVe45H!9Q9=IA|;t&lC2YpxgC*j{TSi}U|dr&}i^RJ~*P zhOD2sM(}-;>IGy~X|HtZe8QX2l0=iiO=zp?oJG%X5h*fy4^e~oUD>AIyS-fn+pqgg z<{rvz#_})fzmn{!?l&y%auXtrw72wC9fzxw_K|#{IlR|`?X3#8Z8JyMwpm6Rk!AV4 zs~@ud5O#QL1of69LM0;Um#U(RzO@XsY3eXHZ31OlTQvM3r|*(ygj(%w>z@(UR$&y~ zzEZYz%~jS7i^azAr<~!GZ!zdLL%zkN6Oi_4*rO?MMA+XpCm26O&cou;9O1PQ>tSiO zkbP;i3`LxHTf^;$6Yq9t?Bk2}m_9@vl=J4$T8&t0DDvuBTJ4U0NVZ#R%~1z%`}Z~!tP5r#`Pic zz&DLbdpI)cw|c#Pl@tYbyD~1`*3f9VWP+}58Cw6R-V$c9gmP22Yx2b*4O(*V59e)NRsCFMvL!e z-3Z?<_9ykmh+RjVzHg{(c7C=qIOdhkc(rDS-Vpqna&7nypS7&BXL8{Bfx9alfmi{H zj}OM*sCcZI`SZ@;nhXPC>@~;&rw_myL3;H7ag}UfU0?&&$2RZOPr#na5g`q$!Qs=f zN;dt7U~GI%mNQdoPq0gchQ^!Fi)Dl-mtpKANj%*J`NJo?}ESmiI!7Bc;kTW zSa)d+#NUIhYCHVCLN|JuD{{BG0TwtP7I-RrC3Z}Fld}1(pw8CLc;8z7iRM5X*0r?A zhj9`x2!F%1SnVp9W>_VtQ;238ss`YxMmrFHqqL#62l;oP^(j1ZwRNimO$w-`z2>UE z>bJ@5ZI)hD*#jHGZDjLy>dEWC5{h0Y$UfiUP194(0Wn0?efpV>p>+crG>YJKf9+IA|)Ul2__6!!sF22|io=GDFwZfgy%SBXB~t@mHI%Bg#@RZiWb zt@}E4{b5;scXaCfm$_Zm(81=X2w{@b&}JJPpqm-f8B{r}*e-clXt zKc4J4+wHpV!lB#UzP4kO$JYi%1i{~${dVAVNx|SZzc((cOq~K>J5utsr>prN{ycXJ z|H-8j#e?`GLe#;?oyt1Dh7%!*F6E`H5d3GDI+XCU#nz-~Jb5#)U7_0EnZ((!qq-X& zc0K&jKwAf^*rhkC{($xNe(-eT zLufQ>^}(=h;hLm7hb&wzjbzpyj9POmU#o8?JBHqq?qs7cH~m4Maw(=-Y2U)e-@D0YNa4?!jzStn+}{t>p@>b|zb6lEB&lKA9E#N$<4Scg!hsmm*ht{aBaOZCRF z{5mnKjkO+f`fYqh*rdfC$DKvyH!;RHu~W5s3`A_JU`ks(#Dx7dwxPs`Ll8pWzeUbLlPfG zBuyT6j4{$)g#9>Ldz|AKQX5(4hs^mldzE3AX;_2Cp5n+d{0{kSwB1rf87+(ZjYCr# zz1GjFfhVljW*R7Oj)o2CcI90hBH5rw@qP}z5t!PtPAE3U@JYI{pykU(Wv5le#$Im1 zyb-O?K80Uz1akM~3A>YY@h#gZzUW;oztob2{p9FPl)YQvFRQj>BFlbSuXoVcY2{LB z9|C{5wPlLI59iy768YE_jjBpPX-DsFYfihmF*E? zZvJHUkopH&Xw4;^&qTfAc6cCBvsJb!xG%tc>sj9yG(1)s?n;CYzKeXYl5}p&sV#i= zS<(uR)GxdI=WF-&a9KGxp?QZ|b(5s)< z15R4JIs|@JC#YWCsXro2uf_R`VwDh9{F-2d#!ZG+1~)|3Mc7n!_{~O*EtLH1?05C> z2S(NrQ?0Ru*`sAXc8cUbD$mhCYh@E#o!UsUD4F@!j&?cD}E?e|`QP(aVO4 zUN%hBfn(=y_&pZjTFTS5Lc3La9OGR+XW zo_0Gz@g!CoCiz|RxH{3}`oZJI!s8mX-LAvep^aMFBlX)vyQJN&1J{-CyhGr5b=o)J zd3Er-?%mQLyTu`+wllCmBSkZ}*-kk_V|K#(YU;uo$o`S{HTHVndeQr~N!~ZJkM|AD zz6N>jOZ#{)+Q*&`6{8t9)uTXlI`2ZUO}A^%`F)*9{r}jRh;nN8FyY!AYLHabFAXtAY3RcNVHhS4Q#uw|BcfJIC>XJN@f!5x>k) z@~id5*h^e)4y+r3lhzNK{kKPy`R@)``%wBEupCtgCh__!&jl!LQ>M|o&z)S}Y#}Ilgz@Xl`9@$ttWJZuoN1ekHq?FxFNTP1uxMpx z5Yvpy$6kE6QiB{lmib+IZuQhF&-q2?akbs9b**>c3pnf|iRHKE9Y^-soTnbQ&B#XY zxmx|*jJB+SYV3HkF%y~sQdOPttlRb5YhM)^I@HQ-dAD>Zm58wwNqqQ$m<8Q9$%SvW zI#W?*OPhb={&T9QvBLhG(oWCR7)7^hY+JW$wlj(Ea+O`A8L$SL1AXDp-lDK`_0%)w z;p}J$5IHcm&E02l+r^fnQ5*}y_kP`2BM$Na)amR3ca}^tI9x0Z`s;c&cQ#mZ$Jmd1Z za{3+%=hm{=x){8j(282xISWtV%={2Dl?*p`;}kR9N8moB_vui4?ZpfV8`X*sYke-f ztm#`%{S)RUdKh`M*?&x;?zIEX9 zM4>7t>S_MgnW;?2YFMT}t?Op;{#~jox0wCg^Zida{bRNm!m$pZ#y4V`s%}@~_2rxB z)P8lna_uNyWs4fFsGY{E8&Y_-kz3#GdaEmw=XBk!Sx#mAACV1&Y3ZvYhLh^r6~2!logLPEf^=+@659JRxW` zk(GnciYAj*_7a{rAtYH(3(Z3^@f`tlgV#x(?ZRV#i?ni z`@WMCW$M$+WI#GXEGr8h9gmrP9(QRLs9l7-9aK+?< zmpEUaNpwG~?JInbu>C*)&n2qs?vD)$dX>H@oV_ZFZ)15$()kdkzKCU7k;cYtucy?oJ|$O)^)k6@Lo%N zu|}GMY?Ol$ojRbmNt%F7V~Sqt3{?%-G!RyWg)dGGt|O}DgK9~9aD&oTZ4cVy;dodK zXA3}^-LCmpsgy4$maJ7b3^51V(LS^3XLNk13_1Y5Lqk(EDx8s2+QyjKI)#nu4h5|< zuI{!x+166FwY{aRtH1x~AlsBnzg;rF0>34Yp_U)eWZw&EVy>#i?IpBX4Tuuol_v`sPX|EX05YkcJvdFH*f4=ui~argho@B!i4-TP4zVsXbt`()PHW zX8&P~$~Hivz(-f8w)vu;og3$8^FjGKluy-+&;_jf3=*eqcqo#j{>L1@H3qg0HV-FNyHwv{TqvW0eXIAXTSj&9Ol}jX2De@@T(LfKI9uQ4ns@%O zZ!tQIZ1NL0Wd%3^(pe1a!`-PI!!G?$b-Hz6N1$RoH-fu^k>|L6#{b2mPVK-ioI@22 z_}EiuS2QuevoWXNyCV%1sc`5lNRN=l2`2(g-u8H z^R6(+@)_Z@a8&2F?(x*9as5B3Y365F2X!ZN8{b8?_--gX03=Q{S+G8NMq52 zdRu1tGWnh^*LJ*(B7Lobcd8{lBHyI0gLjJbgFjvm8<{S83DQoIu7i-S@EC4Gx63ZT zV~p>@cSx$+-)Tae5VmMLc5gDtjxX+lWej^jJ>%Fi`2I_+;(kRM0r(R^l(>w6?3u?HYbiY$CkGD4CatBW~+LQS*FH zCco&_F4vm#e@WNyC!Buc7pD$I?KEq*>yxV|gi7d#TSK@@$ty`iO4Q%`clw|Ar`e4b zXE&qcuzCo-n)*AQskQD|?ri^wSthw>xwZYLXIYEq-jR|t%SklL!+4*prFmL4w)9)g zi&J4)Aa9x!_iPg|+fn?W;WS&fPuv0-($ZYV(_9~u<~r#7${)@3ey_RSQ$usz<6G`u z>c2potE9IhhL~R)d1Iavyyhut?F6^hj=jk|qkdwZUx1s3Az|D^()U>?VI_?X^48e7 zX63p_v!t)dVJI8aGiw@A;EK&9lytHjhldq06=_ z!_(cG{Opw&$TR8pQ&&8C+~rE|i8$-_Vyq((YuafV|1)O%-Upq@;Q>>T-?e^)-_!e= zu}1-8aUE@DOgPP08?Fn3@a^;|{LaL`@tbzIwuIvMCIIilv&|M z;DlqC=hxDyYLb2s4@t6CR!&d_<{-RYUv@d@)zd^B;-Q)UVpF)T4 zj6vH^!->1}?RxUQ)50M{mOZY3eJF+9!SDCtowdhxWUmsX2cz`%aN=Z_>o5340mHlE zyoI@#Q5fXJogun&n=v&JCE$ZN`xzZk{rcMZR+{Zylq*nnqe3YoW=q)(q%9M_tBFYF zFHe%iJ}o4Lle~1fF7!}-5EV2TU+udy4vz$i`Asre(~fSEz*=asJil3wmMFiuJlK=p zbh-ZCLw&k)h^i+~3nvFtenVD@@|!N#Yu(H334GLu=%4Cq!cg?JPwZ<>8`YYP9%VB~ zxka48y=ZsUU{8kA<$4A)(C|?|@?7Hhbw|-=E!vD2ao6xJtXZ7E9-}*NvHiJ%@p3RAxYF`NY-o* zJ&BUj#M!kuAs>Udc#$i@jkJ_J*e@CI=yJ+ti!4 zDJHAD@-;=LLcK8BuP&&;PCJUuwOu%oAjvHoVpiLy8oYC~Z!AijdSUB5Ia-&i zvdi6TN(c7@opm9-8S%tvA@&x^sk>a+*I@-i3A+keiPBK%8`;mlSJFtA+x?LJxZ~3s z*$-kpjES4r zHQPw*S(Ym1sw)5`C?@Q?K6KS3AchUn-2bDREy&1_BZKBz)Xdb*siY|2%u2U3-GUh> zg)L6KYnK}Pd0npK*Qg9d84t-;OFpC7TGb7iJhUQ=qAap1)ySXY5MSL`GdYR)Dw;-$ z6%*Krt3Uupc~YafK} z-`9Gyx1S=hpDtGx`ao}eEF|?ajrtMoqfzXKp`WX+Zcs7`KA-0FIeeMCCxg_}@ls?L zt^0a=(n&oHMNbKQ=m?@3t^Fu$)X&4z&jgxJJo-s}?W*hJi`3KMi@Va}_~7+K@4#z2 zfD^X4HDedY2Z$W|;R=o8A#t@yvGS$##i;@Hh~JU-XY!f5yIg0lJfEH<)@twGEMZGq zXQO_gSpQ#Q{RnXlfLnRoGIx7W?Zdm~+OE3xUCev^6uvapVjLe{cs5-tw(>Aqesa6{ zwJz7*E32jP{H1%9gk`n{e}A%)!=7%JYlqmf4Y?-i)+;qt7#lsm3oSgeowAJjD@zf1 z(~O?)eq6%FiYpda@sVmbinW*5RG>ETcqrc65alev3d2=b(nSsa>Mo|>Z{o!`{2hBy z%d-(zU864s)n9eRT@1wE*o#U019+#o7=XK>7lZ#Fy1qRis%rcH%nWZBK|nZ>iW|<~5b{ zc8wWkm;rgrIiSMtv-b?BaDRWS^W5*f_S$Q$z4qF;`lAn%6(2y3-7taBw{Ps6uX7&Z zHXIZ#bgq!-TI^J<6ILK(tU}M$N4lmnaxAl(jLukup`0-2khAs}bVb9S(iJhgMd}P_ zi(%s*>mu~o$;$3El-J(^-~53fhjNjAR0{n0Eo7`}@_(F&Jo z?N3@{Y<^iMf80Xq|Bb~jmb6B>W#NpDS{Kx@7=BH5SB(O{4?jky$lM2CU8f^&GR%Cy z9Dow=$G^c30}lMkFnIv(2E$whYzFMP&M@%+4Zbe{+{bgvFYsY~jbS=<@U>kFzt4aO zz*W3!0C@nnpW#Ou_mzM*z)zQ41^}eBm$6YPL% z;(tTq&qw^~{~3Sh|A>F`srY#`ek9^=_J`Jj>Vh8f?|0r6((TgEJ9th-+Jx4;-ASY; z;_u=iKaygIubE(ox0ztb0COC!9_B8-{p?*K&fkWO_su=n*vY@peOHK}>2~rr&9-@J zuuCUD4*cBH^OS7`f$CPGPoR~jqLdsc`|ph;w_A-Qx0{W3h5M6pO0x1uUu{--jqh2x zna5&<*SnJ^I=#;n|5vg#Z)-8QK76s@%MQg~OFqy0-2UZ0QrSOQ$2#w3hG!&5p;?E$ zEZRXPd!CDcX5G%pI!0@2f6|?R;bKP?erjC0=o>kGw}}sy&LBL4iDHFFly*^ z^NC*9MbpFCdQoibz4+9c?C40{`hko+_#5f{zRf*e3ri^ zBSG{cvxkg@VuW%*iTZNq8X4hifQvMhxy?iR(Avu+jaXY6KO&5+R&J=VOyPoS2-fuc zs-#*m^n$yhGZJp1#Rvsy5H_G*q(+2?ya4QnE>S&L?xJD#bnc4|Y31A8=-fZT9Q} zeLOzIHcJQsnI+a93PoR>q%jYg;Nc9j#8;-Z#o(+=wppUUL}rODKKr}7!Ujli34da= z;2wwjI^1J%PsM#xJ*Wxp8Mt$}e^hUiojdtzBBB0&Wam!)1pYpeo#8J9qbY()RI!R@ zwIk31fR^{yj%1S-0Odu=9~1f%j}~Yi+@l?N$mgKe_Xpc*{Ry7$47QE$kAxoWNGCt3 ztBZfP%EsTv=!lM}oBz3zNC;2#Hr;%{sR8+fS6w6!o*#aHP7&HVkWDQO3tp=x^x#ax z9I7+u=5w)zv~F;Z+<){Wk-v!Czwx9^?q7vFk^AHDXCeJ_vyzOqZeER;i6|q%g{QSc z;Av?6{hrcP+Gq#W4?$Pi$p<}#M;El92Td^p+5`vs^cOtg&ITJ&FhQuLn3rP{2`a|9a4#r1kjj(NI0<%O%DP;9|1z16*Il7+EqLFyYy? z{>eIEuz_%F2}Z)P#Tzd?kU02(o;e&?I3r$X!{doYK~Hc!(x|{yVRYU{_`V1u;rl|3 z(fBsPctl+X>wPY8?d7_C8P z14&0{AbeIEWc^}<)$|E_Q&*@r>Gd@H9|-dq!mR5P=Av#p{eKPr*WmxcKL1bXGU)$v z_&*Q-qx$?ms9TL%ZPlOBuhFliAyPNm^yT#JAmRmvbla_IdR8d5>*mqFnud?` zll77izu{OP+uzCOg1YYhMbJlLr)wwwSp&iSEe#fZC-O)JOro(iG_)#BeNvp-wya_V z{kyio+;2r>YTJT}A@uJX4fV=9{o*E6xX{1zXsga{Ab6o{s8iPV3puu;wZ2hrp`oK2 zepUX|FT}8lKk7*jhS9V}G?1EvG+a@h?HAIuqNX=3Z(3KchV#nf{lc}ES0Wrqlc8xo zf?QYHFVr992kULv)o2j+wrIUU6x(sFLRr)={H5}pw465#WGq}WkUHxO2bH_}h5WYs zV_Hrf#oe<8g}xBdP&dE&)FoP~rA2jSzZtC}Ud->dYg28*>XS5S` zMGQs=>Fu3{ztC9Q3|p0H{bHq-N726Qh<*k3Nq_rP^n&dH&mL!VSLSYEh^ZE|`VErJy z4ckHuOO$c_(vX(d{z>Bc8D8o2%GEP6rnYq*K1ct$8Rja-^^4nd_}HIJ)%7bleg-nj z20+1O+#$PgfJ8tjAQ0dOU~#TbG{Wwbh?t9bF8C4t&vDNNMB;f0?rZ+VFe<=8J0#*B z3*hiS3U>t{0#Nn?;sdGy5jcNm4DKNSa(4m5;hP^I5HJsL4`&CR!F|y~$Zc2?sqchG zMt}ye4zLgq1?cKP+JK#aQ~(PI0dxusa}7`i*Z`OhDES`gh}SoJD>rO;TqPo7Ab}{O|B;xF}|LWpMM~h_yt41iPzjQ>0f4DD_8!=lLfWIB^k3rINqUnj7p6m6L`vg}EWo5l(Yq1Pgdi6{5-(}kS zB&|Ozo=Vq#e}637ai7d%9q_txOwUwpY`68*Lfj((#x|UL1=s^f2M}Au|6@!qvj_=|01ef5A2`**Ck9z<&lUmR{#`?K$fz1!`d|2(RhW7eOrdz3lTCO7Y(y*7y zDxSM3A?Th)7>SjiP~=}=l5p@*80(i1zskGWQB1sPI?IVaw7G!y|@>aDb6PpOP;GcDItXoj-Ofh>&e_ddXNWo zc!T|C5a|csJSKQ`!qB(o%o>zO!VE{44dz+OcspLqv|Bm8UYkVs24K&=V*D}5?$?P$ zN#F~Ca%Lv9xi*%a%l^ievXVlLKAw$b z>kzx=%d;(W)r^+$a?I_3Ji48g$uJ%*l3Yd}Cpg52^E&GY5>%DSi5s-Cx(i-!b|1`u*>zQ)_Jp))wJq2Yc?Y!wmh=fz>9l205C4)wk(8 z_~1sSiqNSM!1G{00%%Ey-ENfFkrEqHVoR!O0o{3kbH)I~a+ZvV!|map#KB6|9XqBr z&c~`}03!$Avv^q9#|goCcLl%jPZDxeF1b#-9CmL@1|JQ}wnNmX#)t5CFB@OeARqs6 zLP+T_wHGVS6Um=f`(l2W-}zyF#9_DHOfcavmp&vl?`m`j9)(fy7&cWO7Az@yc9bog z|3;}ZMj12u6CHTMDbn`q=@|)*>hMiO2f8D3H^!S-6NGgBXy_Sl(^vU4JG#X+{~Mlp zyCbIrkzCSE@qv!)0^M?MS-EZ0>~hVCUx8g;p;Z!iFaXwvN2-{Xt(l_mk7~6TGm&YM z{P$sJerciO1ChsaZr=>1rF_fRCJ#66u$(*fz|#}4_Df72?mu89Yw68X4@91?>c}3& zNww2i_(9wc>tn%97K)uQE^<)qMv=lncSCSEavEXYstx7hu($CL9RnlG3XXWSlIV`o z_hIG_d+EZ$`ON68kiL(MB032hcYUaL*Ng7c4t{_!j-AiGhFb1xzzEzQ&Q*bf@8FLZ z!=bs_Fv=lcyJ}mqno^IcZCpht=!XXMW0~FuqdYwAA9^PIGo3`^bC2u?0Of2XXB>p8 zN>#t;UDfm1BAi1q1xhckRtMyI=zrY6uBl8W9YuTNp;Cg5U z36;?3RFuPJaITb6%rg;6v5k$!o-o(^`S^dKoA}~PugLg=^pgOYR2Q9d$e|!ha}B=b z2Ih(3dHX}P7(1Iizu2ml=yE7s*xBe%xTypf5$(mAk_Y5@!=^kPqdyVxHPNG3BXDw8 z^gM1iHxGVdKg>-@@W|a-d``IeG7~J_%^m(I?{czNt`A~uMXY6r#rcI&361G+$7vl* z^ZYE>3Sb4Aw8)M|@s}dn3i`*8IsJ&{z5^Bjkrg6XH%BAH?Z>2zG$s;yk7+U&UEvP@ zTSQv2bhreQy%~@B_k|A&qz`tvzF2`Vwcsb%D>L#8RZQAX=!KtPrwcD406&FD4v!j& zo_S{BvbfS1Rd}hRnqVn2W@;_doc-M%iuaR|+e$+Z-rMGx1bADPADa?HO2rzc2RgCO z>1^YGd}(Vq@}PUFU)7fQOm^V4>BFW34TeQB`BUHfC!39+`{{kv)y=mupTfjt#2!51 z)A1O4XW@&ygWuRN9vBul@@Wh^rc>DQt6cA*g@$d#@%RzCzX!nTbpfnimj|&%F9l0> zsD9I#-E!{1^Wyo;BVPXSTkIH%Yt?2twW~f*V5N!?k3#GH)Ln+%b>wUlMif1vlb`vp zES|?%6fW~VJsQD|rheH~92q(Pp(7_7x|xt5l+478wjdnCIAUBmz*~!h*Z(n?c}=9Q z7mNdeUr#V=tJ;%}J{xYSOy1f7u*4_$Br|$wr3D|V$t>-qS)FiRxEbW5C0N7AKf-?& zaxuo8(G}MMqZ_V!j7}PX&xP%H$Oy>9b{YK1h~;x!G*VDkVsU>>aM@2N2GjiS>_`s2 zH{oL`B=>Kuq-Y_V$2wqEBDUFgGQZ}uGlbfu+#;56KEvQo{z0u|?`-xCbV}9GA(Yh< z&%>n6AhCD93t!m@C4=&wJ9I3bEtY%{S~Z?c$kk%bTL;?X=^4W@E#mCcpjRYqLXF~@ z9kT~%ncxzWlgJ6w?mVcJXfh+X%Q7h4dz1sZ=Ok_4m9aB^cCkboS~UQkIT*%s%rI39 z2O20E@&(gk&JvArs3J6FJ8B}x1FAlJLC3m zPoHqm0V`p0!hudt`Uu{LbLX>Oz5ElQiKiNzv^nf+TnFsYx3S|mnJkU-_`)?0{J7Dz zz?t>Pw{Z;4pnVxCLf4%%glkyDzRboD{B5{;*+D%Vgw1>}pjg8=h9W)aFUHbW2KUxaz%9)6#cK{eaKj#vxii zl>l;;I$0;-w!a3+)f^h;wW37vJ821mollDuF8S|bFzEj*B>@ibxB;NEHJdHQCZB0c_Oee&g+P0#? zs2`kf>o-5Oz<=2!hyM&;*%0*LO@pLhkQP?asshyz?ILz4E5I+7L<<|8BZGhs&3{V3 zzXR_K5-l0`0mLJZVn}`@!YxBMj1*=V=L%mt$(fS;ID|ZckmO8?0FL;Div->Z{2YWF z#tlY#lMr&rehGBMq}?RiOEe_>4J!uIG^1%qf{6~;h4^%z4l@9oq9tmw2l?sm-tglv z43;WESl?XCec3zPSm8Uz$tv*TCMT84mucKFoOLyjEr_43OW{QD=;W^YjCEm0aRP5_ zDqTf(h{ESi=8u?#iI-A%s#B0%>H>eK>3yzbrzAgm{I)IN3iXlPpnAXjK=9n@hK_os z$_c!4SF=sljQb8UJ>avZ|IKe-Jp~`|XR(j&G{fA$Sq0bsiRWX`1pqF53*7_R8~ZYj z8)?bI3KQ8WvL9!-_^Rg`4H6NoiK<(Yg4M89x(;47qUyGvXuKMpLVQ^2tDx1Nj>A9$ z1FASQmw2s;L%S;26pqv~9kp~qElI78Ep>- zSszezot5nK)p|ULb_zf0QsBpa!Tsbf@awP#W2g^oOcP#J4OFRB!|IcPlhu|%n61x1 zo^`>#w-@?x3<94FTL*zJgZFs>-u&HhJ!o;o^(%`TuKO)yw%3?kaINl6Ri@gdx1RZa zgie5jvqqWH=X+}{hy8s5-)S0xm>Vo7p>O6mN6`BS%FQ%@n-O4B5y}n+KO?}7i5Y!F zXVwewiy=Xb6&62SRhCec?G3EN3y{eN<4dyThW>%xs()EIr%#TjYF|nk&%Trx52{Ua z=1jAaW+=(|Zv(kQ1uv7`%HrbMnFup8alSpwtEL%Av33P(Mdsl z^4ipK!40`?h4>1*_(^vuX}XfGYsEM#cG zb(W#M`l6oR+0>>$`1KZMBzmv06#An2|JugzRowTVgN+96sxz>621MgI7Wer8Up)Kc zt^gGO0X-eY@;N{{o)ZCgg_B`KjwXIcj{6^OfBlp7*ySJ*f1Drz$9y2{IgXsWcbiJg z-yRiV$K?mvVq6O|?+QD@udm%QbV+MxKr-T1{ zXK{WQtb{uF6Az0uCD5TrbS03K1o*NgtL_8kOfWg&N5E->B3Ku`xP=)BT@RChkPbR{ zwZVx=0{;i-?xfVk*e}Y2Pt^snfjEW8+AY!6nFHOmSe0fzBs*t^75p>4kn^jGWeZfk zIAina(~{7R=4Vgq6!??o=%|D7#@gqPHUyBdbOgE3)Fznyd!zz0=(J-yW)hs)SAx0r zIn{c-L|eq+3^a@9yCJ&@xOgnQ2CW8xkPL!YX4ZX%DixDewi5%l)dD;S6@d&cpu` zjS}sI)Wxd;(mk=5r`g2A&;E=}L*l26XiI{%oA*~~_g<3^O|h#x5p z_>yNr>pID)W?g(44V^+muSDq0eq^1xgD>eQ&YyVLiRx22_{vW4K9cIIc8v-=X>}AA z#6HoeM5H8K69N~!SP~3R|Mjrs*g5v z@29T$&N%B!;5{0d(70w}CedidwbWGwiyE2HsN1J5TEyCVnlki*l{an~AQ(#EFCf?6x68FX^eL|S;#L9D3>jhT8i?Mharo0(fvIh`%X{=rzryn2I@Zl|GZ^{e z;!?B=>E-R<;o&0^_YmBpagSBZD)mv5K7ARu1HY1rzm$HQa2XuAXYK&dyl??lY=ap2 zW!P^Q7jMU2!^^Pe+AeGc?85Ut-1h^HD3+IcA^r-*s?veDZ&0MtbTkTat~b(g7K-yj z$~<;4IDxc-AKW2^d~RGX;CxJ%;2=oc*g4USwvmM$X5_0?;b}xOvmoKlyAhC_h!UKDJ72TxaR3uHvJ4~yO4&2 zKxcRw-j_*qGsLSM`RWJ%aLIv8^B0*ZTx?ljx%7eHS`d%ZwsMJwxLh`jI|;e|BF2t$ z9@BC^^CV>ZIOuMi3%qeIVIu2PAc0g*B-~nmoW}$ycQuvkU*8J3UP9)P?ePi4j!4ZN zys&3D;oLNb_Cp4CL^UTmND5a4soE z+_95Xh$(T(Ek?|Xnb_(HEiE%PuDN5gQ^BFVjQp2ZZX&)Ue7&bC_uKg6u_lu2|zlH8ZxkEYC>hESpBBXU_V}DB}{LNhPZZ0-tR}PbrAD zhV&2y*#p>Zl5tU56!ypA<&slm2#$L+yg} z_hTHY)amcQ7SKiJGyTh25#;IZ$S@i`fRxh37>To8 zzf#Fm&iV16Ry?@S8|ZHt&H?t+J7bSMp+{{Ek+715#3ds==#=jdjLWl(=THYPIXI_r zIFS~!JPlQnSDZTqk{-`zTPAVE1q!_uHIW}B7FwjIKiRBK67M6{dXNRXFwc}b?O}om z=k{qg`4-&Z5=>^NhrDywQ&eI)6Y;Tb3oK-v)t}<(La(m&k&sPCf><*Oxw=_;MgrAa zy2Ld<%yiCol#_KAaBYTZfiLOa<>H^i?)4VMmMZ_)vT$Hm;9i3J66~J}EGPI6pN1`k z6w9)JWl6QO*tel=y7h_-T7RCuXpRpgeC=}X)!HD+FZr_xrDz*P9NG}n-{6uDTYjuY z2w1llDVFM{u}jgHI~)4r*}{gW@oY}RvvuBCJG)!9hx_9*O^o~&(TII(k9FlXMp$e5Ve4nG_UQEkNSt4jHaE1V8 z-Ay@;IP=jVm5eKmUb{q|_KDsVt!S%L1nRWAc0`h`js!PD@Ff?ud>ge4Y}k&~EYgR- zS;KfvrutfS2t4rB|6nZ|K-P}F#C=6MY>ojZ0CNswR>l1|;2Xe>Qpmk`Y;tb%A%-~u z_zJMB4E|wopLYxKOTZHYBK`rs888^&2Ou`mn!giX*&)`U;F#umGC5_lSPf6Al1lZr zl!yJ6^00dh4qqNEhP749tAZpKUb!VD7y-jkAW zPS~Hu1Ru(KS&(Gnd`zUr^QrKJ51fEZ#q$@MZV3@MMbtw=IFxL{1wW8EToMxE9CWvY zC^{o9F_4@#78AV$4_S=(YuSP~Mx_)a@XGIkxCzkVgWtjbIM~PYIICWwO*#~~ii{=M zbMjQJAW|$(75J?ka}U`#*zAs1@Dv4J_LC0Je4K!Qr}U1c__hL1?{~b7rww>o+o1)G zaCo3$)*jl7CxL$pUydlS8xQ_qk0`w9OpRUDw5-Id!Ukrb{Tn&|l&8BYRxn=nZ)@nc z7Fg-eW?rXUKkVD+Hv_&!F$3)3V(GWv@h#BKA;1che!Gru4vY`NO>HYX1Y1S=^~a`e z{_m9m>7ZUXX~>OIBA!3e6v?^uQX(6jnbSClP$Jnu%>N<15(&@WvWOI$+WvWn?4$eu zJIw|D#Yf^ICisJVA}!2$4DYYSJkMI9(QgLqFXwUY3M|crCL%14JqXVDzqMK9%=0%b z-Tbb~Z#iakEOcY(t`7IYxkJ#ZP0&5ZmU5@Da=?t8+P0{46*mR+lIPPcL^C$O)P$9a zLhkTU>4PP%5*jDtD2Y)NFVGl4y)jfY#?aD6J>i%qvt&h_q;$nzZFWb3&-Ure4wUC+M zO>R6chJQfYYDm-sXr;O3Lxnout1ty1xZe>B`vfJJMH3ayXPbYqVd;O4dn767y78W`L!qI+*c2Vx?s#T+&JOHdH$TaKNrqJ7A9P{TR}K{WY~0VaYq*6%puHDE{?nEguqK~xma zUupb1)fQ-1eWZdGLtX<4bYxJE4ggfUasPwv3Ey^p+WwAf7yqa#sWi6C9qZL(W?a|_ zJJaC|_=)wPHl0R-ab!Oh&;O?j)~ADrR)vTC23;YpAej6sxFsgo4eP=J-_%LI>}Vw6 zx1lsVzXj4cSr2~5uZDEa$S0{M9{L;}wun^W^aZgj3S1stI#Es5T5GWe?F&i55fX(L z?#{RqNyAnB7o2M_QsxA185r0ro3pD1H#<7T;k4Jf2FD>T@<^=g@_a1h^M$pWIOnl( zE#GE2XK2 z#*4g*)Fgz~B$#L-eCJXs{6=FaILAO4k;dTvIQ1#+XgR6Lnk=$vd;qJ)Jio$7R*h$e zJk4|G_pTc6(nqpVIXru#r++swp}*BSY2V~LPN}wNzqNR>TslV2{sKt~c;`up^kyuY495?pp zzy}=5b6akg)`J_eC8wqXPXCggu0oK(#*8jWtrKcP<2kV{Tsf!Vl zRpE}#@IRlVEqf+yDblXCr(Fb#)Qf-?aO)U#CQ|CPwA3lko$}Dyl5vu2AiTyhQ!+5@ z!;bHj=laMup*oDkhC2Os%F})RwA5B6#jur$(qN*$1@0Kc_ef5$@N~fQ(KNq_rf-yo z`^39Z3*2vL(v$LxFlE3R!4a`!v^2wL`TS`MBp66*_?k#R4=|9K!p-2ORj}i+_WHic zU3*N$^RADy%H4g^|5^8UJtKEl6YbMI{VwI_eg5yM%|*F$6PIDMk#f5kb|!7MYm0B& zwbz?#w?S9Djp~Z6IQM9!9+uoF!Bu05o|NhmtfQ=a3-&Ccr;LB0|Ei4(^t1JI^q(ZX z2d^HNld)G(`x^D!xvA~-ijR@!$M*DeO(gbp%0nJ7M#F;pmVT^$oIXvttWQ}twZ&EN zII(?=a!J2G<109%$tAkb_P6o}A%lW?7|W3!>DhGSvR=)7j~p?zZCb@({p-EwbN76Q z?}>_JtRh(X8K$mg9>H6nRZsjGK5dtF?{C;k3Ah1BEP@PDh^>x* zIKU1-E}%LeI(PuFYfFWFFp*ivzQ;ue@eUY<=d-XE{u1yNWQ~)6^?1(2eGec4&kEdG zK+9!@xe2&+0Dct#U*UNhU=d`O1l&geIxi6$-2M8m(OZT3ztthEKe1Tl`Pwdj`Fxg9zs&w^mW<872n@!)Vd;ZF*qZw8mrxI_ z+mLrrrXxJGV$Uz6aR0P{n%B5uaE4A_*gW=w=fo~1Xph2^Yo!l--T#`DOlQwK4UYK^ zB_yA}bU$6T0+hysVS>8&zdR&9g~&{+=#ruSQI@B}ZE0}GN1Lm#S|A^F+P3qV$KHDd zOKMN*Jo%YAuWfMD%tM{YS+Jm~4XH}bj>}m6rlWsJ?NDklnqtrO*yEe}*U<8$)I83a zcx#qhFazt;jD&%-KlWi4Eh+!MJDr~DGkEOxE{LCUlf+6!sUx2$bp&nsscjo7Y;7OX z@FBdwN^Ppux*PDvzXAvEKRnLH6X{i5L}O>>HYyiGJj_F8iH#QU|@%6D2uE1&O^*H5*h zDE--ECNcdDBb9^ug!n`EPnx!e;U{``F+AUE$=Z{;4z&M!y}#1APuzmq!8CQ);8q!b zvW;yBzf7c-VN!7a664+<_dviH*!JJs3%h#2x_>cDGT`^WGK>s&7eF4K>tVZp4p0J! z!uwqz5&M49OKAvzy&>V~4s=McACc#s9*1Gg zfaLI{o^*m55JKXV>K zbIztYU&qR`6*4(V=c>gO)>LA(n9`S#SV<$}qj?pfDiIx8d#gD=Rha7JGjH zD|OdnyX^muJtUMQ6uX>x*f^1}Us*^^_gf^m?z3!HX4r!vAVrO(x0HiOb=JUi^ibh^`HWIjXgNEUU)N!__eUY*1*>C?+HPWV@PRs z(AEi~IgX$?hFAzL$t*?nq@@GtH-GwVFwM=^@{%&9Pm4%EnbI2@u!9eLR3qC7Bqq$a3>Qis7frSGJbB~7korbw(CMCLQCfI%5d_6GeLGH5K4R8@bK0Xnp&!=k zBfF=xnp%IFj-ROnI@2i76vBIS?FM}T4Z4c^Jpj4y1h9Z~00WQ#8qdSm!!GbLfH`XL zHvlg@-#Q0>Xn=(6*iVG}@7u5@hx;Dfp{H*yJ9v{zkKbu;3){`_V zrh1FTDW%*%&I`L(AdRY=@+9FtH;LChkUkMy=Q3HV+&OsWZ2oVyX#Aph34B?Ln_u{m3&J2pv@f;JB!{s7vc(heX!s}_uv7*;RDdM+9cLgCF zD}XV5V;iz{4G!Mb98F_xH?KOK#f4Wmf~Hjh%ZearUkGPlxlAxK!8ER1gcFVlw-W&m z0cFq<5$wEZo&-88+C}Te;1iVmut-%TYc6k1$4l<@+pp228Stb7n=kA8_DYus=Ks z_6wv8o6Rp!T5sj=c0HjB&Y-vxkmnwnb6z8%_TxK`a^Wc7IMnS?7!wpuN8JtMle(RS z7U90Xt!~K}{iM{#yGXsr$osjI)N>6@F@@G^Wn(x>y24(s%Uw>`?fwp(OHOC!aWa&B zpMOsclW7f!O(--^0!b;caiG11>Hd9dI1M%A{B1S#?XBV3r)szdX^*%!*JutS(+r=dnVAAbf38~8)(nN91w(Ns(^v>vH2s3XD5v$U_y8Ay+<#Yrxt zR}Frnsdkk7U(;KED}SZi+uoyB{QCB2GFHe>`q_Fktg#1YKYiSTvsV5v*7B^7{z>ak zF%gWtB^>2^fU!3bH#3w8@}U^Ju|fJ^g$vPpS^2k6(lvf@bPp974PB<^OK|c+o)@^| zDA!zsSoruTmx#VOAwYu2RU)KE<}`LVdR2*C;8A|VF;iLjKj7bv^z;h|?Tj3YgmIAwO1wREVz!59C9_UO`w=#*t`G+sKHg?RgK@T~_{%k(BF}(HW`TFp@N{8%b_D zqXT62t40Z~myC|M{%G{U_X|b^ZS#o7Hz-vohTjJpZh?2{?!hf9KdgI2A1ru@w93dH zENC%2!Gc@h1-T(MELdlH77MOC>cIj%?b*$=yxG`cZ{;`A8f-Ayu;9N)C6s!hu=1zT zH|_jcXb3<7j5aLr8q$LWR({n}CH<+(vmRarM?fPv@mZ=ny0&^%553)TN`y9GsU9Sr zwpJW%tytPxQ)p{Vq^%W2TT4M(YYh5fKT;0tlQPqMG1ChBW@rHiPbyx(Iish%af-!F z!E2tC_Xo{R9c;tBMq>}|&3yC(_ui$FTvr3>!AFqvd|{WZ?Ixp+kvplwi@y*iz$Wu` za1D7#D|AE;^^7)*JB*oOH{lPSM|=4WCLFkxKLtscq%{bwZNm`-ZSAWxhf574{ErO; zJ1!tMKggAj`EbO)If#rpD=(q#?L^!AIBe2MJx*5=+Cs+P@j+y5f`mIvDI%e&R$kh* z0DCa@*;DwVi^bb6``hgRm_gc_1GjD2}Qeovo4GqwzVEoar^AXk$VOR7C zYt+dh9TKdHYar>rh;VI?gkt-IyP@;6hl@an>j>f3C&UlBu6mL}V8eM@Qa@VK!8CVo z#5oYsVduVj%2}rSv!3MafWJFJTKfDg)ZL(e+kjK4A;vy`ck2FCzk!zfzJcWW2SUvY z`A?rvQ`<5sj@4UeJLn9gx33~xM99DUg?qcA2;oRdXAFA%^c3((;j3$NQv5k4EUuZ| zqJt+NoN+*{@;}+~5PRfbC?jQWqV$vOxIzC@d19Y|TiwCG&=tNqfclL~+tQ5CB=6rI zH-Xo-_5B^oILL2etP5EA^PNUJxBW)LB=9*R%IBQyw9yGG{|g-(sgTIg{{|8xh1P{L z6t5B3 zSK=MwIL3j=S#vQ(jkR$m{1aV466q~6UWYtYn+d4Rr1EyG|C1hD@%Rg9(L{SlCtFE<~;K8hrK!f%RW1Rf2Do-Ap7X7aHN821^Hk0{q}R@?npWEJ-~ejY4nOeS zy!+{8y(P$hss#VEmw=@usDJcYZwa>amS8U}K@=@Pq`d_B9rJoi@ZM7;`0K-N{?}7X z)#mSQvX39`x2mC+fh?2u1>_gpL-L@1#q;lgJ-N`=;Qk@t4xXcMKMrAJJ)XUGVjl!x z;^)x0;+qcO2G{|}1!Mv?;GZ|{w{X9@1Nv0RNbB&t0(RGKfOyDAJMldh-;)8=|A+k) zxDUg(V%($fz7JtGR>FoG5C(7o+&BrnFrWai4lo-Kg0R7WW`zIhGo-&2HZA{z%?qC6 z0AWb88sGMxfIb*uSinNS7{noQ!vNw>ZDlxtX9fO|{`m}+3vr_W_MN;vba85%>~Jzh za6A7YLWCehV80NahiBdwY1*;k3_C-FcohBYOb<^RWfN%{3yFP1C}y^PAR%$KGSi4bK7v8!K*%Vm=L`0m#;zTT!92OB;76x=+)a$gG>U&qM|huyNa z5w-v`8__2~dU-UiBnbP$y-?pp@Dc|K01aY0Y}IX}O(jGYm{anOj?14~`U33V+M!{X z+qQn0ZOkn|9__GI7o#oinKy#(@$$2c^x%gk%n$95|H;2=uy1%Y5;NDNzU`D!*3Ex) znuM%Im^%n_q+gh1gvq60$`R%a!tCf5hDDf-r%9jeLzsOC!}SXjg)nPqI@=It1HvTq z3loemi%uV)W&hAj(p!hH3lY|@Usw->O*q|1!>SNUfl$qTIJ2p39i`p;xYN1@Z?C{{ z?a);W~Hut^PN%%Jf^k7#0ui(Jj`C(?#(^Z}1T&K?wwiscbFO|SHq5xrDgWS6h zoZCFe^yq7F@xwvm6S@zr2`_dSXT`pSaTVbu;=RKUkr`kLR+Mc#Bk8@KS)(2De-Gx& z1PyD4^*_OuKOlv+!}}kZHSRQ$bZ<7!!Gj@?H2$r!6c+Z{Y53RCDLYhm%B zg1txF%fnz101v`i_;Z%D=EuLtXH~3TE1nV+B!Wj~5$X|yG`E;VIK|6PB!OK)JHOEk z4`?z*Cej|_a_|IS#&KbI8W-mvcTxGMy7)J%&ZoRkh7kl_a2TD1uG?jCG8eRfFKx&E zanf?ZoyDs~L67+QE>jAzLJ3<-tWchZJVGpCjw6J`+|{2;{1xwg)7)6*3K_9i3&!sjU=oa?KP*y zE?#$5G`xypFoV9@1b(N08MH5PBNTZ323jrQOH>}IhgOAi9x8wI)AqBVw9w`Mwf<+l zX!trk(dQFSP#LEkhp)w(3w_&u`aCT|v8hYhpWmF0Tr(<3%{3-o`CGqIjmQ7hl`Y_x z(!ebPmuMZbq2*}jGff0&zTRZ)^}h84XMGWSb|s0ILgTHZ@m84b_4?m>61MA5 zH$Sn`1ix%G`k(c+`d{=fAoV$>8_Hw-N@YM;8BO;^n(h=+B5DwAx}q%Z7xo&$y3uq= zEk~Fx^m^ZVl6N)22q(L-{S-cN0lxsQ1AYbE0Q?(p^CXGyM0-+fI;Py&FQ-DJ^6N<= zowV~U#xmun{X*q(hc;{TWQ z{~6=1-aUFx{=bU%yKHdQ__y6tm@H{g|5NO z01a6e-+AU`U~V^`Re1<2VBwr7*oBT9%bD5q`wm)KgV_ffPluyF$N7$QHq3m7o%*%NPK3Ewb@rHz-`t1$dO$K@BET1LU<+)D z0j~n)e*=CD;0CBainTw$9zZG}IUD=>0B)PXZ)RbQ{|L?|0l%if`)7c1*fy^Rmb-v+L8aa}uRPNk zZ+SRn)R`TTa6H~gCrfYRBPi9hE@6I3z_0D z=UQj2fBLd8N$ukFbit8s?v+_r0JGJG3jaTs>8O8Q{7i`VV7N^&2MotNtq;@CF$p%TN> zwhT|i;-!s0*YsKwaB_+w^PyAqHO4yRqG>-%PE@(g zyt_(^5cO%q?*l9ZA`M*Gs^jD1A24EuldG1g+He}4NS=7K5a(trcAAURJ_~V5Lr!zI zC%rbsDa1W>ZnMaR8977+OT$P%P6VB?KP$pn&P--If65Sgbh=d|YvXU2MX}~u zg)-cZy8-ry1b37Muig>W^S8OS z4VEOw581|3R2tT-He&q>@cTco_w^GSB;!6CuoB-A0c7&oll>$~6r7&0VfH7p zMw`91PfI>*z4KB=f|G1R0?zFeu9LkNq9E2^1-%z^+2H#Ou^g-~h0IA~gFY8FPm;0H zmd)?uMC(ay@RrRSO$b~~rP($fYyQB(6PcX-T}9u^Z9AJK23gKKeBi$-)L47?{# zA06(lBY3sT%;d`9bA#w;r7as$+pzvCns{W!0Nq~%hq+9Ipi81WiZ|NszqO)?BKeUS zuIlF6c}Y@hdWbt#l}L|tJ$i}e+YU=R2Ucp0o+xdPTJFqxs>iDq!pi1robTw8JzkZ= z9aCj+3U+$Z`zoRvj8zeTKH%OB(w1HCi`W6+9^3hv4h3iPFGIXLwc}I;_X25q=xApEHVc<&%@v=b{n2CJHG0u= zYKP2n4Pw3^acu3Ef!q}qvX^WsKeK|g_G-QLpbb~@-ori)(60@kY0-erwK)F?bg>L~ z74TyALJ{EFqI`~-l$Q#whZ??c6lr?&w7-M&jnLIJUo_NkRGq`SRtPxZW()JxI z2sZB8q7ydnpEptmZ{f}l-FU2I_{JoBoKTqZi{O$Qu-aYYw%bG9&fkU9EAy4MkHSet zkV)|7>npVu<2;#mzV_i=^M5YiHUDwjT_d$#kmIcsZ>O=Z`V#Kj@0$Os#ZD#bb^Q77 z>bvIq8TeBowcdyI75>k{*TwjN_6yFsU_! z+}+}>LF21i@+8&58HJ}jXGI&o&P3>}dm+Z?05@%%)h!|kd!nQ*QOk{MWH>Q)dWWam zd9$1Qd9wq+3E%>dx})7j_+bqDRby@E9@;`CHaUCT!ReieEfSAv0M7CI<5!%GKu-Is z5tdw>+uZC?BgBnJW8r`L2hdTxt+B- zL&ckm4HBjpt94)E?A;on>_QpdWn2;qADS|0`|f3J;GK^sM{(;D$P5&0lF@U6M{&); z-n&t@d1Dhcr7(Nj_<5EZfpcKw()Q2af|LT<{le}xSe@4iid<>SnwfP%XlAr(7Ir_z zFB9G-YZ~o*W9M$r3=W>B+xhxV;x|u*ev6vE zwfoIE=go|}cfPbeVR>fLJQaC!!@t?n@0#Ih%)I;|`69I@llRMbzioS8LEcO8ewx0w z&s>i8?ReMP{%;`vSK~dy_Wl`ppN03uws!#-uq+(!F_MnEN@;uia@>I#(bH}J6KwbP z8Ov?&OYGk{`+c4Lf1>^W4*GskxXwten+X;frPf{Keo1OQK<*_NspP&5m`v^|z*}-x z0$<5JtOx5Z0_zz07D1=Di1VR6<;PZ#mP*17@r30{HED@NJkMM{9nTx4Uu>9Ie6b-q z&mV8I6Q$M_No4eGhgYCB`08)tUo>4544@=C8!rlt%nkbd8J?T%&)Ilxvp;WWydhlo zLaq!mY8AZi-GOfSE#2IE!NI`{fxy5(#?Q}>89aC}6B-)Ij2SbA@%Q&Z>(oxXX}|X&_1tsuy^(4?(T!&JM#d!0OiNf9Rk*+gFnrL?S~y4K(}rP z_hpWGH-t8s1lMMn7}rLb2-kZu2G^UQP=k%qmUT0w?SEB8?3K3fTV5k1V*G5F=7XIv zIcqv|(KFr=8fnXt8G|sk7f&Deg|z+u-X4PIH_-?~hZ3;KY+ zS*nPRyW7ShrHvb4A&OA1PoISFE_m8Jy+&|YI1z75l+@}W30HTcJZ+Rx*GGo@EY@%F~f_< zD8@hKqrJbEe4J2Y*37Cg7cBPBhG-N;t+_rL9%t6KNy0Q^ikfo6HNxKJ+(|_tnhtz5 zNd^~rYaZ-1?=|E~i+nVXQL+$8LvBsOf7k1GIkSK6sxx=4t}{Q%u;z}{821igTXF}Y zZ8cw8Q11PzKXT)6&sX`PE^o%U;rWbeCa$|wb!O}KIDsG!3z_*#UM>1zUJiOxUDI%T#TE5TZH+oc`=k0+=?L|Cf!Y6p zR#|XE?Wetzcd_J}dZ0Ek&qp;3^}i8bXTBLDN8gRW+qGGB=Ie_;H_r?I+&n*~&U|%s zomrQGzixHrOWW(rSF{tgi3OjVGu=NoX9v`nM}*gyLt|>pOJ>!W-&kB@-mtpHyfNb^ zb&YxR_8RjR?fJZly}?D(wHNmK6dh6jus617thQ?J)FS_a>b;YSPOHD)8&)LOp4l5- zbTsd~y~B%6s{gq+x~LNMt!X&+;R{9I?j5#!Ou@O`r}Cy0`W2kmU7lA`q9__#coyyS z+}q#m^3NNjiY%-%pSxUVzHs|3;CP++tf|gijUGIO9z25{Jb@lOxwz2$O?aXCcub+W z+`Z6zBp|+UkhXMpjd0`~ojc8ur8VZL(=}$*pqL z!;rg6rR}n}-(2p`Mrgl+jq^cugw|i>0~n+&P>sWVpw>T=2`*6izYi<#WjUDp@wPli zh`r~Jo;f(H&Ro2BIr^#2{MG6@^MQ;SvwwJvIWVTiJZx5tS+=;woW8ooygs81XO2#U zw}q=q_k%8dzjQiy`tVd~%f4wbg+uVAWN9LG19TF6Av$%tRYW3 z#1fTUb80C@1#)yNB=lxf>XgE;0#f3kg`}Jhmu|)GqL?kttR!uSCOm(EDqJN|`4)y~ zeA1!|W~toM;>}`rUaP;m-#A*%(j=j41@hoHu)b(;I;AoAG^1KsGqQY_k(E$P3@S z@jVjXqYyq5Ib`FzFTM}PcNM-b3mB~VTmE^oAHMnH+X{SJ88B8AQFI<&gwC6X;Twl< zDFLuI3ljt0Re?`&D+Zq=!~fubsrf@OPG+0xK#im-zrtDhb)Z#spjD$l4L`eF2Wpj+ zpHMh(*$hy3W&R9=UV{|ZqC^X46@q3Jf+`e(Ding26@r%4f#%hL=1nhpnZzk!^Aihx zFgslS!R&O~yYRd@1o@5#a7OQKH9LfFH9N(iTq!8uw)4XNdH%3py0cK)u3bK)Fk{&Z z%T6szER>?9_l4JC))>3A4)a7E=82G^{o3yv9A$N&v~{4g!3Ca6hv!c#MD2{=qQk*O zlQy3Pu6l8f*<*VSB%vI$*X10u_w5|BZ)uKs@M-^*udQ^|qKqju!p(%xrNpMKI_Gcj zq(H0_nC7}H!e!oc^eV`Km4cu8U87i1pqy*`<^A;u!}6d5Sq2?Qq<`LA>xi`PTU^A- zylE|!!Q^Q+zHOr4=H(SviGzo#PgaS7UGv~+Qaw%Wde3t#Rz=3f)VgVHEBstG;iv=Q zuOhD11G$c3TjAYnEOz2G)UJlDT~jUDgLeM0NuL2}v<@pb$iwZYch~Vg6As9(%FY_V=8QNG8(u zgB&zKY$9|(t^C?1UoFla5(jW|jq!ma)YC-){_kK2B;O&+)sk09j9$HchA zn><|o3+5Vsa?O4Sf4W1yH+?-V$(a1{T;q=}emHN}SDR$|&&MP37jxU7uk$GEh zGeMy!adzXX)pM<9-_K+<@qSfXM|n_RxGuVRuy%j@{ak$0;EZB;}R;A_6@T)pV z!hoIh(kV4_tpW5~=8V}I+t-c(A~Ay#8qa6D<-4Xcqo%gKTtWKr__Pt~$$723 z(mX;txj=Tbu;W4?Gpf2}Th5StS9&g4b`I(FE7{^vE;`XD-zp|pjI=}}Noqf3M{40q zvi(QsrWi@m14iVdYUQmK(u!Xnl|gsc3hxs=ZCq}ap{2jENVPr%e$c{DdV%meEgq0# z7CI-vE`{`9<|Eg{$Xo$znCWi{mY0<7%=3~Ru%;yr~N4Y;x9Ip`y$R%y?QdV5Sw0v*>r6yOADC|Adwz_3>mR!4-J9acWe}u-JOX31- zf5Y*YscsQvtK;Vy|47Z6cDzay#00%;y!M_S{N?y*p$TAI^TE$XduhQFMvLT!g}CU$ zLSl3)Ht_TO+cY-qdwlni!P}VRl8Ht z?c8PV+s?PlUhpez8x`>w`D9e+%(LiyUE>S(k?_0aMf+1*V^4~kX^LAK<(gKWvp^PO zTH*h1INns2a9rQ8gyFi#G8Wfl%NSf2BGeg#nrBhqZH^_F_+g$=7C*SpzWi2bm!931 z-^$;^zWl#qUw*LmId1gPV0cr@=aK?i`Rmxb)W%PJG^jVNXFb2QVpm1qv`$%~Xr$%28QRxzu1;uo)6txD{Lyd__VXO5r>pa(Dim)h-JdN zt)Cw*6n>0NcADD$*`IC5KYOIgMF7zS5l;hK&ExN~>!}e%w(>WPU3}|zUhrSh3NQRI+XeLxskpDfomGe2o0=boI47X(e6e;$(u~HXFQ-W4C^g4+Ps@try(S)d8%sK#l zNh@rI`r_*5##?$KH~(~$NX*A@y)RR+L>3if4!HjRCDK;@iqV!^rH;%G$2z~oD(bGG zV%9+(2l~>=w_(?HX)UZO6^`Mlzo9PJZP-12a;{_WG}PRoadJMWkt7NAYvpG*l3H0B z-?~RyET5guE)ZPYpLi^6g;tQ%_xl+SYG-0}O>I+@&(v0Oe(X>F7|G_)dbGJ*Uf`jz zS$OmO>dp}bU4N4CJLT}Sma{%{t*gkKC?RxQGlOZ?X8B-zi(;@Zq9rGX?4)?}VEUWW zAwh3=uZs_bF7FCX!Lw0-DP@oUd_t4SS@4q%579oaiqtL|AEyRAmP}JGfu+oTzn&Tq z`l{ju~Lqit;y?*eTJkQLWxjb_@bLPyMa~8V2{QcF#6WbUzXPEr9HLx!i@%cDk zFF|@|kE_80IRZ)a#o{a;N6)sg@v^M%&)q?-I7f*gCP_Vs3{tYT|Ne(#-Sh9hR->Nf zuOSw5{rtNN@lH$u4fF3V=HE;R^TFH8cRUX5QQx;-`YHI9J%tr1K60f9a-}%wNTJna zpq&J9Gp&6G8Fn7ka6=a>;o`(+{N-`0vvE_@OU}vP2FCCnU^-T=Lmox@QPS#6`NZuR zsBxe!7CaqGeYB}g!0LdzW2Rg66Wg-oi7jud8OP3akEQ!F(tY+3EX}wtVC@u^hj#ka zp@v&QZKG8}eC;3VNld1xxIUi8%Al2aU1j?)FJHd%;t|LdjC#230)B{6GYOU~v||$A zcBgw;TP^=#q?!w7wgGuunf!N`mX@Qu1jgF}rm;TL@{fARVC1wg8I15u%ielOVMMk- z?xLk0QW!Om!VofFYdxeegpk7EecS6Hg%JrU3}Gwcep3%Qj37v1tZ0EXTM?IOd7)mI zJhRE?t_&Q`8De%ml9|p{sMoMErEI@#-KwA2n$mIualo-XDY(ss_h<$I$dE;gM}vnt zXW|CTtphqX(m1(&_H2ioe)`BfoH5tV>}_85BfqAg&E*ao0Y|^T52=@bJKFsFx-3ikB4?W)sGECtGvDTK z*X7>L1y@_lw=$`pZ8?utUc&oY>V~%Y?;s;{KJ{aZGRWEHo9gUsK0};>Jtxy>$J(Fi zi-8sy!s@8eu~x@T5wwb!Z*_KS1d#rV7Bf3{Zm!#k40_i?Eq?`4<>!O#EnfkdC)Umv z?hm%Spl2=rlAfi1K|i6J%|M?Y!!c*yz?>}9%)i^h&rQYQj215ymzu3+E0aKJ zzpLe~9=xq}*9xAbb<#4zTn3 z9ZM%ny{R1uYkV#E8iEsyK^%13y5_-PpT7DN`+`vYx$js#g{cR$iLKHW8FH$!J+StD zI2HIeX#GY=lm%7YwH`pZmp@EW_kPF9Zs=xZzl`4(ySeZU-6@y{Y!09|IMyqfaz~%| zbD(D3bSc=2vp%s{AMFRt&3X=cL5XBhRhpIy4~ARX&D!>gj!{b*^a`VvF6tPybV0|c zrB8K?S~{m=)Y4fUqn1tsicw1^b&Og%u8Y9$pY8?V_xytq_`L!hE*9v>_EKA{t6=N; zwsoJ*7r%RT?5ymzb+_(A#fLvTUvtykwvwI`(2k55tov3A3azIb_Y42chit;#Z(x7u z=(q=ohjy*cU7J5>44u#Se5l~iN@!68*VH@o_k=bUSlePvHzr3%YEq)b*!x6lQllq0M%m1}z3ubwZpBEQaLvA& z0NWpG|NiBicgza}!q}O2zieMPT@belHw1;Ig>Pn%OSpF#-$uemsz)pDSyw@d_=^*Q z$au&oj8q39qzECMCy+z-YZ=~1|53Z(okg|?NsugL_LDz6c(BI&zq@8aNGaR^++;ZW z+ECm%qBZ#~CRLZNf?`Amrs1T2hyE?tasZVWteXZ&$Q>sbyzrx6g0{noWeoa$4}*U3 zMEqOnDuGmp(Rl|U>>FU!5MNMrf{Po)OWdz+k7%93m)zo7ResBt3cKaWUb4b*x2;$C z+#WkIou5I&Z(}~N=JDll(hFKHZX};;rYl$WJ&+t+0lC2(PHN9tfEpg+^Ni>7;YGiZ}#kU?1qnP@cDh9@A;f(F|Ice(_!EXBB=3g@;0vM@!2MBx1iJdMA# zpZ$vERkNQ`JZ+a-ncV=HmCf?`s(Rc7<#>q|66M~7IjNLBh5aVZ*)ug<+9~K?njk-w z{rg@jT6b;c7--fbN3vnjhD4u9k^|b`FNwV2Eeqkb`9!Y&Eif_BeDmQf1!2~3sy4{} zx+E)~-9_ab5*1H%=E?<3qT)9sq6}L9LFM<5HkKo^qmu#YLyI-oK;F8JkT125$Vt}{ z`R}vcuZzqNGDg}wF}6!kw>zEhgdNO2b}jX(h`1=tq`3Dw6J;Z9+>A+a?VSl@io;H3 z|K2PR#aufR`m-8KS&gBIlAh-4+_sF>`CaHB+NU|AwdWEM_v_9twIf_My_|Iq)L3x8 z*+0+6p>u|F=$yIT=?(2L-nmT2jRjh%yx{Z7jR4)u{Ee{Zbsus~?4EHWo|<1n<_PZe z(~zBqI}CRY?hm{KAEY$0)a;J%q0OMg#;8W|eIr4uTr#|!CxC`XChK6a#`k9)-95w~ z)lZ_cpmT|XHj+{GqPGOoX|rFP&wE~nyJ2B7NG9H&W&jzu~_#3 z!?wf6v|(7RyP&UMBy^9f($Kh2jr&0o#rAkiV~54Mt-nT5>A<*7EfSfKS(3;@*oden zaUIZ-x3NpOJ~Hm#ojL2@F-rxV$2?+oof#n~Q32QAF&7C$vAfQ^V}4vjqCDWwg1-g+ zsqk}ASZ60Utlw*v3a=xT8axBf>wC>bLQ$Oh%;Omp?^$?%|Ju}yzpQ^7P+uSONG!Vk zHV?5BPZs;sH4^_$=hSIIT#zgvLImn@j37rZ$bkhMSx^qB45>S0v?g?NQEDx#=WCsu z{FSk&osCOkCEqyak>KMhb+7qxp_`-JnRnM8*=wFE+?JiAr@`Hw$SafObzQ?nLGwQP zgzjf6mJvDu1#Lb}UX7vh55v%Ey|m4%C5qQEBIPxTSa1`S=@?1YK0b}a@7LsON6Sh4 z?=`cvOmpt6BP>_;oQ*Zh0{wq%^h`94a9L$^wtW!B^OnATt$&_}LnqTHhfXF7MzkQp zIieGLEs)MuV$8BJ{4U07E8Np?FF@vwY=oR%18~oixH|#-G+i+ReJuTe%BSbPijlk? z`z{ZD6kDu6!3NR{jS!mHn07~D`)zB~0Oj@Q_@sKpN2lzWshO3^`~8rTC;I7P};%Ghe5M#PUVSX5Aqb&M|$2fhh|o<*+?>7U0y z>hV);D1QH{g$)sCYOz4;H`nq%T46iptYL)0cUVe4w9frrf0qUUXO5WdknpisZF&oK zy5x)+-_F{_AK%`MHVA|N1w7Zm-Gq$d1-QiuyZlwAB|qX^d8Q>U;O&l$@^iP{BbVRX zbPvxwwol;(JR+(g5$YL{ZTVZ#S&IPj-=gD=-(8{GZi{`N4rMXkJ6^dhcJt`vs0X-wqU|2NgcH6|e_PCX zY!|hR54j>^@1pI1<>u?f(Z9JZcF)ywSzB+5y~W!-T0D2n6wKChvqdc)Z%pFfX6wD( zeP4ewWZWCSzAYAc^a|X)cCl3Z!SziLuzJkWyU(U?h6}Rv;;gwc(RK#MwanN1ChqU$ zyyxjfeD2=6=$oEzcx~rerU>MEZ@DMp4)k&yE17P0Yw_$QzU=$hw}@Lv^_s#L!eZzxuaR0zWTDbuc_I0&gp|Bt=Fbm!c-hp;WoNt;T_8t)2 z@rIRz&^K}|;}?ntgfih;5|U^xD9y9@;ovDOBZ_x zaJqyOk#SFE=}A_WesKUsYt*RiUgiSsh9Lx}CZW@B;LPX-&Wy4kE#kJ@%dF(w)p(Ef z>~#})nX9;v5Y|=*@$`UAGS<3moP259q@0J*G2bNjjmZhz{^@P^EVxN`kD1cX?i(Rn(V&wL5yH``AOvB1qN6+K9pZ;Ip)Hh~*(yD!|GsTXCE zHxc7Yar@-7`GMb+Gnsl{l4*KCFcQ9Z18pkW?cX?6LI&JY>25mU0qWB2SvS0S-oYFC zR47Ehxz9Q+>5-%NMrslCIMzwM%)5k;IkQGl z0nEu{p{cw)w;33p$wH4&1vqd%W%8~LoWEWp0?v=MiPVB{tOh-qM~m_)+mVMuTV}gk ztHpX5($S(OFX-%tC5j_V-`avOuQ#Hhr@#U&XWlLI@BUQtx4RE&gso48HfNuOd=ayL zX@O3yL9J`8*;Sf3ka1;qv@O=fxT|Wh7WWLM7090qRc9AmOXgF`dYmgwqWm$NIPO?> zoF+nfK($wys3Z|y>N3>{*E(aTabkN#YPQBY>6(b%WJQ8w^$2jRJL9qL1hMwt7>6}y zqn7>FVdY^KkIbN%G_dt)u`bh#u=*70qg?BjGkpS9pHtAfHELMCw>!sR^)Xvd^oP3E zb7z|Gc+Fd8>w*4%f_fDXOL?_3fKR!r|1Vll89nWg|77cy>@n;W;I2R}YTxtFmxreW zt_1IM;I8K29weS8@eIUs7oLnt-7GK8YwRdih+tVoctp6dzIfRg`jqdl(bo36Ly(FBT`o%vtHV8 zjY*)V%gxXO&NSD>iy_BU=hT{)t?_`)JTK_XBN5?B&t|5PuUP4p8c|K-vadgq=W$5H z)5~UP)Pg2<&=b+h8FI)1$L)pA-B{&G)dA%U^sMLPudMQQ((Rh<3F^6_OhMnA~a^} zCET4x|LaC60*2*k>ab}-`<$4@qW8s+bzy^C?$`^wM zS%gzG$fj+ETLrfe?yD@&A#ml2HOQ6qUN`3H7*#1hNBxfq*Hd}TheWbcQR*nQ)bWj( zIQv-1f1@(bqut{On^B6N!lA3oV*Lv0i2U$OA9y0qkEhzMAVk>StvUMh)h?VPF@(HkIL{AZW74|? zw=yQ=kw|y!5!pGb#d-nQZ04O+N5U~CE#T{tbXYW$6l_P+fJ&sP>g2mb=dW5b<< zYj_s-o8fRGb(TqFkIBC;tNK7B56#`yvCJlvGED50+J@#}zPHWRGy{{`4pe}SZe|kO zAxy&eF|+lKLD(XIoIM-2?DvAv)1}?d$1xtbPT!8IKbx%;#&IZ@;g3Mn!yE46I^c;9 ze%&F$_XhWfkBUHb3meVW!^WUoK{y+yHb{&6eBrMkQT}-Wxp9#GWjkcD!wfBUth{R| zpY;(J&V2711pKqZAc((pgM~C0yP&fx5csFH0C)&)H(a1;j-R|U(-H{oa>$vPF^_`7 zb)Y7cmjj56W-=7^bN@!@na%+>v*x2rOArscDkdJVM{4HZJ;+N~Fv)?)=!c=d{1CA< zEG8~`oMsPpcph=V*Y|)=)-l~9&KJ8zPoX%@=XwyN38c7NS~WWsjy)sc>eA01tD4Q3 zClU6HV=-qi`)2=E-f5$C4cOJXb%E0Xo(o#1|HM%)O$G~+WI}r{6?^iQ3W&6T*=LtT zKx1Y5tQ}{vWeZ1Jtkxe2V&*TjnC@*-t#%) z^Sar(x6iH7FSGUM)XuxsrQIOv1% z^$Vc!1Ngr$*roT7omyS3`vWKhCL?aPX7^$D^FDG_JG7j`#;5Xw-gsWt3~7E*G@?dDG zW#i#B+fpfR4E+$KK9POg@#Q;>N5QwqlLqGG2JK%DIsCIf z1hr%A8s61%(E^S1Ls*dRPF>G#HqVfL-yJPCc4sT5IMyZSmn;MJjK@uKw2fhgB5_!( z3Apnm+*|g+dUC+f3%$y04D2(cxU?TT^U-U*z%48@Zjr>hXfS8oSDK63Xcq zieHCq`bZZA=8Sv4b37lXhXy9IwcHTqqQaaI$25DjAw0}AJvq}?YsaD8cyg7d8bzMlgdEpV6MWVr7&5$^u4kOuAo+~N%I5%EmNb1R;~c$%;dgyXhX zc>V_+>t(@mN#5Th{#vNQh##X$b*uzR{fhVz*Y}UZ&UD!{S+>RRCG1SYN+ul|ppmt+ z=Ia*)xeo+ohRGj+)$?$hV4CHczrrJa%bB!;(llYOjBb!MoC&u5V@9w|GiP;`dwzTs zL+&{_&GvD*Ho6r!Az;{k>kSvAqh4x?z@iM9a4n z9t{grP2j0WF|;m6LF;lD){>jOV%IEg3*8OPrOWG6Kp(QTT?rd*jQ$g*G9Ku}`fK1| zu^j+rwti@;4XdZE1_rQ5>scz9z5z3P24;3zotyj#+!9-avvxzB4`#MsbG6F3-yq?w z*|5~L$G7QM%H(QdT3-K`JfDNKnS(~~5ac6)7ON45gLV#Lhs$+A$YTU-wo!@Q+Ki96 z+>2p};HH!13}-+$n`daVXY6Z`i9K<~GvaewNk>R*`sBx)_hDT z`&w&VP~I8W_`^Ej`mZ?w7)cTvaizAb%0 zJY{Xij+^>?_K}Ds zEob;GXmVzh&=)<^_~+H0bl1+&33ItKjgLDI%8`ASqL+;XIduJDwDwZ0ikZD1YvWy7 zot^29cSh%qKf-c9(DR*kq6=?1EB%)_0S3Y=rC0e={78(hc~@I>LDxrE%ofnExp zC-Dr#vlUMZ4xg=W;kK53nx4VYvhAC;Rj}yBiM-*a(jlRb7F<-JXXl)VOSvzSRsB0R*0+j!i@I$ z1+3uhzzPlZ#yl@j)lRH1vS%ZIs?s2T5}4&lU>5&+yOwv%{|-=FUce4g;DioP3>|M6 z0zEB8ah%O~*2`k_9TV8BH174PGrsL*wmuCmt3ZC@j5xvrlD$7cwqohCxt6z-pIiPk zDo74)7UZ!wFJSN&e7gSl{f3v%LZ)WLtW3+XB!b(N9Riz|G*ErRChNj2 ziCK26^Lkwnu+Au8oe#4GuspqM*0aN~PI$eKS>{!UoErN#Vs?&gTsnk$8r#gQ){Vz6 zh22NuKMs@xvm5y;LdOm1H$z=Zo{zcKOAt{Ad~U*N{%{=h_|I_ASRMzB=W)<@9+wp8 zM}aaCYDV+ET>an~7AQcy7mtG&e+M*{Uc}=dc4~#)lKy$cI>+pfbl{*0;GhXE98|;O zAoitZYc=$Ej|CPwJn*L0%PjCx;8*B1o5x6!>!Vse#L3L6BQ*|;WP%3peJ+e-vZ{?5 z$Rje1^;`nM=h`)(nu*e67y@4|&u z44#V&X&%+K(Z+QIs>5OVzzjQ;h4_`|guo)>cr(A4fj@Yv(PK_6l7GvOEU*i@wxi?!5$Jp_xH zU~$Zj#oS$3%*%nrHb5eMdiC?lR$#8%M&iO;e*<=77%C9hn)6~ks@#wHv z6EKR}FjJ8}Ec})O7p3(vippe__DyqH!Ew&?%bk;A30}RA4uTX8W zwi^GUO;AXN<^BOIWH@mU?YjkPDr6YMK2TFm9AxReK7^ifmfj3{%8B!C!U~iL(*J|> zloRTAnwLROy#m=DhKE$y&}|4jb2bySQz`a?kn33nCxg2b58MPN!TSL`yH|jpi|08! z6?pE&GaAnq@T~e^t9-6%CtGV*H*_piQTeuPL9a+SL-Q4G+q7gypZOZ=t@v`4yuch_nmy&3619H6*G=vmx%TssaK}l!3S9S3bfj3Rl*nVN1>g%p zPkuyzJXKzWbVgpUnAsX*lR)C9>d$_0Ue}%F{jIapaTa2-j_dtG%W8wWM0{_}=>^X- z)`?3QP58Sq(R=^G4)I@(9pZnc22IdBF%%;*Jo>T=kIw5Iibsp;KX&2K?B1cNU`Z5s zRLbMgOdgM>^w!CJ4two%mlpzu=75g-rp`_aK94p4wyX2z&mJ}?-BUBFMZjYHbq9GI z>c;O6O;-P2;LsxhZ`8SP=qC<)KTK0GiL}d0QmGx23S5{JQX-%eIj_Jb;K=n(deCHj z%-{tq3LN{=i8Ediz^>TCzf}%w>Kz20Aj70DU1xaorGMtkdinZ_S&RleJRs!Ez@eiK z@)BR5Zk2T*jP|QridCWnHi4GyVKd22MJ$ywDq^L6R9nD)Mr(|1=URm}uR0U>Wkad6 zmbz-R<5=)?FsJm+k<#vHDcMjQSI2gT!znY9wZSlox9h_wGZW_19^1^*V87<^SOZ2}7LTcJ>HY+~#W;HmZ+)!`gKsJL z`OJ4!H$}_v!Zzr>GrXh&Vp#YUP(2KfU4(9D6S$QD?Iv(+Kh%DtjrbY;bGmaJ4|`lU*2RHx)~=&-G#}Tl z8;cy``~F8e@@Ev#?#@6SW~c7aVmscEJOX`LGjL8c9kh@VJf-E}Kf$F(gP(+FE!4V_7d8&;#HSv>6u5D87Ix3zl?21rLkXIiK zmhV*^!wJ;We=JhLCZx(_y|0h{Ba0)krp|N~vslY4*(S5G)(hJR;I@e$3N7v}hh2FaPEUEXYC7**@<0SW{dcGnOGD21f8ZC}&>@t2%ekh&YecmmOmUPnd-AaJpvQ}( zJfUPQ9kE_e#kJbs8TW7V9BrHb5SXt?99NE}Y2D#$N64k^An7%p*G@=MdEkvZ6xaArF-Y zf9k??aQ1_SqiqL26skoB!sLyPvuDu%`jEVl4hcOEhlJiZ;5jDO1{+EH1<;95eFQ$tq1Lgda^p!J_#BF&JB+7VkqvWY+7=p z16C76?uTELK?CmOXxJNmVFFPlG=gtIJlfs2GpP--JsCP;`>hTAxPg4sV?QhL0#5uF zPbT5`o#5BbAfA^on5uqumy(#e>-}IYI|Q@mI3Uw_Na=(TLm-#+kA!{N5rC2cYA>LI zd8ptCV~()1pyy@wQgi#m_#8LXk5P-?!+uY{2j_9VkoVkE!ft!OPB#ZTEm6@(L2zHM z3;If7-F|1kRm!Z8BYqR&HLm!Je0;w(0@HXA4oB=AoUEFxPe70UX228xW|Ir%1qaMc=(?&!>|(@Lxnj#5u~!gV5=9`r zOU;Gc23a)5%>{%lc7!c+gq=m0%n_z^gdIm%nj@^l5q1b+QI0T`BWy3if*oPyjxaUC zs3WY(5w^|vV?KfW4mHwRYr>=q|OndGWI+2 z+RPbTc`Y;cI^ecC;1(Nu93i_LAqwLyN6J0ix2}|##((Ei^FFSN4?*t(PdtxNm}dOi zk-puLKGyh!Bjk`HB*OSVj*t#VNQm*Dj*#~qA^t{@!79`AnZrWaAEB*r zlNZ7H=>}OLM!{Lb5lDnH{A=fvh4$o(6Q<6(7LHSWpO6tY?hz@@tfyb&GHkdf+!i|N zy^Yzz*Q3t}<*$YK#fh6^+9x&A*Ppuvn**I&mc3@%ClS9F4Y}lx7f%9Bvc88lGRjEM zL)+dldkTDG)o0!*8P(OSz?|gkkd8XMWC&|ZJxU_tVGpVwx}I~wJUiK2cfUt>V|L{= z@q4VMUHwVjVQsATH*Dp5)Yy-N$RiJmaY7v4ERrW(TSaX#O_LhG#VwwG>txTsZKm0cId*HXO|8d3WVf`{v({H_Hh-j;WT-upC1xM!R2IQ@mWfh852`#yqz?qz} zGe2)mE|Yoaw{Gg|hvrXK`zQF?Ki2;bE%Pnx{{)uJE^0r49W-+0!V~s2gz?Ys!QFy0 z!rg>3!F9p)!LhKbaOdHEg6oF62FLjC_Z|KSy!*o0;7`Ld49*j723$1UNVrGgCNe)@ zQt(WKi*%Wc~79y?oD6jg2&VK)WuJWAM>5DC!-(=iVd3k-R-a9F_=3#Ti8uYCu33)+6KM3^*A<#jaA7FY19 z{DSsR=DPWT|4dZG4{K9NCuXN1LQW#HZ6PzaLzc4@92Msd$l3BffZBjr0c&uIF~f3* z#oU^LxKH)z;ZoFi6*wtQ-I&hw2BfbtoY|*?`cxDqmxX2S+Z!vEbetVsdIn#^TQzs^M9kT;3hW7k^Yq4IaS_CWd zA+nsZAd|>1)6`Zc-tP-6a|M*OuaLk3jBvfs^rJ95Zn=g;WQ4Q0G<{B(oBS~iAOa-^ zeaxFZ8nbtt@eJ7#0%HiIvJ3hdAOHbd(H`)+$Xk;Iqp{OZVZm+kGP zuKD=8x_;=cXC+7Url<<@o5~6y+13haF3$)iZzq*|hBwX@$RF2=)%G#&$>(2an3tcd zX0SrDw?L9QwK)}anFy(zR6ah}Fgrh~oyCh&qtRM!eX{(iy#Jp%E_@+s1}y{;t7U(+ zsr?_#pVVZBoC?T^ebW^wjuGmt=k(4e?dL&>Gw-ZCk}LP<;&4Yr)I1vXrUp@)q%l+# z(IjX|fwsp0Z{Ema5a$GFxpoRw&J8geR_ZGEiQ=Jm0DR`iMSn+r)7jBedH zMewk4128k%^`mor9c#@}$69l{b41=q$67N_2Yjf%0-H%_!#)lF9M|^`*wEBqjbZfv z@ddEy0=KLHcpCfh;WoYBpO19{E($IlJb`RDHZR`$KITQ}-d{W4^wJ`qM%aB5O~4rs z^zTo88M9*&Z1VnrpB*I9voXAp!`+q0)X#MjQzIHlOtPlawlz~MAKzTSYe5IURqSJ4 z@A0-O>=4&H{(x|YQYG4s0d(MUEzmP zRqoM9)%Z9H9Th|>#vE&@?}r{>>|iKcZ_nafj>)QRs<%s~Y3h`)Gi0*ff@L^mFuPON zZ>{Z1Jj{VB0DM9NtGC)J0@NjUInuT&)+GS|9#s}6cY z`$oT2+zZXaol%&TKI(9ctrL1L=oI1jayUmh-{cQ~8}p75x#Lbh=&_!!^2^$tVRd>| z>rL$*t@fIW+r+7?cFY<%8*P!hFC9&jPXVVSO4!Bga4CWgmwxN+UM0^xVe1Uzod5&$ zrh|9VZ*A%&iQjdGt3CNOD58a}L7SmR_D_z{{0G-;r}elc{UUbnzxy!nIa$2+!+fml zUIT@GXlHNkSboU%9|{8xey$7sXykSdEkC;H(f!WbDZb#olu{r?zwFWbwFVw!X_+28)+O)7=dq_9TmA6ZkJ zaqy4D3~w-YpRmrSzooKfb}GU`BZ1@E=Bvk(7m)QM4n}$T)%aj{$Jfp(v-x`yivC29zSgc!Xd=%svyX#T{qS+nq?gFk zYcqOSc^7n%yGZQ%GvHnp*W`wPW%?RgwVDsPvtP~rqFB!2HfPR4Yw5Q=)2jBXh$GSh#?u7i_E;xo; zw}C%e4R;^!1h_Sf@jKxd-?L&4c&!t_N5%Uc#GBw&ML|vu_XXJ>!?A{rv(OnkUhdJv zb7i7@p|$N={RYO9Njq!nsyhpfKhM9(r1@9#xc02=tEwBi=OSk<5IwC;s7@ta9)5LlMP+R zZp}{}$b_zArsw!MSy8*V(W&Jav9XBpENzaKyEpko=3>NO|M6m80ly|(`SC(t_CW!! zw~4I@F+88{`FjgMdxrpvt-B{^VO*+y>#yz!+g77CD^L@+Hrk4(BDbv=WxrDbK9o?T zM%fqKTd8@OP-(Bp0kN8z%Y}f6Mcfu@eu2e!;(b*%Vz#ndTncKx%@s?{hxl7vrETY+ zms!T+ei`4gH+u?DoBLj%3L&=z-d2xCYclF-goeHy(B8~wvvc)VK+8dA=Y}^F{^60P zmvfkHC!_VAVF6?eum|{Y3bgoO&(tvu7|Up#*gv#akM&%EzE1z}-zo~^EG_@T5rkajE5K0hSwSx4FleA+ET(&~*v%Uy@GYNTB=B<)^DT6aEe z8a-fwT*Tq+RJq`x&2h*O0W052X!5 z+V_z*XGq#yN80!Jw0no7tsaurX#J`GitPl_P9Bmr){*vieA@OZ(wL3?9_ypUNc(u# zk=vy1|7*S2Qy}lha9c?P_V;iHz~9~iw;Apd@YxQyLbx!vF5t6$a4NWXxLnXw3|APz zQMqF4lX4N8Y#K@P(P;4gjn-m}9V2Am-7zYSxE})uG7WD^*s3>L_x4_~nWRqGSMdE9 z!F_hv$sj=9#LvyAzX}WNi(Fl&qGR2Z% zDQ{{n^Km_f#}xC1#a+>y(;nAKvDRKQ%va1F7W;|j13u*iL!KgYSlpj9f8gUz8FE}Q zYR=m1*R=3)hYgRo_Gr$yHqEPi+#bVJm!%hH+-sT_`M4%Svg?k3Gj8UcmycBNv6~EW zim+j|nR%z`$Z|fm))1u_@w3>XBL#fyO2aspotMF!7aqytV;?h&a`7hyV{?wAXghN3 zbIpG&?t6t1ayJ{iJ-Cx_kZ&Lja3yfLaPe^daCdOm?;6}mxLt5B!71SwJ>kPnNcSu5 z9t@vlS+a0{uP5EuapCTPa4l?8xm%%$YvCK&i!@wP{Fw)%xv3lFZ-6^HN)DNH#IiYf z!N4`T$tALX=|~{xYSH8cMr*X;!mJ35n>mCok>lQyn{U^CmCP0rFSGfFtx|YrwvAH1LQ~i$HU$zc=7Ce-Q)=d`sxPR zd*9D}k!fz;sQg#{zvln5@MYYC_>8BRu==};#|3=Rskr3mz0X|xkp=Z^KREZrKlf4I z+DiVROv{5nhN-Hc%i_BmpXA>w{3Kt9eVl~z#@+X&+X!5pY7rDH=!^1O=t~` zT`Tj7cPeYR8nY=82(L5_V!?wGwL;>L5f6aE8*YG~%c z?j&BK6f|B_?J2023)DqQwqKFpn-zUrTgUM{vry0<_Q$a}^{IosKE6*%{tX+o-gr{pz5$g8gzLffF}8|9B1W3=AVHRs>Z z`3DXZl2|WLKG>HCzb!@`h2JWp+K=9=zb#q8?uLkAbBWOwy>*_lh=U%0G+Gb*6uvqn z;$|_49Ni8}ON~Zra39wajahE#^~dkcUJ@Aq9$Bt5@SuOQb7y<45~52QA$VhxHI3km z`QseXXuZ<&FlTILX8>-5-qQHDEg1LYGM~64?43B=T3@MQbrUN6TUh=zsu1jbhUR>^ zQ>iE%*0UwRX>)X}el|#4EL8|qCkxxknt86$8I5PS8XTpMv|I$MbBB(V+phVWmiZcb zz0k5A*in4T@4VRVJx%yd3EO|YqcmEpdp+AIA8UktyC=}@qE?wr*l|PW#_d&tuM{tC z+guRcF2LR`g7?d80-U86E8i(WZS)^?`|oEf$F1HmIpR62tiSV;BS!0Ky$4FWukXgL=Yo!$am%#hs5>)Zg9@%kVBg=cJ&y!? z8@8{ZkJ@=l8IU!(Gy^hfB0E0vlWzxKfBXN!*9TpsxAXOlR!{xIe0`(!Pe1*fum6(b zMMuq@yxvUHCl0=Tl*DLN_5KoH-)KFj{}%FGmLiTn)AZ+xRibvr%{Suq@lbBQUiW|J z<|nvhxt%R3!OYR<9_HppDZ+=fw-2D2dW=?6&p4NbL1zvVF=FTS7_46#qrlC_jM9&E z-GX<*7?6Imo^kUT<#JwUhpf>1xK>FgPo@>45nDTc+c6%pkAb@yPl67*PJ);`ilBKh&c4`5P*)ka5#U*bOKWfv6p505Hj)0{ z93=g9?~t6zii*+|wWSPRR#tx#Sn5bBnP>kR#5?kq)K(4#78S1`S7?5G-f za#7Jb=lgs#D9eX|^Uu<9d_L-0URhI$fSl6u^0nnf)vOZHtTAg!Yhw_eRWOgQS3&~n z`gqnnNnU}yo^uA@`x_1s$=u4~vhq@itf;n#0rb~zA`;Zc-i#7tBf-fD$}g=Y68lHz zR@T;3Ro3#^k^YT;fbNw=*^zdSp|IdRjTTuno^)_@?_*wlAPyOphe3ns@B#@)>M|1N}@4}k}!&rFp82e zijpvj&`D3mJ|(fYk7SXm^4X-^GQd_jYm0bRfkjnCD=>a#_(puo3RO{c5r%&?igJ!u zl2cT%qO^Q)EbzUC4qID=e#20bOq66{>aAmqfez)vSbBRyOGrf}=Jc8sGS3#ELk)we$k>l zS^T2B+4HjI#4nnavt(i3;-wOMr%9eITUjP4FRMX$2^c3B+!DxUAfKeQHPuNq#bp&q z)hkz*0Y~saJorO}FRENwD=99oT(P>eBt!BX8!jZbsJdi$n7v-rY@XT+eJB^KwPiI7 zLGU=MtZH4_Iv~WM-{NYE_^h18d5`_KCLxZ=K`+rwmv}0=Q?Nwd0NIH3(q- za=ZVR+qu{|J0I$4SLlk`a`abi*_zTy4DHDhzTYr521f^y9&?}smVFfulHg47P;Wg1=!9_L&Y{`lF%{70paxs+e?DwG~)X^!3bInV< z*Q{Stxm;CQxf<(UQSI8A;-c!r8kK!`4R4CU>hVPoIaVYz0X)vU?cog3+Q&gr1w-S- zrIOM$RkhEdDcO8wbz~rpapXwL=4FW;F)%p$xE&IQu_38_uBudmk;KYN;7cHqvX%VH zq}WLkj6(@a>#Pp4Oe|VkTj{JFn^`RR;6Mc|^E>erQV;Kc$;640pVeh;6<^MOXgh`` z*9^~x)hoxjz_ZT>4z?p|`}<-nwX9+6%Mz#sW>gV>!@}pWV64Z$+nDMs!H_kN#et6a ze4lpSk4d(`hvakAn2c>8c70{C^j$IQc=qj9c)hi zynT^&QEg>a)!@K!plmi0eyKm~^UDD={8OCxUQ)yI#4@s|wy3)Hf6aR+eo@&;DF@bc zmVpJnY#oR@S3Mu1um1OX4qJDAR^NxRa@CrZ<*4^V0RN#Z7hd6MKDN?0FbZ&?bP&-D zuM1mW6W1V3WeHX+tcoSWtM{KU$MBqnV_Cx1+d&dk;%q^DSK-|G%jYk8q^KM{UMhKL zsJO<~knzIkY#yl$PGsjw6Fs>mhHnr#qvItQ*Y=p`8qjjCyfB7}vCx7bVns89h0aRi-HC%_Jdr+hujZid0mJ4yzGpFyCmetddOS&DpWrTFw)o8hoy2IL zB~F?ty0VJVrbXp3JdNZe^d-Z>lQa0nASoGax0Hme2uaOweH`fg3j9~EP(5c~O5!C9 zj&Bpd#!H;@a!Aul<|4&2*kwegq)FGOrbyYIOCpT}rx3Em@iW6SK?N;ONXnR=LP%un z#Hb0W*q_Bb`PB0-rjZ$sModyphV0r4PrtCz_vNV+y zwU}}>jzmr`D|da(8fP%UD_Or1^p7Kie`PQ$(6QA;j(piG!myiM;{de3B8;aJ?1k{J zNc%AVp=NC{_zbMv2{jp#<;$xoYb4Rns>)WV7_VW%hP5%0Ma`U-NK&#Cf22@0d-=j8 z^A_jLowZz+w~!>&uE8!0aLnO7spQ!;%d5)QK2uh~*a#$XW!cI~7FShWxgu#oNz#fn zC7@CGc?i%1JE$WqzrfXC=d-%>x#cx$tH6?ByRQl5<-jK3O|JlLssb$AKH(*2&U~nb z`gyq}Yf3BDCJy3A-VZp`KUtb0O_ioeCrhVDr%KbM(~_mh$;m0nsmW={lar?;Pfbow zo|Ym_Nlr;gNli&hnVd2uWok-#%CuBzYI15yYHDg)>g3cZsZ&$aQ>Ud#(~{Ft(o)mX z(k7=(Nt>FMo;Gc=baL|Kl*y@+(u;wl&Mpvrca%gE=^BPPf1TrPfMSiJ|%rBY-UfJhAK`&@zap? zG$fmbAbbjmmtYQ{FD2QPH`zZ>01g z_?3h3s9!~8^_rE>tf(xntahZYDJ>t8h5eflmi-K2-@{@Z;Dhi#D+5q+7rZlj5?i!l zMQKHC4quq-`|N?N{x!9UE7n%mR8~76Sb0OL;`-ifEQc(P)!kVcdp(Pv$t^7^Ve<`n z4NdAwD+lk0#XI5WuPd!CFM7`9&nmB-wGJ#ZXFUA#OR&3l`tul9##Q&?XL!H7a>ZKA zBPUGu+S=Mm^oYGbu+<$>6DQ1~Qnp|WO;ZduLLT3bPMGYqENuQm3vdo(6rp*3R3s`|WLuZ*bH_1>kZ%fjxfE&$l(0TtnK%;lp=0+nNutj}?3RlCpK+ zIWdH3_t&gN5AzHiyT7c0At(F$vqk)F%LQ9fRDlH$UPrv$k6{MB(#oQ>sI$DRx=50P zogH9grK^e_Tf3;JqGm4GY~a(dd4llB3DPN;req!1OqJCc8O!G`uP(*fQn_Nei zcn`S$zwpAvN4ffr4zdYVB4MBY^m0c>J9+ScBmVsRA@=Sam0nC#6gbGcnAko6%t67= z!n;`b5z4}YeF3}jiE|vez~SvONAY?V@rT`yvG~yu2z?^-YmQuE@jC<*uWA8a@uz0_ z92&vk;zHwbH;G;rk`45dfOK%wA|M(ry-`TE2|P7IvQ>yQ9YP5Lh!W}Q|1Rb_Iy#OZ zZNz%oC?H>R^n`%eIF`IYK=%sBZdS|%0Sg9RMVcd_e4XBM+rjFxo1>b!nM*TO3&>lJ28-k>VLg@Q)ay*0{lar4_=w>-F zjz;jdP}-AE_J!iLBa|MSLr#TKD6%{sN?(~nOrasDk$Mc;iQF5@YPV-x0WN-xr+f0q z$?-^Yc|5%~i`*Yi-=9SeOAw%u(1twnlO!AR9pUs^4ryRr`ECS-cJi+yL5ZG^qIYvh z-GnFzrA?S}E0^q?xCyoXcoMywO>R!2keq3XX79VB>8)&XKAPUlCinP|S7K;aHtC3= zeOcsI41+PnP<<9r$I{bTsWdqlUQQu@f>nLmLAI?d*kROG<+Pj zWs(zd)Rajs#?iZ(Uer(4mlA|UztsgB~)$8A?=A2GCs!= z>E0Z2I+31`lRZ+pbrv}xrCVl^TTk)qg}bUk;jLp(XVsKP5#}OM!(7>_tNMWx#X3}^wV5&crv{-mwY;z zUYtuTlj+{MqR6 z47vmQpC5SvxBMQZyJr*QqtR&gcW2VNTykY5pzqG4#<`?53$Ns3%$1p9HZQ{`!e6+B z+aw}gl%5rlpD4X1BBw+YA^gk$xaKc_kHy?-?Bclp;g-=)$C6ca?^w*`V`1b3cTBKn zENP(h{8*x<6z_FzEMkWny%$CfxY6@rMB_$34I^K;(Fi%kaRumNFe7qpgmv_+LXW$$osKmC#5%&$ZkrzlE`sNyOYQ{ zO20}X7b!iENN!Quo=7Zcj6||YM0X~VOCq`@k(_p;n-j^q?zAD1+!M3+Mh|)~f!y(! zh}fH+RFgmsc+pD<R%Q46elONTui({XniDQ+j zi;qQQUpy-uB6hF=U$&L1~$IeN&AoD)b}MdYr4szsz# zNb&xzklvxBTNsGmIBwu{Le`mUH1 zL+*&whQhmxqdUapFh_5?ld~M{a%U^y*Y4yBM^C$BB?>#`PWB3DgP6Q8pqs?xnt-;t z6AK@{3j+peh4j3bTo%#;Vqy_8_(n>1ipc>~%$*IMEn;G%zId+_(O1NzNklh`$#D^c z_sA6yt5TPUzVA-%^6w39)aFKZy3xCCq#d)$jof4F)lPR-?0t8Z=$x1pg}Z0?z9X3X z_&$wD!vzA@akL?ZY!c8qbhLn8i6$onAy@ze^!;dDt3W=Rh4gM5*)61+IC4zrjb%Vc zFUFBBd;=^33+e6v=qQLF;rZN zkUJuj0(@}SpWJ7)-QrH~VK}-|TO2v%PPfLAuiVj{Mt9m5LpF;6u|rJv1d|T-dP+?7 zG32tCo{J&3#K<2r=WGnw=|NA$kPZ)eB8Gg7B^p!1gLcG_uRYi>HhR$Z7;?{p?u#K? zJ?S}bqVYr>OrC5GHFzQ0Mlbql9BKEW=iTx2q33}XmP`A)T4VO z-4sUdvDcxJwSkH#*t&}^>hf; zhmngR0Js^#Q21T;x@|N)3zR#S!H%WdB&1_3hSmA8bgP718B1@DCp}|Fc8w>mjHB<4 z0}(>;enNtEYg;(oJ&Cl2he0JJ%N5bksO;q?@b`bCT?Z37kA!2!u)+NjE(OR5ooLo+D*w`U8N^f19vim=s`FFf^}0 ztdIic6rG2VMp4+|401tKi1$Nov}rmy=|&r-lXLFJ1$EQOCQtekfIO)wgWU7pAus|q zgkC`&9{Jqe-TelPbWR` zbT`UK$Og=*L>6)`kshB;ZY7RmsgmfPY2@7`wE&(^lj)%hayi)>@9I?g@eFb-m7bkJ zK24=xOa~1kNBGG!dUiVbG>ySDO`+GOlSBWnz3UID>pa8n=lRaLKh)?tySU5+DJIxr zFLtEvVgl7RYqQ}Xj4=8~G1Xo(v!zvx85zqsXU>VV&bcgP!MWi=7L2pWU2vJptVru1 z3pNCM5m!VcNOuXrSxGWyGtZvqoO?D~`bYoRU*&%A-1qzOeDC+;ob$c!cl=ILrDu1` zWR-psO;(L46!gaRsogRZFGl=IH703#&m8j+ZvKgW{8n$Cx1;2QPH8Nwr`4L40WPQr zBjj9&l2cHDti9(I{9Q~j%KBLL`a>)$twct=_>>{d)t3#KP*)Y)_deqhBu43;C%m=_ zJnmyix9KTwyRd;B0N1DW9A;p*fQ&e}BTwxhciUc+)#;Ol)a&IOIjKs}L`q>Zf>21E zmmVYUYn|-TdG$G1kd)f9V#>uF{hleEM!eUO1@>T0>s3=aIIbR3-?HQuqis zP!?hwi^3T7?xfyltE$h2q}#JhH$%m^5BpRw?N777MW; zqVU&PxkJ#I@N||@XI=H4WJr3I9uLc`(*3XlhF-E@%Jgzbu9;puq`|o!LJx1l0)*vs zn1y3u7S4uQbu~;%-v9JI8?OctdaqivVrwC}Vd&YA^lNGt@vg~?L5sw3 zs~nZE7o{G5A1VpP{rf1N9!I@y$JImxVV~EYXRqVCkX2KHf3xM=B^|l=Z*I1C<;s$p zGkc@77s%?5=sQul9nsyn;zXO*qmquIj`noG_wC!EO1_H>%tMz}mvI{oYdNp=ZG(3J z4!wCzO6m%2=r&%D_)cWkZ=W~e^6Ga@dIK{iwy*j+ZV96d`IGR0O}V9`%UUMA3q8d# z_fbbV{pVxqJKd_LCyK4F9*DsB>Q&fynB%C-=afxH=(zMpWy;WfQ8i=g;fS2I^jL&m zG)A@z_c0>(EqyK`H$ocxG>m6dRzi9yEFEwtp@I9<*@*6ls>~3i&>KSq$1tLBjo>XP zy^+sh+{&llB;pu)F<*KOeLYVmG@P$Bt$Xt2EW1By>ZyELU~~m8NItj8c;N9U6v!;2 zX}I_Wa*{XUxsV<%VBcV2(6s`2l@@#eH{}*tVbAVI^vo9NrY$}j)mOI2D5E!`x_^r- zGP)ks%X!k1>%cxD9QXt8G4CD4mZwqwoBCaarvau2>j=vJT8FhgdFh83+wS_RWjvxv zU&ceFbkf3ypnBAjE<-O^92*|mNyAZ7rc7W+a3L)gzsDiSol&;);rrr&p@wi@3}ThT z18m@>0hpOd9S``f%B`Hs={DpX7Y~VF-LOd+gWYLecI^}-(>H0Wl0!~-+)qzICPz%C z^$o}i+PMQ+2Y#XFljb??@O@ct9Q%>vP{>JO4;DxHBIG{E7qEv*4jWG1TO0O%q|=b( zw@z)?FCu-8?_Ms3oENY8`OW|E`;&No!yZKW&D9Ni8dA2o_R9ON9sZ(g7q7bZz6#fV z09n4*wVk`JJ^!3*&p~$9xpwlNYwu6EcJ~@MhtLM(-7eQ_cLg$eQ8}I6(ETsh-us$s z-+?^P)ddd#(#nEtbC=RI)kBNLbl$ZKz*uaJe)uHF7`j2E&SvhSvAPcuE^ zw^Q;C#*1_+<)<-(Y{(j z2niIm;7i8_iPe7N>oH`reLs3Qaa>|e%?A&)@wB5?^I$_;8xG8QHG?>7dkwXimvM3wdDPv|j&FV&aas)r=RRTJ`pWm&Tvv;*q!DGC>T=Cy z;5vFAYb1GGuZbbR|4WmKn~4bZ+2v^(TI z3{W3=hXCrQ-RguLAZWXS5VYHXjDYvwb%F{qfjr^}5b#R(i4X%N%<)4|r47k|Hx4^X zd|bQ7Gdzy>8aTwjR$mu?gZ?>)Q=d04C*XGgKcZ31gn;)N(%`jrK&F2JKLZG(60bQ! zz&nk2pl{`;@I`>2Y%^~V3Huw7oKG&saG;z0=J z?=Q&UH6xFS0xsU`?rosKCDC&Ap8pxQOLQYO3r;_5gRBnVDW;f_3y5X zqB6?uR81QkFTT8a=Yx%kUtQcz#zlO4;mP}E{oWI=iv83%&oBN)U1LE9C3A?`TI$N$ zx*{7KO19Ycu_%!-y_C#$SkLQr5}BE%B*M?K&qj(o)J4ggwtrBZ$Wv35bYqY@-dj$Q z!IdJ5Y`d_Y$ht7%+4iDfF{J%9k+yb#r)V(qCy_q3?QACU2_1~I?Sc@IU;LFEv+Z^5 z8Q?QYf@=pDDsnVH2~BDSkk0`Be7}-B+kZs3$fZ~%eQWJ{hRFU&8*;4Z21h!Hsl}yLK$Ig5}oWU^4tqb zt}-(nu%e~NxCA9tc7WJ>lI*W6af+W3cA>_9e>6$lPf3|Q!$fjq!EkJQ%Lps=S1G}i za4|yU7$Z8$h}hQ79Q&TcH}r^tBgoQ@oC3SS3-|2V%;q%c ze&-nNBuD1n7Adl49E+WDQ^aN4>q+Wu>FU?#DeXw|CzRyc@vGR9aeq*9L~;K00D`)T zIA2#%VJA^Adw!D+C)svGX4sh-A~pV{oa6Sa$ROJeCF@&--`Vr@)+BLnC8c)KHn^V^ z%DQ9Mp?wVZKr#K-1nkHFewxokVmELR_*?c2v*!6;mdwct=_S(xP9o`+bFRZ||K)7q z&Q^DhRl9q(tb!YE-7qF-xA!!%w}Ad@0`BQ1(seOgU@zflmhkR-p>K=-+=3Kxq*YfX zOtPl^ORT_84e#81Zf1D*P3MeZ%O2&$LbB@#oMuJziiXxMX)n&jWcME%wd{BI{Zth8 zpV!eXZi{bzzO&O)v3GM}FS4f*9>UIg{@&>Egy#AM#j449TlKA^?Fy})m_)DBzih4& zPuR$`z#ek=-SWoAa>|$dvhVxaa?V}l?7PadDbIN9mml1@Y0(k2&dGN#B+zI>%?c3bL2~w z8Sh^H;%iRfLeLLSxtmY=LCy9AOny>@R!z1l_n_0=&rNwfuueQZ#Jev~>7zQh+fRMW zae1O=+SHAz{;G*2&m_w|813Wf{L&9W&bAY*s$zHZnWLUb8b<~~I9%ldD1+^=6tW;0 zdO{>r^42>AJ76hHgCytz;c#Uv=N0ljpU<2cP`~UstD{0RFiuG?_b{X7bL%@PS<+U? z!p@8cjf2V<&KaBqS2SlbRY@Z>k}L0e8;%%!0i|#O7L8Fd8sZ>CD;Gn_XeDn0og0rh zhLw!6XNm5Bigvi*HlHKkfZYlKeHC0~fvX^Xq>?D;&k(9o*f*$R2s?DyGiKiNs>vXV zdOz}8Dmk32q%9hc`n$h*eXFyW+fhGF^(@YA=a&$I8EjV-HYYPiC~1ZU!kVYq82Vn% zH_AfDf~5pYMrV1hz2yyZ7T}_zEpl&rw~Y#Rf6aeC^xS;+k;vxx+_L)7LNo~?po(|T zco^tO+4z~C5zjTFT_Vxjd|8#i7FY=L9w5=a{E%Xdv-Q_z>FlmB@6@u#+!`)UOk)!?|kp}b2h4!nqltow7=BY-#O#DWzP2u{;{KKIGRsPJ&B4RSy;%~ zC9=k|;L0ByG0iabqa{?$hbJI|#SH#$&I1eFwos(EC*Yb}#R#T$&D$w52eMiF253DP zLb)3xdG=p_*3TKjR%q9ao|wvKRaX~t)aKA_sdA*uK%6cZ(smu zmAiTMlg{~+bc>OmSE>*AJ=NAWL(oVZujesxNIb((&^~bFFANnTNrqT71Ts&H42PZ& z302>a?vUes!=e778fBicx(Pv#{EZb^!+_R$`}?c$j?Qw@dYD9IBDhwI^gtJWEpmnO z^;Kj6^u&(vejTVfss~ETtTyR9PliOEYfYuT6M7PR*GCK#Zl7QhP~?3eSl#FEbWqlF z-sc?_q8?VEL%+1_E@-@Wd8k_Jcr@e-tFGd6k!B@)l|e6)exUp_#(~B`5#`FIECS^Z zDVI^c42R*2cW#(^O!aI{z3%Un_J<=di*u2MP6rnZz-|kH5c_A&&7aNc`l^FUGuwx& zH=V6yas0r552Tg3D_rFT9;@>268xTb{O?q_BW2Z5EByPY{{Bv-`5+hz)k{R8&_kc{ zj;1^hRzV>4#lsw8SOYn*Wik7RzK1@6PVs)#Q2D92vQMn|8SilrA&KX~ZsJqF1^X~x zVnt8~yQ0|ZXso)a=I<9e$`V1|y>T(w{nFYkg|K!K4E2P0Z>iVPUXcQU@9Vl1q z=j<==Mz&DB{2rQ)p*N=FPi*F!oUFG+a`*CM6P({8attcoV3uepx(MBlW}!>Hi(9FG zIUcIsZN*5MFH$&X0LPj(Ip%^-^V~YERNF@eXdUUI^$qi;`}J=tAN^EVE0HR#@_OeYMaLI#Y4@pq|yo(w}E z8?>DUE8uO=ZFj&L$bk|lgj_fcM{K(s)z7|orKaAHQy3?q430yot=j3V%{f#zOtTu* z1k~-czkYTbE`YA9f=ajnSD*qe!BVV)7I96z4|8B7#Cmu3R)6yEci}_J=On7X_ViZi9~dJ*Z&&&X zd?}y#fGZQOzt35RTjTH_&$zsE`zg~eJe;}^(EY{pENYy&B~>+Qa%36jIo(Qy+7!4k z7TcThsCv~uq1#fc&64NHJ{a->#|S#XY~uF;2OK8m+wcU0!%44mh`Qfz@F|Y8?lWUF z8#0Q_#nwN$m2;F2!$!z~Oh^KK#G8RYIY+w~*28@7++k{zf44Y}xsKNi4TN))Yu6>p zUXxCoX1yk3In9*|y!D2wD}kZu*;Yfx>tu-6nWFv_5ITorsDn*G3(eK3s!dF9gA+H0 z{2t8pfwqP@9F^^ZNHXY6d9?RZs(L!8zT;KyPxiiuyvc(_-eKd_2f@yvSytE%=CvuR zY3uS#wrw(DpfH}^A%yY(bR=Ay}<`4Kn|T#Kdl? zHVO*z#OLD&6rb2!{-^n&RgpW~mS(F1j49ci ze1LBTR_lQ3=%`w0esMsxb(F3&D-Wnyp-C(6jEyde@MN|{s;Q%Dh51F1YUDV#!n{z# zhe^KK68ZhT-KKd9c;Gd`qVH3qO2r8j&=Hmc|}iv`W7@EMCxZ8y`~k>}^?fsUrW z!8)scfZq800M}KmTk5(J^Uw|ct`al}zg-(Fzo?DXMmqKYv|yv3>js*Jow=#zxgl36 z6l@7{a5*XaRQq$JIs^8danN2DwU6|0_NtwwQKk z@n!1sovywW)y9BpbbPhi$U?LKS#2yqOaE1E^u6vg&Qvqe>xR$R7v-y&skHJL=l|(5 zW}|xMUE2E?m~v%wu_FEU^fvYB-5DG!dZq`Rqe(q| zMh1H0L7y=n%}>z&bzHa60)qQ8Vq`w`23 z$zznUPYt5orf}D;$9+bQ_8W$cRwdF=C4(7`y*b#G@wCr~z}}H$wJ&?dXBhER3>e`v zdZS?}%pP@(_8CQJ!LtPT*=L*^OL?Pmt$5yQSTW9LbfLavf@PnY$jq>lU&Jp@x$@C$ z-ENZZxQ?r2G6Tb&G{tAELQ7v}MbV-x25_4~k5_$0bQR0@8l9shY|AoU7{; zuPB^?Aq*lQ3SyxP#Dfl@JItlQ1_pZXznh2nnxZnp+;B`i(n|k@g?CoXpK6+*`q#-# zQGN49!g(|FGxcQsMBbhCF=G??*3oKC{!BfnI+^OQ>S&gJrb3JgBK?LKzh&q2%|88x zvzH3vw_Seu|NZ}M_kZaB<^FqDf2scF;PY_ian&+FAO1vh<#E*}=p4O(`S1zV&^&Wo zg#^?jz4;>#12Xs_D8p=cLbVAD;|2;_W%fCtT05gCYh31p6GU6JRmm#z9qncP?-ynv xUI9sm`OUcbcd7$w{+|o8bD3&vHY=kG{im(-+HT|2f8Dxxls{>DQ_A?t`!@)V5%K^4 delta 8565 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 delta 34185 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 KiSFG=BL4{`+eW7V diff --git a/overlay/rootfs/usr/lib/dwm/plugins/xdrawer.so b/overlay/rootfs/usr/lib/dwm/plugins/xdrawer.so index d4eac0fc5e1b6e719e9311b61e0ac46032b3220d..f4a4a0fb6073bcae89f96b57d4abe0b24a3ab376 100755 GIT binary patch delta 35125 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 N$}^$M=6T+k{|63t#1jAj delta 31815 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�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/dev/null 2>&1; then + return 1 + fi + if [ -e "/dev/modem" ]; then + QMICLI_MODEM="qmicli --silent -d /dev/modem" + return 0 + elif [ -e "/dev/wwan0qmi0" ]; then + QMICLI_MODEM="qmicli --silent -d /dev/wwan0qmi0 --device-open-qmi" + return 0 + elif qmicli --silent -pd qrtr://0 --uim-noop >/dev/null 2>&1; then + QMICLI_MODEM="qmicli --silent -pd qrtr://0" + return 0 + fi + return 1 +} + +wait_for_qmicli_modem() { + max_wait="${1:-45}" + count=0 + while [ "$count" -lt "$max_wait" ]; do + if detect_qmicli_modem; then + return 0 + fi + sleep 1 + count=$((count + 1)) + done + return 1 +} + +# Parse `qmicli --uim-get-card-status` into shell-safe KEY=VALUE lines +parse_uim_card_status() { + raw_status="$1" + pref_slot="$2" + printf "%s\n" "$raw_status" | awk -v pref="$pref_slot" ' + BEGIN { + prim_slot = 0 + prim_app = 0 + cur_slot = 0 + in_app = 0 + for (s = 1; s <= 2; s++) { + cstate[s] = "absent" + rawstate[s] = "absent" + upin_state[s] = "not-initialized" + upin_ret[s] = 0 + upuk_ret[s] = 0 + app_type[s] = "none" + app_state[s] = "none" + aid[s] = "" + pin1_state[s] = "not-initialized" + pin1_ret[s] = 0 + puk1_ret[s] = 0 + } + } + /Primary GW:/ { + if ($0 ~ /slot \x27[0-9]+\x27/) { + line = $0 + sub(/.*slot \x27/, "", line) + sub(/\x27.*/, "", line) + prim_slot = line + 0 + } + if ($0 ~ /application \x27[0-9]+\x27/) { + line = $0 + sub(/.*application \x27/, "", line) + sub(/\x27.*/, "", line) + prim_app = line + 0 + } + } + /^[[:space:]]*Slot \[[0-9]+\]:/ { + line = $0 + sub(/.*Slot \[/, "", line) + sub(/\].*/, "", line) + cur_slot = line + 0 + in_app = 0 + next + } + cur_slot >= 1 && cur_slot <= 2 { + if ($0 ~ /^[[:space:]]*Application \[[0-9]+\]:/) { + in_app = 1 + next + } + if (!in_app && $0 ~ /Card state:/) { + line = $0 + sub(/.*Card state: \x27/, "", line) + sub(/\x27.*/, "", line) + rawstate[cur_slot] = line + if (line == "present") cstate[cur_slot] = "present" + else if (line == "absent" || line ~ /no-atr-received/) cstate[cur_slot] = "absent" + else cstate[cur_slot] = "error" + } + if (!in_app && $0 ~ /UPIN state:/) { + line = $0 + sub(/.*UPIN state: \x27/, "", line) + sub(/\x27.*/, "", line) + upin_state[cur_slot] = line + } + if (!in_app && $0 ~ /UPIN retries:/) { + line = $0 + sub(/.*UPIN retries: \x27/, "", line) + sub(/\x27.*/, "", line) + upin_ret[cur_slot] = line + 0 + } + if (!in_app && $0 ~ /UPUK retries:/) { + line = $0 + sub(/.*UPUK retries: \x27/, "", line) + sub(/\x27.*/, "", line) + upuk_ret[cur_slot] = line + 0 + } + if (in_app && $0 ~ /Application type:/) { + line = $0 + sub(/.*Application type: \x27/, "", line) + sub(/\x27.*/, "", line) + if (line ~ /^usim/) { + app_type[cur_slot] = "usim" + want_aid[cur_slot] = 2 + } else if (line ~ /^sim/ && app_type[cur_slot] != "usim") { + app_type[cur_slot] = "sim" + want_aid[cur_slot] = 1 + } else { + want_aid[cur_slot] = 0 + } + } + if (in_app && $0 ~ /Application state:/ && want_aid[cur_slot] > 0) { + line = $0 + sub(/.*Application state: \x27/, "", line) + sub(/\x27.*/, "", line) + app_state[cur_slot] = line + } + if (in_app && $0 ~ /Application ID:/ && want_aid[cur_slot] > 0) { + need_aid_line[cur_slot] = 1 + next + } + if (in_app && need_aid_line[cur_slot] == 1) { + line = $0 + gsub(/^[[:space:]]+|[[:space:]]+$/, "", line) + if (line != "") { + aid[cur_slot] = line + } + need_aid_line[cur_slot] = 0 + } + if (in_app && $0 ~ /PIN1 state:/ && want_aid[cur_slot] > 0) { + line = $0 + sub(/.*PIN1 state: \x27/, "", line) + sub(/\x27.*/, "", line) + pin1_state[cur_slot] = line + } + if (in_app && $0 ~ /PIN1 retries:/ && want_aid[cur_slot] > 0) { + line = $0 + sub(/.*PIN1 retries: \x27/, "", line) + sub(/\x27.*/, "", line) + pin1_ret[cur_slot] = line + 0 + } + if (in_app && $0 ~ /PUK1 retries:/ && want_aid[cur_slot] > 0) { + line = $0 + sub(/.*PUK1 retries: \x27/, "", line) + sub(/\x27.*/, "", line) + puk1_ret[cur_slot] = line + 0 + } + } + END { + printf "PREFERRED_SLOT=%d\n", (pref == 2 ? 2 : 1) + printf "PRIMARY_GW_SLOT=%d\n", prim_slot + printf "PRIMARY_GW_APP=%d\n", prim_app + for (s = 1; s <= 2; s++) { + printf "SLOT%d_STATE=%s\n", s, cstate[s] + printf "SLOT%d_RAW_STATE=%s\n", s, rawstate[s] + printf "SLOT%d_APP_TYPE=%s\n", s, app_type[s] + printf "SLOT%d_APP_STATE=%s\n", s, app_state[s] + printf "SLOT%d_AID=%s\n", s, aid[s] + printf "SLOT%d_PIN1_STATE=%s\n", s, pin1_state[s] + printf "SLOT%d_PIN1_RETRIES=%d\n", s, pin1_ret[s] + printf "SLOT%d_PUK1_RETRIES=%d\n", s, puk1_ret[s] + printf "SLOT%d_UPIN_STATE=%s\n", s, upin_state[s] + printf "SLOT%d_UPIN_RETRIES=%d\n", s, upin_ret[s] + printf "SLOT%d_UPUK_RETRIES=%d\n", s, upuk_ret[s] + } + } + ' +} + +save_preferred_slot() { + target_slot="$1" + if [ -f "$CONF_FILE" ]; then + if grep -q "^preferred_sim_slot=" "$CONF_FILE"; then + sed -i "s/^preferred_sim_slot=.*/preferred_sim_slot=$target_slot/" "$CONF_FILE" + else + printf "\npreferred_sim_slot=%s\n" "$target_slot" >> "$CONF_FILE" + fi + else + printf "sim_wait_time=4\npreferred_sim_slot=%s\n" "$target_slot" > "$CONF_FILE" + fi +} + +provision_slot() { + req_slot="$1" + wait_secs="$2" + + if ! wait_for_qmicli_modem "$wait_secs"; then + echo "No modem available." >&2 + return 2 + fi + + QMI_CARDS="$($QMICLI_MODEM --uim-get-card-status 2>/dev/null || true)" + count=0 + while ! printf "%s" "$QMI_CARDS" | grep -Fq "Card state: 'present'"; do + if [ "$count" -ge "$SIM_WAIT_TIME" ]; then + echo "No SIM detected after $SIM_WAIT_TIME seconds." + return 0 + fi + sleep 1 + count=$((count + 1)) + QMI_CARDS="$($QMICLI_MODEM --uim-get-card-status 2>/dev/null || true)" + done + + eval "$(parse_uim_card_status "$QMI_CARDS" "$req_slot")" + + chosen_slot="" + chosen_aid="" + if [ "$req_slot" = "2" ]; then + if [ "$SLOT2_STATE" = "present" ] && [ -n "$SLOT2_AID" ]; then + chosen_slot="2" + chosen_aid="$SLOT2_AID" + elif [ "$SLOT1_STATE" = "present" ] && [ -n "$SLOT1_AID" ]; then + chosen_slot="1" + chosen_aid="$SLOT1_AID" + fi + else + if [ "$SLOT1_STATE" = "present" ] && [ -n "$SLOT1_AID" ]; then + chosen_slot="1" + chosen_aid="$SLOT1_AID" + elif [ "$SLOT2_STATE" = "present" ] && [ -n "$SLOT2_AID" ]; then + chosen_slot="2" + chosen_aid="$SLOT2_AID" + fi + fi + + if [ -z "$chosen_slot" ] || [ -z "$chosen_aid" ]; then + echo "No valid USIM/SIM application found on any slot." + return 0 + fi + + if [ "$PRIMARY_GW_SLOT" != "0" ]; then + $QMICLI_MODEM --uim-change-provisioning-session='activate=no,session-type=primary-gw-provisioning' >/dev/null 2>&1 || true + fi + + echo "Selecting AID $chosen_aid on slot $chosen_slot" + $QMICLI_MODEM --uim-change-provisioning-session="slot=$chosen_slot,activate=yes,session-type=primary-gw-provisioning,aid=$chosen_aid" >/dev/null + return $? +} + +cmd="${1:-boot}" + +case "$cmd" in + boot) + if command -v systemd-notify >/dev/null 2>&1; then + trap '[ $? -eq 0 ] && systemd-notify --ready' EXIT + fi + case "$(cat /sys/devices/soc0/machine 2>/dev/null || true)" in + APQ*) + echo "Skipping SIM configuration on APQ SoC." + exit 0 + ;; + esac + provision_slot "$PREFERRED_SIM_SLOT" 45 + exit $? + ;; + + status) + if ! detect_qmicli_modem; then + echo "MODEM_AVAILABLE=0" + echo "PREFERRED_SLOT=$PREFERRED_SIM_SLOT" + exit 0 + fi + QMI_CARDS="$($QMICLI_MODEM --uim-get-card-status 2>/dev/null || true)" + if [ -z "$QMI_CARDS" ]; then + echo "MODEM_AVAILABLE=0" + echo "PREFERRED_SLOT=$PREFERRED_SIM_SLOT" + exit 0 + fi + echo "MODEM_AVAILABLE=1" + parse_uim_card_status "$QMI_CARDS" "$PREFERRED_SIM_SLOT" + exit 0 + ;; + + switch) + target="${2:-1}" + if [ "$target" != "1" ] && [ "$target" != "2" ]; then + echo "Invalid slot: $target (must be 1 or 2)" >&2 + exit 1 + fi + save_preferred_slot "$target" + SIM_WAIT_TIME=2 + provision_slot "$target" 5 + if command -v rc-service >/dev/null 2>&1; then + rc-service modemmanager restart >/dev/null 2>&1 || true + elif command -v systemctl >/dev/null 2>&1; then + systemctl restart ModemManager >/dev/null 2>&1 || true + fi + exit 0 + ;; + + verify-pin) + slot="${2:-1}" + pin="${3:-}" + if [ -z "$pin" ]; then + echo "Missing PIN" >&2 + exit 1 + fi + sim_id="$(mmcli -m any 2>/dev/null | grep -oE 'SIM/[0-9]+' | head -n1 | cut -d'/' -f2 || true)" + if [ -n "$sim_id" ] && mmcli -i "$sim_id" --pin="$pin" >/dev/null 2>&1; then + exit 0 + fi + if detect_qmicli_modem; then + if $QMICLI_MODEM --uim-verify-pin="PIN1,$pin,session-type=primary-gw-provisioning" >/dev/null 2>&1; then + exit 0 + fi + if $QMICLI_MODEM --uim-verify-pin="PIN1,$pin,session-type=card-slot-$slot" >/dev/null 2>&1; then + exit 0 + fi + fi + exit 1 + ;; + + unblock-puk) + slot="${2:-1}" + puk="${3:-}" + newpin="${4:-}" + if [ -z "$puk" ] || [ -z "$newpin" ]; then + echo "Missing PUK or new PIN" >&2 + exit 1 + fi + sim_id="$(mmcli -m any 2>/dev/null | grep -oE 'SIM/[0-9]+' | head -n1 | cut -d'/' -f2 || true)" + if [ -n "$sim_id" ] && mmcli -i "$sim_id" --puk="$puk" --pin="$newpin" >/dev/null 2>&1; then + exit 0 + fi + if detect_qmicli_modem; then + if $QMICLI_MODEM --uim-unblock-pin="PIN1,$puk,$newpin,session-type=primary-gw-provisioning" >/dev/null 2>&1; then + exit 0 + fi + if $QMICLI_MODEM --uim-unblock-pin="PIN1,$puk,$newpin,session-type=card-slot-$slot" >/dev/null 2>&1; then + exit 0 + fi + fi + exit 1 + ;; + + set-pin-lock) + slot="${2:-1}" + mode="${3:-enable}" + pin="${4:-}" + if [ -z "$pin" ] || { [ "$mode" != "enable" ] && [ "$mode" != "disable" ]; }; then + echo "Usage: $0 set-pin-lock <1|2> " >&2 + exit 1 + fi + sim_id="$(mmcli -m any 2>/dev/null | grep -oE 'SIM/[0-9]+' | head -n1 | cut -d'/' -f2 || true)" + if [ -n "$sim_id" ]; then + if [ "$mode" = "enable" ] && mmcli -i "$sim_id" --enable-pin --pin="$pin" >/dev/null 2>&1; then + exit 0 + elif [ "$mode" = "disable" ] && mmcli -i "$sim_id" --disable-pin --pin="$pin" >/dev/null 2>&1; then + exit 0 + fi + fi + if detect_qmicli_modem; then + if $QMICLI_MODEM --uim-set-pin-protection="PIN1,$mode,$pin,session-type=primary-gw-provisioning" >/dev/null 2>&1; then + exit 0 + fi + if $QMICLI_MODEM --uim-set-pin-protection="PIN1,$mode,$pin,session-type=card-slot-$slot" >/dev/null 2>&1; then + exit 0 + fi + fi + exit 1 + ;; + + change-pin) + slot="${2:-1}" + oldpin="${3:-}" + newpin="${4:-}" + if [ -z "$oldpin" ] || [ -z "$newpin" ]; then + echo "Usage: $0 change-pin <1|2> " >&2 + exit 1 + fi + sim_id="$(mmcli -m any 2>/dev/null | grep -oE 'SIM/[0-9]+' | head -n1 | cut -d'/' -f2 || true)" + if [ -n "$sim_id" ] && mmcli -i "$sim_id" --change-pin="$newpin" --pin="$oldpin" >/dev/null 2>&1; then + exit 0 + fi + if detect_qmicli_modem; then + if $QMICLI_MODEM --uim-change-pin="PIN1,$oldpin,$newpin,session-type=primary-gw-provisioning" >/dev/null 2>&1; then + exit 0 + fi + if $QMICLI_MODEM --uim-change-pin="PIN1,$oldpin,$newpin,session-type=card-slot-$slot" >/dev/null 2>&1; then + exit 0 + fi + fi + exit 1 + ;; + + *) + echo "Usage: $0 [boot|status|switch <1|2>|verify-pin |unblock-puk |set-pin-lock |change-pin ]" >&2 + exit 1 + ;; +esac diff --git a/overlay/rootfs/usr/share/sxmo/default_hooks/sxmo_hook_games.sh b/overlay/rootfs/usr/share/sxmo/default_hooks/sxmo_hook_games.sh old mode 100644 new mode 100755 index 49335cc..d61c744 --- a/overlay/rootfs/usr/share/sxmo/default_hooks/sxmo_hook_games.sh +++ b/overlay/rootfs/usr/share/sxmo/default_hooks/sxmo_hook_games.sh @@ -9,6 +9,15 @@ export PATH="${HOME:-/home/user}/.local/bin:${HOME:-/home/user}/.config/sxmo/hooks:/usr/share/sxmo/default_hooks:$PATH" . sxmo_hook_icons.sh +GAMES_CACHE="${XDG_RUNTIME_DIR:-/tmp}/sxmo_games.cache" +if [ -f "$GAMES_CACHE" ] && [ ! "$0" -nt "$GAMES_CACHE" ] && [ ! /usr/bin -nt "$GAMES_CACHE" ] && [ ! /usr/local/bin -nt "$GAMES_CACHE" ] && [ ! "${HOME:-/home/user}/.local/bin" -nt "$GAMES_CACHE" ]; then + cat "$GAMES_CACHE" + exit 0 +fi + +exec 3>&1 > "$GAMES_CACHE.tmp" +trap 'mv -f "$GAMES_CACHE.tmp" "$GAMES_CACHE" 2>/dev/null; cat "$GAMES_CACHE" >&3 2>/dev/null' EXIT + write_line() { printf "%s ^ 0 ^ %s\n" "$1" "$2" } diff --git a/overlay/rootfs/usr/share/sxmo/default_hooks/sxmo_hook_modem.sh b/overlay/rootfs/usr/share/sxmo/default_hooks/sxmo_hook_modem.sh index ffa6804..03c96d8 100755 --- a/overlay/rootfs/usr/share/sxmo/default_hooks/sxmo_hook_modem.sh +++ b/overlay/rootfs/usr/share/sxmo/default_hooks/sxmo_hook_modem.sh @@ -16,38 +16,31 @@ newstate="$2" sxmo_debug "$2 (old: $1 [reason: $3])" case "$newstate" in - "locked") - sxmo_log "State is locked. Attempting to unlock." - if ! pgrep -f "sxmo_unlocksim.sh" >/dev/null; then - sxmo_unlocksim.sh - fi - ;; - "enabling") - sxmo_log "State is enabling. Clearing stale call files." - rm "$XDG_RUNTIME_DIR"/sxmo_calls/* 2>/dev/null - rm -f "$SXMO_NOTIFDIR"/incomingcall* 2>/dev/null - ;; - "registered") - sxmo_log "State is registered. Checking for calls and messages." + "locked") + sxmo_log "State is locked. Opening SIM PIN/PUK unlock dialog." + if command -v xmodem >/dev/null 2>&1; then + xmodem unlock >/dev/null 2>&1 & + elif ! pgrep -f "sxmo_unlocksim.sh" >/dev/null; then + sxmo_unlocksim.sh & + fi + ;; + "enabling") + sxmo_log "State is enabling. Clearing stale call files." + rm "$XDG_RUNTIME_DIR"/sxmo_calls/* 2>/dev/null || true + rm -f "$SXMO_NOTIFDIR"/incomingcall* 2>/dev/null || true + ;; + "registered") + sxmo_log "State is registered. Checking for calls and messages." - # kill the pin-entry dmenu if still open - pkill -f sxmo_unlocksim.sh + # kill the pin-entry dmenu if still open + pkill -f sxmo_unlocksim.sh 2>/dev/null || true - sxmo_modem.sh checkforfinishedcalls - sxmo_modem.sh checkforincomingcalls - sxmo_modem.sh checkfornewtexts - sxmo_modem.sh checkforstucksms - if [ -f "${SXMO_MMS_BASE_DIR:-"$HOME"/.mms/modemmanager}/mms" ]; then - sxmo_mms.sh checkforlostmms - fi - - # An example of something else to do here! - #if ! ping -Iwwan0 -q -c 1 -W 10 www.google.com >/dev/null; then - # sxmo_log "ping failed." - # nmcli c down "MINTY" - # nmcli c up "MINTY" - #else - # sxmo_log "ping ok." - #fi - ;; + sxmo_modem.sh checkforfinishedcalls + sxmo_modem.sh checkforincomingcalls + sxmo_modem.sh checkfornewtexts + sxmo_modem.sh checkforstucksms + if [ -f "${SXMO_MMS_BASE_DIR:-"$HOME"/.mms/modemmanager}/mms" ]; then + sxmo_mms.sh checkforlostmms + fi + ;; esac diff --git a/prebuilt/games/usr/bin/snake b/prebuilt/games/usr/bin/snake index 8bdf63a03475762a15d5765ded9655c9c6652892..696b6e09e887091303a871184dedd07cff1a28f4 100755 GIT binary patch literal 13720 zcmdsedt6gjw*NjS0RjX}P+J5B08sYCi}<@?Y{xKkS$P zO~`k~y7#dN7RJ7XdnRghSHki8q*5HV;!@-C;$T*6NFwnkw|=rq!hILj@RWO*O2vys{b!RESsSdqtQHdNOyn zu4qa{WpR0BslLWkS%Jox%MBIZtHDyeshkxR8Y;?670X!B+?q#K~W((0_*s>W<#|rcHzufmF5-t@@#Z6Vgv)KR#~^uR8dy>BrBS!uky0) zlIGT6G*CTV`O0dew~!f`j5^JPXtMz|L|0cE?p6^+XO`=$tEmLHhPP5WQ+fH_hE+3+ zA9}Xvd$Fu&mZ7#LYn6fWW|X4?eQae`R@G&onbZ)P8aWkJE1`x0b?Cfh=E{{7Wu8VB znk#E6ODoIK#7rYP(twC6gSiG>NOeXFJRRm~ZgH{RpkHDtHkFxHt*E4-{7$|rl=~&F ztauXrR$N+DRa|9GxvTcQ=u}p1)}vbPxnW*fhG|`Mcbee9ETvg#t|?xjH_-&aM8gza zc2|c~DOag$co`C^Ol1uDic(YQbe&B6vQk)apS5H$*?R!5n&OU}k(pVXmORP3L^+(E zJm^3F=hpaVdjBl`hirbQOFjU{rs1q2pM%2uF?Ft8;4#nnMgGsdi0|>>nTOqSmj`=1 z$TaTw&moUQ-iw4`@SO;U!$%^F$2mioz?ev=X6!a$68st9J#cDdgm6magm8uwghB9i z2yw_q5(YCCLx^okMTi=YCX_RlNQiRB6T*v0AshyOgba z*@X8nmQRR=7ZSp8oJR?Ohn8QV#i!q{%YRL1rY zPGD?5VH#sCgm9AICd7<;hj21uM+m1dW+6<6?@I_L=p^AZ#y%#T&R84aLyUD0Vh(VJ zS?l{(I8D_Ij9J$Mm!w_4y%gT{LYK_;=SvEd$3A%BE6HCsf2H{L$R#f?^Wm8fFZO?@ zWAov!`0!mm{23p<&4)kf!&`j#cYOF3AAXMyzte|r^5GkN_)R{1y$@gO!&mw6MjyV! zhcEKs3w`)(A710br~B|JK767Nukzs|eRzcrFZ1D<4=?ul^uG^(#fR_m;m`Q+Z9e=- zAKv1_zvIKV`0#st_?wWlIAHE8Fr?@+bsqi~}weUc#tJ`zsbc67rF6lto(eCgYQ2rvaUBG4~bICD|J~S-}O6izj{KJ)}-xj zXDX+?4Y^a2Rtv|(-E`Ttt$Maid?uw$+^jez4x|+(@D7QxQyh`k-YuE1R*+1Oo>rW6 zqMJ?lytPEFE-4B{T7a(ptxnN0jn{P`c8x2&{#wKIteY>azUtapk*O$c#MZN-G=9k)5uq1)?}?6hQN3@1 zF7xIKA?fPaMyI_9B_&2pbCpzwQoiUtA&Qc@uG&j)JZ&ZmPWvm@$mVpH)-<%>>1!v% zof7V@9D?-Sk`8e|jebrEaPSkT^f`|+)WTgKr+o+V?2!}bA0o1OMe1?LfoHLFu1+i(!U)&YyrO%{8I4mq~#1g2>wCvZ>Kr!O|IIxYnpzI z*|y)|Z1>$_w)sxPr4}38@Vq~7u*J}!>V2x&eowxn75zpiIV8r#?PRl((Z4{8H#adO^T&oJJ6 zp}0AQza{V2Ugda=xOx1Z)~Xmw|0ngVk*Rauh(aG{_p(Gw|H*o?dRiQv8l%)L1vj6TOD4C^ukUkn}W5`ei#y=Fg{~PTP91a`V*ymg}ly~WQJH$QY*b3W*;&n(v!EMmJXAw_qpH#XF1uYmn+zu|0$ zZr&8mqW)w-W1GJb{WAq^9*YshScNw(GF|AFryg?zr=9{b+aq_vo8>zen_8^Ae4`_{ zF>Ht4%JW}lRpU3{oWdH+XIeRld}~-E@~MNHINJ%)e3>ON+m`i-I;Kv(?6lA7l^CT- z>jrAxEWeEY_zmdwn}XukouXplS+xF^@RV?>I~@I0h%sEyMscZcIPEX>q&D-@{ka&?fE~jvY(Q#%gS{ zk+MfuU@MekR8S7qU@7f&az~&t=W(`$M#gFXyoc5vv&nB`zn#n_tP!HBJH^_`?(xla z)zE3b)x#3^w0DYSlP{q5YXrs1H2UiX{&sL`SEpDwIeiDs6)|mxwhLOqWJY#YC3Q_} zW=VfXOuEN%`{l{apNTE%;h7&Jb~IxD0*T5zaha)2Z?HyL!l=g7J)`zH?X^9lwzIL! zc6oigO(mI~6oee&B)8?@=2+v=ZwdzAsot(-{gXEo3>Lb$>-Du`S%1uixUnytRZT4# zyZsFR>Rd5i5h_H^cmRHElGEuV`Wt*`f@K(cwjBft8e*z_;s|CUU3 z_Ll9fw^#nJ(6xaluW@7V7-s60_~TZNawv94<0!9-N>@m^LS2j8PpE?KcIp;PA3sP-}LhT6a3%i|DTlkWAe=Y z5$*bCeez@M|Bwzni}H{6jidgjbSjtXM`J-UjmJ4rs@SewH}J-Rwo9ov5nsGIs)5r* zeADJS5&nF&12f?DOI$otakf$7pD(d^4%`UwU2p|9X9{Nv7Y|(mmr5Ek@xZ00@?57= zX3ZgP{JMeH4n(}d5{_dpQR#*^refA~bq{Y&)fEinYW}^OjX6HJBW0I^jfeN<2>f_X z9U>Nohb^9`pb>Y3Gxm^6xyw$=Qc#SQ?M^#r{ z%IJSreY9UD*{%&~D;OM8?dGN6oyfaxpya^fJohfO2=<~8H;6QuD{amJ+huP2h&CQ| z&Og9xop-XaR$^|+o13&@&D%4agSq>Edy!U=@eZ9`+Kc|}s`+oVYpSbV_gr$?Q?5?Q zi%yu5&BcFRR4YW2zthdZC*Il3{<;G);TXDx; z4cY;o-n&c#76PT99^8M8ASoyc)P{TUF%Z2kG2^bh2q*=0fZq)I08|c22F(Fo#q)-* zKp%jvfp&o!K&wF6peEeE*WymzkNbHnPyzZB{4P)w=pyQVPJuaRW1*mMNlu+$)TwO4 z*8~UKg4p&#n_>MbEZ`=J5?56~UviNE%Ox(yrN}Tp`i1Es~}=qBPoR z7q0}gu=fX$cL3SDKvzJ4*+F?hxwV)T8?~ziNn1eP=_1Knkuz}rZas(R2xmb1k;evI zS$1$9X+}q#9Tt?!SzqOH6#jWypnnili#$@Sm+(BrVfZNd(Y0%ZSKkfG`?^T|mKElhc;>n*T!IX#QB{ifS?gNZnFTwyQFbo)9^jx7&rZP04pY6? z2+c)FZw2NAp${m3)0OwH$TWK|v({S)P)7MN(ET^$p`gyq9o#qm*x=sr+Wy9j)xwAU zIq{#8k8xNrT@kn0!Ftv^Bwt$YwOIEv&MJ|gz4xefymFJaqm|Ribds?#7vLdSZVMk{ zauwJjA*Lrq4OsJM`vhkAs=*OsplBvuPsWSlF?qQf1$cB7UTIm=*sSYMDdtp9bD zTF2sX!+el`mrHHZ-fZ9Ut_pdb6V?dFy8{wpb4OukARl(0$A`VIJq)EQ-siRq*|%Ni zwh!6&TxaS?owSQf;nEJ>NL+WZZ3OJGarXB0+JW})9Q19%UkCRlM5=ZoOc|O~;%^&$EN^c&3E-5xJad1nQtT{I9rGo6z0>PkT$Q zvnK3*nb`T#E_8F+ow&nD98zU{WQO&tCuF%no|*@EYRwkY0r+GDPagKa8rKn4E> z_w@re)<3qfWs`1UPS}kN^G52Tbag_IZhl_ajrD~cqM|{X@==ju;&zc)qK%Rg^5l=e z<7T!E^)quCbu;tW=sF?f;2MFuQNQ|>7_)QiA0&OM@FluD7Ah=efsJ`OWnh6VNFLC* zs5K~_bMW04#Fz%AI)`36(#OeJAICD=M#1A{V+Y$5j(}fC8d$<9QPJ|Xj_V2-m)v%& zPb$f{CHeMzP*E#4;l^i@rs2BdeNuVGE&1&j8#jz^ZnR4p-oC-s?P-nDeSPj# zc=-{IfT}26p!I|#U|ftN;I>+n%B4+X#EBMZA176dy!^5HwsuL==Q?ja-fItNKCKJf zPIF?Iz{dTqeU7gDt&uaI5crvpNOv;UID}^b z9b!u<>AZG`OJ=r{>v{YxUys{L85@ne%Dks>Pca+OmNd!MRN%*Iehak;PdspcVZxAo z5n8%iGGzbc+D)`@@9cp*Ia)ZenpT6ijT+m(uSeQr0o2Nk9pc;SAw0kMtefFZzf;|T zyNYx=*C4;N`38G%Hj*X zfy*!S%GPjJjbe7MEN^yi;Nsc6(xlnF{PZ!`2QvnpqxnH+Ld34V5kY)!(BrC9#q|$z zetz=><0kE{K6%j3Zw{;7)h7+&`&2w)Yx!P9?ykOc#J`Zet1pGpi+1%Tl3esj`>vo7 zt)p!cF03yxIIitb0oI1h@a-^}Z2CH3yY3{5ik$uv!?$tS3$d?psgXsp39*iV3e0fJ zX029~ZcY$oJqco1JcX0E=ZoIL8{aQZRH6|`wOL0>_ z;<2Oc?day`mKftr+$7gLO5uOaP30Q6>9|3Ht*rPHoF@0@BOW13s`%Jupr3E_JeDA!Xxx{`w zWaoR&BNxrPFHjSs(Y+R=>E5}QrsEsj^G?@`dCASro1mlmyZXf1Rwc(hI7gvTgimFS zlacEPo++)olY^R5Yu&Y9>#BVXYF{vTXBDg$OLT6eIPBdw%!V#$A5}fvhcc$l3 zIrMbUt;4o*2@EAEGZYzNsj=x!d)A$4t~&Gg580pTfp#jjN;;L+%5)v?>UH)T>RYlz zb(-d?Gg%p3kfT^9giqBd*l);I+#R>h+iC80kxop0j$*A4o(i39kha!(_RD;r;_&k=qw=G2)(ZL}sWI3Xyaj8GW8+7{wt|hq z(;2=|p&RD9X`bq3u)V7Xdl?tFmCEJfRhWN2>j}*b_MD2}l@@|iamc>4hqZeBWR<7f zFGgXHKK%2Rsk5Z&srk6IKJm1`?oXeYj;CNLMckODgwEciq|V;)(>r?~2<_}mj!w&E z#()OYjI9>-m8gx{o1No0hveI1Xz{V$!02SXuK$nxNByBoHaH{^C%Oloj1tb@d)&Hf z_zCeubz;&xt%>U8dU)=R6JkrXNk^-u+{$oc&dtC%pZcnUo4_?CS91=Qz;DMB%hJV> zTHJC@bPrA#nH%vBCw@?i4Q(5Zw!Qf+s}DwBhJ*0>&V`{KlzVU&+WQsSjwjQuez#!E zdBi=J^SsNCd@i>NUdV=`O?mBNhh&WqVGP)cw(=}7%5zR)gS%;eIKBE7x) zmZU>_RJVy&c1l>{OTt$9Ta;JFaXq|9d z_@$9NQSw9Kl_ncwSz^Iei&Sov2Cg!u36Elzlk~+%CI~#v1^A}=Upe@1;F*ROT>a{a zqt@5Bf~#Mz`oNkT3okG*(4mBP8N>6A*q`G0emzsm`=o(<7l*e7VQr6!X{zV7V*3K1 zIcuPOK^~7MTXfG%>Y9i1X_4u9?ew;};NVB{r+fL(%$pa28sRAxATCD86jKx@aH}xs zIMontz2A)$d@_w|yd2Vmteoh`IzemgG9SfAY4hAq;WBb3`Hk3O_-Iw{KLpFC(I+*R zn@!bOmiEK&Dl^Wff3Lhrx!L`3g@5U{;--<7|7mw$>RKTr?HAgUt;ewc9>d=CVD8y_ zR}1wHi6p{^xm$JAs#Y#a#Xf4o&eENjh`FXJ!CWi6wevE@Zum!9S!<~7;elyy(ip89 zNPhEAm*Y_8BGVS_rgo~yv+Xf?kH_H5E{R6G#QGOLQ=Ei1E7Gn%ULLaBuG%nHUW;_k z9hyrepdFxG&@*^fD+S&{x(#>E&p`*lmw^iLzIOw#9B~VP5uj-x5%GILUATL)!_T#3 z=D~CMa*Z&AcQNv#cyg`&nJBk>4!;y$rv)=nzUZxg$$iMvr$L_m#MmB;{p7URaeP}= z(FKWhGykdBmG-H4MSVuQu&oKL-lCPaa%!gDXyf47a>G7uWoij{JlSj;mnZMzcn*FE za)uulJJg?GMt>sq4F9m5YvkWxTNPNNJG$euu}1Ux?X?2d=|gSeh%QOMLcsgO}50XC@^(%+G=QN&AlvsK8L{^nm&R#x```*w6+`s6# z{EL?{6V##T?`YE*?d$FB+TXWtMsH8M%37DAZ({JyTtxTW#yfNy_|2e+Am8`J8l=g>+3MJ$lVdh@xCb-)oVK~-B(6}Hf!!YVhc0o&&`57Ni`>H?);g=vKbjOvs48OvgWwrXJsu^Q4Btj zs?aYtOjDKWD=I2$RQR5yLRIGeFerr0r8MZfbb!UPvgQ>poLRguXO>W~uz21hg;_ro zS1jaYNd3E0u9d zrBWNKRMP*k`7U*3_yQM(NEed&$Y^DeQW+u*Q7RuHL|7EZOJyi8C4BhEk)xF1skl5LgioM$ z$`o;Fv3SZ0yA%1qkcc>*pA@G+j52&O5>a&clsFCsWU_SBhyG8+&oGXcKZt0=E7Tz& zarhT9PKsYl$|Q6ms>txULmYLi2K`I(>;IK``}`lc^(`%L!sEd+E*F1*s>j%u&UJ4- zJigx8>s-e{%(pq$wd@I~-wpiO>0GDkcdly#b`3h$v1dZ+C)z1JxPCX`zQFpOB5-d& zeT;+BW%a^sw;h-5AMtYo`{T5aTob~|4DN*s9ZqK@vdM;kFF_BlZ%Ae~U=-wAK&r!!4fI{OH=IFb z|9>MBIdKRymfk?)`wu~bK15_9I+Mnk`jm(^UJl>FO;aUilvkN5464*g$rF-O#(I!t z;KL>6`tXl&w0Q?ic_4!Yh6H8ExL`gcK+Z= zehEv)zHCTdRW!JYg)6UL+d!*BfIpFNNb+fxi?TY3K|ftP12)vNmLJ>>`DGKk;~-wj^9M#Mm`Y6H*+9ik%ewBJ+k>b(NqYtI55B5#_n-W~|F zwNRB@e}D4>dX(>N5I*g6>CyM8J^w_{0v#F)vgi7H9q7qW5t;`S$QJeChajpS>CrhN zCcE_@x&rADeFF08F%1Mv@Sgy@fpjQzfXFV{Q)!?BJrx~#o@v1I?=gxECGnc4sB z=Q+=Ly26{^`>yq_cdhk)>-uHUn4Y8MIF7l3gvBzFd_oyp2Hcd4FDaX~jH#Fp(!yC7 zrPt&vV9Z4+P$81ekQb2hx=4i#M6PrR(&{0*2t_d>N=LMV0Jp;~ltna)VieBwYl|7X z_CK7ofM@L0IgC-cln#;ILi#PF6Uktdh|*nkD1_{y`G_ZSrLDhYDTnwsf%3yV%SXC< z`Ti)7i1JhY34=k@&Nb^cuoqrzTT#+HaNhjlHDAfeKaD>0aDmvJE3r#iR-$x$u=r~=*eu(#4Jo%CP! zNDuNTPwl3!0{^*({=az0r5^IIhrKl(a-)a-Js$EG9{OG$>A&_!-{e+bYTy6$(4X|s zFLTo;Uv71iqrpGnCab`=yUAq#Sr7ZWJnS1hWYHu4Z#?994|~6JOILxf^ROrJkRv_h zF1P$t-<2NeuXvRAo`-(3hyE##^bb7J|J_4Yc-SBF$p3(c{$D)O+dR@+Ab%F+oR@-F z0Q)oK^%$>IOc0INI!n2}wwBeIYif;VO9d+~uG5?JWtL)#u}Z&U8DymEHyi6L`r6`( zT3waC*l4b(W>xyCI=zJzXBMt?(&V>gx}quO>S9xMna*OY zHh-t+3Z2o!it_a4a-(@OD=M&5*Xq}yIjl&i)%`dhP1cz=qt->aHF~pPtgA8Uwy~m| z>gvj^HQD-Yb=#^~QKlJQFsE9o!Ka~Yi$2d-U!|*oIlblnwd<;Dt8}Ie_^}RF^>voo z>TUNM&E?fUW<_gtH7?d^v%ms}qas?<);fdB+?q5-ela4tR*$;Cn|1ozl|dnCCS6?} zmEhEH6|Xg#Ot+g*$MA^YyrS>KvZ8hRdQ1AFddiz>f{)y6rB&B#OGSgIA@uY!%{5!0 zh61&4)8^Xht>*HXM&{L4TdK>dO=x180WQ-cqDEh9fwQR2Xu*tYW|~`EtkdgCjm5@t zDLQFaFgs5>6p+EL&geW(K5Ic-}2m={Y6QYp{o>Gj6Fw)z2I*N6Bs*4n8?^m zgh`Bb5+-B+NVtTt*9ey~_9h`Vu-$~{YVQ%QVC)3p-He?i#HP205F3;;gsadmj)p<4fH5A~!zIjn8o7)oy%>8=vIH$GY(5S@wYu?xZhXHR zf7XrfapO<8@!f9xYi@j}8-LJ^f6k3>bL028@w?pkCO5v`jjwUz4Q_mi8(-wc=ehA2 zZoJx!PjTau-1t~GUggGzy73C|ePYQ%ro#8i24V4#HFvo4bWxvJ_&~V9*qUo)61(m9 zV~+_^t=)EWv_x&Uof~B;yUlB?Ph7UJK~R+AXlLE|M34AHQjfS>QBaW=%}+^`ePTpr z?~r844neXyd{uGWdqZr=7hNSWF(t)|)K|ZL{O1NX{}kf9_i@puhNSbo_RWnsHN*>j z;$Vi|_N&o8@vB%)yF+LYRHmp3yKU8&-4;AHOIvfSPdu5zYopBDk}v$QG`i{2(Q3U*uJ z=$t)s4)d*xv_7q>m?(3^5tRuwTX{hL0M+Kp#?Q)1#uoOR9!&4T4^uo^p>RFZ~TE`e;f4UR^cv%zI)bFFzkcH4>3 z{xX%R)C`X$`AqRkAKb!P|6_=ubi2(uT2h`nxwKAY>Yi9CDK(erNh``sdKnWO-%;5; z!Sl~UXMbJy#D2;1`rOG1a21jmedc5$xJ1dta=UF3Wm4H~qs;o*EoMFc4YR&69b?M9 z#&q2iGES{MEy|kgwksn(9a3#*39|-IuQsxHHZ0)-TAC&jA7A|#i!=1}iI%(IOW)kf zMYGo&Z4i80WaAv~*Mc5%SMKGVJ~C^hq(Sg+;iCDQlB=@Trf3$Gf@g7gBw*M_!s2D^ z?}`yoz8xKvb>~@JS#OEYmP1l&q(490#JK1@ad!lN(|^J@O)c(@_iNv$IoMSak$0Z8 zvY3_HFxYu@gvDl`CtI@i(_%z&nC9VL^pX|Zg;2C^*C>me3(}eOe>JfYo zp}to}J{h1|v^BHnH4{k%d$g_E4~F<9er-#E?5Vv2ed0Y&g8m>1r-tNOjH8OPqMA(! zKS94yjjCTEDe*tn|-!#P-3kLas`Ep33~W87nI4YC%@?vuPk@ARMSIN z>^2eJ`!oD?cKHRAMQMj$aeAxqn(^qrkF&tWYgI=J)4L}so6GQI_~D%rJRQD3+mGiy#+NPu3V+tmVUZ_=RPmM(Q*=^5`6#cbN+_jv>+7lt$1&lHH?d2;gI@&aE zpgapwwhLifeL5lx!ob}f=S8MSX@5#1={+w>6?-)=_P`fQn043GZwFY+<`-G3EIO_v z@n9T0c;CoE16x?z^T@(2J-L$sb^A5U`gU{8+4_ZS;&^l9LiNPHX4T3fNPC+529?%h z+|&Q`^DZ<# zPW$8ljcK%YVr6sgWF9#6M0oT6x!#z%eq{z)JJ-?Ld@hGu!)drV_#`>LiTnP~KTH4q zT;CtN>Tk+$)#R(3lIR^mX-V*DQPSY&Yc zEWR7Y;vPBwMplDRU}SNj7r500y4SO}3z!4DKOOQ)-m9BE>>v2)kW8T{W!5uI1(!K~ zR?ji$x0W1(-u}|g?9eF8BnP$&H-&SC4ui6VAGfER64gx`#S|7Q$S``J9`+qRA$dw0 z5mjV(0l5NO+qdLiJ|R&E^45qXyX_~#fgP{G1L~_!HL)1qaVg{bxutFCrk;)BQdMiZ z*qaC3tGU+Omd#`Qw3qdXn;s8n7lpH;A}LG=Xu*6o70^!7<6-TZ_qxJE16o|6=E$Xh{XT8X`q4MvdgE&Wt%RauuMKKk#-n{X_B^JejyME)HOSx8iGR2PF zcmuJJl9+Yq#_>y)sKNOy9qGY6Tfj+%Pw=Nlc)zq87rfgwH+n0w;z~zj*jNT9yGW?w7p`HF@$<%a&eEb%I_789+IpBv6==vA^KF@;1&c z6FA4zf}RB30}2D>fn=aVGx9l{0r!Dkn!)+Nb)XQpg64zH zqCGGBF-D^nB$s4v6AW6FHPHVO#x*Z~jWZWJPARj@vil+~{FqNhJw|!W5Em^&YFLfpE!LF- zJBwh)3Oixo`+>i}xi|v6>^RjMBeN*(m{+DZd_ei%9C~X|ram;ly8a9wU4#A=pnloLTR;HCKjJVJz=5^l^PNHGC)=>WlmH!lXi%oIk4~88W_U8jKB*Ulc_~B1$ z>xBmu`3m{c?ji1-KbA;z>@Dw%T&q-GgV9^!UoUivtpBTlcGT_Hpa#$;&|I|qv>4p| zCPrq+1WLZELL$LAscO%WB2b*b51wgXebb6;qob7 zvs1&1T=!&ez__Kh4(>l?Xab>GMwzrK;s@bIjUOB#e2gXTuxB8GMGk63m8IN}xlyHf4MzwsYW z_?2?1T_ulCNqD_3OrW{!z-)b4Y#ipV7(boemS_K6S;|{J=zDUI?+jvSJ7nsX6#oJ0 zL-nM0DIr;$Dg=IE$A5;?q7lzv*32_tgM7!@$(^O|O@uF@63@?}nxn)tw%<1ky)dak z@W$v3Gt8RtC)ewZ5s$fYkabPtz0DPrbpl9d(VurF$xk}D+VXJrj1(3)U2zGn7O@LnF_0FQbO$AJ)vS!(o-6-x0`WEvSH>I zDzfKJiNQ^0wcfw-8~2h(TZ39Y)=KZpy6JWGytmI8?nj3O@l$C>TY5lGybvmKN5=+k zRz9fx51bKB4RIUTzG>U5W5WYM?Oq*0A{Ti9w)P8b;rqQljxzzRy*M5Doy6EaiFZ#2 zK`(e=KF&gG(vDm|^iYHFvrg;Ufa{0Wk7WlZkL5gu^TiIV6@DeiD>-EP45yN5TlrX- zfp3j5T(0DB4*CqGv({6W7*Ax>dZ>)*hlQZ@wjGA+X4fEJy_0{I4liB<# ze$jRzV%IC8fA=e*qF+7H*nA>We)x!}>XwX$@<+tz{v+c2?jz!zz*yiSU_3CPf17Yn zrb>QcG%5SSh^+F$i0^i8Sglw;BFkPs;`QMA5oz4|5q|ZZW0R?q_WAszJv!*Xc(4~g z;=M(ctQh+s^T`{}7;G+SqH{b5dTcZf$=0tFFG(D zOLEaCy@$L*yB1g_Tolf$^^dc=%C81`%T|lR2__qt`jlUdToV>rB(f4N`2oy}vL$y+ zNk33bN&8>aXhi9bXi;X07QOr>=T5NU0k**Z@Y6Zot=Q96(J65n?<3eRy*s|Fq_g6* z?Vhm%Gx2*yf13SM%;G)^H8tj`Nm@dx2%2vs( z=Hl-9{Glwi;GvubVTZ8ZaIsRdH^{)ZM4PEpyouR>cOM(3ZCadzr)_VJ7G_aj70_3m zv!I{Bc@nP2EO_W4Z|e0sbJiX(J?1!1PusjkD-B;(@~v?Oor(G`-m{?RhK>GfF?&Tyrs7*GUw#t@Zm$5lo}8Jd z{s3GCdKmOHh=Ddzx(a(bpbGEhrJ&uA)u0BDA`iw}#Dw)js4DQRUFCe+d06M;N>)%YzznMEh_O(L%fGWfJ$4&k?Gz4mfZ zeCw>%QzOi88t*cEvb<;3FrV9Vt{>*yY1`xo>)L^L=``o&1Kr<2BkCUpHBxEKz!uek z(ix=ng5vR7+ktrH?Z7!Rh;6Jx#&*?#^lF>*@l${U>33U_;UWj()wu%|Gl(U~A!A$W zK!76@q~+$Ps}_`#ph+(%BsMQ~16~U;wp^8;Ua(;;v20E1+H_U!ed+m*_;u;`t0)FP zrJ8k>`c98Zc&!Ofky&o77 z60Uqesr03kEFK{!$bUWA2?+|=;LuabH%9VOoUS925k zaU9uS#(Vh&Me_XeNCje)@)bx#736nEaxfs1rNA!zt;AO#$NMKD8u5x4U*AZ4d>2Xa zjm{Vc=b@?$KchvGL)Gx>|4aS#&%fuIJ3Eh1mDr9!d*ji27d5>)VQ-{q;JHbABYVQD z=@zi_sH~~mW^e4V+Z+3*DBicJ=$2ED^8OHh@W2lq_`w4|c;E*Q{NRBfJn-M?fd#mi zb1D?)1Qf#ITti5AnFzyywD+g`i2*>mw+MB|eI{JraolYV1Jb=FT;p-b*Qf2(dysh+ z1@`D26z%)zY(N1~Op1dAj!ca5;WfGAPB5J{h8_Q%yBSvtE_FJYh*f(!v>Jsmq|@xIxG`I>61k zdvPlB^7T%YaX!57EPp;oI-3jTLby4SP%ey*;O6nscyU!{z->&6u9PLZv2A zi-&z(m9Y$ESHq^$R%u-wODLQW56}OXpE6PmmNYPI`dQ6q(|eGs0V|S#<63J z0%_c)%*doi=3&1@eJQ?@Sba4+DK)xlJ>Aj-sL=fYfe&RwIhSE)dxx zJ@o=7(VXoHu6DE{0(v!%1Ks~u$EEAi`?XWgVebjpBXXsYO&5OO}% zkLVMSOOL4`po7!eOWGk>L_VA;?X{OLc(5k*lB*C8-S{qCfTgeAeQ=7!VmukEqFc5T(5}EH^Gjq(zG=OXDX#3`JyB zrYRW9b7PFkrF5{&jC3>72{cejKuVn6aB3I(aey=~h5j}^L zJAx1Juc*Tuf%s}CzRrpFp@umE$)9yfKjWldBMAeOJk>!8#0N6xs$%voYIS(cy}jxrBnL-PW%T>@=Im)rS|qa$=~b5 z7t7?SZ`a89V9;A-ya9BRj3@o?JL!AVsXos-@m8n&FFWyzob>%xmTmyu;Li z?$#AeDX%Cft0*q2DXl0+j$1*OYN z*J8lzOc|I}6*R(jeogt$(N6`%m6ZjRRnb2j9mA@tick&vtf*SC922_c?gYV6Sxob> zs-|F7Q7KIgOfgK(m3L)GlyVi@hLa(ovUE8^zWkUNI#&~jURew+_EVNLMoCBS+UfSl zc_}FcaZ%Hx#mV8^Q~>__e?Knu<0=2B_4~5%IHSncpzuK0I@{`B;yAa+?zso?*B$tL zj-Bsu;Oh>|U;~ic7vRSr??u9%u$c(^!Zsot#Mm(5V8%qkA&h-XI0AMI@K_i#8p1F} zw1i;<=?SZ0;}FK-?oSx@*95}Yo(zOh<50p{#=;4s+(^Q(UZM$m!9FC6MkW%*!8MyO zHh3dp7*IUnF|aKOk7X>2FdCFgcpU6E!sB5N5Ds8$Dd7pQSqZ~_T~2r+VI>5R1zhP~TP7{<>j!ZR5= zO?Vb#orGt@?jj63mpjT@-@n2cE9YU%dhWlZ>UsH+uIJevjrk9k{8KOiK795o)t{gK z%Kw|=mn2#*qct*`$!KxtJ9)E=z9OT0Wb}C%-6^9_$>=s2eN0BT$msntdasP$C8M{= z=qF@!gN&|~(UmgVB%=#ubiRzvmCq~%P$dQ!Kj$qq2BYs@h-rPcDxHqdbK8QOY+q&X0Td5M*cmK>-iJntFE}tniu`DQ`{QeDL$<~Ar2?x1}jFC z-reGctgfrd*bTgLR=~`Hi1w?hkS|&bLyC(ErWn6@eCw}FEVSb)i&gL7f;+CNLS1)^ z3+cG3;Jd}NEUV=ql)y)F!Uldle-@>*i{`Ob%V@vVa=zb1Xn3nzjGV0y&LXzXmfq06 zZC2{7XVq3qZhts>p>UvE)NWwG_?_T6SnF2Lv#@nMci&&3t6Ti`pw;4!62t(NKrt+M z9eR?x?`iYOTNyVc68~Q&I_quX-c@5HEb^WV29EM(wR*fiPsqBT1uRoLmDnz*kiIn{uw@d#^vJF$Xeb?L>i$;EAjjHjtii`u35+(@&euUpJZ-+&dccPyr_LBZS06gpHlSyk;01zF=;)j1f!PlI zr~Coo>#%aW#3Kn^;vv@ula*$rk~1s0{MJkxt?X@3Dtc3V=N>4&bwS-VPBYywH3{q2 z($y_)s|BRh^BefTipRzpOk9laIcDy=L;dUWxNbKW60-Uuq@ah=sO`tsvZ+RM|JEJi zsRWuSC%0m@jG|}4mBLo>)Y|oYC-rwL=n?*RU32Rsy0NkiW8!5OGp~0vta02dw)+_GmAKfn0S;x+W+J7rlW)qO5oUku`|A=UMN+TQ4)z^p>2_9O@CH7($ZA>h9y3q+R@>}9-m|&5m*YOzcjhV! zc_sN+t3jY&4y)#G>-k}t2dUsZ7KyI#8(J=r+)MnmijVe;IY zcMj9L=A(;{Q8LZI)!5+e&>x zaeou_`rXO(!?O+-UYfh#YWeyqb}+^XzrECHJ2`dN&S6JRyc9UO{$}oB!wfDYZAg>+ zl+iaiyvx_j1#e^lr!>hcwFF$?lyw zH^Zv!v8f?*?! zJ&9e{?NX(^RGirL!^*>F#3PHRzwYzg8JxS^v;_e!W~GZMlg?h<%lWO@$#pzpIIg#W zQ}!nL`s}9j*PGYG8m7?sd$a4|OwYknI-DPWtmD7s15DZ>?a~f0t7mNELzx|7-nO@d zIzCL$?K~qMOSq?zh4?idzv9K-0DOTR|6_n}vrp3m)7a*Fc2D390yFDx(;XptlV7uM z6Bp;#=n|nAR4IJ7U+dECj2Gq$7ohdEiz#>eu6}s$p&YX{nwew1ZMrx|7QgsSW`6I^ zwu|h~O}N1`_M{R17T|K=JxTB(0A7GELIA#qxUT@a;G=+D$eKVu3_KfnF|ZbJdJg;~ zfG=?W9|G(LGy(nqFv2$w4x9j=#}&{A04D&;080TnKpMb|n!FA86i@|t1Tf!0hXMNm zZo}_z3h)Q`C1T;DI0Apg6~GR_$AII2z3|CQ0j>d_4}258jV}QYW~}Ew5s!~$lk125 z4t)ZPYWiWH=R3xeMfC~Bn8tTOMtl0BPuCs}X4a=>aC`F%_#tgcX4U8*`>*Z7$UHdoAv z5tYsU!v1$l*Q{;&+|<&m&~6z~rFb?K^(qw0Q>*dYdUNVQ#kiDSPO07Q*=V(dzehXf z_}eyHF9bFn?i&@qXXZ7i%eTO*fq(Jd*o+X&%XncuZ=X}Xg+7=&C$S#55MQ)r&3j&% z6N0_cxS+r1*J5Um;?B$&MlEdvR!j1gFX2-l;d&QxdAVzqBcUe7B#T{6$)E8p^; z2me&-3HZa>06UP!3|UQ@TP8^cjQ^XLI)m%o$EE9?^X!8B3xGo8QDM*1W$KS&T(Sac zH}L!3_00Txe#l!|^p`*SB@#W-YIR3kz*}xR12 zSkTvjAA>J39<=5t)w_;w&X0J@HC>H9p!}MF_pfM-2QIVLuc(huz6!E)kcR?%8cFCi zt#7tkctRL^??&D)bg?))dZ9R5uN~yHDZILu)A>f6ZDj_|pc>J|{9(||>xovQnPZ9X zZb?>r{(u-19rEt+L6z56UAV(+;tV4w>pJR4{*qs|Osu_dRbR`Z$~%4bJSilmj}a0x zHVJe`;chfMI{9q{{3035onOe{i-?GI%`vOB%EpIU)$nDw>Mn?WJuFNisCtg0Hm-x5 z>zvMsA`bHKo1J4vTn@6Jj;mY**W)rdvh$CFDy8wZ@|(}q`K?^cjdNU+hj4OGQBGBQDPcjJS+U665vb1Vxj}WOZ-5QZ>k_ z_KB*NhZ-(4eA2}=Nu{@SDVz0zstG=uisyJ1^;(xfP}}ZqK6@l;E84yp;FrM}{BUaM zkNyH)qf#Njq@29j6nEh&m%JDEZ{>)}yTL!H_p8;K3^j7m9nr;c zN94L(TlDXbS`PIugrAo7-3h>zM-SiF^fMMZQBdr_O}{!YOMRGY^t{oqbOWy)oS>bM z$)5jvzUPfidHVPO(`lR!7-?k)JOQy*}RcC!k0{SyN$YS1?`(bt!E~7l!c$k zf2t+G|?EOe#081^KKaaa%$V#z%dzA`g%S(D<*RT#z|_|S+OOd zT|AU9Y8l3z@K9UwP-DuUhSEbYqjg(GSjdTc@M-`~_7lDP6rq{A5g&F|JcPTOviF4V zBSO2_;;J+h-|C)n2K{lS&ov+$w4-kV+QlPd+i~;8C^D-hbTs#^vtnCyc48gFuL;V=5uqbm|z-2TGS~D?WS>lScm--{0TfSc_!`G>9zc?Gig6-Y&n_lIcU_b z+ol||ueMt}{-0U* zb&JQIn=Od&i|oe^ILhDRE6iT*T;u9-EO>z!3?H7*=@)xyirB?XKMoI8V(0NerI+!W z0}VOX_IMmZo@VCOtK?L1_+{LUwAJn-9v-jUNUK%|#qg%)#yyn`E5=9 zsOR!i`@1HXm0td>TG+H+om}&;SiXM}&q8v=5JM8cFYZ)?*rl4GN=!=qri+ElN9`%@ zcGugNX*X4z$+`Bl%c08^@6OGb?idws$C`h*%a``lob<1|#fv?{(8^^W4y{2?G?ER&>j(@4p>$KMg+QECc5L3!f zOW~JdTUbQlh$%cvIpP}jC05GEV%v(BuxdUQ+gEJBIr+)8@bF`;;f9{V-(5CjDhza= zXbU?dwv(;z`XnSzVy$t(I%lTf``ZVTFyJJ2b@`P;z zdIcaF5DSY+r%#%9k7M2i+2-9NICJIm?%o{vD$$whc|{L=djjMI^5hPU z&>8Dzvw_Fhcy zcH&&Jdt65?dDkLJ6^)OU(rLxvJ|vx3tZ~$`{MuRZtW0*!weV8Aq$-i*RI|9oS%P94 z`48Dn*rSj?zJf)~?Bt?w+w^7TmMw}XW-i?V&)`ZH+AX#$c?|nhZ0R|1Z-R3BYG8Ai z0zSa~W63v&vxUdg3e2O(Ys8OQ_FjWuaFV?}rs?rGIpbH;J}jM`M)STcNX_=LSr60( zwXFrlp>Y$aR?kd&=E@U#&l`JxI%-*b?a|Unfo}<(Lw@V`&GH!Z^WYleA^qJc9WN*v zeM4B|OCh5c<27yY{DWy~5gBk|gNX^B&_i~zz zg+H5E*Dyuo3e_*~7Ztgh7f*?*O7~u-nXf~*upayTs~ zytxkZfqdJZjrN`Q*w^+I&@D~~qcwn*YvpU8L5Uu4rM)-wfOZo#wQI3az5I-7Q#*&qb|$(0cYKQDs;*!DAcspWAljpqmOk zq0q!pFKV~zn_d?cMti?;x$ZBZFQYx<(3b}EW1;s;=tm>^u@HTj>#;kd(7h?MLEG#Z zi@q}~ZFsm)-K?4ZUh*60r_gC0lRCuswj8sYKkZ&Ec#`2a&2C@la3lTBvgj7swB)`i z5y^ewvy%J5Jd*oD1M2wv(%%g3SE3b);#)5(-Fp?>tBDWs!2|CsHVnKa+&3`hq2Pgi zE5`KeXNC^=WvC*;23#N6->M2xH{L7wA$DxP9e7_Xc(pkA-+JyZQt{lqwr#(R+W9h>}zy-L-GgVuO1tZm56m5W!8_%XLh zthcigW2#QU%-PG_xA`<*5W}~1h~azp4Vu^mF%mdj)geZ<92B(M(q?HILrghl51sl& zP4qrIHPXcEMwEN8hPc)N6Rar7{GH{Tnza9(-LTWJJ!>$Wr{5Id0E?jj#=r*WPu_&WC zc9Yvng#9;N%2tKZ6NH{H>>ak<;*RC!0BG>`-9y{VUKq9PxPs>)-+bQiS+*w3^M)!f zXSe~DfM5JM@wzPM`GK6_ZPkj#rV!G=HA*_z3wJDE4V;D_OR+shsN?Z$S5!6ZHLxAn zWduLm+o#|9Fhebz!wzl;g7qrgv1}Mn?2Hq*;H;p%2JBvGR?B_2{$P_ieOKlYhs*kW1F2eu|FdBFMX44%@zC-HayHf1dIh+z|fkhO2aR^ppLkaghJ;SIDQtYH! zSuF$N|AH?A_qW_SenSx3u@_HLFNyo^#y#$c`&@kaZrraOab05b-MF2OxR1o0nS1Fz z2z^{I+o8cJ_P*G7SMGI(+&iMn#CnVG;b-PQ#(#=a;!}*ur`U1tSf&iH=R*YWh}-Xo zJ2i0U;#RbkT6)KFv0t&%-m`H6+p!X@wOXDM)xtBE&xsdhqvSfkb}T|)e>cW=EU#kB zugGME``M14I>~Gwuzp>dO|#_-ndF!KKA0h-O*KmzZyLR>uM2Fl=Vh{|`gIQ3$saxxPV)AjI4%wUaY@zmOC=@K*1X1Zh8+imKn z`BFH*UdXw5XDv=hADpiVq(jmBNmaUjpRePEK8vM`UK|gNsNm zerkdtJ7;k!(XobwIeAHWHagL;C`W+SXam16hc5Vr+@uEMMOYu?}lumIJBsocjcnbfw)2R%pYSMy(Ru6jdT$*M20@n^sMk-_>jMQl*3U!wJ>K44X-K4e={j3Mx(o$^kB>If z+sDt}&&N9pS`Y%Wy#vOKf!us=?{Q;%y}ff#9)d2H3WLA`;>Y-SE+iiL7J2FQI*yx| z7iiO~dcY>`ty^rv?y4muJ|@6B-`m?=I78i~@jhwBf67`}al@9Q=(@YsEHXb^(6`KX{_dj)14jMFI3dmF@c_x@S>9 z6cgv$Z5a9<(+@n|$>^Ro0hx$Cf`gInVg=Om+BY1AP}Rg-%rV|2HVY^EV3g9jO#(eE%Wfo=IaveMyiHBPAS!nRt8=H`5TF zR91;EEDbT!qGF?>Cp$1piid>l3qQuu<=AEV{YlK#U7e)i+!XFET7{3wm-FMsaQ7(v zx$%k#+(bn%$D*oD_;j+SXc^vTsHiE4T3Nm(YT24ndKhoUwy2UCEws**C2vlEqNHKY%pN=DV-+ej8=`}8uZs$zLj zO%aPqT9_S$XsU;uEM1OQEJ{rFuVw8y3yP|$@b#!Ir$j@4(W=s7lwARxc3sP=t65ZW z#i~{G`K3)=Q4KEN%huH3>(PHU(9n<(MmAy|`kx?FmYLQd1zHa@P9!J)`w3uefzl|z zUBhl-O^_U|Qv%W_=^;!&(}T(;Ia<0f`RYCWk~?^R&*TK-nl50kk$r zj@BhX18CAif#L~h`O#V?n$|Oc0W_8Cr~)YXmjFnz*AK)I0PPQwKEkw5lmJLB89@69 z0qrxCPJ56fR}Px=(_TS;Gl2l2cY~z26fu&Vv^Q*{$~pqc5!3)Axk9Wtg2Z5l5D?Xk z!g_!tw+o$4@I&P`IOM3P{g5HZw^`?iK#=r30h;vLszieW@CTBD)Q(0(K(2B#us_KF z(m>OGPeGD<3ACiI5HbW(np|!_7}{EB=xu+01D73VIpU81@H&J|j=od9{v&d2kfE_4 zeYU^X0XYpSLi2zE>7q9O2|)EDIXXwgId(a)wm@#}8M_xq3M50}EP(Wq zJ_F?LHDb>EKtKNt>7)?g50kEkEm;e9( literal 17812 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 bOQ&L46objBmGGG5eAf8}8!E!He%kl{Y{<@( delta 5490 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 diff --git a/prebuilt/sxmo-x11/usr/bin/dwm-plugin b/prebuilt/sxmo-x11/usr/bin/dwm-plugin index 9e3f0a32d88bf216658a7b7df73d82f1387d2a59..a1aca55f8a6faebd638a6b38ba3e9e87b7a56e71 100755 GIT binary patch delta 5303 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 Z@xJMZcIjX9Y4Xicsj6jlewqqX{{mrrM#lgE delta 6307 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 diff --git a/prebuilt/sxmo-x11/usr/lib/dwm/plugins/callscreen.so b/prebuilt/sxmo-x11/usr/lib/dwm/plugins/callscreen.so index 54db3435022183338300dd5e90f7278423cce498..c21e8330d2d3825ac4bf58f81a6fda58437263ef 100755 GIT binary patch delta 6625 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 diff --git a/prebuilt/sxmo-x11/usr/lib/dwm/plugins/camera.so b/prebuilt/sxmo-x11/usr/lib/dwm/plugins/camera.so index a8c5b21f1e2ba7973aea700dc8cfca1ee937953f..382407d3b2224f41bf54f1792b64ee4a77956490 100755 GIT binary patch delta 28511 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 YzQSj=ifY3qd0qOMb(}xgRL#Zw9|Gol>i_@% delta 28419 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 CmQcO` diff --git a/prebuilt/sxmo-x11/usr/lib/dwm/plugins/dialer.so b/prebuilt/sxmo-x11/usr/lib/dwm/plugins/dialer.so index 67c4b6fafae8d08132dba2f74a02fd0ecabfee54..a3e146481869c906496616875fd078f84b2be671 100755 GIT binary patch delta 30051 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 diff --git a/prebuilt/sxmo-x11/usr/lib/dwm/plugins/dmenu.so b/prebuilt/sxmo-x11/usr/lib/dwm/plugins/dmenu.so index 32cb263d2327edacb0c231149ded5c2fb79d77ad..716adb780708ad017d907d93e5741314fd160b7c 100755 GIT binary patch delta 35982 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 delta 29642 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�d2J?c%WUj#+k7YPFsY+uOar^D=j|KjqDrjjM0 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 R0{;`qt{x9&!yEhe{{Sav53B$H diff --git a/prebuilt/sxmo-x11/usr/lib/dwm/plugins/files.so b/prebuilt/sxmo-x11/usr/lib/dwm/plugins/files.so index daf5a672784f423c795b69e8f2d97d07349229c0..73b77714f09a1b899f694c4c87a746342be274fe 100755 GIT binary patch delta 6641 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 W8@1ipp}$zpU&zDcnU<+~ss9C``-Q*& delta 6581 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