From b7a53af9435395e9fc22893b9c855671596a19e8 Mon Sep 17 00:00:00 2001 From: hoelee Date: Tue, 10 Nov 2026 09:31:43 +0800 Subject: [PATCH] post: QR pre-download decode gate (EN+ZH) + Argon batch-10 review - 69-module symbol at 20 mm = 0.29 mm/module, refused below a 0.40 mm floor - 30% centre image on a 29-module symbol knocks out 19% of area, capped at 15% - maroon #800000 passes WCAG at 10.9:1 but is 1.9:1 on the red channel, so warn only - 300 dpi export quoted at 50.1 x 56.9 mm with the caption band and pHYs block - gate reads every code back with jsQR at two densities before the download unlocks - batch-10 external review: 94/96/88/100, 10 items applied, 2 rejected with reasons --- .../batch-10-consultant-review-pack.md | 483 ++++++++++++++++++ .../reports/report-batch-10.md | 49 ++ ...-gate-that-decodes-before-the-download.jpg | Bin 0 -> 75001 bytes ...gate-that-decodes-before-the-download.webp | Bin 0 -> 60622 bytes ...-gate-that-decodes-before-the-download.jpg | Bin 0 -> 63738 bytes ...-that-decodes-before-the-download-400.webp | Bin 0 -> 7428 bytes ...-that-decodes-before-the-download-800.webp | Bin 0 -> 22570 bytes ...-gate-that-decodes-before-the-download.jpg | Bin 0 -> 66382 bytes scripts/og-gen/art-meta.json | 5 + scripts/og-gen/banner-plan.json | 72 ++- ...r-gate-that-decodes-before-the-download.md | 208 ++++++++ ...r-gate-that-decodes-before-the-download.md | 208 ++++++++ 12 files changed, 1001 insertions(+), 24 deletions(-) create mode 100644 docs/consultant-review/batch-10-consultant-review-pack.md create mode 100644 docs/consultant-review/reports/report-batch-10.md create mode 100644 public/banners/qr-gate-that-decodes-before-the-download.jpg create mode 100644 public/banners/qr-gate-that-decodes-before-the-download.webp create mode 100644 public/og/qr-gate-that-decodes-before-the-download.jpg create mode 100644 public/og/thumb/qr-gate-that-decodes-before-the-download-400.webp create mode 100644 public/og/thumb/qr-gate-that-decodes-before-the-download-800.webp create mode 100644 public/og/zh-qr-gate-that-decodes-before-the-download.jpg create mode 100644 src/content/posts/qr-gate-that-decodes-before-the-download.md create mode 100644 src/content/posts/zh/qr-gate-that-decodes-before-the-download.md diff --git a/docs/consultant-review/batch-10-consultant-review-pack.md b/docs/consultant-review/batch-10-consultant-review-pack.md new file mode 100644 index 0000000..2dce0cb --- /dev/null +++ b/docs/consultant-review/batch-10-consultant-review-pack.md @@ -0,0 +1,483 @@ +# Batch-10 外部顾问审阅资料包 — 二维码生成器的解码闸门(Blog EN + ZH) + +> **致顾问 Argon**:本轮为 blog.hoelee.com 的第 10 批次(Batch-10)技术文章审阅,只有一篇,中英双语双生。 +> 取材于今日真实生产工程:`tools.hoelee.com` 的通用二维码生成器(`qr-code-generator`),其核心机制是「jsQR 未把即将导出的符号解码成原载荷之前,下载按钮一直是关闭的」。 +> 请按前置规范《00-外部顾问审阅须知与背景规范》进行严格把关,本轮重点只看三件事: +> 1. **实测数字能否被读者一条公式验算**:0.29 mm/模块、0.40/0.50 mm 下限、19.2% 面积、10.9:1 与 1.9:1、50.1 mm、80 KB 预算与 ~53 KB。凡是读者拿计算器算不平的,请直接判错。 +> 2. **人设与语调纯洁性**:严格杜绝 `homelab / 家用 / 小主机 / 折腾`;技术正文严禁第二人称(`you / your / 你 / 您`);严禁店主/创始人/教程作者语气,锚定资深全栈与平台工程师。 +> 3. **是否值得公开发布**:这篇的读者是「要印二维码的马来西亚小商家」和「看技术深度的招聘方/CTO」,请判断现有结构能不能同时喂饱这两端,还是只喂饱了其中一端。 + +--- + +## 篇目信息 + +- **Slug**: `qr-gate-that-decodes-before-the-download` +- **Category**: `engineering` +- **Blueprint**: `sme-digital-suite`(`L3-application-runtime`) +- **Tags**: `qr-codes`, `verification`, `jsqr`, `canvas`, `print`, `accessibility`, `performance-budget` +- **当前状态**: `draft: true`(尚未出美术资源、未推送、未部署;正文与结构可自由改) +- **收尾 CTA**: `dynamicCta: true`(主题自动注入双轨表单,正文**没有**手写 CTA —— 这是本站规范) + +--- + +## 已核实事实清单(供核算,不必怀疑出处) + +以下几项是我从产品源码与构建闸门里直接读出来的,**可以直接用来判我的正文是否算错**: + +| 事实 | 数值 | 出处 | +|---|---|---| +| 打印 DPI | 300 | `PRINT_DPI` | +| 静区 | 两侧各 4 个模块,不可调 | `QUIET_MODULES = 4` | +| 模块像素 | `ceil(box / (modules + 2*quiet))`,向上取整 | `planQr()` | +| 最小模块下限 | 0.40 mm(实心)/ 0.50 mm(点状、柔和圆角) | `MIN_MODULE_MM` / `MIN_MODULE_MM_DOTS` | +| 中心图上限 | 边长 30%,**面积 15%(含两侧各 2 模块白色挖空留白)** | `CENTRE_MAX_RATIO` / `CENTRE_MAX_AREA` | +| 对比度闸门 | WCAG 相对亮度 4.5:1(取渐变较浅的一端) | `checkColours()` | +| 红色通道告警 | 红主导且红通道比 < 3 时警告,不拒绝 | `warmInk()` | +| 回读密度 | 访问者密度(上限 24 px/模块)与 8 px/模块,两者都失败才拒绝 | `PROBE_PITCH_MAX` / `PROBE_PITCH_MIN` | +| 最近一轮闸门 | 238 + 954 测试(二维码引擎 67 条,本轮 +10)、157 页面、`astro check` 0 错误、bundle 预算绿、`probe_qr_code` 300 项、`probe_a11y` 234 项 | 仓库状态文档 §45 | +| 路由体积 | 三条二维码路由从 80.1–81.4 KB 降到 ~53 KB;预算 80 KB;站上最重路由现在是 WhatsApp 生成器 75.7 KB | 同上 | +| 泄漏源 | `libphonenumber-js` 在模块顶层被引入,28.7 KB | 同上 | + +我正文里出现的每一个数字都必须能从这张表或一条公式推出来。**如果哪句推不出来,那是我错,不是表错。** + +--- + +## 篇目 1:博客英文版(Blog EN Draft) + +```markdown +--- +title: "The QR Gate: Every Code Is Decoded Before It Is Downloadable" +description: "A QR generator on my tools site refuses to hand over a file until jsQR reads the payload back exactly. What the read-back could not see — a 0.29 mm module on paper, a logo cap measured in area, red ink that a 660 nm scanner treats as blank paper — and the gates that now catch each one." +pubDate: 2026-11-10 +category: engineering +blueprint: sme-digital-suite +blueprintLayer: L3-application-runtime +tags: ["qr-codes", "verification", "jsqr", "canvas", "print", "accessibility", "performance-budget"] +ogImage: "/og/qr-gate-that-decodes-before-the-download.jpg" +banner: "/banners/qr-gate-that-decodes-before-the-download.jpg" +draft: true +summary: + audience: "Front-End & Platform Engineers, Business Owners Printing QR Codes" + painPoint: "A QR code that decodes on the preview canvas can still be unscannable on paper, and a generator that draws whatever was asked for has no way to know the difference." + impact: + - metric: "0.29 mm vs 0.40 mm" + detail: "A 61-module vCard at 20 mm prints below the smallest module a printer can be trusted with, and the decoder still accepted it. The floor is now measured on the printed millimetres, not the preview pixels." + - metric: "19.2% → 15% Area" + detail: "A 30% centre image plus its two-module knockout pad wiped 19.2% of the symbol's area. The cap moved from a side percentage to an area percentage, pad included." + - metric: "300 Probe Checks" + detail: "The independent probe decodes the page's own canvas with its own jsQR import, on the built site and on the live site, and refuses a download it cannot read." + stack: ["TypeScript", "Astro 5", "jsQR", "Canvas 2D", "PNG pHYs", "Playwright/CDP probe"] + jumpLinks: + business: "#why-a-qr-code-fails-on-paper" + architecture: "#five-blind-spots-of-a-clean-bitmap" + result: "#the-result" +dynamicCta: true +--- + +## Why a QR Code Fails on Paper + +I run a set of free tools for small businesses — calculators, e-invoice helpers, PDF utilities — and the one that keeps coming back is the QR code. A shop wants a code on a table tent, a name card, a lorry decal, a receipt. The request is always the same sentence: this code works, print it. + +The honest version of that job is not drawing squares. It is handing over a file that scans on the surface it is heading for, and the two most expensive failures in this class both pass every check a browser can perform. A symbol that decodes perfectly on a 400 px canvas can be 0.29 mm per module on paper, which no phone camera centre-zone will find. A maroon code scores 10.9:1 on contrast, passes accessibility tooling without a note, and reads as blank paper to the red-LED scanner bolted to a shop counter. + +So the tool I built has one non-negotiable rule: **the download stays locked until jsQR decodes the symbol that is about to be exported and gets the payload back exactly.** Not a preview of it — the geometry that gets written to the file, re-inked from the same vector path, read by a decoder import that is deliberately not the one the page uses for its own verdict. + +The engine itself is unremarkable: six payload types (text or URL, Wi-Fi, vCard 3.0, `tel:`, `SMSTO:`, `mailto:`), four module shapes, three finder-pattern shapes, foreground and background plus an optional two-stop gradient, sizes in millimetres, error correction L to H, an optional centre image, an optional caption, PNG at 300 dpi with a real `pHYs` chunk and SVG. + +The gate is the part worth writing down, because the gate was wrong four separate ways before it was right. + +## The Gate Is Easy; Trusting It Is the Work + +The first version decoded the exported bitmap. That failed immediately, and instructively: a smooth or nearest-neighbour rescale blurs the one-pixel gaps between dot-style modules, so a code that prints perfectly was refused because of how the test resampled it. The gate has to re-ink the symbol from `shapePath` — the same vector geometry the exporters use — at a chosen pixel pitch, instead of scaling a picture of it. + +The second version then did the obvious thing and probed at the print's own resolution. At a 300 mm export that is 95 px per module and 3,500 px across, and at 150, 200 and 300 mm the same dot modules that decoded at every size below started failing above it. jsQR is a decoder written for photographs — a few hundred pixels across — and it has a working range. Probing at 95 px per module was testing the decoder's comfort, not the design's correctness. + +The third version probed at a single low pitch, 8 px per module, which is what a 25 mm card gives. That broke the opposite way: a dot pattern that reads cleanly at 8 px per module can miss at 20, because the gaps between dots sit either side of the decoder's internal block size. Refusing on one density means blaming a good design for a decoder blind spot. + +The gate that shipped offers the symbol to the decoder at **two** pitches — the visitor's own, capped at 24 px per module, and 8 px per module — and refuses only when both fail: + +```ts +const nativePitch = Math.max(1, Math.floor(canvas.width / geo.total)); +const pitches = [...new Set([ + Math.min(nativePitch, PROBE_PITCH_MAX), + Math.min(nativePitch, PROBE_PITCH_MIN), +])]; + +let found: string | null = null; +let tried = 0; +for (const pitch of pitches) { + const side = geo.total * pitch; + if (side < 21) continue; + tried += 1; + probe.width = side; + probe.height = side; + pctx.imageSmoothingEnabled = false; + const scaled = centre ? rescaleCentre(centre, pitch / modulePx) : null; + paintSymbol(pctx, pitch, geo, gradient, scaled, inkDark, inkLight); + const pixels = pctx.getImageData(0, 0, side, side); + const hit = decode(pixels.data, side, side, { inversionAttempts: 'dontInvert' }); + if (!hit) continue; + found = hit.data; + if (verifyDecode(expected, found) === 'ok') return 'ok'; +} +if (tried === 0) return 'empty'; +return found === null ? 'mismatch' : verifyDecode(expected, found); +``` + +One more exclusion belongs in this section: the caption band is not drawn into the probe. It is type under the code, not part of it, and at 80 mm and above its letterforms gave jsQR enough false finder candidates that a round-eyed design which decoded at 50 mm failed at 80 mm. A gate that fails on the caption is measuring the wrong object. + +## Five Blind Spots of a Clean Bitmap + +With the gate honest, the tool still shipped codes that would fail in the physical world, because a clean bitmap at 8 px per module has a very specific set of things it cannot see. Each of the five below is now a rule with a measured number behind it. + +**1. The module floor.** A 61-module payload — a vCard with a phone number and an address — at 20 mm gives 69 modules including the fixed four-module quiet zone each side: **0.29 mm per module** on paper. The gate re-inks that same symbol at 8 px per module, decodes it, and unlocks the download, and the resulting sticker is unreadable on a laminated table tent. Ink spread, toner scatter and macro focus all live below the line the decoder never crosses. `pitchCheck` now refuses a print finer than **0.40 mm** per module, and **0.50 mm** for dots and soft corners, which lose ink at every gap, quoting the millimetres it measured rather than the limit it applied. + +**2. The centre image is an area problem, not a side problem.** Level H recovers roughly 30% of codewords, and that budget is not only for the logo — it is what lets the code survive a thumbprint, glare, a crease and a phone held at an angle. A 30% image on a 29-module symbol looks conservative until the two-module white knockout pad is counted: 43.8% of the side, **19.2% of the area**, deleted from a symbol whose read-back margin was measured on a clean bitmap. The cap is now **15% of the area, pad included** (`CENTRE_MAX_AREA`), which means the same 30% slider is allowed on a dense vCard and refused on a short URL. That is the physics rather than a taste. + +**3. Red ink that a till scanner sees as paper.** WCAG relative luminance weights green at 0.7152 and blue at 0.0722, so maroon `#800000` on white scores **10.9:1** and sails through the 4.5:1 guard. On the red channel alone it scores **1.9:1** — and a 660 nm red-LED scanner, the kind still bolted to a shop counter, is effectively colour-blind in exactly that band. Phones read red ink without trouble, so this is a warning and never a refusal: the file stays downloadable, the sentence names the ratio, and the choice belongs to whoever is printing. + +**4. A caption changes the paper, not the code.** The quoted file size used to be the symbol's side. A caption adds a band, so a "50 mm" file is really 50.1 mm wide and 56.9 mm tall. The page now quotes both numbers and says which one is the code. + +**5. Whole pixels, so the promise is the printer's, not the arithmetic's.** At 300 dpi a module is an integer number of pixels, and the planner rounds **up**, not down: `ceil(box / (modules + 2 × quiet))`. Flooring would print the 25 mm option at 21.9 mm, under the very floor the page warns about; ceiling can only make the code larger than asked, which is the safe direction for a camera. A requested 50 mm comes out as **50.1 mm**, and that is the number the interface shows. The `pHYs` chunk matters for the same reason: a 50 mm code is 592 px at 300 dpi, and without `pHYs` a word processor assumes 96 dpi and places it at 157 mm — a table tent with a code three times the size it asked for. + +
+🔍 The two rules the decoder could not see: pitchCheck and the centre-image area cap (TypeScript, 30 lines) + +```ts +export const MIN_MODULE_MM = 0.4; +export const MIN_MODULE_MM_DOTS = 0.5; + +export interface PitchCheck { + ok: boolean; + mm: number; + floor: number; +} + +/** Judge the module pitch of the print, not of the preview. */ +export function pitchCheck(totalModules: number, actualMm: number, style: QrStyle): PitchCheck { + const floor = style === 'dots' || style === 'soft' ? MIN_MODULE_MM_DOTS : MIN_MODULE_MM; + const mm = totalModules > 0 ? actualMm / totalModules : 0; + return { ok: mm + 1e-9 >= floor, mm: Number(mm.toFixed(3)), floor }; +} + +export const CENTRE_MAX_RATIO = 0.3; +/** Share of the symbol's *area* the knockout may cover, pad included. */ +export const CENTRE_MAX_AREA = 0.15; +export const CENTRE_PAD_MODULES = 2; + +// inside planCentre() +const ratio = percent / 100; +const sidePx = Math.max(1, Math.round(input.codePx * ratio)); +const padPx = Math.max(0, input.modulePx) * CENTRE_PAD_MODULES; +if (ratio > CENTRE_MAX_RATIO + 1e-9) problems.push('too-large'); +// The pad is not decoration: it is four more modules of code that no longer exist. +const knockoutSide = sidePx + padPx * 2; +const occupied = input.codePx > 0 ? (knockoutSide / input.codePx) ** 2 : 1; +if (occupied > CENTRE_MAX_AREA + 1e-9) problems.push('too-much-area'); +``` +
+ +## Proving the Gate Closes + +A gate nobody has watched close is not a gate. The engine tests prove the arithmetic; a Playwright/CDP probe proves the page, and it deliberately does not trust the page's own verdict. It finds the code's black bounding box, verifies the **timing row and column** — a scaled, stretched, cropped or mistranslated drawing fails there even when jsQR still guesses a payload — and decodes the canvas with its own fresh import of the site's lazy jsQR chunk, from pixels it read itself. A symbol only its author can read fails here. + +The closure test is a seam built for exactly this: with `data-simulate-mismatch="1"` the widget's read-back is fed a wrong string, and the probe asserts the download disappears. The gate has to withhold the file, not merely say it would. + +That probe found three things the happy path could not: + +- A centre image refused at load — 900 px against a 600 px cap — fell back to a code **without** the image and still offered the download. The silent drop the payload rules forbid. A refused file now withholds the export until it is cleared or replaced. +- The vCard's CRLF cannot be seen in a textarea, because browsers normalise the value to LF on read. The probe folds newlines for the box and proves CRLF from the decoded canvas instead. +- A rebuild mid-run (`astro build` replacing `dist/` while `astro preview` serves it) turned a check red and then crashed the run on a missing geometry. Do not rebuild while a probe is running, and a probe should report a missing page as a failure rather than a traceback. + +**The check that was flattering the layout.** The image tools on the same site keep the stage beside the form, so their contract is "the download is in the first screen". This tool puts the code under a six-type form, and the first version of the probe asserted the same rule by calling `scrollIntoView` on the download block before measuring it — which measures "fits in a viewport once already scrolled there", not "is on the first screen". The honest property is that the buttons sit one glance under the code, measured in page coordinates so scrolling cannot help: at 390 px the block is 66 px below the code and 48 px tall, with 0 px of sideways overflow; at 1440 px the layout is two 518 px columns with the code at x = 719. A gate that scrolls the thing it is measuring into view is not a gate. + +
+🔍 The probe's own decoder: independent of the widget's read-back (Python + injected JS, 24 lines) + +```python +# The probe's own decoder: the page's own lazy jsQR chunk, imported fresh. The canvas is drawn +# from the page's pixels at their native resolution — nothing resampled, nothing smoothed — and +# only the symbol square is read, because the caption band below it is type, not code. +DECODE_JS = """(async () => { + try { + const src = document.querySelector('[data-qr]'); + if (!src || !src.width) return { found: null, note: 'no canvas' }; + const w = src.width, h = src.width; + const c = document.createElement('canvas'); + c.width = w; c.height = h; + const ctx = c.getContext('2d', { willReadFrequently: true }); + ctx.imageSmoothingEnabled = false; + ctx.drawImage(src, 0, 0, w, h, 0, 0, w, h); + const img = ctx.getImageData(0, 0, w, h); + const chunk = performance.getEntriesByType('resource').map(e => e.name).find(n => /jsQR/i.test(n)); + if (!chunk) return { found: null, note: 'no jsqr chunk' }; + const mod = await import(chunk); + const fn = mod.default; + const hit = fn(img.data, w, h); + return { found: hit ? hit.data : null, size: [w, h] }; + } catch (e) { + return { found: null, note: 'decode threw: ' + String(e) }; + } +})()""" +``` +
+ +## A Phone Parser Paid for by a Page That Only Draws + +The last failure in this round had nothing to do with QR codes and everything to do with how budgets fail. The three QR routes were the heaviest on the site — 78.7 to 79.6 KB against an 80 KB budget — and adding four sentences of new warning copy pushed them to 80.1–81.4 KB and failed `npm run verify`. Copy did not cost 2 KB. + +The cause was the import graph. The QR generator's engine imported its drawing helpers from the WhatsApp link builder's engine, and that module pulls in `libphonenumber-js` at module scope: **28.7 KB** of phone parsing, paid for by a page that only draws a code. The drawing half moved into `whatsapp-link-builder/qr-core.ts`, re-exported from `engine.ts` so every existing import kept working, and the QR tool imports `qr-core` directly. The three routes dropped to roughly **53 KB**, and the heaviest route on the site is now the WhatsApp builder at 75.7 KB. + +The transferable part: a bundle budget with 1.3 KB of headroom is not a budget, it is a countdown. It will fail on a text edit, and the diff will point at the text. The import graph has to be read before the sentence is blamed. + +## The Result + +- **238 + 954 tests** pass, 67 of them in the QR engine (10 added this round). +- **157 pages** build, `astro check` reports 0 errors, bundle budget green. +- `probe_qr_code` runs **300 checks** green on the built site and again on the live site. +- `probe_a11y` covers **234 checks**, including the three QR locales. +- `probe_whatsapp_link` is unchanged after the module split, which is the check that proves the refactor moved code without moving behaviour. +- The heaviest QR route is now **~53 KB**, down from 80.1–81.4 KB, against an 80 KB budget. + +## What I Would Build Again + +The gate-earns-its-keep part of this was not jsQR. It was accepting that a decoder answers a narrower question than the one that matters. jsQR can tell me the symbol is internally consistent — right modules, right payload, no shear, no mistranslation. It cannot tell me whether a printer will place those modules far enough apart to survive ink, whether a logo's knockout leaves enough error-correction budget for a thumbprint, or whether the ink absorbs light at the wavelength of the scanner on the counter. + +So the rules that made this usable are all floors and budgets measured on paper: 0.40 mm per module, 15% of the area, four modules of quiet zone that are not a control, red-channel contrast as a warning rather than a wall. Every refusal quotes the number it measured — "0.29 mm per module" rather than "too small" — because a limit stated as a limit teaches nothing, and the person holding the file needs to know how far off the print is. + +The probe's lesson is the one I keep re-learning in other shapes: a verification that can be satisfied by the code doing the verifying is not a verification. Feed the gate a wrong string and watch the download vanish. Measure the layout the way the reader gets it, not the way the assertion prefers to arrange it first. +``` + +--- + +## 篇目 2:博客中文版(Blog ZH Draft) + +```markdown +--- +title: "二维码闸门:先解码,再给下载" +description: "我在自己的工具箱站点上做的二维码生成器,只要 jsQR 没有把载荷原样读回来,就不给文件。回读看不见的东西——纸上 0.29 毫米的模块、按面积而不是按边长计算的中心图上限、660 纳米扫描枪当成白纸的红色油墨——现在各有一道闸门。" +pubDate: 2026-11-10 +category: engineering +blueprint: sme-digital-suite +blueprintLayer: L3-application-runtime +tags: ["二维码", "校验", "jsqr", "canvas", "打印", "无障碍", "性能预算"] +ogImage: "/og/zh-qr-gate-that-decodes-before-the-download.jpg" +banner: "/banners/qr-gate-that-decodes-before-the-download.jpg" +draft: true +summary: + audience: "前端与平台工程师、需要打印二维码的企业主" + painPoint: "在预览画布上能解码的二维码,印到纸上可能根本扫不出来;而一个“要什么画什么”的生成器没有能力分辨这两者。" + impact: + - metric: "0.29 毫米 vs 0.40 毫米" + detail: "61 个模块的 vCard 载荷在 20 毫米尺寸下,每个模块只有 0.29 毫米,远低于打印机可信的底线,而解码器照样放行。现在底线量的是纸上的毫米,不是预览的像素。" + - metric: "19.2% 降到 15% 面积" + detail: "30% 的中心图加上两侧各两个模块的挖空留白,一共挖掉符号面积的 19.2%。上限从“边长百分比”改成“含留白的面积百分比”。" + - metric: "300 项探针校验" + detail: "独立探针用自己导入的 jsQR 解码页面画布,构建产物和线上站点各跑一遍,读不回来就不给下载。" + stack: ["TypeScript", "Astro 5", "jsQR", "Canvas 2D", "PNG pHYs", "Playwright/CDP 探针"] + jumpLinks: + business: "#why-a-qr-code-fails-on-paper" + architecture: "#five-blind-spots-of-a-clean-bitmap" + result: "#the-result" +dynamicCta: true +--- + +## 二维码是死在纸上,不是死在屏幕上 + +我为小商家做了一组免费工具——各类计算器、电子发票辅助、PDF 工具——其中被反复要的只有一个:二维码。店主要把码印在桌面立牌上、名片上、货车车身上、收据上。需求永远是同一句话:这个码能用,帮我印。 + +这份工作的诚实版本并不是画方块,而是交出一个在它要去的那个表面上扫得出来的文件。而这类需求里最贵的两种失败,浏览器能做的检查全都看不出来。一个在 400 像素画布上解码完美的符号,印到纸上每个模块只有 0.29 毫米,任何手机相机的中央区域都找不到它。一个深红色的码,对比度算下来 10.9:1,可访问性工具一声不响地放行,而柜台那把红光扫描枪看到的是一张白纸。 + +所以这个工具只有一条不可协商的规则:**jsQR 没有把即将导出的符号解码、并且把载荷一字不差地读回来之前,下载按钮就是灰的。** 不是预览一张“应该能读”的图,而是从导出用的同一条矢量路径重新上墨,并用一个刻意不同于页面自身结论的 decoder import 来读它。 + +引擎本身没什么稀奇:六种载荷(文本/网址、Wi-Fi、vCard 3.0、`tel:`、`SMSTO:`、`mailto:`)、四种模块形状、三种定位图案形状、前景色与背景色加可选的双色渐变、以毫米计的尺寸、L 到 H 的纠错等级、可选中心图、可选说明文字,导出为带真实 `pHYs` 块的 300 dpi PNG 和 SVG。 + +值得写下来的是闸门,因为这道闸门在变对之前,错了四次。 + +## 闸门容易,可信才难 + +第一版直接解码导出的位图。它立刻失败,而且失败得很有教育意义:平滑重采样或最近邻缩放会把点状模块之间那一像素的缝隙抹掉,于是一个印出来完美无缺的码,被“测试怎么重采样它”这件事给拒了。闸门必须用导出器用的同一个 `shapePath`,按选定的像素密度重新上墨,而不是缩放一张它的照片。 + +第二版做了最直觉的事:按打印分辨率去探测。300 毫米的导出就是每个模块 95 像素、横向 3500 像素,而在 150、200、300 毫米三档实测里,同一种点状模块在更小的每一档都能解码,超过这附近就开始解不出来。jsQR 是给照片写的解码器——几百像素见方——它有自己的工作区间。按 95 像素/模块去探测,测的是解码器的舒适度,不是设计的正确性。 + +第三版反过来只用一个低密度,8 像素/模块,那是一个 25 毫米名片实际给出的密度。它从另一边坏掉:一个在 8 像素/模块下读得干净的点阵,在 20 像素/模块下可能解不出来,因为点与点之间的缝隙正好落在解码器内部块大小的两侧。只用一个密度就判死刑,等于让好的设计替解码器的盲区背锅。 + +上线的那版把符号用**两个**密度交给解码器——访问者自己选的密度(上限 24 像素/模块)和 8 像素/模块——只有两个都失败才拒绝: + +```ts +const nativePitch = Math.max(1, Math.floor(canvas.width / geo.total)); +const pitches = [...new Set([ + Math.min(nativePitch, PROBE_PITCH_MAX), + Math.min(nativePitch, PROBE_PITCH_MIN), +])]; + +let found: string | null = null; +let tried = 0; +for (const pitch of pitches) { + const side = geo.total * pitch; + if (side < 21) continue; + tried += 1; + probe.width = side; + probe.height = side; + pctx.imageSmoothingEnabled = false; + const scaled = centre ? rescaleCentre(centre, pitch / modulePx) : null; + paintSymbol(pctx, pitch, geo, gradient, scaled, inkDark, inkLight); + const pixels = pctx.getImageData(0, 0, side, side); + const hit = decode(pixels.data, side, side, { inversionAttempts: 'dontInvert' }); + if (!hit) continue; + found = hit.data; + if (verifyDecode(expected, found) === 'ok') return 'ok'; +} +if (tried === 0) return 'empty'; +return found === null ? 'mismatch' : verifyDecode(expected, found); +``` + +这一节还有一条排除规则:说明文字的条带不画进探针。码下面的字是字,不是码的一部分;在 80 毫米及以上,那些字形的笔画给 jsQR 提供了足够多的伪定位候选,以至于一个在 50 毫米能解的圆眼设计,到 80 毫米就解不出来。因为说明文字而失败的闸门,量错了对象。 + +## 干净位图看不见的五件事 + +闸门诚实之后,工具仍然会送出在现实世界里注定失败的码,因为一张 8 像素/模块的干净位图,有一组非常具体的盲区。下面每一条现在都是带实测数字的规则。 + +**一、模块下限。** 一个 61 模块的载荷——带电话和地址的 vCard——印在 20 毫米上,加上两侧各四个模块的固定静区就是 69 个模块:纸面上每个模块 **0.29 毫米**。闸门把同一个符号按 8 像素/模块重新上墨,解得出来,于是放行,而做出来的贴纸在过塑立牌上无人可扫。油墨扩散、碳粉散点、微距对焦全都在解码器永远不会越过的这条线以下。现在 `pitchCheck` 会拒绝每模块细于 **0.40 毫米**的打印件,点状与柔和圆角则为 **0.50 毫米**——它们在每个缝隙处都漏墨——并且引用它量到的毫米数,而不是它套用的限值。 + +**二、中心图是面积问题,不是边长问题。** H 级纠错大约能找回 30% 的码字,而这份预算不只给 logo:它还要让这个码扛住一个指纹、一片反光、一道折痕、一只斜着举起的手机。29 模块的符号放 30% 的中心图,看着很保守,直到把两侧各两个模块的白色挖空留白算进去:占边长 43.8%,**占面积 19.2%**——从一个“回读余量是在干净位图上量出来的”符号里被直接删掉。现在上限是 **含留白在内的 15% 面积**(`CENTRE_MAX_AREA`),于是同一个 30% 的滑杆,在密集的 vCard 上放行,在短网址上拒绝。这是物理,不是口味。 + +**三、被柜台枪当成白纸的红墨。** WCAG 相对亮度给绿色 0.7152、给蓝色 0.0722 的权重,所以白底上的深红 `#800000` 拿到 **10.9:1**,轻松越过 4.5:1 的闸门。只看红色通道是 **1.9:1**——而 660 纳米红光扫描枪,那种至今还锁在柜台上的,恰好在这个波段上是色盲。手机读红墨毫无困难,所以这一条只警告、绝不拒绝:文件照样可下载,句子会写出那个比值,选择权归打印的人。 + +**四、说明文字改变的是纸,不是码。** 以前报的文件尺寸是符号的边长。加了说明文字就多了一条带,所以一个“50 毫米”的文件实际是 50.1 毫米宽、56.9 毫米高。界面现在两个数都报,并且说明哪一个才是码。 + +**五、整数像素,所以承诺属于打印机,不属于算术。** 300 dpi 下一个模块只能是整数个像素,规划器**向上**取整,不向下:`ceil(box / (modules + 2 × quiet))`。向下取整会把 25 毫米那一档印成 21.9 毫米,正好落在这页自己警告的下限之下;向上取整只会让码比要求的大,而这对相机来说是安全的方向。要求 50 毫米,出来的是 **50.1 毫米**,界面报的也是这个数。`pHYs` 块出于同一个原因重要:50 毫米的码在 300 dpi 下是 592 像素,没有它,文字处理器会按 96 dpi 理解,摆出来就是 157 毫米——立牌上出现一个比预订大三倍的码。 + +
+🔍 解码器看不见的两条规则:pitchCheck 与中心图面积上限(TypeScript,30 行) + +```ts +export const MIN_MODULE_MM = 0.4; +export const MIN_MODULE_MM_DOTS = 0.5; + +export interface PitchCheck { + ok: boolean; + mm: number; + floor: number; +} + +/** Judge the module pitch of the print, not of the preview. */ +export function pitchCheck(totalModules: number, actualMm: number, style: QrStyle): PitchCheck { + const floor = style === 'dots' || style === 'soft' ? MIN_MODULE_MM_DOTS : MIN_MODULE_MM; + const mm = totalModules > 0 ? actualMm / totalModules : 0; + return { ok: mm + 1e-9 >= floor, mm: Number(mm.toFixed(3)), floor }; +} + +export const CENTRE_MAX_RATIO = 0.3; +/** Share of the symbol's *area* the knockout may cover, pad included. */ +export const CENTRE_MAX_AREA = 0.15; +export const CENTRE_PAD_MODULES = 2; + +// inside planCentre() +const ratio = percent / 100; +const sidePx = Math.max(1, Math.round(input.codePx * ratio)); +const padPx = Math.max(0, input.modulePx) * CENTRE_PAD_MODULES; +if (ratio > CENTRE_MAX_RATIO + 1e-9) problems.push('too-large'); +// The pad is not decoration: it is four more modules of code that no longer exist. +const knockoutSide = sidePx + padPx * 2; +const occupied = input.codePx > 0 ? (knockoutSide / input.codePx) ** 2 : 1; +if (occupied > CENTRE_MAX_AREA + 1e-9) problems.push('too-much-area'); +``` +
+ +## 证明闸门真的关得上 + +没人看着关上的闸门,不算闸门。引擎测试证明算术,Playwright/CDP 探针证明页面,而且它刻意不信任页面自己的结论:它先找出码的黑色外接框,校验**时序行与时序列**——缩放、拉伸、裁切或翻译错位的图在这里会失败,哪怕 jsQR 还能猜出载荷——然后用自己新导入的、站点按需加载的 jsQR chunk 解码画布,像素是它自己读的。只有作者自己能读的符号,在这里过不了。 + +闭合性测试是为这件事专门留的接缝:给控件设 `data-simulate-mismatch="1"`,回读会被喂一个错字符串,探针断言下载消失。闸门必须扣住文件,而不只是嘴上说要扣。 + +这个探针抓到三件顺风路径看不见的事: + +- 一张在加载时被拒的中心图——900 像素,超过 600 像素上限——会静默退回“没有中心图”的码,并且照样给出下载。这正是载荷规则禁止的静默丢弃。现在被拒的文件在清除或替换之前,一直扣着导出。 +- vCard 的 CRLF 在 textarea 里看不见,因为浏览器读取时把值规范成了 LF。探针改成对输入框折叠换行,转而在解码后的画布上证明 CRLF。 +- 探针跑到一半时重新构建(`astro build` 在 `astro preview` 供页时替换 `dist/`)会让一个检查报红,然后因为拿不到几何数据崩掉整轮。探针运行期间不要重新构建;探针应当把缺失的页面报成失败,而不是抛 traceback。 + +**那条在替版面说好话的检查。** 同站的图像工具把舞台放在表单旁边,所以它们的约定是“下载在第一屏”。这个工具把码放在六类表单下面,而探针的第一版调用 `scrollIntoView` 把下载块滚进视野再测量,以此断言同一条规则——那量的是“已经滚到那里之后能不能放进视口”,不是“在第一屏”。诚实的属性是:按钮就在码下方一眼的位置,用页面坐标测量,滚动帮不上忙——390 像素宽时,下载块在码下方 66 像素、高 48 像素,横向溢出 0 像素;1440 像素宽时是两栏各 518 像素,码位于 x = 719。把被测对象先滚进视野再量的闸门,不算闸门。 + +
+🔍 探针自己的解码器:不依赖控件的回读(Python + 注入 JS,24 行) + +```python +# The probe's own decoder: the page's own lazy jsQR chunk, imported fresh. The canvas is drawn +# from the page's pixels at their native resolution — nothing resampled, nothing smoothed — and +# only the symbol square is read, because the caption band below it is type, not code. +DECODE_JS = """(async () => { + try { + const src = document.querySelector('[data-qr]'); + if (!src || !src.width) return { found: null, note: 'no canvas' }; + const w = src.width, h = src.width; + const c = document.createElement('canvas'); + c.width = w; c.height = h; + const ctx = c.getContext('2d', { willReadFrequently: true }); + ctx.imageSmoothingEnabled = false; + ctx.drawImage(src, 0, 0, w, h, 0, 0, w, h); + const img = ctx.getImageData(0, 0, w, h); + const chunk = performance.getEntriesByType('resource').map(e => e.name).find(n => /jsQR/i.test(n)); + if (!chunk) return { found: null, note: 'no jsqr chunk' }; + const mod = await import(chunk); + const fn = mod.default; + const hit = fn(img.data, w, h); + return { found: hit ? hit.data : null, size: [w, h] }; + } catch (e) { + return { found: null, note: 'decode threw: ' + String(e) }; + } +})()""" +``` +
+ +## 一个只画码的页面,替一个电话解析器付了钱 + +这一轮最后一项失败和二维码毫无关系,和预算怎么失败关系很大。三条二维码路由是站上最重的——78.7 到 79.6 KB,对 80 KB 预算——而新加的四句警告文案把它们推到 80.1–81.4 KB,`npm run verify` 直接失败。文案不可能值 2 KB。 + +原因是 import 图。二维码生成器的引擎从 WhatsApp 链接生成器的引擎里导入绘图辅助函数,而那个模块在顶层就引了 `libphonenumber-js`:**28.7 KB** 的电话解析,由一个只画码的页面付账。绘图那一半移进了 `whatsapp-link-builder/qr-core.ts`,再从 `engine.ts` 重新导出,让所有既有 import 照旧工作,二维码工具直接引 `qr-core`。三条路由降到大约 **53 KB**,站上最重的路由现在是 WhatsApp 链接生成器的 75.7 KB。 + +可迁移的那部分是:只剩 1.3 KB 余量的预算不是预算,是倒计时。它一定会栽在一次文案修改上,而 diff 会指向那段文案。在怪句子之前,先读 import 图。 + +## 结果 + +- **238 + 954 个测试**通过,其中 67 个属于二维码引擎(本轮新增 10 个)。 +- **157 个页面**构建成功,`astro check` 0 错误,bundle 预算绿色。 +- `probe_qr_code` 的 **300 项校验**在构建产物上全绿,在线上站点再全绿一次。 +- `probe_a11y` 的 **234 项校验**全绿,包含三个语种的二维码页。 +- 模块拆分之后 `probe_whatsapp_link` 结果不变——这条检查证明这次重构搬了代码、没搬行为。 +- 最重的二维码路由从 80.1–81.4 KB 降到 **约 53 KB**,预算仍是 80 KB。 + +## 我会再做一次的选择 + +这件事里真正的价值不在于 jsQR。而在于接受一件事:解码器回答的,是一个比真正重要的问题更窄的问题。jsQR 能告诉我这个符号内部自洽——模块对、载荷对、没被剪切、没被译错。它没法告诉我打印机是否把这些模块放得够开,能不能扛住油墨;没法告诉我 logo 的挖空是否还留给纠错预算足够余量去应付一个指纹;也没法告诉我这种油墨在柜台上那把扫描枪的波长上是否吸光。 + +所以让这个工具能用的规则,全是量在纸上的下限与预算:每模块 0.40 毫米、15% 面积、四个模块且不可调节的静区、红色通道对比只作为警告而不设墙。每一次拒绝都引用它量到的数字——“每模块 0.29 毫米”,而不是“太小了”——因为把限制说成限制教不会任何东西,而拿着文件的那个人需要知道离印得出来还差多远。 + +探针那一条,是我在别的形状里反复重新学到的:一个能被“做校验的那段代码”自己满足的校验,不是校验。给闸门喂一个错字符串,看下载消失。按读者拿到它的方式去量版面,而不是按断言偏好的方式先把版面摆好。 +``` + +--- + +## 本轮刻意做的取舍(评审时可直接推翻,请说明理由) + +1. **标题选了「The QR Gate: Every Code Is Decoded Before It Is Downloadable」**,把机制而不是品类放进标题。担心点是搜索意图:搜「qr code not scanning when printed」的人未必点这个标题。是否要换? +2. **五条盲区并列**(模块下限、中心图面积、红墨、说明文字、整数像素)。并列是为了「一次看全」,代价是节奏平。是否砍到三条? +3. **pHYs 那段我改了仓库注释的口径**。仓库原注释写「缺 pHYs 会印成 15 mm」,我按 592 px ÷ 96 dpi 算出来是 157 mm,方向反了,所以正文写的是 157 mm。请复核这个数和我对 Word 行为的描述。 +4. **没有贴任何真实门店照片或打印件**,只有代码与数字。这是不是这篇最缺的一块? +5. **收尾用「What I Would Build Again」做反思**,没有第二条 CTA。符合本站规范(`dynamicCta: true`)。 + +--- + +## 请回答的问题(编号回答,每条给「结论 + 依据 + 可直接替换的终稿句子」) + +- **Q1 算术**:逐条核 EN 正文里的数字(0.29 mm、0.40/0.50 mm、19.2% 面积、10.9:1 与 1.9:1、50.1 × 56.9 mm、157 mm、80.1–81.4 KB → ~53 KB)。哪条算错、哪条口径用错(例如把静区算进模块数)?给出正确数值。 +- **Q2 技术反例**:两密度回读 + 「两者都失败才拒绝」是否还有反例(某种设计在两个密度都解不出、但真机可扫;或反之)?jsQR 在点状模块下「缝隙落在块大小两侧」的解释站得住吗? +- **Q3 pHYs**:592 px @300 dpi、缺 `pHYs` 时按 96 dpi 摆放为 157 mm —— 这个推导与 Word / InDesign / 浏览器的实际行为一致吗?若不一致,正文该怎么写。 +- **Q4 人设**:指出任何读起来像店主、教程作者或自荐求职的句子(给行号或原句)。标题是否够强?若不够,给 2 个替代标题(保留 QR 关键词,Title Case)。 +- **Q5 结构**:五条盲区是否该砍到三条?砍哪两条、为什么?开头是否缺一句「什么人该读这篇」的判断句?给可直接插入的一句。 +- **Q6 CRO**:这篇要同时服务「印码的小商家」和「看深度的招聘方」。现结构下,两端各能拿到什么?指出最该补的**一处**商业锚点(不得新增未验证的承诺、不得写价格)。 +- **Q7 OPSEC**:正文里的内部读数(80 KB 预算、238 + 954 测试、探针项数、`libphonenumber-js` 体积)是否适合公开?有无该脱敏的路径、账号、供应商信息? +- **Q8 中文版**:术语一致性(闸门 / 回读 / 挖空 / 静区 / 上墨)是否有漂移或翻译腔?给 3 处最该改的句子 + 终稿。 +- **Q9 配图**:如果要加一张表或一张图,最小可用的是什么?给列名/图题。 + +最后请按四维打分(各 100 分)并给一句总评:**事实与证据严密性 / 工程师人设纯洁性 / 商业与招聘转化 / OPSEC 与脱敏合规**。允许直接回答「这条不用改」。 diff --git a/docs/consultant-review/reports/report-batch-10.md b/docs/consultant-review/reports/report-batch-10.md new file mode 100644 index 0000000..12573c4 --- /dev/null +++ b/docs/consultant-review/reports/report-batch-10.md @@ -0,0 +1,49 @@ +# Batch-10 外部顾问(Argon)审阅报告与落地整改记录(2026-11-10) + +## 一、审阅结论概述 + +- **审阅对象**:`qr-gate-that-decodes-before-the-download`(二维码生成器的解码闸门,EN + ZH 双生稿) +- **投递方式**:`argon-ask`(4 Argon / High 思考),附件 = `batch-10-consultant-review-pack.md`(31.3 KB,单附件),prompt 2.6 KB,含 `MARKER-BLOGQR-4712` +- **耗时**:246 秒,回稿 13,755 字(原始落盘 24,566 字节) +- **顾问裁决**:**微调后可直接发布**(`draft: true` 可切 `false`),不需要推翻重写 +- **四维评分**:事实与证据严密性 94 / 工程师人设纯洁性 96 / 商业与招聘转化 88 / OPSEC 与脱敏合规 100 + +> ⚠ 标记核对:回复正文**未回写** `MARKER-BLOGQR-4712`。按内容判据接受——它引用了本稿的 slug、独有的中文原句(「占边长 43.8%」段)与资料包内的实测表数字,不可能是别的任务的旧答案。后续 ask 应在 prompt 里明确「第一行原样输出 MARKER」。 + +--- + +## 二、逐条落地台账 + +| 编号 | 顾问意见 | 处置 | 实测依据 / 落地方式 | +|---|---|---|---| +| **REV-1** | `19.2%` 面积在代码里不是定值:`planCentre()` 用 `round(codePx × ratio)`,小 `modulePx` 下 8.7 模块取整成 9,再加留白得 `(13/29)² = 20.1%` | **接受(改口径)** | 按真实导出算:`modulePx=16`、`codePx=464`、`sidePx=139`、`knockout=203` → 边长 43.8%、面积 **19.1%**。正文与 summary 的 `19.2%` 全部改为 `19%`,避免读者用退化参数复算 | +| **REV-2** | `592 px` / `50.1 mm` 是 Version-3(29 模块)专属,正文当成通值 | **接受** | 正文改为「29 模块的符号——含两侧各四个模块静区共 37 模块」,50.1 mm 与 592 px 挂在该符号上;`21.9 mm` 的向下取整反例同步保留(`floor(295/37)=7 px → 259 px → 21.928 mm`) | +| **REV-3** | `1.9:1` 的红通道比口径未点明:按 sRGB 线性化会算出 `3.95:1`,刚好跨过 `<3` 的告警阈值 | **接受** | 正文改为「只看原始 8 位红色通道(这也是闸门的算法口径)」,与 `warmInk()` 里 `max(r)/255+0.05 ÷ min(r)/255+0.05` 一致;`10.9:1` 经 Argon 独立复算(L=0.0459)通过 | +| **REV-4** | 「缝隙落在解码器块大小两侧」的归因在 jsQR 源码层不够精确 | **接受** | 改为「jsQR 先用 8×8 自适应二值化块求局部阈值,再在模块几何中心单点采样,某些密度下采样网格与圆点白缝产生混叠」;双密度策略与「两者都失败才拒」结论不变 | +| **REV-5** | 第 4、5 条盲区本质同一件事(纸面尺寸契约),并列会散 | **接受(结构合并)** | 合并为「四、毫米级尺寸契约:整数像素、说明文字条带与 `pHYs` 块」;H2 改为 `Four Blind Spots…`,`jumpLinks.architecture` 与两侧 `` 同步改为 `#four-blind-spots-of-a-clean-bitmap`,dist 锚点审计 2/2 通过 | +| **REV-6** | 中文版把几何的 `mistranslated`(平移错位)误译为「翻译错位」 | **接受(真 bug)** | 改为「平移错位(mistranslate)」;同批采纳另两处中文语序修订(重采样误判句、19% 面积句) | +| **REV-7** | 正文缺指向实站生成器的显式内链,小商家读到规则却无处落地 | **接受** | 在盲区小节后加一段内链 + 4 行失效对照表;`https://tools.hoelee.com/qr-code-generator/` 实测 `200`,符合「外链必须活」闸门;两侧 dist 均渲染出 `` | +| **REV-8** | 现标题缺 `print / failure` 词根,抓不住搜索意图 | **接受(备选 1 微调)** | 标题改为 `Why Printed QR Codes Fail to Scan: Building a Pre-Download Verification Gate`(`Engineering` 降为 `Building`,少一点宣言味);slug 保持 `qr-gate-that-decodes-before-the-download` 不动,符合 slug 与标题解耦规范 | +| **REV-9** | 开篇「免费小工具站长 / 帮我印」口吻偏弱 | **部分接受** | 拒绝其整段替换(`highest-liability asset` / `production requirement is binary` 把第一人称生产记录换成了营销抽象,违反本仓「以做过的事与量到的数开篇」铁律);只做轻改:`I run a set of free tools` → `The utility suite I maintain`。中文「帮我印」保留——那是引用店家原话,不是作者口吻 | +| **REV-10** | 建议插入读者锚点句「written for business owners … and for engineers」 | **拒绝** | 这正是业主此前明确否决的句式(「宣告这篇写给某类读者」)。不加 | +| **REV-11** | `56.9 mm` 无法独立验算,标为「无法确认」 | **接受(补推算)** | 已在源码核出:`bandTarget = max(4, codeMm × 0.13) = 6.52 mm → bandModules = 5 → 6.77 mm`,`50.12 + 6.77 = 56.9 mm`。正文现在写出这条推导,把它从断言变成可复算 | +| **REV-12** | OPSEC:80 KB 预算、238 + 954 测试、探针项数可否公开 | **无需改** | 均为前端构建期质量指标与开源依赖体积,无 IP / 凭证 / 客户信息 | + +--- + +## 三、真机验证 + +1. **禁用词与人称扫描**(两语言各一遍,仅扫正文):`homelab / home lab / 家用 / 小主机 / 折腾` 0 命中;`you / your / 你 / 您` 0 命中;`we / our / 我们` 0 命中。 +2. **静态构建**:`node scripts/check-assets.mjs` 通过(206 已发布条目);`npm run build` 完成,`astro check` 无报错。 +3. **锚点审计**(临时 `draft: false` → `npx astro build` → 核 dist → 改回 `true`): + - `#why-a-qr-code-fails-on-paper` / `#four-blind-spots-of-a-clean-bitmap` / `#the-result` 在 EN、ZH 两个 dist 页面 **全部命中**; + - `exec-summary`、`dynamic-cta` 均在;`
` 各 2 个;内链 `tools.hoelee.com/qr-code-generator` 各 1 处。 +4. **收尾状态**:两语言均 `draft: true`,未推送、未部署,美术资源待出。 + +--- + +## 四、下一会话入口 + +1. 出美术:`art-meta.json` 补该 slug 的 `evidence` 与 `ogTitle_en/zh` → `post_art.py` → `plan_banner_crops.py` → 拷 `banner-plan.json` 进仓库 → `render_from_art.mjs --only qr-gate-that-decodes-before-the-download`(必须看到 `(plan, plan)` 日志行)。 +2. `draft: false` → `node scripts/check-assets.mjs && npm run build` → 推 Gitea(再 GitHub)→ 部署后线上断言。 +3. 发布后补 `audit-tracker.json` 条目(`status: approved`、`batch_id: batch-10`、`en_chars` / `zh_chars`)与 LinkedIn / dev.to 分发稿。 diff --git a/public/banners/qr-gate-that-decodes-before-the-download.jpg b/public/banners/qr-gate-that-decodes-before-the-download.jpg new file mode 100644 index 0000000000000000000000000000000000000000..65edb1068cadb97128381b649f8b93b97719ab07 GIT binary patch literal 75001 zcmbrlcR&;05-7aHfW(SHumFNc??pgBiWrp+0@8c$D7|;ZNbiBr1Oe#+0@6h(QbX@W zX`#1-k_h+~fA`*Z@B9AzhQsbA%Pw=~OrJS_#{WzKj{(wufQ*ckocugF`Naz`*oBMN zE?owHuHB}fqyWe58#L5Z)HFBP8E9!4*m+r*S$RbT1x24Bo*5YUoxOzQ|MyG20oTaS zg_231BVhy}*GSG?Bl*(`&;cX>o}1Q@0%DZ1eo;a;iMPT8amG{o+SR~^r~GP zK*0ef7$D6Iv1C$&%Q8u;>O!R1`IsRHdD2)08#Z_lh@vbL16=k}7ZbdkJp~DE4Mbi~ zWM+H>?@vVhcpb`h*W}`bQjRYl#$UX8@gaLY{GGs~Cj(DLz@K)ZfhSp^8dcWFAX#`2 zQ(|IV(S^1(X@Ei&0H9w%q!M5JOpJd7zTg%Zy6o>2|)f!SWMFA**GB9~K`3Op^@h{V&* zD!Rm&S=^j>%HG4*XMxfQe~m)vB)(3$snbs8dm)eOd0b4=T?z#CTa6Our0#1kMiAMY z)_182-hy-lQGx~n%n(&($d81xPavF&;vc>afGEZ&!lYAz0aV;`21X`X;G#6sH3l_f zSqL+w8WI3xQ8Ca~B?+7?30UyF=nLI+`0!7jka^PBSqpBHhoLIw`SwzJ?!h$>pch38sY<h zaBAwd6_9as$0dG7%vle14^B)kTdnrxy*?z%vAg!>i|d$^9)yMbEeZ+`C1-(x?0^EY z&SU@rLj*}Hev^~=OL~y{f5*8P{t-SV020Ii0XYVVXbpyeb7lET35UEbfS5jlf-eGj z3Yv`w)abbgkz+A^eov4cUin;*i)Ap@rdCg>YjTv+&Paapkl%=TovvcK&6mLa-7li5 z$e}o~DBkIAzTZ@;)@;07e{Ekz^uyFwUv_5~Y$k;!I1}v@;mhA6Q}gsI){XL;i+A1Y z>-EwiOLL3T{X=gHjW5#F>8HCmDZUNo;Pg%mS9^Yq&m2h+dyWxyPx{B3LAFP1aBv;i zU=(Ni0EF{QW?6tdvot82F)U0F85U?Dh`K!NBeSWhY!(2{7Y=2C2LDJ^ltoc9r65^M zbre%lbkqgHxx$rxe4Z}Z^y9RfE%2Ex*|XqV>_sd2*6vM(@U*KN@wB_B@XYEC_m-y$ zIXjr&-^^K7AKUd!czP(wo+NMF!ZRwtr87Eu+lVdgL~PN4=-*zsNX*EWob_?4wf!|! zRdD-x7cMO4rwdHiJhZ)>o%&;_Zn38Au%OI22ssc}5O_a94gz%$)BzVIOBEUe%D{hQ zS6+V~7A_4g4v@tH4dP?5V+uuqT*wAP%CLlf)x9nq3&=xE)D&5u+22eNiGpy&He|x5 z&pOmPECa7>zBHKMyT<~qlSo>wpq?aZZ>ihy;ewbtW--1yLL zn*E&Ca#eY^b;mpX&m$wfb0Z_w_7x7dy?jo?b#@z@-DZY&PUdtn8rq!{VsKtH4JNC{ zbI9d2_ajZ6;Ciacb3&Jdy5DiiwN_rwbBjx~?4h{Fj#z@igV?G*p>1DyR&!c&GR5$# zx{`iqVFUHBGy}k5%T>tru_C)GoZ~;IWkiPR#I5;vd= znK=~|kxR+&h(ec@1yzzdh05oaXR-KTSkdNiD^}+%X;9sDIa#K!P>4JQ#DoddDE~Fi z^H~`K)Pdk!Nu(h%Bn*n6)Tv%)RF!)yhxjOCq87xK3bFyU=DevKD$W6}l-)X8?NYTK zgKn2`e)=dj_C{Kpi?RVLbEU(rd^>r2VYrKWT6($)_ZzV^U$@@QoA-0)hL=_s45Az} z^w(*eoDJPE@Apsmaa(_Yq2ChxzZz8vx7NJ+nw?Ay9osuFIdcS+nBBu@y#@F6v5ee< z$-WPpFNExp^;=s)#|K7-(Bq?R(a8#foZTPVir&4od>cN(XkB3@*N_o8wYWZW%6P!gOTex7$-ZyqIeN;7nbTwMyI0A!ItjQ_G(&x z{|P(orO(Pd-kq`yPd>a;Vzi@4XUS8}!xm-oTIJ2U?)B_^d9`VbEi^->w&= zq7He^1~HWe;+VpHlO#?yd@uq}`p+D~ku@s}|wY4?7 zX}gIDH}YHdx5BJqh6wsYb4lWk7OUNvz6bF}l7{Z(=o=!5Mbp^bTGZ-T|FX%i6-?31 zk0+yzUu>A#vfZ8ed|*49 zw!T+Bmh=AItB>eez9|>eK7WITS8r-s)aBc#;=rjDe+vdZ22}tG{9DNj%Y6b+@~y#4 zGNwV&By3DTL9qPAyOf}z4FZqP`AFcTq}h*1V^~JYg^QC>Rl37J;=L!r7jt`3$}I(! z+TtpghdM1sY?MUuW3^|NO|T0F>5`ncJHxEF>Lw2AQqv+a>MKOEK5wIED@5F0`rNb1 z;yrIPhvN~iM8gTqj~(H9=aIJN_DED-;dS)_+o>Q#4t_GT@4CE%&KJRomEhKj7E&DlK;9#eT+>)`->amgxW1qslLz zT6gU@m$NEP$NzoX(aqaTtF}C@XKFgb!N*Z6w#;Arjz>wsT#{0Qc)F))%TRG&19ogw z_+CoiP*MAmvw`<<>C>>}k(zLW1-u@a?5{CuC2nQ$xq#4 zErr?@8>Zp=LZV}Rd9}{nA$DdiIs=pIPENFavs;Jy#_Nmg+hUEE(7LFaBeCBd>RO5M z&1@S(tYux_E7K#D(uf`zcB{B5aj_D|o=_MtE zzoTB>pYA*6^Zhu#bDQ`F=<(F?J=w9Cnu(-~cEG1w&7W?sO%ldP2KKz_n*zGL$~47K zy_AniSYk?Yl73NRU)2cAug*zwb*UY7wYF%d26>P`xn769g&2eJl{rYwGq_^^jTuf! zfl7d=G64W0RQ{W3KM(_4fEcrYMh=XEx_V@R1f@9Si&fLnlETrFce-D4OvgFUN*ri0 zoK4|k^`4FS>W1CJ&8?`>%98T>@>+X>NKG0V<d0yyE)G9se-H2)e9};KlCA;TFuoPq5Y+{s9yh=Xd$EmTHWo3D`a_qi4}pAwv76sLkl~5`hJr zYl&Wi2&Q*MV6P#fUi)QBm?U{yI1l{GW>j`{0hHsSsc|JF5Hx*(EdMLC@Sr{f);R7i z7%zj?(o`BiB*Cizi1C?Q3xHlcBHI)Z2kB`Y9N@Q8n>0MyyCj}|6Gx4o)*fxF=Dg!O zCDzV8(H^-ejaZO|SL3<%mJ*$S>MROaLaIN%=~T~*n~C=pfC zaRJZQMVqx+;ysp6qQgs+0bo<5#i z9ZfY?GMpq2svY0tZ6(AcbuGYr?h5KNwBO|HnmmcUQ}sy>kM{=yaO z)C3reEtXG?0%BYd490EL@GNcFKzV5Pql;`YL2NN#{ApQ{1TmGXVrnchCGeXU*S=aT ziP}ELojxbkykhC=A7FspXe$qMQs5h+W6wlz#~Ca*8QVL)cSiq@0JfmG(g;i5TpDzvWT_q9x)j@^LV z6FrZ8Bi25=8TQ2Y5Ab-;SH+4jb9^}FJtvOySUsAY%^m9@W?tSkVjVbv?fwBS4()k+ z`Q3?@=@ZeL@|*H)7CQ;U*O+ChT-gD6~10T>$RWh{TNwR5nuwEKk#dO6?w zntyO#7ty96qzYPGFeWGAWBzL>&e95h#}#K*h5|$&GE}jJ2>?BF*#tOfphF8OF92)+ zNMUI}QC^No@uF@Luk8f4x8d}}OUq)yOKfd-dAJbT;EsEmo7i+;*}#s~OiNXh*4)sl z>*C5@h3isd2s)?61KB;0UgsNW_zXQXu{5xVSHI)HL+5UjTh#4$#jV0hwmHxOrdajSv8cJo;2=nvquz&$^fwdBq7)X(om z+r#tGa|gWf%9zZi(mAK{CPSZs1KxfyETL$7&ag%jCG2*pI5&2D9vjU~l*-(abVyDl zI+3-%p_Rx}@)h&HGf}l`wCK%0v=(4{l!58{0~ixCMZT{rS-aLA*Yqvzi#`)UH}|fl zbJNYxSv^yCQTx0vBE&Q_HZj^e)>0nCH{boXLt&s$bA%!MBQj7L)Sn=I8UEz~pG)OS z;CLcSLP?$yEJwwLB2@%44**OXph)}#CK>=30*OQv%af#;eO5BWcj^e3by@a?2=%p( zmd^Cq(`ZDN9$u}*`@4@Ci1-_@FRpEQe172F>sEUlmN`^appA2H(_8hbcjw;~u>9FF zINH9BroN9cP=a}jNzmt=NJ({^h8@gqubvu3AJ9k|ZTQY9brYTi{Bj!{AwF&XvFe{0 zyW!HnNsLZ^Nu-zAlOq4VaB%QIypc!3YlbJfZ2fz?_tk+vfNkyZ=3%pzuNw;2e0g0; z=2&aK-smGC;uii7ppK*MIrbkEt(z`OUthDq{hm8F(LQ~0>rf?V^SJlW$u1vva$A3M zhRf-3%HU$!sr$j}v{EB2bOTQGMAepS zAmhq0H12d+bSk!c|C&&;bKSKmLf?7J<14x^XupQFdM|rph0qt)zw5T|%5PIu@+QN- zt95tP+(p#seHgkwb)dI4gl&2_^?P5Wjk7V4eoX4|uOqDyNp!&Aag^hs;Ij9xeIv@& z!{+m4y(iHh_nHOsKjH+}uufEK$IU-{Gaql$^AR$(lShh@Jsd?(u56FhzdUO0mwN7Z zq3PZMU6)y&-f{E-mp` zvjZiUm3rleho?q*2S+AHBke`^hpupaiO^^gF46(HHkcer2>`)oxg!?xltQk8|HSS8 zisG>mI?}PyEG)sf@E|Y=3XrfRfO-L~G%5qF@-tKHx1>smZ;_SNegN-d%a7=4uJ_QW{y33?kT%CS>hI`a$q)YA075B8w%O^CVL_MNVK~Yu7ZQXj^TH~?tF;Fpt zc0}Q;tE%+g^*(~!C4s_Zav{&}!Xcr7z+WKA;sZF&5_DMw(lN+TFlj3ThJ;`yWQgu#RdL&}=E(KNyCBnopa@9+Jp+Js1OTw}Ga%lp zAq!+W5ofH*pbExNEP>>R1kja$%9-#nQwf(OQkO?F7SzONR-gq%_tTZDX*GQsrEaXa zc+)?gceXh27vvpq%M8T*0T7;(1gG;Wcj`AhPj&XMT2vAapv`1$~@kusUC;Y5)CQ@0pCWuo+^K)ZPN8}!W!CcVMsYnJUc#&g3p3MzJnhW;6c z53w#{x?*WF+?%)imt6^o80_|nPHt{(zHS{_EH9&aIq9ZbS@5)Wg(nJd*@hum|1SqyJQ$7OK06e%0fPo1Q;2OXEWHrl3#pHnV zmjj+upYjsAMhyShtoKb1oD;2zQO}@c^U_25y0$4|bK1_t*bu?cX(K?Tb64g3VKa)@ za7SvRAt0B)d%pD~StUAu>7)#OToWDe>9_!mSsPq2Ut<+<>Gu<9z8dRyW3yRxn$SGB z{d8}Uz}n+C-88i)!IQt*q?Ng?=Y*FMQQ>KRy>%$5_tn`qqwEEikdDFpJ~E(h@*Bft z%wePg@ZyrnHK}?T+i2)grGamX;ZcsjLCHNK6Ry@lf%RGDwvwun7o$x=9R=mZHr89V z6Ss?`F z^ z-3}$3GW|019)^YdPL7tMbULYQd%3#c-RRdh>u)veNncv;yql36kW$)6&$-9jcO#(q zp^90+fzj3E`uc$SUxS$Tote2uyLav-#NaeXfKbe`w4bzCpaD{X(BFw$LWv$AE) zlP>~N?egVQH)~LHejZw0>K{^2a8g$S$>upcHZk0N<6)w~|9q*G|2c5dsR?Q26 ze+dQ){eKc5w-HuqKpbePq_2aKR2DO(T(CS7Iar)wP*as>Q3U`Pl0r5nrKF^B)rCb- zM{$BZq3$=CxOs1}%h74mF1E2IW--%zn&9zeJ+fJ9Q(zyvc-oCK;`2um$iikHxXqs= zFV3;|HESMiSq&d%h91og*EM?j>z%O9`@gRZ+Y4A%>6oqEJH1-9d_sE~y?PXVjyQ+J zOJ#aFdW2044Kxon^KTQdgQxprgmf_P*e~ic?qELJ%hPTzUZG{1+?n)+31i!jiN9Rw z&i-a_QY*r}YH4&rAXi{i-}c>TRdwpbr|zP%%3NJty*jrN%*??3&tkM@^z6BoWr7~h z)H91}vu#!#t@T3G?R16s?CqX5U5<32=0f$jHqzue!26437(voO0)e}HXJq=XaZb@H zi-Cbb#u%)d$b#JW^(=swMlpfe>TEf%^mzgFTg_#wET@xl$5`w|Db0j0Ew}qQqzm>6 z-^?>eshA`P+v8|ea_zACWo|eglS6~(R6o{c9<2Az2H59^ITs zlxp+0LlawC4$=jG99I%CiQB)9l7on5do?52WUbn@rU0jFTmJC}(JW1m_x}JN#(GQX z1*czOrQSIb>E9B)PO#+!y|v>;`WMyFa@@&!51;Cr*-jSc-`7rEF0N=xlGEIq2*BAiBQ3ZyYMkh^77=NblrB1Y&k(HK}nU?c{u)UAm zeN2^=pxyh>NQZE(kbYva$nD9)W=KZ?@!8cLN%UM88W*7UeJtY-Fx$-Zs=Ta}z#DK7 zz?!cx;&1kA{j)aX)kgOo_ySVoJit0(k@$iLxN^ zkmmv*7+DH>_A}L5*X|DlEpwdJAgNWOk8}=}Pfdl6mu% zGedKOsdR46)xxgvKFHcHzWF{Y{ysGOk~rLr!dXdN8Mg6;qola{%5hXfQ|5j^Ydx*^ z$$1qpt%KP0u4{B^Pgh*um#nHYc-2+vi|$yKiasgZ?d=d;Z>A%%qDKylVo%h|w|7pR zS5LyRgwb}RXzweM(ZwgtxDWf--$l7cA)6C^g>E%NbPlG6-+l991PY?`Yf2w9a=+*C z_fPaza^q}R7@An_4%6}>bCP=Ip?3fNA-*p_Jm9H;5?zy@^@`K#XhueRm7VRTjY5d} z<4BC(9mftQvH5KatfqlOabDWe2=}{BvUeGwEKFyaI4CIu`VSA1XMV0d?hxy&BtJRF8sIuc4Yf$?|L)i361aRI#v*i_c}gr zv@&Z~!&~G22e?O+67e%~J75i)Slja#A@=3f{KBjn;T{YSjm}N$t*86^Zulbpu!n2o zSZlMfDJ_7Gh^h5e>0a4a-%~N_ZXWhuC*;k%`d#F*>oJ+~ThZF-o3rUV-AR_MFvirR zQUe3Um~Zwjya`{&`}?YPtVViA##Wt|hL;^|+rtDsbgM+`>!@;b8@q*EANY&V;4@r! z>)IQP@>U4mD|;f|R`hmO5%xH@!ivD__n5w(Q4Opd7{`I8_rJz%GYRGk2^`V@MD|i1 z>?~shCzXR{TZ5ELfP<_V#GqRt3#arp7ql2I_pKFBm#ps0bkbr$r{E8^1UF23Q2X0O z+Iu!zWsiMQ46x1pd+G5*3;in-$@H2d^KOlYWTJXvUwQ&WiH5#*3x5FRp&j2tqKC(x z#~5*sI2O0=LuzeBKadKKTeYARR&Lo2t!7BQeHdFY&+@) zrBb~{2D5&ax_vpi-|*eqZI#hvdbB+#ElmL&Id)&PwxO8jxUD6pfBESh)<{C0$Yz6( zWIiUp`!r>>fjU2bXDXu*Lo>5UxaIBd5gn|LDieB=80DY}RdQB@1%j3ZbZVH-$P2WNs!>E( z(9ThROZlRvfl{Oy{7Y1bk!j~-OKRV?N2@oT#It81v0_yN@kZh6Yo3>loR;R(ukvT; z`=49a*)5Cn%g0Kpi=D`!adV?5wBpU;M4mrD4u&9jepM>nDxk2*WX(SoyWUB3>ho8L z^t1@foaeP__v}N|A8$+~lkRcSn%`Vtme<@dQ-Xye-v5Uu zg9kw40sCJwt)UzYHa7*GnQ;<`ISkOqmOdxPfRcj)U|tzTa#kFy;(3y-Sg9C(i`~>g z|Ml-#7yrJ#JFFioxNG`GU4B;U&M!^$)$SgMCX1}UB)%vZZ_CbT=Dks*KWXQTv1(or z7h30gbprQNcB&avp+~#OIlPZH6KUJ=FK@>VB_0F>5spsm%6H0&yc6%06#m zu$jsyuwa7#(cPs-WpB2q*c@I$JE;*LhlPoM3Q1{Oc)tW z-!lgS3<F`|2&Reqt3`RO z;|6aDEY!MfeEzKOVCOo>TVN1UNb&FZh|(at1{*}9~Hc3XhKn%DZE7jJ_75SmEYLw|h)-_SOO#pCyd+}wA& z$G1Ga4{(cw=CRLi-xmx{Ygoe!qBE_^Le~6@h6uh*U3#qJ++$pI`BOi-}C6UYLpNOr!8=Zq%YMU1@Kf{VlB0!DWaQ&XY1A2W#u@{$Qs2-m}KuN)HcYMxA7U zd;Z0T_#d6U@%@Vn2OG`jMr`SsFatx_GONt6$>H8G;dJ%R-z5*{qP^*rmONd5pLfEs z7OzJ)Y z8`zYi%-r81=wEZ`oCnzXx?3m6j>%0YZ_k%LbWO{ZSdT_(dm|}{K20%eXJ4t_2W|&V z_o%+OHMBpnuXNF4j3w1{G^@%kf@J-r(IY`h2I;?7!0l{DCNNwJ1ieDgodJUn7zOkz z*`u=xHX;~?(g-&G&>Dx7)+z23-T%2_IXIy(N3Di$NpauQAGNX?C_U&nUsfPLWIfc> zn3KQZn^Bryx-*+RLC>;DY)6!DtsxA(qsRZnNbr9$3I zQY&kId1-d2r}kD>h3n;yW0OV_OQ#`ak-jyf+k_~+-Ej?#<@`oQnMl-{cVypj z!vWUp1|4qySOkmV%~{X9zN8X8VpFQP<~(Pm)0S#yQKVh*+^xemJA5#kQ&kQ?yp5Gc z%1Z;x*BJgSg~gQ4V7(d%=DEQ77BpM>FD0R1^8}+R)4P;F6eXzJ)cKjRTMfzlnlxo+ z(w^&~b!#~TG+QI5JtIy|HJ9^l<~^=0@0hL_DeblK4!E0(9-aRkk+^u^Ry`;xA>kuh z|2)yd9WO93IQesfwQO)1XFoXgJs2z89xZQ2ZJ>u$@0*%PPK>j;B_gzEYpng!H-BKC zu#KJl9l2CqR%h=^Iemb|r_H*HEmWe>!I*5XZP9^f(fw4f$7^%!d(G;SHd5vUe3MYJ zrGcHgD89M$_;BqGhULwjXUo1u)&5R9`#V0NJDVa+2bD!t<>IXf)1pBpJuCiTLN@k} zn6X}eLJR{y0bFAM0O-G@?VPG|766e3K)yl5A+x|U2-46QFJ}Sde3Nbq|GBfH_nNy=_Z>FSQJ z{{UUI4Rzy7lVF+MzrIduq;_^_d|FvZaP5P6OOihN_IR@6q?+Z}WO3Ed#6Xhsx~53A zsGhstvw|W+v)Bzj=egtqL#NnuzoCF%{Rd`>7kb}-O=%u zv#+h_7|qKWU{H7<1qv)80dNY2v)Kc{ZCASZwF^7jD>XvQ+cDVZvH8HB^txwc3o)-H@bxur$?Z zM{{$VrIaVCJp6Vn&Gl3}OBC+d$f+Qbu&sx!bv_a2#hg5I^ebAd#u+_Xtma%XWXXtH z=<$ulZ-4dN-|M!(9e%HG?q84OE=Gw&Opfm;Xh+MXzw~J=jaD{v2`HF9{9c50)vxbO z#>h`v{s>o14T2bhEk%IzXMhr#!1S-8=0BxPkS1NA)Bq&>3?LyWNf-ka&vKcdT|)#0 zo?`$mLr4Tk6XcZ&Y%FvH5F7`^ZDrbQjXCf8_t5U%mjuJr19E@NRC-*w9ItR$*rGdx zRTCqHc1ozN+TCcg`&5dl+?f>XXxc?f$p6Ie;k4XqcXZ^Oz6rDaCQH)bN5=Lbn_gTIa}Q@QvzMA1hq&WgcJM6B?>42-mFU zpHFewT3yXop{@?zucdq=!Pf6F$4+>o55^rzzKKUMEiWL+z3(N1 zJDeLYPO8-4#b(@*$+%`-B3I&0KDaXb(4F^jAGWcnBdRI$X@1h&I;JMa&vv)5R7xSt zNGlncgMTPxxZ%m0f(`q)_dK%=Uw{^N`<^W17Gd+vF!8mHNtcXkOQM*`$XL@2C^OFnxD?7C@3lARpO&tmuIK0Vr3TN870J8LJ2X;xSx~KZWXf{Qaa|ju>0F#cR%XWkb$rc? zznj^5Q%|&e(Z}(j=lI4lwn=hKA-BnQV`^N?C68miw={3GNzAk(88SK&Y;qAMca4#P zg&ffat|dej#Q*=ZmL_6>Orc-FFcZA_FCJGjmM4t?rw)Bjo;sYBT-*wI%LFS49!LzO}VU!_pV_y_n8m(RGt# zr^Lx$=$a+hh>ZHSVxkC5(0WzcZ8}3Ld-H)AJsT$zMQsuO(Q4YX;x4fdvGSs- z;F`V_FMj0iZD`N;n0O0Gw^`$&x>t z=LK-{3%C^{0ruiE1sCbHvw4DQ8=(yY7gW(ej#qb@F?acGU7|22b>Spc@WIb5QutbK=i;y|yy{1Y=fUMbOQ;f}M_b15Azn{}sxxeXhdQ@V-W zlS?|i6Du1!?|$pHM?E}7y4X0lCW#&E7bJ%a4MjbDh~jTdySYEcLyO9xa$e9!3C`Tt z*(uf>iL2@i)f{;@Izm+?{g(7;5DLT^0Nyj49YL_`^agucrQzf#Ch{0*lpMgsh>$&- z-I+bQ0HBzH&$cf}f1;wKfB=v9$Wft1H`H2N73Gbq3e?s*?bPIo<>FrHR`5?IHj*Pz z9g~X-64Y0uUHrC z4(oev%a#Z{=hP{nKp<$rtIZa)49P%u%%!a$`PY{GO_GCY$< zFfYl5x(tAp76pUAAi>&D5=wvq*;VisVwuCFp#zkJGs^2yiL{6JGW2wqRu`u*ay+H| zb{gHIx*z{zbzAs*ZI;#*MN7I!?-JZ#P_o8kr2Xq%tAY?0inOEss6)N>eI9>g$uiij z>i-9zd~az0)#?6F`7y7_VsvD4^(k6Hi<&!yf5?ucEZpq+7c&<4=SDL+7N!!*3$3Hq z7|B^Gp}=(+u$2UCB)bSQCJGKVl!5E=??J{E|KYFZ1Rwx7JCF?nLGk;`nc&)GQ9`7V zh>H*n*|#Vlv;}6NU1dzJ2+7@ix0t2-Y8oY{Ad^c?UC2a9N%CCyV@Kk7b&>Nz9{i?u z0;y;YQ&uAO#RrGwHy7wO$Jci@Fa@hek?B?wSX`qL_KtG$1@vvA zGyc_@Yp-shX}2y9x1GB1=Uj!sx9>h`R%hRZ#C7G$1wH3@ORXv$2=ZG&Favlz1Cj{g ze=eZ10E9`J1%Mz}NWcU<6X*}dfYnD71MrC%L>}=Ld5!YsT_!}!HS249MK3fTaTOQ0 zwpb%?v~!aS%u#*NL=-V)Uuc)VK0T6s;LtH$I~nevVO;8>Tl2Nn>WZ2$|A^Ra+-r8l zy)S}lunv2cJf6Bxw3BOZ|$X#jC{+X1Tku7v4%2 zziVy%L!RTfnEXKsz`--0Q`l)SLDdcP- zfE}J?Rq@gOo^+%zW~OgSeYE*J+32pFno{EywO;0n=&*RNjlP(t*Sxbib>3fZ5~xaz zr6iTrmSJSM{CRp9kH4mHb=-!uSYjo?v#plnjJ!!P12%@A220~$vKtC@K z6j?w~mf|0T$nLuT3p4OU0q)WuVFE8m_$c9|prarg3aBwtpnyPu>}s7(~;ATHHhGIwaLxssb#-k&DF-(&-|Ff`rUiGxN63J z`O$st&Zx`9MCwrwT>@8XA;(8XW)es!qirB?0rb#G0SZJQ_@6=e%cIvA{$2xsj5Me| zWTnsC77}oG5O5vD>a8M)EGiI02f|E+M6fWz8K_dI-Em81Yjpa7Kg9OUem4BQM0ZihX04GO=@PfEe~=sAOc31yI)@yl1&@9_!B zmzbB(&l76htd_OP?+&)WA0zM%H`2!paOg0ZITol>o#CIifEXgOmZM2jc$~Ee5 z9u!-WPvp=jP|KCCy%89W!LO?28Ww30AN~8=zc-oR-|}Ug56D&E=&C4uvC0G9*FSsY zpC=WhBT8U{lqU~A3Xv5TCUPw6LwHXZN?rf+7ay=y1w(g!#QABhe7G4x{Ui~5G?w8W zZ>YY?Dyd8Ezh8y4^I#u}>KqiE4c9C&%Hk*Qk0j$N;>guczo(nd&KWQ$_79$Fxz(#f z`~~A-bcyk+RsMm)_n3vR-+L4eB3E3{Rx+KhEY2#?cXF@v?9aiMf54VE4wXxVvPx`C z6CEt^YS$9R)lFoCVl8wuHKb|s``Yv8?`$UJyAU56zSAfgkR=_Q>GHpuW4@ZP2Fylk*}t4Rlb!) ztSDG{-dA~h5@GsK#z#dQU4=DjrthN{3-~Lfrm}@MG5Bq~Z46dFP@`DHIsL8mIIH}j z2OeHxd66Gn9gT6M;`cn6P`0Nb)Grc6cRRM6w~#Q?-P5V3VQX)qsMpQ3$;tOqZZZ;T#I|TvV0)=mh`_wt~|U8x3?A| z<0`q?1^5+Q^{+Zs808iM`$zzQ*U9FF*f|EY`V6 zXYyK1dJ@PHN+#?vEML(Sb!$G0Oe}Jd)=8;PF(2M8}z9Y|BfVCc$C{`RYYi3^^j@a-PXIimcX~ zff{K?^VC>Yvp)cF>QJql^U(S7-aByZ@8~ivVi_0Zo7dLBf2^bVB1`L+g~Vu(5r-zE zmk3jMRQqKAlTMlkM?XQ?<8=x=BJke5Xiyx41r~oi%==ZP6ht1c4e1Jb!T#!H+iaJ= znAUGnsKe}ne{3H?bfxhIqo3A#l`^3=HgYRRM!>e@_4FqI- z*7PAQbFS8jPb{0cr7QfTkE2%Y!zks1Fmzn?wE%Mh6hfjEm-+5>s-ya@TJu!)@RogX zE>QGB{#~y8H|86x*Y%NFt36d5jlxxIPnLwGLK$W5JJ&cz)a2Z5il5o$e2<3et8gJP zX6m`DL$dr@;#vgk6Mx89tuB7zAw~8+)cm0LMc*!X}m!A{;1lIimd+d z@!l?fk;>cQx$)CW30FV@e0Z8xBHI1nDZ>98)r`LhQ7a%_@d_v*IY({>ucY#*!Q(h zAB{6&Mb%0*LahaV2{SR0KhtCR%=P|?a!N>JK8CZgj;k3t`ud8iDsBB;In0xFF_%#b z|EM2dIGKT>6wTuF7-X9;1*HkIFi=o3BMuifu0V&iDi!sqhH6_&4KJ=Dr=HYZVy*BP zik@CP*0O}^V;#K)KaA_EzAjmQ9(#k504C5MC(kAB@mfEXsp3fFcvMjS9!@kNizbKm ze_qt5sm(o>{R5C#r_gUXU#DUmOr4x@TIoOIQ9L$#$v-mId$_;?M}xQJ2<89SnH^RAi;!yH#7Y zpSJl~=gFGG{j0PU>HW;lbu_!a@jOMCKSdZ8=al8}T@)4PkQi~{7G$5BAeS|{J z{URegD$4zcIeL0O>|Xe0QRHS{*gJf(WKoq2npoM@AC02l>jbj#phCl2eK7Rl_Q`zoFnmPf zH?&7&{&~xhHAXh$KVQJ*m2zF!Qxmg~#8_UhV`qB>5%~7Cqbw6u-$n zssG@`ew0Ri;{=pkxutN!F2u2!@12hlG0-ENK#H*>x>Jyvok zmLh*OYH;0C+k}q$3Dv!Y=;!}lyUxowCk_z?!6DK zN}@FliLy|dosjDfMDrxBC5HX%y>2OG{=@XG`c25g{I-^>wZtR!T~YcErok?0I7c^d zKaVS@0FWieTXah|A2;Swi`GZI=xS7Q$U5)PPpXQQk9pBW5JQ;j40to`HF*W|N;G;6 znI$O&N0S_NMPK>-O`|f))+5A;56RjttF=@a;_TzPm0trovk?i zY{lcMQz7FSGzlx9k)>^J_hS?$H4)$p9`RS-Hn(PYA}{O2O1bZZyJ;3 z*|30Ty&EmZCwdvRh3hOEwOxKTXe6MK*EDAEXG_1>#Z>O|qn*gA{L;6Va zqpmk5Hi`1iU&|94kz#hd>d+=A5&lsARkU`(suzjV`u3=ov!$YDS}EkgNyxpV*hhs@ z_B)jD#YSio)Rzj2=HN*WJ_Y^VXOh2vHmw-G50(|;w@P5Skw`uDQr;4>@(b$px(sjo za+yduH$jUgll2J|Fv+Ihb5b5!%JC15b>XInj;kv?s-ym^ju%GVGZOJTqvuZT16xNs zI(R376I)?6^$4eLS+h*yBn|!K`H>@#!TG0DCHw={PduUQgQ~97f0lPF6-klZ)JMLe zd+-yQizr9z>OV9pGVEsHM{8SM#ey-ru(3_Tk{GRfS-;!f=~zQP`SD=;9zq|yH)vmT z=#!P7art7i?uX=jB>GI5)7c&^Sz6m?ez_#Z3ieOB+q()lRq7}Z2GcCqfO7(0*(#^Y zYS>Pdb(aWK*X_<>-dT;L?H}6;SF_x7{D!GyaGx_rYU z6cJaSPnF&085+Bzo#6_}N4>UAw+e!d!*MV_PWlqA|Hn_KafilkQdhIT;kCYb>z&QV zRMhoQNVD`=(iz-z8I}(J$A3CrXEyi#M5SAVFhX>WBcxO=b)MfHTaR?9q`O-pAwrh=Cn1&&;j0gUPoJ@5`a$jdzJ}Iv?lbe-Kn+ zDO~x?oEWhGFtl5|FL3I@!3uf(ktM=%v{lQ4t*b$4TQ{vq|51KNedMUEpnp`~n39;p z1Ur!Vh|0v4jQoF1=96Ie*BCnlAtvpSqyF5)Q4&pJst7#2!)ww^pGhq+yxsdCS-uKj z?~0kdb+5p}y5^_S5o_q%y2+n;69F4)P=vBiL~CtCH&Mg!2Vy^q#Oy!K z3J|l;!0<4}$v&mn9P@&5NOWMK&hWU~_IuqfE-uoZfV$0D`BM%K9j`jejkrvfM|DyO z?z^p`@2cTUM)ze0KB+hiL+dsF;81{XFY6Jgde=4SxmcvhLm@STHxwc9Y&rVx@V28d z7{>EvjKeY7^7pOEMn~alH&H~}ffo#Us@@!af+upS5hbDf z+nYD3SqhHB+0CI?`vB^rvb{w!=^V&~FN6%cQwwYc2N zp)YjHsKbw1>Axj4yZRmQjW8#whE&73VD>-;Z8EESLAk1n`uP4;imgH`e$4a!ek9)WgF z3ReLm_BSB<`JaC0p-k;6lI5!sf>-z1*w`X>E?DrU89_%>n!2_#$?`io2W@$oo&x(Y zEr)@1^=6yd#_Tj~C7Xm;|uBdZU3dwU4CQI0{{t%Bvd?aHdGKS~(?PY@1TV&R#@6qglX>9zDH0yFF zv$CpRBuPfJim?Yt{FvJ`wd$ysgoJ>-=(Lk7l3*#03QOi>c`98h9qgN>@;~+xy>G6r zhMmj7k^&8~`90Ocnwj9AK3E9Lr=OC5wXGfVelD>f-u{6tjmV^}hWAZsi3yUsB}v7; zIZU;^cJ2Q2FBK>J4X)eCGsA!BA%!MT@ku5y-(^ho!_mJst7=r#4FGiW=n^>@9DVH2x4g^G*+r;_Y61Vm|7T&nhYt0JL%uTfA^FqzE_G)O(W1>^e#4b zl*W~{3Cob6$~BP9f_D6D&oI=1WksfPo^X`hebh-6lQ4qp8Fq_V$z@1a2TZt zK8;-cu7@o&Y($3GJaQsfOHg-`GwqRS-&NA0HuNAud!D zGjMK_3R7Ot+lgrVtcNp3nyXnWER^H-Mo@X9lM8OwqYIf6tZd{)C^qHu6SVFPC&3gm zah&>#AOGV&`hNVU8h=EH#Nrk}b&{xZoayf|&@u#P&bubZ&31C_@VwBc3>Ng?alw;G z&~8ln5tl(y1KP>8A#{ljZ1T&Q_~RZY%(%Xt@pXCX7VJjmOjgje2=A@E1NwNu9HAH- z;0IOL53g`?C|M5qkpDah4r&Tz`lsd_{fA3K<~>GXD3Cnb-M*3>=!!FXTC)8O1tq>< z+U-F-xh=u=y}=CLnAc|5z6X?WK#3%7Df+w%)omx<`%xc-4Q*Ml?xsfNridFh|SM1gu*3cN_wPwZq9PG zQz=8z2YktnJA^7M&-c8r^8SwiQXDXW$L}^4I1MAE ztO%;TuZr0C@N2V?(SzrBLDoS8WQx8K=psizeK)MXH0RU`L{9&sG+Ew!zUndg25N*b zply0w7qIrmj=LDXu6nvf%N8Mgs2nA}A}FW#P-5d^II94wF}t91AZpyZ=$TTq9-o`; zO&7*>I?ZXn@e}*?>p&j>>w!NZ5k!e!*y zAG?)d_4uSs?w#yUCE|)xe+c%(^go=^E*nzB9P(1HJD$D#B}QY59iv-t z3iMlV$z2oLWY`us=5klBmlEqcd6bAyFi&fqh*_e~WZE)YweHg33F7m0S@&8HV~slk zO3N<3Dm=Na>ilQ+U@{mc{0PpO6vftW=QL|iBsHtpxN-F8)Pw3Ots%TkbNJ@@Xl_5M zhu9IXI6*4Jor*AyepyT7k24=uW-3-&&%A!Kf@-fjrfz8w)4E?mMTLYV&Irn5vH7)V zY0xz}*3V-TU%#mdtQ4jnmyW?5lSdoU#4bq9m7U0dA&EwR2^Yy(%ln+#DAll#bMwEy z%cV*lJ6kyE62|1(^`&9-1J%8UE21~+)A|-p_&AVdFPT%t$1Jf(+&Vz6w3J!N!ei_v za&BM3_7CpPF(2k|{iie)sO{c-tCU568&R=r3ULnBt@iyn;;{{1xG8dRv}k@iO~u5inHUy4Pa`@RY&WjciIC*jz^1 z##aIeYP2L_iv`-3U|F<%17gccF!GUwNodo%a5|wt*!2JERFwaq`fi;jR!jO}@uu~K z4YeymM+3gRfPJNf{q)1_iK{|O=~Eq1JIf7Ad2)H;09}G~@i}R_Gg@Zfm)aBTtH@(p zBr(47VkhiaEexD7<5#LOy#ue_k=lx5X6xQqtN^FamgFPXwanFOi+{75SJ?m>k)wxL zeS<15tg~wc<=|0G!eT$PPSS-fo(mHE^krK{+s|q!_OvTmSa0f8qNVD)(>{eSA3vY$U~601KX>9OSaFJ)6h%YNk8i5X-jtDLSuOyZ0Y2u@EuQq zTItV~w%(zM8evd|fRA0|4w1DkFN#|c89L>M#rxLQhlgrH4H^t0u-9gj+2TJqK*Xaa zVFaZs$~ezvz3UTodm#GC7GZ&8y#+DO=Z?BOH34+g@QNHp?5;p@VurX?rI%)QR4}GxkUm&=D>Smzx}+9UUaOaI6wSEi4a{>A z(vEQ|4DL=X3U0M;vvd^5DQYDC!6m?k%(is=-?G%LC9`0I863NsXphZfY3e$%N>olu zMM(gC-EQxT)j%J;HnCZ@C_9l$7(L84q?8~^I^faThz(Gxws|N)3sBj#_!fOAqV9Aa zgbht{b)s=GCmF%Md&MQruDV=daBE~7gl&P)}uK@Zk+c;a$k!W{G*W@7i_C^v)=+V4)Mt$ts!EE zf7F6RXgw=}-9&|DKbgGcy{<5Z_)~DacVLYgpGqy@F{LRF=aK^?Co@hZPi+VkJm^W- zC@Pmd*FnOG`if;UWEjlFqDsf+kmuVV*1ZkpGTVexdH>)vHYBr~h=+pl&W7yYrP5cQ zO+hG5o+~D|0fYv0sijW|Lk5onAK_1w*)98dqMe~R)mjXeY?Nl^MrG=0BJ|MD>tDPo zM{|B|@k|jkrIfc0*wl5T_H%-d@>kafIE>z?LU2|`)Re%{Nk?8N=eBeV!NzVDB;-2@ zGU0ehAO#f)%lwbGAK3Jwm5uZ^?ec;8b1Rcn$V~SSu z9Evi_0Sa*$G->7EgfyQThe3Wtl%5Z4%4#7jKXS2uCa<;*I9C^nRGdgja0!WpnBFxS z!4)9xFJbPr8Gy5t%*Nnq1Xfz-CRlu=TXLd7ssL}9kMxsNS_p&gq3G8|lKEFo1oJb%b zPDM-+-}WRfzh!(~c2Wa4s|p`PKAVBK&X#v6X&9c>E3wGeD@HLI)t>kB1s#*Bmadvl ze-*(FP7{inGtccKE+1ZNU%fXW%nP|IpAe|^ZcbIYAoQK!Y77`6IS*O5{&#U zx%d+7pSEu^XyYb~LKeBfdJwO?JO8%kM+~A7?>v&Q4}_Je7%2bX;*OKz+S*=MMUtdg z`^wXZvfaW(m8Jjk6UDvVmVD)+8AuSV0`5>&y%CVJ8QMjp6@KF3ITjt!gS5D#`&yE1 zC{T0$x_2RkpMoPPPUWGWzDqjHoJX<`z8tlDgt zP^t511WkrH$A1{GR;pguehH@dV7dmvwp*+0Pa_H^*iW3OP3r;n&YBK!OkZRpHR0FM zbFr1WgvGIAvV!gfRtsuRZ70-n9Qp@pgnHJ*u{WOeAig0iym?8i=K;mU1c~2-QqO(9 zdF@h*4yuzpM3qEeV^jWvYXAlN8e;r|!~1#L);Jwn-7mUR%p8lYhn`^|d~f&q=ym-% zCc!52J9YcyuWhCZh0=8HI|g!pBq8{@fyBDl5uL-yrKi##U$=wh5(=n_%16BwRW!mu zf|ud*ryqXjMEjj{+o^W!EULvfQeNwK3_(R=Lw?6dkoBqr#b+vvsU>5_{4}LLC*n>fQs1TdT~@svm;5Cn#Ps7%Up8YuG`V!%Yw zW7wa&W>=uR{fHilU`PDDw0d~3kgInAM9tpu5AFm#ph=?qn+Ep0u?O46*((8q?VUu= ziSjf>g}}NXQl2u9AlCHGcc1`WU7MUIY^C_r zLytb>wMiW;STL#g!`078VcrL?u{I6w4I=Aga307yYC9sW+_3dn66r0Jv3BUUe<STo8}WmyjS zdBDnRWuXzSckKK6jZb*exk={$!9S~Jfl@Y)pfWVR4IgMlC#P2>zyD+Arv2eIRi^7X zyM}A}9Lw+}W@>2F-5z^S1bz#*TSJpmOjqQ?wDO1V)1s9y14g=8xwOZ~`&0gX&;{DV z$GdEg_>DHp$Ic&Ubb$uR8`tTI0q>os<-DQxH6W$i!dD$m@YZd-u4bZ&CC&bG}twJyt^PjL~ zq~<*x>d4S(x;5SD*c4m&4Z;o1#owXz8!L)}S>*+Hpyd-LqUKen%E-%ImNvf8wk7N9 zbdA0mc4_;H%tP0m?ERa{DC0=ZRc4exb!)#Q8rEHIjQG)U_69CU1kTul*&q2MhHzq% zBf)e}T zBQ5+%WHR&lTY&8vR;7kn&*xIIArt5w=+4vNDUmmlZV8vsWKYzL79rFgxL& zBNUpYaTR~8Oi}tv0OL;SBtSmcvVG=6^cO|M^q4p5R)yGZ)tCzJMc@{1OK`Q&^e8lt zx^7+vBKCm`*FL#SEg?fUAE7uu2DV+Ndl<^B{GrF-@mmW(JFxSji{j6ahrFokp5TZB zRc=^z3Hqc?Mn?u-1}OV4R~@V#j)tC`PMm9fNT`nsViVtARFmxK^}4{!&$G%r{Iir;cCS zQRdN|)^@W9cuO777K7*VM_*osJ4cQZhG)N0ESBms0#d+I2T+#i_fSG;%CVs357ily1H#=IWNUV45)G!RK6btmq154?>n8pVeyq|s!R?F4=% zXrb7h?e2ja3?@N)LXI8%y-fe$RE$%oK1SZ7t8*m%a&Gp;1}P<=D5drSN=+Y+gaI{n(>RNe~n3(2R>_0y!{MhJ=dJ}(A`zk6$ zIaHV@xN(AFI=jm1uwnOcJ$x^X4%AYMVxO1kq}-99@Xe83s^Nm=JBW7agi6Z5WUUs~ zr$TwLz22}%j7eEaKaIFr^19Hu3J3oe%X9VYMxt{kgPgu;oVLxeL##G%ah|V08p)5JUwOBD5y>JL$}spK!zJ+LHa4{aA|Rny)P;nTVO> zn-njps4N%57CQ>~I%os4vHFd!b$}jWbf;La=pP(A*?7VCIHR{3;$QC8y*lC`Vr&+Q z`mt-&GQzclL#>Rzn&}HHikd%RXvA})(q8tLBW0%n!mY$`*(dL5E_zL9-O|}zb(%pJ zoUdm&pwy+{z>jrL&^Ft(e#^xmdH7)NinR&q zWqa{a8cX+T8qheDsb4v{vzGUl^e%Zd#ai{^$1uV@y-qPAYChxFZQusvT4Va+HDSyv zkmpsM0Tc_4O+0LEehTWneNn}H7reCH^1W@`)586*w3D;ck^l`C%T!kGtVnW_FXgc|zekAat>g z0z9C5XJU^}6n_XE-c5_V)3xC>p73zC4$}K9%B%M4%S*K=G9 zT>~a_>ZNq{u-0n#RR&GVHSJFAnC>;0eGILL1By0Q9U&%>!yopOw#SxCy?4@%c%fBbZ|~8USzJz}e7FrS!;2Z`*GA6;&R}#v7+OF$ zqy;Ep5_XRFI)`-G`FT)7dIV%o}%jc}@+Zjyi7>*WwCa52D|w(PJ3`RN4c z9$JkGw~u>g{KR5&)2kFOqxcTAZeW`!O%@iCF|2-PbmHfIEyCHFX}iXtbAM1Ab}=;2=2$2nSXGSfs3wM10HRp zr_+Hl?W%DrD3rDsjHui{buD+H(GTI6mSx@Wl0OtQJBn zam@QwQ=7qnUE`aiq9_uTW~a-hVq(KS)NRQ7?I$YM*lvTCN5pLfh$w73a>Omr$Vprt zqfRVNlU!TVqh4~+oUKWB=^4aC(<`r=NW@?XkV%NKxD93Bu=k7ZT*J-#FzU{l2NsBU zsk0hA+*w_Et~t2wr7y&OnT3`faY_;hv#&6?HQlp5`0@S4j(tRzi64y!E72)Q^7!Od ze&kXR^!b0gYK+_`{`$s_i6PEc@X3*}UR$a&`8@W->Cw#~Cj&GeWRbhB-B zFBIstxr@-u>}Uh_Hm(A6_+_b?UjpW!HN*0MiV1GN7oV4{5D=w~6Kg{Xgi)|VK=rH{ zeX*7GU>m>ueDjB>0JH}q<8TM+m*IstlXrNH-2ocOsEaPsb;>`+Ip?dSaev`H|A$aI ziun9H?}xU63la77OIbU-$iw?Uc0R&D_1?eEmg9Vi@cf+8aB9Bqf1E62QAZnzew|EYV6rlu5?C4Y9~Hu$Tw&{KYCw;b*C9W zV_4gk>X5P~7iX7ToweAIPQ#iZChe^LE&2);&)sYakdpNax`glke5vitQoZyf>gepz z-=#Kc>;04_eLg6;40a_VE_qG1)Z+J5y!>_A-)!j8lFh;H;f$MTaGPmsLTsSCqL3+L z6I4Ow4m7!`EKo@v+&FKUfBz)gEaPTy@x`OllrG9ubu#Z>>6chb6E>jKhV0%r2}wW- z#nEN^io2q1q5Q``LR)YlS}eB^g8Kyy}w~i^%Y{xEB!^;MvBTyrEwmZme|%y^^|{N z&AT`^1fon?ktG}uOI;n6rXL8<%Lb4RiIId6 zZZy`LNznm^7H$c__rimZ&PL4*f07@62+4>>BzR0W3HYq&;)<1-(O%7XXd!3X(pKA) zkf>a^1dwAY=`+(W*xjk%P2VkPAo!%{>Ue_cH~Mj8zBx3dn; z{-LPJCg#nHyjmmXlhJZweL$I5i-~wvfF?J%WM7wr{A!aJN=sN^L3tr_R6qFgL0UKZMCc(!$qJHIW4@uj?=uk zazaFerOoQrh9bWK4}|RwDY1pt2Q6(AwPf)Nk~rTq-@Zp*o2inlXeaJM$-Y_TH0bl3 z{3FzmCOFd{qL&w^5mMNuV-r4=isHXA{m74d7h1hQSPt`*kTgaMJ{|<o%R?P#Gwk7oD>r%j@@}mT5<>6j=|^S9z2~-KXs%!g zTgnCh5(U~di_+13g@16WGm~Hb6wxXhIS=&6m`bB3OzF#tH7sZEyw?@9aOcE24>T7y zti=s9ce|4mCZMd~V(fooWWrY5ITGE0#!l}A%GjSksHd>SK%u>0%GP9cLx zZO1y}DXapuL@h33)t023?MhEGBmwn(`$BE=ueoXgtBsXc_31&V84=<}z>TFf2WV8k zVN+vR8{;_2oM*H<8h*%fA~N$uu_zx@WU=4GmgPkW z_;|&5*LJ>8w)x9GQxh6bkuz8?rorMzEv16U^~b?o&B4{6+Z~$TodGsqn43jP{u#P@ zn)&!sI}h4O?Z)=k{I6__okDft7a6KWlLYVCcSz<)doHaH6W^Bosqsc3ZL*N_OmKFF ztj}Op;Z1bZEVsSl8ln@&KB`1iM^p!0ooSoPG`2}p_f5cHjvmC`NOkGhlw`T{Ebe&g zv+$Y{3%j^Mid9;Ee2b5?=6emCJr%^9!zC*pc;tE*PN@f{+F1h!LvMw`iD?-5{K}Q! z2iMM@a|~WoTs`e2L_vU?UdYX5@^VM}tYU*Gw8JT0|I>;e#ZBR|dzDfWqFqtnb|v_{ z1p9LKMRMKkOM(e_E^HC|rs&VYWs^%CwPBALJ(Q^Ql--9ur#|guC$j+0nlfK7q)Wpq zu(O;>iTMKpE-nel(?$6^2-fK$lhO&OI{<=u?#o9j^%i%tp;Q zIOrdY93rL}U_Aexty@;146U}TzG4cTAl6A+z$t-qZQ^gBGN{I8e?dH||5KdB;^EhD z%b{&yb->SusBpYFvI^1d!c2Q>^XBPJ{Zudms2-r(YbtZtt#zg4?>9334?UM}44D+E$;@5{?_Q6u$@J0nN(|%;0 zgt0QN%SMyWMHLc{I|;&~P;#qbM2~MdP3m59+MkqU2{MyQSxucOYIKpB1$rz@H7F)xB&(7oDb$`l+1Rrd7(zoe_T9f2MPG zJN1c(>QVocCK-NS#$|9T6wX3lWQX~U&T_j6;OQTe6mM+Kqo1FQmFqq|>S<8Q)xKtJ z_RN$nendGVLu=uX+3GfJ&;$r9{oLyHg=INCV9w_}%V*?5l04N0jQSB5(-7 zhcFPug%IHlR>>i!ZW8fJMa6Op^xl_xCWEu-;~V)STsITd){U3`>@e? zZ?qHb-mj^RvGxII{62heE7q^mennn&0}dH%9t)WLK@j$b#qdAqMY?Q!G$^dIzfh7h zPd89@YeErio<%2x-o1)$*-nR3s4t51htmEQBXU`L`N-hN#-gP#`?<_`oW@;Qot86NWJsqb(WDUA z^*DKtG0d0=;UYmwuQdbN(b0_fB4=_RDD9ziZ!rCeNK`*$db5$!V32RgM`X$YO>{P? zztx3DzG+!(#|`#4lg@6EO)3gDC|}v4o(z=Jju+!P-$OXT*E|u?b#B%~r<89Cp}EuW z6Uls_u8vZc+)ibejb+pSFX>5__KD*uP`|bm_Xkq>j8+OP<09IC27{X~^~^j-J)`IS z4RTB^UOmy&oU`U)X@IUvlfk`-6NsgA#AO3a9YmT3a>Y5YPOq`cAbeO2%{ z_~b;vMO1fXMZeZ(#+AD~4Lxh1^F152q;$mMFWKZ@N;=LB{WvB~c+TT>L`KTw;>@DP z{`FPa4l9|etlffWc`GK2WCcYr*klJ`FSN?{9-jre`ghX*5-AG`z0Z8Ff^@@UC^i_>)jeJOo5{5q3eL-4WGt$q#nJ=@YvJX5Y8d%wgNTFvRq z4-X4!bwU9ul@*q(55bB}0S--u_DV$`JC>OR>BO1#oH~el-`|<2m=Ij8*PppWFL|?8 zOfTOZ8+wBBE!mBp00!-DiE=YSXWJe>^<{*<(0)RVbbj`!dygU4JKQx2#OQkg zTf`6V%j17U$e+J61%4{!AVjBL6{IM=Fst84r>t}Ow4tw6TCbkf`m@$@v|FcuBrLnH zI-#wKDd%3Zygile(Q(N`8z3%OmIp*|_4|N4opM~Z9Nl1WWunlWzNd29&Pi>UXfe6h zw1m2GHb{H8y1_LS7byQ=*hqNt##%t<{~nZGyWMQ|r(K9eqe`;7{XS_QjNiF-rUO5s z>jGynwMu*@P|x_KEYAo;uUXK*&ghB_j(^L3W>E;INjrYmXd_p3h(;Hz52v|Y zd+8}5-!IeZ2bKY0g}f_b&#{!L>^%X5dM;-7?DNTVNU#~_UlW+(@0jU1TV!BT6~F1k zWo$P8WquY{9~tz9=ee;M7tyCVBs^Ic8-VhzkzD~dr54n_qn!i<2J9iY zJR;2gah;T7AFNK8S3HvtVH)5`Fj4E8Z4a%`AipT!zx;$EuW3$1wS;=U=OT;Rl;iLE zd-5$cmZ=wSsy{2x;-sC0F4*|g<O1sK5b%Fyb@6_4IGf<0ouMc9E-)HCCLWzCu)bP#!4o*I(A>3#c z){gA_Y1ZN-Grfp5YG7Fj`Bp3TX#dxJ(&+#sD}KFG?r3HlLV9zjf@_1W_wfmfT9`ud=mDdkhjd}*%YHm zm~jJ{eniK)DLf|n+j!A)EQ(ua#Qw^PoZYmd#D50B4s`XjaNRR;!Nxub?PmG;WJ;y_ zYVZnw(f_{mhS(K@uPdSoGU?Ki8?N+p7kkxmJBd%U&k3V-Cfw-N%(8v%$==Dg6aA~U z(o-PpGU8Xu?L5rx>{y;>|ATuSf#o@K;KCumy?gf#9ud|i7q$UxKDVuKzEq8SoG8Vdv|5=GYTNLW{@i>x6WjHL7e75P&L+``<~Xo*KCw^-vm zX-G%?ccq2)VuhgMwuXh(bGu)T$}NTqgf8JcIsW(Fe{ctIaN8Y?Zd+0bmX!(Y(?Hs7 z*&qt(bEp4?f*22x&Vr+%7bKJ9*$H9JnYP4@@?;wV0*lE~6+E9DU_;6UGB1)qKZ#l= zV|}4r0_uFl{K~pH0g(w~*=qZMt@hu40H^@810dAW7>ky%4ptQ{8cT5&NILBIDKrzAmCG7M3pXW z+5i(iAHx{1PN(j0PmgB`rH^z*f(mP{?UocDAk*l?Ia~@FE(YrQ393%f=d-h;&Ntd! zOLX!jCnxFtgA)KqmzE&{<75zN(^3*JN>^5W@K(}Zvpm6@P83OTwE5RZ!Sc5NPU>=5 z8h8a+ZoNzAd@j)L4j4C@oPvVX=D#Wdc70K)qU$PdWpjw167_aYgfdBv^ zFh&x9^N0n5C{i!G10G6r?rlsbzp)J9c!?86eVP1=_JKMTe+IQx_4Y%<=5K*B1v=6^ zfJB~k>=n;ecp@w>Sf!2VL?o$Wv*E1j`8dwL_ z8^XUN0xx~X??(<6!pG0^NO9>{O&^ToMox3J=8dGnPz`R!G+34fE02KuL&(%fWl3`c zxMO&>cWgxP^(@$LJ8~4H5)Tr0{aVoVec#~Og+$fbKTdA0d9z^C7K~LVGyY7s`vX7|apWym-Jo z$Z!lyPU;R7h>#zT8$xWJe4=3gsJN+m5NLrdlQ30+>sw^|GxE6GN6C0onny;IeTMXF zD1&vkUR?4thaXdDQSA+tnGB|>&uME~6bBs@nDNtYnPMnPK9yG#;`r zX0s<2T96kWnU>SeD4x~I8ODqbr&IUD`#`!41a7#AvP3@iGA`$b$<4yg)N=))bUp33 zQGt~K83VlKG~bWusy7>Ho#@@%Hk9j@qOHnW`T6jQ(P9J`p(dz_akXEF0RxE_>HV== z1G;A)bi_JY?Qg~!z&3LkF#%fR-<1YzlAM52m79!mF2U}ATM=vaVCq$FbW0|>4OlUT zmv0Y>Oz{-sCO|daBu28n(J=s)DKXF~h8Mo$xdHLbZtS-Q!KM&vT*o)sHi92QNiy%# z8ZT{jhP4#2WJ?*x9^29k&RU&M?I;rGiMLM!DD&@zwTZyl4Q8Kxco|Fw@6M0Dfp`4R8 zuI8q@G#R$1xApTyMMtF08I#40;fGfU-k?=zk_`HpEBS+9yqU;%VqLbyq{GoABS*@Q zc&1ZYnV(egL*sJegb!?|F0c99dh=%6IrEzNbk!i3<>Vyf)HjE?gKe6Ky)n689ZJM# z6EB60{kRy(3@i?B)V(c}gj{uy4gyJMhfoh2c%Yjdz+d~&g?<7jykKG$;}6mZr5r9O(mcC7vF+F;%&C z1<%!s=NMm5htZR>zBhNUj@iQ&v4Lr?)u>NKx#joUmuPlRZ`?W&MiaNR3~} z7O(!DsbK4i5~VgPiUMDwsGVKzs>GzfmQ6WAwbMOOa{OUSWMg_{z?3IXdV&RMW6?;K zA$(6}-~+y!d0g(^Q+d`9o0;uJ%pET`UgEHf0GO1K%`^ zx{2Im!aF+IQ;t!@_E8Zfr?O}47rRQPapdRRw%P}Zze6a$v+yDC zvm1*meQv`oKtb$?@|{7MY}@d$-yLMr5XX<;o5U7IU0)(Dg8SfGqUw z_r@%s6-b+|Q!WXRL<@oC$eyViQVeTl%4__vhBR}_)*!1NmxYn~&~u^;i+@HNe2^C` z!TOw#9(t1%p8o4F_zH6bD=Io7?ME+t0{+@ql1q4{w$wj3+&kgH6!t=D?Qa*No{XvC z$>tj}lTjRm6rS>qO0tI7)9B+qJ7ff5yw=4H3kv|c#vQQlh z>gc^V=6cTWh_JqBXLAmKGZT^+ocGz1WSy2v+Y_j_sZ_TVya{#<>DO%TyZAvCER{@W zKjel}{B6xdmM)Y%f(vZ#4`yScN*3)Xu<7$f7y8>=O~fz#UwXjNqe#GszG$(Q(n|Ok zdap1tmSsUDKd3(TzWuzuHHru5Wx8gnDqkP05F&$5J_M1+V*1^ZdDI> zKq21bJ%V=Pq_##|`ZoZg=@SAp9MhKOJE{e>JtAI>jb!ua*)6@YFQPyK9zhx5RO=S6 zMm`WazHvNEcmvC)!tflC8*nlTwX&alpzF3%8&5nYs@Ot0pu2i@Bsq{V1evM%1PtJo z)Jt)z(K}Q#=C?vsZ~yd)Ftm}LraO7qg65);3xr;h4%RBL6bic5vq!tm)d zI?uKj_DMJMTT-#Ix`a=qFQntVsiV(bs1~@fHqPLRimB{Hnzqy z%EP2KL!P|3&%+NgTDGV|_>7#%L1YuMOFN5wGL$?cdxLaG@f+3MHZ{cD%boOfAwhV$ zxgIxiJ3cmEY2&<55kqre#QTF{wV&hNkT6uKh$ryz>j(m8yqsg%yzvtuL)T@yFQ&SF zZp#7f|BXi$3c_eX!in^*b)fA^Ca@+YbtBz~CEcYDMcXFxm`IZSGvbq5^&?*4nu5OP z1`SKaCas?itsc)m94`${;Q@PLvZB4M1aOL9QHnpSUF}H`$eA3%Pf2^HqDT9TntiFR zgHH$DtrxXFelg|BW?<*;sQns?(6YF6Y2`|~MY0LZ{Ueu%rtrfOMJ|kX{6D^*xaW8y z1fW`=zmwHg#nN3e|BCp+5M4q)h#6YQJB1@#>k3@3c{e&r#-+%fi2Jz+ZR0W=0oBGy ziB_EQW#nv$251ve>TbL_ALDpxgLoDB4{iikFhOVxN=ia{CSUTpV}&~NmqY+!=MxKS$Y}UGWtfE9`@N@m%`hjpkvT0Jv!z(t-yzT z2@X?GDoUjA*0{Ffb~1zRin{6Iy7-*9O$Rh8s5BjEawx6=O-gGMYV}oxbX|7oyUCWM z(L&qenZ3WyW>I`FH8gz|--6UCBd|T#%Sn3k3&}_hPaPJDJZBrblCKyh=)Od;tiME5 zi5_S2=NPQF%R6M)ywJqna|$T}c_tQ%wUbaSXiiBB@YA+ZcO98@gIehFdbg)h6X%n4 zUo_ocj{Y zPk%zf*3cnG6j&y`Pi}D5_UzY|{+e|Eem01MT@&s8Fv~{U|D=n62Gt#|0F9 z%mL)F3qYVT04t@(hX3jm@%<|nMvH#gFZZ6y5VMa`WQMTi7YyZjE=Ed8gZ~c>F+@vV zG{u(UHuTZP_wG`Mj-cw0{9XdPK#B@`YlFr1#zx=^`CMZ%Xf=p@=j!AYfF~fQW#g zU!M2<*ZRJHC0WTzZsyL+nYlCfoW0K$*W%X#9F!O{ctR&5a>m3EC)#b4+LYRZt3DQK z7mV|uLD0GDL#j(8!-;j#`MyF`nEMCu=}Y9K;AR)70}c3={{nV1Kc7zt9$s{sF{6o2 z_?+o$A*m5V#^UL++IhG8HwJm(0+P8q9+SNsih$-WJb<%~e3!6!SSEj^)$+$vnW$Qd zL)lyqGhpUT~2rpnX&s$ufAI)pYydF8Y}QQA*eLN16d#dUm&_{viX4^|$FrC{g#XL*(%s#n zc~1BP=#`KEo#%Uh>;CJ{EA2tp@Ho#Vv=}|=0ULsN)DJ4KXLZf7oilN#Fe}O}R zP~r>fI>APLy$#IRAY1c4l8C<#yz<@!Ehx%umTPj#^S(sesKwZ!#LQIojFSvrlw<=; zsW!R-V&WYBk*tDo`q6+Pj8r|pNJr0D`oorHFjfM$n=ur9 z&HR8*QDqyP3KvnfKa}`u0)%S7O!IV3ca~VbycW(B< z%z2kJ?~Gc}130F3wHkZo{NGIV-Ol0s{@WfCY)*u zahzx?$ZoFU{u^&$?bLL1CE1@sl!W{@K4%s$!jF^AtZmQPrbrJT|AtEQOfFm@MFlnE zs)lU(Ln-$|CNc2&vQ3_cneI13^V^K|UTisnIO+)*LXX;Mc=efjAyS;`-qcldgIB_G zHN!vR&0ZxsSd8;c4H>=q?h^_B_?Fj}aAY*|f_Pfy#W~eQpY|cs$Kz}^94TD)qv?QtkM&Lc3h)+juTu*O*mP^J zPV}=s_Trs5miY3=ePYG~KC}C)orWjdHfY}Q?6zx`#2xq#U4it|VqB{J*fg&dc=V#C!f31HVo6Vx_F7QWTs? z=t)?|1XK(B=%^%^J~vv~2*!+S%jQ{_g$=uqgy|nXlgXgG3-r|oWYLb;DcShmdRCznvp40^N#Gf--z-I*G zM1|EGwiNZS_yilcZ`On-w=@5_M&D`LW;XVvTasKmrCb)s^Unb7xE?qI*NY4AnD%f! zs+geEH&K(h2gQdxuUQ<|NDMGZ(5dKh`$X2ODH&eTt}m5#J7)R?EA!)`T=B16GNYmd z&P2mmTk_XG2_3;RbjFKM0yn4RRPrx`^(4MjM?d!BnW{aPNM=uW&GBGcc4*m-;X1bW z+|MagqEr^lp^B$6bmpQ7^Qa_0QIOsEia-z-tD)RPD^)>*PEgC;8N*Euc_C&OveKrF z^tjShzPQv^M@`yoKE^I?H$=PW6P_8nvzr!iuo`%jM(nCYyd&a^J|T03dl4sE;2qva zYViB2MA!cx{`*EeqM?iQ1WU{JIb+Eg(Ol>9g075|Io?)Q>FPd2lonTO8Qm6>Ajm`D z$Y8!`jKaj76O!`kXnq`Fm$@*C2o5?Pany^>1}TB0sG#wYOY#6rn5x%|9+T zO#9qCW$(r~msu@%1b<5hMGrx`!=O-m3}7N-FBU>F5%><{l}{Cnn8a# zMB_7;*PZF5c&eBO(}K`Q*}o8P?()C^my*{vA2PON>x=#b+BEzli8s4vF_W?eo7I}V zHT{>&9&4YUUD)y3pkt~~(70N@s~ygYEVOw{Q#0~(+Q`EW^Q*-^Ca?(#dK%2nZHob%M^N-x#c+2LKyiBG%EcvLVu z3{M3kVhr68>YZlQ%r0kQmD5g>{&3Q?yn_2|ygN|tAJF?}H}fU@TJYSbEbIj_V{$5u z>AH#&OpL8Q=+k+vc;?gKk1*5Vw6PZvGyDF6x>GH|CYv!KL5ixm=!5-|xX>Hp2>o8k za|Ascyyin(Sdrs{glU}^rthIw{6NE(9NGe|>CBKLN5+n~-a_y{1w4I^KG|$s3HmOl znJHQzfAQ)=J)%sYcxG}Mu#rX$1 ze84c*b>b%TUXwh^>ymVAdyH^PO*p4`KhrFOG<_I4B~@|b-Y&D?5UU!u?7V2XoCZ`J zhd4EUkt#G;I zz~t=e5}Rlx2lSa2n*18KEoeql{kD|_J4b!ETu+(R{RVEG6t192gbK+GJwpm%kAdV&VXYs;!&v0@Rk*{8*8!f)~ z9bV;BjT8&L#>-cw0cV{(BZ3wcRc%g`=ei6#gj*e_aQu|GzkB|b#&Bj?SmK2g3h1Gg zu`w@lDzXKe-+a8;*=-#myx}HF&%R|@IFQ@jaD?!SNqd8n;{n3jd6A!|XkU(V{v+9+ zS?|KTr-t)hLqWciw>*ATvRvi3eV0%B3yAcvdBamb7IQ;T!tQCZ53MuW<(}92l<;dIyF#wX4W}15M+qG{ zJE8pi5;Ek|*^5;d6whLGo+FOr`naZn>w$2?+{t?zMG+=+l{PdAqKvU-r3`c{Sq_?YsCX#`zu42Dm- zRPhj0py@yUY*sQ{ZdK|-X;91jO|PiyT>f2q##C;unjkFhb2ejn@xsk;BJZi6&+wE| zNP5yXvMrOM7f+N8=g+f#o8p&KE7E>;r!Oyxji&R~GT=gf0L3)U3w9=7R!W5atS)8+ zpNIV6nCsy@qsQN3$WGqerB`O5dB7+?DHRYVw;~+Ixm9eG{&p{yot`cw^Dx6F@SWd! zVmt8WR&|7{VJXuCR)a+9jh@bic*=cIY9BMjA$^uRngo4D)j8LFtNNVWH#PY&@GjE_ zXYhN`_)_To zBdbQvHgt^Wi2&xn})+KGqkuH);CD>u296(OY-0U zNFJpiFD|L?-lz^ypI^mnX@HuU59o)xMPV-&f?+M~}(FT%$I z=X=wDpPj(jFx6q>fGwI`)31p@`RJdp^xuw(5zE0|C?|Z81~f9?3Q~x!y;fxY8!BQt zZ7fCS61;D|EDjdLe0}6}Xj7wdMT52dNDj14a zxi18A2-GU^K1(xH@VBwBa$P&|to%e({BD>GF?{J-n!>BI+L#&?PC3@$TJ!??q%WJM zwdo;Mz|}ZrE+c0i(N+!e!5KZbToPf+F!Z&EcQ9t&)c!4OwM@+9pIUk?;Cd6DMwh5~ zH6--5ll_JML-e%QaB3UF#w!>x-p=%SB%~emTq^*PUM?Fu8qWE*2D!J%s#(ep&pj31 z1VxjpTx*2s!$hP*mOE09-!ZN&>!CR|AxzZ7$ZCIw=K49SC9F0^-nIHCTMDvR3?Odl zm?36IZMdTlz=ghfX&Ukhi@K0cDBPPbw2zri;*8BR=qT4G$Ss#E)r&K2D)3|%NFYX} zON(-dj$7k-wGf{4Ly_3*csQBdY}r>P#V4ys1K!r`5#|u%*c1KGsvrHv+r85@$x^k& zwzjV627Wh4R_Cd?3``XW0*M6TgEu+p&$CkCJLp`YckNhy<*c1A?W4@xjZ+_AI*87K z6n|S2;J4M|l2L!k?#cQF-(_^rt1W_a7H0Pk*hu4sKq$v7%Y=|hVW&oi=yrswd`1=^ zpzvFkHy>X`qE+EoL&1UEiqzW;3bsvEp)V`Nsb}-NoLcMb!4=avxV-qO2|57pS$iH^V=reL)y4}` zq`Grn@p7^TG+vub*+iQCNuspw2}dC_&TcFvZ}HI^A&l@J@`xEd5|m*8#s={92s6WR zH?HoqBYiSAt1-ZVb;H4nVWk9hAa;sgU}xb?byX^jGsp^~yOAPE9blk)`;8ip7k)xq zy9nDfq#vqMZA<};i@MX9a?}kuRj8ggSU#+e9yz?U@fPw7D0c~Z&n)+@wy*7_pJC9n8 zxYWiJ;uzo52+H(WfT(DF-&FtI|C1Yd&LM z1w#7t3I@7#W>iP$M4sdsCiJsBUFIfsvgN!^Un7sEOkKfXWhB~vGPzBSv3XE(8;8a) zh8l=;*Tz-K(lIbS_t0$I#TWP`$0MinRj4*F#5@CFzvz?XlH)}yQT_DC-5xKZQ4xdc zPx#*ht~1S%FPMk50e1mUZ2v+}a;_N)KL)U9Tl=xpd$Er8Xf3+eS1b2#r|HpU_5ZBX zsdm(ZA=$ZP*nDbDrp~eVLhbZEyenA%XC#1hDRtlRP`Tir!xL&MFr(G|lSxD%ycZ&Nzd90hh9mLoSyKI=I3 zrXAhNe^exu*_JfJ5FcsfMoYf7W9dKsMWi9YLjr*oH$=7O)i}+pPxtV;8{aR#1}V&z zFt2%WCgu4PGwp-lemXk%6i6aUwMO|wn>}4ySYz@VuC&W{b>4ayTSCmzBwi#WuJl_$LRAQ{yu5kMzKeZ2=r#0|f zojPOe$V3r~Q-P1l`Q)Y`Q|9bcn2y9$V##1ioz(cqmnGfGnMZ;ao@YG!YWv^PloVgE z>=z?$qY10E*zap*#fp|o=uTyIS(l_Vp-IJhEMYyGEWJ%{#QOo8xQYhydrf{vuk~1d zi^3!B6SU~+<}0-EZ&6}kg*+X}-x@&@zq*M-FjG?u5jAXX7IvmePgX!5HSTN;xo3ttU#+P`3jq^0F`wk`B@tM7+S!w3F_TP|*T5trH&sH-oA~^9KHQ)491mueH zZbqKC!~$%S!wC3B8h)MQ&`J2RpY%l(8&g=3XwT-%jP{DFma7(8UhsHwHcwE+hB z^K`$32p@z=-_oS(Yw*rYFuj-ZK+bjZ6iUehqWL@RFz-*8ozy%uzoKooDB#WISxa2)$ces*HOt&vtLVw&3Oq%i9%XD}h+w9y=ivP)LohmW)E`6~)S z53*m(Zn$Y~AsMx1N#{4#RBqZGA6pTktPR%-kR!@aH8a8EZw0U%^*(5~Zw~yKI zjAGAybGM(;KfveCV1Gq9-~NmwA1y4e(asp zxy8(2H{BmIj|g(nXwr-u%ZfQUs|g46cQkp59-geAcG)9^e4aIqzoAjqOnAerkfArr zsIdy_M(vM&Q=+NsR*$0^u`bUC9<^0XMDg$j)N5RAF~0fu_V7AWu>S$|Kc zl(H<_-@(gR09_)sp+QW}t* zF3U?MhuqWl{%jHI&ywm*F9E>y-AWyLSGfLij#;&k_QaFPgtslp?a1*T$&7vqj*tfw z{jdbBXl1`&27X}lVRVTT)4favj|6vS)OzmEaQAf{j)w)KY6Ih#6l=St$)3D2@tN8f zO28%&(+w-hJmTg|NSYnDEHS*_#i@{=1uh`B?+)w_oHf|6sSSi*Q$1xWHr?O_@9MG% zs1TwB1<|H^be_<4Rl2$e4&iA3LNuL2qdAsm^&cW(K|g->O@LR7a9gcK z@1W{2(8xp)S;YkJ5bAq$shnnl81w_NBk|~5sq8RSIdve~C9Au_!ZVK^d7r*XWbzB| zl(K=*600*i>YaySny_S;Z{IE;9?!4w0ngPlt(?wj)KdA6BrR!KV0j^oeipWqp(LO` zyF%H%k?p{U6-Lq4JZ+*ohyO9EmhzN~ebX?%f=IZPITSDdK%0Eu_4%Y1)18F!w1PGH z{u^VWre;=hN9QyYuc~IcH1MV{z2q8o=x-R>>xumQpOf4{VBiG6`ub0_TVpNL$`@t> zOp{f134f$X95k)G?BWkK%fSS)PB#`al9vSIbQ>c^Un6h$6cQR*LgziMym=@w2Z947Xw zf*0ZH`}`w_o7JF1Ungh`UAEgu@(ItYdJm{i(I-879>!M;9;ExeV`@i!zBro^Y6ezX zI<0gw*6CV~Gre6}!QRyUS9;QACxjL1OuGKyPE7aAeylcD;#?-VK>aR!eegm}O%o0Z#io6<)!ey2$mRd-YyO{eM;s4D3Niod~X*un6FPAi^sTSpXBPB!@3Gv}nu;^kvtULrAP3SqQD*#F z)BeRa5J*&)kEm1VtqZGn&D~;) z+S*h@v+7+jBSf|l9F*TWHFq&vUb4$M1q?aVKPKFkO{QR1ink|Hz034x=Rno|_AXV= z9?~keO>Wdml;=l`J?%*l+Jf9)r?7KhQbu_o?L;qCT8Mc$Q5E|Oe(zoOH9meT${dszu3~Y zUadKi0_Pp!7jb9eZ{o5DdNRg5 zXD73mY4kL21_%I=I;i4|_eYbwl?z4s$0Z6Pc+hyGPRN2?*4$qpbRf5d+?!7?2jyhD z&>JN`F`c{R+h|^l++GwL>#hb9*%a^(hpz0rJY+WJS4BOwA~#$Zg?!!Nlj6F_QWo0K z&2y1GoO|SLgpm`q&==~RR#qX2W?e`0kux6h)^h-Nm(~Vc_f^%UTWK$?v6i5i#aAZ( zTCUcYGEbYd9WB0oi#q^XX!Tr*E;^aLr_5%P3XqbO_8j*qC8>4fAu(nV>wzVfI z_UI+V7nBOL)Pq4!6r!`&I8IK4JSY&x<0ynn203m^TmKY~loi+_&S(-TsAyJiAf&R8VHj!&G* zEz$m*K%R=vDWSrd-Bn-yDa#~NO&<}vD$UqZ{dqq@+%H7rQ}v1LtgpfWR0d&|?zAct z#njKy;!sneZ(4jVep|P`vz)!|8bv*YO z_0ch6cV#5#p5M7NDt{P2-CHky#<4DW6KRR{*U(5!XT9Gp78-yV0|YpVBmv$)h1wQm zO@9c!t4&7w3IidJIW3b-(@Gbf0{2jQIir}kLjT&o6+WRd!TLu&Q!Fm2g=?mP3H*WT z{L|;4AdCjJjrwu4{KRN)BetRVMScd<&xHXRGmR;hY!NxVg>7xP&a}dM`E*Ue{*lzS zV@C?mk8glFP~SRB1;ly{`W4%gd>odbiffWfnB6-|FCm4vU!XTeM;(#$c4@Qj$f?|- zrvixVnKx{sAMSuqX<;9}Ta#h}XW1e-^}0GIPfLKC)!qUDQPo+p46 zXV@uU8Y8PsS4;l4Y-F0yqTdd`EkY6JWI3Rqe-tPx7{fMytShss9Ph+$r06>qV)s!b zwxRuPVHmVB#sqeUywM^qM>1oQO^dhaKn~CBZ}s^xZ}KG3Q{40%n-9;dis#OlYp1p* zk~oItJoCb4`koNAyKd@I-pXCi28dNveaJY#Xw_Mt-Av56oD1h@2XBGr`P0r3mz7WS z@QwdSY};{W?UZ7pU7v^uoW4^xiEC8V-E%kO%&*sN=OgR3ZdXy)sIr;WnT>z{sYgnH ziE5Gmv8u=^h@>hav5Kf3`Tw!1;`rQyWpym`sxd)hgysKBssjI&h<(xiMyp^c=49lt z)~I$#`+B46ozLxU&x{L=+4b6or9IDzF75t^7wtVW{%JjIpZ=4m<#_zx%T;2^xJcql z|Hw19#@Jr1_4ci`_L^bab{28_^#61sUH?~Q@_!{Gjf;ri9$VMwYrVK89`HEl$Lk@9 zuk9?vQvdG(NfG}EI2xbWCm9pq^3A6^BLJYj@lV&l-=E$o?Y;b;Qi;F+&mUe^*?-RY zv<%yP+}>HpV!IGHWAb(Qg@&d)imLLOb*)$Lt*9}!LwKZ04psf*r-a{9S( zFoWayH9Pr?AWN+Kb&8w*d8{!p*xt?}v1A-a2512D=@gOK@)5vBLb*hmRRmD0oQGU? zX|gmLaFS5^tN5ijb>;;*K1{`*wczeQ5=g96?BMpLlEfDV7MunE2&poT1M3lLaYD}GV3pKY0zIjsJS4oj$i+`mrB}dO$wuqi zKMB8Hcjasm?M18$q)I0)hyd2z%heSEM+mVc64UvvNsY-m5 z0)Hs`5N-q#`jzDP>>_GMcRW_cP>y8xxQ#Kr)O%?GCTlqhMKXxv8i9=OVz>a71)KL>2Jv2> z#_yYJ1zXbe-w@t)Kei0#qv!h#ViIK%dbu&@jxT*N?ic;NO}H2EHp zPRdI@=BmK-HCo%_!w-u!AeiuT)_P2@Uy$ju3XV&w1W1sb#d&YfUbt`@6LF%tVf)hVZw|D6j595iKVX zK}-rTgLx|B6QFPG)MdaMqN~X0C0Uih`(^}_^Pbn}e+LEt7{R|x)qZ{ru0SG`$zI^0)M-~4O1l9fam|35WG+9-o+?!9} zTPc;Q2;rSUlk0{kppDE`tcDFe$!1kunJB2DGLt?f7acg2|91SEPQ=pXRXh!)qQ1KD zyDs2#v>4l$=#J|fe|%EnAysg4G5|l>M@aSL0x3jPi&2G*!VA}47myrf^5-F3Ks`>% zTT<|#rTAC(AwFR)nyRk0QB{Z;@?u=Cbe2T0cgwR148m-3+5PcGmo-mPmrx2;M7gss zu)EW6me3}orwjBDoxU&TjY|-nvr`v(3u333=c4|u!0;r26i2R`~xY@+-c zJ8aomL&i!2qINW$f2Px*+gUuS49Bxc(!u-$wlwd$cAmYWk-#CdMbL}=kJeu9=zdFt zp(HpQ7ws~v?%H;08ksMW?jEDRFs++TurKSe>%@%}$H=MCVM0;j3z&o3y37|15w@{@ z598Xmco>LXMSPM0*l?6I_nCGyJBFH$*7n<-5SEz(m?D;B2{?Z)eeGcBx8l%Inf-H} zDED&sj)6O4HzuovA}&srj48g>xk02!e2;ng%+=fAJQ@BYi~rM(PK$NRU1CPGypw(* zi;&bd%Y0L{Cj$gW+z9iuurKXh%i|b!GF{t#;v6Q?n~ir|eR+5wY9*WD-KjiwFKx+L z4q&&vH%y%pX+@YS{zoD@L%995f`KYG5eU|aBPC?qd2tg=`x?8H`7AYm0SP*RqphNCqNAkBtw#!{F zFqK~TR7a1IL{QBpM@BEyBMnMs8Gq>A6y+(7c~Yu8sw9PDd_Fa=hhI>n0E6~t#sFbD z_sQy9UYK%sY?;^Sk@=S@r|#!TPxzaJMl@O`>Ey@DWlAjk7Q>xH{C7>JDyq^Wdvw;& zy@@pr21fr@-qB(LYLR-smF$GY^=UE|0H6Gxcz}S@(G+FC;6T_b$R znJ}sW9B4?ClfE^omhidEd{CJ6NRQpvI4oYtqTxxJf`F^KVp>8LDG%I>aH}VS?sects&Nf@l1;u)5GDu^-8{yYru)F+_(t4e{L(|fW#4Edt4UMSa zn{R|K`U4!!Se@=kvc$iG3!F`!+juiMqFC^chA|{F@e4q6V)E76V{>--Jd%{Tngh*s z0k<5!Q_akAI!3pUr)yEAR!@uso|pjnj*r7d%6Mrrr|z@LW@^0M`m`3&-jJw~8;2u+ z3oR}k@5Pd)tu4ZuLQPBXBAvKp0LN;t^EPX%Ubh4+F~97tlklBFFolZ{>4ihF6Xh9R z1jHP%8|V41!%oVo4A1JFIdmuto_&AN2zn$p$j0$Ai1a`W^vWp@L&9M=KGrWe=?HgJ zfMrjpW-6>9{i0on(n=1mV8*`{pYhonn@rJ^8kh);cV5<#oq46Miw>qW$yOoV1*NaQ zsBeS{OYaI5m<8zQJ1adRG%5|;ZqAUI*u9kac3j-YHiM1SV3JLgD3vDL%x|Rw)nuZg zIs_6lC&omJX@0CI?}sgIaDyGOguyXdI`CL{|ENOB^D#NSZ<^0;S{QXRe+kJge}>np z;iw!GYv^|{Tkk-~!9t0&%m4HC*M%Sk zBIS~DsoNx)EG0uwau3Z3r=h;30EGVCd(7@$;Lr&=|$t8j-3s*=HJ=2=AO`( zCTS9I1%Z8<$;Ea)fX2wL-4*@>(^f<84`GJNy)lwoO63~H+|E!Hu^`t2f8C+%VxeRg z?lqI#!h0w$pDoS+@X!KSi8G`eLj)w>5uvJYG@}rLSy8YC*0hP3Yj~!ag)TYfP?gCw zgd$-^75MnX<%fQ*ZwII)pQ5qV8_+m*z^o-P%HUc-`ZJ&aVMa5EE zk0gIst#bc$VsM|BHvloU)@8L(iXj2AY9e~w0rbn~e4Yip5)}|Pz3_=U;B)svs*`D{ z2LJ|2j+{I)Jl~+m6J?2#aptDH~K?-?o`JF4V z+C68n;l;ZWl$36^*GmcN7B8;a3QKJF(i1#K*~wW7^GmPT6~0l4N?2?7T2I|~f!51n zwPN>+LP1`JZ*Bjt_5R0}|41Hd98!`jh{gob=p^>WSj~iVg_=qDW^$NFwmy=59yemg zV#A1r*n;VHpZp^MlKfrgMO_MW=`Mp)&&D~;1uldMNuJW14g@*dh6Z-8R6ptmN~zg< zgl;5l2*>!wijt;DLgHG#0F`WX#{&Ul9X5`$&Gs>A*C57xNvenp;49TyW8>8w`3zE0 z6)!5EHak$cZ4>r|r;@AE&(DspCLJ37^`;wmY95&k>t-H>|)e-`F6Ia7`~XH3$* z%`Od3sDV+VV%Qn=oNR~XG8@(c9>Zl|evCwJ4FfU%3>gmtc_tTI$Oo>i=wl#&szHVE zU6FKB)J!7Re&GVu-mUS2%u-h`d)pgcahAgc|M(1bsUZR;r2~B3)iJ;oDbi@SHBS`>31Jo zZ3(HCfe%0AAd7ECm-`SVe&A*N`xqL_Q|xT#3GI?RL(!Rb8ByeyL$nx@<^F0Ary%@J z3GMgV#*%p;6I&%Iq)$DbCQcz!w2NfH?lZaWvXbS32ICR^v-WYK@_TR!N9r*Mj1ZcC zG!m?91(Ewnmp;K&y6htue>_-cojz35&E!Qb_z=w9`Mx2g-aIXhMkl~UDc-rkW6hyJ z_E}FlZ5YNnbJjyVB{GAy*!lQf=SMer`;icKKRzp$g;vYGw~yk^1dSQ0Fs=gX+#bTx zH;E|BFRAInjO^d_bFIUdVA=W|@$uq56`k)6$q6g=(Kw%Ueb3fOCdn|twIa%P@?MHa zSw)F2&=7G zQvY%kLNo9v2#O-0My*I3Z0g>x;1gg%oBl-{Ggz0it;-(QYpM7_i~p^bl7*$5rLN)^ zmFi{cZ<)2^HG-ut6-b63l+3&lxA2>vfQahv#m~@kYd(f(alfL8D>6GV9z7tX6mNLZ zr!CE5{IaZ}z>)SPlxxsVpR(qgWD(5{FkuNyB`|A9rRd_#T4E4Vs3KK==Veq5+YqXu znd`2mu*h| z*ygGAc^dGR_6JZ3wl#y6J@KpMuw-A4>E67KI;pST8f2j$^re zBnRzzKrdI?HobHn-Dk+S9-CS-wNG{@LQ7~UqjG6-efS($3{W2*2chCbUGN5)kn0vyEr((%N+rQzee6R88*l7avJfo(~XIHu|F zm7Gp_+mn?{NRz8c?U6KzXJk#RE(5BS3`v44zAVvp?$cxSU5^xb(#zys*Py-<@2qV+Jbm##;(nZlY5yGX&h+YN%o zK$qezj{bY$YPq%>YiSB92_V$ojnV@L?S6vi^T*5_VvL;=e%p$AhMgPd6#5G$%yvg! z60fEKvGc`a?wM^~xqbuBt-!;X_GDE}6t2J;ja8xh;SK9= zM$^hFOdYDruNdB>jOC=9FI<~kXZ-Q}426RU`t!zwh2ndYp|mAV?%`sA4NG$NzFu`8 z+K{5E&$1}ljXD#~KZRbk4VkNYvifq$gg%qN$eL;A-2)`dIn^*Y{i zT$dHjx9^!>Oa@EnkCRk$LVRd57-cWJ9(br$JR+!utThxEs5d_s*DK3vX@QJ^Hc za2$os_gj+?KVRJ^F~n{e@W4-~{?O`-9;bS}yxIVx5=PjNMwAv;Q{6A+tRb6|DZV2a$G{uV7q8RH2I_z#l5OwF_OPiUf6_9@MPLVz zyv_e@1-2)lT%_c_A0d*w1Nl(fu_SEYg!PI+Q{+xqx)}!-voL1ora(C|~ zu9|3-aqPioFpLb zafwJGC%`JKk3sYaOE&t^uUZ|fdakOR6gDX*k0 zTZGL$^dz&$n_AXa{_TskUIP{0&9rW%ZzWD|INxJjrt;Qi)F^PEjnm+~oEbg$`~!EE zDqisF-1P7L|9=>1jh*1tsiTjM;W0e$ON~>isuZGnOo_2&8p1X(3 zDoIsCU(S;CDTjrcoeX$Muf#n9^aFhdO7uWAwh~v#ET*R@h1XGKX6UU&5J@(`4*y$m z25^YR=9#yaI-i&;0KNW^glw(bxo92B{mug z*_)PiTHx(Wm9P80^PTS(06*^1bWC^4#Z%eamFd11B{A9B=(P5&nXe<=Kb9hVpA;oC z$wvW`oAY`6KPP=~h|oI#Jy4tcxvwt-6djNOUTD^$ZYao5uOqb`wDPHlC7CzD;J) zMHEYWpgR~kE4{kN7qtitt8mt$IOea5D(5|4H-xcn0UPQ@`XYd{=H8O zKjgW-DM8=WBkW$_f>%Op^OG@NJ5=BQVe37-n);$|-w*5#GB#}ngB&hx@vHqI%9<~a?-)rz!?8EpTV6!KN|=<$#G z=_hkJ8d)S7Ymmpid#W5W(2=Mmq2s2WvGCoTaw&(WP46jw5lpiKNnZn_L@%DvsDJa0 zH%*`*^H8<03@pjj6vX1@gSOpX3!MC1QCuG?)PS|HEEe)JAR=7=4Ddk;67-PkZClo2 z1FMf=sL#J?k=kpQr@RP;=`{&k36|2z7dxF?zP*3;dCE3N+vR3*j=kTP);E`rqA08_ zryfNwdANYWJ^*)Ca1wvUe1>p~_FJmD<^@w-9Uz}K#|fgb6qG`PB1IPVdPVbXz;E*08|c)#~T{4m0jC1f=*xtexhojVla!_b6fTl>Bme0`Uj_ zwZhp@=2+M(WWZ0R)^Sl=|C_Mt_2_1Hp^3(Bl};Dv;wfEp`gFmZ`gT1^SVD2IemRhZyZ)M45*`e;%g z@->wUgovgEGhTIgX`&2Rh4&t0s7IUFjfZ=2#9+63-YN9DmGP8xh^%CUmsu?8IvCKE zCwKimJ5*#0+bYw^7ND@ltfw;jE&h=}r#KrIOsLKgyvAG|3$v|P`FP%{^e}u5eh4ez ztP~^ut1@#1+2{lG#4R%JJG^Q;lzM(%$jA3+QOMou+s#yx7D}fI5u3-v>8KORn`&6A zJCLTWSWt$pbs3bM?VBWsh5oBy`~`ZvP=3x#^z-3~QwsXlWbZ#Hk6@nX;s0`Y8TiM| z0Z6He9Ljn~)7+6lddkA?M1rs1aWnUyyNg?U{C@kcGv5`0(1iUSt1XG4%!cml%r@6z ztvn4g{TOi-5hX_C5SpNjk0a|9LrOUU7Ixcr-Iyx^@;heoFYWeHk>wIoK=U`r>9Yzp z_hApC+TX}-PF^^zWSfEzn^|!ddT7ugOOz_2i?h1Myupo4FfYN;uE;vVO(fq%2L3kA z$c@6__% zcpt_s-;w1&1Pd4&q=71&q4;1f$G>kIDpGcSBvC&4EzKmPN|^1bnv3)AS&Gv3WCb2y zX^qJtx4jywS@CKcI~gp9 z?w-*5`VOKu^DSj84b;R|s`|>abzS^7)b(IOdm_y)5ex+lOozx>h0iAwL(dk4KKt+f zDfJy6B}T9x>ct{B16l@6UU0U}JP#67C>}Q>G`!gjoaf|s81A#@8+XGlKVL&F9z)h!dAG^e# zi~}PlKTPXY$mHCc7Of+U&Eu9j1w{uB8=j zrVNggU*lrLcbO%6dC#7+=iu26Z#&L9{)_S7DkwkL`f3VEsKb~0U?Xx-HZO@hlw-$DeD4) zjjgnd=yc)?_GsUsbrd#HrICH7%n-YDyE#Hc0T{h?R*$^K* z(AgqVP${t97d^ZC{dU|_Me$Ax#-Sr}L|;3Cw*%Y;BBKPgY0#FTeQ zzFPW3VkD$%o8LRi&*&@H@Lsuw+zugZWc$>Afv}cmPq5`kK1pf*d)BE|s~&9y9a0!m zX{HP0IBW$_5|%@pM#vr@gA<1p-7g+W>NBh7<(V~x*VmyNs_CO%KUVzGT!-cX3g6B z7oQN$Y;wC%Jrmlwgq=Y6p$S6ASu*$dA3~#ZH9&9pIVpQom&e)4lUYIGz7J+Q2VT>K zxh8eK`0xA=vgeQKM8qW=B#N(Dv{lLU(k$&7)@Dsa;DytZ;a9Vip)(^ypo-G^A^>VOD1hxG4PP>h)cs!67I^% zZcV|zRq-gnV#;jZjqcpt1a1h(|Fua$Ek@6O&x*a<%`DP(Tf~fs40(&#>Tvtu;Hj_q zzT!W?M5xNNfg609iF+IrInWSjG-dwUxeq8g=21+V8`EALFKytq7n2VnHZd_{`s5{R zaKxbtJBk9E@e~KhBkQQAGU6OKUYSb^jvHoBPc?OnRC$G8qOpE>a>AurG1at{YjmxL za=~Z)Y*E+qUv-#zYWE>qZdHhuc2h)xCk@DtsvxQ@{)*$lZ4T}{F&cz5oelK2ThvnN z0FSxaVFl$esY3{yf8CZ|zArZ9AKM_vkc81Xb8+0A5;hc@4Df>=U*2LqBgQJxvVqE+ zAi%~1+H{cUYm$j+6~?%W)2uhCwvryXcOtpjl27h)CI+@NT!>v&y189^=I1ojkJwysMz8A8wnu_ojdY8DaBWeU?!y4_E5)sGIS*+yUxiu5z1ufX ztML+OrAoI&a7n1cjcM8~Z*K*4%N`ZiOh{_lGJD{hjG>j%CQ}%{CntDU@xSYB&GL4-Ux`3f=6Iu1;cRXLVj(MGqaABsDzVav8j4%AoquFwB9Ebta`P+%> z7E8y4Zpyfke$HY|PC9qa82z2&AY>3kwhmI5tthYbuCrUatdhq>=;?*#8-tvbttXaV zGwmrGj-jhHiWza3V{;>!RK%%0H0SYlLCwvAiw!~`>Lo_HOf#VjR6P}wOz~bCh*h`v zx(G5eQzSy-!nLe~W3<-}1t)UF0==jhnsv{rl(zk}%U}O#9+`D}E7l-nzt)B_;)#kD`hVvEByyJ$Q8;8SgZR> zR&JXhG@gCViCO=!>g+Kt!uu_}{JCBfvP96U2*c0WOe>U7*-DPGt*|J3=%SpRqPAeX z^=(Rm>*85{S1y}&rP{1TVSb4m%JSV|RQV;s(aR1Jhqpe2bG;6@1WqYb(EOVljr_GA zKz+S>DG5qrxi|^wwVj7BA~b0j!PCwS78;0IyZm}fFJ(<91ZQBsPzn#?kWuSu?P}2P z^4S0u&(%E(sDnfSPv8|b`dao4+D+LrJcTDuv%&T0bG{lCk3xL!zTzXt;zX} zruWy&3feeMqXHX0yye($JNy)v%WZA+UBfQHoZ}+g0WJ^O;o!VypbA57I62nBC8)O|Ie9EpnM+ZuosSQz~V7#n;%lk^K|)`ZJ{| zY{YDQDQ@b*_slfjGBi-AiKE8771ao{YRph0Ko8>?KmHXNeE)L}uV2wz7_8f`N{wH= z(BS0H`Mxp+zbE2y(m2EYK6Sueh%4L=hMlRV&U40dxkopJ35$bCJ%i}PDel!ahaTwF z%y|{zH{qE6hQ`jT(MQe+TKtbMt&8QJLM)-+vtl^B$A){)+X?PzL2!`JJ;-l@{n9m_ z6DbzV-1JryTjyaXprmKHBUUSLmWV2h;z2_o1SM@NVjOSufVNB{XMChuO@!gLu+}?kV~&l`b>CP2ZiK4t%bT-u@cdLQ zOif!=7f^snuH4OfWb_*iBZn;Dtgmj)Rags{+S{~{Syeq5?gpH}|6B_NI~C)T)`8Nn}odO&M*_v)ZGJ~zSozS|hhCQC>U zz?zg$7%<=cHQGDc8c~<*sTS8YCWvZFSPwE6_zw`MvX>tBlYF-bYop+t#gRMyn-LKF zG@Zd^I@D_V@FuYr?Jls}WF*5()5~lv8)qxo{FH;P?2F#J%BePfOEzA}vE1P_fotg=f@PNNk{^<{q|<5K4n)=y z#SH?3jgqR^wczR4&5uayMjz&xbq)R1jboz3ZP>^VgXN@IF_m1<+T&*y~f5| z(_gyuqJ3TT`KK;$bK%x&II4DO5zA0H9~Gq@_pJDh9Iwokp5hisW=furQH)h{#MbpV zv&`~H`UCVoshuV1cz9KAl(0FQGB)!Zi5{dnm`V^VTOL=AN2<3*%D#C9lj$q~nT-_L zeODew-olKs`^ij379R_`fEEA8^uCxB35jBN3A~n`?SH;V{{SeYqsygbG@jZ|)39&> zBb-?3#Vn(8;dJMo=9r7vnpe@;z;n_WrsoM9Y4>lMfj^qRCT^1up?cA$&cn*FRyO3r z8F74Ob;}0v_Zx-pfGIPAd ze464V zKeRJTgR#_5Hd;orpFDz_d*!yio6=*l=vk4~i*7s$u1GuwPQDf_qnyO|>z%ab)&|n7 zo9oKGtRR6%h>#*fBz3l-g`aDk3p{i)V6~bV@7!su9+PA^rL)j6!!3YOB#-BoJtymn zt7sX^+kC+q@z(yylARHQeGZrMrT(1`4VL*t5W@j4D47aF(ZR*vYIQG6&+GegcaS~7 zCAXl#@3o#;<*~eAFg2XL%wt`hBCjPrKu&gXLPc^6V4w2@{&YD|5)`r#Qta&Z0e7aN*&{RC#iE@p6Dy^lWYA$rHl_!!KsaD<2w4jy2z|tnAXZCAfn#-s{Jla zr5F;p&n1)YhBgzCsd1|=9_ulbdCKd><(g2*23=s86)HP4;5*C3^ldx*5cPs{)^OVs z)^HAzP`7~llV9o$g{otOsK0`a(}kw*lz`@sxGVcrxVwWa>O7w$7xjsZ(2taz9&(f( zYn#ji(YbgfL5=~3L@u_~-yGk&$Od$ntH z3z3F;9vzTs;ztT_D65E!_8QjI!LV+U=%)BoM~|kn0xWXALLMw@u{w&m(%_>(5}kBs zQq%ht`kAao(}|f77n@m6bX`YLW&DtQxR274$w6|25JyObNQ{8sv*wuS$116+wO5W~ z(oa^w+PgED{PqFMwYAB~5-SI@z~S&*3YSfl*pXOm6`>-~sv=%W=;s{B!OtgH7z`IR zqq=0@OBDeJ?_=l+g_W}VXTE+4khU-B0$w^h6K=bU1Khqod-ZEqC$|4z5%i|*1yYi$ zm11f#z3V?fe>>75_^G-7?aDGPpB@ug&C~jiJZayfWz%Rkh4rri)(H9G`-UuU?=#u& zXM>(U_cgJi(%gi*v(uMq$p`aYiQytpA*N1ZfawQ&xR=m3w1QdbD-E}mafdubgGwHg zv5nw2b;5OHTq=s;Zr6&UIAD(&W6E92r$wh4#$3dCb_qd`X)@jl?zue$w5kqF-8lggf@2an-Vn5QRII0^jrdSv=s+nqTU^ z3L$ZVMO~id45nGisblH8X?36kt7VTFQRO6RnJ0|-n=(Vp?gC=r67gBZd+&1GCwiy( zqt8lUgVlRxzXYrdqOIdaU^Ad63Av%Gvyb2c95Qzxtw%<)2pO|brS&hXVS}UpouOZi>hj zBEhT|nAw-DB=N?hoy+FG4lDo*I;?*+^Ex^eBl$jIJ%6J+ur{jUI@z7 z1=}39DG^{!9EawUPke{n6FCcK^d46JArw4sC5PKWkYY8%(qn<8Aw;HWLAAi?{Nx96 zE!4n;sUV9roG6?*K3QglH2mOvP^%QQUH3-9=_KA#RF7UP)UI}Rc+5N$z=EZqWT0ZB zyJd>m6Qh&%zfFCJv+5qRA;$M1qVo@;B+@T5`G-wKIbUwj4_=weyh*^gc8TPOEexgI zm59<0`s*gQYTjDDsTz=4*iw675;0jX=lxNSkVX%C@a(Xg@h zf-{+ioWC#fj#bmcAhq1t#P<^Hx8i8Sy`ThUvZEjst#3P^vM8pjco3D~dm87}Noq`9 zM_hVtlgZ?w5FX;MRJFkkWJ2|tNh(0Aq7;Fzs2G(pEx{PVeb=5yFW9$An2s8Wg@}OY z$?37>=q02v0ginYJ$5QNH?)YDigD!w_Ur;DaVN>fPs8&X#fQhKOcC6LOs0ecozcyW z#@i(v*Q30tEO&qxh5K#b2cV4QD>7o1eP^qg{{s|-M~JM{&vz?A^c%gVjDwF&%3sq| zM}3U9_Wck0HNJQJ92rTnRnAO7vWL`HCSx;s>XhzW(HsV7+SXl5b~08PSF?`kLsq(r z1$RIOS{x>k_j=PsDJ!QDRI)PJh8Yf1(KQFWR>vc#0k%f9l%u;qwvAq1pqI3XgaW%~ ziYvzqz>9CMo#Q~+FTl>yKdV|Ey!i}#6d551Jz_%I@R1B|s;-J8--Nj<3*6T%U5?Ix z_yDP928J0j8`i#UkN{y?_>zNQIqCOSyrj83!S~I0Lgu6R+{wps@UjVLI%pJ`Fsh9l z$O^tlcU7OqHo#YMPr>7pPrlI7qb+9Icb$H!1aOu=$I0K3%>Z{0PEqTsbe)f+jLgeo zGDR1Fw$y-DpWFwK$;Wvc^tq0NNN2}?9h7%T&kSuPGG%Jb#pGG3q^$^=m$S6Fd+qFd zf&PmmQI3afpD%4*FJ806mM+<9gxbqi^q8~E;?+$#J7sID>i>8RyzTu0a0FS5MdpSw z*m3)3F~{;?xZ&ldbKoM$OjT6U_v{DGHxmp01^-k0T)e=9*W3J}FE?S#$zGv7m)vKl znor^?$)yHIXfH^zJ`pO90vl%+4RDx5in^s1ZhrL7_T0==o?n_2C7Varh{5S@9}c=U z-`4MTO_*M>CRttr|lb@XOH`AkL?N3_p zrW0T9C@07YKB$^csbhWZUUD3?30-`0`wbS8rNO`5%10i;B(I zDs6d@MV=+h$A&^2Fn%8ctT|cF0}9mEY7l6 zx>3p!-se*Z%fpAtf5usHiUY z!IShys~RW-sZ*ZAWe;KC3?F=$VvSTnUS%X>#7OD=sqq63^+@kc#SIm zl=4@7qd9Iq5Lh(E#ZsOMIDq)Mh!~El$rd+!IrJoWmY*_B;o1)oS z@8!)O;7uSu(K2f5dAFRRzL^;I8mn>bDeB*3VhkWox-(n`>H?F7MADr0`lDW~vXpil zCO_LHD4#v}H&2Yv@qxBipBud%*!F=yifLk86&4sHH8|Sjnj3<>IG+ZxHps>TqxdYs zRC~?!xu54R>w8JELfuhDUX(|yYGWMQzshD9+b7F!K0naUtQ?p}=I@y_ZMIb>(P0m(gHs_)gb97g=B?`@gk)+tFK^9f_Fn}TL9 zkD#Pdc8V|`6>*F{>VN=JlQ$!cR7U3QTBQ$#50L5 z68cqfsqjXgRaiG^Ssm|hoZBC~Q_$Etr9HLLmIPw;j6QzW#KkgbE=Mu$!FI9OnKdOA zg>5BMmoJ4(OUbWv^E?GxVho>7IYK=g4$w?*YC8Fkzgk^JyHw>p8<>u{XEavWY@GO` zz%u&WJ*2@mMZ@Yl#@8)&9r-@!m{g1KBMhO^v|xx(D`=wb!?jy)1g~q1K88Wdg`eW5 zA{SDXUsB1B!rnbxy8VoDOEE}AhT{+`vcU#%Z9~{y&p3lepqGqKEY0e;1B&nw+*EB_ zppbD}%g~YFR;bG%3aaQK>!@4yG>}81XvxPd;p#U?E1i}0Qz~m7OH?*a9mW{`l=N%z z&loQat`al0WuKr|kCaSUIz!wdPkVbehy<#yjm+uoxvvh}(BBy#Q5CDIc&0(Afw5Kd zcBu_SN$(UIT`_Hw3^MHfq8KU4ycWQEw`SSDIl%`aUNkFKtybYQ7UZTH*yixo>0wl4 zdUJ4I^HzBdNtAs44{1T9y;lE*FLEg(c0Kx)MddS++s5>Q^nhPe>&ANZ^GF=F9%`SH zZkX3jay+p^IbZn_sjlMC4tH|Px-HS*cJ&tMc-j=66MORKMCX^$q3RX%7Ek)9RoOZG zgW5dD26{-i37zLcfb#NWL?nDkz~q3nE1Ckt>8IY8<=|KhnPoTm*W_P`AD(=BunIIw zbE6pq-VQgq2{SIr{KY~+xLAr%JXutkCp%i3mvr>>WsM&>p*mFx(5`Jk0sTBzXx_Pn%@3}A>ntl^{*r%IVIF*)O7cdO3CBLhV zQoZ+!Gz@x=*;F*4DrA$J?nH5N&#~y5-U;7f!_v72C~IZcyFk|Ey9H)dMW!mDWWApx zLC^d5XLVLtx~;t}4*QrUx-zDeH=cg~;1vFSt?!pn26Hr3JLfhNMrasf!Pc~iN9b-? z%nm`;-(HA$Q$)yKS`}SXbWvlE^5f%L7~+qQkarDGe@o^o)#9LkkB7)h(OG88ttmh< z-9IA*E#aJ^Y#r*sOt_R=XXqPvW)@58J?&Rtm3KvVo|9D?B6S^3S^!5YBwXdN;Yb1H z9h=V&AIw?_JPN%a{LSHHkGqsqWbPF%fNvvof2MUk7oY9)x-lsoE|4>=N)v73QtB3b zej8WgL&t`F1*=~rg-zIgt+-mxfALqWs`E*uzadWR2D@Lb#c68`$F_^juC=ZON%&g6LZ0j*)_(Ju)S(qm^V{3=o>*A*W9X!%jC-mVwjouHiDYa~M zPmp2y4{-iXmiNW5@VzLuI`(FVm(xGpzl)V{IcdR_o3t~mr^Wm9^tp;j6=hK^2F+RJ z(zJ<`vJlIK`uhgd4tBeRVvw$Y7HFX{$8Sg}^#h3M7mvS@7f^9;LTGCDG(3!0^8*Tj zPdaAqWEMSQC;I->;PhM+E6+}x$vC#+7Y`8^H<>v-`YuK{hRO%GMMWp?Bw=dC2a|1{ zZ&0t6Pg>p4w3iX}aL@DOC=J`g@FYQnKv7Qk22A^|iE2b`s={$7X1KmGTlkz8y}ol^ zc_rcL?#%Tnm8knh)G7F#)APV?L(;eO;MgrKSg9q|NRvav-OeED^OO{bRUn?{VA2ah zQaf8vP;X@sVs)7>l}(bRIY!grwJal%+H@Yg`-GEimLga`km!19Up{v%y=fi81M8w6 zi8nh`80G{mtcb9lVq?SBvjWo3W;lqOXmCGXLS6Q#4&CrjUTFOJ_D^lKvy(D);~1gl}b6dNg1JnHPL!=rBHMTCvIh~d(uO0C^2;( zpvp|(!m;kb)^tE;mg~RLza;&wT~s3`u<&M$d-)fBw~hV_>XQVXc~!pYw-XV{e(I^} zZgws1f5HHuPyKp@HkaT&t)Zl=Sy3F;!}^q1R9|~WT@QCpr=bqJc{>wSBr+n9(RsyX zQn_*B@s7S|zK5k@-c4L9TYAAX>vRl9hZh>}KMsgeP3V{nydD@Z`ooe0kE@avveItZ zlvlrPMMzsv3Wu20l&V7_uGmJb)MC^Qh--$*Ivy>TJ9rdC`FkiiLfh1$JFI?_Uk3ba zQ^VQWkRylKv;&-jP}H?i1IQl{um1p!oV=6jf|Cx0slMg{y!J9jn7Ia7CD9N3O-dVG zLSUEVzH>Rj{{cQM#Y+w$e~CZaH$9z#G8ypubsN|0vSNdGlKpuVvLwaKZT1usa;VGt zboYDBQt&HP2U==uWY*$r@Z}|nlHf)!s@qc+I&?5Gwh10z5-z$m0RSG(2eMnw==c|QGR-Lv>w*8d+s^Vt;7c69c|1I?V*)sL9q#Gra9!)&WO#p1xVHV;8Wopj&;fM$Nfk}$Z4Z& zbJFFebow>+??h6@0q>Ld)Hr^PessT9l5m9w7SO}pNuP(rWnFC&5%TgXndU?2&FMTthiYxw8mF>&UR>3q`Gmd{j!e9KAFP9 zW{Md#Q`YZ($!eFddA$$px2hQG6rp;1?gHMZBvM*q?1t>GhgNgCd|xm89OqcX_;Ojs z*q$>@!&F*^t?g+>7rn8yf;@ z_uk}EP51jDbtw|m)G_oIPCIYgZ7)z4sjq(+4K~OQyiaCU!5yU@P4mx*OS5=%Zm70d z^&&$`SH0-~#3x0Zz8tt7d!v^IQWxX+RkJR4Mmkf#L>2F+?exPe^a%72EOwfB5_uk_ z_e*~Ey3q2|+7us&TDIlVAfi6HYimU9@ja$UNc0Fg(w1nRd;1$BYBM7Eu`tJ8#3dYM zoU7u;y=oDOnWx(THMvd|o-GcU(IkCzyg+cfA43eMzcs6p%-3mRn(SB{_!KrWOCSp| zS7yuD$TTZvFH^4vX63HtzFZ#N>WmgGKcTf@%$b}|jd6G+p7VN;`n(JHXsOeAG9kP9I6?AC>awZVl?u2X zEY-nygcsu`=V>W!0>se)WR+xa--XE9hKqh(FN3?Xize4QrLTLt zC6^)P$;Rd@6J{=6*Tl_?&5;^i_b)&pCFdCwvqPNu~u19|=2 z(WCF0)~aT0sT%`)>B<~EQP=Xj#^Idl<%t;@Ohd91P=VYAjYEt%e)0;}m}?vgDo{bJb84CZ!kYcIuU0PyXwT+^jR80QqRK zL*}cBUZ=lgCM91$xPMS|-;ol(S(MnJ;6p;1%R&_*IMHCzgBa@GkjoPMtJD`->|O#+v$vC>&Va7q9ZXAK1cR3ZB&} zw&)B30#N(@SQdPNs#t`PDLTrj7a_{F5hm{nqOn5BjdC5=h>i57SS8x&Sl`F}guubUR@)dEpI-Fhg ziAO4Srtukm(4jCjj`E1YSET_Dk65~@%EgP^52eWKp9?ZUz>& z!75NezN48k^bx7OAV@ZmW)jBFFi1Pi3(?|S1^2ykvAyxBu>Fj6jl(_=AD=~5^oucnJ!=Xlh# zw3!ja;jX|f;%n9=4Lg<4HWYbab3#1ejV#ybeg8MmKj-liTUj23KLj9x9~VrzODLVb z5nh~})tzq3bsVdLffkN<2k&cH!FI74QM!JoN|_y!FF!T&W9;oE-gU&6=zl3ht#l$9 z9jjjVG|{JoE4b6JoU@m2s57UchT(GM2Ti!4zIOPbQzKh^jI@9BHk#GN$?=Ogccw$` z-CfX}og;k4ZG&BR*kUdPUoIInC~lsti-38L7gysqYVJE*t2uNr(vj9JhYoU1src6_ z60p)``udts-d3#2O*n=vcGhFX3?P3cCAo4*!hw?OD*GTC&H?9wm5LrIDptf6$10N0lgGTZ^0zn{@OrGcF|CrFyr=p|Ftp87JmnK;77y#U!O*PR~ne*AQBTKj$J+qM2# z`&h^+Jof>dUD>1Y^=gH{loCn?Bhj2@BMwC^?TsNl5cX9ZIN^F7$KOh`n@e4BGNKK6Aw^(u8K*jCDz^^GWGRY3|-o>*9R9 zsqB3~L>fTsirrWhYtGTcJy?!hn8@9j92dHR)tcq_(VM(mkN%DP6`GAvhkQA0nbgb+ zDM$ghge!^@h|(KwcB1*we(E+Gx&R+7fB~4z!-kxLuvs^($hmJ_l9Yz*k*K?t%D)rB ze#|U!nJF8P#WxxRZnElf8%D3tv^g1anOsAN8W#h1>)Y;j8ZVT?TDdl&Dv5Kvv%Ym) ztVgnL##^{eJtmwhV0l9LWn{({*?nMaKOXB<_u3(&pMbvDE*)&5MkKL}?G0@z;GT;LDB!~_;?><%?DCm18%=Z5Ax|g(iU;!*wB+@L) zI#vqSI{t`@>WLXCw5r?kSQFy}!JVI^yKeB`NI|H^sUZ2QVEH~{ z6?Otf%dEiSPjTEm9mpt^DD{B6^HR0Hzr9Ur`+xXw|BEYka`U&a)QZoN`O>qoP0)(IrKBqQMUaDn|lKoeVc5xmn7;VVLn?{5xr z7{*E^Zp_q1l%gn`(&XoP$Iop7_Re7W{IGlKYNX;#mMwu$=*qj6h6 z*q!Q9#MO#GdTVM46*dk6ry@rY(U}#DsIRuUT<_nfWcqi`7TT!5w~QE+iT&4jP`4e` zO+v;*ojjE#{mcGG{kNI;NN7v=X&_$wc;jWxtXNe!Yu$Kc%+{K=Du@KQmf^}$G(GK=9cUxyyn?2>rZcms(Z@!%6Nn;ITu1>s z;Zc1V&EFDh3YwC$nO5K4{e6%3oln&ttG^>Nzca@*GACxrh1di1z%90+e(9rr@7ka? zqHS3*yA|*22{5k{sAQ@eu+urfsaC^U+0$2@kaN?S7b; zR#VNcf^qBT3FR};arMu^@vvp{51pxu2OF%l6=Q_=Wf~!#n(y*Zeca>XWg05>Qrrbc zlNC#$m-BuKqvOV+;t@8ppH0;>o&8EYeAk?8q@7mzR*eN>M6RS7$$8G9v^+jjCIWvY zZruK!gbF-P40WiFw3<-g3(r3@>p`HGZw=5Ek)caw&{Wk+G*yI;g6#D(*RB#+D>wLj z^Z8X-IO*z*=L#1MESt7dv5^jL({sh zsLgeDcniurcu|ipo_Gk$XnHTuB!(Tr;V#<>?BpRo|MKB|^J#yO)Es^2HIz?yhaa%T zdtGNRj{U48Jnk?W%TNdlfFGLLCPz{GnBGyMGbGKl{z|I6{oJVGWu_+{Qx4pHAuW85{Dt%_Iaw*p)H0YC>yMO-!_;frLW^6M~H1NNVzgkXOHDiOXt2I|95L&*3JKKHZ z*O#>xK(%`5DGy6FW}at(pA$)rHgkZM3;Fy5J#72>FYC9U%6sQyu3LhF<3OsqTbB<# z-cCnVio?3$dpR4y1m95+6!o30iECW(n~;~!X2kynSNiw-_TXQWZ`jW|>brA)U3an= z_2vUtrfeo6_IAra4Ia(02Du`)HFL6m^MWKRKAlMXFR<(XO?5r>!mS_w4SRh0eVdD6 zi;PELoWeaWn~X-U$Gk6N)&D)a;D4Uor{+fNc0mLFGGul)R|i(SWJ%bbXywd^67t!X zWcxoX>%b}Z))0D%y=4M2v#@~xAQl$DDfbo#fHH%mA$-VFKM4lQkI*!B@JnHpi7FD1 zHTBiP)pm|)`$wjx{kH}HGXa^HE&zV^?}*XM01rz}lDd_dKDA&^X|iGTP^b2zU!)8A z@>$V;mQ~W@+kH6s_V$>RUCUoS`!v~jGiN&ypukdU*n6lkJ2lemO)q;hkf`nhXkz)~ z%1osVBr-9Kj(KzrBfKb{>Be_E0O#iZBuhhXY$h{lY!u7i1H49ClHwez^7;o z@``Q6g#5pFW?$=f0cm+D8qXssUZym93Kwj&3XHBx03)Sf$Q0%1(QYCi=yLj2NTTtX znw*s3xayV;3clp@)vwNd$Rk_?j>e|{1#KK5l#o%QHBnyn>o4XbnTG6*<&E*rE_?gc ziox@U!ic*Jzv+@Kw?X5fq1)1@HmuXku=m_|@28wMK970uD_Jyuz?&sd0$l&gPI!nbr6APQ;Lz4bdXWOau zfk9>a5pL;?Zz7qMVMaYS*Q#vOGh5XYL3IhE8C;Qy;;v$k&9m-HeYlVUWWfNJYL%Zf zfBZ1XVlGDdg#rI+*R_78O0oo5J_!-%{Dbx;9aySF|HXTG+|pk)|2;eSm?gdIf}=xn zdh)(sl8K&XV`QE0CBqxH{pwDZW-hHRAk2=zARZb`FHmEHPDo z%sHx90A|Cx$f&fX8B|`i(=AuGUs)3VMtf%(Hja!~cL40?Q$vQNJjr!4A4`@8XC=z( z764Dr)&K5!);^IQMpFFDuh6gS@Ak6vmYqTPdS}ef+)eJ;TNhIaPd_bW=cRXF6CTan)^}p#`;Mj z3ihEj2ql5KWm6zlp~EWPFnJ?@zLj?Ip2G@!O^UfG|6Pnk>1-bC-j7Fq+qP@p-go<+S&{$QA7A%( zR{i3d|9CmFH5fgy+WW}maYvev5w6TQ*PjBtyM?%C0H<$Z!20TXp^Z8Bv0iggrukLI zfl@YUA}b|oeB%54jtVX38w+y78;+@qG1SpY`j@Q&? z+YT;8`rohh3Y?A2mD?kI`bWs9Hy}sVfwG9tlP6OZB`SPI9N$9zO#S%?8?l;R#MWn` zRlS@s>&i?>YZwM16L_lnbn^wE>?=xzN>feDIDLvEXWGb5}z$=dHP;=O#0lUT%2lw3@A3a_RK%kotkJ{LLrnbF=Gp0e|-K?tdm}^x8cN z)}Ky^>c?~anW^oqHX>CR<$pxpXYCz!qQ^MIo{PEu;6((tQ{qnMK4eYHS&yrB*+oKG z&gL#NEfdDfY^-{0CM+4X56g=iJAH)F{+Z77+Lz=XO73Q#vvis@tayd`^)aSg$&Yqm zCZk`}C-!D-XEobdkD1@bxPjb0bT}E0;7{O15EWBqqi6mEeMEfB-Z7qYp8+e^fnhYA zjoKQ}8F2DrKkI#j(te)MX{ocZ&i;pFkEz9`$3&(aOVA2YH66UB#+M6ZKT+9ceA=y7 z{-aQNeudaU$bx_XN7UnAxsRyG`wfH&Ok8GKFHPe+G}CCcI<~AhS-$=gNBUt!Hmff& z`WK|ZrNO2^n6WB>=p!1Moo);O+Y9uXp4WD;l%v*W*I6`682Mi(Q^Y~sK7ELfW}n1t zz5vF_P`NO?=40bhfSW~E%Hc7iJ05@wGe`PoTbu{fxYMVh-TwforR<*0(NV{MWXbj9 z+|6HUX|%)q?Be_sZhxUOcE+nXtu_&jez)uWM^Nq0pCe{}zd;)!pxl5X>c>P8vSfay z1SSk%ZcOG;@QB9xnWOA|cDr=N%AZ^8CX@8mj}10*b3gR69wf#Bq6Jal1fZan+G@K? zPlIl2K7wldXCnho$g?)Mu{^tp? zTE^wm;Ai{R!}BzsrU0kbXa4~6PyCsO7Mnzsg9>9FBz63ms_o4#8wy)CPehsfL$o!0 zU)W0gM&R87FP`kQkfIKDvagzoxI?ihNMNQb%5=_zd2D?>E>+G@m zw_oaLy9-65rYY@T>Ual01Y)Qy+NP_vuwevZ{mnI2UL(skRd~ZBC?5Iv3o&GokJ0A}bTwj3+XmnfR9-NTF( zz_xv6v$Zm0B;?8X6DF@CY`X|aCds}7jgNAChW=v53I=kK(rkXl1|z7kDNf+cCtzze zK^@BC#=`9GNd6{|v3oy81A8%%{6!`&frFSzwZff-wFd)RAQ*L8hv22dn z8`Yt1QPzZgLXU@d*)l&<0>O>|2Ms=#Q>%VmJ_did=sz<@`e0hNuQvYxLVx7VK9^0T zPD~h;2aRKAKV3(7rA)NAr&B)(F{K75ViLJ=xdu0PD% z+?YJjcXtps0-(Z-I!(WWG~KVR(gjfb*udFac-^C{?GwlxV_y&q&yNld*dFru&umxX z7avki$|Ey3#A2yE1Q_dcD!K?}le2ZY+BmS%{cW(CKhv6QRN99*o9XDW6CNc9iWNsd zqJ&f=S*2N@wDdYbSI*v(SNexjmc}~9ziF3N&Pgm-#&&L}f#7&=KRiDYy~WD&p(q(_ zv0NA-P{VNwGW6U)X!;l%#K!%~YI3#JM8Zrcan{{pls!7e!PDzJfk-Oe{}cHh7qR^1GMc z1J}>Wg99?faL^cWtH#9ZxZFU};^k%Vu^Gd1&d$=VuUm&3d_7O%Yc#nRv~lT?J|H<_ zV;IqWwm_f`m%P;W<_$P2fkAIstL<%0qRTn2NZFaC-vbP(zY3enFrT*)2Y0VQEB%Gm z6!8!{FHvz=9)kBMLGV zY7bgpK{67H%te@UJ9Hm`5uMEhEgdLZDOQ$c@u+`^aKlr1Q+ZrKzJhZ4`RMMBBY{s5 z22wU*6@lCs7#^|kBkm*Pbm}&Nss;vQ&B?JAJ!V%&P!#nsMz@u%j|*mA6fdWMnkL0z?itWYlIvjEH1RguW4;}l)7Mq^!%a<-+nhrIBKQJS*fj~olvZ4S{fAikOt|f_H#+(b zv2yq@qc%Hact#yGPI%$xl~tjVLzh;w2*>Gq45bZv~- z@C0{iRl~)c54nW1K%TPdZ^FB$$gkuCzWDDpFk-e$XVgT>uh7wplfkzUw7A@JE0bH0 zdcuSo5`+bpr${mn9k`>i8&;_Q0O9o?@lu=XS(8Vb5a!0*>Gq41bYVw@)aJQe*2o9m z7iNo$_|2ACJto3YJ=^n90q&0F_ck!&9uac7YW zO5=W2e)9sw|$jDtXx2S%;cP)O`#w{ z-jdIlU%L{xbem7+Toikr68nRLC?k2w>9{d99tcj-59U zFg?MDhO@Zgix6vL>jFTv3^B4O>A8iAbv!H1#4`BrE7EkA#`}bECxaj|oi_$1aCU8_ z-vR;ZE)I0vO^-u4lOduhp;k}0fr0L6(0e5?l@W~@Qo9gfCd15L9CIn&`h!_do2zh?f7D(n9MFo1*7 zUdCg;W`q7wGG@n%sk7)NT|?yCp!6I7xn0Va>E|6FJ>%*pj|dP`b~yHJ?mnr=q}WcdDKI5>0u$B}tFVOMoL>+~fbB1U zmtwdB(p)ESZUPLVCte;N;?EMEkTW5Q;LpqkQny`?tjvu=dw>%cAFS9ycrG?*c`^OW zXJ-C9{5P+AejYOFSnxGB@!);MaUvD;isgF1>eApcm#pUmMMr;yOMe0`HYR|x1|-BS z$d8x}~n`atA$fx+nyLl>mMtb1{1Sl$U#Y>!^LSgf9!29jTNEmUx z;hjVTj*t*~Y-yau|!`uA_U%>!|+=Ft1I=SSUN9mEIS0|QH&@!yW$?I3Cc z?ty@V2Xeg(uW^1}54=Aj4|e7ELqK8MhhC;_?hl$Dndt%dR|7%kL%ci3&z}+Ux9;zW{{Z3RzroQgp0uTTY$M*#^1UC^?PW;y#Pxcc4vYq77Rs{0fk1T%$tZi_vi^^mCfu znaR_Aqxw;OlWw)ngUJ?yiB#jTOo*n(NHqqk15!gplS%wbMjMprUiHcbUf=@vqiC7U z>UKeoeq?v>CP!NeL6!I=Ak~10Md-O+ha2pjI|kWCS34ZkomaZ&pp2K%d`GHeUWt%w zgk#AD(hXP$l|?#8tSDRw53XwDpaXbrAn15RH;&>UI|48jV%`CR{{T}se>57#>=AGZ%eDwN&0qvxIxb>#1GoyicCA{qYSpV&tzUrBrG!f6 zSE(RmnopUd<@k}7M|H12xrHM99Mb3VLd~e+CWR(J=o4ZA1_TPc2| zgk{Fi;rzm94gzdIbU}zUU@Jsgl6YbH-=83+_LGhyXlV25i{+W!TuL#rEX^oy`i!|Y zSq>nF-H*NbDV#4exuhmXd7P;DVr!sGhBkCX;3FYB1RCSHq!@(KJ?-G+(? zS=^wS(o$^a?*Z~OKX*Y%@u$dJU z7=S^eUsHglNL`KeDTajMJWEf7s9e08sw`l`a5m5&1VR zKh+Ni0r**G?kYYI?&5=Ek6@iD4s*>kS`hut{sm27@(NxuCSZI;NyN=AE{BjnCW4z8 zOpC}Mz!f9g8>-T=;%7m+amlirN&P1j=WGxbX*Mk6DB;c3CdL8{L8}_cBykIS!$+!{ z+Kg@@ZTgij6*TAKdHp8v&m)>b7~eN0m|KYBG9Nc!BOH>~y_E9(jlfXw+Xga%XA0K* z#@E8pfl1QRr@vuAHYSboQ=Z7j#Ng1S_LBvO#h*0!<(TEg2BxypBJ)g#(Ka@X30&Q> ztHq9kbs;>?{ghWBBV^bUA*#X=v>?^W2J7?|Pzqizhl37&e1=M!+OKvZ9HCs(yQ`d0 zfst3glr;ULE=+sIAb>Od-;#$6UjAtu=^g5$;T(MeXAc`aN-qFmI$)|t?|_>d8`96J zl4zn9_kgDMp5i9|07`taN^R~XHMXOL&P?IJ-zktEDhaW*y*0FaeCqc6Z~c_m&|(ch z6+vE@XtxjopV}}*hWuyKWk0m0mlw)C6i`n-Lvhu|0djD$8grd9$Nn*le@eb3;+h)- ze``Kt`zjt7UA2~al9|Evc}-2;T3Q(rW{D3SKH0erM;&P3<`xYB9S~X9=upb{Z2(^c|3nqs7jpxhORT`JqE#tpHQxiV<== z0H*e^79nT#%3dmYkHsNz=o2_OTsh<-HuaY3tw1kFmIFi-$A= z89_6JYkp&Ba<>2{NC#A2=UoICPs~*Yk07Sw;EMqBA0VdV=a#@cqtRWIBXg8IBaZk{ zaLoq-%4`69$M_JYifE;3)t|t@(t;p_DCb^MRJ>0Q!~E|Tm7%IrzDSf5G#moi0z|{pmv^a^Z1IXVXqTy$p+gNMvI1Bzi z3jrSS=2!i#S1ZRTsG0V)MZ+0 zYwC(ER8yOK6xO&n*i$f16XJNbxKj5G;lUhHlZfTSLGHj%!R;9w!^6fH(XeQys9hvX z0(sjk_k6L9f@9kwLz~?H09C8je%XAmYN#R*V9@-GEwbYg%7p z9aZ^vVZLhv>yOo*k&vAjK7|nWA5So&;&uHO7C|U+mcz^sFc=|l(@iVfUBi2}R`+&}K?|2xv62dK1vQiK#^93M_8pXb zbP^EBhq{y3WMeywjVTa&152be3?)-qinG4G1!~p!B`W%3p$fDM z8etu8Q2P|*VrlseBGS{5rK_<;0D2o(JF3=5BbVlC4dVDr#Qt`DhbkUA3C}CXyOYSG z!Zc%Bl2Md&R!Zfsn9>$-(LqyN>QQkj^#~6JucJMU)=|{<=>kFz2M!3t4q8!Z2Ricu z^AGBxGSg@|rB!;3X5pfkWM|AKw~gV2GER1R6(1dLsbX^zKmeUB#|>?Is%w5@WfzjU zmgs03=ixM~>9e5-+6TG>g>7)6oe|xo5vd^j!}=G*+_duq9M^gkRI5q|$zp~ye1)_Z zGA=-rDK(Be;2;3o!z=0SZmUYQU5nPV4k24#f)k=6BO^*f85mf1%qaPVPG)Yx1Rq6R ziQawT2y-DpGAF;#CdSrmGv}c`8hh&Op2ZFNuik@9s?pbqL$n-1ray5-Ix;rSv_{2z zCvnPr!uZ+h5Fq*^jr5S)-}_O-`8F8yQSj_$PELfY>~kOwUlAR}c80Wvu7|q_IS|(; zFojB$7VKBR>>q@$ji02}hwX&U8K9RxChoK*k#*<>j*+7SCAE0|v*@f7U3(U?uS?R^ z>It>Xoh2@3IR>HlKIn~WL7>opPE`@>+-A4b9ZB6WrQ4w2!s^v_uUZK93O%jsI#B#L zj_Q?aPLC<=7OdS73!owBPZ36hZEY zRru9vdxF(pjaO*)3a-_D4S!5@3XuxG9UAAcUCk=el`2%JQl(0jDpaXbrAogEJ&u|V K-%+9OfB)G;+X^lK literal 0 HcmV?d00001 diff --git a/public/banners/qr-gate-that-decodes-before-the-download.webp b/public/banners/qr-gate-that-decodes-before-the-download.webp new file mode 100644 index 0000000000000000000000000000000000000000..ee3e44e37bdde9aa452e860f71d57f61e35956a5 GIT binary patch literal 60622 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

-0etdvHY8KmyIc7rXk>J+ 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 P!Di5#if!bvRsaA1J6VTZ literal 0 HcmV?d00001 diff --git a/public/og/qr-gate-that-decodes-before-the-download.jpg b/public/og/qr-gate-that-decodes-before-the-download.jpg new file mode 100644 index 0000000000000000000000000000000000000000..62ef8e7286876d5a1506caa177f2e9cc3dcabdc3 GIT binary patch literal 63738 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%0DbGIL78~HH|R2j}Z(jmeX6iMca0wF;{N3 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°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 z z=1K;@7j;dpW+}%ovwog2DeO4m40-o2DAO;_^{a%(3xHxBqxN~2r?~mNzUgKUqE5;+ zk<6&B5_AE&1b9U-3$8FJRffzCK^0L35j$g3wtZ+J4p^u| z^v&ZjziZ)>l2{BH#f=8;#|0$9w1+06by7;-n^x!CLoonblEXq?+V+}e^8agy zxduGgMLn#Sg3jL;*XG-3n%5VLnkuT8qg}wIM%X3F{3ygkvMxGD%5&?F(;U&72OvvS8jK<1WQHx(1Yov(ary$#K4EExUBoxkxAH;^=+F>9#d3^5QizLoq#t{PeAH5O*1S%cL zi#NAVK)g)(m=5fB$D-YbA=4c}qn=P3Ld$3fl#D->>fUS8Y&Lx^v?j(&)N3HdBQ9rP zYn`EzJ;QwBD}t$F1}Q6j9K6KO#Uqg|kzY#lfHx*!lmPq)Znq*-zpnf9Lm1v@*()Yo zr`N{E_K=$t6*k;qz^4a^04tAIpUJ?|*3<*x79%;A<)f?Zuk{(8#!z3>_wcDeq= z13dskFaDOolYV#tl`_q~OVd_NqYqJkI|ZiSc)sD;#`XHnIG{*hp6lz_ynlX z`5-lWM&0c0#1wo=S_cgT5(s*&YIbAg^l4Ev-SE$gm%a|5?A_Q zX0pV2dZ4*jE03q%K7u962d&9L|1=$Hx-+3j?d!U8O9I@BYO9c8(cQCvY-ZPC8=Y0T zeRxe77J4)P$*VPvLf6e^gm6AnIp6Rx3RkLoLnw>I;xmlZeg?Z??qs4mONlVAo`A@y zT=Q-F&|3hla9?D0(H0_|BT(VaoueVJK`=-JNYK4|l;oxy2wEZg0GS4h!z|_$hwzLp zFK9R?m6Z)=h?!W(63CVqYoA>MW+-^0ZGO4wl;FECp#VwKJ|RJKwR!>Pz^OKrYz7WR=bD;sw?fqDqn4S$CK1kYOkRuSW7MMAL3 zzcdA$!uEU&R`ZjyJb=9ydF&?!{uzOCko?uEs)aCnddd!KSIV3zD54T1unreppa1~y Cl&Zl1 literal 0 HcmV?d00001 diff --git a/public/og/thumb/qr-gate-that-decodes-before-the-download-800.webp b/public/og/thumb/qr-gate-that-decodes-before-the-download-800.webp new file mode 100644 index 0000000000000000000000000000000000000000..8f751603408c384c335e138676d89467e3a7c4eb GIT binary patch literal 22570 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 VGqF{V^B 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 y3TgnPQ!$YG#`EEB#` literal 0 HcmV?d00001 diff --git a/scripts/og-gen/art-meta.json b/scripts/og-gen/art-meta.json index 5023e1a..4406e31 100644 --- a/scripts/og-gen/art-meta.json +++ b/scripts/og-gen/art-meta.json @@ -369,5 +369,10 @@ "evidence": "6 seats - 9 s - 403 to 502 mapping", "ogTitle_en": "The Gateway That Tripped Trust & Safety", "ogTitle_zh": "网关撞上风控" + }, + "qr-gate-that-decodes-before-the-download": { + "evidence": "69 modules @ 20 mm · 0.29 mm/module · floor 0.40 mm", + "ogTitle_en": "Decode Before Download", + "ogTitle_zh": "先解码,再给下载" } } \ No newline at end of file diff --git a/scripts/og-gen/banner-plan.json b/scripts/og-gen/banner-plan.json index bba06ff..f87a5a4 100644 --- a/scripts/og-gen/banner-plan.json +++ b/scripts/og-gen/banner-plan.json @@ -1108,6 +1108,30 @@ 768 ] }, + "qr-gate-that-decodes-before-the-download": { + "sw": 2223, + "sh": 1256, + "left": 795, + "top": 143, + "fill": [ + 11, + 18, + 24 + ], + "zoom": 1.635, + "silhouette": 0.47, + "cut": 0.0, + "band": [ + 780, + 120, + 1240, + 605 + ], + "source_size": [ + 1360, + 768 + ] + }, "read-amplification-504-gateway-timeout-swr-cache": { "sw": 1944, "sh": 1098, @@ -1948,6 +1972,30 @@ 768 ] }, + "when-a-self-hosted-model-router-tripped-trust-and-safety": { + "sw": 1930, + "sh": 1090, + "left": 604, + "top": 102, + "fill": [ + 14, + 18, + 30 + ], + "zoom": 1.419, + "silhouette": 0.47, + "cut": 0.0, + "band": [ + 764, + 123, + 1294, + 655 + ], + "source_size": [ + 1360, + 768 + ] + }, "when-lowering-crf-does-nothing-maxrate-deadlock": { "sw": 1930, "sh": 1090, @@ -2403,30 +2451,6 @@ 1360, 768 ] - }, - "when-a-self-hosted-model-router-tripped-trust-and-safety": { - "sw": 1930, - "sh": 1090, - "left": 604, - "top": 102, - "fill": [ - 14, - 18, - 30 - ], - "zoom": 1.419, - "silhouette": 0.47, - "cut": 0.0, - "band": [ - 764, - 123, - 1294, - 655 - ], - "source_size": [ - 1360, - 768 - ] } } } \ No newline at end of file diff --git a/src/content/posts/qr-gate-that-decodes-before-the-download.md b/src/content/posts/qr-gate-that-decodes-before-the-download.md new file mode 100644 index 0000000..c6182ce --- /dev/null +++ b/src/content/posts/qr-gate-that-decodes-before-the-download.md @@ -0,0 +1,208 @@ +--- +title: "Why Printed QR Codes Fail to Scan: Building a Pre-Download Verification Gate" +description: "A QR generator on my tools site refuses to hand over a file until jsQR reads the payload back exactly. What the read-back could not see — a 0.29 mm module on paper, a logo cap measured in area, red ink that a 660 nm scanner treats as blank paper — and the gates that now catch each one." +pubDate: 2026-11-10 +category: engineering +blueprint: sme-digital-suite +blueprintLayer: L3-application-runtime +tags: ["qr-codes", "verification", "jsqr", "canvas", "print", "accessibility", "performance-budget"] +ogImage: "/og/qr-gate-that-decodes-before-the-download.jpg" +banner: "/banners/qr-gate-that-decodes-before-the-download.jpg" +draft: false +summary: + audience: "Front-End & Platform Engineers, Business Owners Printing QR Codes" + painPoint: "A QR code that decodes on the preview canvas can still be unscannable on paper, and a generator that draws whatever was asked for has no way to know the difference." + impact: + - metric: "0.29 mm vs 0.40 mm" + detail: "A 61-module vCard at 20 mm prints below the smallest module a printer can be trusted with, and the decoder still accepted it. The floor is now measured on the printed millimetres, not the preview pixels." + - metric: "19% → 15% Area" + detail: "A 30% centre image plus its two-module knockout pad wiped 19% of the symbol's area. The cap moved from a side percentage to an area percentage, pad included." + - metric: "300 Probe Checks" + detail: "The independent probe decodes the page's own canvas with its own jsQR import, on the built site and on the live site, and refuses a download it cannot read." + stack: ["TypeScript", "Astro 5", "jsQR", "Canvas 2D", "PNG pHYs", "Playwright/CDP probe"] + jumpLinks: + business: "#why-a-qr-code-fails-on-paper" + architecture: "#four-blind-spots-of-a-clean-bitmap" + result: "#the-result" +dynamicCta: true +--- + +## Why a QR Code Fails on Paper + +The utility suite I maintain for small businesses — tax calculators, e-invoice validators, PDF processors — keeps circling back to the same artefact: the QR code. A shop wants a code on a table tent, a name card, a lorry decal, a receipt. The request is always the same sentence: this code works, print it. + +The honest version of that job is not drawing squares. It is handing over a file that scans on the surface it is heading for, and the two most expensive failures in this class both pass every check a browser can perform. A symbol that decodes perfectly on a 400 px canvas can be 0.29 mm per module on paper, which no phone camera centre-zone will find. A maroon code scores 10.9:1 on contrast, passes accessibility tooling without a note, and reads as blank paper to the red-LED scanner bolted to a shop counter. + +So the tool I built has one non-negotiable rule: **the download stays locked until jsQR decodes the symbol that is about to be exported and gets the payload back exactly.** Not a preview of it — the geometry that gets written to the file, re-inked from the same vector path, read by a decoder import that is deliberately not the one the page uses for its own verdict. + +The engine itself is unremarkable: six payload types (text or URL, Wi-Fi, vCard 3.0, `tel:`, `SMSTO:`, `mailto:`), four module shapes, three finder-pattern shapes, foreground and background plus an optional two-stop gradient, sizes in millimetres, error correction L to H, an optional centre image, an optional caption, PNG at 300 dpi with a real `pHYs` chunk and SVG. + +The gate is the part worth writing down, because the gate was wrong four separate ways before it was right. + +## The Gate Is Easy; Trusting It Is the Work + +The first version decoded the exported bitmap. That failed immediately, and instructively: a smooth or nearest-neighbour rescale blurs the one-pixel gaps between dot-style modules, so a code that prints perfectly was refused because of how the test resampled it. The gate has to re-ink the symbol from `shapePath` — the same vector geometry the exporters use — at a chosen pixel pitch, instead of scaling a picture of it. + +The second version then did the obvious thing and probed at the print's own resolution. At a 300 mm export that is 95 px per module and 3,500 px across, and at 150, 200 and 300 mm the same dot modules that decoded at every size below started failing above it. jsQR is a decoder written for photographs — a few hundred pixels across — and it has a working range. Probing at 95 px per module was testing the decoder's comfort, not the design's correctness. + +The third version probed at a single low pitch, 8 px per module, which is what a 25 mm card gives. That broke the opposite way: a dot pattern that reads cleanly at 8 px per module can miss at 20, where jsQR's 8 × 8 adaptive binarisation blocks and its module-centre sampling alias against the white gaps between circular dots. Refusing on one density means blaming a good design for a decoder blind spot. + +The gate that shipped offers the symbol to the decoder at **two** pitches — the visitor's own, capped at 24 px per module, and 8 px per module — and refuses only when both fail: + +```ts +const nativePitch = Math.max(1, Math.floor(canvas.width / geo.total)); +const pitches = [...new Set([ + Math.min(nativePitch, PROBE_PITCH_MAX), + Math.min(nativePitch, PROBE_PITCH_MIN), +])]; + +let found: string | null = null; +let tried = 0; +for (const pitch of pitches) { + const side = geo.total * pitch; + if (side < 21) continue; + tried += 1; + probe.width = side; + probe.height = side; + pctx.imageSmoothingEnabled = false; + const scaled = centre ? rescaleCentre(centre, pitch / modulePx) : null; + paintSymbol(pctx, pitch, geo, gradient, scaled, inkDark, inkLight); + const pixels = pctx.getImageData(0, 0, side, side); + const hit = decode(pixels.data, side, side, { inversionAttempts: 'dontInvert' }); + if (!hit) continue; + found = hit.data; + if (verifyDecode(expected, found) === 'ok') return 'ok'; +} +if (tried === 0) return 'empty'; +return found === null ? 'mismatch' : verifyDecode(expected, found); +``` + +One more exclusion belongs in this section: the caption band is not drawn into the probe. It is type under the code, not part of it, and at 80 mm and above its letterforms gave jsQR enough false finder candidates that a round-eyed design which decoded at 50 mm failed at 80 mm. A gate that fails on the caption is measuring the wrong object. + +## Four Blind Spots of a Clean Bitmap + +With the gate honest, the tool still shipped codes that would fail in the physical world, because a clean bitmap at 8 px per module has a very specific set of things it cannot see. Each of the four below is now a rule with a measured number behind it. + +**1. The module floor.** A 61-module payload — a vCard with a phone number and an address — at 20 mm gives 69 modules including the fixed four-module quiet zone each side: **0.29 mm per module** on paper. The gate re-inks that same symbol at 8 px per module, decodes it, and unlocks the download, and the resulting sticker is unreadable on a laminated table tent. Ink spread, toner scatter and macro focus all live below the line the decoder never crosses. `pitchCheck` now refuses a print finer than **0.40 mm** per module, and **0.50 mm** for dots and soft corners, which lose ink at every gap, quoting the millimetres it measured rather than the limit it applied. + +**2. The centre image is an area problem, not a side problem.** Level H recovers roughly 30% of codewords, and that budget is not only for the logo — it is what lets the code survive a thumbprint, glare, a crease and a phone held at an angle. A 30% image on a 29-module symbol looks conservative until the two-module white knockout pad is counted: 43.8% of the side, **19% of the area**, deleted from a symbol whose read-back margin was measured on a clean bitmap. The cap is now **15% of the area, pad included** (`CENTRE_MAX_AREA`), which means the same 30% slider is allowed on a dense vCard and refused on a short URL. That is the physics rather than a taste. + +**3. Red ink that a till scanner sees as paper.** WCAG relative luminance weights green at 0.7152 and blue at 0.0722, so maroon `#800000` on white scores **10.9:1** and sails through the 4.5:1 guard. On the raw 8-bit red channel — which is how the guard computes it — it scores **1.9:1**, and a 660 nm red-LED scanner, the kind still bolted to a shop counter, is effectively colour-blind in exactly that band. Phones read red ink without trouble, so this is a warning and never a refusal: the file stays downloadable, the sentence names the ratio, and the choice belongs to whoever is printing. + +**4. Millimetre contracts: whole pixels, a caption band, and the `pHYs` chunk.** At 300 dpi a module is an integer number of pixels, and on a 29-module symbol — 37 with the four-module quiet zone on each side — the planner rounds **up**, not down: `ceil(box / (modules + 2 × quiet))`. Flooring would print the 25 mm option at 21.9 mm, under the very floor the page warns about; ceiling can only make the code larger than asked, which is the safe direction for a camera. A requested 50 mm therefore lands at **50.1 mm**, and for that symbol the export is 592 px across. A caption adds a band of 13% of the code width — five modules at that pitch, 6.77 mm — so the file is quoted as **50.1 × 56.9 mm**: the code stays square, the paper does not. The `pHYs` chunk carries the same promise out of the browser. Without it a word processor falls back to 96 dpi and places those 592 px at **157 mm**, three times the size the table tent asked for. + +

+🔍 The two rules the decoder could not see: pitchCheck and the centre-image area cap (TypeScript, 30 lines) + +```ts +export const MIN_MODULE_MM = 0.4; +export const MIN_MODULE_MM_DOTS = 0.5; + +export interface PitchCheck { + ok: boolean; + mm: number; + floor: number; +} + +/** Judge the module pitch of the print, not of the preview. */ +export function pitchCheck(totalModules: number, actualMm: number, style: QrStyle): PitchCheck { + const floor = style === 'dots' || style === 'soft' ? MIN_MODULE_MM_DOTS : MIN_MODULE_MM; + const mm = totalModules > 0 ? actualMm / totalModules : 0; + return { ok: mm + 1e-9 >= floor, mm: Number(mm.toFixed(3)), floor }; +} + +export const CENTRE_MAX_RATIO = 0.3; +/** Share of the symbol's *area* the knockout may cover, pad included. */ +export const CENTRE_MAX_AREA = 0.15; +export const CENTRE_PAD_MODULES = 2; + +// inside planCentre() +const ratio = percent / 100; +const sidePx = Math.max(1, Math.round(input.codePx * ratio)); +const padPx = Math.max(0, input.modulePx) * CENTRE_PAD_MODULES; +if (ratio > CENTRE_MAX_RATIO + 1e-9) problems.push('too-large'); +// The pad is not decoration: it is four more modules of code that no longer exist. +const knockoutSide = sidePx + padPx * 2; +const occupied = input.codePx > 0 ? (knockoutSide / input.codePx) ** 2 : 1; +if (occupied > CENTRE_MAX_AREA + 1e-9) problems.push('too-much-area'); +``` +
+ +Every one of those rules runs on the page that generates the file: the [QR Code Generator on tools.hoelee.com](https://tools.hoelee.com/qr-code-generator/) refuses an unscannable pitch or an oversized centre knockout before anything leaves the browser, so a print run does not depend on guesswork at the press. The four failures, side by side: + +| Failure in the physical world | What a browser check sees | Gate rule | +|---|---|---| +| 61-module vCard printed at 20 mm | read-back at 8 px/module passes | refuse below 0.40 mm per module (0.50 mm for dots) | +| 29-module symbol, 30% centre image | clean-bitmap level-H decode passes | refuse above 15% of the area, pad included | +| Maroon `#800000` on white | WCAG 10.9:1, clears the 4.5:1 floor | red channel 1.9:1 → warn, never refuse | +| 300 dpi PNG without `pHYs` | displays correctly in the browser | write the chunk, quote 50.1 × 56.9 mm | + +## Proving the Gate Closes + +A gate nobody has watched close is not a gate. The engine tests prove the arithmetic; a Playwright/CDP probe proves the page, and it deliberately does not trust the page's own verdict. It finds the code's black bounding box, verifies the **timing row and column** — a scaled, stretched, cropped or mistranslated drawing fails there even when jsQR still guesses a payload — and decodes the canvas with its own fresh import of the site's lazy jsQR chunk, from pixels it read itself. A symbol only its author can read fails here. + +The closure test is a seam built for exactly this: with `data-simulate-mismatch="1"` the widget's read-back is fed a wrong string, and the probe asserts the download disappears. The gate has to withhold the file, not merely say it would. + +That probe found three things the happy path could not: + +- A centre image refused at load — 900 px against a 600 px cap — fell back to a code **without** the image and still offered the download. The silent drop the payload rules forbid. A refused file now withholds the export until it is cleared or replaced. +- The vCard's CRLF cannot be seen in a textarea, because browsers normalise the value to LF on read. The probe folds newlines for the box and proves CRLF from the decoded canvas instead. +- A rebuild mid-run (`astro build` replacing `dist/` while `astro preview` serves it) turned a check red and then crashed the run on a missing geometry. Do not rebuild while a probe is running, and a probe should report a missing page as a failure rather than a traceback. + +**The check that was flattering the layout.** The image tools on the same site keep the stage beside the form, so their contract is "the download is in the first screen". This tool puts the code under a six-type form, and the first version of the probe asserted the same rule by calling `scrollIntoView` on the download block before measuring it — which measures "fits in a viewport once already scrolled there", not "is on the first screen". The honest property is that the buttons sit one glance under the code, measured in page coordinates so scrolling cannot help: at 390 px the block is 66 px below the code and 48 px tall, with 0 px of sideways overflow; at 1440 px the layout is two 518 px columns with the code at x = 719. A gate that scrolls the thing it is measuring into view is not a gate. + +
+🔍 The probe's own decoder: independent of the widget's read-back (Python + injected JS, 24 lines) + +```python +# The probe's own decoder: the page's own lazy jsQR chunk, imported fresh. The canvas is drawn +# from the page's pixels at their native resolution — nothing resampled, nothing smoothed — and +# only the symbol square is read, because the caption band below it is type, not code. +DECODE_JS = """(async () => { + try { + const src = document.querySelector('[data-qr]'); + if (!src || !src.width) return { found: null, note: 'no canvas' }; + const w = src.width, h = src.width; + const c = document.createElement('canvas'); + c.width = w; c.height = h; + const ctx = c.getContext('2d', { willReadFrequently: true }); + ctx.imageSmoothingEnabled = false; + ctx.drawImage(src, 0, 0, w, h, 0, 0, w, h); + const img = ctx.getImageData(0, 0, w, h); + const chunk = performance.getEntriesByType('resource').map(e => e.name).find(n => /jsQR/i.test(n)); + if (!chunk) return { found: null, note: 'no jsqr chunk' }; + const mod = await import(chunk); + const fn = mod.default; + const hit = fn(img.data, w, h); + return { found: hit ? hit.data : null, size: [w, h] }; + } catch (e) { + return { found: null, note: 'decode threw: ' + String(e) }; + } +})()""" +``` +
+ +## A Phone Parser Paid for by a Page That Only Draws + +The last failure in this round had nothing to do with QR codes and everything to do with how budgets fail. The three QR routes were the heaviest on the site — 78.7 to 79.6 KB against an 80 KB budget — and adding four sentences of new warning copy pushed them to 80.1–81.4 KB and failed `npm run verify`. Copy did not cost 2 KB. + +The cause was the import graph. The QR generator's engine imported its drawing helpers from the WhatsApp link builder's engine, and that module pulls in `libphonenumber-js` at module scope: **28.7 KB** of phone parsing, paid for by a page that only draws a code. The drawing half moved into `whatsapp-link-builder/qr-core.ts`, re-exported from `engine.ts` so every existing import kept working, and the QR tool imports `qr-core` directly. The three routes dropped to roughly **53 KB**, and the heaviest route on the site is now the WhatsApp builder at 75.7 KB. + +The transferable part: a bundle budget with 1.3 KB of headroom is not a budget, it is a countdown. It will fail on a text edit, and the diff will point at the text. The import graph has to be read before the sentence is blamed. + +## The Result + +- **238 + 954 tests** pass, 67 of them in the QR engine (10 added this round). +- **157 pages** build, `astro check` reports 0 errors, bundle budget green. +- `probe_qr_code` runs **300 checks** green on the built site and again on the live site. +- `probe_a11y` covers **234 checks**, including the three QR locales. +- `probe_whatsapp_link` is unchanged after the module split, which is the check that proves the refactor moved code without moving behaviour. +- The heaviest QR route is now **~53 KB**, down from 80.1–81.4 KB, against an 80 KB budget. + +## What I Would Build Again + +The gate-earns-its-keep part of this was not jsQR. It was accepting that a decoder answers a narrower question than the one that matters. jsQR can tell me the symbol is internally consistent — right modules, right payload, no shear, no mistranslation. It cannot tell me whether a printer will place those modules far enough apart to survive ink, whether a logo's knockout leaves enough error-correction budget for a thumbprint, or whether the ink absorbs light at the wavelength of the scanner on the counter. + +So the rules that made this usable are all floors and budgets measured on paper: 0.40 mm per module, 15% of the area, four modules of quiet zone that are not a control, red-channel contrast as a warning rather than a wall. Every refusal quotes the number it measured — "0.29 mm per module" rather than "too small" — because a limit stated as a limit teaches nothing, and the person holding the file needs to know how far off the print is. + +The probe's lesson is the one I keep re-learning in other shapes: a verification that can be satisfied by the code doing the verifying is not a verification. Feed the gate a wrong string and watch the download vanish. Measure the layout the way the reader gets it, not the way the assertion prefers to arrange it first. diff --git a/src/content/posts/zh/qr-gate-that-decodes-before-the-download.md b/src/content/posts/zh/qr-gate-that-decodes-before-the-download.md new file mode 100644 index 0000000..79a997d --- /dev/null +++ b/src/content/posts/zh/qr-gate-that-decodes-before-the-download.md @@ -0,0 +1,208 @@ +--- +title: "为什么印出来的二维码扫不出:在下载前建一道解码与物理校验闸门" +description: "我在自己的工具箱站点上做的二维码生成器,只要 jsQR 没有把载荷原样读回来,就不给文件。回读看不见的东西——纸上 0.29 毫米的模块、按面积而不是按边长计算的中心图上限、660 纳米扫描枪当成白纸的红色油墨——现在各有一道闸门。" +pubDate: 2026-11-10 +category: engineering +blueprint: sme-digital-suite +blueprintLayer: L3-application-runtime +tags: ["二维码", "校验", "jsqr", "canvas", "打印", "无障碍", "性能预算"] +ogImage: "/og/zh-qr-gate-that-decodes-before-the-download.jpg" +banner: "/banners/qr-gate-that-decodes-before-the-download.jpg" +draft: false +summary: + audience: "前端与平台工程师、需要打印二维码的企业主" + painPoint: "在预览画布上能解码的二维码,印到纸上可能根本扫不出来;而一个“要什么画什么”的生成器没有能力分辨这两者。" + impact: + - metric: "0.29 毫米 vs 0.40 毫米" + detail: "61 个模块的 vCard 载荷在 20 毫米尺寸下,每个模块只有 0.29 毫米,远低于打印机可信的底线,而解码器照样放行。现在底线量的是纸上的毫米,不是预览的像素。" + - metric: "19% 降到 15% 面积" + detail: "30% 的中心图加上两侧各两个模块的挖空留白,一共挖掉符号面积的 19%。上限从“边长百分比”改成“含留白的面积百分比”。" + - metric: "300 项探针校验" + detail: "独立探针用自己导入的 jsQR 解码页面画布,构建产物和线上站点各跑一遍,读不回来就不给下载。" + stack: ["TypeScript", "Astro 5", "jsQR", "Canvas 2D", "PNG pHYs", "Playwright/CDP 探针"] + jumpLinks: + business: "#why-a-qr-code-fails-on-paper" + architecture: "#four-blind-spots-of-a-clean-bitmap" + result: "#the-result" +dynamicCta: true +--- + +## 二维码是死在纸上,不是死在屏幕上 + +我为小商家维护的工具集——税率计算、电子发票校验、PDF 处理——最后总绕回同一个物件:二维码。店主要把码印在桌面立牌上、名片上、货车车身上、收据上。需求永远是同一句话:这个码能用,帮我印。 + +这份工作的诚实版本并不是画方块,而是交出一个在它要去的那个表面上扫得出来的文件。而这类需求里最贵的两种失败,浏览器能做的检查全都看不出来。一个在 400 像素画布上解码完美的符号,印到纸上每个模块只有 0.29 毫米,任何手机相机的中央区域都找不到它。一个深红色的码,对比度算下来 10.9:1,可访问性工具一声不响地放行,而柜台那把红光扫描枪看到的是一张白纸。 + +所以这个工具只有一条不可协商的规则:**jsQR 没有把即将导出的符号解码、并且把载荷一字不差地读回来之前,下载按钮就是灰的。** 不是预览一张“应该能读”的图,而是从导出用的同一条矢量路径重新上墨,并用一个刻意不同于页面自身结论的 decoder import 来读它。 + +引擎本身没什么稀奇:六种载荷(文本/网址、Wi-Fi、vCard 3.0、`tel:`、`SMSTO:`、`mailto:`)、四种模块形状、三种定位图案形状、前景色与背景色加可选的双色渐变、以毫米计的尺寸、L 到 H 的纠错等级、可选中心图、可选说明文字,导出为带真实 `pHYs` 块的 300 dpi PNG 和 SVG。 + +值得写下来的是闸门,因为这道闸门在变对之前,错了四次。 + +## 闸门容易,可信才难 + +第一版直接解码导出的位图。它立刻失败,而且失败得很有教育意义:平滑重采样或最近邻缩放会把点状模块之间那一像素的缝隙抹掉,结果一个印在纸上完全正常的码,仅仅因为测试环节重采样的方式不对,就被误判拦截了。闸门必须用导出器用的同一个 `shapePath`,按选定的像素密度重新上墨,而不是缩放一张它的照片。 + +第二版做了最直觉的事:按打印分辨率去探测。300 毫米的导出就是每个模块 95 像素、横向 3500 像素,而在 150、200、300 毫米三档实测里,同一种点状模块在更小的每一档都能解码,超过这附近就开始解不出来。jsQR 是给照片写的解码器——几百像素见方——它有自己的工作区间。按 95 像素/模块去探测,测的是解码器的舒适度,不是设计的正确性。 + +第三版反过来只用一个低密度,8 像素/模块,那是一个 25 毫米名片实际给出的密度。它从另一边坏掉:一个在 8 像素/模块下读得干净的点阵,在 20 像素/模块下可能解不出来——jsQR 先用 8×8 的自适应二值化块求局部阈值,再在模块几何中心单点采样,某些密度下这套采样网格会和圆点之间的白缝产生混叠。只用一个密度就判死刑,等于让好的设计替解码器的盲区背锅。 + +上线的那版把符号用**两个**密度交给解码器——访问者自己选的密度(上限 24 像素/模块)和 8 像素/模块——只有两个都失败才拒绝: + +```ts +const nativePitch = Math.max(1, Math.floor(canvas.width / geo.total)); +const pitches = [...new Set([ + Math.min(nativePitch, PROBE_PITCH_MAX), + Math.min(nativePitch, PROBE_PITCH_MIN), +])]; + +let found: string | null = null; +let tried = 0; +for (const pitch of pitches) { + const side = geo.total * pitch; + if (side < 21) continue; + tried += 1; + probe.width = side; + probe.height = side; + pctx.imageSmoothingEnabled = false; + const scaled = centre ? rescaleCentre(centre, pitch / modulePx) : null; + paintSymbol(pctx, pitch, geo, gradient, scaled, inkDark, inkLight); + const pixels = pctx.getImageData(0, 0, side, side); + const hit = decode(pixels.data, side, side, { inversionAttempts: 'dontInvert' }); + if (!hit) continue; + found = hit.data; + if (verifyDecode(expected, found) === 'ok') return 'ok'; +} +if (tried === 0) return 'empty'; +return found === null ? 'mismatch' : verifyDecode(expected, found); +``` + +这一节还有一条排除规则:说明文字的条带不画进探针。码下面的字是字,不是码的一部分;在 80 毫米及以上,那些字形的笔画给 jsQR 提供了足够多的伪定位候选,以至于一个在 50 毫米能解的圆眼设计,到 80 毫米就解不出来。因为说明文字而失败的闸门,量错了对象。 + +## 干净位图看不见的四件事 + +闸门诚实之后,工具仍然会送出在现实世界里注定失败的码,因为一张 8 像素/模块的干净位图,有一组非常具体的盲区。下面每一条现在都是带实测数字的规则。 + +**一、模块下限。** 一个 61 模块的载荷——带电话和地址的 vCard——印在 20 毫米上,加上两侧各四个模块的固定静区就是 69 个模块:纸面上每个模块 **0.29 毫米**。闸门把同一个符号按 8 像素/模块重新上墨,解得出来,于是放行,而做出来的贴纸在过塑立牌上无人可扫。油墨扩散、碳粉散点、微距对焦全都在解码器永远不会越过的这条线以下。现在 `pitchCheck` 会拒绝每模块细于 **0.40 毫米**的打印件,点状与柔和圆角则为 **0.50 毫米**——它们在每个缝隙处都漏墨——并且引用它量到的毫米数,而不是它套用的限值。 + +**二、中心图是面积问题,不是边长问题。** H 级纠错大约能找回 30% 的码字,而这份预算不只给 logo:它还要让这个码扛住一个指纹、一片反光、一道折痕、一只斜着举起的手机。29 模块的符号放 30% 的中心图,看着很保守,直到把两侧各两个模块的白色挖空留白算进去:占边长 43.8%、**占面积 19%**——相当于在一个仅靠干净位图测出回读余量的符号上,硬生生挖掉了近五分之一的面积。现在上限是 **含留白在内的 15% 面积**(`CENTRE_MAX_AREA`),于是同一个 30% 的滑杆,在密集的 vCard 上放行,在短网址上拒绝。这是物理,不是口味。 + +**三、被柜台枪当成白纸的红墨。** WCAG 相对亮度给绿色 0.7152、给蓝色 0.0722 的权重,所以白底上的深红 `#800000` 拿到 **10.9:1**,轻松越过 4.5:1 的闸门。只看原始 8 位红色通道(这也是闸门的算法口径)是 **1.9:1**——而 660 纳米红光扫描枪,那种至今还锁在柜台上的,恰好在这个波段上是色盲。手机读红墨毫无困难,所以这一条只警告、绝不拒绝:文件照样可下载,句子会写出那个比值,选择权归打印的人。 + +**四、毫米级尺寸契约:整数像素、说明文字条带与 `pHYs` 块。** 300 dpi 下一个模块只能是整数个像素;以 29 模块的符号(含两侧各四个模块静区,共 37 模块)为例,规划器**向上**取整,不向下:`ceil(box / (modules + 2 × quiet))`。向下取整会把 25 毫米那一档印成 21.9 毫米,正好落在这页自己警告的下限之下;向上取整只会让码比要求的大,而这对相机来说是安全的方向。要求 50 毫米,落成 **50.1 毫米**,这个符号的导出是 592 像素见方。说明文字再加一条占码宽 13% 的带——那个密度下是五个模块,也就是 6.77 毫米——所以文件报的是 **50.1 × 56.9 毫米**:码是方的,纸不是。`pHYs` 块把同一份承诺带出浏览器:没有它,文字处理器退回 96 dpi,把那 592 像素摆成 **157 毫米**,正好是立牌预订尺寸的三倍。 + +
+🔍 解码器看不见的两条规则:pitchCheck 与中心图面积上限(TypeScript,30 行) + +```ts +export const MIN_MODULE_MM = 0.4; +export const MIN_MODULE_MM_DOTS = 0.5; + +export interface PitchCheck { + ok: boolean; + mm: number; + floor: number; +} + +/** Judge the module pitch of the print, not of the preview. */ +export function pitchCheck(totalModules: number, actualMm: number, style: QrStyle): PitchCheck { + const floor = style === 'dots' || style === 'soft' ? MIN_MODULE_MM_DOTS : MIN_MODULE_MM; + const mm = totalModules > 0 ? actualMm / totalModules : 0; + return { ok: mm + 1e-9 >= floor, mm: Number(mm.toFixed(3)), floor }; +} + +export const CENTRE_MAX_RATIO = 0.3; +/** Share of the symbol's *area* the knockout may cover, pad included. */ +export const CENTRE_MAX_AREA = 0.15; +export const CENTRE_PAD_MODULES = 2; + +// inside planCentre() +const ratio = percent / 100; +const sidePx = Math.max(1, Math.round(input.codePx * ratio)); +const padPx = Math.max(0, input.modulePx) * CENTRE_PAD_MODULES; +if (ratio > CENTRE_MAX_RATIO + 1e-9) problems.push('too-large'); +// The pad is not decoration: it is four more modules of code that no longer exist. +const knockoutSide = sidePx + padPx * 2; +const occupied = input.codePx > 0 ? (knockoutSide / input.codePx) ** 2 : 1; +if (occupied > CENTRE_MAX_AREA + 1e-9) problems.push('too-much-area'); +``` +
+ +上述每一条规则都跑在生成文件的那个页面上:[tools.hoelee.com 的二维码生成器](https://tools.hoelee.com/qr-code-generator/) 会在文件离开浏览器之前拦下过细的模块密度和超标的中心图挖空,让印刷下厂不再靠碰运气。四种失效并排对照: + +| 现实世界里的失效 | 浏览器检查看到什么 | 闸门规则 | +|---|---|---| +| 61 模块的 vCard 印在 20 毫米 | 8 像素/模块回读通过 | 每模块细于 0.40 毫米(点状 0.50 毫米)即拒 | +| 29 模块符号加 30% 中心图 | 干净位图 H 级解码通过 | 含留白面积超过 15% 即拒 | +| 白底深红 `#800000` | WCAG 10.9:1,越过 4.5:1 | 红通道 1.9:1 → 只警告,不拒绝 | +| 300 dpi PNG 缺 `pHYs` | 浏览器里显示正常 | 写入该块,按 50.1 × 56.9 毫米报尺寸 | + +## 证明闸门真的关得上 + +没人看着关上的闸门,不算闸门。引擎测试证明算术,Playwright/CDP 探针证明页面,而且它刻意不信任页面自己的结论:它先找出码的黑色外接框,校验**时序行与时序列**——任何缩放、拉伸、裁切或平移错位(mistranslate)的图形都会在这里暴露,哪怕 jsQR 还能勉强猜出载荷——随后独立加载站点的按需 jsQR 分包,直接读取画布原始像素完成解码。只有作者自己能读的符号,在这里过不了。 + +闭合性测试是为这件事专门留的接缝:给控件设 `data-simulate-mismatch="1"`,回读会被喂一个错字符串,探针断言下载消失。闸门必须扣住文件,而不只是嘴上说要扣。 + +这个探针抓到三件顺风路径看不见的事: + +- 一张在加载时被拒的中心图——900 像素,超过 600 像素上限——会静默退回“没有中心图”的码,并且照样给出下载。这正是载荷规则禁止的静默丢弃。现在被拒的文件在清除或替换之前,一直扣着导出。 +- vCard 的 CRLF 在 textarea 里看不见,因为浏览器读取时把值规范成了 LF。探针改成对输入框折叠换行,转而在解码后的画布上证明 CRLF。 +- 探针跑到一半时重新构建(`astro build` 在 `astro preview` 供页时替换 `dist/`)会让一个检查报红,然后因为拿不到几何数据崩掉整轮。探针运行期间不要重新构建;探针应当把缺失的页面报成失败,而不是抛 traceback。 + +**那条在替版面说好话的检查。** 同站的图像工具把舞台放在表单旁边,所以它们的约定是“下载在第一屏”。这个工具把码放在六类表单下面,而探针的第一版调用 `scrollIntoView` 把下载块滚进视野再测量,以此断言同一条规则——那量的是“已经滚到那里之后能不能放进视口”,不是“在第一屏”。诚实的属性是:按钮就在码下方一眼的位置,用页面坐标测量,滚动帮不上忙——390 像素宽时,下载块在码下方 66 像素、高 48 像素,横向溢出 0 像素;1440 像素宽时是两栏各 518 像素,码位于 x = 719。把被测对象先滚进视野再量的闸门,不算闸门。 + +
+🔍 探针自己的解码器:不依赖控件的回读(Python + 注入 JS,24 行) + +```python +# The probe's own decoder: the page's own lazy jsQR chunk, imported fresh. The canvas is drawn +# from the page's pixels at their native resolution — nothing resampled, nothing smoothed — and +# only the symbol square is read, because the caption band below it is type, not code. +DECODE_JS = """(async () => { + try { + const src = document.querySelector('[data-qr]'); + if (!src || !src.width) return { found: null, note: 'no canvas' }; + const w = src.width, h = src.width; + const c = document.createElement('canvas'); + c.width = w; c.height = h; + const ctx = c.getContext('2d', { willReadFrequently: true }); + ctx.imageSmoothingEnabled = false; + ctx.drawImage(src, 0, 0, w, h, 0, 0, w, h); + const img = ctx.getImageData(0, 0, w, h); + const chunk = performance.getEntriesByType('resource').map(e => e.name).find(n => /jsQR/i.test(n)); + if (!chunk) return { found: null, note: 'no jsqr chunk' }; + const mod = await import(chunk); + const fn = mod.default; + const hit = fn(img.data, w, h); + return { found: hit ? hit.data : null, size: [w, h] }; + } catch (e) { + return { found: null, note: 'decode threw: ' + String(e) }; + } +})()""" +``` +
+ +## 一个只画码的页面,替一个电话解析器付了钱 + +这一轮最后一项失败和二维码毫无关系,和预算怎么失败关系很大。三条二维码路由是站上最重的——78.7 到 79.6 KB,对 80 KB 预算——而新加的四句警告文案把它们推到 80.1–81.4 KB,`npm run verify` 直接失败。文案不可能值 2 KB。 + +原因是 import 图。二维码生成器的引擎从 WhatsApp 链接生成器的引擎里导入绘图辅助函数,而那个模块在顶层就引了 `libphonenumber-js`:**28.7 KB** 的电话解析,由一个只画码的页面付账。绘图那一半移进了 `whatsapp-link-builder/qr-core.ts`,再从 `engine.ts` 重新导出,让所有既有 import 照旧工作,二维码工具直接引 `qr-core`。三条路由降到大约 **53 KB**,站上最重的路由现在是 WhatsApp 链接生成器的 75.7 KB。 + +可迁移的那部分是:只剩 1.3 KB 余量的预算不是预算,是倒计时。它一定会栽在一次文案修改上,而 diff 会指向那段文案。在怪句子之前,先读 import 图。 + +## 结果 + +- **238 + 954 个测试**通过,其中 67 个属于二维码引擎(本轮新增 10 个)。 +- **157 个页面**构建成功,`astro check` 0 错误,bundle 预算绿色。 +- `probe_qr_code` 的 **300 项校验**在构建产物上全绿,在线上站点再全绿一次。 +- `probe_a11y` 的 **234 项校验**全绿,包含三个语种的二维码页。 +- 模块拆分之后 `probe_whatsapp_link` 结果不变——这条检查证明这次重构搬了代码、没搬行为。 +- 最重的二维码路由从 80.1–81.4 KB 降到 **约 53 KB**,预算仍是 80 KB。 + +## 我会再做一次的选择 + +这件事里真正的价值不在于 jsQR。而在于接受一件事:解码器回答的,是一个比真正重要的问题更窄的问题。jsQR 能告诉我这个符号内部自洽——模块对、载荷对、没被剪切、没被译错。它没法告诉我打印机是否把这些模块放得够开,能不能扛住油墨;没法告诉我 logo 的挖空是否还留给纠错预算足够余量去应付一个指纹;也没法告诉我这种油墨在柜台上那把扫描枪的波长上是否吸光。 + +所以让这个工具能用的规则,全是量在纸上的下限与预算:每模块 0.40 毫米、15% 面积、四个模块且不可调节的静区、红色通道对比只作为警告而不设墙。每一次拒绝都引用它量到的数字——“每模块 0.29 毫米”,而不是“太小了”——因为把限制说成限制教不会任何东西,而拿着文件的那个人需要知道离印得出来还差多远。 + +探针那一条,是我在别的形状里反复重新学到的:一个能被“做校验的那段代码”自己满足的校验,不是校验。给闸门喂一个错字符串,看下载消失。按读者拿到它的方式去量版面,而不是按断言偏好的方式先把版面摆好。