From 05eb773fda06ff58268793521476df4c25ed7a6c Mon Sep 17 00:00:00 2001 From: Florent Tapponnier Date: Thu, 4 Jun 2026 12:46:23 +0200 Subject: [PATCH] revert: PR #277 release dev to main (keep network-fees handled separately) PR #277 'Feat/network fees l2 toggle' was mis-named and ended up sweeping every dev change into main on 2026-06-02 (233 files, 9k+ line delta). Reverts the full PR to restore the previous prod surface; a follow-up PR will cherry-pick only the network-fees bench + its deps back into main. --- .claude/skills/contribute-benchmark/SKILL.md | 4 +- .github/CODE_OF_CONDUCT.md | 4 +- .github/DISCUSSIONS_AND_PROJECT_SETUP.md | 4 +- .github/ISSUE_TEMPLATE/config.yml | 8 +- .github/ISSUE_TEMPLATE/new-benchmark.yml | 4 +- .github/SECURITY.md | 2 +- .github/SUPPORT.md | 14 +- .github/workflows/staging-deploy.yml | 12 +- AGENTS.md | 2 +- CONTRIBUTING.md | 14 +- README.md | 12 +- benchmarks/aggregator-head-lag.yml | 25 +- benchmarks/bridge-fee.yml | 18 +- benchmarks/bridge-quote-latency.yml | 16 +- benchmarks/bridge-revenue.yml | 169 --- benchmarks/buyback-audit.md | 2 +- benchmarks/buyback-audit.yml | 2 +- benchmarks/gas-estimation.yml | 4 +- benchmarks/hyperliquid-frontends.yml | 965 ------------------ benchmarks/l1-finality.md | 2 +- benchmarks/l1-finality.yml | 6 +- benchmarks/l2-block-time.yml | 2 +- benchmarks/metadata-coverage.yml | 28 +- benchmarks/network-coverage.yml | 81 +- benchmarks/network-fees.yml | 334 ------ benchmarks/oracle-deviation.yml | 2 +- benchmarks/perp-fees.yml | 2 +- benchmarks/rpc-capabilities.yml | 412 +++----- benchmarks/solana-tx-landing.yml | 10 +- benchmarks/stablecoin-peg-usdt-anchored.yml | 2 +- benchmarks/stablecoin-peg.yml | 2 +- benchmarks/validator-yield.yml | 2 +- benchmarks/wallet-labels-coverage.yml | 5 +- docs/methodology/bridge-revenue.md | 151 --- docs/walkthrough.md | 6 +- harnesses/README.md | 2 +- harnesses/aggregator-head-lag/.gitignore | 3 - .../cmd/script/log_buffer.go | 10 +- .../aggregator-head-lag/cmd/script/main.go | 43 +- harnesses/hyperliquid-frontends/Dockerfile | 13 - harnesses/hyperliquid-frontends/README.md | 78 -- harnesses/hyperliquid-frontends/builders.json | 58 -- .../cmd/script/fetcher.go | 225 ---- .../hyperliquid-frontends/cmd/script/main.go | 146 --- .../cmd/script/metrics.go | 136 --- .../cmd/script/registry.go | 40 - .../hyperliquid-frontends/cmd/script/state.go | 135 --- harnesses/hyperliquid-frontends/go.mod | 9 - harnesses/hyperliquid-frontends/go.sum | 73 -- harnesses/l1-finality/cmd/script/config.go | 18 +- harnesses/l1-finality/cmd/script/main.go | 34 - harnesses/l1-finality/cmd/script/pow.go | 131 +-- .../l2-block-time/cmd/script/sequencer_ws.go | 46 +- harnesses/metadata-coverage/README.md | 2 + .../metadata-coverage/alertmanager/Dockerfile | 15 +- .../alertmanager/alertmanager.yml | 5 +- .../alertmanager/entrypoint.sh | 18 - .../metadata-coverage/docker-compose.yml | 11 +- .../monitoring/alertmanager.yml | 5 +- .../prometheus/alertmanager.yml | 5 +- .../cmd/script/coinpaprika.go | 56 - .../network-coverage/cmd/script/coinstats.go | 62 -- .../network-coverage/cmd/script/config.go | 11 +- .../network-coverage/cmd/script/covalent.go | 83 -- harnesses/network-coverage/cmd/script/main.go | 4 - .../network-coverage/cmd/script/simdune.go | 76 -- harnesses/rpc-capabilities/README.md | 38 +- .../rpc-capabilities/cmd/script/archive.go | 4 +- harnesses/rpc-capabilities/cmd/script/main.go | 45 - .../rpc-capabilities/cmd/script/metrics.go | 10 +- .../rpc-capabilities/cmd/script/probe.go | 10 +- harnesses/solana-quote-latency/.env.example | 19 - harnesses/solana-quote-latency/.gitignore | 1 - harnesses/solana-quote-latency/Dockerfile | 28 - harnesses/solana-quote-latency/README.md | 104 -- .../cmd/monitor/config.go | 82 -- .../solana-quote-latency/cmd/monitor/dflow.go | 27 - .../cmd/monitor/http_client.go | 35 - .../cmd/monitor/jupiter.go | 154 --- .../cmd/monitor/log_buffer.go | 113 -- .../solana-quote-latency/cmd/monitor/main.go | 59 -- .../cmd/monitor/metrics.go | 115 --- .../cmd/monitor/mobula.go | 121 --- .../cmd/monitor/openocean.go | 149 --- .../cmd/monitor/provider.go | 20 - .../cmd/monitor/pulse_subscriber.go | 244 ----- .../cmd/monitor/raydium.go | 120 --- .../cmd/monitor/scheduler.go | 135 --- .../cmd/monitor/trending.go | 264 ----- harnesses/solana-quote-latency/go.mod | 21 - harnesses/solana-quote-latency/go.sum | 48 - .../solana-tx-landing/cmd/script/senders.go | 115 +-- .../solana-tx-landing/cmd/script/wallets.go | 4 - package.json | 3 - pnpm-lock.yaml | 203 ---- public/logos/1rpc.svg | 2 +- public/logos/apexliquid.png | Bin 8243 -> 0 bytes public/logos/arena.png | Bin 1093 -> 0 bytes public/logos/axiom.png | Bin 12356 -> 0 bytes public/logos/based-app.png | Bin 1268 -> 0 bytes public/logos/blocknative.svg | 39 +- public/logos/bullpen.svg | 12 - public/logos/coin98.png | Bin 1653 -> 0 bytes public/logos/coinpaprika.svg | 1 - public/logos/coinpilot.png | Bin 5140 -> 0 bytes public/logos/coinstats.svg | 1 - public/logos/covalent.svg | 7 - public/logos/defiapp.svg | 6 - public/logos/dexari.png | Bin 12600 -> 0 bytes public/logos/dexly-trade.svg | 4 - public/logos/dreamcash.png | Bin 2199 -> 0 bytes public/logos/dune.png | Bin 27110 -> 0 bytes public/logos/dune.svg | 9 + public/logos/echosync.png | Bin 11344 -> 0 bytes public/logos/flowbot.jpg | Bin 8448 -> 0 bytes public/logos/fomo.png | Bin 3624 -> 0 bytes public/logos/gemwallet.svg | 25 - public/logos/grider.jpg | Bin 16802 -> 0 bytes public/logos/gtr-trade.png | Bin 3127 -> 0 bytes public/logos/hyperdash.jpg | Bin 14995 -> 0 bytes public/logos/hyprearn.png | Bin 2103 -> 0 bytes public/logos/infinex.jpg | Bin 20686 -> 0 bytes public/logos/insilico.svg | 1 - public/logos/katoshi.svg | 37 - public/logos/lava.webp | Bin 5934 -> 1746 bytes public/logos/legend-trade.png | Bin 2527 -> 0 bytes public/logos/liminal.jpg | Bin 32247 -> 0 bytes public/logos/liquid-perps.jpg | Bin 9408 -> 0 bytes public/logos/lit-trade.png | Bin 257150 -> 0 bytes public/logos/lootbase.png | Bin 134292 -> 0 bytes public/logos/mass-dot-money.svg | 6 - public/logos/metamask.svg | 18 - public/logos/metascalp.svg | 1 - public/logos/minaraai.png | Bin 7668 -> 0 bytes public/logos/moonbot.png | Bin 3850 -> 0 bytes public/logos/moontrader.svg | 22 - public/logos/nautilus-trader.png | Bin 1501 -> 0 bytes public/logos/okto.png | Bin 14080 -> 0 bytes public/logos/onekey.png | Bin 12054 -> 0 bytes public/logos/openocean.png | Bin 4899 -> 0 bytes public/logos/pear.svg | 1 - public/logos/perpmate.png | Bin 1326 -> 0 bytes public/logos/phantom-perps.svg | 5 - public/logos/pvp-trade.png | Bin 62331 -> 0 bytes public/logos/rabby.png | Bin 20344 -> 0 bytes public/logos/rainbow.png | Bin 1979 -> 0 bytes public/logos/ranger-finance.svg | 20 - public/logos/raydium.svg | 37 - public/logos/senpi.png | Bin 3563 -> 0 bytes public/logos/silhouette.jpg | Bin 30130 -> 0 bytes public/logos/supercexy.svg | 12 - public/logos/superstack.jpg | Bin 26583 -> 0 bytes public/logos/superx.avif | Bin 3144 -> 0 bytes public/logos/supurr.svg | 6 - public/logos/sushi.png | Bin 3887 -> 0 bytes public/logos/taco-trade.jpg | Bin 9871 -> 0 bytes public/logos/tenderly.svg | 2 +- public/logos/tradoor.svg | 25 - public/logos/tread-fi.jpg | Bin 99736 -> 0 bytes public/logos/trust-wallet.png | Bin 25585 -> 0 bytes public/logos/unigox.svg | 3 - public/logos/uxuy.svg | 10 - public/logos/wallet-v.png | Bin 201000 -> 0 bytes public/logos/wunder.png | Bin 5883 -> 0 bytes public/logos/xtrade-protocol.jpg | Bin 40021 -> 0 bytes src/app/about/page.tsx | 6 +- src/app/alternatives/[slug]/page.tsx | 22 +- src/app/api/badge/[slug]/[provider]/route.ts | 136 +-- src/app/api/cron/health-check/route.ts | 18 +- src/app/api/mcp/[transport]/route.ts | 57 +- src/app/apple-icon.tsx | 1 + src/app/benchmarks/[slug]/opengraph-image.tsx | 56 +- src/app/benchmarks/[slug]/page.tsx | 120 +-- src/app/benchmarks/[slug]/twitter-image.tsx | 48 +- src/app/contribute/ai-brief.md/route.ts | 2 +- src/app/globals.css | 45 - src/app/icon.tsx | 1 + src/app/layout.tsx | 21 +- src/app/llms.txt/route.ts | 2 +- src/app/mcp/page.tsx | 6 +- src/app/methodology/page.tsx | 6 +- src/app/page.tsx | 2 +- src/app/press/page.tsx | 4 +- src/app/products/[slug]/page.tsx | 48 +- src/app/sitemap.ts | 39 +- src/components/benchmark-body.tsx | 88 +- src/components/benchmark-table.tsx | 201 ++++ src/components/chain-coverage-chip.tsx | 146 --- src/components/count-leaderboard.tsx | 8 +- src/components/distribution-chart.tsx | 399 ++------ src/components/donut-chart.tsx | 20 +- src/components/layer-filter.tsx | 63 -- src/components/ledger-table.tsx | 217 ++-- src/components/live-dashboard.tsx | 6 + src/components/live-indicator.tsx | 4 +- src/components/metric-view-tabs.tsx | 69 -- src/components/provider-logo.tsx | 49 +- src/components/providers-table.tsx | 7 +- src/components/ranked-bar-chart.tsx | 41 +- src/components/region-grid.tsx | 12 +- src/components/share-section.tsx | 2 + src/components/site-banner.tsx | 55 + src/components/site-footer.tsx | 4 +- src/components/site-header.tsx | 41 +- src/components/site-logo-3d.tsx | 399 -------- src/components/site-logo-switcher.tsx | 54 - src/components/site-logo.tsx | 13 +- src/components/summary-stat.tsx | 2 +- src/components/time-series-chart.tsx | 483 +-------- src/components/top-n-selector.tsx | 47 - src/data/provider-registry.ts | 396 +------ src/data/site.ts | 10 +- src/hooks/use-animated-domain.ts | 55 - src/hooks/use-top-n.ts | 42 - src/lib/bench-template.test.ts | 54 - src/lib/bench-template.ts | 77 +- src/lib/brand.ts | 19 +- src/lib/citation.ts | 20 - src/lib/jsonld.ts | 29 +- src/lib/live/format.ts | 8 + src/lib/logo-manifest.ts | 73 +- src/lib/methodology-tooltip.ts | 37 + src/lib/page-metadata.ts | 15 +- src/lib/per-chain-contract.ts | 54 - src/lib/prometheus.ts | 9 +- src/lib/providers.ts | 252 +---- src/lib/snapshot.ts | 53 +- src/lib/spec-schema.ts | 41 +- src/lib/spec.ts | 229 +---- src/lib/utils.ts | 3 + src/types/benchmark.ts | 58 -- 231 files changed, 1126 insertions(+), 9962 deletions(-) delete mode 100644 benchmarks/bridge-revenue.yml delete mode 100644 benchmarks/hyperliquid-frontends.yml delete mode 100644 benchmarks/network-fees.yml delete mode 100644 docs/methodology/bridge-revenue.md delete mode 100644 harnesses/hyperliquid-frontends/Dockerfile delete mode 100644 harnesses/hyperliquid-frontends/README.md delete mode 100644 harnesses/hyperliquid-frontends/builders.json delete mode 100644 harnesses/hyperliquid-frontends/cmd/script/fetcher.go delete mode 100644 harnesses/hyperliquid-frontends/cmd/script/main.go delete mode 100644 harnesses/hyperliquid-frontends/cmd/script/metrics.go delete mode 100644 harnesses/hyperliquid-frontends/cmd/script/registry.go delete mode 100644 harnesses/hyperliquid-frontends/cmd/script/state.go delete mode 100644 harnesses/hyperliquid-frontends/go.mod delete mode 100644 harnesses/hyperliquid-frontends/go.sum delete mode 100755 harnesses/metadata-coverage/alertmanager/entrypoint.sh delete mode 100644 harnesses/network-coverage/cmd/script/coinpaprika.go delete mode 100644 harnesses/network-coverage/cmd/script/coinstats.go delete mode 100644 harnesses/network-coverage/cmd/script/covalent.go delete mode 100644 harnesses/network-coverage/cmd/script/simdune.go delete mode 100644 harnesses/solana-quote-latency/.env.example delete mode 100644 harnesses/solana-quote-latency/.gitignore delete mode 100644 harnesses/solana-quote-latency/Dockerfile delete mode 100644 harnesses/solana-quote-latency/README.md delete mode 100644 harnesses/solana-quote-latency/cmd/monitor/config.go delete mode 100644 harnesses/solana-quote-latency/cmd/monitor/dflow.go delete mode 100644 harnesses/solana-quote-latency/cmd/monitor/http_client.go delete mode 100644 harnesses/solana-quote-latency/cmd/monitor/jupiter.go delete mode 100644 harnesses/solana-quote-latency/cmd/monitor/log_buffer.go delete mode 100644 harnesses/solana-quote-latency/cmd/monitor/main.go delete mode 100644 harnesses/solana-quote-latency/cmd/monitor/metrics.go delete mode 100644 harnesses/solana-quote-latency/cmd/monitor/mobula.go delete mode 100644 harnesses/solana-quote-latency/cmd/monitor/openocean.go delete mode 100644 harnesses/solana-quote-latency/cmd/monitor/provider.go delete mode 100644 harnesses/solana-quote-latency/cmd/monitor/pulse_subscriber.go delete mode 100644 harnesses/solana-quote-latency/cmd/monitor/raydium.go delete mode 100644 harnesses/solana-quote-latency/cmd/monitor/scheduler.go delete mode 100644 harnesses/solana-quote-latency/cmd/monitor/trending.go delete mode 100644 harnesses/solana-quote-latency/go.mod delete mode 100644 harnesses/solana-quote-latency/go.sum delete mode 100644 public/logos/apexliquid.png delete mode 100644 public/logos/arena.png delete mode 100644 public/logos/axiom.png delete mode 100644 public/logos/based-app.png delete mode 100644 public/logos/bullpen.svg delete mode 100644 public/logos/coin98.png delete mode 100644 public/logos/coinpaprika.svg delete mode 100644 public/logos/coinpilot.png delete mode 100644 public/logos/coinstats.svg delete mode 100644 public/logos/covalent.svg delete mode 100644 public/logos/defiapp.svg delete mode 100644 public/logos/dexari.png delete mode 100644 public/logos/dexly-trade.svg delete mode 100644 public/logos/dreamcash.png delete mode 100644 public/logos/dune.png create mode 100644 public/logos/dune.svg delete mode 100644 public/logos/echosync.png delete mode 100644 public/logos/flowbot.jpg delete mode 100644 public/logos/fomo.png delete mode 100644 public/logos/gemwallet.svg delete mode 100644 public/logos/grider.jpg delete mode 100644 public/logos/gtr-trade.png delete mode 100644 public/logos/hyperdash.jpg delete mode 100644 public/logos/hyprearn.png delete mode 100644 public/logos/infinex.jpg delete mode 100644 public/logos/insilico.svg delete mode 100644 public/logos/katoshi.svg delete mode 100644 public/logos/legend-trade.png delete mode 100644 public/logos/liminal.jpg delete mode 100644 public/logos/liquid-perps.jpg delete mode 100644 public/logos/lit-trade.png delete mode 100644 public/logos/lootbase.png delete mode 100644 public/logos/mass-dot-money.svg delete mode 100644 public/logos/metamask.svg delete mode 100644 public/logos/metascalp.svg delete mode 100644 public/logos/minaraai.png delete mode 100644 public/logos/moonbot.png delete mode 100644 public/logos/moontrader.svg delete mode 100644 public/logos/nautilus-trader.png delete mode 100644 public/logos/okto.png delete mode 100644 public/logos/onekey.png delete mode 100644 public/logos/openocean.png delete mode 100644 public/logos/pear.svg delete mode 100644 public/logos/perpmate.png delete mode 100644 public/logos/phantom-perps.svg delete mode 100644 public/logos/pvp-trade.png delete mode 100644 public/logos/rabby.png delete mode 100644 public/logos/rainbow.png delete mode 100644 public/logos/ranger-finance.svg delete mode 100644 public/logos/raydium.svg delete mode 100644 public/logos/senpi.png delete mode 100644 public/logos/silhouette.jpg delete mode 100644 public/logos/supercexy.svg delete mode 100644 public/logos/superstack.jpg delete mode 100644 public/logos/superx.avif delete mode 100644 public/logos/supurr.svg delete mode 100644 public/logos/sushi.png delete mode 100644 public/logos/taco-trade.jpg delete mode 100644 public/logos/tradoor.svg delete mode 100644 public/logos/tread-fi.jpg delete mode 100644 public/logos/trust-wallet.png delete mode 100644 public/logos/unigox.svg delete mode 100644 public/logos/uxuy.svg delete mode 100644 public/logos/wallet-v.png delete mode 100644 public/logos/wunder.png delete mode 100644 public/logos/xtrade-protocol.jpg create mode 100644 src/components/benchmark-table.tsx delete mode 100644 src/components/chain-coverage-chip.tsx delete mode 100644 src/components/layer-filter.tsx create mode 100644 src/components/live-dashboard.tsx delete mode 100644 src/components/metric-view-tabs.tsx create mode 100644 src/components/site-banner.tsx delete mode 100644 src/components/site-logo-3d.tsx delete mode 100644 src/components/site-logo-switcher.tsx delete mode 100644 src/components/top-n-selector.tsx delete mode 100644 src/hooks/use-animated-domain.ts delete mode 100644 src/hooks/use-top-n.ts create mode 100644 src/lib/methodology-tooltip.ts delete mode 100644 src/lib/per-chain-contract.ts create mode 100644 src/lib/utils.ts diff --git a/.claude/skills/contribute-benchmark/SKILL.md b/.claude/skills/contribute-benchmark/SKILL.md index b0d732e9..65e094c1 100644 --- a/.claude/skills/contribute-benchmark/SKILL.md +++ b/.claude/skills/contribute-benchmark/SKILL.md @@ -5,7 +5,7 @@ description: Walks a contributor through adding a new benchmark to OpenChainBenc You are helping someone add a new benchmark to OpenChainBench, an open registry of crypto-infrastructure benchmarks. -If the user does not already have the repo cloned, your first step is to suggest `git clone https://github.com/ChainBench/OpenChainBench && cd OpenChainBench`. Everything below assumes that working directory. +If the user does not already have the repo cloned, your first step is to suggest `git clone https://github.com/OpenChainBench/OpenChainBench && cd OpenChainBench`. Everything below assumes that working directory. ## Mental model @@ -24,7 +24,7 @@ Walk the user through these six steps in order. Do not skip ahead. ### 1. Open an issue -Direct them to the `Propose a benchmark` issue template at https://github.com/ChainBench/OpenChainBench/issues/new?template=new-benchmark.yml. Maintainers need to see the proposed metric, providers, methodology and harness location before code review. Brainstorm-stage ideas belong in https://github.com/ChainBench/OpenChainBench/discussions/categories/ideas instead. +Direct them to the `Propose a benchmark` issue template at https://github.com/OpenChainBench/OpenChainBench/issues/new?template=new-benchmark.yml. Maintainers need to see the proposed metric, providers, methodology and harness location before code review. Brainstorm-stage ideas belong in https://github.com/OpenChainBench/OpenChainBench/discussions/categories/ideas instead. ### 2. Write the spec diff --git a/.github/CODE_OF_CONDUCT.md b/.github/CODE_OF_CONDUCT.md index cacf0937..e46d62f9 100644 --- a/.github/CODE_OF_CONDUCT.md +++ b/.github/CODE_OF_CONDUCT.md @@ -5,7 +5,7 @@ OpenChainBench publishes performance numbers about real services run by real peo ## Expected behavior - **Critique numbers, not people.** It's fair to question a methodology, a sample window, a regional bias. It's not fair to suggest someone is incompetent or dishonest. -- **Cite, don't assert.** If you think a published figure is wrong, file a [provider correction](https://github.com/ChainBench/OpenChainBench/issues/new?template=provider-correction.yml) with a reproducer. "This number is bullshit" without a reproducer is a non-issue. +- **Cite, don't assert.** If you think a published figure is wrong, file a [provider correction](https://github.com/OpenChainBench/OpenChainBench/issues/new?template=provider-correction.yml) with a reproducer. "This number is bullshit" without a reproducer is a non-issue. - **Disclose conflicts.** If you work for a provider that's measured here, say so when you participate in discussions about that provider. It doesn't disqualify your input. it just keeps the conversation honest. - **Respect contributors' time.** Maintainers are not obligated to debate. If a thread is going in circles, a maintainer may close it with a dated decision and that decision stands until new evidence is filed. @@ -28,7 +28,7 @@ Decisions are recorded in the affected thread. ## Reporting -For private reports. including suspected manipulation, harassment, or undisclosed conflicts of interest. email **conduct@openchainbench.com** or open a [private security advisory](https://github.com/ChainBench/OpenChainBench/security/advisories/new) (the same channel works for non-security disclosures). +For private reports. including suspected manipulation, harassment, or undisclosed conflicts of interest. email **conduct@openchainbench.com** or open a [private security advisory](https://github.com/OpenChainBench/OpenChainBench/security/advisories/new) (the same channel works for non-security disclosures). We treat reporters' identities as confidential by default. diff --git a/.github/DISCUSSIONS_AND_PROJECT_SETUP.md b/.github/DISCUSSIONS_AND_PROJECT_SETUP.md index 7d31e822..870b4856 100644 --- a/.github/DISCUSSIONS_AND_PROJECT_SETUP.md +++ b/.github/DISCUSSIONS_AND_PROJECT_SETUP.md @@ -21,7 +21,7 @@ Default categories like "General" and "Polls" should be deleted to keep the surf - **Name**: `OpenChainBench Roadmap` - **Visibility**: Public -- **Linked repository**: `ChainBench/OpenChainBench` +- **Linked repository**: `OpenChainBench/OpenChainBench` ### Columns @@ -41,7 +41,7 @@ Requested → Approved → In progress → Live → Archived In Project Settings → Workflows, enable: -- **Auto-add to project**. for issues in `ChainBench/OpenChainBench` matching the filter `is:issue label:bench-request`. They land in `Requested` automatically. +- **Auto-add to project**. for issues in `OpenChainBench/OpenChainBench` matching the filter `is:issue label:bench-request`. They land in `Requested` automatically. - **Item closed → Archived**. when an issue is closed without a `live` label, move it to `Archived`. - **PR merged → Live** (manual; GitHub doesn't have a native trigger, so a maintainer moves the card after merge). diff --git a/.github/ISSUE_TEMPLATE/config.yml b/.github/ISSUE_TEMPLATE/config.yml index 483e473b..00392232 100644 --- a/.github/ISSUE_TEMPLATE/config.yml +++ b/.github/ISSUE_TEMPLATE/config.yml @@ -1,14 +1,14 @@ blank_issues_enabled: false contact_links: - name: 💡 Idea or rough proposal - url: https://github.com/ChainBench/OpenChainBench/discussions/new?category=ideas + url: https://github.com/OpenChainBench/OpenChainBench/discussions/new?category=ideas about: Have an idea but not ready for a formal benchmark proposal? Start a discussion in Ideas. - name: 🙋 Question (How do I…?) - url: https://github.com/ChainBench/OpenChainBench/discussions/new?category=q-a + url: https://github.com/OpenChainBench/OpenChainBench/discussions/new?category=q-a about: Ask a question about a spec, harness, methodology, or how the site works. - name: 📊 Show & tell - url: https://github.com/ChainBench/OpenChainBench/discussions/new?category=show-and-tell + url: https://github.com/OpenChainBench/OpenChainBench/discussions/new?category=show-and-tell about: Show a fork, a dashboard, or a benchmark you ran locally. - name: 🔐 Security disclosure - url: https://github.com/ChainBench/OpenChainBench/security/advisories/new + url: https://github.com/OpenChainBench/OpenChainBench/security/advisories/new about: Privately report a vulnerability. Do not file a public issue for security problems. diff --git a/.github/ISSUE_TEMPLATE/new-benchmark.yml b/.github/ISSUE_TEMPLATE/new-benchmark.yml index e8ca74f1..3968a601 100644 --- a/.github/ISSUE_TEMPLATE/new-benchmark.yml +++ b/.github/ISSUE_TEMPLATE/new-benchmark.yml @@ -10,7 +10,7 @@ body: OpenChainBench prefers to align on **what** is measured and **how** before any code is written. Fill out the sections below. fields marked required are the bare minimum needed for the maintainers to give meaningful feedback. If you're not sure on some of them, write what you have and leave a note. - Have a rough idea but not ready to fill all this? Open a thread in [Discussions → Ideas](https://github.com/ChainBench/OpenChainBench/discussions/categories/ideas) instead. + Have a rough idea but not ready to fill all this? Open a thread in [Discussions → Ideas](https://github.com/OpenChainBench/OpenChainBench/discussions/categories/ideas) instead. - type: input id: metric attributes: @@ -97,5 +97,5 @@ body: options: - label: I understand that the harness code, methodology, and any corrections will be published under the project's MIT/CC-BY-4.0 license. required: true - - label: I have searched [existing benchmarks](https://github.com/ChainBench/OpenChainBench/tree/main/benchmarks) and [open issues](https://github.com/ChainBench/OpenChainBench/issues?q=is%3Aissue+label%3Abench-request) for duplicates. + - label: I have searched [existing benchmarks](https://github.com/OpenChainBench/OpenChainBench/tree/main/benchmarks) and [open issues](https://github.com/OpenChainBench/OpenChainBench/issues?q=is%3Aissue+label%3Abench-request) for duplicates. required: true diff --git a/.github/SECURITY.md b/.github/SECURITY.md index 1e7bf15e..150f0331 100644 --- a/.github/SECURITY.md +++ b/.github/SECURITY.md @@ -2,7 +2,7 @@ ## Reporting a vulnerability -Open a [private security advisory](https://github.com/ChainBench/OpenChainBench/security/advisories/new) on this repository. Do **not** open a public issue for a security report. the advisory mechanism keeps the disclosure private until a fix is in place. +Open a [private security advisory](https://github.com/OpenChainBench/OpenChainBench/security/advisories/new) on this repository. Do **not** open a public issue for a security report. the advisory mechanism keeps the disclosure private until a fix is in place. If GitHub is not an option, email **security@openchainbench.com** with: diff --git a/.github/SUPPORT.md b/.github/SUPPORT.md index 42f72408..4cf1799d 100644 --- a/.github/SUPPORT.md +++ b/.github/SUPPORT.md @@ -6,13 +6,13 @@ OpenChainBench is community-run. Before opening an issue, pick the right channel | Goal | Where to go | | --- | --- | -| Propose a new benchmark formally | [New issue → 📊 Propose a benchmark](https://github.com/ChainBench/OpenChainBench/issues/new?template=new-benchmark.yml) | -| Float an idea before writing it up | [Discussions → Ideas](https://github.com/ChainBench/OpenChainBench/discussions/categories/ideas) | -| Ask a question about a spec, harness, methodology, or the site | [Discussions → Q&A](https://github.com/ChainBench/OpenChainBench/discussions/categories/q-a) | -| Show a fork or a dashboard you built | [Discussions → Show & tell](https://github.com/ChainBench/OpenChainBench/discussions/categories/show-and-tell) | -| Report a number that looks wrong on the site | [New issue → 🐞 Data quality](https://github.com/ChainBench/OpenChainBench/issues/new?template=data-quality.yml) | -| Submit a provider correction (you measured a different number) | [New issue → ✏️ Provider correction](https://github.com/ChainBench/OpenChainBench/issues/new?template=provider-correction.yml) | -| Privately report a security vulnerability | [Security advisories](https://github.com/ChainBench/OpenChainBench/security/advisories/new) | +| Propose a new benchmark formally | [New issue → 📊 Propose a benchmark](https://github.com/OpenChainBench/OpenChainBench/issues/new?template=new-benchmark.yml) | +| Float an idea before writing it up | [Discussions → Ideas](https://github.com/OpenChainBench/OpenChainBench/discussions/categories/ideas) | +| Ask a question about a spec, harness, methodology, or the site | [Discussions → Q&A](https://github.com/OpenChainBench/OpenChainBench/discussions/categories/q-a) | +| Show a fork or a dashboard you built | [Discussions → Show & tell](https://github.com/OpenChainBench/OpenChainBench/discussions/categories/show-and-tell) | +| Report a number that looks wrong on the site | [New issue → 🐞 Data quality](https://github.com/OpenChainBench/OpenChainBench/issues/new?template=data-quality.yml) | +| Submit a provider correction (you measured a different number) | [New issue → ✏️ Provider correction](https://github.com/OpenChainBench/OpenChainBench/issues/new?template=provider-correction.yml) | +| Privately report a security vulnerability | [Security advisories](https://github.com/OpenChainBench/OpenChainBench/security/advisories/new) | | See what's planned and where to contribute code | [Roadmap project board](https://github.com/orgs/OpenChainBench/projects) | | Read about how the data is produced | [`benchmarks/README.md`](../benchmarks/README.md) and [`harnesses/README.md`](../harnesses/README.md) | diff --git a/.github/workflows/staging-deploy.yml b/.github/workflows/staging-deploy.yml index 528eec40..65233157 100644 --- a/.github/workflows/staging-deploy.yml +++ b/.github/workflows/staging-deploy.yml @@ -1,5 +1,15 @@ name: Vercel staging deploy +# Auto-deploy to Vercel Preview on every push to dev. Workaround for the +# Vercel ↔ GitHub App pairing being unreliable across the OpenChainBench +# (user account) + mobula-labs (Vercel team) setup. The Action calls the +# Vercel CLI directly with VERCEL_TOKEN, bypassing the App webhook flow. +# +# Required GitHub secrets (Settings → Secrets and variables → Actions): +# VERCEL_TOKEN — vercel.com/account/tokens, scope = mobula-labs +# VERCEL_ORG_ID — ***SCRUBBED*** +# VERCEL_PROJECT_ID — ***SCRUBBED*** + on: push: branches: @@ -51,7 +61,7 @@ jobs: vercel alias set "${{ steps.deploy.outputs.url }}" \ staging-openchainbench.vercel.app \ --token=${{ secrets.VERCEL_TOKEN }} \ - --scope=${{ secrets.VERCEL_ORG_ID }} + --scope=mobula-labs - name: Comment summary run: | diff --git a/AGENTS.md b/AGENTS.md index 7502e8c0..d9a6850a 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -9,7 +9,7 @@ This version has breaking changes. APIs, conventions, and file structure may all Two long-lived branches: - `main` → openchainbench.com (production). Vercel auto-deploy on push is **disabled**; production deploys are **manual** via `vercel --prod` from a checkout of `main`. -- `dev` → staging. Each push triggers `.github/workflows/staging-deploy.yml` which calls Vercel CLI with a token and emits a Preview URL. +- `dev` → staging. Each push triggers `.github/workflows/vercel-staging.yml` which calls Vercel CLI with a token and emits a Preview URL. The Vercel GitHub App is NOT used for staging because the OpenChainBench user account + mobula-labs Vercel team pairing wouldn't propagate. **Standard flow:** diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 4b72e48b..b089f6cb 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -20,16 +20,16 @@ OpenChainBench is a federation. Each harness is hosted by whoever wrote it. the | Goal | Right channel | | --- | --- | -| Float a rough idea | [Discussions → Ideas](https://github.com/ChainBench/OpenChainBench/discussions/categories/ideas) | -| Ask a methodology / harness question | [Discussions → Q&A](https://github.com/ChainBench/OpenChainBench/discussions/categories/q-a) | -| Propose a benchmark formally | [Issue → 📊 Propose a benchmark](https://github.com/ChainBench/OpenChainBench/issues/new?template=new-benchmark.yml) | -| Report a number that looks wrong | [Issue → 🐞 Data quality](https://github.com/ChainBench/OpenChainBench/issues/new?template=data-quality.yml) | -| Submit a provider correction | [Issue → ✏️ Provider correction](https://github.com/ChainBench/OpenChainBench/issues/new?template=provider-correction.yml) | +| Float a rough idea | [Discussions → Ideas](https://github.com/OpenChainBench/OpenChainBench/discussions/categories/ideas) | +| Ask a methodology / harness question | [Discussions → Q&A](https://github.com/OpenChainBench/OpenChainBench/discussions/categories/q-a) | +| Propose a benchmark formally | [Issue → 📊 Propose a benchmark](https://github.com/OpenChainBench/OpenChainBench/issues/new?template=new-benchmark.yml) | +| Report a number that looks wrong | [Issue → 🐞 Data quality](https://github.com/OpenChainBench/OpenChainBench/issues/new?template=data-quality.yml) | +| Submit a provider correction | [Issue → ✏️ Provider correction](https://github.com/OpenChainBench/OpenChainBench/issues/new?template=provider-correction.yml) | | See what's planned | [Roadmap project board](https://github.com/orgs/OpenChainBench/projects) | ## Submitting a benchmark -1. **Open an issue** with the [📊 Propose a benchmark template](https://github.com/ChainBench/OpenChainBench/issues/new?template=new-benchmark.yml). Sketch the metric, providers, methodology, where you'll host the harness. get feedback before you write code. The issue lands in the `Requested` column of the roadmap. +1. **Open an issue** with the [📊 Propose a benchmark template](https://github.com/OpenChainBench/OpenChainBench/issues/new?template=new-benchmark.yml). Sketch the metric, providers, methodology, where you'll host the harness. get feedback before you write code. The issue lands in the `Requested` column of the roadmap. 2. **Write the spec.** Drop a YAML at `benchmarks/.yml`. The format is described in [`benchmarks/README.md`](./benchmarks/README.md) and validated by `src/lib/spec-schema.ts`. 3. **Build the harness** at `harnesses//`. A harness is a data producer only. it exposes `/metrics` over HTTPS with the metric names and labels your spec references. See [`harnesses/README.md`](./harnesses/README.md) for the contract and the existing Go harnesses as reference implementations. 4. **Deploy the harness** on whatever infra fits. Railway, Fly, Cloud Run, a VPS. Expose `/metrics` over HTTPS at a stable public URL. You own the runtime, the secrets and the budget. The maintainers never see your API keys. @@ -56,7 +56,7 @@ pnpm build # production build ## Corrections -If you can't reproduce a number, file a [provider correction](https://github.com/ChainBench/OpenChainBench/issues/new?template=provider-correction.yml) (you measured a different value for your service) or a [data quality issue](https://github.com/ChainBench/OpenChainBench/issues/new?template=data-quality.yml) (the site is showing something obviously wrong or stale). Material errors are corrected in place with a dated note on the report. +If you can't reproduce a number, file a [provider correction](https://github.com/OpenChainBench/OpenChainBench/issues/new?template=provider-correction.yml) (you measured a different value for your service) or a [data quality issue](https://github.com/OpenChainBench/OpenChainBench/issues/new?template=data-quality.yml) (the site is showing something obviously wrong or stale). Material errors are corrected in place with a dated note on the report. ## Code of conduct & security diff --git a/README.md b/README.md index bbefe614..104ede6e 100644 --- a/README.md +++ b/README.md @@ -255,7 +255,7 @@ To render the site against your local harness, run a local Prometheus scraping ` Full guide in [CONTRIBUTING.md](./CONTRIBUTING.md). For a concrete end-to-end example, read [`docs/walkthrough.md`](./docs/walkthrough.md). Short version: -1. **Open an issue** with the [📊 Propose a benchmark template](https://github.com/ChainBench/OpenChainBench/issues/new?template=new-benchmark.yml). Sketch the metric, providers, methodology. get feedback before you build. Want to brainstorm first? Use [Discussions → Ideas](https://github.com/ChainBench/OpenChainBench/discussions/categories/ideas) instead. +1. **Open an issue** with the [📊 Propose a benchmark template](https://github.com/OpenChainBench/OpenChainBench/issues/new?template=new-benchmark.yml). Sketch the metric, providers, methodology. get feedback before you build. Want to brainstorm first? Use [Discussions → Ideas](https://github.com/OpenChainBench/OpenChainBench/discussions/categories/ideas) instead. 2. **Write the spec** at `benchmarks/.yml`. Format documented in [`benchmarks/README.md`](./benchmarks/README.md), validated by `src/lib/spec-schema.ts`. 3. **Build the harness** in `harnesses//`. Any language works as long as it exposes `/metrics` over HTTPS with the metric names and labels your spec references. The harness is a data producer only. no Prometheus, Grafana, or Alertmanager packaging. 4. **Deploy the harness** on whatever infra fits. Railway, Fly, Cloud Run, a VPS, even a home server with a static IP. Expose `/metrics` over HTTPS at a stable public URL. You own the runtime, the secrets and the budget. @@ -314,11 +314,11 @@ PNG URL — the downloaded image matches what the user is looking at. ## Community -- 💡 [Discussions → Ideas](https://github.com/ChainBench/OpenChainBench/discussions/categories/ideas). brainstorm new benchmarks before writing them up -- 🙋 [Discussions → Q&A](https://github.com/ChainBench/OpenChainBench/discussions/categories/q-a). methodology / harness / spec questions -- 📊 [Discussions → Show & tell](https://github.com/ChainBench/OpenChainBench/discussions/categories/show-and-tell). share forks and dashboards +- 💡 [Discussions → Ideas](https://github.com/OpenChainBench/OpenChainBench/discussions/categories/ideas). brainstorm new benchmarks before writing them up +- 🙋 [Discussions → Q&A](https://github.com/OpenChainBench/OpenChainBench/discussions/categories/q-a). methodology / harness / spec questions +- 📊 [Discussions → Show & tell](https://github.com/OpenChainBench/OpenChainBench/discussions/categories/show-and-tell). share forks and dashboards - 🗺️ [Roadmap](https://github.com/orgs/OpenChainBench/projects). what's planned and what's live -- 🐞 [New issue](https://github.com/ChainBench/OpenChainBench/issues/new/choose). formal benchmark proposal, data-quality flag, or provider correction +- 🐞 [New issue](https://github.com/OpenChainBench/OpenChainBench/issues/new/choose). formal benchmark proposal, data-quality flag, or provider correction - See [SUPPORT.md](./.github/SUPPORT.md) for the full triage matrix. ## SEO TODOs @@ -339,7 +339,7 @@ Tracking the work to make benchmark pages rank for the queries they target. - Site. [openchainbench.com](https://openchainbench.com) - Live stream. folded into [openchainbench.com](https://openchainbench.com) - Twitter. [@openchainbench](https://twitter.com/openchainbench) -- GitHub. [ChainBench/OpenChainBench](https://github.com/ChainBench/OpenChainBench) +- GitHub. [OpenChainBench/OpenChainBench](https://github.com/OpenChainBench/OpenChainBench) ## License diff --git a/benchmarks/aggregator-head-lag.yml b/benchmarks/aggregator-head-lag.yml index 7be2f7d4..9187b13e 100644 --- a/benchmarks/aggregator-head-lag.yml +++ b/benchmarks/aggregator-head-lag.yml @@ -19,13 +19,7 @@ seo_intro: | pages quote "real-time" without a number; this page quotes the number. Mobula's WebSocket, Codex's GraphQL feed and GeckoTerminal's REST endpoint are watched from three regions (us-east, eu-west, sgp) - against canonical-tip archive - nodes on Base, BNB Chain and Solana. Because each chain has its own - base block cadence (Solana's ~400 ms slots vs Base/BNB's 2-3 s - blocks), the headline winner shifts by chain. On Solana the leader - is {{best_name:chain:solana}} at {{best_p50:chain:solana}}; on Base - it's {{best_name:chain:base}} at {{best_p50:chain:base}}; on BNB - Chain it's {{best_name:chain:bnb}} at {{best_p50:chain:bnb}}. + against canonical-tip archive nodes on Base, BNB Chain and Solana. p50 and p99 are computed via Prometheus `quantile_over_time` over a 24-hour window so the leaderboard reflects sustained freshness, not a cherry-picked cold-start sample. The same harness tracks presence @@ -51,23 +45,21 @@ methodology: - "Cardinality: 3 aggregators × 3 chains × 3 regions = 27 active series." findings: - - "Across the unfiltered cross-chain aggregate the leader is {{best_name}} at {{best_p50}} (p50, 24 h) over {{count}} measured providers, but that headline number mixes chains with very different baseline cadences (Solana 400 ms slots vs Base/BNB 2-3 s blocks) so the per-chain breakdown below is what to read for an integration decision." - - "On Solana the leader is {{best_name:chain:solana}} at {{best_p50:chain:solana}} (p50, 24 h); the trailer is {{worst_name:chain:solana}} at {{worst_p50:chain:solana}}. Slot cadence is sub-second, so any second-scale aggregate latency is on the provider's pipeline, not the chain." - - "On Base the leader is {{best_name:chain:base}} at {{best_p50:chain:base}} (p50, 24 h); the trailer is {{worst_name:chain:base}} at {{worst_p50:chain:base}}. Base targets a 2 s block cadence, so head lag here measures pipeline latency on top of the chain's natural block interval." - - "On BNB Chain the leader is {{best_name:chain:bnb}} at {{best_p50:chain:bnb}} (p50, 24 h); the trailer is {{worst_name:chain:bnb}} at {{worst_p50:chain:bnb}}. BNB's ~3 s blocks set the floor; the spread between leader and trailer is the provider-side delta." - - "{{name:mobula}} returns {{p50:mobula}} (p50, 24 h) cross-chain. WebSocket feeds compress latency by pushing events the moment the harness emits them rather than waiting for the next poll cycle, which is the architectural reason real-time integrations prefer them over REST." - - "{{name:codex}} clocks {{p50:codex}} (p50, 24 h) cross-chain. GraphQL subscriptions are a server-push pattern in practice and cluster near WebSocket performance on liquid pools, but tail latency tends to widen on long-tail tokens with sparse events." - - "{{name:geckoterminal}} sits at {{p50:geckoterminal}} (p50, 24 h) cross-chain. REST polling adds the poll interval to every read, so head lag tracks the publisher's chosen cadence rather than raw infrastructure speed." + - "{{best_name}} currently leads head lag at {{best_p50}} (p50, 24 h) across {{count}} measured providers. The number is the wall-clock interval between a swap settling on chain and that swap appearing on the provider's feed, cross-region median." + - "{{name:mobula}} returns {{p50:mobula}} (p50, 24 h). WebSocket feeds compress latency by pushing events the moment the harness emits them rather than waiting for the next poll cycle, which is the architectural reason real-time integrations prefer them over REST." + - "{{name:codex}} clocks {{p50:codex}} (p50, 24 h). GraphQL subscriptions are a server-push pattern in practice and cluster near WebSocket performance on liquid pools, but tail latency tends to widen on long-tail tokens with sparse events." + - "{{name:geckoterminal}} sits at {{p50:geckoterminal}} (p50, 24 h). REST polling adds the poll interval to every read, so head lag tracks the publisher's chosen cadence rather than raw infrastructure speed." - "p99 is the integration-grade number. The gap between p50 and {{p99:mobula}} / {{p99:codex}} / {{p99:geckoterminal}} is what a live UI feels when a chain spikes or a region's path degrades." + - "{{worst_name}} trails at {{worst_p50}} (p50, 24 h). On a real-time trading UI the gap between leader and laggard becomes visible to end users when chart candles stutter or the trade tape lags behind the explorer." -source: https://github.com/ChainBench/OpenChainBench/tree/main/harnesses/aggregator-head-lag +source: https://github.com/OpenChainBench/OpenChainBench/tree/main/harnesses/aggregator-head-lag prometheus: window: 24h faq: - q: "Which crypto data API has the lowest latency right now?" - a: "It depends on the chain, because each chain's base block cadence sets a different floor. On Solana the leader is {{best_name:chain:solana}} at {{best_p50:chain:solana}} (p50, 24 h). On Base it's {{best_name:chain:base}} at {{best_p50:chain:base}}. On BNB Chain it's {{best_name:chain:bnb}} at {{best_p50:chain:bnb}}. The unfiltered cross-chain aggregate puts {{best_name}} on top at {{best_p50}}, but that ranking is influenced by chain mix as much as by provider pipeline speed - read the per-chain numbers if you're picking a provider for a specific chain." + a: "{{best_name}} currently leads at {{best_p50}} (p50, 24 h) across {{count}} measured providers. The leaderboard re-sorts every 15 seconds against fresh Prometheus samples, so the answer reflects the last 24 hours of measured head lag on Base, BNB Chain and Solana from three regions, not a marketing-page claim." - q: "What is head lag in a crypto data feed?" a: "Head lag is the wall-clock interval between a transaction landing in a confirmed block on chain and the same transaction appearing on the data provider's feed. A provider with 200 ms head lag pushes the event a fifth of a second after it settled; a provider with 6 s head lag pushes it after six seconds. The number controls how live a trading UI, a chart or a PnL tracker actually feels when the underlying chain moves." - q: "Is WebSocket faster than REST for crypto market data?" @@ -170,4 +162,3 @@ providers: - region: ap-southeast p50: quantile_over_time(0.50, head_lag_seconds{aggregator="geckoterminal", region="sgp"}[24h]) * 1000 series: avg_over_time(head_lag_seconds{aggregator="geckoterminal", region="sgp"}[1h]) * 1000 - diff --git a/benchmarks/bridge-fee.yml b/benchmarks/bridge-fee.yml index 458204fc..890a266b 100644 --- a/benchmarks/bridge-fee.yml +++ b/benchmarks/bridge-fee.yml @@ -46,26 +46,16 @@ methodology: - "Failures (quote_failed, unsupported route) excluded from cost aggregates and counted toward success rate." - "Provider types are surfaced as badges: direct protocols (Debridge) charge their own bridging fees; aggregators (LiFi) route through whichever underlying bridge is cheapest, so their effective fee includes that bridge's cost plus any aggregator markup; intent / relay layers (Mobula, Relay) bake cost into the spread of a settlement intent rather than charging an explicit fee." -# Per-corridor leader rewrite deferred: this YAML does not yet declare -# `dimensions:` for `from_chain`/`to_chain` / corridor. The underlying -# metric already carries those labels (see comment block lower in this -# file), so per-corridor placeholders can be wired in once dimensions -# are added (separate code/data PR). Until then, the {{best_name}} / -# {{worst_name}} placeholders below resolve to the cross-corridor -# aggregate, which is honest because every provider in this bench is -# queried on the same Solana/Base/Arbitrum corridors. but the text is -# softened to make the aggregation explicit rather than implying a -# single winning corridor. findings: - - "{{best_name}} currently leads the cross-corridor aggregate at {{best_p50}} (p50, 24 h) for $300 USDC trades, across {{count}} measured bridges. The number averages over the Solana/Base/Arbitrum corridors the harness sweeps; per-corridor leaders can diverge sharply on routes where one solver has inventory and another does not." + - "{{best_name}} currently leads at {{best_p50}} (p50, 24 h) on the $300 USDC corridor, across {{count}} measured bridges." - "{{name:mobula}} returns {{p50:mobula}} (p50, 24 h). Intent layers compress fees, slippage and destination gas into a single spread, so the effective number reads lower than aggregators that route through a paid underlying bridge." - "{{name:lifi}} sits at {{p50:lifi}} (p50, 24 h). Aggregators pay the underlying bridge plus a thin markup, so their effective cost trails intent layers on liquid corridors where multiple solvers compete on the same route." - "{{name:debridge}} clocks {{p50:debridge}} (p50, 24 h). Direct protocols front-load cost into a native-token fee, which dominates on $300 trades because the fixed component does not scale with notional." - - "{{worst_name}} trails the cross-corridor aggregate at {{worst_p50}} (p50, 24 h). On a $300 trade the gap between leader and laggard is mostly the fixed-fee floor of the slower path, not relative spread efficiency, and the laggard on one corridor can be the leader on another once corridor dimensions are surfaced." + - "{{worst_name}} trails at {{worst_p50}} (p50, 24 h). On a $300 trade the gap between leader and laggard is mostly the fixed-fee floor of the slower path, not relative spread efficiency." faq: - q: "What is the cheapest cross-chain bridge right now?" - a: "{{best_name}} currently leads the cross-corridor aggregate at {{best_p50}} (p50, 24 h) for $300 USDC trades, averaged across the Solana/Base/Arbitrum corridors the harness sweeps. The leaderboard re-sorts every five minutes against fresh Prometheus samples, so the answer is anchored to the last 24 hours of live data rather than a frozen table from a blog post. Per-corridor leaders can diverge from this aggregate when a solver has deep inventory on one specific route and not on others, that breakdown is on the roadmap once corridor dimensions are surfaced in the page UI." + a: "{{best_name}} currently leads the leaderboard at {{best_p50}} (p50, 24 h) for $300 USDC trades across the measured corridors (Solana, Base, Arbitrum). The leaderboard re-sorts every five minutes against fresh Prometheus samples, so the answer is always anchored to the last 24 hours of live data rather than a frozen table from a blog post." - q: "How much does it cost to bridge $300 USDC?" a: "Total cost varies between providers. The current p50 across {{count}} bridges spans from {{best_p50}} (leader) up to {{worst_p50}} (laggard) of the $300 notional. The figure already includes fees, slippage and destination gas because we report `bridge_cost_percent`, the all-in number that actually leaves the user's wallet, not the explicit fee field providers advertise." - q: "Why do bridge fees vary 10x between providers?" @@ -77,7 +67,7 @@ faq: - q: "Why does the cheapest bridge change throughout the day?" a: "Solver competition is the main driver. Intent layers like Mobula and Relay rank quotes from a rotating set of solvers whose inventory and risk appetite shift with destination-chain volatility and time of day. When Solana gas spikes or an L2 sees a deposit cluster, solvers reprice, and the leaderboard re-orders. The 5-minute scrape cadence catches these moves; the 24-hour p50 smooths them so the headline number reflects sustained competitiveness rather than a single favourable quote." -source: https://github.com/ChainBench/OpenChainBench/tree/main/harnesses/bridge-monitor +source: https://github.com/OpenChainBench/OpenChainBench/tree/main/harnesses/bridge-monitor prometheus: url: https://prometheus-production-9ffe.up.railway.app diff --git a/benchmarks/bridge-quote-latency.yml b/benchmarks/bridge-quote-latency.yml index b3cd1400..4a637a53 100644 --- a/benchmarks/bridge-quote-latency.yml +++ b/benchmarks/bridge-quote-latency.yml @@ -43,23 +43,15 @@ methodology: - "Histogram buckets: 50, 100, 200, 500, 1000, 2000, 5000, 10000 ms." - "Failures (quote_failed, execution_failed, unsupported route) excluded from latency aggregates and counted toward success rate." -# Per-corridor leader rewrite deferred: this YAML does not yet declare -# `dimensions:` for `from_chain`/`to_chain` / corridor. The bridge-monitor -# metric carries those labels (see comment block below), so per-corridor -# placeholders can be wired in once the dimensions block is added in a -# separate code/data PR. The {{best_name}} / {{worst_name}} below -# resolve to the cross-corridor aggregate, which is honest because every -# bridge is queried on the same 4 USDC routes, but the text now makes -# the aggregation explicit rather than implying a single winning route. findings: - - "{{best_name}} currently leads the cross-corridor aggregate at {{best_p50}} (p50, 24 h) across {{count}} measured bridges. The cohort spans direct protocols, aggregators and intent layers under the same query, averaged over the 4 USDC routes the harness sweeps." + - "{{best_name}} currently leads quote latency at {{best_p50}} (p50, 24 h) across {{count}} measured bridges. The cohort spans direct protocols, aggregators and intent layers under the same query." - "{{name:relay}} returns {{p50:relay}} (p50, 24 h). Intent and relay layers usually clock lowest because the API surface is a thin price-discovery call against pre-quoted solvers, not a full route-search graph." - "{{name:lifi}} sits at {{p50:lifi}} (p50, 24 h). Aggregators do more work per call (route search across N underlying bridges, fee normalisation), which costs them a stable 100 to 400 ms versus pure relays." - "{{name:debridge}} clocks {{p50:debridge}} (p50, 24 h). Direct protocols quote a single canonical route, so latency reflects raw API plumbing rather than route-search complexity." - "Tail latency tells the integration story. p99 ({{p99:relay}} / {{p99:lifi}} / {{p99:debridge}}) is what dictates timeouts in production wallets; SDKs that wait for the slowest bridge degrade the whole UX when one provider has a bad minute." - - "{{worst_name}} trails the cross-corridor aggregate at {{worst_p50}} (p50, 24 h). A 5x gap at p50 turns into a 10 to 20x gap at p99. A bridge that lags overall can still be fastest on a specific corridor where it is closer to its solver pool, that per-corridor breakdown is on the roadmap." + - "{{worst_name}} trails at {{worst_p50}} (p50, 24 h). A 5x gap at p50 turns into a 10 to 20x gap at p99, which is where flaky integrations actually surface to end users." -source: https://github.com/ChainBench/OpenChainBench/tree/main/harnesses/bridge-monitor +source: https://github.com/OpenChainBench/OpenChainBench/tree/main/harnesses/bridge-monitor prometheus: url: https://prometheus-production-9ffe.up.railway.app @@ -68,7 +60,7 @@ prometheus: faq: - q: "Which cross-chain bridge has the lowest API latency?" - a: "{{best_name}} currently leads the cross-corridor aggregate at {{best_p50}} (p50, 24 h) across {{count}} measured bridges, averaged over the 4 USDC routes the harness sweeps. The leaderboard re-sorts every five minutes against fresh Prometheus samples, so the ranking reflects the last 24 hours of actual API performance from a single eu-west origin under the same routes. Per-corridor latency leaders can differ from this aggregate where one provider has a solver pool closer to a specific destination chain, that breakdown is on the roadmap once corridor dimensions are surfaced in the page UI." + a: "{{best_name}} currently leads at {{best_p50}} (p50, 24 h) across {{count}} measured bridges. The leaderboard re-sorts every five minutes against fresh Prometheus samples, so the ranking reflects the last 24 hours of actual API performance from a single eu-west origin under the same USDC routes." - q: "What is the difference between quote latency and bridge fill time?" a: "Quote latency is the wall-clock time the bridge API takes to return a price. Fill time is the wall-clock time the funds take to land on the destination chain after the user signs. They are decoupled: a bridge can quote in 100 ms and take 30 seconds to settle, or quote in 2 seconds and settle in 5 seconds. This benchmark measures the quote half because that is the part a wallet, an aggregator or an embedded swap UI feels first and tunes its UX around." - q: "Why does bridge quote latency matter for builders?" diff --git a/benchmarks/bridge-revenue.yml b/benchmarks/bridge-revenue.yml deleted file mode 100644 index a9dd77d6..00000000 --- a/benchmarks/bridge-revenue.yml +++ /dev/null @@ -1,169 +0,0 @@ -# OpenChainBench. Bench № 028 - -slug: bridge-revenue -number: "028" -title: Cross-chain bridge implied protocol revenue -seo_title: "Bridge revenue tracker 2026: cross-chain protocol implied margin USD per day, take rate bps, swap volume (Relay + comparable bridges)" -seo_description: "Live cross-chain bridge implied protocol revenue. (USD in − USD out − gas − app fees) summed over swaps in 24h / 7d / 30d. Upper bound on what each bridge + solvers keep. Relay tracked today; Across / Socket / deBridge to follow. Methodology pre-registered, harness OSS." -subtitle: Implied margin in USD that each cross-chain bridge plus its solver network collectively retain per swap, summed over rolling 24h / 7d / 30d windows. Upper bound, not exact. Read methodology before citing. -category: Bridges -status: live -metric: Implied revenue USD (24h) -unit: usd -higher_is_better: true - -disclaimer: | - This is an UPPER BOUND, not an exact protocol-revenue number. The margin = USD-in minus USD-out minus gas minus disclosed app fees. Some of that margin Relay shares with solvers in ways we cannot distinguish from the public swap data, so the bench attributes the full amount to "Relay plus solvers collectively". Treat the headline as a ceiling on Relay's own take, not a P&L line. Unpriced swaps (token without a USD reference at swap time) are excluded from the sum and counted separately. - -seo_intro: | - This benchmark answers a question that has no honest public - answer today. how much money does Relay.link, the leading - cross-chain swap routing protocol, actually retain from the - flow it processes. The bench computes implied margin per swap - as (USD value the user paid) minus (USD value the user - received) minus (gas total in USD) minus (any external app - fees the API discloses), then sums that margin over rolling - 24-hour, 7-day and 30-day windows. The result is the smallest - possible number consistent with the on-chain swap data, but - not necessarily the smallest possible number consistent with - Relay's books. Relay shares revenue with the solver network - in ways the public API does not break out, so the bench - attributes the full margin to "Relay plus solvers collectively". - Treat the headline as a ceiling on what Relay alone keeps. - Why publish an upper bound. Because no lower bound exists in - public data. Relay does not publish a fee schedule mapping - volume to revenue. Solver-rebate arrangements are private. - Community-tracked volume ($80M-$150M per day per public - disclosures) times a market-implied 1-5 bps blended take - rate yields an expected band of $20k-$100k per day, or - $0.75M-$2.5M per month. This bench tightens that band by - measuring directly from the swap stream and discloses every - methodology choice so readers can reproduce or argue with - the number. - How it works. A Go program polls the Relay.link public swap - API every 60 s, joins each completed swap against a USD - reference at the swap timestamp, subtracts gas and disclosed - external app fees, and emits the resulting margin as a - Prometheus gauge labeled by window. Unpriced swaps are - excluded from the sum and counted separately. Headline - numbers render as p50 / p90 / p99 on the bench page; those - slots are repurposed for 24h / 7d / 30d windows of the same - margin metric. Take rate in bps is published alongside. - -abstract: | - Relay.link is a cross-chain swap routing protocol that - publishes per-swap detail through a public API. This - benchmark consumes that API on a fixed cadence, computes - per-swap implied margin in USD as (input USD value) minus - (output USD value) minus (gas USD) minus (disclosed external - app fees), and sums the margin over rolling 24-hour, 7-day - and 30-day windows. The result is published as the protocol- - revenue upper bound. Volume USD, swap count and the implied - take rate in basis points are surfaced alongside as context. - The bench does not have access to Relay's internal solver- - rebate accounting, so the number is interpreted as the - margin retained collectively by Relay plus its solver - network, not Relay's own bottom-line revenue. Cross- - validation. Public disclosures put Relay volume at $80M to - $150M per day. Bridge / aggregator take rates cluster at 1 - to 5 basis points blended. Multiplying yields an expected - protocol-revenue band of $20k to $100k per day, or $0.75M - to $2.5M per month, which the live bench number should fall - inside. Significant deviation is either a data-quality issue - the methodology section flags (price-feed gap, unpriced - swap surge, API change) or genuine signal that solver share - has shifted. Limitations. The margin definition is an upper - bound. Solver rebates would lower it; data-quality gaps - (missing USD reference at swap time, gas estimation drift, - undisclosed app fees) would lower the published headline - relative to true protocol revenue. The harness publishes - unpriced-swap count and last-poll timestamp as freshness - signals so readers can spot data-quality regressions. - -methodology: - - "Data source. The Relay.link public swap API is polled on a fixed cadence (default 60 s). The harness consumes the swap stream incrementally, deduping by swap ID, and emits each completed swap as a single contribution to the running window sums. Only swaps with status `success` are counted; pending or failed swaps are tracked separately and excluded from the revenue sum." - - "Margin definition. per_swap_margin_usd = input_usd - output_usd - gas_usd - external_app_fees_usd. input_usd and output_usd are computed by joining the on-chain token amounts against a USD reference at the swap timestamp from CoinGecko or equivalent. gas_usd is the chain-native gas cost (gas_used * gas_price) converted to USD at the same timestamp. external_app_fees_usd is the sum of any frontend or referrer fees the swap payload discloses." - - "Window sums. relay_revenue_usd{window=\"24h\"} is the rolling 24-hour sum of per-swap margin. relay_revenue_usd{window=\"7d\"} is the rolling 7-day sum. relay_revenue_usd{window=\"30d\"} is the rolling 30-day sum. relay_volume_usd and relay_swap_count are computed the same way over the same windows. The bench page binds the three timescales to the p50 / p90 / p99 slots respectively, so the leaderboard surfaces all three at a glance." - - "Take rate. relay_take_rate_bps = (relay_revenue_usd{window=\"24h\"} / relay_volume_usd{window=\"24h\"}) * 10000. Reported on the 24-hour window as the most recent operational signal. Expected band per cross-validation is 1-5 bps blended; a take-rate reading outside that band is either a data-quality issue or a regime change worth investigating." - - "Pricing coverage. relay_swaps_priced_total counts swaps where every leg had a USD reference at swap time. relay_swaps_unpriced_total counts swaps where at least one leg did not (long-tail token, missing reference, price-feed gap). The success column on the bench page is priced / (priced + unpriced), a data-quality ratio rather than a service-uptime ratio. A low ratio means the published headline understates true volume and margin." - - "Why margin is an upper bound on protocol revenue. Relay shares revenue with its solver network through arrangements the public API does not break out. Per-swap margin therefore captures what Relay AND solvers collectively retain, not Relay alone. Without access to internal rebate accounting, the bench cannot decompose the split. Headline is published as 'Relay implied protocol revenue (upper bound)'. Readers building a P&L model should apply their own solver-share assumption to the headline." - - "Freshness. relay_last_poll_timestamp_seconds is a Unix-timestamp gauge of the most recent successful API poll. The bench page's success indicator and any cron alerter use this to detect API outages or harness stalls. expected_freshness_seconds is set to 300 (5 min) which is 5x the 60 s poll cadence, so one missed cycle is tolerated and two missed cycles fire." - - "Cross-validation expected band. Public disclosures put Relay daily volume at $80M to $150M per day. Industry-standard cross-chain take rates cluster at 1 to 5 basis points blended. Multiplying the two ranges yields an expected revenue band of $20k to $100k per day, or $0.75M to $2.5M per month. The live number should fall inside this band. Significant deviation is either a data-quality issue or genuine signal that solver share has shifted." - - "Reproducibility. The full harness source is published in the OpenChainBench harnesses directory (Go). Anyone can clone, set the Relay.link API endpoint env var, run the binary against a Prometheus scraper, and reproduce these metrics. The bench does not rely on any private Mobula service for measurement, the only external dependency is the Relay.link public API and a public USD price reference (CoinGecko or equivalent)." - - "Methodology versioning. Any change to the margin definition, window sizes, pricing source, or excluded-swap rules ships as a public PR with a 14-day comment window. Major changes (e.g. switching from upper-bound margin to a solver-net-decomposed model once private data becomes available) run a 30-day shadow period publishing old and new metric series in parallel." - -findings: - - "Relay implied protocol revenue (24h, upper bound) is currently {{p50:relay}}. Sum of (USD paid - USD received - gas - disclosed app fees) across every successful swap in the last 24 hours. This is the smallest number consistent with the public on-chain swap data and an upper bound on what Relay alone retains after solver-share rebates." - - "The 7-day rolling sum sits at {{p90:relay}}. Smoothing across a week removes day-of-week volume effects and the noise from a single large arbitrage swap that can dominate a 24-hour window. Read this number as the steady-state protocol-revenue ceiling." - - "The 30-day rolling sum is {{p99:relay}}. Monthly recurring revenue ceiling, useful for comparing against public revenue disclosures from comparable cross-chain protocols and against the $0.75M-$2.5M per month expected band derived from volume times take-rate cross-validation." - - "Implied take rate over the last 24 hours is approximately (relay_revenue_usd / relay_volume_usd) * 10000 basis points. Expected blended band per industry cross-validation is 1 to 5 bps. A reading outside this band is either a data-quality issue (priced-swap ratio dropping, gas-estimation drift) or genuine signal that solver share has shifted." - - "Pricing coverage (priced swaps / total swaps over 24h) controls how much of true volume the headline captures. A 100 % ratio means every swap was joined against a USD reference and the headline reflects the full flow. A lower ratio means long-tail tokens are dropping out of the margin sum and the published number understates true protocol revenue proportionally." - -faq: - - q: "Is this Relay.link's actual revenue?" - a: "No. It is an upper bound. Implied margin equals USD paid minus USD received minus gas minus disclosed app fees, summed over completed swaps. Relay shares an unknown fraction of that margin with its solver network through arrangements the public API does not break out. The headline therefore captures what Relay AND its solver network collectively retain, not Relay's own bottom-line revenue. Without access to internal rebate accounting, the bench cannot decompose the split. Treat the headline as a ceiling and apply your own solver-share assumption if you need a Relay-only number." - - q: "Why publish an upper bound instead of an exact number?" - a: "Because no exact number exists in public data and an upper bound is the most rigorous estimate the public swap stream supports. Relay does not publish a fee schedule mapping volume to protocol revenue, and solver-rebate arrangements are private. The alternatives are either to publish nothing, or to publish a guess. An upper bound computed directly from the swap data is more useful than a guess, and is honest about the residual uncertainty. The methodology section spells out exactly what the upper-bound assumption is so readers can apply their own adjustments." - - q: "What does the expected band of $20k-$100k per day come from?" - a: "Cross-validation. Public disclosures put Relay daily volume at $80M to $150M per day. Industry-standard cross-chain take rates cluster at 1 to 5 basis points blended (bridge aggregators and routing protocols typically sit in this range). Multiplying the two ranges yields an expected revenue band of $20k to $100k per day, or $0.75M to $2.5M per month. The live bench number should fall inside this band. A reading meaningfully outside it is either a data-quality issue the methodology flags, or a signal that the cross-validation assumptions need to be revisited." - - q: "Why are 24h, 7d and 30d shown in the p50 / p90 / p99 columns?" - a: "OpenChainBench's standard leaderboard renders p50 / p90 / p99 of a latency-like metric. For a revenue benchmark there is no native percentile interpretation, so the three slots are repurposed to surface the same metric at three timescales: 24h in p50, 7d in p90, 30d in p99. This preserves the at-a-glance comparability of the leaderboard while making the multi-window nature of the metric explicit. The methodology section calls this out so readers do not misread the columns as actual percentiles." - - q: "What happens to swaps whose tokens have no USD price at swap time?" - a: "They are excluded from the margin sum and the volume sum, and counted separately as relay_swaps_unpriced_total. The success column on the bench page is priced / (priced + unpriced), so a low ratio is visible. Causes of an unpriced swap include long-tail token without a CoinGecko entry, price-feed gap, or a brand-new token launched within minutes of the swap. The published headline understates true volume and margin proportionally to the unpriced share, so a 95 % priced ratio means the headline is about 5 % low." - - q: "Why is the freshness threshold 5 minutes?" - a: "The harness polls Relay's public API every 60 seconds. expected_freshness_seconds is set to 5 minutes which is 5x the poll cadence, so one missed cycle is tolerated and roughly two missed cycles fire the cron alerter. Setting it tighter (e.g. 90 s) would cause spurious alerts on transient API hiccups; setting it looser (e.g. 30 min) would let a multi-cycle outage go unnoticed. 5 min is the standard balance for a 1-min-cadence harness in this repo." - - q: "Could solver rebates make the real number much lower than the headline?" - a: "Yes. If Relay rebates half of every basis point of margin back to the solver that filled the swap, the Relay-only revenue is half the headline. Public disclosures from comparable protocols (e.g. CowSwap, 1inch Fusion) suggest solver-share fractions in the 30 % to 70 % range depending on intent design. The bench does not pick a number for Relay because that would be a guess. Readers building a P&L model should apply their own solver-share assumption to the headline. The headline itself is the ceiling, the floor is open." - - q: "Why is this bench in the Bridges category?" - a: "Relay.link is a cross-chain swap routing protocol, the closest fit in the OpenChainBench category list is Bridges. Other benches in this category measure bridge fees, bridge quote latency and bridge-monitor finality. A Trading or Aggregators classification would also be defensible since Relay is structurally closer to an intent-settlement layer than a classic bridge, but Bridges is the most discoverable bucket for the readers most likely to want this number." - -source: https://github.com/ChainBench/OpenChainBench/blob/main/benchmarks/bridge-revenue.yml -# The Relay harness lives in the private mobula-api/miniapps tree for -# now; this spec self-links until the harness is ported to the public -# OCB repo. Additional bridges (across-revenue, socket-revenue) will -# land as sibling harnesses and feed their own provider entries into -# this same bench spec. - -prometheus: - window: 24h - expected_freshness_seconds: 300 - -# Real metrics emitted by the Relay.link revenue harness: -# relay_revenue_usd{window} gauge (window: 24h | 7d | 30d) -# relay_volume_usd{window} gauge (window: 24h | 7d | 30d) -# relay_swap_count{window} gauge (window: 24h | 7d | 30d) -# relay_take_rate_bps gauge (24h window only, derived margin / volume * 10000) -# relay_swaps_priced_total counter -# relay_swaps_unpriced_total counter -# relay_last_poll_timestamp_seconds gauge -# -# Mapping to leaderboard columns: -# p50 = relay_revenue_usd{window="24h"} (latest 24h window) -# p90 = relay_revenue_usd{window="7d"} (rolling 7d window) -# p99 = relay_revenue_usd{window="30d"} (rolling 30d window) -# mean = relay_revenue_usd{window="7d"} / 7 (daily avg over 7d) -# series = relay_revenue_usd{window="24h"} (chart, evolves over time) -# sample_size = relay_swap_count{window="24h"} -# success = priced / (priced + unpriced) (data-quality ratio) -# -# Note: the p50 / p90 / p99 slots here are repurposed for the 24h / 7d / 30d -# windows because a revenue gauge has no native percentile interpretation. -# This is called out in the methodology and the FAQ. - -providers: - - slug: relay - name: Relay - tag: Cross-chain swap routing protocol, implied margin upper bound - formula: "Sum over the last 24h of (input USD − output USD − gas USD − disclosed external app fees) for every successful swap from Relay.link's public API, an upper bound on Relay+solver margin." - type: relay - secondary: - label: Take rate (24h, bps) - value: "see relay_take_rate_bps" - queries: - p50: relay_revenue_usd{window="24h"} - p90: relay_revenue_usd{window="7d"} - p99: relay_revenue_usd{window="30d"} - mean: relay_revenue_usd{window="7d"} / 7 - success: relay_swaps_priced_total / (relay_swaps_priced_total + relay_swaps_unpriced_total) - sample_size: relay_swap_count{window="24h"} - series: relay_revenue_usd{window="24h"} diff --git a/benchmarks/buyback-audit.md b/benchmarks/buyback-audit.md index 89258898..500605c0 100644 --- a/benchmarks/buyback-audit.md +++ b/benchmarks/buyback-audit.md @@ -28,7 +28,7 @@ v2 will add Jupiter Litterbox Trust (50% of Jupiter fees → on-market JUP buyba A ratio well below 1.0 is not automatically under-delivery. Two regimes produce it: 1. **Batched execution.** Sky's SBE accumulates surplus inside the Maker / Sky protocol and concentrates on-market SKY buys into irregular batches via Uniswap. A 7-day window taken mid-accumulation reads low; the long-run accrual to the destination address tracks closer to 1.0. -2. **Sustained under-funding.** The promised share overstates what is actually being routed to the buyback program. This shows up as a 30-day ratio that stays well below 1.0 across multiple snapshots. The cadence signal in (1) damps out, the structural signal does not. +2. **Sustained under-funding.** The promised share overstates what is actually being routed to the buyback program. This shows up as a 30-day ratio that stays well below 1.0 across multiple snapshots — the cadence signal in (1) damps out, the structural signal does not. The 7d vs 30d split is the cheapest tell for which regime is in play. Continuous executors (Hyperliquid AF) show 7d ≈ 30d; batched executors (Sky SBE) show 7d < 30d; structurally under-funded programs would show both windows low. diff --git a/benchmarks/buyback-audit.yml b/benchmarks/buyback-audit.yml index b6c7da30..662362e6 100644 --- a/benchmarks/buyback-audit.yml +++ b/benchmarks/buyback-audit.yml @@ -91,7 +91,7 @@ faq: - q: "How often does this bench update?" a: "Every 5 minutes per protocol. The numbers are gauges over rolling 7-day and 30-day windows, so sub-5-minute resolution would not surface anything new, both the DeFiLlama promised side and the destination-wallet executed side are bounded by minutes-to-hours upstream cadences. The full window is recomputed on each scrape rather than carrying a running delta, so the ratio reacts immediately to DeFiLlama historical revisions or to a freshly indexed Etherscan transfer without needing a backfill pass." -source: https://github.com/ChainBench/OpenChainBench/tree/main/harnesses/buyback-audit +source: https://github.com/OpenChainBench/OpenChainBench/tree/main/harnesses/buyback-audit prometheus: window: 7d diff --git a/benchmarks/gas-estimation.yml b/benchmarks/gas-estimation.yml index 44b87c98..26976493 100644 --- a/benchmarks/gas-estimation.yml +++ b/benchmarks/gas-estimation.yml @@ -98,7 +98,7 @@ faq: - q: "Why is gas prediction so hard?" a: "EIP-1559 makes the base fee deterministic (it adjusts by ±12.5% per block based on the previous block's gas used), so every oracle agrees on base fee within a fraction of a gwei. The hard part is predicting the priority-fee distribution in the *next* block. Priority fees are set by users in response to mempool congestion, which shifts on swap activity, MEV bot deployments, NFT mints and DEX volume in a way no historical-lookback model can fully anticipate. The leaderboard surfaces which oracle's lookback / inference scheme tracks reality best per chain, sustained over 24 h." -source: https://github.com/ChainBench/OpenChainBench/tree/main/harnesses/gas-estimation +source: https://github.com/OpenChainBench/OpenChainBench/tree/main/harnesses/gas-estimation prometheus: window: 24h @@ -149,7 +149,7 @@ providers: series: gas_error_priority_gwei{oracle="blocknative", tier="p50"} - slug: publicnode-feehistory - name: PublicNode + name: PublicNode feeHistory tag: Thin wrapper over EIP-1559 reward percentiles formula: "Median over 24h of |PublicNode eth_feeHistory p50 reward − realized p50 priority fee| in gwei, computed per next-mined block on the active chain." queries: diff --git a/benchmarks/hyperliquid-frontends.yml b/benchmarks/hyperliquid-frontends.yml deleted file mode 100644 index 9c7eb94d..00000000 --- a/benchmarks/hyperliquid-frontends.yml +++ /dev/null @@ -1,965 +0,0 @@ -# OpenChainBench. Bench № 030 - -slug: hyperliquid-frontends -number: "030" -title: Hyperliquid frontends user-cost benchmark -seo_title: "Hyperliquid frontends 2026: effective builder fee bps, $/user efficiency, fee discipline (Phantom, Axiom, OKX, GMGN, pvp.trade)" -seo_description: "Live benchmark of Hyperliquid frontends ranked by how much they extract from users, not by raw volume. Effective builder fee in bps (cap 100), D7 cohort retention per builder, and USD captured per active trader. Observational, on-chain attribution via builder code field, methodology public." -subtitle: How much each Hyperliquid frontend charges its users via the on-chain builder code. Effective fee in basis points (cap 100), summed over 24h. Lower = more aligned with traders. -category: Trading -status: live -metric: Effective builder fee (24h, bps) -unit: bps -higher_is_better: false - -disclaimer: | - Volume share dashboards already exist (ASXN, Coinmarketman, Flowscan, Allium). OCB leads with user cost instead. Effective fee is a volume weighted `builder_fee / notional` over the rolling 24h, so fee free promo windows pull it down. Native HL UI orders carry no builder code and are excluded; the bench tracks third party frontends that opt into the builder field. Companion metrics surface slippage, freshness, taker share, asset concentration. Local hl-node source, sub minute freshness. - -seo_intro: | - Every Hyperliquid order carries an optional on chain `builder` - field. Frontends like Phantom Perps, Axiom, MetaMask, pvp.trade, - Insilico, DefiApp, Dexari and Okto use this field to claim a - share of taker fees as their own rebate (capped at 100 basis - points on perps, 1000 on spot). The same field is the cleanest - user cost signal available. Dividing the total `builder_fee` - captured by the total notional routed gives the effective fee - each frontend charges its users on top of the base Hyperliquid - fee schedule. This benchmark publishes that ratio per builder - in sub minute freshness, reading the local hl-node fills stream - on the OCB infrastructure rather than the public daily CSV bucket. - The default chart shows the 24h volume weighted effective fee - in basis points. A tab switcher above the chart surfaces five - companion views computed from the same stream. Slippage proxy - is the per fill basis point gap between executed price and the - previous trade on the same asset, averaged over 24h, so a - frontend with a low fee but a wide routing path shows the real - user cost. Time since last fill is an outage detector, seconds - since the most recent attributed fill for that builder. Fills - per minute is the rolling activity rate. Taker share is the - fraction of fills that crossed the spread, separating aggressive - wallet style UIs from pro maker heavy terminals. Volume routed - is the headline number every other dashboard publishes, kept - here as a companion not the ranking driver. - -abstract: | - We compute a family of quality metrics per Hyperliquid builder - code by tailing the fills stream of a local hl-node operated - on OCB infrastructure. The node writes every block of fills - to `node_fills_by_block/hourly/YYYYMMDD/HH`, one JSON object - per line, with the `builder` address and `builderFee` on every - attributed fill. A Go harness tails these files every 30 seconds, - maintains a rolling 24h window in memory, and exposes a stable - Prometheus surface that this page consumes. The headline metric - is effective fee in basis points, `sum(builder_fee_usd) / - sum(notional_usd) * 10000` over the rolling 24h, volume weighted - across every fill attributed to the builder address. Five - companion metrics share the same stream. Price deviation bps is - the per fill `|fill_px - last_seen_px_same_asset| / last_seen_px - * 10000` averaged over the window, a proxy for execution quality. - Time since last fill in seconds catches frontends whose routing - pipeline is down. Fills per minute is the rolling activity rate. - Taker share is `crossed_fills / total_fills`. Top three assets - by routed notional per builder reveals routing strategy and - surfaces HIP-3 perps. The harness keeps a curated `builders.json` - mapping of EVM addresses to frontend slugs, currently 60 entries - covering wallets, terminals, social trading apps, bots, and - HIP-3 perps deployers, seeded from the public DefiLlama - dimension adapter registry plus behavioral cross reference of - the top unidentified addresses. Builder addresses with valid - fills outside this registry route through the same `builder` - field but stay invisible to this leaderboard until added by a - public PR. The bench does not place trades, - does not touch private keys, and does not depend on any internal - Mobula service. - -methodology: - - "Data source. A local hl-node operated on OCB infrastructure tails the Hyperliquid mainnet and writes every block of attributed fills to `node_fills_by_block/hourly/YYYYMMDD/HH`. Each line is one block, the `events` array carries one entry per fill, and every fill with a builder code includes the `builder` address plus `builderFee` in USDC. Sub minute freshness, no dependency on the public daily CSV bucket." - - "Cadence. The Go harness re reads the current and previous hourly files every 30 seconds, parses appended lines, and maintains a rolling 24h window in memory. Prometheus scrapes the metrics every 30 seconds via a Caddy reverse proxy with basic auth. End to end staleness from fill landing on chain to bench page render is typically under 60 seconds." - - "Effective fee calculation. For each builder over the rolling 24h window: `effective_fee_bps = sum(builder_fee_usd) / sum(notional_usd) * 10000`, where `notional_usd = px * sz` summed over every fill. Volume weighted, not flat averaged, so a builder routing one large trade at 1 bps and many tiny trades at 10 bps lands near the rate the biggest dollars actually paid." - - "USD per user efficiency. `fees_per_user_usd = sum(builder_fee_usd) / count(distinct user)` over the rolling 24h window. Surfaces predatory pricing more clearly than effective fee alone. A builder with 5 bps effective fee and $50 per user is extracting differently than one with the same 5 bps and $0.50 per user." - - "Price deviation, slippage proxy. For each new fill on asset A by builder B: `dev_bps = abs(fill_px - last_seen_px_on_A) / last_seen_px * 10000`, where `last_seen_px` is the most recent fill price on that asset across the whole cohort. Averaged per builder over the rolling 24h. Proxy for execution quality. A frontend that routes to less liquid venues or slower order paths shows higher deviation, a direct user cost on top of the fee column." - - "Outage detector. `last_fill_age_seconds = now - max(fill.time for fills in window)` per builder. During active hours the cohort baseline runs under one minute, so anything above a few minutes is a real anomaly. Catches frontends whose routing pipeline is down and frontends that quietly stopped operating but still have their builder code in circulation." - - "Taker share. Each fill has a boolean `crossed` field, true when the fill crossed the spread (taker), false when it rested in the book (maker). `taker_pct = crossed_fills / total_fills` per builder over the window. Separates aggressive instant execution UIs from pro maker heavy terminals." - - "Per asset top three. For each builder, the three assets with the highest notional volume in the rolling 24h. Cardinality bounded at the cohort size times 3 ranks (currently 60 builders × 3 = 180 series). The `asset` label rotates as concentration shifts. Reveals routing strategy and surfaces HIP-3 perps (xyz:, km:, cash: prefixes) that the older Hyperliquid frontends do not list." - - "Builder registry. `miniapps/hyperliquid-frontends-local/builders.json` is a hand curated `[{slug, name, address, valid_from, notes}]` array, currently 60 entries seeded from DefiLlama's open source dimension adapter registry plus a behavioral cross reference pass on the top unidentified addresses. Cohort spans wallets, pro terminals, social and PvP UIs, automated bots, signal apps, and HIP-3 deployers. New addresses ship via public PR." - - "Excluded by design. Native HL UI orders carry no builder code so they are not user attributable by this method. Roughly 95 percent of Hyperliquid fills land without a builder field. The 5 percent that do are the frontend ecosystem this bench measures." - - "Reproducibility. Harness source at `miniapps/hyperliquid-frontends-local/` in the mobula-api repo (Go). Anyone running their own hl-node can clone, point the `-data` flag at their `node_fills_by_block/hourly` root, run the binary against a Prometheus scraper, and reproduce these metrics. No private API keys, no internal Mobula service dependency." - - "Methodology versioning. Any change (registry additions, formula tweaks, exclusion thresholds, window sizes) ships as a public PR. Major changes run a parallel period publishing old and new metric series side by side under a `_v2` suffix until cutover." - -findings: - - "Effective fee spread is 10x across the cohort. Insilico and Axiom both clock 1.00 bps on the last 24h of attributed flow, the cheapest transparent flat in the set. MetaMask sits at 10.00 bps, the practical on-chain cap most frontends respect, making it the most extractive currently tracked. Phantom Perps lands at 5.22, in line with the wallet-integrated tier." - - "Fee alone is half the story. DefiApp executes tightest at 1.90 bps price deviation despite charging 5.02 bps in builder fee. Dexari deviates 25.83 bps, 13x the cohort median of about 3 bps, on top of its 8.91 bps fee. A user paying Dexari to route their flow is paying twice: once at the fee line, once at the fill price." - - "Volume and user-cost are uncorrelated. Phantom Perps routes 19.4M USD in 24h at 5.22 bps. Insilico routes 7.9M USD at 1.00 bps. MetaMask routes 5M USD at 10 bps. The leaderboard most HL dashboards publish (volume share) ranks Phantom first; the leaderboard users actually care about (what each routed dollar pays) ranks Insilico and Axiom on top." - - "Two outage signals are currently firing. Dexari's last attributed fill is 19 minutes stale against a cohort baseline under 1 minute. Okto has zero fills in 24h, fully inactive. The sub-minute hl-node freshness lets the bench distinguish 'no flow yet today' from 'frontend down', a gap the daily CSV pipeline could not close." - - "Taker share separates aggressive UIs from pro terminals. pvp.trade fills 100% taker, Phantom 99.4%, MetaMask 97.9%, all instant execution wallets that cross the spread by default. Insilico sits at 80.6%, the most maker heavy in the cohort, consistent with its workstation positioning where users place resting limit orders rather than market buying." - - "Asset concentration reveals routing strategy. Phantom is 51% BTC weighted (9.9M of 19.4M USD in 24h on BTC alone). DefiApp is the only frontend with HYPE as its #1 asset. Dexari and MetaMask both surface HIP-3 perps in their top three (xyz:TSLA, xyz:CL crude), a feature that does not exist on the older Hyperliquid frontends, useful for traders looking for stock perps exposure." - -faq: - - q: "Why does OpenChainBench not show Hyperliquid volume share?" - a: "Volume share is already published cleanly by ASXN HyperScreener, Coinmarketman HyperTracker, Flowscan, Allium, and at least three Dune dashboards. Republishing it would add no value. The unmeasured part of the frontend question is user cost: how much does each frontend take per dollar routed, and how stable is that take rate. That's what this bench answers. Raw yesterday's UTC notional per builder is still exposed as a secondary metric for readers who want it; it just doesn't drive the headline ranking." - - q: "How is the effective fee actually computed?" - a: "A local hl-node operated on OCB infrastructure tails the Hyperliquid mainnet and writes every block of attributed fills to disk. A Go harness re reads the current hourly file every 30 seconds. For each builder in our registry, we sum `builderFee` (USD) and `px * sz` (notional USD) over every fill in the rolling 24h window, then compute `sum(builder_fee) / sum(notional) * 10000`. That's the volume weighted effective fee in basis points, what a representative dollar of flow paid that frontend. End to end staleness from fill landing on chain to bench page render is typically under 60 seconds." - - q: "What's the on-chain cap?" - a: "Hyperliquid caps builder fees at 100 basis points on perps and 1000 basis points on spot, configured via the `ApproveBuilderFee` action signed by each user's main wallet. The bench's headline is denominated in basis points so 100 = the on-chain cap and 0 = fully waived rebate. Most frontends sit well below the cap; the bench surfaces who sits where." - - q: "Which frontends are tracked?" - a: "The registry currently tracks Phantom Perps, Axiom, pvp.trade, Insilico Terminal, DefiApp, MetaMask, Dexari and Okto. These eight account for roughly half of attributed Hyperliquid volume. Builder addresses were sourced from each frontend's public announcement, cross referenced against CoinMarketMan HyperTracker and Flowscan. Several hundred smaller builder addresses route the remaining attributed volume. They show in our local node stream and are scheduled for inclusion via public PR. The 95 percent of HL flow that uses no builder code (native UI orders, frontends that did not opt into the attribution system) sits outside this bench by design." - - q: "What about builder addresses outside the eight tracked frontends?" - a: "The local hl-node sees every builder address that appears on any Hyperliquid fill. Several hundred smaller builders route attributed volume below the eight tracked here. Those addresses are visible in our raw node stream but stay off the leaderboard until a public PR adds them to `builders.json` with a verified name. The coverage gap is honest, not hidden. Volume share dashboards from ASXN and CoinMarketMan list the full distribution if you need the exhaustive picture today." - - q: "What's fee discipline and why is it useful?" - a: "The 30-day standard deviation of the daily effective fee in basis points. Frontends running rotating promotions (fee-free week → normalize the next week → discount cycle) show high variance even when the 24h headline is low. Frontends with stable transparent pricing show low variance. The discipline column is what tells you whether the headline number you're reading is a stable rate or a snapshot mid-promo." - - q: "Does the bench measure native HL UI orders?" - a: "No. The native HL UI doesn't set a builder code, so its orders are not user-attributable by this method. Native HL's performance is covered separately by `/benchmarks/aggregator-head-lag` (data-feed latency) and the operational metrics Hyperliquid publishes themselves. This bench is specifically about third-party frontends that opt into the builder-code attribution system." - - q: "Can a frontend game the bench by routing wash trades?" - a: "Yes, the bench measures what the chain records. A frontend running wash volume to drive its own fee revenue (or to suppress its effective fee via 0-fee internal flow) shows up exactly as it appears on-chain. Mitigation is structural: the user-count column flags frontends with anomalously low unique-user counts relative to volume (a wash-heavy frontend has high $/user efficiency and low user count). A v1.1 methodology PR will add a sybil-cluster heuristic for repeat-counterparty fills." - - q: "What is price deviation and why publish it alongside the fee?" - a: "Per-fill basis-point gap between executed price and the most recent fill price on the same asset, averaged across the 24h window. Cleanest proxy for execution quality from a frontend that does not publish slippage stats. A frontend can charge a low builder fee and still cost users more if its routing fills wide of the recent print. Fee plus deviation is closer to true user cost than either alone." - - q: "What does the last-fill-age outage signal actually measure?" - a: "Seconds since the most recent attributed fill for that builder. The cohort baseline runs under one minute during active hours, so above a few minutes is a real anomaly. Catches two failure modes: a frontend whose routing pipeline is down (no new fills even when users try to trade), and a frontend that has quietly stopped operating but still has its builder code in circulation. Both were invisible on volume dashboards where zero volume reads as zero, not as broken." - -source: https://github.com/MobulaFi/mobula-monorepo/tree/dev/miniapps/hyperliquid-frontends-local - -prometheus: - window: 24h - expected_freshness_seconds: 5400 - -# Real metrics emitted by the hyperliquid-frontends harness. The Prom labels -# are kept narrow (just `builder`) so the cross-series queries below don't -# explode in cardinality. -# -# hl_frontend_effective_fee_bps_v2{builder} gauge (p50 headline) -# hl_frontend_d7_retention_pct{builder} gauge (p90 column) -# hl_frontend_d30_retention_pct{builder} gauge (also exposed) -# hl_frontend_fees_per_user_usd_v2{builder} gauge (p99 column) -# hl_frontend_volume_usd_24h{builder} gauge (secondary) -# hl_frontend_volume_share_pct{builder} gauge (secondary) -# hl_frontend_users_24h{builder} gauge -# hl_frontend_d7_cohort_size{builder} gauge (sample-size guard) -# hl_frontend_d30_cohort_size{builder} gauge -# hl_frontend_fills_total_24h_v2{builder} gauge -# hl_frontend_unattributed_share_pct gauge (coverage signal) -# hl_frontend_registry_age_seconds gauge (freshness signal) -# hl_frontend_csv_fetch_status_total{builder,code} counter (per HTTP code) -# -# Bench page column mapping. The p50/p90/p99 slots are repurposed since the -# unit is bps and there is no native percentile semantics: p50 = effective -# fee, p90 = D7 cohort retention, p99 = USD fees per unique trader. The -# repurposing is called out in the methodology + FAQ so readers don't -# misread the columns. Fee discipline (30d stddev) is computable in -# Prom via the MCP server but not surfaced in a column. - -providers: - - slug: phantom-perps - name: Phantom - tag: Phantom wallet's HL perps integration - formula: "Volume-weighted effective builder fee in basis points over the last complete UTC day, computed from Hyperliquid's public attributed-fills CSV for Phantom's builder address." - queries: - p50: hl_frontend_effective_fee_bps_v2{builder="phantom-perps"} - p90: hl_frontend_d7_retention_pct{builder="phantom-perps"} - p99: hl_frontend_fees_per_user_usd_v2{builder="phantom-perps"} - mean: avg_over_time(hl_frontend_effective_fee_bps_v2{builder="phantom-perps"}[7d]) - success: (hl_frontend_local_last_tick_unix_v2 > bool (time() - 120)) - sample_size: hl_frontend_fills_total_24h_v2{builder="phantom-perps"} - series: hl_frontend_effective_fee_bps_v2{builder="phantom-perps"} - - - slug: axiom - name: Axiom - tag: Solana-native terminal expanding to HL - formula: "Volume-weighted effective builder fee in basis points over the last complete UTC day, computed from Hyperliquid's public attributed-fills CSV for Axiom's builder address." - queries: - p50: hl_frontend_effective_fee_bps_v2{builder="axiom"} - p90: hl_frontend_d7_retention_pct{builder="axiom"} - p99: hl_frontend_fees_per_user_usd_v2{builder="axiom"} - mean: avg_over_time(hl_frontend_effective_fee_bps_v2{builder="axiom"}[7d]) - success: (hl_frontend_local_last_tick_unix_v2 > bool (time() - 120)) - sample_size: hl_frontend_fills_total_24h_v2{builder="axiom"} - series: hl_frontend_effective_fee_bps_v2{builder="axiom"} - - - slug: pvp-trade - name: pvp.trade - tag: Social PvP trading rooms - formula: "Volume-weighted effective builder fee in basis points over the last complete UTC day, computed from Hyperliquid's public attributed-fills CSV for pvp.trade's builder address." - queries: - p50: hl_frontend_effective_fee_bps_v2{builder="pvp-trade"} - p90: hl_frontend_d7_retention_pct{builder="pvp-trade"} - p99: hl_frontend_fees_per_user_usd_v2{builder="pvp-trade"} - mean: avg_over_time(hl_frontend_effective_fee_bps_v2{builder="pvp-trade"}[7d]) - success: (hl_frontend_local_last_tick_unix_v2 > bool (time() - 120)) - sample_size: hl_frontend_fills_total_24h_v2{builder="pvp-trade"} - series: hl_frontend_effective_fee_bps_v2{builder="pvp-trade"} - - - slug: insilico - name: Insilico - tag: Institutional trading workstation - formula: "Volume-weighted effective builder fee in basis points over the last complete UTC day, computed from Hyperliquid's public attributed-fills CSV for Insilico's builder address." - queries: - p50: hl_frontend_effective_fee_bps_v2{builder="insilico"} - p90: hl_frontend_d7_retention_pct{builder="insilico"} - p99: hl_frontend_fees_per_user_usd_v2{builder="insilico"} - mean: avg_over_time(hl_frontend_effective_fee_bps_v2{builder="insilico"}[7d]) - success: (hl_frontend_local_last_tick_unix_v2 > bool (time() - 120)) - sample_size: hl_frontend_fills_total_24h_v2{builder="insilico"} - series: hl_frontend_effective_fee_bps_v2{builder="insilico"} - - - slug: defiapp - name: Defiapp - tag: Defiapp HL frontend - formula: "Volume-weighted effective builder fee in basis points over the last complete UTC day, computed from Hyperliquid's public attributed-fills CSV for Defiapp's builder address." - queries: - p50: hl_frontend_effective_fee_bps_v2{builder="defiapp"} - p90: hl_frontend_d7_retention_pct{builder="defiapp"} - p99: hl_frontend_fees_per_user_usd_v2{builder="defiapp"} - mean: avg_over_time(hl_frontend_effective_fee_bps_v2{builder="defiapp"}[7d]) - success: (hl_frontend_local_last_tick_unix_v2 > bool (time() - 120)) - sample_size: hl_frontend_fills_total_24h_v2{builder="defiapp"} - series: hl_frontend_effective_fee_bps_v2{builder="defiapp"} - - - slug: metamask - name: MetaMask - tag: MetaMask wallet HL integration - formula: "Volume-weighted effective builder fee in basis points over the last complete UTC day, computed from Hyperliquid's public attributed-fills CSV for MetaMask's builder address." - queries: - p50: hl_frontend_effective_fee_bps_v2{builder="metamask"} - p90: hl_frontend_d7_retention_pct{builder="metamask"} - p99: hl_frontend_fees_per_user_usd_v2{builder="metamask"} - mean: avg_over_time(hl_frontend_effective_fee_bps_v2{builder="metamask"}[7d]) - success: (hl_frontend_local_last_tick_unix_v2 > bool (time() - 120)) - sample_size: hl_frontend_fills_total_24h_v2{builder="metamask"} - series: hl_frontend_effective_fee_bps_v2{builder="metamask"} - - - slug: dexari - name: Dexari - tag: Pro trading UI for HL - formula: "Volume-weighted effective builder fee in basis points over the last complete UTC day, computed from Hyperliquid's public attributed-fills CSV for Dexari's builder address." - queries: - p50: hl_frontend_effective_fee_bps_v2{builder="dexari"} - p90: hl_frontend_d7_retention_pct{builder="dexari"} - p99: hl_frontend_fees_per_user_usd_v2{builder="dexari"} - mean: avg_over_time(hl_frontend_effective_fee_bps_v2{builder="dexari"}[7d]) - success: (hl_frontend_local_last_tick_unix_v2 > bool (time() - 120)) - sample_size: hl_frontend_fills_total_24h_v2{builder="dexari"} - series: hl_frontend_effective_fee_bps_v2{builder="dexari"} - - - slug: okto - name: Okto - tag: Okto wallet HL integration - formula: "Volume-weighted effective builder fee in basis points over the last complete UTC day, computed from Hyperliquid's public attributed-fills CSV for Okto's builder address." - queries: - p50: hl_frontend_effective_fee_bps_v2{builder="okto"} - p90: hl_frontend_d7_retention_pct{builder="okto"} - p99: hl_frontend_fees_per_user_usd_v2{builder="okto"} - mean: avg_over_time(hl_frontend_effective_fee_bps_v2{builder="okto"}[7d]) - success: (hl_frontend_local_last_tick_unix_v2 > bool (time() - 120)) - sample_size: hl_frontend_fills_total_24h_v2{builder="okto"} - series: hl_frontend_effective_fee_bps_v2{builder="okto"} - - slug: trust-wallet - name: Trust Wallet - tag: Trust Wallet HL frontend - formula: "Volume-weighted effective builder fee in basis points over the rolling 24h window, computed from the local hl-node fills stream for Trust Wallet's builder address." - queries: - p50: hl_frontend_effective_fee_bps_v2{builder="trust-wallet"} - p90: hl_frontend_d7_retention_pct{builder="trust-wallet"} - p99: hl_frontend_fees_per_user_usd_v2{builder="trust-wallet"} - mean: avg_over_time(hl_frontend_effective_fee_bps_v2{builder="trust-wallet"}[7d]) - success: (hl_frontend_local_last_tick_unix_v2 > bool (time() - 120)) - sample_size: hl_frontend_fills_total_24h_v2{builder="trust-wallet"} - series: hl_frontend_effective_fee_bps_v2{builder="trust-wallet"} - - - slug: sushi - name: Sushi - tag: Sushi HL frontend - formula: "Volume-weighted effective builder fee in basis points over the rolling 24h window, computed from the local hl-node fills stream for Sushi's builder address." - queries: - p50: hl_frontend_effective_fee_bps_v2{builder="sushi"} - p90: hl_frontend_d7_retention_pct{builder="sushi"} - p99: hl_frontend_fees_per_user_usd_v2{builder="sushi"} - mean: avg_over_time(hl_frontend_effective_fee_bps_v2{builder="sushi"}[7d]) - success: (hl_frontend_local_last_tick_unix_v2 > bool (time() - 120)) - sample_size: hl_frontend_fills_total_24h_v2{builder="sushi"} - series: hl_frontend_effective_fee_bps_v2{builder="sushi"} - - - slug: dreamcash - name: Dreamcash - tag: Dreamcash HL frontend - formula: "Volume-weighted effective builder fee in basis points over the rolling 24h window, computed from the local hl-node fills stream for Dreamcash's builder address." - queries: - p50: hl_frontend_effective_fee_bps_v2{builder="dreamcash"} - p90: hl_frontend_d7_retention_pct{builder="dreamcash"} - p99: hl_frontend_fees_per_user_usd_v2{builder="dreamcash"} - mean: avg_over_time(hl_frontend_effective_fee_bps_v2{builder="dreamcash"}[7d]) - success: (hl_frontend_local_last_tick_unix_v2 > bool (time() - 120)) - sample_size: hl_frontend_fills_total_24h_v2{builder="dreamcash"} - series: hl_frontend_effective_fee_bps_v2{builder="dreamcash"} - - - slug: based-app - name: Based - tag: Based HL frontend - formula: "Volume-weighted effective builder fee in basis points over the rolling 24h window, computed from the local hl-node fills stream for Based's builder address." - queries: - p50: hl_frontend_effective_fee_bps_v2{builder="based-app"} - p90: hl_frontend_d7_retention_pct{builder="based-app"} - p99: hl_frontend_fees_per_user_usd_v2{builder="based-app"} - mean: avg_over_time(hl_frontend_effective_fee_bps_v2{builder="based-app"}[7d]) - success: (hl_frontend_local_last_tick_unix_v2 > bool (time() - 120)) - sample_size: hl_frontend_fills_total_24h_v2{builder="based-app"} - series: hl_frontend_effective_fee_bps_v2{builder="based-app"} - - - slug: blink - name: Blink - tag: Blink HL frontend - formula: "Volume-weighted effective builder fee in basis points over the rolling 24h window, computed from the local hl-node fills stream for Blink's builder address." - queries: - p50: hl_frontend_effective_fee_bps_v2{builder="blink"} - p90: hl_frontend_d7_retention_pct{builder="blink"} - p99: hl_frontend_fees_per_user_usd_v2{builder="blink"} - mean: avg_over_time(hl_frontend_effective_fee_bps_v2{builder="blink"}[7d]) - success: (hl_frontend_local_last_tick_unix_v2 > bool (time() - 120)) - sample_size: hl_frontend_fills_total_24h_v2{builder="blink"} - series: hl_frontend_effective_fee_bps_v2{builder="blink"} - - - slug: perpmate - name: Perpmate - tag: Perpmate HL frontend - formula: "Volume-weighted effective builder fee in basis points over the rolling 24h window, computed from the local hl-node fills stream for Perpmate's builder address." - queries: - p50: hl_frontend_effective_fee_bps_v2{builder="perpmate"} - p90: hl_frontend_d7_retention_pct{builder="perpmate"} - p99: hl_frontend_fees_per_user_usd_v2{builder="perpmate"} - mean: avg_over_time(hl_frontend_effective_fee_bps_v2{builder="perpmate"}[7d]) - success: (hl_frontend_local_last_tick_unix_v2 > bool (time() - 120)) - sample_size: hl_frontend_fills_total_24h_v2{builder="perpmate"} - series: hl_frontend_effective_fee_bps_v2{builder="perpmate"} - - - slug: arena - name: Arena - tag: Arena HL frontend - formula: "Volume-weighted effective builder fee in basis points over the rolling 24h window, computed from the local hl-node fills stream for Arena's builder address." - queries: - p50: hl_frontend_effective_fee_bps_v2{builder="arena"} - p90: hl_frontend_d7_retention_pct{builder="arena"} - p99: hl_frontend_fees_per_user_usd_v2{builder="arena"} - mean: avg_over_time(hl_frontend_effective_fee_bps_v2{builder="arena"}[7d]) - success: (hl_frontend_local_last_tick_unix_v2 > bool (time() - 120)) - sample_size: hl_frontend_fills_total_24h_v2{builder="arena"} - series: hl_frontend_effective_fee_bps_v2{builder="arena"} - - - slug: minaraai - name: MinaraAI - tag: MinaraAI HL frontend - formula: "Volume-weighted effective builder fee in basis points over the rolling 24h window, computed from the local hl-node fills stream for MinaraAI's builder address." - queries: - p50: hl_frontend_effective_fee_bps_v2{builder="minaraai"} - p90: hl_frontend_d7_retention_pct{builder="minaraai"} - p99: hl_frontend_fees_per_user_usd_v2{builder="minaraai"} - mean: avg_over_time(hl_frontend_effective_fee_bps_v2{builder="minaraai"}[7d]) - success: (hl_frontend_local_last_tick_unix_v2 > bool (time() - 120)) - sample_size: hl_frontend_fills_total_24h_v2{builder="minaraai"} - series: hl_frontend_effective_fee_bps_v2{builder="minaraai"} - - - slug: apexliquid - name: ApexLiquid - tag: ApexLiquid HL frontend - formula: "Volume-weighted effective builder fee in basis points over the rolling 24h window, computed from the local hl-node fills stream for ApexLiquid's builder address." - queries: - p50: hl_frontend_effective_fee_bps_v2{builder="apexliquid"} - p90: hl_frontend_d7_retention_pct{builder="apexliquid"} - p99: hl_frontend_fees_per_user_usd_v2{builder="apexliquid"} - mean: avg_over_time(hl_frontend_effective_fee_bps_v2{builder="apexliquid"}[7d]) - success: (hl_frontend_local_last_tick_unix_v2 > bool (time() - 120)) - sample_size: hl_frontend_fills_total_24h_v2{builder="apexliquid"} - series: hl_frontend_effective_fee_bps_v2{builder="apexliquid"} - - - slug: coin98 - name: Coin98 - tag: Coin98 HL frontend - formula: "Volume-weighted effective builder fee in basis points over the rolling 24h window, computed from the local hl-node fills stream for Coin98's builder address." - queries: - p50: hl_frontend_effective_fee_bps_v2{builder="coin98"} - p90: hl_frontend_d7_retention_pct{builder="coin98"} - p99: hl_frontend_fees_per_user_usd_v2{builder="coin98"} - mean: avg_over_time(hl_frontend_effective_fee_bps_v2{builder="coin98"}[7d]) - success: (hl_frontend_local_last_tick_unix_v2 > bool (time() - 120)) - sample_size: hl_frontend_fills_total_24h_v2{builder="coin98"} - series: hl_frontend_effective_fee_bps_v2{builder="coin98"} - - - slug: coinpilot - name: CoinPilot - tag: CoinPilot HL frontend - formula: "Volume-weighted effective builder fee in basis points over the rolling 24h window, computed from the local hl-node fills stream for CoinPilot's builder address." - queries: - p50: hl_frontend_effective_fee_bps_v2{builder="coinpilot"} - p90: hl_frontend_d7_retention_pct{builder="coinpilot"} - p99: hl_frontend_fees_per_user_usd_v2{builder="coinpilot"} - mean: avg_over_time(hl_frontend_effective_fee_bps_v2{builder="coinpilot"}[7d]) - success: (hl_frontend_local_last_tick_unix_v2 > bool (time() - 120)) - sample_size: hl_frontend_fills_total_24h_v2{builder="coinpilot"} - series: hl_frontend_effective_fee_bps_v2{builder="coinpilot"} - - - slug: echosync - name: Echosync - tag: Echosync HL frontend - formula: "Volume-weighted effective builder fee in basis points over the rolling 24h window, computed from the local hl-node fills stream for Echosync's builder address." - queries: - p50: hl_frontend_effective_fee_bps_v2{builder="echosync"} - p90: hl_frontend_d7_retention_pct{builder="echosync"} - p99: hl_frontend_fees_per_user_usd_v2{builder="echosync"} - mean: avg_over_time(hl_frontend_effective_fee_bps_v2{builder="echosync"}[7d]) - success: (hl_frontend_local_last_tick_unix_v2 > bool (time() - 120)) - sample_size: hl_frontend_fills_total_24h_v2{builder="echosync"} - series: hl_frontend_effective_fee_bps_v2{builder="echosync"} - - - slug: fomo - name: FOMO - tag: FOMO HL frontend - formula: "Volume-weighted effective builder fee in basis points over the rolling 24h window, computed from the local hl-node fills stream for FOMO's builder address." - queries: - p50: hl_frontend_effective_fee_bps_v2{builder="fomo"} - p90: hl_frontend_d7_retention_pct{builder="fomo"} - p99: hl_frontend_fees_per_user_usd_v2{builder="fomo"} - mean: avg_over_time(hl_frontend_effective_fee_bps_v2{builder="fomo"}[7d]) - success: (hl_frontend_local_last_tick_unix_v2 > bool (time() - 120)) - sample_size: hl_frontend_fills_total_24h_v2{builder="fomo"} - series: hl_frontend_effective_fee_bps_v2{builder="fomo"} - - - slug: gemwallet - name: Gem Wallet - tag: Gem Wallet HL frontend - formula: "Volume-weighted effective builder fee in basis points over the rolling 24h window, computed from the local hl-node fills stream for Gem Wallet's builder address." - queries: - p50: hl_frontend_effective_fee_bps_v2{builder="gemwallet"} - p90: hl_frontend_d7_retention_pct{builder="gemwallet"} - p99: hl_frontend_fees_per_user_usd_v2{builder="gemwallet"} - mean: avg_over_time(hl_frontend_effective_fee_bps_v2{builder="gemwallet"}[7d]) - success: (hl_frontend_local_last_tick_unix_v2 > bool (time() - 120)) - sample_size: hl_frontend_fills_total_24h_v2{builder="gemwallet"} - series: hl_frontend_effective_fee_bps_v2{builder="gemwallet"} - - - slug: gtr-trade - name: GTR Trade - tag: GTR Trade HL frontend - formula: "Volume-weighted effective builder fee in basis points over the rolling 24h window, computed from the local hl-node fills stream for GTR Trade's builder address." - queries: - p50: hl_frontend_effective_fee_bps_v2{builder="gtr-trade"} - p90: hl_frontend_d7_retention_pct{builder="gtr-trade"} - p99: hl_frontend_fees_per_user_usd_v2{builder="gtr-trade"} - mean: avg_over_time(hl_frontend_effective_fee_bps_v2{builder="gtr-trade"}[7d]) - success: (hl_frontend_local_last_tick_unix_v2 > bool (time() - 120)) - sample_size: hl_frontend_fills_total_24h_v2{builder="gtr-trade"} - series: hl_frontend_effective_fee_bps_v2{builder="gtr-trade"} - - - slug: hyprearn - name: Hyprearn - tag: Hyprearn HL frontend - formula: "Volume-weighted effective builder fee in basis points over the rolling 24h window, computed from the local hl-node fills stream for Hyprearn's builder address." - queries: - p50: hl_frontend_effective_fee_bps_v2{builder="hyprearn"} - p90: hl_frontend_d7_retention_pct{builder="hyprearn"} - p99: hl_frontend_fees_per_user_usd_v2{builder="hyprearn"} - mean: avg_over_time(hl_frontend_effective_fee_bps_v2{builder="hyprearn"}[7d]) - success: (hl_frontend_local_last_tick_unix_v2 > bool (time() - 120)) - sample_size: hl_frontend_fills_total_24h_v2{builder="hyprearn"} - series: hl_frontend_effective_fee_bps_v2{builder="hyprearn"} - - - slug: legend-trade - name: Legend Trade - tag: Legend Trade HL frontend - formula: "Volume-weighted effective builder fee in basis points over the rolling 24h window, computed from the local hl-node fills stream for Legend Trade's builder address." - queries: - p50: hl_frontend_effective_fee_bps_v2{builder="legend-trade"} - p90: hl_frontend_d7_retention_pct{builder="legend-trade"} - p99: hl_frontend_fees_per_user_usd_v2{builder="legend-trade"} - mean: avg_over_time(hl_frontend_effective_fee_bps_v2{builder="legend-trade"}[7d]) - success: (hl_frontend_local_last_tick_unix_v2 > bool (time() - 120)) - sample_size: hl_frontend_fills_total_24h_v2{builder="legend-trade"} - series: hl_frontend_effective_fee_bps_v2{builder="legend-trade"} - - - slug: katoshi - name: Katoshi - tag: Katoshi HL frontend - formula: "Volume-weighted effective builder fee in basis points over the rolling 24h window, computed from the local hl-node fills stream for Katoshi's builder address." - queries: - p50: hl_frontend_effective_fee_bps_v2{builder="katoshi"} - p90: hl_frontend_d7_retention_pct{builder="katoshi"} - p99: hl_frontend_fees_per_user_usd_v2{builder="katoshi"} - mean: avg_over_time(hl_frontend_effective_fee_bps_v2{builder="katoshi"}[7d]) - success: (hl_frontend_local_last_tick_unix_v2 > bool (time() - 120)) - sample_size: hl_frontend_fills_total_24h_v2{builder="katoshi"} - series: hl_frontend_effective_fee_bps_v2{builder="katoshi"} - - - slug: metascalp - name: Metascalp - tag: Metascalp HL frontend - formula: "Volume-weighted effective builder fee in basis points over the rolling 24h window, computed from the local hl-node fills stream for Metascalp's builder address." - queries: - p50: hl_frontend_effective_fee_bps_v2{builder="metascalp"} - p90: hl_frontend_d7_retention_pct{builder="metascalp"} - p99: hl_frontend_fees_per_user_usd_v2{builder="metascalp"} - mean: avg_over_time(hl_frontend_effective_fee_bps_v2{builder="metascalp"}[7d]) - success: (hl_frontend_local_last_tick_unix_v2 > bool (time() - 120)) - sample_size: hl_frontend_fills_total_24h_v2{builder="metascalp"} - series: hl_frontend_effective_fee_bps_v2{builder="metascalp"} - - - slug: moontrader - name: Moontrader - tag: Moontrader HL frontend - formula: "Volume-weighted effective builder fee in basis points over the rolling 24h window, computed from the local hl-node fills stream for Moontrader's builder address." - queries: - p50: hl_frontend_effective_fee_bps_v2{builder="moontrader"} - p90: hl_frontend_d7_retention_pct{builder="moontrader"} - p99: hl_frontend_fees_per_user_usd_v2{builder="moontrader"} - mean: avg_over_time(hl_frontend_effective_fee_bps_v2{builder="moontrader"}[7d]) - success: (hl_frontend_local_last_tick_unix_v2 > bool (time() - 120)) - sample_size: hl_frontend_fills_total_24h_v2{builder="moontrader"} - series: hl_frontend_effective_fee_bps_v2{builder="moontrader"} - - - slug: onekey - name: OneKey - tag: OneKey HL frontend - formula: "Volume-weighted effective builder fee in basis points over the rolling 24h window, computed from the local hl-node fills stream for OneKey's builder address." - queries: - p50: hl_frontend_effective_fee_bps_v2{builder="onekey"} - p90: hl_frontend_d7_retention_pct{builder="onekey"} - p99: hl_frontend_fees_per_user_usd_v2{builder="onekey"} - mean: avg_over_time(hl_frontend_effective_fee_bps_v2{builder="onekey"}[7d]) - success: (hl_frontend_local_last_tick_unix_v2 > bool (time() - 120)) - sample_size: hl_frontend_fills_total_24h_v2{builder="onekey"} - series: hl_frontend_effective_fee_bps_v2{builder="onekey"} - - - slug: pear - name: Pear - tag: Pear HL frontend - formula: "Volume-weighted effective builder fee in basis points over the rolling 24h window, computed from the local hl-node fills stream for Pear's builder address." - queries: - p50: hl_frontend_effective_fee_bps_v2{builder="pear"} - p90: hl_frontend_d7_retention_pct{builder="pear"} - p99: hl_frontend_fees_per_user_usd_v2{builder="pear"} - mean: avg_over_time(hl_frontend_effective_fee_bps_v2{builder="pear"}[7d]) - success: (hl_frontend_local_last_tick_unix_v2 > bool (time() - 120)) - sample_size: hl_frontend_fills_total_24h_v2{builder="pear"} - series: hl_frontend_effective_fee_bps_v2{builder="pear"} - - - slug: rabby - name: Rabby - tag: Rabby HL frontend - formula: "Volume-weighted effective builder fee in basis points over the rolling 24h window, computed from the local hl-node fills stream for Rabby's builder address." - queries: - p50: hl_frontend_effective_fee_bps_v2{builder="rabby"} - p90: hl_frontend_d7_retention_pct{builder="rabby"} - p99: hl_frontend_fees_per_user_usd_v2{builder="rabby"} - mean: avg_over_time(hl_frontend_effective_fee_bps_v2{builder="rabby"}[7d]) - success: (hl_frontend_local_last_tick_unix_v2 > bool (time() - 120)) - sample_size: hl_frontend_fills_total_24h_v2{builder="rabby"} - series: hl_frontend_effective_fee_bps_v2{builder="rabby"} - - - slug: ranger-finance - name: Ranger Finance - tag: Ranger Finance HL frontend - formula: "Volume-weighted effective builder fee in basis points over the rolling 24h window, computed from the local hl-node fills stream for Ranger Finance's builder address." - queries: - p50: hl_frontend_effective_fee_bps_v2{builder="ranger-finance"} - p90: hl_frontend_d7_retention_pct{builder="ranger-finance"} - p99: hl_frontend_fees_per_user_usd_v2{builder="ranger-finance"} - mean: avg_over_time(hl_frontend_effective_fee_bps_v2{builder="ranger-finance"}[7d]) - success: (hl_frontend_local_last_tick_unix_v2 > bool (time() - 120)) - sample_size: hl_frontend_fills_total_24h_v2{builder="ranger-finance"} - series: hl_frontend_effective_fee_bps_v2{builder="ranger-finance"} - - - slug: senpi - name: Senpi - tag: Senpi HL frontend - formula: "Volume-weighted effective builder fee in basis points over the rolling 24h window, computed from the local hl-node fills stream for Senpi's builder address." - queries: - p50: hl_frontend_effective_fee_bps_v2{builder="senpi"} - p90: hl_frontend_d7_retention_pct{builder="senpi"} - p99: hl_frontend_fees_per_user_usd_v2{builder="senpi"} - mean: avg_over_time(hl_frontend_effective_fee_bps_v2{builder="senpi"}[7d]) - success: (hl_frontend_local_last_tick_unix_v2 > bool (time() - 120)) - sample_size: hl_frontend_fills_total_24h_v2{builder="senpi"} - series: hl_frontend_effective_fee_bps_v2{builder="senpi"} - - - slug: superx - name: SuperX - tag: SuperX HL frontend - formula: "Volume-weighted effective builder fee in basis points over the rolling 24h window, computed from the local hl-node fills stream for SuperX's builder address." - queries: - p50: hl_frontend_effective_fee_bps_v2{builder="superx"} - p90: hl_frontend_d7_retention_pct{builder="superx"} - p99: hl_frontend_fees_per_user_usd_v2{builder="superx"} - mean: avg_over_time(hl_frontend_effective_fee_bps_v2{builder="superx"}[7d]) - success: (hl_frontend_local_last_tick_unix_v2 > bool (time() - 120)) - sample_size: hl_frontend_fills_total_24h_v2{builder="superx"} - series: hl_frontend_effective_fee_bps_v2{builder="superx"} - - - slug: supurr - name: Supurr - tag: Supurr HL frontend - formula: "Volume-weighted effective builder fee in basis points over the rolling 24h window, computed from the local hl-node fills stream for Supurr's builder address." - queries: - p50: hl_frontend_effective_fee_bps_v2{builder="supurr"} - p90: hl_frontend_d7_retention_pct{builder="supurr"} - p99: hl_frontend_fees_per_user_usd_v2{builder="supurr"} - mean: avg_over_time(hl_frontend_effective_fee_bps_v2{builder="supurr"}[7d]) - success: (hl_frontend_local_last_tick_unix_v2 > bool (time() - 120)) - sample_size: hl_frontend_fills_total_24h_v2{builder="supurr"} - series: hl_frontend_effective_fee_bps_v2{builder="supurr"} - - - slug: unigox - name: Unigox - tag: Unigox HL frontend - formula: "Volume-weighted effective builder fee in basis points over the rolling 24h window, computed from the local hl-node fills stream for Unigox's builder address." - queries: - p50: hl_frontend_effective_fee_bps_v2{builder="unigox"} - p90: hl_frontend_d7_retention_pct{builder="unigox"} - p99: hl_frontend_fees_per_user_usd_v2{builder="unigox"} - mean: avg_over_time(hl_frontend_effective_fee_bps_v2{builder="unigox"}[7d]) - success: (hl_frontend_local_last_tick_unix_v2 > bool (time() - 120)) - sample_size: hl_frontend_fills_total_24h_v2{builder="unigox"} - series: hl_frontend_effective_fee_bps_v2{builder="unigox"} - - - slug: uxuy - name: UXUY - tag: UXUY HL frontend - formula: "Volume-weighted effective builder fee in basis points over the rolling 24h window, computed from the local hl-node fills stream for UXUY's builder address." - queries: - p50: hl_frontend_effective_fee_bps_v2{builder="uxuy"} - p90: hl_frontend_d7_retention_pct{builder="uxuy"} - p99: hl_frontend_fees_per_user_usd_v2{builder="uxuy"} - mean: avg_over_time(hl_frontend_effective_fee_bps_v2{builder="uxuy"}[7d]) - success: (hl_frontend_local_last_tick_unix_v2 > bool (time() - 120)) - sample_size: hl_frontend_fills_total_24h_v2{builder="uxuy"} - series: hl_frontend_effective_fee_bps_v2{builder="uxuy"} - - - slug: wunder - name: Wunder - tag: Wunder HL frontend - formula: "Volume-weighted effective builder fee in basis points over the rolling 24h window, computed from the local hl-node fills stream for Wunder's builder address." - queries: - p50: hl_frontend_effective_fee_bps_v2{builder="wunder"} - p90: hl_frontend_d7_retention_pct{builder="wunder"} - p99: hl_frontend_fees_per_user_usd_v2{builder="wunder"} - mean: avg_over_time(hl_frontend_effective_fee_bps_v2{builder="wunder"}[7d]) - success: (hl_frontend_local_last_tick_unix_v2 > bool (time() - 120)) - sample_size: hl_frontend_fills_total_24h_v2{builder="wunder"} - series: hl_frontend_effective_fee_bps_v2{builder="wunder"} - - - slug: grider - name: Grider - tag: Grider HL frontend - formula: "Volume-weighted effective builder fee in basis points over the rolling 24h window, computed from the local hl-node fills stream for Grider's builder address." - queries: - p50: hl_frontend_effective_fee_bps_v2{builder="grider"} - p90: hl_frontend_d7_retention_pct{builder="grider"} - p99: hl_frontend_fees_per_user_usd_v2{builder="grider"} - mean: avg_over_time(hl_frontend_effective_fee_bps_v2{builder="grider"}[7d]) - success: (hl_frontend_local_last_tick_unix_v2 > bool (time() - 120)) - sample_size: hl_frontend_fills_total_24h_v2{builder="grider"} - series: hl_frontend_effective_fee_bps_v2{builder="grider"} - - - slug: tradoor - name: Tradoor - tag: Tradoor HL frontend - formula: "Volume-weighted effective builder fee in basis points over the rolling 24h window, computed from the local hl-node fills stream for Tradoor's builder address." - queries: - p50: hl_frontend_effective_fee_bps_v2{builder="tradoor"} - p90: hl_frontend_d7_retention_pct{builder="tradoor"} - p99: hl_frontend_fees_per_user_usd_v2{builder="tradoor"} - mean: avg_over_time(hl_frontend_effective_fee_bps_v2{builder="tradoor"}[7d]) - success: (hl_frontend_local_last_tick_unix_v2 > bool (time() - 120)) - sample_size: hl_frontend_fills_total_24h_v2{builder="tradoor"} - series: hl_frontend_effective_fee_bps_v2{builder="tradoor"} - - - slug: bullpenfi - name: BullpenFi - tag: BullpenFi HL frontend - formula: "Volume-weighted effective builder fee in basis points over the rolling 24h window, computed from the local hl-node fills stream for BullpenFi's builder address." - queries: - p50: hl_frontend_effective_fee_bps_v2{builder="bullpenfi"} - p90: hl_frontend_d7_retention_pct{builder="bullpenfi"} - p99: hl_frontend_fees_per_user_usd_v2{builder="bullpenfi"} - mean: avg_over_time(hl_frontend_effective_fee_bps_v2{builder="bullpenfi"}[7d]) - success: (hl_frontend_local_last_tick_unix_v2 > bool (time() - 120)) - sample_size: hl_frontend_fills_total_24h_v2{builder="bullpenfi"} - series: hl_frontend_effective_fee_bps_v2{builder="bullpenfi"} - - - slug: dexly-trade - name: Dexly Trade - tag: Dexly Trade HL frontend - formula: "Volume-weighted effective builder fee in basis points over the rolling 24h window, computed from the local hl-node fills stream for Dexly Trade's builder address." - queries: - p50: hl_frontend_effective_fee_bps_v2{builder="dexly-trade"} - p90: hl_frontend_d7_retention_pct{builder="dexly-trade"} - p99: hl_frontend_fees_per_user_usd_v2{builder="dexly-trade"} - mean: avg_over_time(hl_frontend_effective_fee_bps_v2{builder="dexly-trade"}[7d]) - success: (hl_frontend_local_last_tick_unix_v2 > bool (time() - 120)) - sample_size: hl_frontend_fills_total_24h_v2{builder="dexly-trade"} - series: hl_frontend_effective_fee_bps_v2{builder="dexly-trade"} - - - slug: hyperdash - name: Hyperdash - tag: Hyperdash HL frontend - formula: "Volume-weighted effective builder fee in basis points over the rolling 24h window, computed from the local hl-node fills stream for Hyperdash's builder address." - queries: - p50: hl_frontend_effective_fee_bps_v2{builder="hyperdash"} - p90: hl_frontend_d7_retention_pct{builder="hyperdash"} - p99: hl_frontend_fees_per_user_usd_v2{builder="hyperdash"} - mean: avg_over_time(hl_frontend_effective_fee_bps_v2{builder="hyperdash"}[7d]) - success: (hl_frontend_local_last_tick_unix_v2 > bool (time() - 120)) - sample_size: hl_frontend_fills_total_24h_v2{builder="hyperdash"} - series: hl_frontend_effective_fee_bps_v2{builder="hyperdash"} - - - slug: infinex - name: Infinex - tag: Infinex HL frontend - formula: "Volume-weighted effective builder fee in basis points over the rolling 24h window, computed from the local hl-node fills stream for Infinex's builder address." - queries: - p50: hl_frontend_effective_fee_bps_v2{builder="infinex"} - p90: hl_frontend_d7_retention_pct{builder="infinex"} - p99: hl_frontend_fees_per_user_usd_v2{builder="infinex"} - mean: avg_over_time(hl_frontend_effective_fee_bps_v2{builder="infinex"}[7d]) - success: (hl_frontend_local_last_tick_unix_v2 > bool (time() - 120)) - sample_size: hl_frontend_fills_total_24h_v2{builder="infinex"} - series: hl_frontend_effective_fee_bps_v2{builder="infinex"} - - - slug: liminal - name: Liminal - tag: Liminal HL frontend - formula: "Volume-weighted effective builder fee in basis points over the rolling 24h window, computed from the local hl-node fills stream for Liminal's builder address." - queries: - p50: hl_frontend_effective_fee_bps_v2{builder="liminal"} - p90: hl_frontend_d7_retention_pct{builder="liminal"} - p99: hl_frontend_fees_per_user_usd_v2{builder="liminal"} - mean: avg_over_time(hl_frontend_effective_fee_bps_v2{builder="liminal"}[7d]) - success: (hl_frontend_local_last_tick_unix_v2 > bool (time() - 120)) - sample_size: hl_frontend_fills_total_24h_v2{builder="liminal"} - series: hl_frontend_effective_fee_bps_v2{builder="liminal"} - - - slug: liquid-perps - name: Liquid Perps - tag: Liquid Perps HL frontend - formula: "Volume-weighted effective builder fee in basis points over the rolling 24h window, computed from the local hl-node fills stream for Liquid Perps's builder address." - queries: - p50: hl_frontend_effective_fee_bps_v2{builder="liquid-perps"} - p90: hl_frontend_d7_retention_pct{builder="liquid-perps"} - p99: hl_frontend_fees_per_user_usd_v2{builder="liquid-perps"} - mean: avg_over_time(hl_frontend_effective_fee_bps_v2{builder="liquid-perps"}[7d]) - success: (hl_frontend_local_last_tick_unix_v2 > bool (time() - 120)) - sample_size: hl_frontend_fills_total_24h_v2{builder="liquid-perps"} - series: hl_frontend_effective_fee_bps_v2{builder="liquid-perps"} - - - slug: lit-trade - name: Lit Trade - tag: Lit Trade HL frontend - formula: "Volume-weighted effective builder fee in basis points over the rolling 24h window, computed from the local hl-node fills stream for Lit Trade's builder address." - queries: - p50: hl_frontend_effective_fee_bps_v2{builder="lit-trade"} - p90: hl_frontend_d7_retention_pct{builder="lit-trade"} - p99: hl_frontend_fees_per_user_usd_v2{builder="lit-trade"} - mean: avg_over_time(hl_frontend_effective_fee_bps_v2{builder="lit-trade"}[7d]) - success: (hl_frontend_local_last_tick_unix_v2 > bool (time() - 120)) - sample_size: hl_frontend_fills_total_24h_v2{builder="lit-trade"} - series: hl_frontend_effective_fee_bps_v2{builder="lit-trade"} - - - slug: lootbase - name: Lootbase - tag: Lootbase HL frontend - formula: "Volume-weighted effective builder fee in basis points over the rolling 24h window, computed from the local hl-node fills stream for Lootbase's builder address." - queries: - p50: hl_frontend_effective_fee_bps_v2{builder="lootbase"} - p90: hl_frontend_d7_retention_pct{builder="lootbase"} - p99: hl_frontend_fees_per_user_usd_v2{builder="lootbase"} - mean: avg_over_time(hl_frontend_effective_fee_bps_v2{builder="lootbase"}[7d]) - success: (hl_frontend_local_last_tick_unix_v2 > bool (time() - 120)) - sample_size: hl_frontend_fills_total_24h_v2{builder="lootbase"} - series: hl_frontend_effective_fee_bps_v2{builder="lootbase"} - - - slug: mass-dot-money - name: Mass.money - tag: Mass.money HL frontend - formula: "Volume-weighted effective builder fee in basis points over the rolling 24h window, computed from the local hl-node fills stream for Mass.money's builder address." - queries: - p50: hl_frontend_effective_fee_bps_v2{builder="mass-dot-money"} - p90: hl_frontend_d7_retention_pct{builder="mass-dot-money"} - p99: hl_frontend_fees_per_user_usd_v2{builder="mass-dot-money"} - mean: avg_over_time(hl_frontend_effective_fee_bps_v2{builder="mass-dot-money"}[7d]) - success: (hl_frontend_local_last_tick_unix_v2 > bool (time() - 120)) - sample_size: hl_frontend_fills_total_24h_v2{builder="mass-dot-money"} - series: hl_frontend_effective_fee_bps_v2{builder="mass-dot-money"} - - - slug: moonbot - name: Moonbot - tag: Moonbot HL frontend - formula: "Volume-weighted effective builder fee in basis points over the rolling 24h window, computed from the local hl-node fills stream for Moonbot's builder address." - queries: - p50: hl_frontend_effective_fee_bps_v2{builder="moonbot"} - p90: hl_frontend_d7_retention_pct{builder="moonbot"} - p99: hl_frontend_fees_per_user_usd_v2{builder="moonbot"} - mean: avg_over_time(hl_frontend_effective_fee_bps_v2{builder="moonbot"}[7d]) - success: (hl_frontend_local_last_tick_unix_v2 > bool (time() - 120)) - sample_size: hl_frontend_fills_total_24h_v2{builder="moonbot"} - series: hl_frontend_effective_fee_bps_v2{builder="moonbot"} - - - slug: rainbow - name: Rainbow - tag: Rainbow HL frontend - formula: "Volume-weighted effective builder fee in basis points over the rolling 24h window, computed from the local hl-node fills stream for Rainbow's builder address." - queries: - p50: hl_frontend_effective_fee_bps_v2{builder="rainbow"} - p90: hl_frontend_d7_retention_pct{builder="rainbow"} - p99: hl_frontend_fees_per_user_usd_v2{builder="rainbow"} - mean: avg_over_time(hl_frontend_effective_fee_bps_v2{builder="rainbow"}[7d]) - success: (hl_frontend_local_last_tick_unix_v2 > bool (time() - 120)) - sample_size: hl_frontend_fills_total_24h_v2{builder="rainbow"} - series: hl_frontend_effective_fee_bps_v2{builder="rainbow"} - - - slug: supercexy - name: SuperCEXy - tag: SuperCEXy HL frontend - formula: "Volume-weighted effective builder fee in basis points over the rolling 24h window, computed from the local hl-node fills stream for SuperCEXy's builder address." - queries: - p50: hl_frontend_effective_fee_bps_v2{builder="supercexy"} - p90: hl_frontend_d7_retention_pct{builder="supercexy"} - p99: hl_frontend_fees_per_user_usd_v2{builder="supercexy"} - mean: avg_over_time(hl_frontend_effective_fee_bps_v2{builder="supercexy"}[7d]) - success: (hl_frontend_local_last_tick_unix_v2 > bool (time() - 120)) - sample_size: hl_frontend_fills_total_24h_v2{builder="supercexy"} - series: hl_frontend_effective_fee_bps_v2{builder="supercexy"} - - - slug: superstack - name: Superstack - tag: Superstack HL frontend - formula: "Volume-weighted effective builder fee in basis points over the rolling 24h window, computed from the local hl-node fills stream for Superstack's builder address." - queries: - p50: hl_frontend_effective_fee_bps_v2{builder="superstack"} - p90: hl_frontend_d7_retention_pct{builder="superstack"} - p99: hl_frontend_fees_per_user_usd_v2{builder="superstack"} - mean: avg_over_time(hl_frontend_effective_fee_bps_v2{builder="superstack"}[7d]) - success: (hl_frontend_local_last_tick_unix_v2 > bool (time() - 120)) - sample_size: hl_frontend_fills_total_24h_v2{builder="superstack"} - series: hl_frontend_effective_fee_bps_v2{builder="superstack"} - - - slug: wallet-v - name: Wallet V - tag: Wallet V HL frontend - formula: "Volume-weighted effective builder fee in basis points over the rolling 24h window, computed from the local hl-node fills stream for Wallet V's builder address." - queries: - p50: hl_frontend_effective_fee_bps_v2{builder="wallet-v"} - p90: hl_frontend_d7_retention_pct{builder="wallet-v"} - p99: hl_frontend_fees_per_user_usd_v2{builder="wallet-v"} - mean: avg_over_time(hl_frontend_effective_fee_bps_v2{builder="wallet-v"}[7d]) - success: (hl_frontend_local_last_tick_unix_v2 > bool (time() - 120)) - sample_size: hl_frontend_fills_total_24h_v2{builder="wallet-v"} - series: hl_frontend_effective_fee_bps_v2{builder="wallet-v"} - - - slug: xtrade-protocol - name: xTrade Protocol - tag: xTrade Protocol HL frontend - formula: "Volume-weighted effective builder fee in basis points over the rolling 24h window, computed from the local hl-node fills stream for xTrade Protocol's builder address." - queries: - p50: hl_frontend_effective_fee_bps_v2{builder="xtrade-protocol"} - p90: hl_frontend_d7_retention_pct{builder="xtrade-protocol"} - p99: hl_frontend_fees_per_user_usd_v2{builder="xtrade-protocol"} - mean: avg_over_time(hl_frontend_effective_fee_bps_v2{builder="xtrade-protocol"}[7d]) - success: (hl_frontend_local_last_tick_unix_v2 > bool (time() - 120)) - sample_size: hl_frontend_fills_total_24h_v2{builder="xtrade-protocol"} - series: hl_frontend_effective_fee_bps_v2{builder="xtrade-protocol"} - - - slug: taco-trade - name: Taco Trade - tag: Taco Trade HL frontend - formula: "Volume-weighted effective builder fee in basis points over the rolling 24h window, computed from the local hl-node fills stream for Taco Trade's builder address." - queries: - p50: hl_frontend_effective_fee_bps_v2{builder="taco-trade"} - p90: hl_frontend_d7_retention_pct{builder="taco-trade"} - p99: hl_frontend_fees_per_user_usd_v2{builder="taco-trade"} - mean: avg_over_time(hl_frontend_effective_fee_bps_v2{builder="taco-trade"}[7d]) - success: (hl_frontend_local_last_tick_unix_v2 > bool (time() - 120)) - sample_size: hl_frontend_fills_total_24h_v2{builder="taco-trade"} - series: hl_frontend_effective_fee_bps_v2{builder="taco-trade"} - - - slug: silhouette - name: Silhouette - tag: Silhouette HL frontend - formula: "Volume-weighted effective builder fee in basis points over the rolling 24h window, computed from the local hl-node fills stream for Silhouette's builder address." - queries: - p50: hl_frontend_effective_fee_bps_v2{builder="silhouette"} - p90: hl_frontend_d7_retention_pct{builder="silhouette"} - p99: hl_frontend_fees_per_user_usd_v2{builder="silhouette"} - mean: avg_over_time(hl_frontend_effective_fee_bps_v2{builder="silhouette"}[7d]) - success: (hl_frontend_local_last_tick_unix_v2 > bool (time() - 120)) - sample_size: hl_frontend_fills_total_24h_v2{builder="silhouette"} - series: hl_frontend_effective_fee_bps_v2{builder="silhouette"} - - - slug: tread-fi - name: Tread.fi - tag: Tread.fi HL frontend - formula: "Volume-weighted effective builder fee in basis points over the rolling 24h window, computed from the local hl-node fills stream for Tread.fi's builder address." - queries: - p50: hl_frontend_effective_fee_bps_v2{builder="tread-fi"} - p90: hl_frontend_d7_retention_pct{builder="tread-fi"} - p99: hl_frontend_fees_per_user_usd_v2{builder="tread-fi"} - mean: avg_over_time(hl_frontend_effective_fee_bps_v2{builder="tread-fi"}[7d]) - success: (hl_frontend_local_last_tick_unix_v2 > bool (time() - 120)) - sample_size: hl_frontend_fills_total_24h_v2{builder="tread-fi"} - series: hl_frontend_effective_fee_bps_v2{builder="tread-fi"} - - - slug: flowbot - name: FlowBot - tag: FlowBot HL frontend - formula: "Volume-weighted effective builder fee in basis points over the rolling 24h window, computed from the local hl-node fills stream for FlowBot's builder address." - queries: - p50: hl_frontend_effective_fee_bps_v2{builder="flowbot"} - p90: hl_frontend_d7_retention_pct{builder="flowbot"} - p99: hl_frontend_fees_per_user_usd_v2{builder="flowbot"} - mean: avg_over_time(hl_frontend_effective_fee_bps_v2{builder="flowbot"}[7d]) - success: (hl_frontend_local_last_tick_unix_v2 > bool (time() - 120)) - sample_size: hl_frontend_fills_total_24h_v2{builder="flowbot"} - series: hl_frontend_effective_fee_bps_v2{builder="flowbot"} - - - slug: nautilus-trader - name: Nautilus Trader - tag: Nautilus Trader HL frontend - formula: "Volume-weighted effective builder fee in basis points over the rolling 24h window, computed from the local hl-node fills stream for Nautilus Trader's builder address." - queries: - p50: hl_frontend_effective_fee_bps_v2{builder="nautilus-trader"} - p90: hl_frontend_d7_retention_pct{builder="nautilus-trader"} - p99: hl_frontend_fees_per_user_usd_v2{builder="nautilus-trader"} - mean: avg_over_time(hl_frontend_effective_fee_bps_v2{builder="nautilus-trader"}[7d]) - success: (hl_frontend_local_last_tick_unix_v2 > bool (time() - 120)) - sample_size: hl_frontend_fills_total_24h_v2{builder="nautilus-trader"} - series: hl_frontend_effective_fee_bps_v2{builder="nautilus-trader"} - -# Companion metric panels surfaced as a switchable mini leaderboard below -# the main p50/p90/p99 table. Each panel queries one Prom metric per -# provider (builder label) and re-ranks the cohort under its direction. -# All five metrics come from the local hl-node harness and update at the -# same sub-minute cadence as the main headline. -metric_panels: - - id: deviation - label: Slippage proxy - description: "Per fill, the basis-point gap between the executed price and the previous trade price on the same asset, averaged over the rolling 24h window. Lower is better. Frontends that route to less liquid venues or slower order paths show higher deviation, which is direct user cost on top of the fee column." - metric: hl_frontend_price_deviation_bps_v2 - unit: bps - higher_is_better: false - - id: outage - label: Time since last fill - description: "Seconds since this builder's most recent attributed fill landed on Hyperliquid. Cohort baseline runs under one minute during active hours; above a few minutes is a real anomaly. Catches frontends whose routing pipeline is down or quietly stopped operating." - metric: hl_frontend_last_fill_age_seconds_v2 - unit: s - higher_is_better: false - - id: activity - label: Fills per minute - description: "Activity rate over the rolling 24h window. Higher means more flow currently routes through this frontend. Combine with effective fee bps to read the operational intent: high activity + low fee = aligned, high activity + high fee = extractive." - metric: hl_frontend_fills_per_min_v2 - unit: count - higher_is_better: true - - id: taker - label: Taker share - description: "Fraction of fills that crossed the spread (paid the bid ask gap). Aggressive instant execution wallets skew taker heavy, pro terminals with limit order workflows skew maker heavy. Reveals the routing intent embedded in each frontend's UX." - metric: hl_frontend_taker_pct_v2 - unit: pct - higher_is_better: false - - id: volume - label: Volume routed - description: "Notional USD routed in the rolling 24h window. Headline volume metric most other HL dashboards publish. Here it is companion, not the headline, because volume is only loosely correlated with how aligned a frontend is with its users." - metric: hl_frontend_volume_usd_24h_v2 - unit: usd - higher_is_better: true diff --git a/benchmarks/l1-finality.md b/benchmarks/l1-finality.md index 949b0925..57f62ca9 100644 --- a/benchmarks/l1-finality.md +++ b/benchmarks/l1-finality.md @@ -59,7 +59,7 @@ This works for: **BNB, Avalanche, TON**. | TON | High (after SSE refactor) | tonapi `workchain=-1` SSE stream, ms-precise | | Cardano | Medium | 15-conf compromise between Coinbase 10 and Kraken 15. Academic k=2160 is theoretical; no actor uses it | | Litecoin | Medium | 12-conf post-April-2026 reorg; standard is evolving | -| TRON | Medium | CEX confirmation counts vary 19 to 30; we use the 19-block protocol minimum | +| TRON | Medium | CEX confirmation counts vary 19–30; we use the 19-block protocol minimum | | Monero | Lower | XMR delisted from major regulated CEXes since 2024; no canonical confirmation count today | ## Why we chose the depths we did diff --git a/benchmarks/l1-finality.yml b/benchmarks/l1-finality.yml index fda0284b..f29c78d7 100644 --- a/benchmarks/l1-finality.yml +++ b/benchmarks/l1-finality.yml @@ -128,7 +128,7 @@ findings: - "{{best_name}} currently leads the leaderboard at {{best_p50}} (p50, 24 h) across {{count}} measured L1s. {{worst_name}} trails at {{worst_p50}}." - "Hedera's Hashgraph aBFT is designed to finalize in 3-5 s but is excluded from the live leaderboard because the mirror node only exposes finalized blocks, wall-clock measurement requires the Block Node service (HIP-1056), still in private preview." -source: https://github.com/ChainBench/OpenChainBench/tree/main/harnesses/l1-finality +source: https://github.com/OpenChainBench/OpenChainBench/tree/main/harnesses/l1-finality prometheus: window: 24h @@ -150,7 +150,7 @@ prometheus: providers: - slug: bnb - name: BNB + name: BNB Smart Chain tag: Fast finality fork (BEP-126), measured via WS wall-clock formula: "Median wall-clock milliseconds between a BNB block first appearing as `latest` on WebSocket and crossing the BEP-126 finalized threshold, p50 over 24h." queries: @@ -163,7 +163,7 @@ providers: series: l1_finality_wallclock_lag_milliseconds{chain="bnb"} - slug: avalanche - name: Avalanche + name: Avalanche C-Chain tag: Snowman++ consensus, measured via WS wall-clock formula: "Median wall-clock milliseconds between a C-Chain block emitting as `latest` and as `finalized` on a persistent WebSocket, p50 over 24h." queries: diff --git a/benchmarks/l2-block-time.yml b/benchmarks/l2-block-time.yml index 7be2ad61..57d3b387 100644 --- a/benchmarks/l2-block-time.yml +++ b/benchmarks/l2-block-time.yml @@ -42,7 +42,7 @@ findings: - "{{name:taiko}} clocks {{p50:taiko}} on a based-rollup design where Ethereum L1 validators sequence the L2 directly, fundamentally different from the sequencer model used by every other chain in this leaderboard." - "{{count}} L2s measured live. Trailing the leaderboard: {{worst_name}} at {{worst_p50}} (p50)." -source: https://github.com/ChainBench/OpenChainBench/tree/main/harnesses/l2-block-time +source: https://github.com/OpenChainBench/OpenChainBench/tree/main/harnesses/l2-block-time prometheus: window: 24h diff --git a/benchmarks/metadata-coverage.yml b/benchmarks/metadata-coverage.yml index dfc09d12..5ac9d837 100644 --- a/benchmarks/metadata-coverage.yml +++ b/benchmarks/metadata-coverage.yml @@ -24,15 +24,10 @@ seo_intro: | providers becomes visible to end users. The harness watches new launches on Solana, BNB Chain and Base via Mobula Pulse V2, then asks Mobula, Codex and Jupiter (Solana only) for the same token and - records which fields came back populated. Because Jupiter is - Solana-only by construction, the leaderboard is read per chain - rather than as a cross-chain aggregate that mechanically favours - the chain-restricted provider. On Solana the current leader is - {{best_name:chain:solana}} at {{best_p50:chain:solana}}; on BNB - Chain it is {{best_name:chain:bnb}} at {{best_p50:chain:bnb}}. - Coverage is the share of field checks that returned a value, - computed as a rolling rate so the leaderboard reflects what the - API is doing this hour, not what its catalogue claims to hold. + records which fields came back populated. Coverage is the share of + field checks that returned a value, computed as a rolling rate so + the leaderboard reflects what the API is doing this hour, not what + its catalogue claims to hold. abstract: | We benchmark how complete each aggregator's token-metadata response is for @@ -60,15 +55,14 @@ methodology: - "Jupiter is Solana-only. it appears with zero coverage on EVM chains by construction; the cross-chain headline excludes Jupiter on chains it does not support." findings: - - "On Solana, {{best_name:chain:solana}} leads metadata coverage at {{best_p50:chain:solana}} (p50, 24 h). The number is the share of (logo, description, twitter, website) field checks that returned a populated value on freshly-launched Solana tokens." - - "On BNB Chain, {{best_name:chain:bnb}} leads at {{best_p50:chain:bnb}} (p50, 24 h). BNB is the cleaner read on indexer quality across providers because Jupiter does not index EVM, so the leaderboard is decided between Mobula and Codex on the same footing." - - "{{name:mobula}} returns {{p50:mobula}} (p50, 24 h) on the unfiltered aggregate. Coverage on fresh tokens reflects how aggressively the provider's indexer pulls launchpad-side metadata at mint time rather than waiting for a curator to add it later." - - "{{name:codex}} clocks {{p50:codex}} (p50, 24 h) on the unfiltered aggregate. GraphQL `token` queries return a richer schema by design, so coverage is high on tokens that survive their first hour and lower on fresh launches still missing socials." - - "{{name:jupiter}} sits at {{p50:jupiter}} (p50, 24 h). Jupiter is Solana-only by design, so its number reflects Solana coverage exclusively, the cross-chain aggregate is not comparable to multi-chain providers and is reported per chain instead." + - "{{best_name}} currently leads metadata coverage at {{best_p50}} (p50, 24 h) across {{count}} measured providers. The number is the share of (logo, description, twitter, website) field checks that returned a populated value on freshly-launched tokens." + - "{{name:mobula}} returns {{p50:mobula}} (p50, 24 h). Coverage on fresh tokens reflects how aggressively the provider's indexer pulls launchpad-side metadata at mint time rather than waiting for a curator to add it later." + - "{{name:codex}} clocks {{p50:codex}} (p50, 24 h). GraphQL `token` queries return a richer schema by design, so coverage is high on tokens that survive their first hour and lower on fresh launches still missing socials." + - "{{name:jupiter}} sits at {{p50:jupiter}} (p50, 24 h) on Solana, by far its strongest chain. Jupiter does not index EVM, so the cross-chain headline excludes Jupiter on chains it does not support." - "Coverage drops sharply on the first hour after a launch. p99 ({{p99:mobula}} / {{p99:codex}} / {{p99:jupiter}}) is what a trading UI sees during a launch burst when dozens of new tokens land in the same minute." - - "{{worst_name:chain:solana}} trails on Solana at {{worst_p50:chain:solana}} (p50, 24 h). A 30-point gap on the leaderboard means roughly one in three field renders falls back to a placeholder when displaying a fresh-launch token." + - "{{worst_name}} trails at {{worst_p50}} (p50, 24 h). A 30-point gap on the leaderboard means roughly one in three field renders falls back to a placeholder when displaying a fresh-launch token." -source: https://github.com/ChainBench/OpenChainBench/tree/main/harnesses/metadata-coverage +source: https://github.com/OpenChainBench/OpenChainBench/tree/main/harnesses/metadata-coverage prometheus: window: 24h @@ -76,7 +70,7 @@ prometheus: faq: - q: "Which token metadata API has the best coverage for fresh launches?" - a: "The leaderboard is read per chain because one provider (Jupiter) is Solana-only and would mechanically dominate an unfiltered cross-chain aggregate. On Solana, {{best_name:chain:solana}} currently leads at {{best_p50:chain:solana}} (p50, 24 h). On BNB Chain, {{best_name:chain:bnb}} leads at {{best_p50:chain:bnb}} (p50, 24 h). The benchmark targets the hardest case for any aggregator, tokens minted in the last few minutes on Solana, BNB or Base launchpads (pump.fun, Four.meme, Meteora DBC, Raydium CPMM and others), where catalogue size matters less than how fast the indexer reads off-chain metadata." + a: "{{best_name}} currently leads at {{best_p50}} (p50, 24 h) across {{count}} measured providers. The benchmark targets the hardest case for any aggregator, tokens minted in the last few minutes on Solana, BNB Chain or Base launchpads (pump.fun, Four.meme, Meteora DBC, Raydium CPMM and others), where catalogue size matters less than how fast the indexer reads off-chain metadata." - q: "What does 'metadata coverage' actually measure?" a: "For every freshly-launched token the harness asks each provider for that token's metadata and records whether four canonical fields came back populated. Logo, description, twitter, website. Coverage is the share of those field checks that returned a value, summed across providers, chains and fields, then expressed as a percentage. A provider with 80% coverage returns four-fifths of the requested fields on average for fresh tokens; a provider with 50% leaves half the fields blank." - q: "Why do fresh tokens have low metadata coverage everywhere?" diff --git a/benchmarks/network-coverage.yml b/benchmarks/network-coverage.yml index 1d7be504..4e1468c5 100644 --- a/benchmarks/network-coverage.yml +++ b/benchmarks/network-coverage.yml @@ -3,8 +3,8 @@ slug: network-coverage number: "005" title: Onchain data API with most networks supported -seo_title: "Crypto data API with the most blockchains supported in 2026: Mobula, Codex, GeckoTerminal, Covalent, CoinPaprika, CoinStats, Dune live" -seo_description: "Live blockchain coverage leaderboard. How many mainnets each onchain data API (Mobula, Codex, GeckoTerminal, Covalent/GoldRush, CoinPaprika, CoinStats, Dune) officially supports right now, audited every six hours against their public network endpoints." +seo_title: "Crypto data API with the most blockchains supported in 2026: Codex, GeckoTerminal, Mobula live" +seo_description: "Live blockchain coverage leaderboard. How many mainnets each onchain data API (Mobula, Codex, GeckoTerminal) officially supports right now, audited every six hours against their public network endpoints." subtitle: Number of blockchains each major onchain data provider officially supports. category: Aggregators status: live @@ -32,24 +32,19 @@ seo_intro: | abstract: | We benchmark how many networks each major onchain data provider lists in its public "supported networks" endpoint. The harness fetches the - official listing every six hours from seven providers (GeckoTerminal, - Codex, Mobula, CoinPaprika, Covalent/GoldRush, CoinStats and Dune via - Sim API), deduplicates by chain id and counts. Mainnet only, - testnets are excluded because providers list them inconsistently and - the comparison is meant to reflect what a builder can integrate against - in production. Coverage breadth is one dimension of a data provider's - product, not a ranking on quality. Latency, freshness and metadata - completeness are measured separately by benches № 001 and № 004. + official listing every six hours from GeckoTerminal, Codex and Mobula, + deduplicates by chain id and counts. Mainnet only, testnets are + excluded because providers list them inconsistently and the comparison + is meant to reflect what a builder can integrate against in production. + Coverage breadth is one dimension of a data provider's product, not a + ranking on quality. Latency, freshness and metadata completeness are + measured separately by benches № 001 and № 004. methodology: - "Source: each provider's public supported-networks endpoint." - "GeckoTerminal: GET /api/v2/networks (paginated, no auth)." - "Codex: GraphQL `getNetworks` query at https://graph.codex.io/graphql with an official API key." - "Mobula: GET /api/1/blockchains with an Authorization API key." - - "CoinPaprika: GET /v1/contracts (no auth). Lists platforms supported for contract lookup." - - "Covalent / GoldRush: GET /v1/chains/ with a Bearer API key; testnets filtered via `is_testnet`." - - "CoinStats: GET /wallet/blockchains with X-API-KEY." - - "Dune (via Sim API): GET https://api.sim.dune.com/v1/evm/supported-chains (no auth). EVM only, mainnets filtered via the `mainnet` tag." - "Cadence: full refresh every 6 hours." - "Counting: a provider's network is counted once per unique chain id; mainnet only." - "Failures (network errors, rate limits, auth errors) leave the previous count in place and increment a fetch_errors counter. the page falls back to its last successful sample." @@ -61,7 +56,7 @@ findings: - "{{name:geckoterminal}} sits at {{p50:geckoterminal}} mainnets. GeckoTerminal indexes wherever CoinGecko already tracks tokens, so the count tracks closely with CoinGecko's DEX coverage rollout rather than a standalone listing decision." - "Raw chain count is one dimension of a data API's product. A provider with 200 chains and shallow per-chain depth can rank above one with 80 chains and full DEX, metadata and event coverage on each. Latency (bench № 001) and metadata completeness (bench № 004) measure the other dimensions." -source: https://github.com/ChainBench/OpenChainBench/tree/main/harnesses/network-coverage +source: https://github.com/OpenChainBench/OpenChainBench/tree/main/harnesses/network-coverage prometheus: window: 24h @@ -82,9 +77,7 @@ faq: a: "Any chain a provider lists as a queryable production environment, identified by a unique chain id. Ethereum mainnet, Solana mainnet, Base, Arbitrum, BNB Chain, Bitcoin and so on each count once regardless of how the provider labels them internally. Bridged variants of a token on different chains are not the same chain. The chain id is the deduplication key." # Real metrics exposed by the network-coverage harness: -# networks_supported_total{provider="geckoterminal"|"codex"|"mobula"| -# "coinpaprika"|"covalent"| -# "coinstats"|"dune"} +# networks_supported_total{provider="geckoterminal"|"codex"|"mobula"} # -> gauge, the unique-chain count from the latest successful refresh. # network_supported{provider, chain_id, slug, name} -> gauge (1 per # network; useful for diff queries on the site if we add a @@ -129,55 +122,3 @@ providers: success: clamp_max(networks_supported_total{provider="mobula"} > bool 0, 1) sample_size: networks_supported_total{provider="mobula"} series: networks_supported_total{provider="mobula"} - - - slug: coinpaprika - name: CoinPaprika - tag: Market data API - formula: "Count of platform slugs returned by CoinPaprika's public `/v1/contracts` endpoint, refreshed every 6 hours." - queries: - p50: networks_supported_total{provider="coinpaprika"} - p90: networks_supported_total{provider="coinpaprika"} - p99: networks_supported_total{provider="coinpaprika"} - mean: networks_supported_total{provider="coinpaprika"} - success: clamp_max(networks_supported_total{provider="coinpaprika"} > bool 0, 1) - sample_size: networks_supported_total{provider="coinpaprika"} - series: networks_supported_total{provider="coinpaprika"} - - - slug: covalent - name: Covalent - tag: GoldRush multichain data - formula: "Count of unique mainnet chains returned by Covalent's `/v1/chains/` endpoint with `is_testnet=false`, refreshed every 6 hours." - queries: - p50: networks_supported_total{provider="covalent"} - p90: networks_supported_total{provider="covalent"} - p99: networks_supported_total{provider="covalent"} - mean: networks_supported_total{provider="covalent"} - success: clamp_max(networks_supported_total{provider="covalent"} > bool 0, 1) - sample_size: networks_supported_total{provider="covalent"} - series: networks_supported_total{provider="covalent"} - - - slug: coinstats - name: CoinStats - tag: Portfolio + market data - formula: "Count of blockchains returned by CoinStats's `/wallet/blockchains` endpoint, refreshed every 6 hours." - queries: - p50: networks_supported_total{provider="coinstats"} - p90: networks_supported_total{provider="coinstats"} - p99: networks_supported_total{provider="coinstats"} - mean: networks_supported_total{provider="coinstats"} - success: clamp_max(networks_supported_total{provider="coinstats"} > bool 0, 1) - sample_size: networks_supported_total{provider="coinstats"} - series: networks_supported_total{provider="coinstats"} - - - slug: dune - name: Dune - tag: Onchain analytics + Sim API - formula: "Count of EVM chains tagged `mainnet` in Sim by Dune's `/v1/evm/supported-chains` endpoint, refreshed every 6 hours. EVM-only." - queries: - p50: networks_supported_total{provider="dune"} - p90: networks_supported_total{provider="dune"} - p99: networks_supported_total{provider="dune"} - mean: networks_supported_total{provider="dune"} - success: clamp_max(networks_supported_total{provider="dune"} > bool 0, 1) - sample_size: networks_supported_total{provider="dune"} - series: networks_supported_total{provider="dune"} diff --git a/benchmarks/network-fees.yml b/benchmarks/network-fees.yml deleted file mode 100644 index 6a679cd3..00000000 --- a/benchmarks/network-fees.yml +++ /dev/null @@ -1,334 +0,0 @@ -# OpenChainBench. Bench № 031 - -slug: network-fees -number: "031" -title: Current native transfer fee across L1 and L2 blockchains -seo_title: "Cheapest blockchain transaction fee 2026: L1 and L2 USD live (Ethereum, Arbitrum, Optimism, Base, zkSync, Solana, BNB, Avalanche)" -seo_description: "Live USD cost of a native-token transfer across 20 L1 and L2 chains. L1: Ethereum, Solana, BNB, Avalanche, TRON, Cardano, SUI, TON, Stellar, Litecoin, Monero. L2: Arbitrum, Optimism, Base, zkSync, Linea, Scroll, Blast, Mantle, Taiko. Slow/standard/fast tiers refreshed every 30s." -subtitle: "Current USD cost of moving the chain's native asset across 20 L1 and L2 chains, refreshed every 30 seconds." - -seo_intro: | - This page shows the live USD cost of sending the native token on every major Layer-1 blockchain. We sample the chain-native fee market (eth_feeHistory for EVM chains, getRecentPrioritizationFees for Solana, koios protocol params for Cardano, fee_stats for Stellar, fee_estimate for Monero, mempool oracles for Litecoin, getChainParameters for TRON, sui_getReferenceGasPrice for SUI, hardcoded typical observed for TON), convert to the chain's smallest unit, then multiply by the native-token USD price pulled from Mobula every 30 seconds. The result is a head-to-head comparison of what it actually costs an end user to move one unit of value on each chain, rather than a gas-price comparison in gwei or lamports which is meaningless across protocols. - -faq: - - q: "What does this benchmark measure?" - a: "The current USD cost of a single native-token transfer on each of the 11 tracked L1 chains. A native transfer is the simplest possible action: send the chain's main asset from one address to another. ETH on Ethereum, SOL on Solana, ADA on Cardano, XLM on Stellar, and so on. We do not measure ERC-20 transfers, DEX swaps, or contract calls." - - q: "Why USD instead of gas price?" - a: "Gas price in gwei (Ethereum) cannot be compared to lamports per CU (Solana) or stroops per operation (Stellar). The only honest cross-chain unit is the dollar cost of a user-facing action, computed at scrape time using a live USD price for each native token. Mobula's market API provides the prices we multiply by." - - q: "What do slow, standard, and fast tiers mean?" - a: "Tiers exist for chains with a priority market where users can pay more to get faster inclusion. Slow targets roughly the 25th percentile of recent priority bids, standard the 50th, fast the 90th. Chains with deterministic or near-deterministic fees (Cardano, Stellar, TON, TRON native transfer) emit a single tier because there is no priority market to bid into." - - q: "Why is the Solana fee so low?" - a: "Solana charges 5000 lamports per signature as a hard base, plus an optional priority fee priced in micro-lamports per compute unit. A simple SOL transfer uses around 200 compute units, so the priority component is typically dwarfed by the base. At current SOL prices the headline fee sits well under one cent for non-congested blocks." - - q: "Why is the Cardano fee always similar?" - a: "Cardano fees are deterministic. The protocol parameters (`min_fee_a` per byte, `min_fee_b` base) are set by governance and updated rarely; a standard ADA transfer is roughly 250 bytes, so the lovelace cost is essentially fixed until the next parameter vote. The USD figure on the leaderboard only moves because ADA's USD price moves." - - q: "How are L2 fees handled?" - a: "Not on this page. L2 fees are a separate measurement problem (rollup fee = L2 execution + L1 data posting, the latter being a non-trivial blob market). The L2 bench is in progress as a companion to this L1 page; once shipped, you'll be able to compare L1-fee vs L2-fee for any wallet decision in one click." - - q: "How often does the page refresh?" - a: "Every 30 seconds. The harness re-queries each chain's fee oracle and Mobula's price API every 30 seconds, so headline values are at most 30 seconds stale plus chain RPC latency (typically under a second)." - - q: "Why are some chains using single tier?" - a: "Cardano fees are protocol-deterministic. Stellar's base fee is 100 stroops per operation network-wide. TON's typical fee is a hardcoded conservative estimate because TON has no clean fee-estimate RPC. TRON native transfers consume bandwidth at the published rate per byte. None of these chains expose a priority market a user can bid into for a TRX, ADA, XLM or TON transfer, so emitting a single tier is more honest than fabricating three identical values." - -category: Blockchains -status: live -metric: Native transfer fee USD -unit: usd -higher_is_better: false - -abstract: | - Every 30 seconds we ask each L1 chain its current native-transfer fee - in the chain's smallest unit (wei, lamport, lovelace, stroop, sun, - MIST, nanoton, litoshi, atomic), multiply by the live USD price of - the chain's native token from Mobula's market API, and publish the - result. Chains with a priority market expose three tiers (slow / std - / fast) mapped to roughly the 25th, 50th and 90th percentile of the - recent fee distribution. Deterministic-fee chains emit a single tier. - The 11-chain list mirrors the L1 finality bench so users can compare - cost and speed head-to-head. - -methodology: - - "Refresh cadence: 30 s. One process samples all 11 chains in parallel goroutines." - - "Ethereum / BNB / Avalanche (EVM): `eth_feeHistory` over the last 4 blocks at percentiles [25, 50, 90]. Cost = (base_fee + reward_percentile) × 21_000 gas, mapped to slow/std/fast." - - "Solana: `getRecentPrioritizationFees` percentiles 25/50/90 of micro-lamports per CU × 200 CU + 5_000 lamport base. Empty-fees response collapses to single std tier at the 5_000 base." - - "TRON: `getChainParameters.getTransactionFee` (currently 1_000 SUN/byte) × 268 bytes typical native transfer." - - "Cardano: koios `epoch_params.min_fee_a / min_fee_b` × 250 bytes typical native transfer. Deterministic, refreshes only when on-chain parameters change." - - "Stellar: horizon `fee_stats.last_ledger_base_fee` × 1 operation. Single tier." - - "SUI: `suix_getReferenceGasPrice` × 2_000_000 gas budget (typical observed for `Coin::transfer`). Single std tier." - - "TON: hardcoded 0.005 TON, the typical observed wallet-v4 transfer. TON's fee model is BoC-emulation only; a clean fee-estimate RPC does not exist." - - "Litecoin: litecoinspace.org `/api/v1/fees/recommended` (hourFee / halfHourFee / fastestFee in litoshi/vByte) × 225 vBytes typical 1-in-1-out P2WPKH transfer." - - "Monero: monero-rpc `get_fee_estimate.fees[0..2]` × 1500 bytes typical 1-in-2-out RingCT transaction." - - "USD prices: `api.mobula.io/api/1/market/multi-data` polled every 30 s for all 11 native tokens in one call." - - "Failures: any upstream error leaves the previous gauge in place, increments `tx_fee_fetch_errors_total{chain, error_type}`, and sets `tx_fee_health{chain}=0`." - -findings: - - "{{best_name}} is the cheapest L1 native transfer at {{best_p50}} (std, 24h)." - - "{{name:ethereum}} sits at {{p50:ethereum}} (std, 24h), the most expensive L1 transfer on this leaderboard during normal congestion." - - "{{name:bnb}}, {{name:avalanche}}, {{name:stellar}}, {{name:solana}}, {{name:litecoin}} cluster near or below one cent for a standard transfer." - - "{{name:cardano}}, {{name:tron}}, {{name:monero}} use deterministic or near-deterministic fee models; USD movement on the leaderboard reflects native-token price movement, not network congestion." - - "USD costs are computed at scrape time. A 10% intraday move in the native token's USD price moves the headline by 10% even if the chain-native fee is flat. We surface that intentionally — the dollar cost is what a user actually pays." - -source: https://github.com/MobulaFi/mobula-monorepo/tree/main/miniapps/transaction-fee - -prometheus: - window: 24h - -# Real metrics exposed by the transaction-fee harness: -# tx_fee_native_transfer_usd{chain, tier} gauge (USD) -# tx_fee_native_transfer_native{chain, tier} gauge (smallest unit) -# tx_fee_gas_price_gwei{chain, tier} gauge (EVM only) -# tx_fee_native_token_price_usd{chain} gauge (USD per token) -# tx_fee_last_refresh_timestamp_seconds{chain} gauge (unix s) -# tx_fee_fetch_errors_total{chain, error_type} counter -# tx_fee_health{chain} gauge (0|1) - -providers: - - slug: ethereum - name: Ethereum - layer: l1 - tag: EIP-1559 fee market, 21000 gas × (base + p50 priority) - formula: "Median USD cost of a native ETH transfer over 24h: (base_fee + p50 priority_fee) × 21000 gas × ETH USD price." - queries: - p50: quantile_over_time(0.50, tx_fee_native_transfer_usd{chain="ethereum",tier="std"}[24h]) - p90: quantile_over_time(0.90, tx_fee_native_transfer_usd{chain="ethereum",tier="fast"}[24h]) - p99: quantile_over_time(0.99, tx_fee_native_transfer_usd{chain="ethereum",tier="fast"}[24h]) - mean: avg_over_time(tx_fee_native_transfer_usd{chain="ethereum",tier="std"}[24h]) - success: avg_over_time(tx_fee_health{chain="ethereum"}[24h]) - series: tx_fee_native_transfer_usd{chain="ethereum",tier="std"} - - - slug: bnb - name: BNB Chain - layer: l1 - tag: EIP-1559 fee market, 21000 gas - formula: "Median USD cost of a native BNB transfer over 24h." - queries: - p50: quantile_over_time(0.50, tx_fee_native_transfer_usd{chain="bnb",tier="std"}[24h]) - p90: quantile_over_time(0.90, tx_fee_native_transfer_usd{chain="bnb",tier="fast"}[24h]) - p99: quantile_over_time(0.99, tx_fee_native_transfer_usd{chain="bnb",tier="fast"}[24h]) - mean: avg_over_time(tx_fee_native_transfer_usd{chain="bnb",tier="std"}[24h]) - success: avg_over_time(tx_fee_health{chain="bnb"}[24h]) - series: tx_fee_native_transfer_usd{chain="bnb",tier="std"} - - - slug: avalanche - name: Avalanche - layer: l1 - tag: C-Chain EIP-1559 fee market, 21000 gas - formula: "Median USD cost of a native AVAX transfer over 24h." - queries: - p50: quantile_over_time(0.50, tx_fee_native_transfer_usd{chain="avalanche",tier="std"}[24h]) - p90: quantile_over_time(0.90, tx_fee_native_transfer_usd{chain="avalanche",tier="fast"}[24h]) - p99: quantile_over_time(0.99, tx_fee_native_transfer_usd{chain="avalanche",tier="fast"}[24h]) - mean: avg_over_time(tx_fee_native_transfer_usd{chain="avalanche",tier="std"}[24h]) - success: avg_over_time(tx_fee_health{chain="avalanche"}[24h]) - series: tx_fee_native_transfer_usd{chain="avalanche",tier="std"} - - - slug: solana - name: Solana - layer: l1 - tag: 5000 lamport base + getRecentPrioritizationFees × 200 CU - formula: "Median USD cost of a native SOL transfer over 24h: 5000 lamports + p50 priority × 200 CU × SOL USD price." - queries: - p50: quantile_over_time(0.50, tx_fee_native_transfer_usd{chain="solana",tier="std"}[24h]) - p90: quantile_over_time(0.90, tx_fee_native_transfer_usd{chain="solana",tier="fast"}[24h]) - p99: quantile_over_time(0.99, tx_fee_native_transfer_usd{chain="solana",tier="fast"}[24h]) - mean: avg_over_time(tx_fee_native_transfer_usd{chain="solana",tier="std"}[24h]) - success: avg_over_time(tx_fee_health{chain="solana"}[24h]) - series: tx_fee_native_transfer_usd{chain="solana",tier="std"} - - - slug: tron - name: TRON - layer: l1 - tag: Bandwidth model, 268 bytes × getTransactionFee SUN/byte - formula: "Deterministic USD cost of a native TRX transfer using the bandwidth-rate parameter × 268 bytes typical transfer × TRX USD price." - queries: - p50: quantile_over_time(0.50, tx_fee_native_transfer_usd{chain="tron",tier="single"}[24h]) - p90: quantile_over_time(0.90, tx_fee_native_transfer_usd{chain="tron",tier="single"}[24h]) - p99: quantile_over_time(0.99, tx_fee_native_transfer_usd{chain="tron",tier="single"}[24h]) - mean: avg_over_time(tx_fee_native_transfer_usd{chain="tron",tier="single"}[24h]) - success: avg_over_time(tx_fee_health{chain="tron"}[24h]) - series: tx_fee_native_transfer_usd{chain="tron",tier="single"} - - - slug: cardano - name: Cardano - layer: l1 - tag: min_fee_b + size × min_fee_a, deterministic - formula: "Protocol-deterministic ADA transfer cost: koios live min_fee_a/b × 250 bytes typical × ADA USD price." - queries: - p50: quantile_over_time(0.50, tx_fee_native_transfer_usd{chain="cardano",tier="single"}[24h]) - p90: quantile_over_time(0.90, tx_fee_native_transfer_usd{chain="cardano",tier="single"}[24h]) - p99: quantile_over_time(0.99, tx_fee_native_transfer_usd{chain="cardano",tier="single"}[24h]) - mean: avg_over_time(tx_fee_native_transfer_usd{chain="cardano",tier="single"}[24h]) - success: avg_over_time(tx_fee_health{chain="cardano"}[24h]) - series: tx_fee_native_transfer_usd{chain="cardano",tier="single"} - - - slug: sui - name: Sui - layer: l1 - tag: suix_getReferenceGasPrice × 2_000_000 gas budget - formula: "USD cost of a native SUI transfer: live reference gas price × 2M gas budget × SUI USD price." - queries: - p50: quantile_over_time(0.50, tx_fee_native_transfer_usd{chain="sui",tier="std"}[24h]) - p90: quantile_over_time(0.90, tx_fee_native_transfer_usd{chain="sui",tier="std"}[24h]) - p99: quantile_over_time(0.99, tx_fee_native_transfer_usd{chain="sui",tier="std"}[24h]) - mean: avg_over_time(tx_fee_native_transfer_usd{chain="sui",tier="std"}[24h]) - success: avg_over_time(tx_fee_health{chain="sui"}[24h]) - series: tx_fee_native_transfer_usd{chain="sui",tier="std"} - - - slug: ton - name: TON - layer: l1 - tag: Hardcoded 0.005 TON typical wallet-v4 transfer - formula: "Conservative typical-observed cost of a TON wallet transfer × TON USD price. TON has no fee-estimate RPC; this is the observed median." - queries: - p50: quantile_over_time(0.50, tx_fee_native_transfer_usd{chain="ton",tier="single"}[24h]) - p90: quantile_over_time(0.90, tx_fee_native_transfer_usd{chain="ton",tier="single"}[24h]) - p99: quantile_over_time(0.99, tx_fee_native_transfer_usd{chain="ton",tier="single"}[24h]) - mean: avg_over_time(tx_fee_native_transfer_usd{chain="ton",tier="single"}[24h]) - success: avg_over_time(tx_fee_health{chain="ton"}[24h]) - series: tx_fee_native_transfer_usd{chain="ton",tier="single"} - - - slug: stellar - name: Stellar - layer: l1 - tag: 100 stroops base per operation, surge during congestion - formula: "Live horizon fee_stats.last_ledger_base_fee × 1 op × XLM USD price." - queries: - p50: quantile_over_time(0.50, tx_fee_native_transfer_usd{chain="stellar",tier="single"}[24h]) - p90: quantile_over_time(0.90, tx_fee_native_transfer_usd{chain="stellar",tier="single"}[24h]) - p99: quantile_over_time(0.99, tx_fee_native_transfer_usd{chain="stellar",tier="single"}[24h]) - mean: avg_over_time(tx_fee_native_transfer_usd{chain="stellar",tier="single"}[24h]) - success: avg_over_time(tx_fee_health{chain="stellar"}[24h]) - series: tx_fee_native_transfer_usd{chain="stellar",tier="single"} - - - slug: litecoin - name: Litecoin - layer: l1 - tag: litecoinspace fee oracle × 225 vBytes - formula: "Mempool-based litoshi/vByte × 225 vBytes typical P2WPKH transfer × LTC USD price." - queries: - p50: quantile_over_time(0.50, tx_fee_native_transfer_usd{chain="litecoin",tier="std"}[24h]) - p90: quantile_over_time(0.90, tx_fee_native_transfer_usd{chain="litecoin",tier="fast"}[24h]) - p99: quantile_over_time(0.99, tx_fee_native_transfer_usd{chain="litecoin",tier="fast"}[24h]) - mean: avg_over_time(tx_fee_native_transfer_usd{chain="litecoin",tier="std"}[24h]) - success: avg_over_time(tx_fee_health{chain="litecoin"}[24h]) - series: tx_fee_native_transfer_usd{chain="litecoin",tier="std"} - - - slug: monero - name: Monero - layer: l1 - tag: get_fee_estimate × 1500 bytes RingCT - formula: "Monero-rpc fee per byte × 1500 bytes typical 1-in-2-out RingCT × XMR USD price." - queries: - p50: quantile_over_time(0.50, tx_fee_native_transfer_usd{chain="monero",tier="std"}[24h]) - p90: quantile_over_time(0.90, tx_fee_native_transfer_usd{chain="monero",tier="fast"}[24h]) - p99: quantile_over_time(0.99, tx_fee_native_transfer_usd{chain="monero",tier="fast"}[24h]) - mean: avg_over_time(tx_fee_native_transfer_usd{chain="monero",tier="std"}[24h]) - success: avg_over_time(tx_fee_health{chain="monero"}[24h]) - series: tx_fee_native_transfer_usd{chain="monero",tier="std"} - - - slug: arbitrum - name: Arbitrum One - layer: l2 - tag: "Optimistic rollup (Nitro), 21000 gas" - formula: "Median USD cost of a native ETH transfer on Arbitrum One over 24h. L2 execution cost only; L1 data posting fee excluded (Phase 2)." - queries: - p50: quantile_over_time(0.50, tx_fee_native_transfer_usd{chain="arbitrum",tier="std"}[24h]) - p90: quantile_over_time(0.90, tx_fee_native_transfer_usd{chain="arbitrum",tier="fast"}[24h]) - p99: quantile_over_time(0.99, tx_fee_native_transfer_usd{chain="arbitrum",tier="fast"}[24h]) - mean: avg_over_time(tx_fee_native_transfer_usd{chain="arbitrum",tier="std"}[24h]) - success: avg_over_time(tx_fee_health{chain="arbitrum"}[24h]) - series: tx_fee_native_transfer_usd{chain="arbitrum",tier="std"} - - slug: optimism - name: Optimism - layer: l2 - tag: "OP Stack optimistic rollup, 21000 gas" - formula: "Median USD cost of a native ETH transfer on Optimism over 24h. L2 execution cost only; L1 data posting fee excluded (Phase 2)." - queries: - p50: quantile_over_time(0.50, tx_fee_native_transfer_usd{chain="optimism",tier="std"}[24h]) - p90: quantile_over_time(0.90, tx_fee_native_transfer_usd{chain="optimism",tier="fast"}[24h]) - p99: quantile_over_time(0.99, tx_fee_native_transfer_usd{chain="optimism",tier="fast"}[24h]) - mean: avg_over_time(tx_fee_native_transfer_usd{chain="optimism",tier="std"}[24h]) - success: avg_over_time(tx_fee_health{chain="optimism"}[24h]) - series: tx_fee_native_transfer_usd{chain="optimism",tier="std"} - - slug: base - name: Base - layer: l2 - tag: "OP Stack optimistic rollup (Coinbase), 21000 gas" - formula: "Median USD cost of a native ETH transfer on Base over 24h. L2 execution cost only; L1 data posting fee excluded (Phase 2)." - queries: - p50: quantile_over_time(0.50, tx_fee_native_transfer_usd{chain="base",tier="std"}[24h]) - p90: quantile_over_time(0.90, tx_fee_native_transfer_usd{chain="base",tier="fast"}[24h]) - p99: quantile_over_time(0.99, tx_fee_native_transfer_usd{chain="base",tier="fast"}[24h]) - mean: avg_over_time(tx_fee_native_transfer_usd{chain="base",tier="std"}[24h]) - success: avg_over_time(tx_fee_health{chain="base"}[24h]) - series: tx_fee_native_transfer_usd{chain="base",tier="std"} - - slug: zksync - name: zkSync Era - layer: l2 - tag: "ZK rollup, 21000 gas" - formula: "Median USD cost of a native ETH transfer on zkSync Era over 24h. L2 execution cost only; L1 data posting fee excluded (Phase 2)." - queries: - p50: quantile_over_time(0.50, tx_fee_native_transfer_usd{chain="zksync",tier="std"}[24h]) - p90: quantile_over_time(0.90, tx_fee_native_transfer_usd{chain="zksync",tier="fast"}[24h]) - p99: quantile_over_time(0.99, tx_fee_native_transfer_usd{chain="zksync",tier="fast"}[24h]) - mean: avg_over_time(tx_fee_native_transfer_usd{chain="zksync",tier="std"}[24h]) - success: avg_over_time(tx_fee_health{chain="zksync"}[24h]) - series: tx_fee_native_transfer_usd{chain="zksync",tier="std"} - - slug: linea - name: Linea - layer: l2 - tag: "ZK rollup (Stark), 21000 gas" - formula: "Median USD cost of a native ETH transfer on Linea over 24h. L2 execution cost only; L1 data posting fee excluded (Phase 2)." - queries: - p50: quantile_over_time(0.50, tx_fee_native_transfer_usd{chain="linea",tier="std"}[24h]) - p90: quantile_over_time(0.90, tx_fee_native_transfer_usd{chain="linea",tier="fast"}[24h]) - p99: quantile_over_time(0.99, tx_fee_native_transfer_usd{chain="linea",tier="fast"}[24h]) - mean: avg_over_time(tx_fee_native_transfer_usd{chain="linea",tier="std"}[24h]) - success: avg_over_time(tx_fee_health{chain="linea"}[24h]) - series: tx_fee_native_transfer_usd{chain="linea",tier="std"} - - slug: scroll - name: Scroll - layer: l2 - tag: "zkEVM rollup, 21000 gas" - formula: "Median USD cost of a native ETH transfer on Scroll over 24h. L2 execution cost only; L1 data posting fee excluded (Phase 2)." - queries: - p50: quantile_over_time(0.50, tx_fee_native_transfer_usd{chain="scroll",tier="std"}[24h]) - p90: quantile_over_time(0.90, tx_fee_native_transfer_usd{chain="scroll",tier="fast"}[24h]) - p99: quantile_over_time(0.99, tx_fee_native_transfer_usd{chain="scroll",tier="fast"}[24h]) - mean: avg_over_time(tx_fee_native_transfer_usd{chain="scroll",tier="std"}[24h]) - success: avg_over_time(tx_fee_health{chain="scroll"}[24h]) - series: tx_fee_native_transfer_usd{chain="scroll",tier="std"} - - slug: blast - name: Blast - layer: l2 - tag: "OP Stack optimistic rollup (Blast), 21000 gas" - formula: "Median USD cost of a native ETH transfer on Blast over 24h. L2 execution cost only; L1 data posting fee excluded (Phase 2)." - queries: - p50: quantile_over_time(0.50, tx_fee_native_transfer_usd{chain="blast",tier="std"}[24h]) - p90: quantile_over_time(0.90, tx_fee_native_transfer_usd{chain="blast",tier="fast"}[24h]) - p99: quantile_over_time(0.99, tx_fee_native_transfer_usd{chain="blast",tier="fast"}[24h]) - mean: avg_over_time(tx_fee_native_transfer_usd{chain="blast",tier="std"}[24h]) - success: avg_over_time(tx_fee_health{chain="blast"}[24h]) - series: tx_fee_native_transfer_usd{chain="blast",tier="std"} - - slug: mantle - name: Mantle - layer: l2 - tag: "OP Stack optimistic rollup (Mantle), 21000 gas" - formula: "Median USD cost of a native ETH transfer on Mantle over 24h. L2 execution cost only; L1 data posting fee excluded (Phase 2)." - queries: - p50: quantile_over_time(0.50, tx_fee_native_transfer_usd{chain="mantle",tier="std"}[24h]) - p90: quantile_over_time(0.90, tx_fee_native_transfer_usd{chain="mantle",tier="fast"}[24h]) - p99: quantile_over_time(0.99, tx_fee_native_transfer_usd{chain="mantle",tier="fast"}[24h]) - mean: avg_over_time(tx_fee_native_transfer_usd{chain="mantle",tier="std"}[24h]) - success: avg_over_time(tx_fee_health{chain="mantle"}[24h]) - series: tx_fee_native_transfer_usd{chain="mantle",tier="std"} - - slug: taiko - name: Taiko - layer: l2 - tag: "Based rollup, 21000 gas" - formula: "Median USD cost of a native ETH transfer on Taiko over 24h. L2 execution cost only; L1 data posting fee excluded (Phase 2)." - queries: - p50: quantile_over_time(0.50, tx_fee_native_transfer_usd{chain="taiko",tier="std"}[24h]) - p90: quantile_over_time(0.90, tx_fee_native_transfer_usd{chain="taiko",tier="fast"}[24h]) - p99: quantile_over_time(0.99, tx_fee_native_transfer_usd{chain="taiko",tier="fast"}[24h]) - mean: avg_over_time(tx_fee_native_transfer_usd{chain="taiko",tier="std"}[24h]) - success: avg_over_time(tx_fee_health{chain="taiko"}[24h]) - series: tx_fee_native_transfer_usd{chain="taiko",tier="std"} diff --git a/benchmarks/oracle-deviation.yml b/benchmarks/oracle-deviation.yml index 07c91167..9942131c 100644 --- a/benchmarks/oracle-deviation.yml +++ b/benchmarks/oracle-deviation.yml @@ -95,7 +95,7 @@ faq: - q: "How often is each oracle polled and why 30 s?" a: "Every (source, pair) is polled every 30 seconds. The cadence is bounded below by Chainlink's update mechanics, the on-chain feed only refreshes on deviation or heartbeat, so polling faster than the feed updates returns the same value and wastes RPC calls. 30 s is fast enough to catch every Chainlink round within ~half a heartbeat of its on-chain landing while keeping total request volume at 80 req/min across all 4 sources × 10 pairs (well under every free-tier ceiling). Pyth Hermes, Binance and Coinbase tickers refresh continuously so 30 s polling captures them at full freshness." -source: https://github.com/ChainBench/OpenChainBench/tree/main/harnesses/oracle-deviation +source: https://github.com/OpenChainBench/OpenChainBench/tree/main/harnesses/oracle-deviation prometheus: window: 24h diff --git a/benchmarks/perp-fees.yml b/benchmarks/perp-fees.yml index 2dd5f364..9c43e260 100644 --- a/benchmarks/perp-fees.yml +++ b/benchmarks/perp-fees.yml @@ -59,7 +59,7 @@ findings: - "GMX position fee is variable: 4 bps on positive impact opens, 6 bps on negative impact. We report the negative branch (conservative upper bound). {{name:gmx}} clocks {{p50:gmx}} all-in (p50, 24 h)." - "{{worst_name}} trails at {{worst_p50}} all-in (p50, 24 h). The leaderboard reorders intra-day with spread volatility, so a venue cheap on the rack rate can still trail when its book thins out at a $1000 buy." -source: https://github.com/ChainBench/OpenChainBench/tree/main/harnesses/perp-fees +source: https://github.com/OpenChainBench/OpenChainBench/tree/main/harnesses/perp-fees prometheus: window: 24h diff --git a/benchmarks/rpc-capabilities.yml b/benchmarks/rpc-capabilities.yml index 5a305519..70f2f578 100644 --- a/benchmarks/rpc-capabilities.yml +++ b/benchmarks/rpc-capabilities.yml @@ -22,25 +22,19 @@ seo_intro: | budget. We probe `eth_blockNumber` every 15 seconds against 15 audited providers across 10 EVM chains. PublicNode, dRPC, 1RPC, MeowRPC, Tenderly Gateway, Nodies (POKT), Lava Network, Merkle, - Flashbots Protect, Cloudflare and 5 chain-official foundation - endpoints (Base, Binance BSC, Avalanche, Arbitrum, Optimism). - Chains covered. Ethereum (9 providers), Arbitrum (8), Base (6), - Optimism (6), Avalanche (6), BNB (5), Polygon (5), Linea + Scroll + Mantle (4 - each). The headline question is per chain, not cross-chain. Five - providers are single-chain by design (the foundation endpoints - above), so a cross-chain aggregate mechanically rewards whichever - single-chain endpoint happens to be fastest on its one chain. - Current per-chain leaders. Ethereum {{best_name:chain:ethereum}} - at {{best_p50:chain:ethereum}}, Base {{best_name:chain:base}} at - {{best_p50:chain:base}}, BNB {{best_name:chain:bnb}} at - {{best_p50:chain:bnb}}, Arbitrum {{best_name:chain:arbitrum}} at - {{best_p50:chain:arbitrum}}. Use the chain tab above to filter the - leaderboard. Latency is the headline; the leaderboard also exposes - call-result classification (`ok` vs `http_err` vs `jsonrpc_err` vs `stale` vs - `timeout`, the Cloudflare-eth trap where a 200 OK hides a JSON-RPC - error field) and archive-depth support so a fast endpoint that - returned a state-pruned response at block (head, 5M) is not - silently treated as a viable archive source. + Flashbots Protect, Cloudflare and the chain-official endpoints + (Coinbase's `mainnet.base.org`, Binance's `bsc-dataseed1`, Ava + Labs' `api.avax.network`, Arbitrum Foundation's `arb1.arbitrum.io`, + Optimism Foundation's `mainnet.optimism.io`). Chains covered. + Ethereum (9 providers), Arbitrum (8), Base (6), Optimism (6), + Avalanche (6), BNB (5), Polygon (5), Linea + Scroll + Mantle (4 + each). Use the chain tab above to filter the leaderboard. + Latency is the headline number; the leaderboard also exposes + call-result classification (`ok` vs `http_err` vs `jsonrpc_err` vs + `stale` vs `timeout`, the Cloudflare-eth trap where a 200 OK hides + a JSON-RPC error field) and archive-depth support so a fast + endpoint that returned a state-pruned response at block + (head, 5M) is not silently treated as a viable archive source. abstract: | We measure the round-trip latency of a single, identical RPC call @@ -60,7 +54,7 @@ abstract: | as the fastest. methodology: - - "Cadence: every 15 seconds per (provider, chain) pair, from each of 3 Railway replicas (us-east Virginia, eu-west Amsterdam, sgp Singapore). The harness reads `$RAILWAY_REPLICA_REGION` at boot, normalizes it to the canonical 3-region set, and stamps a `region` label on every emitted metric. Headline p50/p90/p99 aggregate across all 3 regions via Prometheus `avg(quantile_over_time(...))`; per-region breakdowns are available on the time-series chart." + - "Cadence: every 15 seconds per (provider, chain) pair. Single eu-west region; multi-region requires running additional monitor instances." - "Payload: `{\"jsonrpc\":\"2.0\",\"id\":1,\"method\":\"eth_blockNumber\",\"params\":[]}`. Plain HTTP POST, identical for every endpoint, no API key in any request." - "Latency: client-side `time.Now()` delta around the round-trip, in milliseconds. Exposed as both a gauge (`rpc_latency_milliseconds`) and a histogram (`rpc_latency_milliseconds_histogram`) with buckets 50 ms → 10 s, so p50/p90/p99 are computed via Prometheus `histogram_quantile` / `quantile_over_time`." - "Call-result classification: `ok` (HTTP 200 + non-empty result), `http_err` (status ≠ 200 or transport failure), `jsonrpc_err` (HTTP 200 with an `error` field, the Cloudflare-eth trap), `stale` (returned block more than 20 behind the cross-provider tip for that chain), `timeout`. Counter `rpc_call_total{result}` powers the reliability leaderboard." @@ -69,18 +63,16 @@ methodology: - "Excluded by design: Ankr (key-gated), gateway.fm (29 req/IP budget too tight for 15s polling), LlamaRPC + BlockPI + OmniaTech (Cloudflare 521 region-blocked), Alchemy demo (rate-limited dead), NodeReal + GetBlock + Chainstack (key-gated). Merkle on Ethereum + Lava on non-ETH/Arb + MeowRPC on non-ETH/Arb all excluded chain-by-chain. Every (provider, chain) was live-verified no-key before inclusion." findings: - - "Per-chain leaders, not a cross-chain crown. On Ethereum the current leader is {{best_name:chain:ethereum}} at {{best_p50:chain:ethereum}} (p50, 24 h) across 9 measured providers, the largest cohort in this bench. Ethereum is also the chain where Cloudflare-eth's `jsonrpc_err` traps the lazy reader." - - "On Base the leader is {{best_name:chain:base}} at {{best_p50:chain:base}} (p50, 24 h) across 6 providers. Base sees Coinbase's `mainnet.base.org` go head-to-head with PublicNode, dRPC, Tenderly and Merkle, an unusually clean comparison because the chain-official endpoint is operated by the same team that runs the sequencer." - - "On BNB Chain the leader is {{best_name:chain:bnb}} at {{best_p50:chain:bnb}} (p50, 24 h) across 5 providers. Binance's `bsc-dataseed1` is the incumbent, but PublicNode, dRPC and Merkle have closed the gap on EU origin nodes." - - "On Arbitrum the leader is {{best_name:chain:arbitrum}} at {{best_p50:chain:arbitrum}} (p50, 24 h) across 8 providers. Arbitrum is the second-largest cohort and one of the few chains where Lava and MeowRPC compete on a no-key tier alongside PublicNode and the Arbitrum Foundation's own endpoint." - - "{{name:publicnode}} returns {{p50:publicnode}} on the unfiltered aggregate. PublicNode (operated by Allnodes) is the de-facto default no-key RPC for many dapps because it terminates close to a large EU-anchored validator footprint and is one of the few providers present on most measured chains." - - "{{name:drpc}} sits at {{p50:drpc}} on the unfiltered aggregate. dRPC is a decentralized RPC mesh that routes each request across third-party node providers with consensus checks, so latency tracks the median of the underlying mesh rather than a single host." - - "Cloudflare-eth is a cautionary tale. The endpoint returns HTTP 200 in well under a second, but a growing share of calls now resolve to `jsonrpc_err -32046 Cannot fulfill request` rather than a usable block, reliability is measured by `rpc_call_total{result=\"ok\"} / rpc_call_total` rather than HTTP status alone." - - "Single-chain providers (Base official, Binance, Arbitrum Foundation, Optimism Foundation, Avalanche) mechanically inflate a cross-chain aggregate because they only emit metrics for their one chain. Read the leaderboard per chain and the comparison stays honest." + - "{{best_name}} currently leads at {{best_p50}} (p50, 24 h) on the active chain tab, across {{count}} measured RPC providers. The number is the round-trip latency of a single `eth_blockNumber` call from eu-west, the cheapest possible read on any Ethereum-shaped RPC." + - "{{name:publicnode}} returns {{p50:publicnode}}. PublicNode (operated by Allnodes) is the de-facto default no-key RPC for many dapps and tends to lead the cohort because it terminates close to a large EU-anchored validator footprint." + - "{{name:drpc}} sits at {{p50:drpc}}. dRPC is a decentralized RPC mesh that routes each request across third-party node providers with consensus checks, so latency tracks the median of the underlying mesh rather than a single host." + - "{{name:flashbots}} clocks {{p50:flashbots}} on Ethereum. Flashbots Protect proxies reads through a standard Ethereum node behind the private-mempool write path, so read latency is a good proxy for how the proxy itself is provisioned, not for the upstream node." + - "Cloudflare-eth is a cautionary tale on this leaderboard. The endpoint returns HTTP 200 in well under a second, but a growing share of calls now resolve to `jsonrpc_err -32046 Cannot fulfill request` rather than a usable block, reliability is measured by `rpc_call_total{result=\"ok\"} / rpc_call_total` rather than HTTP status alone." + - "{{worst_name}} trails at {{worst_p50}} on the active tab. On a free public RPC the gap between leader and laggard is rarely about raw infrastructure speed; it is usually about how heavily a popular free endpoint is currently being hammered by the rest of the public, with no rate-limit budget to keep tail latency bounded." faq: - q: "What is the fastest free public RPC right now?" - a: "The question is per chain because several providers are single-chain by design (Base official, Binance, Arbitrum Foundation, Optimism Foundation, Avalanche) and a cross-chain aggregate mechanically rewards whichever single-chain endpoint happens to be fastest on its one chain. Current per-chain leaders. Ethereum {{best_name:chain:ethereum}} at {{best_p50:chain:ethereum}}, Base {{best_name:chain:base}} at {{best_p50:chain:base}}, BNB Chain {{best_name:chain:bnb}} at {{best_p50:chain:bnb}}, Arbitrum {{best_name:chain:arbitrum}} at {{best_p50:chain:arbitrum}}. The leaderboard re-sorts every 15 seconds against fresh Prometheus samples averaged across us-east, eu-west and sgp probes. Switch the chain tab to see the leader on the network your product runs on." + a: "{{best_name}} currently leads the active chain tab at {{best_p50}} (p50, 24 h) across {{count}} measured providers. The leaderboard re-sorts every 15 seconds against fresh Prometheus samples, so the answer reflects the last 24 hours of measured `eth_blockNumber` round-trip latency from eu-west, not a marketing-page claim. Switch the chain tab (10 EVM chains: Ethereum, Polygon, Arbitrum, Optimism, Base, BNB, Avalanche, Linea, Scroll, Mantle, or All) to see the leader on the network your product runs on." - q: "Which public RPCs work without an API key in 2026?" a: "15 audited providers across 10 EVM chains. Universal multi-chain (work on 4+ chains): PublicNode, dRPC, 1RPC, Tenderly Gateway (`gateway.tenderly.co/public/`), Nodies (POKT successor at `*-pokt.nodies.app`). Ethereum-specific or limited footprint: MeowRPC (ETH + Arbitrum only since 2025), Flashbots Protect, Cloudflare (read-degraded), Lava Network (ETH + Arbitrum no-key, other chains require key), Merkle (Base + BSC stable, ETH locked-out by Cloudflare). Chain-official foundation RPCs: Arbitrum (`arb1.arbitrum.io/rpc`), Optimism (`mainnet.optimism.io`), Base (`mainnet.base.org`), Avalanche (`api.avax.network`), BNB (`bsc-dataseed1.binance.org`). Excluded: Ankr (key-gated), gateway.fm (29 req/IP), LlamaRPC / BlockPI / OmniaTech (Cloudflare 521 region-blocked), Alchemy demo (rate-limited dead), NodeReal / GetBlock / Chainstack (key-gated)." - q: "Why is Cloudflare-eth returning errors?" @@ -88,11 +80,11 @@ faq: - q: "Which free RPC supports Ethereum archive node calls?" a: "Most free public RPCs are state-pruned, so `eth_getBalance` at block (head, 5,000,000) returns an error rather than the historical balance. This benchmark probes five depths (300, 7,200, 216,000, 1,296,000, 5,000,000 blocks) every five minutes and exposes a gauge per provider per depth. The page surfaces a per-provider archive-depth badge: a green tick at the 5M tier means full historical state is available for free without a key. Anything pruned at 7200 confirms the endpoint is on a Geth default config and only serves the last ~24 hours." - q: "How is RPC latency measured on OpenChainBench?" - a: "The harness issues a single `eth_blockNumber` JSON-RPC POST every 15 seconds against each (provider, chain) pair from each of 3 regions (us-east, eu-west, sgp), using the same plain HTTP client for every endpoint. Wall-clock delta around the round-trip is recorded with millisecond precision and pushed to both a gauge and a histogram. p50/p90/p99 are computed via Prometheus `quantile_over_time` over the last 24 hours. Stale-head detection compares each response against the cross-provider tip and flags anything more than 20 blocks behind as `stale`, so a dead endpoint stuck on yesterday's block cannot rank as the fastest." + a: "The harness issues a single `eth_blockNumber` JSON-RPC POST every 15 seconds against each (provider, chain) pair from eu-west, using the same plain HTTP client for every endpoint. Wall-clock delta around the round-trip is recorded with millisecond precision and pushed to both a gauge and a histogram. p50/p90/p99 are computed via Prometheus `quantile_over_time` over the last 24 hours. Stale-head detection compares each response against the cross-provider tip and flags anything more than 20 blocks behind as `stale`, so a dead endpoint stuck on yesterday's block cannot rank as the fastest." - q: "Are public RPCs production-grade for a dapp?" a: "Read the success-rate column before deciding. A median latency under 100 ms is irrelevant if the endpoint silently returns a JSON-RPC error 5% of the time or stalls during an L1 reorg. Free public RPCs share rate-limit budgets with the entire internet and have no SLA. They are good for read-heavy demos, local development and fallback paths; production dapps usually graduate to a keyed tier (Alchemy, QuickNode, Infura) for `eth_sendRawTransaction`, websocket subscriptions and archive queries beyond Geth's pruned cap. This benchmark measures the no-key tier specifically because that is the unmeasured part of the market." -source: https://github.com/ChainBench/OpenChainBench/tree/main/harnesses/rpc-capabilities +source: https://github.com/OpenChainBench/OpenChainBench/tree/main/harnesses/rpc-capabilities prometheus: window: 24h @@ -113,16 +105,6 @@ dimensions: - { value: linea, label: Linea } - { value: scroll, label: Scroll } - { value: mantle, label: Mantle } - # Region values are the raw harness labels (REGION env on each Railway - # service: us-east / eu-west / sgp). Selecting one at the top of the - # page re-fetches all queries with `region="X"` injected — headline - # numbers + ranked-bar + chart all flip to that region. "All" leaves - # the queries unscoped, falling back to the cross-region average. - region: - - { value: all, label: All regions } - - { value: us-east, label: US-East } - - { value: eu-west, label: EU-West } - - { value: sgp, label: Singapore } # Real metrics emitted by the rpc-capabilities harness: # rpc_latency_milliseconds{provider, chain} gauge @@ -141,344 +123,194 @@ providers: - slug: publicnode name: PublicNode tag: Allnodes-operated, 70+ chains, archive on most - formula: "50th percentile over 24h of client-side round-trip latency (ms) for a single `eth_blockNumber` POST sent every 15s from 3 regions (us-east + eu-west + sgp) to PublicNode's no-key endpoint." + formula: "50th percentile over 24h of client-side round-trip latency (ms) for a single `eth_blockNumber` POST sent every 15s from eu-west to PublicNode's no-key endpoint." queries: - p50: avg(quantile_over_time(0.50, rpc_latency_milliseconds{provider="publicnode"}[24h])) - p90: avg(quantile_over_time(0.90, rpc_latency_milliseconds{provider="publicnode"}[24h])) - p99: avg(quantile_over_time(0.99, rpc_latency_milliseconds{provider="publicnode"}[24h])) - mean: avg(avg_over_time(rpc_latency_milliseconds{provider="publicnode"}[24h])) + p50: quantile_over_time(0.50, rpc_latency_milliseconds{provider="publicnode"}[24h]) + p90: quantile_over_time(0.90, rpc_latency_milliseconds{provider="publicnode"}[24h]) + p99: quantile_over_time(0.99, rpc_latency_milliseconds{provider="publicnode"}[24h]) + mean: avg_over_time(rpc_latency_milliseconds{provider="publicnode"}[24h]) success: sum(rate(rpc_call_total{provider="publicnode", result="ok"}[24h])) / sum(rate(rpc_call_total{provider="publicnode"}[24h])) sample_size: sum(increase(rpc_call_total{provider="publicnode"}[24h])) - series: avg(avg_over_time(rpc_latency_milliseconds{provider="publicnode"}[1h])) - regions: - - region: us-east - p50: quantile_over_time(0.50, rpc_latency_milliseconds{provider="publicnode", region="us-east"}[24h]) - series: avg_over_time(rpc_latency_milliseconds{provider="publicnode", region="us-east"}[1h]) - - region: eu-west - p50: quantile_over_time(0.50, rpc_latency_milliseconds{provider="publicnode", region="eu-west"}[24h]) - series: avg_over_time(rpc_latency_milliseconds{provider="publicnode", region="eu-west"}[1h]) - - region: ap-southeast - p50: quantile_over_time(0.50, rpc_latency_milliseconds{provider="publicnode", region="sgp"}[24h]) - series: avg_over_time(rpc_latency_milliseconds{provider="publicnode", region="sgp"}[1h]) + series: avg_over_time(rpc_latency_milliseconds{provider="publicnode"}[1h]) - slug: drpc name: dRPC tag: Decentralized RPC mesh, consensus-checked - formula: "50th percentile over 24h of client-side round-trip latency (ms) for a single `eth_blockNumber` POST sent every 15s from 3 regions (us-east + eu-west + sgp) to dRPC's decentralized mesh." + formula: "50th percentile over 24h of client-side round-trip latency (ms) for a single `eth_blockNumber` POST sent every 15s from eu-west to dRPC's decentralized mesh." queries: - p50: avg(quantile_over_time(0.50, rpc_latency_milliseconds{provider="drpc"}[24h])) - p90: avg(quantile_over_time(0.90, rpc_latency_milliseconds{provider="drpc"}[24h])) - p99: avg(quantile_over_time(0.99, rpc_latency_milliseconds{provider="drpc"}[24h])) - mean: avg(avg_over_time(rpc_latency_milliseconds{provider="drpc"}[24h])) + p50: quantile_over_time(0.50, rpc_latency_milliseconds{provider="drpc"}[24h]) + p90: quantile_over_time(0.90, rpc_latency_milliseconds{provider="drpc"}[24h]) + p99: quantile_over_time(0.99, rpc_latency_milliseconds{provider="drpc"}[24h]) + mean: avg_over_time(rpc_latency_milliseconds{provider="drpc"}[24h]) success: sum(rate(rpc_call_total{provider="drpc", result="ok"}[24h])) / sum(rate(rpc_call_total{provider="drpc"}[24h])) sample_size: sum(increase(rpc_call_total{provider="drpc"}[24h])) - series: avg(avg_over_time(rpc_latency_milliseconds{provider="drpc"}[1h])) - regions: - - region: us-east - p50: quantile_over_time(0.50, rpc_latency_milliseconds{provider="drpc", region="us-east"}[24h]) - series: avg_over_time(rpc_latency_milliseconds{provider="drpc", region="us-east"}[1h]) - - region: eu-west - p50: quantile_over_time(0.50, rpc_latency_milliseconds{provider="drpc", region="eu-west"}[24h]) - series: avg_over_time(rpc_latency_milliseconds{provider="drpc", region="eu-west"}[1h]) - - region: ap-southeast - p50: quantile_over_time(0.50, rpc_latency_milliseconds{provider="drpc", region="sgp"}[24h]) - series: avg_over_time(rpc_latency_milliseconds{provider="drpc", region="sgp"}[1h]) + series: avg_over_time(rpc_latency_milliseconds{provider="drpc"}[1h]) - slug: 1rpc name: 1RPC tag: Privacy-preserving gateway by Automata Network - formula: "50th percentile over 24h of client-side round-trip latency (ms) for a single `eth_blockNumber` POST sent every 15s from 3 regions (us-east + eu-west + sgp) to 1RPC's Automata gateway." + formula: "50th percentile over 24h of client-side round-trip latency (ms) for a single `eth_blockNumber` POST sent every 15s from eu-west to 1RPC's Automata gateway." queries: - p50: avg(quantile_over_time(0.50, rpc_latency_milliseconds{provider="1rpc"}[24h])) - p90: avg(quantile_over_time(0.90, rpc_latency_milliseconds{provider="1rpc"}[24h])) - p99: avg(quantile_over_time(0.99, rpc_latency_milliseconds{provider="1rpc"}[24h])) - mean: avg(avg_over_time(rpc_latency_milliseconds{provider="1rpc"}[24h])) + p50: quantile_over_time(0.50, rpc_latency_milliseconds{provider="1rpc"}[24h]) + p90: quantile_over_time(0.90, rpc_latency_milliseconds{provider="1rpc"}[24h]) + p99: quantile_over_time(0.99, rpc_latency_milliseconds{provider="1rpc"}[24h]) + mean: avg_over_time(rpc_latency_milliseconds{provider="1rpc"}[24h]) success: sum(rate(rpc_call_total{provider="1rpc", result="ok"}[24h])) / sum(rate(rpc_call_total{provider="1rpc"}[24h])) sample_size: sum(increase(rpc_call_total{provider="1rpc"}[24h])) - series: avg(avg_over_time(rpc_latency_milliseconds{provider="1rpc"}[1h])) - regions: - - region: us-east - p50: quantile_over_time(0.50, rpc_latency_milliseconds{provider="1rpc", region="us-east"}[24h]) - series: avg_over_time(rpc_latency_milliseconds{provider="1rpc", region="us-east"}[1h]) - - region: eu-west - p50: quantile_over_time(0.50, rpc_latency_milliseconds{provider="1rpc", region="eu-west"}[24h]) - series: avg_over_time(rpc_latency_milliseconds{provider="1rpc", region="eu-west"}[1h]) - - region: ap-southeast - p50: quantile_over_time(0.50, rpc_latency_milliseconds{provider="1rpc", region="sgp"}[24h]) - series: avg_over_time(rpc_latency_milliseconds{provider="1rpc", region="sgp"}[1h]) + series: avg_over_time(rpc_latency_milliseconds{provider="1rpc"}[1h]) - slug: meowrpc name: MeowRPC tag: Free public RPC, no registration - formula: "50th percentile over 24h of client-side round-trip latency (ms) for a single `eth_blockNumber` POST sent every 15s from 3 regions (us-east + eu-west + sgp) to MeowRPC's no-key endpoint." + formula: "50th percentile over 24h of client-side round-trip latency (ms) for a single `eth_blockNumber` POST sent every 15s from eu-west to MeowRPC's no-key endpoint." queries: - p50: avg(quantile_over_time(0.50, rpc_latency_milliseconds{provider="meowrpc"}[24h])) - p90: avg(quantile_over_time(0.90, rpc_latency_milliseconds{provider="meowrpc"}[24h])) - p99: avg(quantile_over_time(0.99, rpc_latency_milliseconds{provider="meowrpc"}[24h])) - mean: avg(avg_over_time(rpc_latency_milliseconds{provider="meowrpc"}[24h])) + p50: quantile_over_time(0.50, rpc_latency_milliseconds{provider="meowrpc"}[24h]) + p90: quantile_over_time(0.90, rpc_latency_milliseconds{provider="meowrpc"}[24h]) + p99: quantile_over_time(0.99, rpc_latency_milliseconds{provider="meowrpc"}[24h]) + mean: avg_over_time(rpc_latency_milliseconds{provider="meowrpc"}[24h]) success: sum(rate(rpc_call_total{provider="meowrpc", result="ok"}[24h])) / sum(rate(rpc_call_total{provider="meowrpc"}[24h])) sample_size: sum(increase(rpc_call_total{provider="meowrpc"}[24h])) - series: avg(avg_over_time(rpc_latency_milliseconds{provider="meowrpc"}[1h])) - regions: - - region: us-east - p50: quantile_over_time(0.50, rpc_latency_milliseconds{provider="meowrpc", region="us-east"}[24h]) - series: avg_over_time(rpc_latency_milliseconds{provider="meowrpc", region="us-east"}[1h]) - - region: eu-west - p50: quantile_over_time(0.50, rpc_latency_milliseconds{provider="meowrpc", region="eu-west"}[24h]) - series: avg_over_time(rpc_latency_milliseconds{provider="meowrpc", region="eu-west"}[1h]) - - region: ap-southeast - p50: quantile_over_time(0.50, rpc_latency_milliseconds{provider="meowrpc", region="sgp"}[24h]) - series: avg_over_time(rpc_latency_milliseconds{provider="meowrpc", region="sgp"}[1h]) + series: avg_over_time(rpc_latency_milliseconds{provider="meowrpc"}[1h]) - slug: flashbots - name: Flashbots + name: Flashbots Protect tag: Private-mempool RPC, anti-sandwich - formula: "50th percentile over 24h of client-side round-trip latency (ms) for a single `eth_blockNumber` POST sent every 15s from 3 regions (us-east + eu-west + sgp) to the Flashbots Protect read proxy." + formula: "50th percentile over 24h of client-side round-trip latency (ms) for a single `eth_blockNumber` POST sent every 15s from eu-west to the Flashbots Protect read proxy." queries: - p50: avg(quantile_over_time(0.50, rpc_latency_milliseconds{provider="flashbots"}[24h])) - p90: avg(quantile_over_time(0.90, rpc_latency_milliseconds{provider="flashbots"}[24h])) - p99: avg(quantile_over_time(0.99, rpc_latency_milliseconds{provider="flashbots"}[24h])) - mean: avg(avg_over_time(rpc_latency_milliseconds{provider="flashbots"}[24h])) + p50: quantile_over_time(0.50, rpc_latency_milliseconds{provider="flashbots"}[24h]) + p90: quantile_over_time(0.90, rpc_latency_milliseconds{provider="flashbots"}[24h]) + p99: quantile_over_time(0.99, rpc_latency_milliseconds{provider="flashbots"}[24h]) + mean: avg_over_time(rpc_latency_milliseconds{provider="flashbots"}[24h]) success: sum(rate(rpc_call_total{provider="flashbots", result="ok"}[24h])) / sum(rate(rpc_call_total{provider="flashbots"}[24h])) sample_size: sum(increase(rpc_call_total{provider="flashbots"}[24h])) - series: avg(avg_over_time(rpc_latency_milliseconds{provider="flashbots"}[1h])) - regions: - - region: us-east - p50: quantile_over_time(0.50, rpc_latency_milliseconds{provider="flashbots", region="us-east"}[24h]) - series: avg_over_time(rpc_latency_milliseconds{provider="flashbots", region="us-east"}[1h]) - - region: eu-west - p50: quantile_over_time(0.50, rpc_latency_milliseconds{provider="flashbots", region="eu-west"}[24h]) - series: avg_over_time(rpc_latency_milliseconds{provider="flashbots", region="eu-west"}[1h]) - - region: ap-southeast - p50: quantile_over_time(0.50, rpc_latency_milliseconds{provider="flashbots", region="sgp"}[24h]) - series: avg_over_time(rpc_latency_milliseconds{provider="flashbots", region="sgp"}[1h]) + series: avg_over_time(rpc_latency_milliseconds{provider="flashbots"}[1h]) - slug: cloudflare name: Cloudflare tag: Permissioned-mode for many JSON-RPC methods - formula: "50th percentile over 24h of client-side round-trip latency (ms) for a single `eth_blockNumber` POST sent every 15s from 3 regions (us-east + eu-west + sgp) to cloudflare-eth (check success column for jsonrpc_err share)." + formula: "50th percentile over 24h of client-side round-trip latency (ms) for a single `eth_blockNumber` POST sent every 15s from eu-west to cloudflare-eth (check success column for jsonrpc_err share)." queries: - p50: avg(quantile_over_time(0.50, rpc_latency_milliseconds{provider="cloudflare"}[24h])) - p90: avg(quantile_over_time(0.90, rpc_latency_milliseconds{provider="cloudflare"}[24h])) - p99: avg(quantile_over_time(0.99, rpc_latency_milliseconds{provider="cloudflare"}[24h])) - mean: avg(avg_over_time(rpc_latency_milliseconds{provider="cloudflare"}[24h])) + p50: quantile_over_time(0.50, rpc_latency_milliseconds{provider="cloudflare"}[24h]) + p90: quantile_over_time(0.90, rpc_latency_milliseconds{provider="cloudflare"}[24h]) + p99: quantile_over_time(0.99, rpc_latency_milliseconds{provider="cloudflare"}[24h]) + mean: avg_over_time(rpc_latency_milliseconds{provider="cloudflare"}[24h]) success: sum(rate(rpc_call_total{provider="cloudflare", result="ok"}[24h])) / sum(rate(rpc_call_total{provider="cloudflare"}[24h])) sample_size: sum(increase(rpc_call_total{provider="cloudflare"}[24h])) - series: avg(avg_over_time(rpc_latency_milliseconds{provider="cloudflare"}[1h])) - regions: - - region: us-east - p50: quantile_over_time(0.50, rpc_latency_milliseconds{provider="cloudflare", region="us-east"}[24h]) - series: avg_over_time(rpc_latency_milliseconds{provider="cloudflare", region="us-east"}[1h]) - - region: eu-west - p50: quantile_over_time(0.50, rpc_latency_milliseconds{provider="cloudflare", region="eu-west"}[24h]) - series: avg_over_time(rpc_latency_milliseconds{provider="cloudflare", region="eu-west"}[1h]) - - region: ap-southeast - p50: quantile_over_time(0.50, rpc_latency_milliseconds{provider="cloudflare", region="sgp"}[24h]) - series: avg_over_time(rpc_latency_milliseconds{provider="cloudflare", region="sgp"}[1h]) + series: avg_over_time(rpc_latency_milliseconds{provider="cloudflare"}[1h]) - slug: base-official - name: Base + name: Base Official tag: Coinbase-operated, Base mainnet RPC - formula: "50th percentile over 24h of client-side round-trip latency (ms) for a single `eth_blockNumber` POST sent every 15s from 3 regions (us-east + eu-west + sgp) to Coinbase's `mainnet.base.org` endpoint." + formula: "50th percentile over 24h of client-side round-trip latency (ms) for a single `eth_blockNumber` POST sent every 15s from eu-west to Coinbase's `mainnet.base.org` endpoint." queries: - p50: avg(quantile_over_time(0.50, rpc_latency_milliseconds{provider="base-official"}[24h])) - p90: avg(quantile_over_time(0.90, rpc_latency_milliseconds{provider="base-official"}[24h])) - p99: avg(quantile_over_time(0.99, rpc_latency_milliseconds{provider="base-official"}[24h])) - mean: avg(avg_over_time(rpc_latency_milliseconds{provider="base-official"}[24h])) + p50: quantile_over_time(0.50, rpc_latency_milliseconds{provider="base-official"}[24h]) + p90: quantile_over_time(0.90, rpc_latency_milliseconds{provider="base-official"}[24h]) + p99: quantile_over_time(0.99, rpc_latency_milliseconds{provider="base-official"}[24h]) + mean: avg_over_time(rpc_latency_milliseconds{provider="base-official"}[24h]) success: sum(rate(rpc_call_total{provider="base-official", result="ok"}[24h])) / sum(rate(rpc_call_total{provider="base-official"}[24h])) sample_size: sum(increase(rpc_call_total{provider="base-official"}[24h])) - series: avg(avg_over_time(rpc_latency_milliseconds{provider="base-official"}[1h])) - regions: - - region: us-east - p50: quantile_over_time(0.50, rpc_latency_milliseconds{provider="base-official", region="us-east"}[24h]) - series: avg_over_time(rpc_latency_milliseconds{provider="base-official", region="us-east"}[1h]) - - region: eu-west - p50: quantile_over_time(0.50, rpc_latency_milliseconds{provider="base-official", region="eu-west"}[24h]) - series: avg_over_time(rpc_latency_milliseconds{provider="base-official", region="eu-west"}[1h]) - - region: ap-southeast - p50: quantile_over_time(0.50, rpc_latency_milliseconds{provider="base-official", region="sgp"}[24h]) - series: avg_over_time(rpc_latency_milliseconds{provider="base-official", region="sgp"}[1h]) + series: avg_over_time(rpc_latency_milliseconds{provider="base-official"}[1h]) - slug: binance - name: Binance + name: Binance Official tag: BNB Chain dataseed RPC, Binance-operated - formula: "50th percentile over 24h of client-side round-trip latency (ms) for a single `eth_blockNumber` POST sent every 15s from 3 regions (us-east + eu-west + sgp) to Binance's `bsc-dataseed1.binance.org` endpoint." + formula: "50th percentile over 24h of client-side round-trip latency (ms) for a single `eth_blockNumber` POST sent every 15s from eu-west to Binance's `bsc-dataseed1.binance.org` endpoint." queries: - p50: avg(quantile_over_time(0.50, rpc_latency_milliseconds{provider="binance"}[24h])) - p90: avg(quantile_over_time(0.90, rpc_latency_milliseconds{provider="binance"}[24h])) - p99: avg(quantile_over_time(0.99, rpc_latency_milliseconds{provider="binance"}[24h])) - mean: avg(avg_over_time(rpc_latency_milliseconds{provider="binance"}[24h])) + p50: quantile_over_time(0.50, rpc_latency_milliseconds{provider="binance"}[24h]) + p90: quantile_over_time(0.90, rpc_latency_milliseconds{provider="binance"}[24h]) + p99: quantile_over_time(0.99, rpc_latency_milliseconds{provider="binance"}[24h]) + mean: avg_over_time(rpc_latency_milliseconds{provider="binance"}[24h]) success: sum(rate(rpc_call_total{provider="binance", result="ok"}[24h])) / sum(rate(rpc_call_total{provider="binance"}[24h])) sample_size: sum(increase(rpc_call_total{provider="binance"}[24h])) - series: avg(avg_over_time(rpc_latency_milliseconds{provider="binance"}[1h])) - regions: - - region: us-east - p50: quantile_over_time(0.50, rpc_latency_milliseconds{provider="binance", region="us-east"}[24h]) - series: avg_over_time(rpc_latency_milliseconds{provider="binance", region="us-east"}[1h]) - - region: eu-west - p50: quantile_over_time(0.50, rpc_latency_milliseconds{provider="binance", region="eu-west"}[24h]) - series: avg_over_time(rpc_latency_milliseconds{provider="binance", region="eu-west"}[1h]) - - region: ap-southeast - p50: quantile_over_time(0.50, rpc_latency_milliseconds{provider="binance", region="sgp"}[24h]) - series: avg_over_time(rpc_latency_milliseconds{provider="binance", region="sgp"}[1h]) + series: avg_over_time(rpc_latency_milliseconds{provider="binance"}[1h]) - slug: tenderly - name: Tenderly + name: Tenderly Gateway tag: Multi-chain public gateway, 9 chains, no key - formula: "50th percentile over 24h of client-side round-trip latency (ms) for a single `eth_blockNumber` POST sent every 15s from 3 regions (us-east + eu-west + sgp) to `gateway.tenderly.co/public/`." + formula: "50th percentile over 24h of client-side round-trip latency (ms) for a single `eth_blockNumber` POST sent every 15s from eu-west to `gateway.tenderly.co/public/`." queries: - p50: avg(quantile_over_time(0.50, rpc_latency_milliseconds{provider="tenderly"}[24h])) - p90: avg(quantile_over_time(0.90, rpc_latency_milliseconds{provider="tenderly"}[24h])) - p99: avg(quantile_over_time(0.99, rpc_latency_milliseconds{provider="tenderly"}[24h])) - mean: avg(avg_over_time(rpc_latency_milliseconds{provider="tenderly"}[24h])) + p50: quantile_over_time(0.50, rpc_latency_milliseconds{provider="tenderly"}[24h]) + p90: quantile_over_time(0.90, rpc_latency_milliseconds{provider="tenderly"}[24h]) + p99: quantile_over_time(0.99, rpc_latency_milliseconds{provider="tenderly"}[24h]) + mean: avg_over_time(rpc_latency_milliseconds{provider="tenderly"}[24h]) success: sum(rate(rpc_call_total{provider="tenderly", result="ok"}[24h])) / sum(rate(rpc_call_total{provider="tenderly"}[24h])) sample_size: sum(increase(rpc_call_total{provider="tenderly"}[24h])) - series: avg(avg_over_time(rpc_latency_milliseconds{provider="tenderly"}[1h])) - regions: - - region: us-east - p50: quantile_over_time(0.50, rpc_latency_milliseconds{provider="tenderly", region="us-east"}[24h]) - series: avg_over_time(rpc_latency_milliseconds{provider="tenderly", region="us-east"}[1h]) - - region: eu-west - p50: quantile_over_time(0.50, rpc_latency_milliseconds{provider="tenderly", region="eu-west"}[24h]) - series: avg_over_time(rpc_latency_milliseconds{provider="tenderly", region="eu-west"}[1h]) - - region: ap-southeast - p50: quantile_over_time(0.50, rpc_latency_milliseconds{provider="tenderly", region="sgp"}[24h]) - series: avg_over_time(rpc_latency_milliseconds{provider="tenderly", region="sgp"}[1h]) + series: avg_over_time(rpc_latency_milliseconds{provider="tenderly"}[1h]) - slug: nodies - name: Nodies + name: Nodies (POKT) tag: POKT Network's decentralized public RPC successor, 7+ chains - formula: "50th percentile over 24h of client-side round-trip latency (ms) for a single `eth_blockNumber` POST sent every 15s from 3 regions (us-east + eu-west + sgp) to Nodies' `*-pokt.nodies.app` endpoint." + formula: "50th percentile over 24h of client-side round-trip latency (ms) for a single `eth_blockNumber` POST sent every 15s from eu-west to Nodies' `*-pokt.nodies.app` endpoint." queries: - p50: avg(quantile_over_time(0.50, rpc_latency_milliseconds{provider="nodies"}[24h])) - p90: avg(quantile_over_time(0.90, rpc_latency_milliseconds{provider="nodies"}[24h])) - p99: avg(quantile_over_time(0.99, rpc_latency_milliseconds{provider="nodies"}[24h])) - mean: avg(avg_over_time(rpc_latency_milliseconds{provider="nodies"}[24h])) + p50: quantile_over_time(0.50, rpc_latency_milliseconds{provider="nodies"}[24h]) + p90: quantile_over_time(0.90, rpc_latency_milliseconds{provider="nodies"}[24h]) + p99: quantile_over_time(0.99, rpc_latency_milliseconds{provider="nodies"}[24h]) + mean: avg_over_time(rpc_latency_milliseconds{provider="nodies"}[24h]) success: sum(rate(rpc_call_total{provider="nodies", result="ok"}[24h])) / sum(rate(rpc_call_total{provider="nodies"}[24h])) sample_size: sum(increase(rpc_call_total{provider="nodies"}[24h])) - series: avg(avg_over_time(rpc_latency_milliseconds{provider="nodies"}[1h])) - regions: - - region: us-east - p50: quantile_over_time(0.50, rpc_latency_milliseconds{provider="nodies", region="us-east"}[24h]) - series: avg_over_time(rpc_latency_milliseconds{provider="nodies", region="us-east"}[1h]) - - region: eu-west - p50: quantile_over_time(0.50, rpc_latency_milliseconds{provider="nodies", region="eu-west"}[24h]) - series: avg_over_time(rpc_latency_milliseconds{provider="nodies", region="eu-west"}[1h]) - - region: ap-southeast - p50: quantile_over_time(0.50, rpc_latency_milliseconds{provider="nodies", region="sgp"}[24h]) - series: avg_over_time(rpc_latency_milliseconds{provider="nodies", region="sgp"}[1h]) + series: avg_over_time(rpc_latency_milliseconds{provider="nodies"}[1h]) - slug: lava - name: Lava + name: Lava Network tag: Decentralized permissionless RPC mesh (ETH + Arbitrum no-key) - formula: "50th percentile over 24h of client-side round-trip latency (ms) for a single `eth_blockNumber` POST sent every 15s from 3 regions (us-east + eu-west + sgp) to Lava Network's no-key mesh endpoint." + formula: "50th percentile over 24h of client-side round-trip latency (ms) for a single `eth_blockNumber` POST sent every 15s from eu-west to Lava Network's no-key mesh endpoint." queries: - p50: avg(quantile_over_time(0.50, rpc_latency_milliseconds{provider="lava"}[24h])) - p90: avg(quantile_over_time(0.90, rpc_latency_milliseconds{provider="lava"}[24h])) - p99: avg(quantile_over_time(0.99, rpc_latency_milliseconds{provider="lava"}[24h])) - mean: avg(avg_over_time(rpc_latency_milliseconds{provider="lava"}[24h])) + p50: quantile_over_time(0.50, rpc_latency_milliseconds{provider="lava"}[24h]) + p90: quantile_over_time(0.90, rpc_latency_milliseconds{provider="lava"}[24h]) + p99: quantile_over_time(0.99, rpc_latency_milliseconds{provider="lava"}[24h]) + mean: avg_over_time(rpc_latency_milliseconds{provider="lava"}[24h]) success: sum(rate(rpc_call_total{provider="lava", result="ok"}[24h])) / sum(rate(rpc_call_total{provider="lava"}[24h])) sample_size: sum(increase(rpc_call_total{provider="lava"}[24h])) - series: avg(avg_over_time(rpc_latency_milliseconds{provider="lava"}[1h])) - regions: - - region: us-east - p50: quantile_over_time(0.50, rpc_latency_milliseconds{provider="lava", region="us-east"}[24h]) - series: avg_over_time(rpc_latency_milliseconds{provider="lava", region="us-east"}[1h]) - - region: eu-west - p50: quantile_over_time(0.50, rpc_latency_milliseconds{provider="lava", region="eu-west"}[24h]) - series: avg_over_time(rpc_latency_milliseconds{provider="lava", region="eu-west"}[1h]) - - region: ap-southeast - p50: quantile_over_time(0.50, rpc_latency_milliseconds{provider="lava", region="sgp"}[24h]) - series: avg_over_time(rpc_latency_milliseconds{provider="lava", region="sgp"}[1h]) + series: avg_over_time(rpc_latency_milliseconds{provider="lava"}[1h]) - slug: merkle name: Merkle tag: Base + BSC public no-key gateway (Ethereum hit by Cloudflare 20-min lockout, excluded) - formula: "50th percentile over 24h of client-side round-trip latency (ms) for a single `eth_blockNumber` POST sent every 15s from 3 regions (us-east + eu-west + sgp) to Merkle's Base/BSC no-key gateway." + formula: "50th percentile over 24h of client-side round-trip latency (ms) for a single `eth_blockNumber` POST sent every 15s from eu-west to Merkle's Base/BSC no-key gateway." queries: - p50: avg(quantile_over_time(0.50, rpc_latency_milliseconds{provider="merkle"}[24h])) - p90: avg(quantile_over_time(0.90, rpc_latency_milliseconds{provider="merkle"}[24h])) - p99: avg(quantile_over_time(0.99, rpc_latency_milliseconds{provider="merkle"}[24h])) - mean: avg(avg_over_time(rpc_latency_milliseconds{provider="merkle"}[24h])) + p50: quantile_over_time(0.50, rpc_latency_milliseconds{provider="merkle"}[24h]) + p90: quantile_over_time(0.90, rpc_latency_milliseconds{provider="merkle"}[24h]) + p99: quantile_over_time(0.99, rpc_latency_milliseconds{provider="merkle"}[24h]) + mean: avg_over_time(rpc_latency_milliseconds{provider="merkle"}[24h]) success: sum(rate(rpc_call_total{provider="merkle", result="ok"}[24h])) / sum(rate(rpc_call_total{provider="merkle"}[24h])) sample_size: sum(increase(rpc_call_total{provider="merkle"}[24h])) - series: avg(avg_over_time(rpc_latency_milliseconds{provider="merkle"}[1h])) - regions: - - region: us-east - p50: quantile_over_time(0.50, rpc_latency_milliseconds{provider="merkle", region="us-east"}[24h]) - series: avg_over_time(rpc_latency_milliseconds{provider="merkle", region="us-east"}[1h]) - - region: eu-west - p50: quantile_over_time(0.50, rpc_latency_milliseconds{provider="merkle", region="eu-west"}[24h]) - series: avg_over_time(rpc_latency_milliseconds{provider="merkle", region="eu-west"}[1h]) - - region: ap-southeast - p50: quantile_over_time(0.50, rpc_latency_milliseconds{provider="merkle", region="sgp"}[24h]) - series: avg_over_time(rpc_latency_milliseconds{provider="merkle", region="sgp"}[1h]) + series: avg_over_time(rpc_latency_milliseconds{provider="merkle"}[1h]) - slug: arbitrum-official - name: Arbitrum + name: Arbitrum Official tag: Arbitrum Foundation public RPC, Arbitrum One only - formula: "50th percentile over 24h of client-side round-trip latency (ms) for a single `eth_blockNumber` POST sent every 15s from 3 regions (us-east + eu-west + sgp) to the Arbitrum Foundation's `arb1.arbitrum.io/rpc`." + formula: "50th percentile over 24h of client-side round-trip latency (ms) for a single `eth_blockNumber` POST sent every 15s from eu-west to the Arbitrum Foundation's `arb1.arbitrum.io/rpc`." queries: - p50: avg(quantile_over_time(0.50, rpc_latency_milliseconds{provider="arbitrum-official"}[24h])) - p90: avg(quantile_over_time(0.90, rpc_latency_milliseconds{provider="arbitrum-official"}[24h])) - p99: avg(quantile_over_time(0.99, rpc_latency_milliseconds{provider="arbitrum-official"}[24h])) - mean: avg(avg_over_time(rpc_latency_milliseconds{provider="arbitrum-official"}[24h])) + p50: quantile_over_time(0.50, rpc_latency_milliseconds{provider="arbitrum-official"}[24h]) + p90: quantile_over_time(0.90, rpc_latency_milliseconds{provider="arbitrum-official"}[24h]) + p99: quantile_over_time(0.99, rpc_latency_milliseconds{provider="arbitrum-official"}[24h]) + mean: avg_over_time(rpc_latency_milliseconds{provider="arbitrum-official"}[24h]) success: sum(rate(rpc_call_total{provider="arbitrum-official", result="ok"}[24h])) / sum(rate(rpc_call_total{provider="arbitrum-official"}[24h])) sample_size: sum(increase(rpc_call_total{provider="arbitrum-official"}[24h])) - series: avg(avg_over_time(rpc_latency_milliseconds{provider="arbitrum-official"}[1h])) - regions: - - region: us-east - p50: quantile_over_time(0.50, rpc_latency_milliseconds{provider="arbitrum-official", region="us-east"}[24h]) - series: avg_over_time(rpc_latency_milliseconds{provider="arbitrum-official", region="us-east"}[1h]) - - region: eu-west - p50: quantile_over_time(0.50, rpc_latency_milliseconds{provider="arbitrum-official", region="eu-west"}[24h]) - series: avg_over_time(rpc_latency_milliseconds{provider="arbitrum-official", region="eu-west"}[1h]) - - region: ap-southeast - p50: quantile_over_time(0.50, rpc_latency_milliseconds{provider="arbitrum-official", region="sgp"}[24h]) - series: avg_over_time(rpc_latency_milliseconds{provider="arbitrum-official", region="sgp"}[1h]) + series: avg_over_time(rpc_latency_milliseconds{provider="arbitrum-official"}[1h]) - slug: optimism-official - name: Optimism + name: Optimism Official tag: Optimism Foundation public RPC, Optimism mainnet only - formula: "50th percentile over 24h of client-side round-trip latency (ms) for a single `eth_blockNumber` POST sent every 15s from 3 regions (us-east + eu-west + sgp) to the Optimism Foundation's `mainnet.optimism.io`." + formula: "50th percentile over 24h of client-side round-trip latency (ms) for a single `eth_blockNumber` POST sent every 15s from eu-west to the Optimism Foundation's `mainnet.optimism.io`." queries: - p50: avg(quantile_over_time(0.50, rpc_latency_milliseconds{provider="optimism-official"}[24h])) - p90: avg(quantile_over_time(0.90, rpc_latency_milliseconds{provider="optimism-official"}[24h])) - p99: avg(quantile_over_time(0.99, rpc_latency_milliseconds{provider="optimism-official"}[24h])) - mean: avg(avg_over_time(rpc_latency_milliseconds{provider="optimism-official"}[24h])) + p50: quantile_over_time(0.50, rpc_latency_milliseconds{provider="optimism-official"}[24h]) + p90: quantile_over_time(0.90, rpc_latency_milliseconds{provider="optimism-official"}[24h]) + p99: quantile_over_time(0.99, rpc_latency_milliseconds{provider="optimism-official"}[24h]) + mean: avg_over_time(rpc_latency_milliseconds{provider="optimism-official"}[24h]) success: sum(rate(rpc_call_total{provider="optimism-official", result="ok"}[24h])) / sum(rate(rpc_call_total{provider="optimism-official"}[24h])) sample_size: sum(increase(rpc_call_total{provider="optimism-official"}[24h])) - series: avg(avg_over_time(rpc_latency_milliseconds{provider="optimism-official"}[1h])) - regions: - - region: us-east - p50: quantile_over_time(0.50, rpc_latency_milliseconds{provider="optimism-official", region="us-east"}[24h]) - series: avg_over_time(rpc_latency_milliseconds{provider="optimism-official", region="us-east"}[1h]) - - region: eu-west - p50: quantile_over_time(0.50, rpc_latency_milliseconds{provider="optimism-official", region="eu-west"}[24h]) - series: avg_over_time(rpc_latency_milliseconds{provider="optimism-official", region="eu-west"}[1h]) - - region: ap-southeast - p50: quantile_over_time(0.50, rpc_latency_milliseconds{provider="optimism-official", region="sgp"}[24h]) - series: avg_over_time(rpc_latency_milliseconds{provider="optimism-official", region="sgp"}[1h]) + series: avg_over_time(rpc_latency_milliseconds{provider="optimism-official"}[1h]) - slug: avalanche-official - name: Avalanche + name: Avalanche Official tag: Ava Labs C-Chain public RPC, Avalanche C-Chain only - formula: "50th percentile over 24h of client-side round-trip latency (ms) for a single `eth_blockNumber` POST sent every 15s from 3 regions (us-east + eu-west + sgp) to Ava Labs' `api.avax.network/ext/bc/C/rpc`." + formula: "50th percentile over 24h of client-side round-trip latency (ms) for a single `eth_blockNumber` POST sent every 15s from eu-west to Ava Labs' `api.avax.network/ext/bc/C/rpc`." queries: - p50: avg(quantile_over_time(0.50, rpc_latency_milliseconds{provider="avalanche-official"}[24h])) - p90: avg(quantile_over_time(0.90, rpc_latency_milliseconds{provider="avalanche-official"}[24h])) - p99: avg(quantile_over_time(0.99, rpc_latency_milliseconds{provider="avalanche-official"}[24h])) - mean: avg(avg_over_time(rpc_latency_milliseconds{provider="avalanche-official"}[24h])) + p50: quantile_over_time(0.50, rpc_latency_milliseconds{provider="avalanche-official"}[24h]) + p90: quantile_over_time(0.90, rpc_latency_milliseconds{provider="avalanche-official"}[24h]) + p99: quantile_over_time(0.99, rpc_latency_milliseconds{provider="avalanche-official"}[24h]) + mean: avg_over_time(rpc_latency_milliseconds{provider="avalanche-official"}[24h]) success: sum(rate(rpc_call_total{provider="avalanche-official", result="ok"}[24h])) / sum(rate(rpc_call_total{provider="avalanche-official"}[24h])) sample_size: sum(increase(rpc_call_total{provider="avalanche-official"}[24h])) - series: avg(avg_over_time(rpc_latency_milliseconds{provider="avalanche-official"}[1h])) - regions: - - region: us-east - p50: quantile_over_time(0.50, rpc_latency_milliseconds{provider="avalanche-official", region="us-east"}[24h]) - series: avg_over_time(rpc_latency_milliseconds{provider="avalanche-official", region="us-east"}[1h]) - - region: eu-west - p50: quantile_over_time(0.50, rpc_latency_milliseconds{provider="avalanche-official", region="eu-west"}[24h]) - series: avg_over_time(rpc_latency_milliseconds{provider="avalanche-official", region="eu-west"}[1h]) - - region: ap-southeast - p50: quantile_over_time(0.50, rpc_latency_milliseconds{provider="avalanche-official", region="sgp"}[24h]) - series: avg_over_time(rpc_latency_milliseconds{provider="avalanche-official", region="sgp"}[1h]) + series: avg_over_time(rpc_latency_milliseconds{provider="avalanche-official"}[1h]) diff --git a/benchmarks/solana-tx-landing.yml b/benchmarks/solana-tx-landing.yml index 567e2dd7..19fbbac0 100644 --- a/benchmarks/solana-tx-landing.yml +++ b/benchmarks/solana-tx-landing.yml @@ -92,7 +92,7 @@ faq: - q: "What about Syncro Sender and Slipstream?" a: "Syncro Sender (P2P.org) uses per-customer tip wallets that aren't publicly documented, every customer gets a private address. We can't enumerate them, so Syncro flow is invisible to this bench. Estimated share: small (Syncro launched in 2025 and hasn't disclosed adoption metrics). Slipstream is a router that calls the underlying senders' SDKs, its tx land via Jito/Nozomi/0slot tip wallets and are attributed to those services. So Slipstream-originated flow shows up correctly counted, just under the underlying service's name. If you specifically want to know 'what % uses Slipstream as the router', this bench can't answer that, Slipstream itself doesn't add an identifying memo." -source: https://github.com/ChainBench/OpenChainBench/tree/main/harnesses/solana-tx-landing +source: https://github.com/OpenChainBench/OpenChainBench/tree/main/harnesses/solana-tx-landing prometheus: window: 24h @@ -125,7 +125,7 @@ providers: series: sum(rate(solana_landing_tx_total{service="jito"}[5m])) - slug: helius-sender - name: Helius + name: Helius Sender tag: Dual-path fan-out (Jito + SWQoS staked connections), 7 regions formula: "Total count over the last 24h of confirmed mainnet txs that paid a tip to one of Helius Sender's 10 documented tip wallets, deduped via 50k-entry LRU." queries: @@ -151,7 +151,7 @@ providers: series: sum(rate(solana_landing_tx_total{service="nozomi"}[5m])) - slug: bloxroute - name: bloXroute + name: bloXroute Trader API tag: Multi-path BDN propagation, institutional flow formula: "Total count over the last 24h of confirmed mainnet txs that paid a tip to one of bloXroute's 17 `bLx`-prefixed tip wallets, deduped via 50k-entry LRU." queries: @@ -164,7 +164,7 @@ providers: series: sum(rate(solana_landing_tx_total{service="bloxroute"}[5m])) - slug: 0slot - name: 0slot + name: 0slot.trade tag: Premium QUIC leader-direct sender formula: "Total count over the last 24h of confirmed mainnet txs that paid a tip to one of 0slot.trade's 10 documented tip wallets, deduped via 50k-entry LRU." queries: @@ -190,7 +190,7 @@ providers: series: sum(rate(solana_landing_tx_total{service="nextblock"}[5m])) - slug: astralane - name: Astralane + name: Astralane Iris tag: Validator co-located, leader-schedule-aware routing formula: "Total count over the last 24h of confirmed mainnet txs that paid a tip to Astralane Iris's documented tip wallet, deduped via 50k-entry LRU." queries: diff --git a/benchmarks/stablecoin-peg-usdt-anchored.yml b/benchmarks/stablecoin-peg-usdt-anchored.yml index bf74d2c1..6ebb421a 100644 --- a/benchmarks/stablecoin-peg-usdt-anchored.yml +++ b/benchmarks/stablecoin-peg-usdt-anchored.yml @@ -88,7 +88,7 @@ faq: - q: "Which stable should I hold on Binance for the lowest rotation cost?" a: "{{best_name}} currently has the tightest pair at {{best_p50}} (p99 spread vs USDT, 24 h). The leaderboard re-sorts every minute. For inventory sizing, use p99 rather than p50, because the spread during a forced rebalance under stress is what determines actual cost, not the calm-minute median. Combine with the success-rate column and the fundamental reserve-risk story (which this bench does NOT capture) before committing meaningful inventory." -source: https://github.com/ChainBench/OpenChainBench/tree/main/harnesses/stablecoin-peg +source: https://github.com/OpenChainBench/OpenChainBench/tree/main/harnesses/stablecoin-peg prometheus: window: 24h diff --git a/benchmarks/stablecoin-peg.yml b/benchmarks/stablecoin-peg.yml index e92ed949..6f4bd736 100644 --- a/benchmarks/stablecoin-peg.yml +++ b/benchmarks/stablecoin-peg.yml @@ -86,7 +86,7 @@ faq: - q: "Why ignore CoinGecko or CoinMarketCap prices?" a: "Aggregator prices (CoinGecko, CoinMarketCap, DefiLlama) are themselves liquidity-weighted medians of the venues this benchmark already polls directly, refreshed every 1-5 minutes. Re-aggregating an aggregator adds latency, hides the venue-level cross-spread that actually matters during stress (USDC briefly $0.9978 on Kraken while $1.0003 on Coinbase), and inherits whatever venue selection the aggregator chose. The benchmark goes to the source venues directly so the cross-venue gap is visible and the depeg event flag fires within 5 minutes of the price actually breaking the band." -source: https://github.com/ChainBench/OpenChainBench/tree/main/harnesses/stablecoin-peg +source: https://github.com/OpenChainBench/OpenChainBench/tree/main/harnesses/stablecoin-peg prometheus: window: 24h diff --git a/benchmarks/validator-yield.yml b/benchmarks/validator-yield.yml index 4099e4e6..4cb09cd5 100644 --- a/benchmarks/validator-yield.yml +++ b/benchmarks/validator-yield.yml @@ -100,7 +100,7 @@ faq: - q: "Why cap Solana at the top 200 validators?" a: "Prometheus cardinality budget. The full Solana validator set is ~3000; tracking all of them across `net_yield`, `gross_yield`, `mev_share`, `commission`, `uptime`, `stake_usd`, `jailed` would land ~21k label combinations on the OCB Prom, vs ~1.6k for the top 200. The top 200 by activated stake represent ~90% of staked SOL by USD value, so the chain median is representative of where real delegated stake sits, not skewed by the long tail of <1k-SOL validators that have negligible delegate base. The cap is a knob, if Prom capacity grows, it lifts to 500 or 1000." -source: https://github.com/ChainBench/OpenChainBench/tree/main/harnesses/validator-yield +source: https://github.com/OpenChainBench/OpenChainBench/tree/main/harnesses/validator-yield prometheus: window: 24h diff --git a/benchmarks/wallet-labels-coverage.yml b/benchmarks/wallet-labels-coverage.yml index d6d95d3d..930fcfd5 100644 --- a/benchmarks/wallet-labels-coverage.yml +++ b/benchmarks/wallet-labels-coverage.yml @@ -67,7 +67,7 @@ faq: - q: "What does 'wallet labeling' mean in a crypto API?" a: "A wallet labeling API takes an address and returns an entity name. The CEX it belongs to (`Binance hot wallet 14`), the protocol (`Uniswap V3 router`), the multisig owner (`Safe: foundation treasury`), the sanctioned status (`OFAC SDN`), or a public-figure tag (`Vitalik Buterin`). Generic categorical labels like `EOA`, `Contract`, `Wallet` are not considered a hit on this benchmark because they carry no entity signal." - q: "Is Mobula's labels API better than Moralis or Helius?" - a: "It depends on the chain. {{name:mobula}} is a universal provider audited on every chain it advertises and currently returns {{p50:mobula}} on the active tab. {{name:helius}} is Solana-only and dominates that chain because its label graph is curated against native Solana programs. {{name:moralis}} is EVM-centric and trails on TON, Stellar, XRP and Bitcoin. The per-chain tabs are the honest comparison." + a: "It depends on the chain. {{name:mobula}} is a universal provider audited on every chain it advertises and currently returns {{p50:mobula}} on the active tab. {{name:helius}} is Solana-only and dominates that chain because its label graph is curated against native Solana programs. {{name:moralis}} is EVM-centric and trails on TON, Stellar, XRP and Bitcoin. The per-chain tabs are the honest comparison; the All chains tab is the universal-coverage story." - q: "What is the alternative to Arkham or Nansen for builders?" a: "Arkham and Nansen own the consumer visualization layer (browse-the-web-of-onchain-money). The builder side of the question, the API integrated under the hood by wallets, portfolio trackers and AML flows, lives elsewhere. Mobula, Helius, Moralis, Blockscout, OLI, TonAPI, StellarExpert, XRPScan and WalletExplorer are the labeling APIs benchmarked here. Pick the one whose coverage matches the chains your product touches and whose response shape fits your integration latency budget." - q: "How does OpenChainBench measure wallet label coverage?" @@ -75,7 +75,7 @@ faq: - q: "Which wallet labeling API has the best Solana coverage?" a: "{{name:helius}} returns {{p50:helius}} on Solana. Chain-specialists dominate their home chain because their label graph is curated against native protocols (Jito stake pools, Jupiter routers, Pump.fun creators, Magic Eden marketplace programs) rather than translated from an EVM-shaped schema. Universal providers (Mobula, Moralis) are also audited on Solana, but switch the chain tab to Solana to see the direct comparison rather than the cross-chain average." -source: https://github.com/ChainBench/OpenChainBench/tree/main/harnesses/wallet-labels +source: https://github.com/OpenChainBench/OpenChainBench/tree/main/harnesses/wallet-labels prometheus: window: 24h @@ -86,6 +86,7 @@ prometheus: # value `all` skips the filter, aggregate over every chain at once. dimensions: chain: + - { value: all, label: All chains } - { value: ethereum, label: Ethereum } - { value: solana, label: Solana } - { value: bnb, label: BNB Chain } diff --git a/docs/methodology/bridge-revenue.md b/docs/methodology/bridge-revenue.md deleted file mode 100644 index 4232f934..00000000 --- a/docs/methodology/bridge-revenue.md +++ /dev/null @@ -1,151 +0,0 @@ -# Methodology - Cross-chain bridge implied protocol revenue (Relay sub-methodology) - -> **Pre-registered methodology.** Pinned before any external party is invited to use the bench number for due diligence, deal terms, or commentary. Changes ship as public PRs with a 14-day comment window. Disputes go through public GitHub issues. -> -> **Version :** v1.0 - first commit 2026-05-23. Bench № 028 (cross-chain bridge implied protocol revenue). This file documents the Relay.link sub-methodology; additional bridges (Across, Socket, deBridge) land as sibling sections once their harnesses ship. - ---- - -## 1. Question we answer - -For Relay.link, the cross-chain swap routing protocol, **what is the smallest upper bound on the protocol revenue retained by Relay plus its solver network**, computed directly from the public swap stream over rolling 24-hour, 7-day, and 30-day windows. - -The bench does **not** answer "what is Relay's bottom-line revenue net of solver share". That requires private rebate-accounting data Relay has never published. The bench answers "what is the ceiling, computed from the public data, on what Relay plus solvers collectively retain". Apply your own solver-share assumption to the headline if you need a Relay-only number. - -## 2. Scope - -| Dimension | Value | -|---|---| -| Protocol measured | Relay.link (single, no comparison set) | -| Data source | Relay.link public swap API | -| Poll cadence | 60 s | -| Windows | 24h, 7d, 30d (rolling) | -| USD reference | CoinGecko or equivalent at swap timestamp | -| Confidence | Status = `success` swaps only; pending / failed excluded | - -Adding a comparison set (Across, Stargate, deBridge, etc.) would require each protocol to expose a similarly detailed swap API. As of v1.0, Relay is the only protocol in the bench. The page is deliberately framed as a single-protocol revenue tracker, not a comparative leaderboard. - -## 3. Margin definition (exact) - -For each successful swap: - -``` -per_swap_margin_usd = - input_usd - - output_usd - - gas_usd - - external_app_fees_usd -``` - -Where: - -- `input_usd` = `input_token_amount * usd_price(input_token, swap_timestamp)` -- `output_usd` = `output_token_amount * usd_price(output_token, swap_timestamp)` -- `gas_usd` = `gas_used * gas_price * usd_price(chain_native_token, swap_timestamp)` summed across every chain leg the swap touches -- `external_app_fees_usd` = sum of any frontend / referrer fees the swap payload discloses - -USD price is read at the swap timestamp, not at poll time, so a price move between swap and poll does not bias the margin. - -## 4. Window aggregation - -`relay_revenue_usd{window="24h"}` = sum of `per_swap_margin_usd` across every successful, priced swap completed in the last 24 hours. - -Same for `window="7d"` and `window="30d"`. The windows are rolling, not calendar-aligned, so the 24h sum at time T covers (T - 24h, T]. - -`relay_volume_usd` and `relay_swap_count` follow the same window semantics. - -`relay_take_rate_bps` = `(relay_revenue_usd{window="24h"} / relay_volume_usd{window="24h"}) * 10000`. Reported on the 24-hour window as the most recent operational signal. The 7d and 30d versions are derivable from the published gauges but not surfaced as their own gauge in v1.0. - -## 5. Excluded swaps - -- **Status not `success`.** Pending or failed swaps are not counted. They are tracked separately by the harness for operational visibility but do not appear in the margin sum. -- **Unpriced legs.** If any token in the swap (input, output, or gas-token leg) has no USD reference at swap time, the swap is excluded from the margin and volume sums and incremented into `relay_swaps_unpriced_total`. Successfully priced swaps go into `relay_swaps_priced_total`. The success column on the bench page is `priced / (priced + unpriced)`, a data-quality ratio. - -The harness logs every excluded swap with reason so methodology audits can verify the exclusion rate is reasonable. - -## 6. Why margin is an upper bound on Relay revenue - -Relay shares revenue with its solver network through arrangements the public API does not break out. Per-swap margin captures what Relay AND its solver network collectively retain. Without access to internal rebate accounting, the bench cannot decompose the split. The headline is therefore the smallest upper bound consistent with the public data; the lower bound is open. - -Public disclosures from comparable intent / settlement protocols (CowSwap, 1inch Fusion, UniswapX) suggest solver-share fractions in the 30 % to 70 % range depending on intent design. A reader building a Relay P&L model should pick a number in that range and apply it to the headline as `relay_only_revenue ≈ headline * (1 - solver_share)`. - -## 7. Cross-validation expected band - -Public disclosures (Relay public communications, on-chain volume trackers, comparable cross-chain protocol disclosures) put Relay daily volume at **$80M to $150M per day**. - -Industry-standard cross-chain take rates cluster at **1 to 5 basis points blended**. - -Multiplying the two ranges yields an expected protocol-revenue band of **$20k to $100k per day**, or **$0.75M to $2.5M per month**. - -The live bench number is expected to fall inside this band. Meaningful deviation is either: -1. A data-quality issue (priced-swap ratio dropping, gas-estimation drift, undisclosed app fees rising, API change), -2. A regime change in Relay's volume or take rate worth investigating, -3. An error in the cross-validation assumptions that needs documenting. - -The methodology section flags case 1 via the priced ratio and last-poll-timestamp gauges. Cases 2 and 3 are open research questions resolved through GitHub issues. - -## 8. Metrics (Prometheus, exposed at `:2112/metrics`) - -``` -relay_revenue_usd{window} gauge # window: 24h | 7d | 30d -relay_volume_usd{window} gauge # window: 24h | 7d | 30d -relay_swap_count{window} gauge # window: 24h | 7d | 30d -relay_take_rate_bps gauge # 24h window only -relay_swaps_priced_total counter # cumulative since harness start -relay_swaps_unpriced_total counter # cumulative since harness start -relay_last_poll_timestamp_seconds gauge # Unix timestamp of last successful poll -``` - -Label semantics: -- `window` ∈ {24h, 7d, 30d} - -## 9. Bench page column mapping - -The OpenChainBench leaderboard convention is p50 / p90 / p99 of a latency-like metric. For a revenue gauge there is no native percentile interpretation, so the three slots are repurposed: - -- `p50` ← `relay_revenue_usd{window="24h"}` (latest 24h window) -- `p90` ← `relay_revenue_usd{window="7d"}` (rolling 7d sum) -- `p99` ← `relay_revenue_usd{window="30d"}` (rolling 30d sum) -- `mean` ← `relay_revenue_usd{window="7d"} / 7` (daily average over 7d) -- `series` ← `relay_revenue_usd{window="24h"}` (chart, evolves over time) -- `sample_size` ← `relay_swap_count{window="24h"}` -- `success` ← `relay_swaps_priced_total / (relay_swaps_priced_total + relay_swaps_unpriced_total)` (data-quality ratio, not service-uptime ratio) - -This mapping is explicit on the bench page FAQ so readers do not misread the columns as actual percentiles. - -## 10. Versioning rules - -1. **Any** change to §3 (margin definition), §4 (window aggregation), §5 (excluded swaps), or §8 (metric names) ships as a public PR against this file with a 14-day comment window. -2. Adding a comparison protocol (e.g. Across, Stargate) requires a PR that extends §2 + §8 to cover the new protocol's swap source and is announced on the OpenChainBench blog with a 14-day window. -3. Pricing-source changes (CoinGecko to a different feed) require a PR with a side-by-side reconciliation showing the headline delta across at least one rolling 7-day window. -4. Solver-share decomposition (moving from upper-bound headline to a "Relay only" net headline) is a major version bump (v1 → v2) with a 30-day shadow-run period publishing both old and new metric series in parallel. - -## 11. Reproducibility - -The Relay sub-harness currently lives in the private `mobula-api/miniapps/relay-link-revenue/` tree (Go) — the bench spec self-links to its YAML for now and the harness is on the backlog to port to the public OCB repo. Anyone with the Relay.link public API endpoint and a USD price source can reproduce the metrics by running their own implementation against the published methodology. The bench does not rely on any internal Mobula service for measurement. - -Anyone replicating the bench from a different USD-price source will see different absolute numbers (CoinGecko vs. Pyth vs. on-chain DEX price will disagree on long-tail tokens) but should see the same trend over a rolling 7-day window. Discrepancies of more than ~10 % in the 7d revenue sum between independent replications should be filed as GitHub issues with the price-source diff attached. - -## 12. Limitations (explicit) - -- **Upper bound only.** The headline is what Relay plus solvers collectively retain, not Relay's own revenue net of solver rebates. See §6. -- **Unpriced swaps reduce coverage.** Long-tail tokens without a USD reference at swap time drop out of the margin sum. The priced ratio (`success` column) makes this visible; readers should mentally scale the headline by `1 / priced_ratio` for an order-of-magnitude correction if needed. -- **Gas estimation drift.** `gas_used * gas_price` is read from the chain, but the USD conversion uses the swap-time native-token price, which can lag on volatile minutes. The error is bounded by the chain-native-token volatility over the swap interval (typically seconds) and is small relative to the per-swap margin. -- **External app fees only as disclosed.** If a frontend takes an undisclosed cut before the swap reaches Relay's API, that cut is not subtracted and the headline overestimates Relay+solver retention. The bench cannot see undisclosed fees by definition. -- **No comparison set in v1.0.** This is a single-protocol tracker. A future PR may add comparable cross-chain protocols once their public APIs expose enough detail to replicate the methodology. -- **Status field trust.** The bench trusts the Relay API's `status = "success"` field. A swap reported as success that actually failed on chain would be miscounted. The harness does not currently double-check status against on-chain state, this is a planned v1.1 hardening. - -## 13. Sponsor independence - -Sponsorship contracts (when present) follow the standard OpenChainBench public template: - -- Sponsors fund operations and receive newsletter visibility, case studies, integration support. Never methodology influence, advance results, or selective publication. -- The non-suppression clause grants the sponsor a single remedy for unfavorable results: terminate the agreement and receive a pro-rata refund. Never edit, delay, or selectively publish. -- Methodology changes (this document) ship as PRs and are independent of sponsor contracts. -- Relay.link is not currently a sponsor and has no editorial influence on this bench. - -## 14. Change log - -| Version | Date | Change | -|---|---|---| -| v1.0 | 2026-05-23 | Initial pre-registration. Single-protocol scope (Relay only), 24h / 7d / 30d windows, CoinGecko USD reference, 60 s poll cadence, upper-bound margin definition with explicit solver-share disclosure. | diff --git a/docs/walkthrough.md b/docs/walkthrough.md index d054f58b..b69e42fe 100644 --- a/docs/walkthrough.md +++ b/docs/walkthrough.md @@ -12,7 +12,7 @@ The whole journey takes them roughly **3-4 hours of focused work**, spread over ## Phase 1. Align (Day 0, ~30 min) -Alex opens an issue with the [📊 Propose a benchmark](https://github.com/ChainBench/OpenChainBench/issues/new?template=new-benchmark.yml) template. They fill in: +Alex opens an issue with the [📊 Propose a benchmark](https://github.com/OpenChainBench/OpenChainBench/issues/new?template=new-benchmark.yml) template. They fill in: - **What to measure**: time-to-receive-full-portfolio in milliseconds. - **Providers**: Mobula, Zerion, DeBank, Quick Intel. @@ -56,7 +56,7 @@ methodology: - "Timeout: 5,000 ms. Failures excluded from latency aggregates." - "Regions: us-east-1, eu-west-1, ap-southeast-1." -source: https://github.com/ChainBench/OpenChainBench/tree/main/harnesses/wallet-portfolio-latency +source: https://github.com/OpenChainBench/OpenChainBench/tree/main/harnesses/wallet-portfolio-latency prometheus: url: https://prom.openchainbench.com @@ -254,7 +254,7 @@ Alex's benchmark is live. The roadmap card moves to `Live`. The maintainer pings | Alex moves the harness to a new URL | Alex (or the maintainer, if Alex disappears) opens a 1-line PR updating the scrape config. Prom reloads, scraping resumes. | | One provider in the bench rate-limits Alex | That provider's success rate drops on the page; latency aggregates exclude failures so the bench stays interpretable. | | Alex stops paying for the harness | The bench goes dark. After ~30 days of no data, a maintainer can archive the bench (move issue to `Archived`, mark spec `status: draft` in the YAML). The code stays in the repo for anyone to revive. | -| A provider files a [provider correction](https://github.com/ChainBench/OpenChainBench/issues/new?template=provider-correction.yml) saying "your number is wrong" | Public discussion in the issue. If they're right and provide a reproducer, the YAML or harness gets a correction with a dated note on the report. | +| A provider files a [provider correction](https://github.com/OpenChainBench/OpenChainBench/issues/new?template=provider-correction.yml) saying "your number is wrong" | Public discussion in the issue. If they're right and provide a reproducer, the YAML or harness gets a correction with a dated note on the report. | ## What this enables diff --git a/harnesses/README.md b/harnesses/README.md index 04ff9c13..b6a1bff5 100644 --- a/harnesses/README.md +++ b/harnesses/README.md @@ -54,7 +54,7 @@ harnesses// See [`/CONTRIBUTING.md`](../CONTRIBUTING.md) for the full submission flow. Short version: -1. Open an issue with the [📊 Propose a benchmark template](https://github.com/ChainBench/OpenChainBench/issues/new?template=new-benchmark.yml). +1. Open an issue with the [📊 Propose a benchmark template](https://github.com/OpenChainBench/OpenChainBench/issues/new?template=new-benchmark.yml). 2. Build the harness here at `harnesses//`. 3. Deploy it on whatever infra you prefer, expose `/metrics` over HTTPS at a stable URL. 4. Append a scrape job to [`infrastructure/prometheus/prometheus.yml`](../infrastructure/prometheus/prometheus.yml) pointing at your URL. diff --git a/harnesses/aggregator-head-lag/.gitignore b/harnesses/aggregator-head-lag/.gitignore index 8ef33851..ec3fb764 100644 --- a/harnesses/aggregator-head-lag/.gitignore +++ b/harnesses/aggregator-head-lag/.gitignore @@ -32,6 +32,3 @@ Thumbs.db # Temporary files tmp/ temp/ - -# Local build output from `go build ./cmd/script` -/script diff --git a/harnesses/aggregator-head-lag/cmd/script/log_buffer.go b/harnesses/aggregator-head-lag/cmd/script/log_buffer.go index a0cce9a2..0f7455e0 100644 --- a/harnesses/aggregator-head-lag/cmd/script/log_buffer.go +++ b/harnesses/aggregator-head-lag/cmd/script/log_buffer.go @@ -79,16 +79,12 @@ func installLogCapture() { } // setupLogsEndpoint exposes GET /logs?tail=N (default 500, max logBufferMax). -// Fail-secure: when LOGS_TOKEN env var is not set, the endpoint returns 404 -// (refuses by default). When set, requires header `X-Logs-Token` to match. +// If LOGS_TOKEN env var is set, requires header `X-Logs-Token` to match. +// Otherwise the endpoint is open — only safe for Railway-internal access. func setupLogsEndpoint(mux *http.ServeMux) { expectedToken := os.Getenv("LOGS_TOKEN") mux.HandleFunc("/logs", func(w http.ResponseWriter, r *http.Request) { - if expectedToken == "" { - http.NotFound(w, r) - return - } - if r.Header.Get("X-Logs-Token") != expectedToken { + if expectedToken != "" && r.Header.Get("X-Logs-Token") != expectedToken { http.Error(w, "forbidden", http.StatusForbidden) return } diff --git a/harnesses/aggregator-head-lag/cmd/script/main.go b/harnesses/aggregator-head-lag/cmd/script/main.go index 84444379..c0a7eaa7 100644 --- a/harnesses/aggregator-head-lag/cmd/script/main.go +++ b/harnesses/aggregator-head-lag/cmd/script/main.go @@ -47,17 +47,50 @@ func main() { } }() - // Head lag monitor — the only data producer for this binary. - // Measures the gap between an on-chain Swap event and its appearance - // on each aggregator's WebSocket / REST feed. + // Mobula Pulse V2 feeder — only feeds the metadata coverage queue, + // no pulse-specific metrics emitted (see mobula_pulse_monitor.go). + wg.Add(1) + go func() { + defer wg.Done() + runMobulaPulseMonitor(config, stopChan) + }() + + // Mobula REST API monitor + wg.Add(1) + go func() { + defer wg.Done() + runMobulaRESTMonitor(config, stopChan) + }() + + // Codex REST API monitor + wg.Add(1) + go func() { + defer wg.Done() + runCodexRESTMonitor(config, stopChan) + }() + + // Quote API latency monitor (Jupiter, Li.Fi, 1inch, KyberSwap) + wg.Add(1) + go func() { + defer wg.Done() + runQuoteAPIMonitor(config, stopChan) + }() + + // Metadata coverage monitor (Mobula vs Codex) + wg.Add(1) + go func() { + defer wg.Done() + runMetadataCoverageMonitor(config, stopChan) + }() + + // Head lag monitor (blockchain head vs aggregator indexed head) wg.Add(1) go func() { defer wg.Done() runHeadLagMonitor(config, stopChan) }() - // Mobula Fast-Trade monitor — used for the detailed Mobula breakdown - // (processing vs network lag) emitted alongside head lag. + // Mobula Fast-Trade monitor (for comparison with Pulse V2) wg.Add(1) go func() { defer wg.Done() diff --git a/harnesses/hyperliquid-frontends/Dockerfile b/harnesses/hyperliquid-frontends/Dockerfile deleted file mode 100644 index 89acec73..00000000 --- a/harnesses/hyperliquid-frontends/Dockerfile +++ /dev/null @@ -1,13 +0,0 @@ -FROM golang:1.23 AS build -WORKDIR /src -COPY go.mod go.sum* ./ -RUN go mod download || true -COPY . . -RUN CGO_ENABLED=0 go build -o /out/script ./cmd/script - -FROM gcr.io/distroless/static-debian12:nonroot -WORKDIR /app -COPY --from=build /out/script /app/script -COPY builders.json /app/builders.json -EXPOSE 2112 -ENTRYPOINT ["/app/script"] diff --git a/harnesses/hyperliquid-frontends/README.md b/harnesses/hyperliquid-frontends/README.md deleted file mode 100644 index 11e994e7..00000000 --- a/harnesses/hyperliquid-frontends/README.md +++ /dev/null @@ -1,78 +0,0 @@ -# hyperliquid-frontends harness - -OpenChainBench bench № 030 — quality benchmark of Hyperliquid frontends, ranked by **how much they extract from users**, not by raw volume share. - -## What it measures - -Three quality metrics per builder, refreshed hourly from the public daily fills dumps Hyperliquid publishes at `https://stats-data.hyperliquid.xyz/Mainnet/builder_fills/{address}/{YYYYMMDD}.csv.lz4`: - -| Metric | Definition | -|---|---| -| **Effective fee bps** | `sum(builder_fee) / sum(notional) × 10 000` — volume-weighted average over 24 h | -| **$ per user** | `sum(builder_fee) / count(distinct user)` — raw efficiency per active trader | -| **Fee discipline** | `stddev_over_time(effective_fee_bps[30d])` — computed in Prometheus, surfaces rotating-promo cycles | - -Headline ranking = lowest effective fee = most aligned with traders. - -Why this framing: the Hyperliquid frontend wars already have a dozen volume-share dashboards (ASXN HyperScreener, Coinmarketman HyperTracker, Flowscan, Allium, Hyperdash, several Dune boards). What nobody publishes cleanly is the user-cost side. This bench is the user-cost side. - -## Builder registry - -`builders.json` is a hand-curated `[{slug, name, address, valid_from, notes}]` array. Addresses are cross-referenced against: -- Flowscan `/builders` — live leaderboard -- Hyperliquid governance forum disclosures -- Each frontend's public announcement of their builder code - -**The committed file ships with placeholder `0x0000…` addresses.** They MUST be filled in before the harness can fetch anything useful. The harness will return `403` for every placeholder address (the Hyperliquid bucket returns 403 when the date file doesn't exist for that address). - -Workflow for adding / updating addresses: -1. Pull the latest Flowscan builders list, cross-check with ASXN's published mapping -2. Edit `builders.json`, bump `valid_from` to today -3. PR with a Flowscan screenshot in the description so the registry change is auditable -4. After merge, redeploy the harness on Railway - -## Prometheus metrics emitted - -``` -hl_frontend_effective_fee_bps{builder} gauge -hl_frontend_fees_per_user_usd{builder} gauge -hl_frontend_volume_usd_24h{builder} gauge -hl_frontend_users_24h{builder} gauge -hl_frontend_fills_total{builder} gauge -hl_frontend_unattributed_share_pct gauge -hl_frontend_registry_age_seconds gauge -hl_frontend_csv_fetch_status_total{builder,code} counter -``` - -Bench page column mapping is documented in `benchmarks/hyperliquid-frontends.yml` — p50 / p90 / p99 are repurposed for effective fee / 30d stddev / $/user respectively since the unit is bps and there is no native percentile semantics. - -## Run locally - -```bash -cd harnesses/hyperliquid-frontends -go run ./cmd/script -curl http://localhost:2112/metrics | grep hl_frontend_ -``` - -## Deploy - -Standard OCB-miniapp shape — multi-stage Dockerfile, port 2112, scraped by the shared `openchainbench-monitoring` Prometheus via `hyperliquid-frontends.railway.internal:2112`. - -After deploy, add a scrape config entry: - -```yaml -- job_name: 'hyperliquid-frontends' - static_configs: - - targets: - - 'hyperliquid-frontends.railway.internal:2112' - labels: - benchmark: hyperliquid-frontends - metrics_path: /metrics -``` - -## Known limits - -- **Daily granularity** — the CSV bucket only rolls at UTC midnight. Intra-day movement is invisible. A v1.1 upgrade would consume the WebSocket `userFills` stream filtered on the `b` field for realtime. -- **Native HL UI excluded** — orders without a builder code are not attributable here. Covered by the separate `/benchmarks/aggregator-head-lag` bench. -- **Wash trading** — fills are taken at face value. A frontend running wash flow shows up exactly as the chain records. Mitigation = the unique-user column flags anomalous low-user / high-volume signatures. A sybil-cluster heuristic ships in v1.1. -- **Registry maintenance** — the builder address list is hand-curated. The `hl_frontend_unattributed_share_pct` metric makes the coverage gap visible; an alert fires when it crosses 2 %. diff --git a/harnesses/hyperliquid-frontends/builders.json b/harnesses/hyperliquid-frontends/builders.json deleted file mode 100644 index c6f8f0ec..00000000 --- a/harnesses/hyperliquid-frontends/builders.json +++ /dev/null @@ -1,58 +0,0 @@ -[ - { - "slug": "phantom-perps", - "name": "Phantom", - "address": "0xb84168cf3be63c6b8dad05ff5d755e97432ff80b", - "valid_from": "2026-05-31", - "notes": "Phantom wallet's Hyperliquid perps integration. Verified via CoinMarketMan HyperTracker registry + 200 OK on the public fills bucket on 2026-05-29 and 2026-05-30." - }, - { - "slug": "axiom", - "name": "Axiom", - "address": "0x1cc34f6af34653c515b47a83e1de70ba9b0cda1f", - "valid_from": "2026-05-31", - "notes": "Axiom trading terminal (Solana-native, expanding to HL). Verified via CMM registry + bucket 200 OK." - }, - { - "slug": "pvp-trade", - "name": "pvp.trade", - "address": "0x0cbf655b0d22ae71fba3a674b0e1c0c7e7f975af", - "valid_from": "2026-05-31", - "notes": "Social PvP trading rooms. Verified via CMM registry + bucket 200 OK + CMM per-builder URL." - }, - { - "slug": "insilico", - "name": "Insilico", - "address": "0x2868fc0d9786a740b491577a43502259efa78a39", - "valid_from": "2026-05-31", - "notes": "Insilico Terminal (institutional trading workstation). Verified via CMM registry + bucket 200 OK + CMM per-builder URL." - }, - { - "slug": "defiapp", - "name": "Defiapp", - "address": "0x1922810825c90f4270048b96da7b1803cd8609ef", - "valid_from": "2026-05-31", - "notes": "Defiapp HL frontend. Verified via bucket 200 OK with real data (sample test: 133 fills, $164K notional, 5 bps eff, 2026-05-29)." - }, - { - "slug": "metamask", - "name": "MetaMask", - "address": "0xe95a5e31904e005066614247d309e00d8ad753aa", - "valid_from": "2026-05-31", - "notes": "MetaMask HL integration (primary address). MetaMask is documented to operate a secondary address 0xea2c82b5aba243ab631c0ce151763d5e38df75b3 — aggregate manually if needed." - }, - { - "slug": "dexari", - "name": "Dexari", - "address": "0x7975cafdff839ed5047244ed3a0dd82a89866081", - "valid_from": "2026-05-31", - "notes": "Dexari HL frontend (previously called Dexterity in our internal docs — naming corrected after Flowscan cross-reference). Verified via CMM registry." - }, - { - "slug": "okto", - "name": "Okto", - "address": "0x05984fd37db96dc2a11a09519a8def556e80590b", - "valid_from": "2026-05-31", - "notes": "Okto HL integration (primary address). Documented secondary: 0x4fe1141b9066f3777f4bd4d4ac9d216173031dc1." - } -] diff --git a/harnesses/hyperliquid-frontends/cmd/script/fetcher.go b/harnesses/hyperliquid-frontends/cmd/script/fetcher.go deleted file mode 100644 index f04cc952..00000000 --- a/harnesses/hyperliquid-frontends/cmd/script/fetcher.go +++ /dev/null @@ -1,225 +0,0 @@ -package main - -import ( - "context" - "encoding/csv" - "fmt" - "io" - "net/http" - "strconv" - "strings" - "time" - - "github.com/pierrec/lz4/v4" -) - -// processBuilder fetches today's + yesterday's Hyperliquid fills CSV -// for one builder address, aggregates the last complete UTC day, -// updates every Prom metric for that builder, AND upserts each fill -// into the SQLite state so the retention pass later in the cycle -// sees fresh data. Returns the day notional so the caller can -// compute the cross-builder volume share. -// -// The headline window is `yesterday's complete UTC day` (i.e. the -// CSV for date T-1). We switched from rolling-24h because the -// rolling cutoff was unfairly zeroing builders whose flow lands -// early in the UTC day — at 18:00 UTC the cutoff `now - 24h` is -// 18:00 yesterday, so a builder that traded between 00:00-17:00 -// yesterday would show 0. The UTC-day window gives every builder -// the same comparison surface at the cost of 0-24h of staleness, -// which is fine for a fee-quality bench (frontends don't change -// pricing minute-to-minute). Today's CSV is still fetched so the -// SQLite state captures the in-progress day for retention math. -func processBuilder(ctx context.Context, b Builder, state *State) float64 { - now := time.Now().UTC() - - // Hyperliquid publishes the per-day CSV with a variable delay — - // usually T-1 lands within hours of UTC midnight, but the bucket - // has gone 48 h+ without a fresh file (observed 2026-05-31). To - // avoid zeroing every builder on a publish lag, walk back up to - // 3 days and pick the most recent date that returned a non-empty - // CSV. State always upserts from whatever days we did fetch so - // retention math gets the freshest signal regardless. - dates := []time.Time{ - now.AddDate(0, 0, -1), - now.AddDate(0, 0, -2), - now.AddDate(0, 0, -3), - } - var headlineFills []fillRow - var headlineDateKey string - for _, d := range dates { - batch, code, err := fetchDay(ctx, b.Address, d) - hlCSVFetchStatus.WithLabelValues(b.Slug, code).Inc() - if err != nil { - fmt.Printf("[%s] %s: %s err=%v\n", b.Slug, d.Format("20060102"), code, err) - continue - } - // State always gets every fill — retention math wants the - // long history of unique users, not just the headline day. - for _, f := range batch { - if state != nil && f.User != "" { - if err := state.Upsert(b.Slug, f.User, f.Time.UnixMilli(), f.Px*f.Sz); err != nil { - fmt.Printf("[%s] state upsert error: %v\n", b.Slug, err) - } - } - } - // Pick the first day that has at least one fill — that's - // the freshest "complete UTC day" for this builder. - if headlineDateKey == "" && len(batch) > 0 { - headlineFills = batch - headlineDateKey = d.Format("20060102") - } - } - - var ( - notionalUSD float64 - builderFeeUSD float64 - fillCount int - users = make(map[string]struct{}) - ) - for _, f := range headlineFills { - notionalUSD += f.Px * f.Sz - builderFeeUSD += f.BuilderFee - fillCount++ - if f.User != "" { - users[f.User] = struct{}{} - } - } - - hlFillsTotal.WithLabelValues(b.Slug).Set(float64(fillCount)) - hlVolumeUSD24h.WithLabelValues(b.Slug).Set(notionalUSD) - hlUsers24h.WithLabelValues(b.Slug).Set(float64(len(users))) - - if notionalUSD > 0 { - hlEffectiveFeeBps.WithLabelValues(b.Slug).Set(builderFeeUSD / notionalUSD * 10_000) - } - if len(users) > 0 { - hlFeesPerUserUSD.WithLabelValues(b.Slug).Set(builderFeeUSD / float64(len(users))) - } - - fmt.Printf("[%s] day=%s fills=%d notional=$%.0f fees=$%.2f users=%d eff=%.2fbps\n", - b.Slug, headlineDateKey, fillCount, notionalUSD, builderFeeUSD, len(users), - safeRatio(builderFeeUSD, notionalUSD)*10_000) - return notionalUSD -} - -type fillRow struct { - Time time.Time - User string - Coin string - Side string - Px float64 - Sz float64 - BuilderFee float64 -} - -// fetchDay GETs the per-day CSV dump, LZ4-decompresses, parses into -// fillRow slices. Returns (rows, http_code_label, err). The -// http_code_label is the string we want to label the -// `hl_frontend_csv_fetch_status_total` counter with — "200" for OK, -// "403" for "no fills that day" (Hyperliquid bucket returns 403 when -// the date file doesn't exist), "5xx" for server errors, "error" for -// transport-level failures. -func fetchDay(ctx context.Context, address string, day time.Time) ([]fillRow, string, error) { - url := fmt.Sprintf( - "https://stats-data.hyperliquid.xyz/Mainnet/builder_fills/%s/%s.csv.lz4", - strings.ToLower(address), - day.Format("20060102"), - ) - reqCtx, cancel := context.WithTimeout(ctx, httpTimeout) - defer cancel() - req, err := http.NewRequestWithContext(reqCtx, http.MethodGet, url, nil) - if err != nil { - return nil, "error", err - } - resp, err := http.DefaultClient.Do(req) - if err != nil { - return nil, "error", err - } - defer resp.Body.Close() - - if resp.StatusCode != http.StatusOK { - if resp.StatusCode >= 500 { - return nil, "5xx", fmt.Errorf("http %d", resp.StatusCode) - } - return nil, fmt.Sprintf("%d", resp.StatusCode), nil - } - - dec := lz4.NewReader(resp.Body) - rd := csv.NewReader(dec) - rd.FieldsPerRecord = -1 - header, err := rd.Read() - if err != nil { - return nil, "200", fmt.Errorf("header: %w", err) - } - col := map[string]int{} - for i, h := range header { - col[strings.TrimSpace(h)] = i - } - required := []string{"time", "user", "px", "sz", "builder_fee"} - for _, r := range required { - if _, ok := col[r]; !ok { - return nil, "200", fmt.Errorf("missing column %q in header %v", r, header) - } - } - - var rows []fillRow - for { - rec, err := rd.Read() - if err == io.EOF { - break - } - if err != nil { - return rows, "200", fmt.Errorf("row: %w", err) - } - if len(rec) < len(header) { - continue - } - t, err := parseFillTime(rec[col["time"]]) - if err != nil { - continue - } - px, _ := strconv.ParseFloat(rec[col["px"]], 64) - sz, _ := strconv.ParseFloat(rec[col["sz"]], 64) - fee, _ := strconv.ParseFloat(rec[col["builder_fee"]], 64) - rows = append(rows, fillRow{ - Time: t, - User: strings.ToLower(rec[col["user"]]), - Coin: safeCol(rec, col, "coin"), - Side: safeCol(rec, col, "side"), - Px: px, - Sz: sz, - BuilderFee: fee, - }) - } - return rows, "200", nil -} - -func safeCol(rec []string, col map[string]int, k string) string { - i, ok := col[k] - if !ok || i >= len(rec) { - return "" - } - return rec[i] -} - -// parseFillTime accepts the two timestamp shapes Hyperliquid has -// shipped over the lifetime of the bucket: Unix-millis integers and -// RFC3339 strings. Both have been observed in the wild. -func parseFillTime(raw string) (time.Time, error) { - raw = strings.TrimSpace(raw) - if raw == "" { - return time.Time{}, fmt.Errorf("empty time") - } - if ms, err := strconv.ParseInt(raw, 10, 64); err == nil { - return time.UnixMilli(ms).UTC(), nil - } - return time.Parse(time.RFC3339Nano, raw) -} - -func safeRatio(a, b float64) float64 { - if b == 0 { - return 0 - } - return a / b -} diff --git a/harnesses/hyperliquid-frontends/cmd/script/main.go b/harnesses/hyperliquid-frontends/cmd/script/main.go deleted file mode 100644 index 586ed70a..00000000 --- a/harnesses/hyperliquid-frontends/cmd/script/main.go +++ /dev/null @@ -1,146 +0,0 @@ -package main - -// Hyperliquid frontends quality benchmark. -// -// Pulls the per-builder, per-day fills CSV that the Hyperliquid team -// publishes at https://stats-data.hyperliquid.xyz/Mainnet/builder_fills/ -// then computes three quality metrics per builder: -// -// - effective_fee_bps = sum(builder_fee) / sum(notional) * 10000 -// - fees_per_user_usd = sum(builder_fee) / count(distinct user) -// - volume_usd_24h = sum(px * sz) -// -// 30-day fee discipline is NOT computed here — it falls out for free -// via `stddev_over_time(hl_frontend_effective_fee_bps[30d])` in -// Prometheus once the time-series accumulates. -// -// MVP shape — wire it up, point at the public bucket, expose Prom on -// :2112. Builder address registry lives at ../builders.json so a new -// builder is added without code change. - -import ( - "context" - "fmt" - "os" - "os/signal" - "syscall" - "time" -) - -const ( - scrapeInterval = 3600 * time.Second // poll each builder hourly - httpTimeout = 30 * time.Second -) - -func main() { - fmt.Println("=== Hyperliquid Frontends Quality Harness ===") - fmt.Println("OpenChainBench - builder-code effective fee + $/user + volume.") - fmt.Println() - - registry, err := loadRegistry("./builders.json") - if err != nil { - fmt.Printf("[fatal] load registry: %v\n", err) - os.Exit(1) - } - fmt.Printf("Registry: %d builders\n", len(registry)) - for _, b := range registry { - fmt.Printf(" · %-15s %s\n", b.Slug, b.Address) - } - fmt.Println() - - state, err := OpenState() - if err != nil { - fmt.Printf("[fatal] open state: %v\n", err) - os.Exit(1) - } - defer state.Close() - - fmt.Println("Metrics server: :2112/metrics") - fmt.Println() - - // Hardcoded :2112 per the OCB Railway scrape convention. We - // deliberately ignore Railway's $PORT (would move the listener - // away from where the shared Prom expects it). METRICS_ADDR is - // a local-dev escape hatch only — never set in production. - addr := os.Getenv("METRICS_ADDR") - if addr == "" { - addr = ":2112" - } - go func() { - if err := StartMetricsServer(addr); err != nil { - fmt.Printf("[fatal] metrics server: %v\n", err) - os.Exit(1) - } - }() - - ctx, cancel := context.WithCancel(context.Background()) - defer cancel() - - // First cycle fires after a 5 s warmup so /metrics has data on the - // first scrape; subsequent cycles run on the configured interval. - warmup := time.NewTimer(5 * time.Second) - defer warmup.Stop() - ticker := time.NewTicker(scrapeInterval) - defer ticker.Stop() - - sig := make(chan os.Signal, 1) - signal.Notify(sig, os.Interrupt, syscall.SIGTERM) - - for { - select { - case <-warmup.C: - runCycle(ctx, registry, state) - case <-ticker.C: - runCycle(ctx, registry, state) - case s := <-sig: - fmt.Printf("\n[shutdown] received %v\n", s) - cancel() - return - } - } -} - -func runCycle(ctx context.Context, registry []Builder, state *State) { - cycleStart := time.Now() - // Per-builder pass: fetch CSVs, update gauges, upsert into state. - var totalNotional float64 - perBuilderNotional := make(map[string]float64, len(registry)) - for _, b := range registry { - select { - case <-ctx.Done(): - return - default: - } - notional := processBuilder(ctx, b, state) - perBuilderNotional[b.Slug] = notional - totalNotional += notional - } - // Volume share + retention pass once state is up to date. - for _, b := range registry { - if totalNotional > 0 { - hlVolumeSharePct.WithLabelValues(b.Slug).Set(perBuilderNotional[b.Slug] / totalNotional * 100) - } - for _, days := range []int{7, 30} { - ret, cohort, err := state.Retention(ctx, b.Slug, days) - if err != nil { - fmt.Printf("[%s] retention(%dd) error: %v\n", b.Slug, days, err) - continue - } - switch days { - case 7: - hlD7Retention.WithLabelValues(b.Slug).Set(ret) - hlD7CohortSize.WithLabelValues(b.Slug).Set(float64(cohort)) - case 30: - hlD30Retention.WithLabelValues(b.Slug).Set(ret) - hlD30CohortSize.WithLabelValues(b.Slug).Set(float64(cohort)) - } - } - } - // Prune anything past our 90-day horizon so the SQLite file stays - // bounded. 90d > our longest retention window (D30) with 2x safety - // margin for backfill / replay scenarios. - if n, err := state.PruneOlderThan(90); err == nil && n > 0 { - fmt.Printf("[state] pruned %d rows older than 90d\n", n) - } - fmt.Printf("[cycle] done in %s\n", time.Since(cycleStart).Round(time.Millisecond)) -} diff --git a/harnesses/hyperliquid-frontends/cmd/script/metrics.go b/harnesses/hyperliquid-frontends/cmd/script/metrics.go deleted file mode 100644 index 5d9e074a..00000000 --- a/harnesses/hyperliquid-frontends/cmd/script/metrics.go +++ /dev/null @@ -1,136 +0,0 @@ -package main - -import ( - "net/http" - - "github.com/prometheus/client_golang/prometheus" - "github.com/prometheus/client_golang/prometheus/promauto" - "github.com/prometheus/client_golang/prometheus/promhttp" -) - -// Prom metrics for the Hyperliquid frontends quality bench. Names are -// prefixed `hl_frontend_` so the OCB MCP allowlist needs one entry -// (`hl_frontend_`) for every metric this harness emits. - -var ( - hlEffectiveFeeBps = promauto.NewGaugeVec( - prometheus.GaugeOpts{ - Name: "hl_frontend_effective_fee_bps", - Help: "Volume-weighted effective builder fee in basis points over the last 24h: sum(builder_fee) / sum(notional) * 10000.", - }, - []string{"builder"}, - ) - - hlFeesPerUserUSD = promauto.NewGaugeVec( - prometheus.GaugeOpts{ - Name: "hl_frontend_fees_per_user_usd", - Help: "USD fees captured per unique trader over the last 24h: sum(builder_fee_usd) / count(distinct user).", - }, - []string{"builder"}, - ) - - hlVolumeUSD24h = promauto.NewGaugeVec( - prometheus.GaugeOpts{ - Name: "hl_frontend_volume_usd_24h", - Help: "Total notional USD volume routed via this builder in the last 24h. Secondary signal — not the headline.", - }, - []string{"builder"}, - ) - - hlUsers24h = promauto.NewGaugeVec( - prometheus.GaugeOpts{ - Name: "hl_frontend_users_24h", - Help: "Count of unique trader addresses attributed to this builder in the last 24h.", - }, - []string{"builder"}, - ) - - hlFillsTotal = promauto.NewGaugeVec( - prometheus.GaugeOpts{ - Name: "hl_frontend_fills_total", - Help: "Count of attributed fills observed in the last 24h. Drives the leaderboard sample_size column.", - }, - []string{"builder"}, - ) - - hlUnattributedShare = promauto.NewGauge( - prometheus.GaugeOpts{ - Name: "hl_frontend_unattributed_share_pct", - Help: "Share of Hyperliquid builder-fee volume from addresses NOT in our registry. >2% should trigger a registry-update review.", - }, - ) - - hlRegistryAge = promauto.NewGauge( - prometheus.GaugeOpts{ - Name: "hl_frontend_registry_age_seconds", - Help: "Seconds since the builders.json file was last modified on disk. Surfaces stale-registry drift.", - }, - ) - - hlCSVFetchStatus = promauto.NewCounterVec( - prometheus.CounterOpts{ - Name: "hl_frontend_csv_fetch_status_total", - Help: "Outcome of each fetch of the per-day Hyperliquid fills CSV, by HTTP code (200, 403=no fills that day, 5xx, error).", - }, - []string{"builder", "code"}, - ) - - // Cohort retention — the unique OCB edge. Of the users whose first - // observed fill for a builder lands in the 24h window {7,30} days - // ago, the fraction that traded again in the last 24h. Requires - // the SQLite state layer because no public source publishes it. - hlD7Retention = promauto.NewGaugeVec( - prometheus.GaugeOpts{ - Name: "hl_frontend_d7_retention_pct", - Help: "D7 cohort retention in percent: of users who first traded via this builder 7 days ago, fraction that traded again in the last 24h.", - }, - []string{"builder"}, - ) - - hlD30Retention = promauto.NewGaugeVec( - prometheus.GaugeOpts{ - Name: "hl_frontend_d30_retention_pct", - Help: "D30 cohort retention in percent: of users who first traded via this builder 30 days ago, fraction that traded again in the last 24h.", - }, - []string{"builder"}, - ) - - hlD7CohortSize = promauto.NewGaugeVec( - prometheus.GaugeOpts{ - Name: "hl_frontend_d7_cohort_size", - Help: "Number of users in the D7 cohort. Low cohort sizes (<50) make the retention percentage statistically noisy.", - }, - []string{"builder"}, - ) - - hlD30CohortSize = promauto.NewGaugeVec( - prometheus.GaugeOpts{ - Name: "hl_frontend_d30_cohort_size", - Help: "Number of users in the D30 cohort.", - }, - []string{"builder"}, - ) - - // Volume share computed across builders in the registry. Every - // other dashboard has this — we expose it as secondary so the - // page still surfaces the number readers expect to see. - hlVolumeSharePct = promauto.NewGaugeVec( - prometheus.GaugeOpts{ - Name: "hl_frontend_volume_share_pct", - Help: "Share in percent of the last 24h notional volume across builders in our registry. Coverage gap (= volume from unregistered addresses) surfaces in hl_frontend_unattributed_share_pct.", - }, - []string{"builder"}, - ) -) - -func StartMetricsServer(addr string) error { - mux := http.NewServeMux() - mux.Handle("/metrics", promhttp.Handler()) - mux.HandleFunc("/health", func(w http.ResponseWriter, r *http.Request) { - _, _ = w.Write([]byte("ok")) - }) - mux.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) { - _, _ = w.Write([]byte("hyperliquid-frontends harness · OpenChainBench")) - }) - return http.ListenAndServe(addr, mux) -} diff --git a/harnesses/hyperliquid-frontends/cmd/script/registry.go b/harnesses/hyperliquid-frontends/cmd/script/registry.go deleted file mode 100644 index af26d153..00000000 --- a/harnesses/hyperliquid-frontends/cmd/script/registry.go +++ /dev/null @@ -1,40 +0,0 @@ -package main - -import ( - "encoding/json" - "fmt" - "os" - "strings" -) - -// Builder maps a curated frontend slug to its Hyperliquid builder-code -// EVM address. The address is what the on-chain `ApproveBuilderFee` -// action registers and what every order with that builder embedded -// surfaces in the per-day CSV dumps. -type Builder struct { - Slug string `json:"slug"` - Name string `json:"name"` - Address string `json:"address"` - ValidFrom string `json:"valid_from"` - Notes string `json:"notes,omitempty"` -} - -func loadRegistry(path string) ([]Builder, error) { - raw, err := os.ReadFile(path) - if err != nil { - return nil, fmt.Errorf("read %s: %w", path, err) - } - var entries []Builder - if err := json.Unmarshal(raw, &entries); err != nil { - return nil, fmt.Errorf("parse %s: %w", path, err) - } - for i := range entries { - // Lowercase addresses — the Hyperliquid stats bucket is case - // sensitive (paths only resolve when the address is lower). - entries[i].Address = strings.ToLower(entries[i].Address) - } - if len(entries) == 0 { - return nil, fmt.Errorf("empty registry: %s", path) - } - return entries, nil -} diff --git a/harnesses/hyperliquid-frontends/cmd/script/state.go b/harnesses/hyperliquid-frontends/cmd/script/state.go deleted file mode 100644 index c967dfa5..00000000 --- a/harnesses/hyperliquid-frontends/cmd/script/state.go +++ /dev/null @@ -1,135 +0,0 @@ -package main - -import ( - "context" - "database/sql" - "fmt" - "os" - "path/filepath" - "time" - - _ "modernc.org/sqlite" -) - -// State layer = pure-Go SQLite under $STATE_DIR/state.db (defaults to -// ./state.db). One table records (builder, user) first-seen / last-seen -// timestamps so we can compute cohort retention without re-parsing the -// full CSV history every cycle. -// -// This is the differentiator vs every other Hyperliquid frontends -// dashboard — nobody publishes D7/D30 retention per builder cleanly -// because nobody bothers maintaining the state. Five lines of SQL -// plus a single 100 MB file on a Railway volume gets us a metric the -// rest of the field can't match. - -type State struct { - db *sql.DB -} - -func OpenState() (*State, error) { - dir := os.Getenv("STATE_DIR") - if dir == "" { - dir = "." - } - if err := os.MkdirAll(dir, 0o755); err != nil { - return nil, fmt.Errorf("mkdir state: %w", err) - } - path := filepath.Join(dir, "state.db") - db, err := sql.Open("sqlite", path+"?_pragma=journal_mode(WAL)&_pragma=busy_timeout(5000)") - if err != nil { - return nil, fmt.Errorf("open sqlite %s: %w", path, err) - } - if _, err := db.Exec(` - CREATE TABLE IF NOT EXISTS user_activity ( - builder TEXT NOT NULL, - user TEXT NOT NULL, - first_seen_ms INTEGER NOT NULL, - last_seen_ms INTEGER NOT NULL, - fills INTEGER NOT NULL DEFAULT 0, - notional_usd REAL NOT NULL DEFAULT 0, - PRIMARY KEY (builder, user) - ); - CREATE INDEX IF NOT EXISTS idx_user_activity_first_seen - ON user_activity(builder, first_seen_ms); - CREATE INDEX IF NOT EXISTS idx_user_activity_last_seen - ON user_activity(builder, last_seen_ms); - `); err != nil { - return nil, fmt.Errorf("schema: %w", err) - } - fmt.Printf("[state] sqlite opened at %s\n", path) - return &State{db: db}, nil -} - -// Upsert one observation. Idempotent: re-running the same CSV is safe -// because first_seen is `MIN(existing, candidate)` and last_seen is -// `MAX(existing, candidate)`. Fills + notional aggregate via SUM but -// we de-dupe on the caller side per cycle (only NEW rows passed in). -func (s *State) Upsert(builder, user string, tsMs int64, notionalUSD float64) error { - _, err := s.db.Exec(` - INSERT INTO user_activity (builder, user, first_seen_ms, last_seen_ms, fills, notional_usd) - VALUES (?, ?, ?, ?, 1, ?) - ON CONFLICT(builder, user) DO UPDATE SET - first_seen_ms = MIN(first_seen_ms, excluded.first_seen_ms), - last_seen_ms = MAX(last_seen_ms, excluded.last_seen_ms), - fills = fills + 1, - notional_usd = notional_usd + excluded.notional_usd - `, builder, user, tsMs, tsMs, notionalUSD) - return err -} - -// Retention computes cohort retention for the given builder + window -// in days. Definition: of users whose first_seen_ms falls in the -// 24-hour window starting `days` ago, what fraction had a last_seen_ms -// within the last 24 hours. -// -// cohort = COUNT first_seen ∈ [now - days*24h, now - (days-1)*24h) -// active = COUNT first_seen ∈ that bucket AND last_seen ≥ (now - 24h) -// ratio = active / cohort (0 when cohort empty) -// -// D7 → days=7. D30 → days=30. -func (s *State) Retention(ctx context.Context, builder string, days int) (float64, int, error) { - now := time.Now().UTC().UnixMilli() - cohortStart := now - int64(days)*86_400_000 - cohortEnd := now - int64(days-1)*86_400_000 - activeAfter := now - 86_400_000 - - var cohort, returned int - // COALESCE because SUM(CASE) returns NULL on an empty result - // set (no users in the cohort window). database/sql can't scan - // NULL into a plain int, so we coerce to 0 in SQL. - err := s.db.QueryRowContext(ctx, ` - SELECT - COUNT(*) AS cohort, - COALESCE(SUM(CASE WHEN last_seen_ms >= ? THEN 1 ELSE 0 END), 0) AS returned - FROM user_activity - WHERE builder = ? - AND first_seen_ms >= ? - AND first_seen_ms < ? - `, activeAfter, builder, cohortStart, cohortEnd).Scan(&cohort, &returned) - if err != nil { - return 0, 0, err - } - if cohort == 0 { - return 0, 0, nil - } - return float64(returned) / float64(cohort) * 100, cohort, nil -} - -// PruneOlderThan removes activity rows older than the retention horizon -// so the SQLite file doesn't grow forever. Run once per cycle. -func (s *State) PruneOlderThan(days int) (int64, error) { - cutoff := time.Now().UTC().Add(-time.Duration(days) * 24 * time.Hour).UnixMilli() - res, err := s.db.Exec(`DELETE FROM user_activity WHERE last_seen_ms < ?`, cutoff) - if err != nil { - return 0, err - } - n, _ := res.RowsAffected() - return n, nil -} - -func (s *State) Close() error { - if s == nil || s.db == nil { - return nil - } - return s.db.Close() -} diff --git a/harnesses/hyperliquid-frontends/go.mod b/harnesses/hyperliquid-frontends/go.mod deleted file mode 100644 index 2fe449b4..00000000 --- a/harnesses/hyperliquid-frontends/go.mod +++ /dev/null @@ -1,9 +0,0 @@ -module github.com/OpenChainBench/OpenChainBench/harnesses/hyperliquid-frontends - -go 1.23 - -require ( - github.com/pierrec/lz4/v4 v4.1.21 - github.com/prometheus/client_golang v1.20.5 - modernc.org/sqlite v1.34.1 -) diff --git a/harnesses/hyperliquid-frontends/go.sum b/harnesses/hyperliquid-frontends/go.sum deleted file mode 100644 index 55d3db80..00000000 --- a/harnesses/hyperliquid-frontends/go.sum +++ /dev/null @@ -1,73 +0,0 @@ -github.com/beorn7/perks v1.0.1 h1:VlbKKnNfV8bJzeqoa4cOKqO6bYr3WgKZxO8Z16+hsOM= -github.com/beorn7/perks v1.0.1/go.mod h1:G2ZrVWU2WbWT9wwq4/hrbKbnv/1ERSJQ0ibhJ6rlkpw= -github.com/cespare/xxhash/v2 v2.3.0 h1:UL815xU9SqsFlibzuggzjXhog7bL6oX9BbNZnL2UFvs= -github.com/cespare/xxhash/v2 v2.3.0/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs= -github.com/dustin/go-humanize v1.0.1 h1:GzkhY7T5VNhEkwH0PVJgjz+fX1rhBrR7pRT3mDkpeCY= -github.com/dustin/go-humanize v1.0.1/go.mod h1:Mu1zIs6XwVuF/gI1OepvI0qD18qycQx+mFykh5fBlto= -github.com/google/go-cmp v0.6.0 h1:ofyhxvXcZhMsU5ulbFiLKl/XBFqE1GSq7atu8tAmTRI= -github.com/google/go-cmp v0.6.0/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= -github.com/google/pprof v0.0.0-20240409012703-83162a5b38cd h1:gbpYu9NMq8jhDVbvlGkMFWCjLFlqqEZjEmObmhUy6Vo= -github.com/google/pprof v0.0.0-20240409012703-83162a5b38cd/go.mod h1:kf6iHlnVGwgKolg33glAes7Yg/8iWP8ukqeldJSO7jw= -github.com/google/uuid v1.6.0 h1:NIvaJDMOsjHA8n1jAhLSgzrAzy1Hgr+hNrb57e+94F0= -github.com/google/uuid v1.6.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= -github.com/hashicorp/golang-lru/v2 v2.0.7 h1:a+bsQ5rvGLjzHuww6tVxozPZFVghXaHOwFs4luLUK2k= -github.com/hashicorp/golang-lru/v2 v2.0.7/go.mod h1:QeFd9opnmA6QUJc5vARoKUSoFhyfM2/ZepoAG6RGpeM= -github.com/klauspost/compress v1.17.9 h1:6KIumPrER1LHsvBVuDa0r5xaG0Es51mhhB9BQB2qeMA= -github.com/klauspost/compress v1.17.9/go.mod h1:Di0epgTjJY877eYKx5yC51cX2A2Vl2ibi7bDH9ttBbw= -github.com/kylelemons/godebug v1.1.0 h1:RPNrshWIDI6G2gRW9EHilWtl7Z6Sb1BR0xunSBf0SNc= -github.com/kylelemons/godebug v1.1.0/go.mod h1:9/0rRGxNHcop5bhtWyNeEfOS8JIWk580+fNqagV/RAw= -github.com/mattn/go-isatty v0.0.20 h1:xfD0iDuEKnDkl03q4limB+vH+GxLEtL/jb4xVJSWWEY= -github.com/mattn/go-isatty v0.0.20/go.mod h1:W+V8PltTTMOvKvAeJH7IuucS94S2C6jfK/D7dTCTo3Y= -github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822 h1:C3w9PqII01/Oq1c1nUAm88MOHcQC9l5mIlSMApZMrHA= -github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822/go.mod h1:+n7T8mK8HuQTcFwEeznm/DIxMOiR9yIdICNftLE1DvQ= -github.com/ncruces/go-strftime v0.1.9 h1:bY0MQC28UADQmHmaF5dgpLmImcShSi2kHU9XLdhx/f4= -github.com/ncruces/go-strftime v0.1.9/go.mod h1:Fwc5htZGVVkseilnfgOVb9mKy6w1naJmn9CehxcKcls= -github.com/pierrec/lz4/v4 v4.1.21 h1:yOVMLb6qSIDP67pl/5F7RepeKYu/VmTyEXvuMI5d9mQ= -github.com/pierrec/lz4/v4 v4.1.21/go.mod h1:gZWDp/Ze/IJXGXf23ltt2EXimqmTUXEy0GFuRQyBid4= -github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= -github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= -github.com/prometheus/client_golang v1.20.5 h1:cxppBPuYhUnsO6yo/aoRol4L7q7UFfdm+bR9r+8l63Y= -github.com/prometheus/client_golang v1.20.5/go.mod h1:PIEt8X02hGcP8JWbeHyeZ53Y/jReSnHgO035n//V5WE= -github.com/prometheus/client_model v0.6.1 h1:ZKSh/rekM+n3CeS952MLRAdFwIKqeY8b62p8ais2e9E= -github.com/prometheus/client_model v0.6.1/go.mod h1:OrxVMOVHjw3lKMa8+x6HeMGkHMQyHDk9E3jmP2AmGiY= -github.com/prometheus/common v0.55.0 h1:KEi6DK7lXW/m7Ig5i47x0vRzuBsHuvJdi5ee6Y3G1dc= -github.com/prometheus/common v0.55.0/go.mod h1:2SECS4xJG1kd8XF9IcM1gMX6510RAEL65zxzNImwdc8= -github.com/prometheus/procfs v0.15.1 h1:YagwOFzUgYfKKHX6Dr+sHT7km/hxC76UB0learggepc= -github.com/prometheus/procfs v0.15.1/go.mod h1:fB45yRUv8NstnjriLhBQLuOUt+WW4BsoGhij/e3PBqk= -github.com/remyoudompheng/bigfft v0.0.0-20230129092748-24d4a6f8daec h1:W09IVJc94icq4NjY3clb7Lk8O1qJ8BdBEF8z0ibU0rE= -github.com/remyoudompheng/bigfft v0.0.0-20230129092748-24d4a6f8daec/go.mod h1:qqbHyh8v60DhA7CoWK5oRCqLrMHRGoxYCSS9EjAz6Eo= -golang.org/x/mod v0.16.0 h1:QX4fJ0Rr5cPQCF7O9lh9Se4pmwfwskqZfq5moyldzic= -golang.org/x/mod v0.16.0/go.mod h1:hTbmBsO62+eylJbnUtE2MGJUyE7QWk4xUqPFrRgJ+7c= -golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.22.0 h1:RI27ohtqKCnwULzJLqkv897zojh5/DwS/ENaMzUOaWI= -golang.org/x/sys v0.22.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= -golang.org/x/tools v0.19.0 h1:tfGCXNR1OsFG+sVdLAitlpjAvD/I6dHDKnYrpEZUHkw= -golang.org/x/tools v0.19.0/go.mod h1:qoJWxmGSIBmAeriMx19ogtrEPrGtDbPK634QFIcLAhc= -google.golang.org/protobuf v1.34.2 h1:6xV6lTsCfpGD21XK49h7MhtcApnLqkfYgPcdHftf6hg= -google.golang.org/protobuf v1.34.2/go.mod h1:qYOHts0dSfpeUzUFpOMr/WGzszTmLH+DiWniOlNbLDw= -modernc.org/cc/v4 v4.21.4 h1:3Be/Rdo1fpr8GrQ7IVw9OHtplU4gWbb+wNgeoBMmGLQ= -modernc.org/cc/v4 v4.21.4/go.mod h1:HM7VJTZbUCR3rV8EYBi9wxnJ0ZBRiGE5OeGXNA0IsLQ= -modernc.org/ccgo/v4 v4.19.2 h1:lwQZgvboKD0jBwdaeVCTouxhxAyN6iawF3STraAal8Y= -modernc.org/ccgo/v4 v4.19.2/go.mod h1:ysS3mxiMV38XGRTTcgo0DQTeTmAO4oCmJl1nX9VFI3s= -modernc.org/fileutil v1.3.0 h1:gQ5SIzK3H9kdfai/5x41oQiKValumqNTDXMvKo62HvE= -modernc.org/fileutil v1.3.0/go.mod h1:XatxS8fZi3pS8/hKG2GH/ArUogfxjpEKs3Ku3aK4JyQ= -modernc.org/gc/v2 v2.4.1 h1:9cNzOqPyMJBvrUipmynX0ZohMhcxPtMccYgGOJdOiBw= -modernc.org/gc/v2 v2.4.1/go.mod h1:wzN5dK1AzVGoH6XOzc3YZ+ey/jPgYHLuVckd62P0GYU= -modernc.org/gc/v3 v3.0.0-20240107210532-573471604cb6 h1:5D53IMaUuA5InSeMu9eJtlQXS2NxAhyWQvkKEgXZhHI= -modernc.org/gc/v3 v3.0.0-20240107210532-573471604cb6/go.mod h1:Qz0X07sNOR1jWYCrJMEnbW/X55x206Q7Vt4mz6/wHp4= -modernc.org/libc v1.55.3 h1:AzcW1mhlPNrRtjS5sS+eW2ISCgSOLLNyFzRh/V3Qj/U= -modernc.org/libc v1.55.3/go.mod h1:qFXepLhz+JjFThQ4kzwzOjA/y/artDeg+pcYnY+Q83w= -modernc.org/mathutil v1.6.0 h1:fRe9+AmYlaej+64JsEEhoWuAYBkOtQiMEU7n/XgfYi4= -modernc.org/mathutil v1.6.0/go.mod h1:Ui5Q9q1TR2gFm0AQRqQUaBWFLAhQpCwNcuhBOSedWPo= -modernc.org/memory v1.8.0 h1:IqGTL6eFMaDZZhEWwcREgeMXYwmW83LYW8cROZYkg+E= -modernc.org/memory v1.8.0/go.mod h1:XPZ936zp5OMKGWPqbD3JShgd/ZoQ7899TUuQqxY+peU= -modernc.org/opt v0.1.3 h1:3XOZf2yznlhC+ibLltsDGzABUGVx8J6pnFMS3E4dcq4= -modernc.org/opt v0.1.3/go.mod h1:WdSiB5evDcignE70guQKxYUl14mgWtbClRi5wmkkTX0= -modernc.org/sortutil v1.2.0 h1:jQiD3PfS2REGJNzNCMMaLSp/wdMNieTbKX920Cqdgqc= -modernc.org/sortutil v1.2.0/go.mod h1:TKU2s7kJMf1AE84OoiGppNHJwvB753OYfNl2WRb++Ss= -modernc.org/sqlite v1.34.1 h1:u3Yi6M0N8t9yKRDwhXcyp1eS5/ErhPTBggxWFuR6Hfk= -modernc.org/sqlite v1.34.1/go.mod h1:pXV2xHxhzXZsgT/RtTFAPY6JJDEvOTcTdwADQCCWD4k= -modernc.org/strutil v1.2.0 h1:agBi9dp1I+eOnxXeiZawM8F4LawKv4NzGWSaLfyeNZA= -modernc.org/strutil v1.2.0/go.mod h1:/mdcBmfOibveCTBxUl5B5l6W+TTH1FXPLHZE6bTosX0= -modernc.org/token v1.1.0 h1:Xl7Ap9dKaEs5kLoOQeQmPWevfnk/DM5qcLcYlA8ys6Y= -modernc.org/token v1.1.0/go.mod h1:UGzOrNV1mAFSEB63lOFHIpNRUVMvYTc6yu1SMY/XTDM= diff --git a/harnesses/l1-finality/cmd/script/config.go b/harnesses/l1-finality/cmd/script/config.go index 91270f66..0bb19fd6 100644 --- a/harnesses/l1-finality/cmd/script/config.go +++ b/harnesses/l1-finality/cmd/script/config.go @@ -33,11 +33,6 @@ type ChainConfig struct { // Confirmations to consider a block "finalized" — used by PoW kinds // where finality is probabilistic. Ignored otherwise. Confirmations int - // Optional per-chain minimum poll interval. Used when an upstream API - // has a daily request quota (Koios free tier on Cardano is 5k/day — - // our default 10s cadence burns through it in 14h, then the IP gets - // blocked). 0 = use the global Interval. - MinIntervalSeconds int } type Config struct { @@ -98,11 +93,7 @@ func loadConfig() *Config { Slug: "litecoin", Name: "Litecoin", Kind: KindBitcoinLike, - // Switched from blockchair (free-tier IP blacklist hit on - // 2026-05-31, 100% 430 responses) to litecoinspace.org's - // Esplora-compatible API. Fewer calls per tick (1 vs 2) and - // no auth required. - RPCURL: getenvDefault("RPC_LITECOIN", "https://litecoinspace.org/api"), + RPCURL: getenvDefault("RPC_LITECOIN", "https://api.blockchair.com/litecoin"), // Coinbase deposit standard for LTC. The April 2026 13-block // MWEB reorg made 6 unsafe; 12 is the post-incident floor. Confirmations: 12, @@ -123,13 +114,6 @@ func loadConfig() *Config { // Picking 15 — protects above k_practical, well below the // theoretical k = 2160 (~12h) which no production actor uses. Confirmations: 15, - // Koios free tier: 5,000 req/day per IP. Our 2-call cadence at - // the global 10s interval = 17,280 req/day — burns the quota in - // ~7h then the IP gets blocked. 60s cadence = 2,880 req/day, - // safely under quota. Cardano blocks are ~20s, so per-minute - // resolution is fine for a finality-lag metric that updates - // over multi-minute windows anyway (15 confs × 20s = 5 min). - MinIntervalSeconds: 60, }, }, } diff --git a/harnesses/l1-finality/cmd/script/main.go b/harnesses/l1-finality/cmd/script/main.go index 09696a9d..7566676f 100644 --- a/harnesses/l1-finality/cmd/script/main.go +++ b/harnesses/l1-finality/cmd/script/main.go @@ -51,36 +51,6 @@ func main() { wg.Wait() } -// lastFetchAt tracks the last successful (or attempted) fetch per chain slug. -// Used to honor ChainConfig.MinIntervalSeconds — chains with an upstream API -// quota (Cardano via Koios free tier) skip the global 10 s tick to avoid -// burning the daily request budget. Mutex-protected; the global ticker fires -// concurrent goroutines so the map read+write needs to be serialized. -var ( - lastFetchAt = make(map[string]time.Time) - lastFetchAtMu sync.Mutex -) - -func shouldSkip(ch ChainConfig, now time.Time) bool { - if ch.MinIntervalSeconds <= 0 { - return false - } - lastFetchAtMu.Lock() - defer lastFetchAtMu.Unlock() - last, ok := lastFetchAt[ch.Slug] - if !ok { - // first tick — let it through and stamp now so the next tick - // honors the per-chain minimum. - lastFetchAt[ch.Slug] = now - return false - } - if now.Sub(last) < time.Duration(ch.MinIntervalSeconds)*time.Second { - return true - } - lastFetchAt[ch.Slug] = now - return false -} - func runRefreshLoop(cfg *Config, stop <-chan struct{}) { tick := time.NewTicker(cfg.Interval) defer tick.Stop() @@ -98,12 +68,8 @@ func runRefreshLoop(cfg *Config, stop <-chan struct{}) { } func fetchAll(cfg *Config) { - now := time.Now() var wg sync.WaitGroup for _, ch := range cfg.Chains { - if shouldSkip(ch, now) { - continue - } ch := ch wg.Add(1) go func() { diff --git a/harnesses/l1-finality/cmd/script/pow.go b/harnesses/l1-finality/cmd/script/pow.go index d7974a79..8b563b08 100644 --- a/harnesses/l1-finality/cmd/script/pow.go +++ b/harnesses/l1-finality/cmd/script/pow.go @@ -5,24 +5,28 @@ import ( "fmt" "io" "net/http" + "strconv" "time" ) -// PoW chains: probabilistic finality, "finalized" === N confirmations back. -// -// We use an Esplora-compatible block explorer (litecoinspace.org for Litecoin; -// mempool.space-style API works the same way for Bitcoin if added later). -// `GET /api/blocks` returns the last ~15 blocks with `height` and `timestamp`, -// so a single call covers BOTH the latest block AND the finalized one (12 -// confirmations back for Litecoin). This replaces the old 2-call blockchair -// flow that was blacklisted by free-tier IP rate limits. -// -// API spec: https://github.com/Blockstream/esplora/blob/master/API.md +// PoW chains: probabilistic finality, "finalized" === N confirmations +// back. We use blockchair's free public API for the Bitcoin-family +// (Litecoin works the same way; Bitcoin would too if added). -type esploraBlock struct { - ID string `json:"id"` // block hash - Height int64 `json:"height"` - Timestamp int64 `json:"timestamp"` // unix seconds, UTC +type blockchairStats struct { + Data struct { + Blocks int64 `json:"blocks"` + BestBlockTime string `json:"best_block_time"` // "2026-05-06 19:01:13" UTC + } `json:"data"` +} + +type blockchairBlock struct { + Data map[string]struct { + Block struct { + ID int64 `json:"id"` + Time string `json:"time"` // UTC string + } `json:"block"` + } `json:"data"` } func fetchBitcoinLike(ch ChainConfig) FinalitySample { @@ -30,71 +34,71 @@ func fetchBitcoinLike(ch ChainConfig) FinalitySample { start := time.Now() client := &http.Client{Timeout: 10 * time.Second} - blocks, err := esploraRecentBlocks(client, ch.RPCURL) - s.FetchLatencyMs = time.Since(start).Milliseconds() + stats, err := blockchairStatsFetch(client, ch.RPCURL) if err != nil { - s.Err = fmt.Sprintf("blocks: %v", err) + s.Err = fmt.Sprintf("stats: %v", err) + s.FetchLatencyMs = time.Since(start).Milliseconds() return s } - if len(blocks) == 0 { - s.Err = "blocks: empty" + latestHeight := stats.Data.Blocks - 1 // blocks count is 1-indexed + finalHeight := latestHeight - int64(ch.Confirmations) + if finalHeight < 0 { + finalHeight = 0 + } + + finalBlock, err := blockchairBlockAt(client, ch.RPCURL, finalHeight) + if err != nil { + s.Err = fmt.Sprintf("final_block (h=%d): %v", finalHeight, err) + s.FetchLatencyMs = time.Since(start).Milliseconds() return s } + s.FetchLatencyMs = time.Since(start).Milliseconds() - tip := blocks[0] - // If the returned window is shorter than the desired confirmations - // depth, paginate one more call using /api/blocks/. Litecoin - // (12 conf) is satisfied by the default 15-block window. - finalIdx := ch.Confirmations - if finalIdx >= len(blocks) { - more, err := esploraBlocksFrom(client, ch.RPCURL, tip.Height-int64(ch.Confirmations)) - if err != nil { - s.Err = fmt.Sprintf("blocks_at_h-%d: %v", ch.Confirmations, err) - return s - } - if len(more) == 0 { - s.Err = "blocks_at_h: empty" - return s - } - // /api/blocks/ returns blocks <= H, newest first; index 0 is the - // finalized block we want. - final := more[0] - s.LatestBlock = tip.Height - s.FinalizedBlock = final.Height - s.BlockLag = s.LatestBlock - s.FinalizedBlock - s.LagSeconds = float64(tip.Timestamp - final.Timestamp) - if s.LagSeconds < 0 { - s.LagSeconds = 0 - } + latestTs, err := time.Parse("2006-01-02 15:04:05", stats.Data.BestBlockTime) + if err != nil { + s.Err = fmt.Sprintf("parse_latest_ts: %v", err) + return s + } + finalTs, err := time.Parse("2006-01-02 15:04:05", finalBlock.Time) + if err != nil { + s.Err = fmt.Sprintf("parse_final_ts: %v", err) return s } - final := blocks[finalIdx] - s.LatestBlock = tip.Height - s.FinalizedBlock = final.Height + s.LatestBlock = latestHeight + s.FinalizedBlock = finalHeight s.BlockLag = s.LatestBlock - s.FinalizedBlock - s.LagSeconds = float64(tip.Timestamp - final.Timestamp) + s.LagSeconds = latestTs.Sub(finalTs).Seconds() if s.LagSeconds < 0 { s.LagSeconds = 0 } return s } -// esploraRecentBlocks calls GET /api/blocks — returns the most recent ~15 -// blocks, newest first. Each entry has height + unix timestamp. -func esploraRecentBlocks(client *http.Client, base string) ([]esploraBlock, error) { - return esploraGetBlocks(client, base+"/blocks") +func blockchairStatsFetch(client *http.Client, base string) (*blockchairStats, error) { + resp, err := client.Get(base + "/stats") + if err != nil { + return nil, err + } + defer resp.Body.Close() + body, _ := io.ReadAll(resp.Body) + if resp.StatusCode != 200 { + return nil, fmt.Errorf("status_%d: %s", resp.StatusCode, truncate(string(body), 200)) + } + var parsed blockchairStats + if err := json.Unmarshal(body, &parsed); err != nil { + return nil, fmt.Errorf("parse: %v", err) + } + return &parsed, nil } -// esploraBlocksFrom calls GET /api/blocks/ — returns blocks <= height, -// newest first. Used when the desired confirmations depth exceeds the default -// 15-block window. -func esploraBlocksFrom(client *http.Client, base string, height int64) ([]esploraBlock, error) { - return esploraGetBlocks(client, fmt.Sprintf("%s/blocks/%d", base, height)) +type blockchairSimpleBlock struct { + ID int64 `json:"id"` + Time string `json:"time"` } -func esploraGetBlocks(client *http.Client, url string) ([]esploraBlock, error) { - resp, err := client.Get(url) +func blockchairBlockAt(client *http.Client, base string, height int64) (*blockchairSimpleBlock, error) { + resp, err := client.Get(base + "/dashboards/block/" + strconv.FormatInt(height, 10)) if err != nil { return nil, err } @@ -103,9 +107,12 @@ func esploraGetBlocks(client *http.Client, url string) ([]esploraBlock, error) { if resp.StatusCode != 200 { return nil, fmt.Errorf("status_%d: %s", resp.StatusCode, truncate(string(body), 200)) } - var blocks []esploraBlock - if err := json.Unmarshal(body, &blocks); err != nil { + var parsed blockchairBlock + if err := json.Unmarshal(body, &parsed); err != nil { return nil, fmt.Errorf("parse: %v", err) } - return blocks, nil + for _, v := range parsed.Data { + return &blockchairSimpleBlock{ID: v.Block.ID, Time: v.Block.Time}, nil + } + return nil, fmt.Errorf("no_block_in_response: %s", truncate(string(body), 200)) } diff --git a/harnesses/l2-block-time/cmd/script/sequencer_ws.go b/harnesses/l2-block-time/cmd/script/sequencer_ws.go index 26d59f69..e46f39e0 100644 --- a/harnesses/l2-block-time/cmd/script/sequencer_ws.go +++ b/harnesses/l2-block-time/cmd/script/sequencer_ws.go @@ -5,7 +5,6 @@ import ( "fmt" "strconv" "strings" - "sync/atomic" "time" "github.com/gorilla/websocket" @@ -31,14 +30,6 @@ const ( // Sanity bound — never emit a single sample larger than this. Drops // the natural outlier of a reconnect gap from polluting p50. maxSampleMs = 5 * 60 * 1000 // 5 min - // Max time without receiving a newHead event before we force a - // reconnect. Important because the pong handler bumps SetReadDeadline, - // so a provider that keeps sending pongs but silently drops our - // subscription (observed on publicnode → scroll: 0 reconnects in 1h - // while samples_total stuck at 23,887) wedges the goroutine forever. - // All L2s in the panel have block-time < 15s, so 90s of silence is - // unambiguously broken. - headWatchdog = 90 * time.Second ) type rpcReq struct { @@ -112,20 +103,13 @@ func runChain(ch L2Chain) error { blockTimeHealth.WithLabelValues(ch.Slug).Set(1) fmt.Printf("[%s] connected, subscribed to newHeads\n", ch.Slug) - done := make(chan struct{}) - // lastHeadUnixNano is read by the watchdog and written on every new head. - // Atomic int64 keeps the watchdog lock-free; initial value = connect time - // so the watchdog gives the subscription a normal head-window grace - // period before counting silence. - var lastHeadUnixNano atomic.Int64 - lastHeadUnixNano.Store(time.Now().UnixNano()) - + pingDone := make(chan struct{}) go func() { t := time.NewTicker(pingEvery) defer t.Stop() for { select { - case <-done: + case <-pingDone: return case <-t.C: _ = conn.WriteControl( @@ -136,30 +120,7 @@ func runChain(ch L2Chain) error { } } }() - // Head watchdog. The pong handler extends SetReadDeadline on every pong, - // so the read deadline alone can't catch a provider that keeps the WS - // heartbeat alive while silently dropping the subscription. Check every - // 15s: if we haven't received a head in headWatchdog, slam the connection - // closed → ReadMessage returns an error → runChain returns → outer loop - // bumps the reconnect counter and dials again. - go func() { - t := time.NewTicker(15 * time.Second) - defer t.Stop() - for { - select { - case <-done: - return - case now := <-t.C: - silent := now.Sub(time.Unix(0, lastHeadUnixNano.Load())) - if silent > headWatchdog { - fmt.Printf("[%s] watchdog: no head for %s — forcing reconnect\n", ch.Slug, silent.Round(time.Second)) - _ = conn.Close() - return - } - } - } - }() - defer close(done) + defer close(pingDone) conn.SetPongHandler(func(string) error { _ = conn.SetReadDeadline(time.Now().Add(readDeadline)) @@ -198,7 +159,6 @@ func runChain(ch L2Chain) error { } now := time.Now() - lastHeadUnixNano.Store(now.UnixNano()) if !lastSeen.IsZero() { deltaMs := float64(now.Sub(lastSeen).Milliseconds()) if deltaMs > 0 && deltaMs < maxSampleMs { diff --git a/harnesses/metadata-coverage/README.md b/harnesses/metadata-coverage/README.md index 1ac3850b..403feca4 100644 --- a/harnesses/metadata-coverage/README.md +++ b/harnesses/metadata-coverage/README.md @@ -4,6 +4,8 @@ Real-time monitoring tool for tracking blockchain data indexation latency across multiple aggregators. +**[Live Dashboard](https://grafana-production-dc86.up.railway.app/)** + ## How It Works diff --git a/harnesses/metadata-coverage/alertmanager/Dockerfile b/harnesses/metadata-coverage/alertmanager/Dockerfile index c7169802..2c74ae71 100644 --- a/harnesses/metadata-coverage/alertmanager/Dockerfile +++ b/harnesses/metadata-coverage/alertmanager/Dockerfile @@ -1,15 +1,12 @@ FROM prom/alertmanager:latest -# Config carries __SLACK_WEBHOOK_URL__; entrypoint.sh sed-substitutes -# it from $SLACK_WEBHOOK_URL at container start. Keeps the real webhook -# URL out of the repo and out of the image layer. +# Copy AlertManager configuration COPY alertmanager.yml /etc/alertmanager/alertmanager.yml -COPY entrypoint.sh /entrypoint.sh - -USER root -RUN chmod +x /entrypoint.sh -USER nobody +# Expose AlertManager port EXPOSE 9093 -ENTRYPOINT ["/entrypoint.sh"] +# Run AlertManager +CMD ["--config.file=/etc/alertmanager/alertmanager.yml", \ + "--storage.path=/alertmanager", \ + "--log.level=debug"] diff --git a/harnesses/metadata-coverage/alertmanager/alertmanager.yml b/harnesses/metadata-coverage/alertmanager/alertmanager.yml index a498dc05..6ea7ebaa 100644 --- a/harnesses/metadata-coverage/alertmanager/alertmanager.yml +++ b/harnesses/metadata-coverage/alertmanager/alertmanager.yml @@ -9,12 +9,9 @@ route: receiver: 'slack-webhook' receivers: - # __SLACK_WEBHOOK_URL__ is substituted at container startup by entrypoint.sh - # from the SLACK_WEBHOOK_URL env var (see alertmanager/Dockerfile + entrypoint.sh). - # Set SLACK_WEBHOOK_URL in your Railway / .env to your real webhook before deploy. - name: 'slack-webhook' webhook_configs: - - url: '__SLACK_WEBHOOK_URL__' + - url: 'https://agent-slack-production.up.railway.app/webhook/grafana' send_resolved: true inhibit_rules: diff --git a/harnesses/metadata-coverage/alertmanager/entrypoint.sh b/harnesses/metadata-coverage/alertmanager/entrypoint.sh deleted file mode 100755 index 425532d9..00000000 --- a/harnesses/metadata-coverage/alertmanager/entrypoint.sh +++ /dev/null @@ -1,18 +0,0 @@ -#!/bin/sh -# Substitute __SLACK_WEBHOOK_URL__ in the config from $SLACK_WEBHOOK_URL, -# then exec alertmanager. Writes to /tmp so the source (which may be a -# read-only mounted volume in docker-compose) is never modified. -set -e - -if [ -z "${SLACK_WEBHOOK_URL:-}" ]; then - echo "WARN: SLACK_WEBHOOK_URL not set — slack-webhook receiver will get a placeholder URL and silently fail to deliver." >&2 - SLACK_WEBHOOK_URL="https://example.invalid/no-webhook-set" -fi - -sed "s|__SLACK_WEBHOOK_URL__|${SLACK_WEBHOOK_URL}|g" \ - /etc/alertmanager/alertmanager.yml > /tmp/alertmanager.yml - -exec /bin/alertmanager \ - --config.file=/tmp/alertmanager.yml \ - --storage.path=/alertmanager \ - --log.level=debug diff --git a/harnesses/metadata-coverage/docker-compose.yml b/harnesses/metadata-coverage/docker-compose.yml index b47bc3ec..f011653a 100644 --- a/harnesses/metadata-coverage/docker-compose.yml +++ b/harnesses/metadata-coverage/docker-compose.yml @@ -36,14 +36,15 @@ services: - monitor alertmanager: - build: - context: ./alertmanager - dockerfile: Dockerfile + image: prom/alertmanager:latest container_name: alertmanager ports: - "9093:9093" - environment: - - SLACK_WEBHOOK_URL=${SLACK_WEBHOOK_URL} + volumes: + - ./monitoring/alertmanager.yml:/etc/alertmanager/alertmanager.yml + command: + - '--config.file=/etc/alertmanager/alertmanager.yml' + - '--storage.path=/alertmanager' networks: - monitoring restart: unless-stopped diff --git a/harnesses/metadata-coverage/monitoring/alertmanager.yml b/harnesses/metadata-coverage/monitoring/alertmanager.yml index 6c0f533c..77b9e263 100644 --- a/harnesses/metadata-coverage/monitoring/alertmanager.yml +++ b/harnesses/metadata-coverage/monitoring/alertmanager.yml @@ -9,12 +9,9 @@ route: receiver: 'slack-webhook' receivers: - # __SLACK_WEBHOOK_URL__ is substituted at container startup by entrypoint.sh - # from the SLACK_WEBHOOK_URL env var (see alertmanager/Dockerfile + entrypoint.sh). - # Set SLACK_WEBHOOK_URL in your Railway / .env to your real webhook before deploy. - name: 'slack-webhook' webhook_configs: - - url: '__SLACK_WEBHOOK_URL__' + - url: 'https://agent-slack-production.up.railway.app/webhook/grafana' send_resolved: true inhibit_rules: diff --git a/harnesses/metadata-coverage/prometheus/alertmanager.yml b/harnesses/metadata-coverage/prometheus/alertmanager.yml index 6c0f533c..77b9e263 100644 --- a/harnesses/metadata-coverage/prometheus/alertmanager.yml +++ b/harnesses/metadata-coverage/prometheus/alertmanager.yml @@ -9,12 +9,9 @@ route: receiver: 'slack-webhook' receivers: - # __SLACK_WEBHOOK_URL__ is substituted at container startup by entrypoint.sh - # from the SLACK_WEBHOOK_URL env var (see alertmanager/Dockerfile + entrypoint.sh). - # Set SLACK_WEBHOOK_URL in your Railway / .env to your real webhook before deploy. - name: 'slack-webhook' webhook_configs: - - url: '__SLACK_WEBHOOK_URL__' + - url: 'https://agent-slack-production.up.railway.app/webhook/grafana' send_resolved: true inhibit_rules: diff --git a/harnesses/network-coverage/cmd/script/coinpaprika.go b/harnesses/network-coverage/cmd/script/coinpaprika.go deleted file mode 100644 index 46bd5696..00000000 --- a/harnesses/network-coverage/cmd/script/coinpaprika.go +++ /dev/null @@ -1,56 +0,0 @@ -package main - -import ( - "encoding/json" - "fmt" - "io" - "net/http" - "strings" - "time" -) - -const coinpaprikaContractsURL = "https://api.coinpaprika.com/v1/contracts" - -// CoinPaprika's /v1/contracts returns a flat array of platform slugs in -// "{symbol}-{name}" form (e.g. "eth-ethereum", "trx-tron"). It is the closest -// thing they expose to a list of "chains supported for contract lookup". -func fetchCoinPaprika(_ *Config) ProviderResult { - res := ProviderResult{Provider: "coinpaprika"} - - client := &http.Client{Timeout: 15 * time.Second} - req, _ := http.NewRequest("GET", coinpaprikaContractsURL, nil) - req.Header.Set("Accept", "application/json") - - resp, err := client.Do(req) - if err != nil { - res.Err = fmt.Sprintf("request_error: %v", err) - return res - } - defer resp.Body.Close() - body, _ := io.ReadAll(resp.Body) - - if resp.StatusCode != 200 { - res.Err = fmt.Sprintf("status_%d", resp.StatusCode) - return res - } - - var parsed []string - if err := json.Unmarshal(body, &parsed); err != nil { - res.Err = fmt.Sprintf("parse_error: %v", err) - return res - } - - for _, slug := range parsed { - name := slug - if idx := strings.Index(slug, "-"); idx >= 0 && idx+1 < len(slug) { - name = strings.ReplaceAll(slug[idx+1:], "-", " ") - } - res.Networks = append(res.Networks, Network{ - ChainID: "", - Slug: slug, - Name: name, - }) - } - - return res -} diff --git a/harnesses/network-coverage/cmd/script/coinstats.go b/harnesses/network-coverage/cmd/script/coinstats.go deleted file mode 100644 index 344c6ee7..00000000 --- a/harnesses/network-coverage/cmd/script/coinstats.go +++ /dev/null @@ -1,62 +0,0 @@ -package main - -import ( - "encoding/json" - "fmt" - "io" - "net/http" - "time" -) - -const coinstatsBlockchainsURL = "https://openapiv1.coinstats.app/wallet/blockchains" - -// CoinStats /wallet/blockchains returns a flat JSON array of: -// {connectionId, name, icon, chain} -// `connectionId` is the slug (e.g. "binancesmartchain"), `chain` is the -// category enum (e.g. "binance_smart"), `name` is the human label. -type coinstatsBlockchain struct { - ConnectionID string `json:"connectionId"` - Name string `json:"name"` - Chain string `json:"chain"` -} - -func fetchCoinStats(cfg *Config) ProviderResult { - res := ProviderResult{Provider: "coinstats"} - if cfg.CoinStatsAPIKey == "" { - res.Err = "missing_api_key" - return res - } - - client := &http.Client{Timeout: 15 * time.Second} - req, _ := http.NewRequest("GET", coinstatsBlockchainsURL, nil) - req.Header.Set("X-API-KEY", cfg.CoinStatsAPIKey) - req.Header.Set("Accept", "application/json") - - resp, err := client.Do(req) - if err != nil { - res.Err = fmt.Sprintf("request_error: %v", err) - return res - } - defer resp.Body.Close() - body, _ := io.ReadAll(resp.Body) - - if resp.StatusCode != 200 { - res.Err = fmt.Sprintf("status_%d", resp.StatusCode) - return res - } - - var arr []coinstatsBlockchain - if err := json.Unmarshal(body, &arr); err != nil { - res.Err = fmt.Sprintf("parse_error: %v", err) - return res - } - - for _, b := range arr { - res.Networks = append(res.Networks, Network{ - ChainID: b.Chain, - Slug: b.ConnectionID, - Name: b.Name, - }) - } - return res -} diff --git a/harnesses/network-coverage/cmd/script/config.go b/harnesses/network-coverage/cmd/script/config.go index 311ace2b..0b356452 100644 --- a/harnesses/network-coverage/cmd/script/config.go +++ b/harnesses/network-coverage/cmd/script/config.go @@ -12,9 +12,6 @@ type Config struct { CodexAPIKey string // official Codex Bearer (preferred — no mint, no proxy) CodexSessionCookie string // fallback path: mint JWT from Defined.fi cookie DefinedTokenURL string // optional: pre-minted JWT sidecar - CovalentAPIKey string - CoinStatsAPIKey string - SimDuneAPIKey string // optional — Sim's public endpoint works keyless, but a key avoids rate limits HTTPProxy string RefreshInterval time.Duration IncludeTestnets bool @@ -26,9 +23,6 @@ func loadConfig() *Config { CodexAPIKey: os.Getenv("CODEX_API_KEY"), CodexSessionCookie: os.Getenv("DEFINED_SESSION_COOKIE"), DefinedTokenURL: os.Getenv("DEFINED_TOKEN_SERVICE_URL"), - CovalentAPIKey: os.Getenv("COVALENT_API_KEY"), - CoinStatsAPIKey: os.Getenv("COINSTATS_API_KEY"), - SimDuneAPIKey: os.Getenv("SIM_DUNE_API_KEY"), HTTPProxy: os.Getenv("HTTP_PROXY"), RefreshInterval: 6 * time.Hour, IncludeTestnets: false, @@ -49,8 +43,7 @@ func loadConfig() *Config { } else if c.CodexSessionCookie != "" { codexAuth = "cookie+mint" } - fmt.Printf("Config: refresh=%v, testnets=%v, mobula_key=%v, codex=%s, covalent_key=%v, coinstats_key=%v, sim_dune_key=%v\n", - c.RefreshInterval, c.IncludeTestnets, c.MobulaAPIKey != "", codexAuth, - c.CovalentAPIKey != "", c.CoinStatsAPIKey != "", c.SimDuneAPIKey != "") + fmt.Printf("Config: refresh=%v, testnets=%v, mobula_key=%v, codex=%s\n", + c.RefreshInterval, c.IncludeTestnets, c.MobulaAPIKey != "", codexAuth) return c } diff --git a/harnesses/network-coverage/cmd/script/covalent.go b/harnesses/network-coverage/cmd/script/covalent.go deleted file mode 100644 index 740d22b2..00000000 --- a/harnesses/network-coverage/cmd/script/covalent.go +++ /dev/null @@ -1,83 +0,0 @@ -package main - -import ( - "encoding/json" - "fmt" - "io" - "net/http" - "time" -) - -const covalentChainsURL = "https://api.covalenthq.com/v1/chains/" - -// Covalent returns chain_id as a numeric string even for canonical EVM -// chains (e.g. "1" for Ethereum). Keep the raw string to avoid losing -// precision on non-EVM chains where the id can exceed int64 range. -type covalentChain struct { - ChainID string `json:"chain_id"` - Name string `json:"name"` - Label string `json:"label"` - IsTestnet bool `json:"is_testnet"` -} - -type covalentResponse struct { - Data struct { - Items []covalentChain `json:"items"` - } `json:"data"` - Error bool `json:"error"` - ErrorMessage string `json:"error_message"` -} - -func fetchCovalent(cfg *Config) ProviderResult { - res := ProviderResult{Provider: "covalent"} - if cfg.CovalentAPIKey == "" { - res.Err = "missing_api_key" - return res - } - - client := &http.Client{Timeout: 15 * time.Second} - req, _ := http.NewRequest("GET", covalentChainsURL, nil) - req.Header.Set("Authorization", "Bearer "+cfg.CovalentAPIKey) - req.Header.Set("Accept", "application/json") - - resp, err := client.Do(req) - if err != nil { - res.Err = fmt.Sprintf("request_error: %v", err) - return res - } - defer resp.Body.Close() - body, _ := io.ReadAll(resp.Body) - - if resp.StatusCode != 200 { - res.Err = fmt.Sprintf("status_%d", resp.StatusCode) - return res - } - - var parsed covalentResponse - if err := json.Unmarshal(body, &parsed); err != nil { - res.Err = fmt.Sprintf("parse_error: %v", err) - return res - } - if parsed.Error { - res.Err = "api_error: " + parsed.ErrorMessage - return res - } - - for _, c := range parsed.Data.Items { - if c.IsTestnet && !cfg.IncludeTestnets { - continue - } - label := c.Label - if label == "" { - label = c.Name - } - res.Networks = append(res.Networks, Network{ - ChainID: c.ChainID, - Slug: c.Name, - Name: label, - Testnet: c.IsTestnet, - }) - } - - return res -} diff --git a/harnesses/network-coverage/cmd/script/main.go b/harnesses/network-coverage/cmd/script/main.go index bcaab8b0..04c7f24f 100644 --- a/harnesses/network-coverage/cmd/script/main.go +++ b/harnesses/network-coverage/cmd/script/main.go @@ -71,10 +71,6 @@ func fetchAll(cfg *Config) { {"geckoterminal", fetchGeckoTerminal}, {"mobula", fetchMobula}, {"codex", fetchCodex}, - {"coinpaprika", fetchCoinPaprika}, - {"dune", fetchSimDune}, - {"covalent", fetchCovalent}, - {"coinstats", fetchCoinStats}, } var wg sync.WaitGroup diff --git a/harnesses/network-coverage/cmd/script/simdune.go b/harnesses/network-coverage/cmd/script/simdune.go deleted file mode 100644 index 508abf0d..00000000 --- a/harnesses/network-coverage/cmd/script/simdune.go +++ /dev/null @@ -1,76 +0,0 @@ -package main - -import ( - "encoding/json" - "fmt" - "io" - "net/http" - "strconv" - "time" -) - -const simDuneChainsURL = "https://api.sim.dune.com/v1/evm/supported-chains" - -type simDuneChain struct { - Name string `json:"name"` - ChainID int `json:"chain_id"` - Tags []string `json:"tags"` -} - -type simDuneResponse struct { - Chains []simDuneChain `json:"chains"` -} - -// fetchSimDune queries Sim by Dune's public supported-chains endpoint. -// EVM-only by design. Mainnets are tagged "mainnet"; everything else is -// treated as testnet/preview and filtered out unless IncludeTestnets is on. -func fetchSimDune(cfg *Config) ProviderResult { - res := ProviderResult{Provider: "dune"} - - client := &http.Client{Timeout: 15 * time.Second} - req, _ := http.NewRequest("GET", simDuneChainsURL, nil) - req.Header.Set("Accept", "application/json") - if cfg.SimDuneAPIKey != "" { - req.Header.Set("X-Sim-Api-Key", cfg.SimDuneAPIKey) - } - - resp, err := client.Do(req) - if err != nil { - res.Err = fmt.Sprintf("request_error: %v", err) - return res - } - defer resp.Body.Close() - body, _ := io.ReadAll(resp.Body) - - if resp.StatusCode != 200 { - res.Err = fmt.Sprintf("status_%d", resp.StatusCode) - return res - } - - var parsed simDuneResponse - if err := json.Unmarshal(body, &parsed); err != nil { - res.Err = fmt.Sprintf("parse_error: %v", err) - return res - } - - for _, c := range parsed.Chains { - isMainnet := false - for _, t := range c.Tags { - if t == "mainnet" { - isMainnet = true - break - } - } - if !isMainnet && !cfg.IncludeTestnets { - continue - } - res.Networks = append(res.Networks, Network{ - ChainID: strconv.Itoa(c.ChainID), - Slug: c.Name, - Name: c.Name, - Testnet: !isMainnet, - }) - } - - return res -} diff --git a/harnesses/rpc-capabilities/README.md b/harnesses/rpc-capabilities/README.md index 3d1ec9aa..38a4327c 100644 --- a/harnesses/rpc-capabilities/README.md +++ b/harnesses/rpc-capabilities/README.md @@ -109,43 +109,11 @@ go run ./cmd/script ## Deployment -Standard OCB-miniapp shape — multi-stage Dockerfile, port 2112, internal-only on Railway, scraped by `openchainbench-monitoring/prometheus/prometheus.yml`. - -### Region labeling - -Every emitted metric carries a `region` label resolved at boot by `main.go: loadRegion()`, in this order: - -1. `$REGION` — explicit override (set when running 3 separate Railway services) -2. `$RAILWAY_REPLICA_REGION` — set automatically by Railway per replica when a single service is scaled across regions via "Add Region". Raw GCP-style slugs (`us-east4-eqdc4a`, `europe-west4-drams5`, `asia-southeast1-eqsg3a`) are normalized to the canonical `us-east` / `eu-west` / `sgp` set -3. `eu-west` — back-compat default for the original single-region deploy - -### Multi-region deploy — two options - -**Option A: one service, replicas per region (recommended on Railway).** Go to the service → Settings → Regions → "+ Add Region". Pick US East + EU West + Asia Southeast (Singapore). Railway sets `RAILWAY_REPLICA_REGION` on each replica and the harness self-labels correctly. Prometheus scrapes one internal DNS target (`rpc-capabilities.railway.internal:2112`) and the load-balancer cycles through replicas. - -**Option B: three separate services.** Use this when you want predictable scrape targets or per-region service ownership (e.g. for cost attribution). - -| Railway service | `REGION` env | Railway region | Internal DNS | -|---|---|---|---| -| `rpc-capabilities-us` | `us-east` | us-east4 | `rpc-capabilities-us.railway.internal:2112` | -| `rpc-capabilities-eu` | `eu-west` | europe-west4 | `rpc-capabilities-eu.railway.internal:2112` | -| `rpc-capabilities-sgp` | `sgp` | asia-southeast1 | `rpc-capabilities-sgp.railway.internal:2112` | - -Prometheus scrape config for Option B: - -```yaml -- job_name: 'rpc-capabilities' - static_configs: - - targets: - - 'rpc-capabilities-us.railway.internal:2112' - - 'rpc-capabilities-eu.railway.internal:2112' - - 'rpc-capabilities-sgp.railway.internal:2112' - metrics_path: /metrics -``` - -Either way Prometheus records three series per `(provider, chain)` pair — one per region. The bench's PromQL queries pool across regions for the headline number and slice by region for the per-region chart. +Standard OCB-miniapp shape — multi-stage Dockerfile, port 2112, internal-only on Railway, scraped by `openchainbench-monitoring/prometheus/prometheus.yml` via `rpc-capabilities.railway.internal:2112`. ## Known limits + +- **Single geo** — the bench currently runs from one Railway region. Latency rankings can reorder under different network paths; for full credibility the published numbers should say which geo they came from. Multi-region replication is a v2 lift (same pattern as `aggregator-head-lag`). - **Shard variance** — `1rpc` and `flashbots` appear to load-balance across a mixed pool where some shards are pruned. The bench observes the variance honestly but reports per-cycle, so a single hourly cycle can land on either the archive or pruned shard. A v2 improvement would do a 3-probe quorum per (provider × depth). - **Stale-state classification** — needs ≥2 working providers per chain to compute the cross-provider tip. If both Ethereum providers fail simultaneously, `stale` cannot be detected; the harness falls back to whatever tip it last observed. - **No rate-limit signals** — none of the probed endpoints return `x-ratelimit-*` headers, so the bench cannot proactively show quotas. KyberSwap-style explicit limits would be a nice future addition. diff --git a/harnesses/rpc-capabilities/cmd/script/archive.go b/harnesses/rpc-capabilities/cmd/script/archive.go index e4069813..826df89d 100644 --- a/harnesses/rpc-capabilities/cmd/script/archive.go +++ b/harnesses/rpc-capabilities/cmd/script/archive.go @@ -64,7 +64,7 @@ func archiveOne(ctx context.Context, c Chain, p Provider) { // Mark every depth as unsupported so a flap doesn't // leave a stale `1` in the time series. for _, d := range depthBuckets { - rpcArchiveDepth.WithLabelValues(p.Slug, c.Slug, currentRegion, fmt.Sprintf("%d", d)).Set(0) + rpcArchiveDepth.WithLabelValues(p.Slug, c.Slug, fmt.Sprintf("%d", d)).Set(0) } return } @@ -81,7 +81,7 @@ func archiveOne(ctx context.Context, c Chain, p Provider) { if ok { val = 1.0 } - rpcArchiveDepth.WithLabelValues(p.Slug, c.Slug, currentRegion, fmt.Sprintf("%d", d)).Set(val) + rpcArchiveDepth.WithLabelValues(p.Slug, c.Slug, fmt.Sprintf("%d", d)).Set(val) fmt.Printf("[archive/%s/%s] depth=%d head=%d ok=%v\n", c.Slug, p.Slug, d, head, ok) select { case <-ctx.Done(): diff --git a/harnesses/rpc-capabilities/cmd/script/main.go b/harnesses/rpc-capabilities/cmd/script/main.go index 25088458..c47c3836 100644 --- a/harnesses/rpc-capabilities/cmd/script/main.go +++ b/harnesses/rpc-capabilities/cmd/script/main.go @@ -5,7 +5,6 @@ import ( "fmt" "os" "os/signal" - "strings" "syscall" ) @@ -16,53 +15,9 @@ import ( // listener away from the address Prometheus expects. Same fix as // l2-block-time (see mobula-api commit 833026a719). -// currentRegion is the value stamped onto every emitted Prometheus -// label as `region=`. Set once at startup. Resolution order: -// 1. $REGION (explicit override — set this when running 3 separate -// Railway services instead of replicas of one) -// 2. $RAILWAY_REPLICA_REGION (Railway sets this per replica when -// a single service is scaled across regions via "Add Region") -// 3. "eu-west" (back-compat default for the original single-region -// deploy that pre-dates region labeling) -var currentRegion = loadRegion() - -func loadRegion() string { - if r := strings.TrimSpace(os.Getenv("REGION")); r != "" { - return r - } - if r := normalizeRailwayRegion(os.Getenv("RAILWAY_REPLICA_REGION")); r != "" { - return r - } - return "eu-west" -} - -// Railway exposes replica region as raw GCP-style slugs like -// "us-east4-eqdc4a" / "europe-west4-drams5" / "asia-southeast1-eqsg3a". -// We map them down to the canonical 3-region set the bench publishes -// (us-east / eu-west / sgp) so the Prom label space stays small. -// Unknown values pass through so a new Railway region surfaces in the -// metric instead of silently bucketing as "eu-west". -func normalizeRailwayRegion(raw string) string { - raw = strings.ToLower(strings.TrimSpace(raw)) - if raw == "" { - return "" - } - switch { - case strings.HasPrefix(raw, "us-"), strings.HasPrefix(raw, "northamerica"): - return "us-east" - case strings.HasPrefix(raw, "europe"), strings.HasPrefix(raw, "eu-"): - return "eu-west" - case strings.HasPrefix(raw, "asia"), strings.HasPrefix(raw, "ap-"): - return "sgp" - default: - return raw - } -} - func main() { fmt.Println("=== RPC Capabilities Harness ===") fmt.Println("OpenChainBench - public RPC latency, reliability, and archive depth.") - fmt.Printf("Region: %s (set via $REGION env)\n", currentRegion) fmt.Println() for _, c := range chains() { diff --git a/harnesses/rpc-capabilities/cmd/script/metrics.go b/harnesses/rpc-capabilities/cmd/script/metrics.go index 899714fe..8ec2470e 100644 --- a/harnesses/rpc-capabilities/cmd/script/metrics.go +++ b/harnesses/rpc-capabilities/cmd/script/metrics.go @@ -22,7 +22,7 @@ var ( Name: "rpc_latency_milliseconds", Help: "Latest observed HTTP round-trip in milliseconds for `eth_blockNumber` against a public RPC endpoint.", }, - []string{"provider", "chain", "region"}, + []string{"provider", "chain"}, ) rpcLatencyHist = promauto.NewHistogramVec( @@ -31,7 +31,7 @@ var ( Help: "Histogram of public RPC `eth_blockNumber` latencies — drives the p50/p90/p99 leaderboard via `histogram_quantile` / `quantile_over_time`.", Buckets: []float64{50, 100, 150, 200, 300, 500, 750, 1000, 1500, 2000, 3000, 5000, 10000}, }, - []string{"provider", "chain", "region"}, + []string{"provider", "chain"}, ) rpcCallTotal = promauto.NewCounterVec( @@ -39,7 +39,7 @@ var ( Name: "rpc_call_total", Help: "Number of RPC calls broken down by result classification: ok, http_err (status != 200 or transport failure), jsonrpc_err (HTTP 200 with `error` field — Ankr/Cloudflare-eth trap), stale (block more than 20 behind cross-provider tip), timeout.", }, - []string{"provider", "chain", "region", "result"}, + []string{"provider", "chain", "result"}, ) rpcHealth = promauto.NewGaugeVec( @@ -47,7 +47,7 @@ var ( Name: "rpc_health", Help: "1 when the most recent latency probe returned a fresh, valid block, 0 otherwise.", }, - []string{"provider", "chain", "region"}, + []string{"provider", "chain"}, ) rpcArchiveDepth = promauto.NewGaugeVec( @@ -55,7 +55,7 @@ var ( Name: "rpc_archive_depth_supported", Help: "1 if `eth_getBalance` at (head - depth) returns a non-pruned response, 0 otherwise. depth label is in blocks. The set {300, 7200, 216000, 1296000, 5000000} covers Geth's default pruned cap up through genesis-era full archive.", }, - []string{"provider", "chain", "region", "depth"}, + []string{"provider", "chain", "depth"}, ) ) diff --git a/harnesses/rpc-capabilities/cmd/script/probe.go b/harnesses/rpc-capabilities/cmd/script/probe.go index b6324445..72115353 100644 --- a/harnesses/rpc-capabilities/cmd/script/probe.go +++ b/harnesses/rpc-capabilities/cmd/script/probe.go @@ -136,8 +136,8 @@ func probeOne(ctx context.Context, c Chain, p Provider) { probeCtx, cancel := context.WithTimeout(ctx, probeTimeout) defer cancel() block, result, latency, err := callBlockNumber(probeCtx, p.URL) - rpcLatency.WithLabelValues(p.Slug, c.Slug, currentRegion).Set(latency) - rpcLatencyHist.WithLabelValues(p.Slug, c.Slug, currentRegion).Observe(latency) + rpcLatency.WithLabelValues(p.Slug, c.Slug).Set(latency) + rpcLatencyHist.WithLabelValues(p.Slug, c.Slug).Observe(latency) if result == "ok" { tips.update(c.Slug, block) @@ -146,12 +146,12 @@ func probeOne(ctx context.Context, c Chain, p Provider) { result = "stale" } } - rpcCallTotal.WithLabelValues(p.Slug, c.Slug, currentRegion, result).Inc() + rpcCallTotal.WithLabelValues(p.Slug, c.Slug, result).Inc() if result == "ok" { - rpcHealth.WithLabelValues(p.Slug, c.Slug, currentRegion).Set(1) + rpcHealth.WithLabelValues(p.Slug, c.Slug).Set(1) fmt.Printf("[%s/%s] block=%d latency=%.0fms\n", c.Slug, p.Slug, block, latency) } else { - rpcHealth.WithLabelValues(p.Slug, c.Slug, currentRegion).Set(0) + rpcHealth.WithLabelValues(p.Slug, c.Slug).Set(0) fmt.Printf("[%s/%s] %s latency=%.0fms err=%v\n", c.Slug, p.Slug, result, latency, err) } } diff --git a/harnesses/solana-quote-latency/.env.example b/harnesses/solana-quote-latency/.env.example deleted file mode 100644 index e0efb9c9..00000000 --- a/harnesses/solana-quote-latency/.env.example +++ /dev/null @@ -1,19 +0,0 @@ -# Region this replica self-labels into every emitted metric. -# One Railway service per region, each with its own MONITOR_REGION value. -# us-east | eu-west | sgp | unknown (default) -MONITOR_REGION=local - -# Mobula API key (required to probe Mobula). -# Sent as raw `Authorization: ` header — NO Bearer prefix. -MOBULA_API_KEY= - -# Jupiter API key (optional). Public lite endpoint works without it. -JUPITER_API_KEY= - -# DFlow API key (reserved). The DFlow adapter is currently a stub -# pending partnership API access. -DFLOW_API_KEY= - -# Optional shared token gating GET /logs?tail=N. -# When unset, /logs returns 404. -LOGS_TOKEN= diff --git a/harnesses/solana-quote-latency/.gitignore b/harnesses/solana-quote-latency/.gitignore deleted file mode 100644 index 089d940c..00000000 --- a/harnesses/solana-quote-latency/.gitignore +++ /dev/null @@ -1 +0,0 @@ -/monitor diff --git a/harnesses/solana-quote-latency/Dockerfile b/harnesses/solana-quote-latency/Dockerfile deleted file mode 100644 index 8868166b..00000000 --- a/harnesses/solana-quote-latency/Dockerfile +++ /dev/null @@ -1,28 +0,0 @@ -# Build stage -FROM golang:1.24-alpine AS builder - -WORKDIR /app - -RUN apk add --no-cache git - -COPY go.mod go.sum ./ -RUN go mod download - -COPY . . - -RUN CGO_ENABLED=0 GOOS=linux go build -o /app/monitor ./cmd/monitor - -# Runtime stage -FROM debian:bookworm-slim - -WORKDIR /app - -RUN apt-get update && apt-get install -y \ - ca-certificates \ - && rm -rf /var/lib/apt/lists/* - -COPY --from=builder /app/monitor /app/monitor - -EXPOSE 2112 - -CMD ["/app/monitor"] diff --git a/harnesses/solana-quote-latency/README.md b/harnesses/solana-quote-latency/README.md deleted file mode 100644 index f278b564..00000000 --- a/harnesses/solana-quote-latency/README.md +++ /dev/null @@ -1,104 +0,0 @@ -# solana-quote-latency harness - -Source for OpenChainBench bench [`solana-dex-quote-latency`](https://openchainbench.com/benchmarks/solana-dex-quote-latency). - -Every 60 s the harness picks a **currently-trending Solana token** from a live Pulse V2 WebSocket feed and asks each of Jupiter, Mobula, OpenOcean and Raydium for a `100 USDC → tokenOut` quote. Rotating against tokens that are actually trending right now defeats every per-pair edge cache and forces each provider to actually search a route — the recorded number reflects routing-search cost, not a CDN hit. - -Exposes Prometheus metrics on `:2112/metrics` (OCB Railway convention). - -## How it works - -### Rotation source - -A persistent WebSocket goroutine subscribes to `wss://pulse-v2-api.mobula.io` (`model: "default"`, `assetMode: true`, `chainId: ["solana:solana"]`, view `new`). The server auto-pushes all three views — `new`, `bonding`, `bonded` — over the same connection. The subscriber filters incoming events to `viewName == "bonded"` (post-bonding-curve graduates from Pump.fun, Meteora DBC, Raydium LaunchLab) and maintains a sliding 30-minute pool deduped by mint. On the Solana bonded view this stabilises at ~50-300 active mints. A REST snapshot of `api.mobula.io/api/1/market/query` (Solana volume ranks 6-55) refreshes every 10 minutes as a passive fallback so the bench survives a Pulse outage. In steady state every tick is sourced from the WS feed. - -> Mobula caps each API key at 3 tracked views across all open subscriptions. Each Railway replica (us-east, eu-west, sgp) opens 1 view = 3 total — right at the cap. Do not add another Pulse-using harness on the same key. - -### Per tick - -One tick = one randomly picked token (Pulse first, REST fallback) × four parallel probes. Each provider adapter: - -1. Builds the canonical request: `inputMint=USDC, outputMint=, amount=100 USDC, slippage=1%`. -2. Reuses a per-provider `http.Client` configured for keep-alive (30 s `KeepAlive`, 90 s `IdleConnTimeout`, HTTP/2 attempt). After the first tick the TCP + TLS connection is reused, so the wallclock around `client.Do(req)` measures steady-state RTT (request handling + origin work + response), not the cold handshake. -3. Measures wallclock from `client.Do` dispatch to the first byte of a response body containing a usable out-amount (`outAmount` for Jupiter, `data.amountOutTokens` for Mobula, `data.outAmount` for OpenOcean, `data.outputAmount` for Raydium). -4. Records the sample on `solana_quote_latency_ms{provider, region}` **only when** the response is a real quote. Throttle / auth / no-route / network errors land on their own counters and are excluded from the histogram. - -Region is set via `MONITOR_REGION` on each Railway replica. - -## Failure classification - -Each tick records exactly one counter for a non-success outcome: - -| Counter | Trigger | -|---|---| -| `solana_quote_throttled_total` | HTTP 429 | -| `solana_quote_auth_error_total` | HTTP 401/403 | -| `solana_quote_no_route_total` | Provider returned a recognisable "this token has no path on me" signal (see below) | -| `solana_quote_other_error_total{error_type}` | Anything else (network/timeout/parse/validation/non-2xx) | - -`no_route` is its own bucket because every provider is allowed to honestly say "I can't route this token". Counting that as a latency outlier would punish providers that fail fast and reward providers that hallucinate a number. Verified no-route signals: - -- **Jupiter**: HTTP 400 with `errorCode: NO_ROUTES_FOUND` or `errorCode: TOKEN_NOT_TRADABLE`. -- **Mobula**: HTTP 4xx with `error: "No route found"` or `error: "Token not found: solana:solana:"`. -- **Raydium**: HTTP 200 + `success: false` + `msg: INSUFFICIENT_LIQUIDITY` or `msg: ROUTE_NOT_FOUND`. Raydium's compute API is single-venue (Raydium AMM v4/CPMM/CLMM only) and does not multi-hop, so it returns no-route on roughly 30-50% of long-tail tokens — that's a real coverage signal, not a bug. -- **OpenOcean**: HTTP 200 wrapper `code: 200`, data `code: 0`, but `outAmount == "0"` or `dexId < 0` or `path == null` or `price_impact == "-100%"`. OpenOcean has no string error for no-route, so we read the payload. - -## Metrics - -``` -solana_quote_latency_ms{provider, region} histogram — buckets 10, 25, 50, 100, 200, 500, 1000, 2000, 5000 ms (only on success) -solana_quote_success{provider, region} gauge 0|1 — last cycle outcome -solana_quote_throttled_total{provider, region} counter — HTTP 429 -solana_quote_auth_error_total{provider, region} counter — HTTP 401/403 -solana_quote_no_route_total{provider, region} counter — liquidity-gap failures -solana_quote_other_error_total{provider, region, error_type} counter — everything else -``` - -## Run locally - -```bash -cd cmd/monitor -MONITOR_REGION=local MOBULA_API_KEY=... go run . -``` - -Or Docker: - -```bash -docker build -t solana-quote-latency . -docker run -p 2112:2112 \ - -e MONITOR_REGION=local \ - -e MOBULA_API_KEY=... \ - solana-quote-latency -curl localhost:2112/metrics | grep solana_quote_latency -``` - -## Environment - -| Var | Default | Notes | -|---|---|---| -| `MONITOR_REGION` | `unknown` | `us-east` \| `eu-west` \| `sgp`. Self-labelled into every emitted metric. | -| `MOBULA_API_KEY` | (required) | Required to probe Mobula AND to fetch the trending rotation list. Sent as raw `Authorization: ` header (no Bearer prefix). | -| `JUPITER_API_KEY` | (unset) | Optional. The lite endpoint works without a key. | -| `DFLOW_API_KEY` | (unset) | Reserved. DFlow adapter is a stub pending partnership API access. | -| `LOGS_TOKEN` | (unset) | Optional, gates `GET /logs?tail=N` (404 when unset). | - -## Endpoints - -| Path | Description | -|---|---| -| `GET /metrics` | Prometheus scrape target | -| `GET /health` | Returns `200 OK` | -| `GET /logs?tail=N` | Last 5000 lines of stdout (ring buffer). Requires `X-Logs-Token: $LOGS_TOKEN` | - -## Design notes - -- **Token rotation, not a canonical pair.** Anchoring the bench to SOL → USDC (or any single popular pair) meant we were comparing edge caches, not routing. The Pulse-fed rotation against tokens that are actually trending right now forces every provider to actually search a path. -- **Warm-path measurement.** Each provider keeps one `http.Client` for the life of the process and reuses TCP + TLS across ticks. We measure steady-state RTT, not the first-call cold-start. -- **10 s per-request timeout.** Slow responses are recorded as `other_error{error_type="timeout"}`, not as 10 s latency samples. -- **60 s tick.** ≈ 1,440 samples per provider per region per day, with each tick targeting a different token from the ~40-token rotation list. -- **Histogram-only buckets.** No quantile is computed inside the harness; the bench YAML uses `histogram_quantile()` on Prometheus's side over a 24-hour window. This keeps the percentiles correct across restarts and replicas. -- **Region is hosted, not virtual.** Three Railway services in three regions each run this binary with their own `MONITOR_REGION` env. - -## Reproducibility - -Public quote endpoints. A Mobula API key is free (`https://mobula.io/api`). Anyone can clone, run, and reproduce the numbers on the bench page. diff --git a/harnesses/solana-quote-latency/cmd/monitor/config.go b/harnesses/solana-quote-latency/cmd/monitor/config.go deleted file mode 100644 index 848bbe8b..00000000 --- a/harnesses/solana-quote-latency/cmd/monitor/config.go +++ /dev/null @@ -1,82 +0,0 @@ -package main - -import ( - "bufio" - "fmt" - "os" - "strings" -) - -type Config struct { - MobulaAPIKey string - DFlowAPIKey string - JupiterAPIKey string - MonitorRegion string - LogsToken string -} - -func loadEnv() (*Config, error) { - cfg := &Config{ - MobulaAPIKey: strings.TrimSpace(os.Getenv("MOBULA_API_KEY")), - DFlowAPIKey: strings.TrimSpace(os.Getenv("DFLOW_API_KEY")), - JupiterAPIKey: strings.TrimSpace(os.Getenv("JUPITER_API_KEY")), - MonitorRegion: strings.TrimSpace(os.Getenv("MONITOR_REGION")), - LogsToken: strings.TrimSpace(os.Getenv("LOGS_TOKEN")), - } - - if cfg.MonitorRegion == "" { - cfg.MonitorRegion = "unknown" - } - - // If any env var is already populated assume we're in production / Railway - // and skip the .env file lookup. - if cfg.MobulaAPIKey != "" || cfg.DFlowAPIKey != "" || cfg.JupiterAPIKey != "" || cfg.LogsToken != "" { - return cfg, nil - } - - file, err := os.Open(".env") - if err != nil { - return cfg, nil - } - defer file.Close() - - scanner := bufio.NewScanner(file) - for scanner.Scan() { - line := strings.TrimSpace(scanner.Text()) - if line == "" || strings.HasPrefix(line, "#") { - continue - } - parts := strings.SplitN(line, "=", 2) - if len(parts) != 2 { - continue - } - key, value := strings.TrimSpace(parts[0]), strings.TrimSpace(parts[1]) - switch key { - case "MOBULA_API_KEY": - if cfg.MobulaAPIKey == "" { - cfg.MobulaAPIKey = value - } - case "DFLOW_API_KEY": - if cfg.DFlowAPIKey == "" { - cfg.DFlowAPIKey = value - } - case "JUPITER_API_KEY": - if cfg.JupiterAPIKey == "" { - cfg.JupiterAPIKey = value - } - case "MONITOR_REGION": - if cfg.MonitorRegion == "" || cfg.MonitorRegion == "unknown" { - cfg.MonitorRegion = value - } - case "LOGS_TOKEN": - if cfg.LogsToken == "" { - cfg.LogsToken = value - } - } - } - - if err := scanner.Err(); err != nil { - return nil, fmt.Errorf("error reading .env file: %w", err) - } - return cfg, nil -} diff --git a/harnesses/solana-quote-latency/cmd/monitor/dflow.go b/harnesses/solana-quote-latency/cmd/monitor/dflow.go deleted file mode 100644 index 03f2d4b2..00000000 --- a/harnesses/solana-quote-latency/cmd/monitor/dflow.go +++ /dev/null @@ -1,27 +0,0 @@ -package main - -import ( - "context" - "fmt" -) - -// DFlowProvider — STUB. -// TODO: implement based on agent-1's curl validation. DFlow's quote endpoint -// and auth shape must be captured first, then ported following Jupiter as a -// template. -type DFlowProvider struct { - region string - apiKey string -} - -func NewDFlowProvider(region, apiKey string) *DFlowProvider { - return &DFlowProvider{region: region, apiKey: apiKey} -} - -func (p *DFlowProvider) Slug() string { return "dflow" } - -func (p *DFlowProvider) Probe(ctx context.Context, tokenOut TrendingToken) (int64, bool, error) { - // TODO: implement based on agent-1's curl validation - RecordOtherError(p.Slug(), p.region, "not_implemented") - return 0, false, fmt.Errorf("dflow provider not implemented") -} diff --git a/harnesses/solana-quote-latency/cmd/monitor/http_client.go b/harnesses/solana-quote-latency/cmd/monitor/http_client.go deleted file mode 100644 index d3f3349f..00000000 --- a/harnesses/solana-quote-latency/cmd/monitor/http_client.go +++ /dev/null @@ -1,35 +0,0 @@ -package main - -import ( - "net" - "net/http" - "time" -) - -// newWarmHTTPClient returns an http.Client wired for connection reuse. -// -// Bench-029 measures the steady-state RTT a long-running backend integration -// sees, not the first-request cold-start penalty. So every provider adapter -// constructs ONE shared client at boot, reuses TCP + TLS across ticks via -// keepalive, and the only thing the wallclock around `client.Do(req)` -// captures is request handling + origin work + response. -// -// Connection pool sizing assumes the harness probes one endpoint per -// provider on a 60s tick — a couple of idle connections per host is plenty. -func newWarmHTTPClient() *http.Client { - return &http.Client{ - Timeout: 10 * time.Second, - Transport: &http.Transport{ - DialContext: (&net.Dialer{ - Timeout: 10 * time.Second, - KeepAlive: 30 * time.Second, - }).DialContext, - MaxIdleConns: 5, - MaxIdleConnsPerHost: 2, - IdleConnTimeout: 90 * time.Second, - TLSHandshakeTimeout: 10 * time.Second, - ExpectContinueTimeout: 1 * time.Second, - ForceAttemptHTTP2: true, - }, - } -} diff --git a/harnesses/solana-quote-latency/cmd/monitor/jupiter.go b/harnesses/solana-quote-latency/cmd/monitor/jupiter.go deleted file mode 100644 index bd10ec55..00000000 --- a/harnesses/solana-quote-latency/cmd/monitor/jupiter.go +++ /dev/null @@ -1,154 +0,0 @@ -package main - -import ( - "context" - "encoding/json" - "errors" - "fmt" - "io" - "net/http" - "net/url" - "strings" - "time" -) - -// JupiterProvider quotes USDC -> tokenOut on Jupiter's public lite quote -// endpoint for a fixed 100 USDC notional. Rotating tokenOut every tick from a -// long-tail volume window defeats Jupiter's edge cache for popular pairs (SOL, -// USDT, CBBTC) so the bench measures the routing search rather than a CDN hit. -type JupiterProvider struct { - region string - apiKey string - client *http.Client -} - -func NewJupiterProvider(region, apiKey string) *JupiterProvider { - return &JupiterProvider{region: region, apiKey: apiKey, client: newWarmHTTPClient()} -} - -func (p *JupiterProvider) Slug() string { return "jupiter" } - -const ( - jupiterQuoteEndpoint = "https://lite-api.jup.ag/swap/v1/quote" - solMint = "So11111111111111111111111111111111111111112" - usdcMint = "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v" - canonicalUsdcRaw = "100000000" // 100 USDC, 6 decimals - canonicalUsdcWhole = "100" - canonicalSlippageBps = "100" // 1% - long-tail tokens need wider tolerance - canonicalSlippagePct = "1" // same 1% expressed as percent for APIs that take percent -) - -type jupiterQuoteResp struct { - OutAmount string `json:"outAmount"` - ErrorCode string `json:"errorCode"` - ErrorMessage string `json:"error"` -} - -func (p *JupiterProvider) Probe(ctx context.Context, tokenOut TrendingToken) (int64, bool, error) { - q := url.Values{} - q.Set("inputMint", usdcMint) - q.Set("outputMint", tokenOut.Mint) - q.Set("amount", canonicalUsdcRaw) - q.Set("slippageBps", canonicalSlippageBps) - - fullURL := jupiterQuoteEndpoint + "?" + q.Encode() - req, err := http.NewRequestWithContext(ctx, http.MethodGet, fullURL, nil) - if err != nil { - RecordOtherError(p.Slug(), p.region, "request_build") - return 0, false, fmt.Errorf("build request: %w", err) - } - req.Header.Set("Accept", "application/json") - if p.apiKey != "" { - req.Header.Set("X-API-Key", p.apiKey) - } - - start := time.Now() - resp, err := p.client.Do(req) - if err != nil { - errType := "network" - if errors.Is(err, context.DeadlineExceeded) { - errType = "timeout" - } - RecordOtherError(p.Slug(), p.region, errType) - return 0, false, fmt.Errorf("jupiter http: %w", err) - } - defer resp.Body.Close() - - switch resp.StatusCode { - case http.StatusTooManyRequests: - _, _ = io.Copy(io.Discard, resp.Body) - RecordThrottled(p.Slug(), p.region) - return 0, false, fmt.Errorf("jupiter http 429") - case http.StatusUnauthorized, http.StatusForbidden: - _, _ = io.Copy(io.Discard, resp.Body) - RecordAuthError(p.Slug(), p.region) - return 0, false, fmt.Errorf("jupiter http %d", resp.StatusCode) - } - - body, err := io.ReadAll(resp.Body) - if err != nil { - RecordOtherError(p.Slug(), p.region, "read_body") - return 0, false, fmt.Errorf("read body: %w", err) - } - - // Jupiter returns HTTP 400 with errorCode "COULD_NOT_FIND_ANY_ROUTE" for - // tokens it can't route. That's a liquidity gap, not a server error, so it - // goes on the no-route counter and is excluded from the latency histogram. - if resp.StatusCode == http.StatusBadRequest { - var parsed jupiterQuoteResp - _ = json.Unmarshal(body, &parsed) - if isNoRouteSignal(parsed.ErrorCode, parsed.ErrorMessage) { - RecordNoRoute(p.Slug(), p.region) - return 0, false, fmt.Errorf("jupiter no route for %s", tokenOut.Symbol) - } - RecordOtherError(p.Slug(), p.region, "http_400") - return 0, false, fmt.Errorf("jupiter http 400: %s", parsed.ErrorMessage) - } - - if resp.StatusCode < 200 || resp.StatusCode >= 300 { - RecordOtherError(p.Slug(), p.region, fmt.Sprintf("http_%d", resp.StatusCode)) - return 0, false, fmt.Errorf("jupiter http %d", resp.StatusCode) - } - - var parsed jupiterQuoteResp - if err := json.Unmarshal(body, &parsed); err != nil { - RecordOtherError(p.Slug(), p.region, "parse") - return 0, false, fmt.Errorf("parse: %w", err) - } - if parsed.OutAmount == "" { - RecordNoRoute(p.Slug(), p.region) - return 0, false, fmt.Errorf("jupiter empty outAmount for %s", tokenOut.Symbol) - } - - latencyMs := time.Since(start).Milliseconds() - return latencyMs, true, nil -} - -// isNoRouteSignal classifies a provider error as "the token doesn't have a -// quotable path on this provider" (vs server error, validation error, auth). -// -// Concrete shapes verified against each provider's actual responses (see -// agent deep-test in PR description): -// - Jupiter HTTP 400 → errorCode NO_ROUTES_FOUND | TOKEN_NOT_TRADABLE -// - Mobula HTTP 200 → error "No route found" OR "Token not found: ..." -// - OpenOcean HTTP 200 wrapper → handled separately by inspecting payload -// (outAmount=="0" || dexId<0 || path==null). No string signal. -// - Raydium HTTP 200 success:false → msg INSUFFICIENT_LIQUIDITY | ROUTE_NOT_FOUND -func isNoRouteSignal(code, msg string) bool { - upper := strings.ToUpper(code) + " " + strings.ToUpper(msg) - low := strings.ToLower(msg) - if strings.Contains(upper, "COULD_NOT_FIND_ANY_ROUTE") || - strings.Contains(upper, "INSUFFICIENT_LIQUIDITY") || - strings.Contains(upper, "NO_ROUTE") || // matches NO_ROUTE, NO_ROUTES, NO_ROUTES_FOUND - strings.Contains(upper, "ROUTE_NOT_FOUND") || - strings.Contains(upper, "TOKEN_NOT_TRADABLE") { - return true - } - return strings.Contains(low, "no route") || - strings.Contains(low, "no routes") || - strings.Contains(low, "could not find") || - strings.Contains(low, "insufficient liquidity") || - strings.Contains(low, "route not found") || - strings.Contains(low, "not tradable") || - strings.Contains(low, "token not found") -} diff --git a/harnesses/solana-quote-latency/cmd/monitor/log_buffer.go b/harnesses/solana-quote-latency/cmd/monitor/log_buffer.go deleted file mode 100644 index f4a66bb8..00000000 --- a/harnesses/solana-quote-latency/cmd/monitor/log_buffer.go +++ /dev/null @@ -1,113 +0,0 @@ -package main - -import ( - "bufio" - "fmt" - "io" - "net/http" - "os" - "strconv" - "sync" - "time" -) - -// logBuffer keeps the last N log lines in memory for debug fetching via /logs. -// Captures BOTH log.* and fmt.Print* output (stdout is dup'd via a pipe). -// -// Implementation: fixed-size circular buffer. `head` points at the next slot -// to write; once `filled` is true every overwrite is O(1) instead of the O(n) -// slice-shift the prior version used. -type logBuffer struct { - mu sync.Mutex - lines []string - max int - head int // next write index - filled bool // wrapped at least once -} - -const logBufferMax = 5000 - -var globalLogBuffer = &logBuffer{lines: make([]string, logBufferMax), max: logBufferMax} - -func (b *logBuffer) push(line string) { - entry := time.Now().UTC().Format("2006-01-02T15:04:05.000Z") + " " + line - b.mu.Lock() - b.lines[b.head] = entry - b.head++ - if b.head >= b.max { - b.head = 0 - b.filled = true - } - b.mu.Unlock() -} - -func (b *logBuffer) Snapshot(tail int) []string { - b.mu.Lock() - defer b.mu.Unlock() - size := b.head - if b.filled { - size = b.max - } - if tail <= 0 || tail >= size { - tail = size - } - out := make([]string, 0, tail) - // Walk back `tail` slots from head-1 (modular). - for i := 0; i < tail; i++ { - idx := (b.head - tail + i + b.max) % b.max - out = append(out, b.lines[idx]) - } - return out -} - -// installLogCapture replaces os.Stdout with the write-end of a pipe, then -// spawns a goroutine that fan-outs every line to the real stdout AND the -// in-memory ring buffer. Catches fmt.Println/Printf as well as log.Printf. -// Call exactly once, very early in main(). -func installLogCapture() { - originalStdout := os.Stdout - r, w, err := os.Pipe() - if err != nil { - fmt.Fprintf(originalStdout, "[log_buffer] failed to create pipe: %v (logs endpoint will be empty)\n", err) - return - } - os.Stdout = w - - go func() { - scanner := bufio.NewScanner(r) - buf := make([]byte, 0, 1024*1024) - scanner.Buffer(buf, 1024*1024) - for scanner.Scan() { - line := scanner.Text() - fmt.Fprintln(originalStdout, line) - globalLogBuffer.push(line) - } - _, _ = io.Copy(originalStdout, r) - }() -} - -// setupLogsEndpoint exposes GET /logs?tail=N (default 500, max logBufferMax). -// Fail-secure: when LOGS_TOKEN env var is not set, returns 404. -func setupLogsEndpoint(mux *http.ServeMux) { - expectedToken := os.Getenv("LOGS_TOKEN") - mux.HandleFunc("/logs", func(w http.ResponseWriter, r *http.Request) { - if expectedToken == "" { - http.NotFound(w, r) - return - } - if r.Header.Get("X-Logs-Token") != expectedToken { - http.Error(w, "forbidden", http.StatusForbidden) - return - } - tail := 500 - if t := r.URL.Query().Get("tail"); t != "" { - if n, err := strconv.Atoi(t); err == nil && n > 0 { - tail = n - } - } - w.Header().Set("Content-Type", "text/plain; charset=utf-8") - for _, l := range globalLogBuffer.Snapshot(tail) { - fmt.Fprintln(w, l) - } - }) -} diff --git a/harnesses/solana-quote-latency/cmd/monitor/main.go b/harnesses/solana-quote-latency/cmd/monitor/main.go deleted file mode 100644 index b4d742ac..00000000 --- a/harnesses/solana-quote-latency/cmd/monitor/main.go +++ /dev/null @@ -1,59 +0,0 @@ -package main - -import ( - "fmt" - "os" - "os/signal" - "sync" - "syscall" -) - -func main() { - installLogCapture() // must be first — captures all subsequent stdout into ring buffer for /logs - fmt.Println("=== Solana Quote Latency Monitor (v2 — rotating long-tail tokens) ===") - fmt.Println("Measuring USDC -> quote latency every 60s") - fmt.Println("Token rotation defeats per-pair CDN caches; we measure routing search.") - fmt.Println("Press Ctrl+C to stop") - fmt.Println() - - cfg, err := loadEnv() - if err != nil { - fmt.Printf("Error: %v\n", err) - os.Exit(1) - } - - fmt.Printf("Region: %s\n", cfg.MonitorRegion) - fmt.Printf("Mobula key set: %v\n", cfg.MobulaAPIKey != "") - fmt.Printf("DFlow key set: %v\n", cfg.DFlowAPIKey != "") - fmt.Printf("Jupiter key set: %v (public lite endpoint works without it)\n", cfg.JupiterAPIKey != "") - fmt.Println("Metrics on :2112/metrics, logs on :2112/logs (LOGS_TOKEN gated)") - fmt.Println() - - sigChan := make(chan os.Signal, 1) - signal.Notify(sigChan, os.Interrupt, syscall.SIGTERM) - - var wg sync.WaitGroup - stopChan := make(chan struct{}) - - wg.Add(1) - go func() { - defer wg.Done() - fmt.Println("Starting Prometheus metrics server on :2112") - if err := StartMetricsServer(":2112"); err != nil { - fmt.Printf("Metrics server error: %v\n", err) - } - }() - - wg.Add(1) - go func() { - defer wg.Done() - runScheduler(cfg, stopChan) - }() - - <-sigChan - fmt.Println("\n\nShutting down...") - close(stopChan) - - wg.Wait() - fmt.Println("All monitors stopped") -} diff --git a/harnesses/solana-quote-latency/cmd/monitor/metrics.go b/harnesses/solana-quote-latency/cmd/monitor/metrics.go deleted file mode 100644 index 23b0602b..00000000 --- a/harnesses/solana-quote-latency/cmd/monitor/metrics.go +++ /dev/null @@ -1,115 +0,0 @@ -package main - -import ( - "net/http" - - "github.com/prometheus/client_golang/prometheus" - "github.com/prometheus/client_golang/prometheus/promhttp" -) - -var ( - quoteLatencyMs *prometheus.HistogramVec - quoteSuccess *prometheus.GaugeVec - quoteThrottled *prometheus.CounterVec - quoteAuthError *prometheus.CounterVec - quoteNoRoute *prometheus.CounterVec - quoteOtherError *prometheus.CounterVec -) - -func init() { - quoteLatencyMs = prometheus.NewHistogramVec( - prometheus.HistogramOpts{ - Name: "solana_quote_latency_ms", - Help: "Solana DEX quote API latency in milliseconds (successful quotes only)", - Buckets: []float64{10, 25, 50, 100, 200, 500, 1000, 2000, 5000}, - }, - []string{"provider", "region"}, - ) - prometheus.MustRegister(quoteLatencyMs) - - quoteSuccess = prometheus.NewGaugeVec( - prometheus.GaugeOpts{ - Name: "solana_quote_success", - Help: "Last probe outcome per provider (1 = success, 0 = failure)", - }, - []string{"provider", "region"}, - ) - prometheus.MustRegister(quoteSuccess) - - quoteThrottled = prometheus.NewCounterVec( - prometheus.CounterOpts{ - Name: "solana_quote_throttled_total", - Help: "Total HTTP 429 responses per provider", - }, - []string{"provider", "region"}, - ) - prometheus.MustRegister(quoteThrottled) - - quoteAuthError = prometheus.NewCounterVec( - prometheus.CounterOpts{ - Name: "solana_quote_auth_error_total", - Help: "Total HTTP 401/403 responses per provider", - }, - []string{"provider", "region"}, - ) - prometheus.MustRegister(quoteAuthError) - - quoteNoRoute = prometheus.NewCounterVec( - prometheus.CounterOpts{ - Name: "solana_quote_no_route_total", - Help: "Total times a provider returned no route for the picked tokenOut (long-tail liquidity gap, not a server error)", - }, - []string{"provider", "region"}, - ) - prometheus.MustRegister(quoteNoRoute) - - quoteOtherError = prometheus.NewCounterVec( - prometheus.CounterOpts{ - Name: "solana_quote_other_error_total", - Help: "Total non-auth, non-throttle, non-no-route errors per provider (network, timeout, parse, non-2xx)", - }, - []string{"provider", "region", "error_type"}, - ) - prometheus.MustRegister(quoteOtherError) -} - -// RecordLatency observes a successful quote latency. -// Caller MUST NOT call this on auth / throttle / parse failures. -func RecordLatency(provider, region string, latencyMs int64) { - quoteLatencyMs.WithLabelValues(provider, region).Observe(float64(latencyMs)) -} - -func RecordSuccess(provider, region string, ok bool) { - v := 0.0 - if ok { - v = 1.0 - } - quoteSuccess.WithLabelValues(provider, region).Set(v) -} - -func RecordThrottled(provider, region string) { - quoteThrottled.WithLabelValues(provider, region).Inc() -} - -func RecordAuthError(provider, region string) { - quoteAuthError.WithLabelValues(provider, region).Inc() -} - -func RecordNoRoute(provider, region string) { - quoteNoRoute.WithLabelValues(provider, region).Inc() -} - -func RecordOtherError(provider, region, errorType string) { - quoteOtherError.WithLabelValues(provider, region, errorType).Inc() -} - -func StartMetricsServer(addr string) error { - mux := http.NewServeMux() - mux.Handle("/metrics", promhttp.Handler()) - mux.HandleFunc("/health", func(w http.ResponseWriter, r *http.Request) { - w.WriteHeader(http.StatusOK) - _, _ = w.Write([]byte("ok")) - }) - setupLogsEndpoint(mux) - return http.ListenAndServe(addr, mux) -} diff --git a/harnesses/solana-quote-latency/cmd/monitor/mobula.go b/harnesses/solana-quote-latency/cmd/monitor/mobula.go deleted file mode 100644 index 70812d20..00000000 --- a/harnesses/solana-quote-latency/cmd/monitor/mobula.go +++ /dev/null @@ -1,121 +0,0 @@ -package main - -import ( - "context" - "encoding/json" - "errors" - "fmt" - "io" - "net/http" - "net/url" - "strings" - "time" -) - -// MobulaProvider quotes USDC -> tokenOut via Mobula's swap quoting endpoint. -// Auth header is the raw key (no Bearer). Amount is in whole tokens. -type MobulaProvider struct { - region string - apiKey string - client *http.Client -} - -func NewMobulaProvider(region, apiKey string) *MobulaProvider { - return &MobulaProvider{region: region, apiKey: apiKey, client: newWarmHTTPClient()} -} - -func (p *MobulaProvider) Slug() string { return "mobula" } - -const ( - mobulaQuoteEndpoint = "https://api.mobula.io/api/2/swap/quoting" - canonicalFromAddress = "HN7cABqLq46Es1jh92dQQisAq662SmxELLLsHHe4YWrH" -) - -type mobulaQuoteResp struct { - Data struct { - AmountOutTokens string `json:"amountOutTokens"` - } `json:"data"` - // Mobula returns 4xx with {message,error,statusCode} on validation errors, - // and {message:"No route found"} when there's no path for the requested pair. - Message string `json:"message"` - Error string `json:"error"` - StatusCode int `json:"statusCode"` -} - -func (p *MobulaProvider) Probe(ctx context.Context, tokenOut TrendingToken) (int64, bool, error) { - if p.apiKey == "" { - RecordAuthError(p.Slug(), p.region) - return 0, false, fmt.Errorf("mobula api key missing") - } - - q := url.Values{} - q.Set("chainId", "solana") - q.Set("tokenIn", usdcMint) - q.Set("tokenOut", tokenOut.Mint) - q.Set("amount", canonicalUsdcWhole) // 100 USDC, whole tokens - q.Set("walletAddress", canonicalFromAddress) - q.Set("slippage", canonicalSlippagePct) - - fullURL := mobulaQuoteEndpoint + "?" + q.Encode() - req, err := http.NewRequestWithContext(ctx, http.MethodGet, fullURL, nil) - if err != nil { - RecordOtherError(p.Slug(), p.region, "request_build") - return 0, false, fmt.Errorf("build request: %w", err) - } - req.Header.Set("Accept", "application/json") - req.Header.Set("Authorization", p.apiKey) - - start := time.Now() - resp, err := p.client.Do(req) - if err != nil { - errType := "network" - if errors.Is(err, context.DeadlineExceeded) { - errType = "timeout" - } - RecordOtherError(p.Slug(), p.region, errType) - return 0, false, fmt.Errorf("mobula http: %w", err) - } - defer resp.Body.Close() - - switch resp.StatusCode { - case http.StatusTooManyRequests: - _, _ = io.Copy(io.Discard, resp.Body) - RecordThrottled(p.Slug(), p.region) - return 0, false, fmt.Errorf("mobula http 429") - case http.StatusUnauthorized, http.StatusForbidden: - _, _ = io.Copy(io.Discard, resp.Body) - RecordAuthError(p.Slug(), p.region) - return 0, false, fmt.Errorf("mobula http %d", resp.StatusCode) - } - - body, err := io.ReadAll(resp.Body) - if err != nil { - RecordOtherError(p.Slug(), p.region, "read_body") - return 0, false, fmt.Errorf("read body: %w", err) - } - - if resp.StatusCode < 200 || resp.StatusCode >= 300 { - var parsed mobulaQuoteResp - _ = json.Unmarshal(body, &parsed) - if isNoRouteSignal(parsed.Error, parsed.Message) || - strings.Contains(strings.ToLower(string(body)), "no route") { - RecordNoRoute(p.Slug(), p.region) - return 0, false, fmt.Errorf("mobula no route for %s", tokenOut.Symbol) - } - RecordOtherError(p.Slug(), p.region, fmt.Sprintf("http_%d", resp.StatusCode)) - return 0, false, fmt.Errorf("mobula http %d: %s", resp.StatusCode, parsed.Message) - } - - var parsed mobulaQuoteResp - if err := json.Unmarshal(body, &parsed); err != nil { - RecordOtherError(p.Slug(), p.region, "parse") - return 0, false, fmt.Errorf("parse: %w", err) - } - if parsed.Data.AmountOutTokens == "" { - RecordNoRoute(p.Slug(), p.region) - return 0, false, fmt.Errorf("mobula empty data.amountOutTokens for %s", tokenOut.Symbol) - } - - latencyMs := time.Since(start).Milliseconds() - return latencyMs, true, nil -} diff --git a/harnesses/solana-quote-latency/cmd/monitor/openocean.go b/harnesses/solana-quote-latency/cmd/monitor/openocean.go deleted file mode 100644 index 703b44d5..00000000 --- a/harnesses/solana-quote-latency/cmd/monitor/openocean.go +++ /dev/null @@ -1,149 +0,0 @@ -package main - -import ( - "context" - "encoding/json" - "errors" - "fmt" - "io" - "net/http" - "net/url" - "strings" - "time" -) - -// OpenOceanProvider quotes USDC -> tokenOut on OpenOcean's v4 Solana quote -// endpoint. Amount is in whole tokens. Body is double-enveloped: -// {code, data:{code, ..., outAmount}}. -type OpenOceanProvider struct { - region string - client *http.Client -} - -func NewOpenOceanProvider(region string) *OpenOceanProvider { - return &OpenOceanProvider{region: region, client: newWarmHTTPClient()} -} - -func (p *OpenOceanProvider) Slug() string { return "openocean" } - -const openOceanQuoteEndpoint = "https://open-api.openocean.finance/v4/solana/quote" - -type openOceanQuoteResp struct { - Code int `json:"code"` - Message string `json:"message"` - Data struct { - Code int `json:"code"` - Message string `json:"message"` - OutAmount string `json:"outAmount"` - DexId int `json:"dexId"` - Path any `json:"path"` // null when no route - PriceImpact string `json:"price_impact"` // "-100%" when no route - } `json:"data"` -} - -// openOceanIsNoRouteBody returns true when OpenOcean's success-looking response -// is in fact a "no route" — OpenOcean does NOT return a string error for this, -// you have to read the payload (verified via deep-test): -// - outAmount == "0" -// - dexId < 0 (negative dexId signals route-engine gave up) -// - path is null -// - price_impact == "-100%" -// Any of these is sufficient. -func openOceanIsNoRouteBody(p *openOceanQuoteResp) bool { - if p.Data.OutAmount == "0" || p.Data.OutAmount == "" { - return true - } - if p.Data.DexId < 0 { - return true - } - if p.Data.Path == nil { - return true - } - if p.Data.PriceImpact == "-100%" { - return true - } - return false -} - -func (p *OpenOceanProvider) Probe(ctx context.Context, tokenOut TrendingToken) (int64, bool, error) { - q := url.Values{} - q.Set("inTokenAddress", usdcMint) - q.Set("outTokenAddress", tokenOut.Mint) - q.Set("amount", canonicalUsdcWhole) - q.Set("gasPrice", "0.000005") - q.Set("slippage", canonicalSlippagePct) - - fullURL := openOceanQuoteEndpoint + "?" + q.Encode() - req, err := http.NewRequestWithContext(ctx, http.MethodGet, fullURL, nil) - if err != nil { - RecordOtherError(p.Slug(), p.region, "request_build") - return 0, false, fmt.Errorf("build request: %w", err) - } - req.Header.Set("Accept", "application/json") - - start := time.Now() - resp, err := p.client.Do(req) - if err != nil { - errType := "network" - if errors.Is(err, context.DeadlineExceeded) { - errType = "timeout" - } - RecordOtherError(p.Slug(), p.region, errType) - return 0, false, fmt.Errorf("openocean http: %w", err) - } - defer resp.Body.Close() - - switch resp.StatusCode { - case http.StatusTooManyRequests: - _, _ = io.Copy(io.Discard, resp.Body) - RecordThrottled(p.Slug(), p.region) - return 0, false, fmt.Errorf("openocean http 429") - case http.StatusUnauthorized, http.StatusForbidden: - _, _ = io.Copy(io.Discard, resp.Body) - RecordAuthError(p.Slug(), p.region) - return 0, false, fmt.Errorf("openocean http %d", resp.StatusCode) - } - - body, err := io.ReadAll(resp.Body) - if err != nil { - RecordOtherError(p.Slug(), p.region, "read_body") - return 0, false, fmt.Errorf("read body: %w", err) - } - - if resp.StatusCode < 200 || resp.StatusCode >= 300 { - var parsed openOceanQuoteResp - _ = json.Unmarshal(body, &parsed) - if isNoRouteSignal("", parsed.Message) || isNoRouteSignal("", parsed.Data.Message) || - strings.Contains(strings.ToLower(string(body)), "no route") { - RecordNoRoute(p.Slug(), p.region) - return 0, false, fmt.Errorf("openocean no route for %s", tokenOut.Symbol) - } - RecordOtherError(p.Slug(), p.region, fmt.Sprintf("http_%d", resp.StatusCode)) - return 0, false, fmt.Errorf("openocean http %d", resp.StatusCode) - } - - var parsed openOceanQuoteResp - if err := json.Unmarshal(body, &parsed); err != nil { - RecordOtherError(p.Slug(), p.region, "parse") - return 0, false, fmt.Errorf("parse: %w", err) - } - // OpenOcean returns HTTP 200 + wrapper code:200 + data.code:0 even on - // no-route. The signal is in the data payload (outAmount=="0", dexId<0, - // path==null, price_impact=="-100%"). Check that BEFORE we trust the - // envelope as "success". - if openOceanIsNoRouteBody(&parsed) { - RecordNoRoute(p.Slug(), p.region) - return 0, false, fmt.Errorf("openocean no route for %s (outAmount=%q dexId=%d)", tokenOut.Symbol, parsed.Data.OutAmount, parsed.Data.DexId) - } - if parsed.Code != 200 || parsed.Data.Code != 0 { - if isNoRouteSignal("", parsed.Message) || isNoRouteSignal("", parsed.Data.Message) { - RecordNoRoute(p.Slug(), p.region) - return 0, false, fmt.Errorf("openocean no route for %s (code=%d/%d)", tokenOut.Symbol, parsed.Code, parsed.Data.Code) - } - RecordOtherError(p.Slug(), p.region, fmt.Sprintf("api_code_%d_%d", parsed.Code, parsed.Data.Code)) - return 0, false, fmt.Errorf("openocean api code %d/%d: %s", parsed.Code, parsed.Data.Code, parsed.Message) - } - - latencyMs := time.Since(start).Milliseconds() - return latencyMs, true, nil -} diff --git a/harnesses/solana-quote-latency/cmd/monitor/provider.go b/harnesses/solana-quote-latency/cmd/monitor/provider.go deleted file mode 100644 index a544dd5c..00000000 --- a/harnesses/solana-quote-latency/cmd/monitor/provider.go +++ /dev/null @@ -1,20 +0,0 @@ -package main - -import "context" - -// Provider is the contract every quote-latency adapter satisfies. -// -// Probe quotes USDC -> tokenOut on the provider's Solana endpoint and returns: -// - latencyMs measured around the HTTP round-trip on a warm (keep-alive) -// connection. Only meaningful when ok == true. -// - ok=true ONLY when the response body parsed AND contained a usable -// out-amount field for tokenOut. -// - ok=false on any failure where the latency is NOT representative of a -// successful quote. Implementations record the failure into the right -// counter (RecordAuthError / RecordThrottled / RecordNoRoute / -// RecordOtherError) before returning so the scheduler only has to -// record latency for the happy path. -type Provider interface { - Slug() string - Probe(ctx context.Context, tokenOut TrendingToken) (latencyMs int64, ok bool, err error) -} diff --git a/harnesses/solana-quote-latency/cmd/monitor/pulse_subscriber.go b/harnesses/solana-quote-latency/cmd/monitor/pulse_subscriber.go deleted file mode 100644 index 67c59c38..00000000 --- a/harnesses/solana-quote-latency/cmd/monitor/pulse_subscriber.go +++ /dev/null @@ -1,244 +0,0 @@ -package main - -import ( - "context" - "encoding/json" - "fmt" - "net/http" - "strings" - "sync" - "time" - - "github.com/gorilla/websocket" -) - -// PulseSubscriber owns a single persistent WS connection to Mobula Pulse V2 -// and pushes "currently trending" Solana mints into a sliding-window pool. -// -// Pulse V2 has no first-class "trending" view; the server's enum is locked to -// {new, bonding, bonded}. We subscribe to `new` (the only working subscription -// shape) and the server automatically emits ALL THREE views over the same -// connection. We then filter incoming `update-token` / `new-token` events to -// `viewName == "bonded"` — those are post-bonding-curve graduated tokens on -// PumpSwap/Raydium with real volume, which is the practical definition of -// "trending right now" on Solana. -// -// The bonded view emits ~10 distinct mints/min on Solana with a steady-state -// active set of 150-300 mints in any 30-min rolling window. We keep our pool -// bounded to that natural cardinality without an explicit cap. -// -// Caveat — Mobula caps each API key at 3 tracked views total across all active -// connections. If the same key is used by us-east + eu-west + sgp replicas, -// that's exactly 3 (each subscribe message uses 1 view). At the cap but not -// over. Adding any other Pulse-using harness on the same key would push it -// over and the server returns `Failed to subscribe to pulse v2 views`. -const pulseWSURL = "wss://pulse-v2-api.mobula.io" - -type pulseV2SubscribeMsg struct { - Type string `json:"type"` - Authorization string `json:"authorization"` - Payload pulseV2SubscribePayload `json:"payload"` -} - -type pulseV2SubscribePayload struct { - Model string `json:"model"` - AssetMode bool `json:"assetMode"` - ChainID []string `json:"chainId"` - Views []map[string]any `json:"views"` -} - -// pulseV2Envelope is the smallest discriminator we need to route an incoming -// message into the right handler. We unmarshal twice: once into the envelope -// to find `type`, then into the specific shape when type matches. -type pulseV2Envelope struct { - Type string `json:"type"` - Payload json.RawMessage `json:"payload"` -} - -type pulseV2TokenRecord struct { - Address string `json:"address"` - Symbol string `json:"symbol"` - ChainID string `json:"chainId"` -} - -type pulseV2TokenUpdatePayload struct { - ViewName string `json:"viewName"` - Token pulseV2TokenRecord `json:"token"` -} - -type pulseV2RemovePayload struct { - ViewName string `json:"viewName"` - TokenKey string `json:"tokenKey"` -} - -type pulseV2InitPayload struct { - Bonded struct { - Data []pulseV2TokenRecord `json:"data"` - } `json:"bonded"` -} - -// PulseSubscriber connects, reads, and writes to a token pool. Multiple users -// of the pool just call Pick on the embedded *TrendingFetcher. -type PulseSubscriber struct { - apiKey string - pool *TrendingFetcher - chainID string - - connectedAt time.Time - connected bool - connMu sync.RWMutex -} - -func NewPulseSubscriber(apiKey string, pool *TrendingFetcher) *PulseSubscriber { - return &PulseSubscriber{apiKey: apiKey, pool: pool, chainID: "solana:solana"} -} - -// IsConnected reports whether the WS session has been live within the last -// 90 s. The scheduler reads this to decide whether the pulse pool should be -// trusted as the rotation source or whether to fall back to the REST snapshot. -func (s *PulseSubscriber) IsConnected() bool { - s.connMu.RLock() - defer s.connMu.RUnlock() - if !s.connected { - return false - } - return time.Since(s.connectedAt) < 90*time.Second -} - -func (s *PulseSubscriber) markConnected() { - s.connMu.Lock() - s.connected = true - s.connectedAt = time.Now() - s.connMu.Unlock() -} - -func (s *PulseSubscriber) markDisconnected() { - s.connMu.Lock() - s.connected = false - s.connMu.Unlock() -} - -// Run blocks until ctx is cancelled. It opens one WS session, reads events -// until the connection drops, then reconnects with exponential backoff (5s -// floor, 60s ceiling). Each reconnect re-sends the subscribe payload, and the -// server replays the current snapshot via an `init` message — we use that to -// pre-fill the pool fast. -func (s *PulseSubscriber) Run(ctx context.Context) { - backoff := 5 * time.Second - const backoffCap = 60 * time.Second - for { - select { - case <-ctx.Done(): - return - default: - } - err := s.session(ctx) - s.markDisconnected() - if err != nil { - fmt.Printf("[PULSE-WS] session ended: %v — reconnect in %s\n", err, backoff) - } - select { - case <-ctx.Done(): - return - case <-time.After(backoff): - backoff *= 2 - if backoff > backoffCap { - backoff = backoffCap - } - } - // On a successful long-lived session we'd reset backoff; we approximate by - // halving on every reconnect attempt that gets past dial. - } -} - -func (s *PulseSubscriber) session(ctx context.Context) error { - dialer := *websocket.DefaultDialer - dialer.HandshakeTimeout = 15 * time.Second - hdr := http.Header{} - hdr.Set("Authorization", s.apiKey) - - conn, _, err := dialer.DialContext(ctx, pulseWSURL, hdr) - if err != nil { - return fmt.Errorf("dial: %w", err) - } - defer conn.Close() - - sub := pulseV2SubscribeMsg{ - Type: "pulse-v2", - Authorization: s.apiKey, - Payload: pulseV2SubscribePayload{ - Model: "default", - AssetMode: true, - ChainID: []string{s.chainID}, - Views: []map[string]any{ - {"name": "new", "sortBy": "created_at", "sortOrder": "desc", "limit": 50}, - }, - }, - } - if err := conn.WriteJSON(sub); err != nil { - return fmt.Errorf("subscribe write: %w", err) - } - fmt.Println("[PULSE-WS] subscribed; filtering for bonded Solana tokens") - s.markConnected() - - // Health: bump connectedAt every time we get a real message so IsConnected - // reflects liveness, not just initial dial. - for { - select { - case <-ctx.Done(): - return nil - default: - } - _ = conn.SetReadDeadline(time.Now().Add(120 * time.Second)) - _, raw, err := conn.ReadMessage() - if err != nil { - return fmt.Errorf("read: %w", err) - } - s.markConnected() - s.handleMessage(raw) - } -} - -func (s *PulseSubscriber) handleMessage(raw []byte) { - var env pulseV2Envelope - if err := json.Unmarshal(raw, &env); err != nil { - return - } - switch env.Type { - case "init": - var init pulseV2InitPayload - if err := json.Unmarshal(env.Payload, &init); err != nil { - return - } - for _, t := range init.Bonded.Data { - s.pool.Note(t.Address, t.Symbol) - } - fmt.Printf("[PULSE-WS] init: pre-loaded %d bonded tokens\n", len(init.Bonded.Data)) - case "new-token", "update-token": - var p pulseV2TokenUpdatePayload - if err := json.Unmarshal(env.Payload, &p); err != nil { - return - } - if p.ViewName != "bonded" { - return - } - if p.Token.Address == "" { - return - } - s.pool.Note(p.Token.Address, p.Token.Symbol) - case "remove-token": - var p pulseV2RemovePayload - if err := json.Unmarshal(env.Payload, &p); err != nil { - return - } - if p.ViewName != "bonded" { - return - } - // tokenKey is "solana:solana|" - parts := strings.SplitN(p.TokenKey, "|", 2) - if len(parts) != 2 { - return - } - s.pool.Forget(parts[1]) - } -} diff --git a/harnesses/solana-quote-latency/cmd/monitor/raydium.go b/harnesses/solana-quote-latency/cmd/monitor/raydium.go deleted file mode 100644 index 616d0d99..00000000 --- a/harnesses/solana-quote-latency/cmd/monitor/raydium.go +++ /dev/null @@ -1,120 +0,0 @@ -package main - -import ( - "context" - "encoding/json" - "errors" - "fmt" - "io" - "net/http" - "net/url" - "strings" - "time" -) - -// RaydiumProvider quotes USDC -> tokenOut on Raydium's single-venue Trade API. -// Raydium is NOT an aggregator; the Trade API only routes against Raydium's -// own pools, so many long-tail tokens will legitimately return "no route". -// That's intentional and surfaces the single-venue limitation in the bench. -type RaydiumProvider struct { - region string - client *http.Client -} - -func NewRaydiumProvider(region string) *RaydiumProvider { - return &RaydiumProvider{region: region, client: newWarmHTTPClient()} -} - -func (p *RaydiumProvider) Slug() string { return "raydium" } - -const raydiumQuoteEndpoint = "https://transaction-v1.raydium.io/compute/swap-base-in" - -type raydiumQuoteResp struct { - Success bool `json:"success"` - Msg string `json:"msg"` - Data struct { - OutputAmount string `json:"outputAmount"` - } `json:"data"` -} - -func (p *RaydiumProvider) Probe(ctx context.Context, tokenOut TrendingToken) (int64, bool, error) { - q := url.Values{} - q.Set("inputMint", usdcMint) - q.Set("outputMint", tokenOut.Mint) - q.Set("amount", canonicalUsdcRaw) - q.Set("slippageBps", canonicalSlippageBps) - q.Set("txVersion", "V0") - - fullURL := raydiumQuoteEndpoint + "?" + q.Encode() - req, err := http.NewRequestWithContext(ctx, http.MethodGet, fullURL, nil) - if err != nil { - RecordOtherError(p.Slug(), p.region, "request_build") - return 0, false, fmt.Errorf("build request: %w", err) - } - req.Header.Set("Accept", "application/json") - - start := time.Now() - resp, err := p.client.Do(req) - if err != nil { - errType := "network" - if errors.Is(err, context.DeadlineExceeded) { - errType = "timeout" - } - RecordOtherError(p.Slug(), p.region, errType) - return 0, false, fmt.Errorf("raydium http: %w", err) - } - defer resp.Body.Close() - - switch resp.StatusCode { - case http.StatusTooManyRequests: - _, _ = io.Copy(io.Discard, resp.Body) - RecordThrottled(p.Slug(), p.region) - return 0, false, fmt.Errorf("raydium http 429") - case http.StatusUnauthorized, http.StatusForbidden: - _, _ = io.Copy(io.Discard, resp.Body) - RecordAuthError(p.Slug(), p.region) - return 0, false, fmt.Errorf("raydium http %d", resp.StatusCode) - } - - body, err := io.ReadAll(resp.Body) - if err != nil { - RecordOtherError(p.Slug(), p.region, "read_body") - return 0, false, fmt.Errorf("read body: %w", err) - } - - if resp.StatusCode < 200 || resp.StatusCode >= 300 { - var parsed raydiumQuoteResp - _ = json.Unmarshal(body, &parsed) - if isNoRouteSignal("", parsed.Msg) || strings.Contains(strings.ToLower(string(body)), "no route") { - RecordNoRoute(p.Slug(), p.region) - return 0, false, fmt.Errorf("raydium no route for %s", tokenOut.Symbol) - } - RecordOtherError(p.Slug(), p.region, fmt.Sprintf("http_%d", resp.StatusCode)) - return 0, false, fmt.Errorf("raydium http %d: %s", resp.StatusCode, parsed.Msg) - } - - var parsed raydiumQuoteResp - if err := json.Unmarshal(body, &parsed); err != nil { - RecordOtherError(p.Slug(), p.region, "parse") - return 0, false, fmt.Errorf("parse: %w", err) - } - if !parsed.Success { - if isNoRouteSignal("", parsed.Msg) || parsed.Msg == "" { - // Raydium returns success=false with msg empty or "route not found" - // when the token isn't in any Raydium pool. Treat all success=false - // as no-route for the metric (it's an AMM limitation, not a server - // error). - RecordNoRoute(p.Slug(), p.region) - return 0, false, fmt.Errorf("raydium no route for %s: %s", tokenOut.Symbol, parsed.Msg) - } - RecordOtherError(p.Slug(), p.region, "api_not_success") - return 0, false, fmt.Errorf("raydium success=false: %s", parsed.Msg) - } - if parsed.Data.OutputAmount == "" { - RecordNoRoute(p.Slug(), p.region) - return 0, false, fmt.Errorf("raydium empty data.outputAmount for %s", tokenOut.Symbol) - } - - latencyMs := time.Since(start).Milliseconds() - return latencyMs, true, nil -} diff --git a/harnesses/solana-quote-latency/cmd/monitor/scheduler.go b/harnesses/solana-quote-latency/cmd/monitor/scheduler.go deleted file mode 100644 index e02287bf..00000000 --- a/harnesses/solana-quote-latency/cmd/monitor/scheduler.go +++ /dev/null @@ -1,135 +0,0 @@ -package main - -import ( - "context" - "fmt" - "sync" - "time" -) - -const ( - tickInterval = 60 * time.Second - probeTimeout = 10 * time.Second -) - -// buildProviders returns the enabled provider list given the resolved config. -// Public providers (Jupiter, OpenOcean, Raydium) are always on; gated providers -// (Mobula, DFlow) require their API key to be set. -func buildProviders(cfg *Config) []Provider { - providers := []Provider{ - NewJupiterProvider(cfg.MonitorRegion, cfg.JupiterAPIKey), - NewOpenOceanProvider(cfg.MonitorRegion), - NewRaydiumProvider(cfg.MonitorRegion), - } - if cfg.MobulaAPIKey != "" { - providers = append(providers, NewMobulaProvider(cfg.MonitorRegion, cfg.MobulaAPIKey)) - } - if cfg.DFlowAPIKey != "" { - providers = append(providers, NewDFlowProvider(cfg.MonitorRegion, cfg.DFlowAPIKey)) - } - return providers -} - -// runScheduler ticks every 60s and fans out one Probe per provider in parallel, -// each tick quoting USDC -> a fresh tokenOut picked from the Pulse-fed -// trending pool. Token rotation defeats per-pair edge caching (Jupiter caches -// SOL↔USDC aggressively) and forces every provider to actually search a route. -// -// Rotation source priority: -// 1. Pulse V2 WS bonded view (preferred — refreshed millisecond-by-millisecond -// with the tokens actually trending right now on Solana). -// 2. REST market-query snapshot (fallback — kept warm on a 10-min cron so the -// bench survives a Pulse outage). -// -// Pick() inside TrendingFetcher does the priority selection; scheduler never -// has to branch on which source is currently live. -func runScheduler(cfg *Config, stopChan <-chan struct{}) { - providers := buildProviders(cfg) - fmt.Printf("[SCHED] starting with %d providers, region=%s, tick=%s\n", - len(providers), cfg.MonitorRegion, tickInterval) - for _, p := range providers { - fmt.Printf("[SCHED] - %s\n", p.Slug()) - } - - if cfg.MobulaAPIKey == "" { - fmt.Println("[SCHED] FATAL: MOBULA_API_KEY is required to feed the trending rotation; aborting") - return - } - - trending := NewTrendingFetcher(cfg.MobulaAPIKey) - ctx, cancel := context.WithCancel(context.Background()) - defer cancel() - - // Pulse WS — primary rotation source. - pulse := NewPulseSubscriber(cfg.MobulaAPIKey, trending) - go pulse.Run(ctx) - - // REST snapshot — fallback rotation source. - go trending.RunREST(ctx) - - // Wait up to 30s for at least one rotation entry to land. Either source - // arriving first is fine — Pulse usually wins (sub-second once dialed) but - // REST will fill in within ~1s of the first /market/query response. - deadline := time.Now().Add(30 * time.Second) - for { - if _, ok := trending.Pick(); ok { - break - } - if time.Now().After(deadline) { - fmt.Println("[SCHED] FATAL: rotation pool never loaded (Pulse WS + REST both down for 30s); aborting") - return - } - time.Sleep(500 * time.Millisecond) - } - - // First tick fires immediately so we don't wait 60s for the first datapoint. - runTick(providers, cfg.MonitorRegion, trending, pulse) - - ticker := time.NewTicker(tickInterval) - defer ticker.Stop() - - for { - select { - case <-stopChan: - fmt.Println("[SCHED] stop signal received") - return - case <-ticker.C: - runTick(providers, cfg.MonitorRegion, trending, pulse) - } - } -} - -func runTick(providers []Provider, region string, trending *TrendingFetcher, pulse *PulseSubscriber) { - tokenOut, ok := trending.Pick() - if !ok { - fmt.Println("[SCHED] tick skipped: rotation pool empty") - return - } - src := "REST" - if pulse.IsConnected() { - src = "PULSE" - } - pulseLive, restCount := trending.Stats() - fmt.Printf("[SCHED] tick: USDC -> %s (%s) — src=%s pool: pulse=%d rest=%d\n", - tokenOut.Symbol, tokenOut.Mint, src, pulseLive, restCount) - - var wg sync.WaitGroup - for _, p := range providers { - wg.Add(1) - go func(p Provider) { - defer wg.Done() - ctx, cancel := context.WithTimeout(context.Background(), probeTimeout) - defer cancel() - - latencyMs, ok, err := p.Probe(ctx, tokenOut) - RecordSuccess(p.Slug(), region, ok) - if !ok { - fmt.Printf("[SCHED][%s] FAIL (%s): %v\n", p.Slug(), tokenOut.Symbol, err) - return - } - RecordLatency(p.Slug(), region, latencyMs) - fmt.Printf("[SCHED][%s] ok %s latency=%dms\n", p.Slug(), tokenOut.Symbol, latencyMs) - }(p) - } - wg.Wait() -} diff --git a/harnesses/solana-quote-latency/cmd/monitor/trending.go b/harnesses/solana-quote-latency/cmd/monitor/trending.go deleted file mode 100644 index 935ec23e..00000000 --- a/harnesses/solana-quote-latency/cmd/monitor/trending.go +++ /dev/null @@ -1,264 +0,0 @@ -package main - -import ( - "context" - "encoding/json" - "errors" - "fmt" - "io" - "math/rand" - "net/http" - "net/url" - "sync" - "time" -) - -// TrendingToken is one rotation entry. Symbol is for logs / debugging only; -// the mint is the canonical identity passed to every provider adapter. -type TrendingToken struct { - Mint string - Symbol string -} - -// TrendingFetcher is the rotation source the scheduler reads from. It holds -// two parallel populations: -// -// - "pulse pool" — fed by PulseSubscriber via Note() / Forget() from the -// live `wss://pulse-v2-api.mobula.io` bonded view. Each entry has a -// `lastSeen` timestamp and is evicted from Pick after 30 min of silence. -// This is the preferred source — it tracks what's actually trending right -// now, refreshed on the millisecond. -// -// - "rest fallback" — the older list fetched from -// `api.mobula.io/api/1/market/query?sortBy=volume&offset=5&limit=50` every -// 10 min. Used ONLY when the Pulse WS hasn't seen a message in > 90 s -// (initial connection delay, network blip, Mobula incident). Without this -// safety net the bench would stall during any Pulse outage. -// -// Pick() prefers pulse when it has fresh entries and falls through to the -// REST snapshot otherwise. The scheduler never has to branch. -const ( - trendingFetchEndpoint = "https://api.mobula.io/api/1/market/query" - trendingSkipTop = 5 // skip USDC, USDT, CBBTC, SOL, USD1 - trendingFetchLimit = 50 - trendingRefreshEvery = 10 * time.Minute - trendingMinLiquidity = 50_000.0 - pulseEntryTTL = 30 * time.Minute // entries older than this stop appearing in Pick -) - -// stablecoinSymbols mirrors the stablecoin filter applied to the REST snapshot -// — the Pulse bonded view occasionally emits a stable graduating from a -// launchpad too, and quoting USDC → USDC defeats the purpose. -var stablecoinSymbols = map[string]bool{ - "USDC": true, "USDT": true, "USD1": true, "USDG": true, "USDE": true, - "DAI": true, "FDUSD": true, "PYUSD": true, "USDD": true, "USDS": true, -} - -type mobulaQueryResp []struct { - Symbol string `json:"symbol"` - Liquidity float64 `json:"liquidity"` - Contracts []struct { - Address string `json:"address"` - Blockchain string `json:"blockchain"` - } `json:"contracts"` -} - -type pulseEntry struct { - mint string - symbol string - lastSeen time.Time -} - -type TrendingFetcher struct { - apiKey string - client *http.Client - - mu sync.RWMutex - // rest snapshot (background refresh from /market/query) - restTokens []TrendingToken - // pulse-fed pool keyed by mint - pulse map[string]*pulseEntry - - // lastRESTLoad / lastPulseAt track how fresh each source is. - lastRESTLoad time.Time -} - -func NewTrendingFetcher(apiKey string) *TrendingFetcher { - return &TrendingFetcher{ - apiKey: apiKey, - client: newWarmHTTPClient(), - pulse: make(map[string]*pulseEntry), - } -} - -// Note records that the Pulse bonded view saw this token. Called from the WS -// subscriber's goroutine on every `update-token` / `new-token` event. Skips -// stablecoin symbols and the canonical pair anchors (SOL, USDC). -func (f *TrendingFetcher) Note(mint, symbol string) { - if mint == "" || mint == solMint || mint == usdcMint { - return - } - if stablecoinSymbols[symbol] { - return - } - now := time.Now() - f.mu.Lock() - if e, ok := f.pulse[mint]; ok { - e.lastSeen = now - if e.symbol == "" && symbol != "" { - e.symbol = symbol - } - } else { - f.pulse[mint] = &pulseEntry{mint: mint, symbol: symbol, lastSeen: now} - } - f.mu.Unlock() -} - -// Forget drops a token from the pulse pool. Called when Pulse emits -// `remove-token` (the bonded view shrunk past this entry). -func (f *TrendingFetcher) Forget(mint string) { - f.mu.Lock() - delete(f.pulse, mint) - f.mu.Unlock() -} - -// pulseLive returns the subset of pulse entries seen within pulseEntryTTL. -// Also opportunistically prunes anything older. -func (f *TrendingFetcher) pulseLive() []TrendingToken { - now := time.Now() - cutoff := now.Add(-pulseEntryTTL) - out := make([]TrendingToken, 0, len(f.pulse)) - for mint, e := range f.pulse { - if e.lastSeen.Before(cutoff) { - delete(f.pulse, mint) - continue - } - out = append(out, TrendingToken{Mint: e.mint, Symbol: e.symbol}) - } - return out -} - -// Pick returns one random token from the freshest available source. Tries the -// Pulse pool first; falls through to the REST snapshot when Pulse is empty. -func (f *TrendingFetcher) Pick() (TrendingToken, bool) { - f.mu.Lock() - defer f.mu.Unlock() - if live := f.pulseLive(); len(live) > 0 { - return live[rand.Intn(len(live))], true - } - if len(f.restTokens) > 0 { - return f.restTokens[rand.Intn(len(f.restTokens))], true - } - return TrendingToken{}, false -} - -// Stats returns counts for logging. -func (f *TrendingFetcher) Stats() (pulseLive, restCount int) { - f.mu.RLock() - defer f.mu.RUnlock() - cutoff := time.Now().Add(-pulseEntryTTL) - for _, e := range f.pulse { - if !e.lastSeen.Before(cutoff) { - pulseLive++ - } - } - restCount = len(f.restTokens) - return -} - -// RefreshREST pulls the long-tail-by-volume snapshot. Used as fallback when -// the Pulse WS is down. Keeps the prior list on failure so we don't stall. -func (f *TrendingFetcher) RefreshREST(ctx context.Context) error { - q := url.Values{} - q.Set("sortBy", "volume") - q.Set("sortOrder", "desc") - q.Set("blockchain", "Solana") - q.Set("limit", fmt.Sprintf("%d", trendingFetchLimit)) - q.Set("offset", fmt.Sprintf("%d", trendingSkipTop)) - - fullURL := trendingFetchEndpoint + "?" + q.Encode() - req, err := http.NewRequestWithContext(ctx, http.MethodGet, fullURL, nil) - if err != nil { - return fmt.Errorf("build request: %w", err) - } - req.Header.Set("Accept", "application/json") - if f.apiKey != "" { - req.Header.Set("Authorization", f.apiKey) - } - - resp, err := f.client.Do(req) - if err != nil { - errType := "network" - if errors.Is(err, context.DeadlineExceeded) { - errType = "timeout" - } - return fmt.Errorf("rest fetch (%s): %w", errType, err) - } - defer resp.Body.Close() - body, err := io.ReadAll(resp.Body) - if err != nil { - return fmt.Errorf("read body: %w", err) - } - if resp.StatusCode < 200 || resp.StatusCode >= 300 { - return fmt.Errorf("rest http %d", resp.StatusCode) - } - - var parsed mobulaQueryResp - if err := json.Unmarshal(body, &parsed); err != nil { - return fmt.Errorf("parse: %w", err) - } - - var out []TrendingToken - for _, t := range parsed { - if stablecoinSymbols[t.Symbol] { - continue - } - if t.Liquidity < trendingMinLiquidity { - continue - } - var solAddr string - for _, c := range t.Contracts { - if c.Blockchain == "solana:solana" { - solAddr = c.Address - break - } - } - if solAddr == "" || solAddr == solMint || solAddr == usdcMint { - continue - } - out = append(out, TrendingToken{Mint: solAddr, Symbol: t.Symbol}) - } - if len(out) == 0 { - return fmt.Errorf("rest: 0 tradable tokens after filter") - } - - f.mu.Lock() - f.restTokens = out - f.lastRESTLoad = time.Now() - f.mu.Unlock() - fmt.Printf("[TRENDING][REST] fallback list refreshed: %d tokens\n", len(out)) - return nil -} - -// RunREST keeps the REST snapshot warm on a 10-min cycle. The Pulse WS feeds -// the primary pool; this is the safety net. -func (f *TrendingFetcher) RunREST(ctx context.Context) { - doRefresh := func() { - c, cancel := context.WithTimeout(ctx, 15*time.Second) - defer cancel() - if err := f.RefreshREST(c); err != nil { - fmt.Printf("[TRENDING][REST] refresh failed: %v (keeping prior list)\n", err) - } - } - doRefresh() - t := time.NewTicker(trendingRefreshEvery) - defer t.Stop() - for { - select { - case <-ctx.Done(): - return - case <-t.C: - doRefresh() - } - } -} diff --git a/harnesses/solana-quote-latency/go.mod b/harnesses/solana-quote-latency/go.mod deleted file mode 100644 index c777452a..00000000 --- a/harnesses/solana-quote-latency/go.mod +++ /dev/null @@ -1,21 +0,0 @@ -module mobula_solana_quote_latency - -go 1.24.4 - -require ( - github.com/gorilla/websocket v1.5.3 - github.com/prometheus/client_golang v1.23.2 -) - -require ( - github.com/beorn7/perks v1.0.1 // indirect - github.com/cespare/xxhash/v2 v2.3.0 // indirect - github.com/kr/text v0.2.0 // indirect - github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822 // indirect - github.com/prometheus/client_model v0.6.2 // indirect - github.com/prometheus/common v0.66.1 // indirect - github.com/prometheus/procfs v0.16.1 // indirect - go.yaml.in/yaml/v2 v2.4.2 // indirect - golang.org/x/sys v0.35.0 // indirect - google.golang.org/protobuf v1.36.8 // indirect -) diff --git a/harnesses/solana-quote-latency/go.sum b/harnesses/solana-quote-latency/go.sum deleted file mode 100644 index 02807ba4..00000000 --- a/harnesses/solana-quote-latency/go.sum +++ /dev/null @@ -1,48 +0,0 @@ -github.com/beorn7/perks v1.0.1 h1:VlbKKnNfV8bJzeqoa4cOKqO6bYr3WgKZxO8Z16+hsOM= -github.com/beorn7/perks v1.0.1/go.mod h1:G2ZrVWU2WbWT9wwq4/hrbKbnv/1ERSJQ0ibhJ6rlkpw= -github.com/cespare/xxhash/v2 v2.3.0 h1:UL815xU9SqsFlibzuggzjXhog7bL6oX9BbNZnL2UFvs= -github.com/cespare/xxhash/v2 v2.3.0/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs= -github.com/creack/pty v1.1.9/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ33E= -github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= -github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= -github.com/google/go-cmp v0.7.0 h1:wk8382ETsv4JYUZwIsn6YpYiWiBsYLSJiTsyBybVuN8= -github.com/google/go-cmp v0.7.0/go.mod h1:pXiqmnSA92OHEEa9HXL2W4E7lf9JzCmGVUdgjX3N/iU= -github.com/gorilla/websocket v1.5.3 h1:saDtZ6Pbx/0u+bgYQ3q96pZgCzfhKXGPqt7kZ72aNNg= -github.com/gorilla/websocket v1.5.3/go.mod h1:YR8l580nyteQvAITg2hZ9XVh4b55+EU/adAjf1fMHhE= -github.com/klauspost/compress v1.18.0 h1:c/Cqfb0r+Yi+JtIEq73FWXVkRonBlf0CRNYc8Zttxdo= -github.com/klauspost/compress v1.18.0/go.mod h1:2Pp+KzxcywXVXMr50+X0Q/Lsb43OQHYWRCY2AiWywWQ= -github.com/kr/pretty v0.3.1 h1:flRD4NNwYAUpkphVc1HcthR4KEIFJ65n8Mw5qdRn3LE= -github.com/kr/pretty v0.3.1/go.mod h1:hoEshYVHaxMs3cyo3Yncou5ZscifuDolrwPKZanG3xk= -github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY= -github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE= -github.com/kylelemons/godebug v1.1.0 h1:RPNrshWIDI6G2gRW9EHilWtl7Z6Sb1BR0xunSBf0SNc= -github.com/kylelemons/godebug v1.1.0/go.mod h1:9/0rRGxNHcop5bhtWyNeEfOS8JIWk580+fNqagV/RAw= -github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822 h1:C3w9PqII01/Oq1c1nUAm88MOHcQC9l5mIlSMApZMrHA= -github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822/go.mod h1:+n7T8mK8HuQTcFwEeznm/DIxMOiR9yIdICNftLE1DvQ= -github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= -github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= -github.com/prometheus/client_golang v1.23.2 h1:Je96obch5RDVy3FDMndoUsjAhG5Edi49h0RJWRi/o0o= -github.com/prometheus/client_golang v1.23.2/go.mod h1:Tb1a6LWHB3/SPIzCoaDXI4I8UHKeFTEQ1YCr+0Gyqmg= -github.com/prometheus/client_model v0.6.2 h1:oBsgwpGs7iVziMvrGhE53c/GrLUsZdHnqNwqPLxwZyk= -github.com/prometheus/client_model v0.6.2/go.mod h1:y3m2F6Gdpfy6Ut/GBsUqTWZqCUvMVzSfMLjcu6wAwpE= -github.com/prometheus/common v0.66.1 h1:h5E0h5/Y8niHc5DlaLlWLArTQI7tMrsfQjHV+d9ZoGs= -github.com/prometheus/common v0.66.1/go.mod h1:gcaUsgf3KfRSwHY4dIMXLPV0K/Wg1oZ8+SbZk/HH/dA= -github.com/prometheus/procfs v0.16.1 h1:hZ15bTNuirocR6u0JZ6BAHHmwS1p8B4P6MRqxtzMyRg= -github.com/prometheus/procfs v0.16.1/go.mod h1:teAbpZRB1iIAJYREa1LsoWUXykVXA1KlTmWl8x/U+Is= -github.com/rogpeppe/go-internal v1.10.0 h1:TMyTOH3F/DB16zRVcYyreMH6GnZZrwQVAoYjRBZyWFQ= -github.com/rogpeppe/go-internal v1.10.0/go.mod h1:UQnix2H7Ngw/k4C5ijL5+65zddjncjaFoBhdsK/akog= -github.com/stretchr/testify v1.11.1 h1:7s2iGBzp5EwR7/aIZr8ao5+dra3wiQyKjjFuvgVKu7U= -github.com/stretchr/testify v1.11.1/go.mod h1:wZwfW3scLgRK+23gO65QZefKpKQRnfz6sD981Nm4B6U= -go.uber.org/goleak v1.3.0 h1:2K3zAYmnTNqV73imy9J1T3WC+gmCePx2hEGkimedGto= -go.uber.org/goleak v1.3.0/go.mod h1:CoHD4mav9JJNrW/WLlf7HGZPjdw8EucARQHekz1X6bE= -go.yaml.in/yaml/v2 v2.4.2 h1:DzmwEr2rDGHl7lsFgAHxmNz/1NlQ7xLIrlN2h5d1eGI= -go.yaml.in/yaml/v2 v2.4.2/go.mod h1:081UH+NErpNdqlCXm3TtEran0rJZGxAYx9hb/ELlsPU= -golang.org/x/sys v0.35.0 h1:vz1N37gP5bs89s7He8XuIYXpyY0+QlsKmzipCbUtyxI= -golang.org/x/sys v0.35.0/go.mod h1:BJP2sWEmIv4KK5OTEluFJCKSidICx8ciO85XgH3Ak8k= -google.golang.org/protobuf v1.36.8 h1:xHScyCOEuuwZEc6UtSOvPbAT4zRh0xcNRYekJwfqyMc= -google.golang.org/protobuf v1.36.8/go.mod h1:fuxRtAxBytpl4zzqUh6/eyUujkJdNiuEkXntxiD/uRU= -gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= -gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c h1:Hei/4ADfdWqJk1ZMxUNpqntNwaWcugrBjAiHlqqRiVk= -gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c/go.mod h1:JHkPIbrfpd72SG/EVd6muEfDQjcINNoR0C8j2r3qZ4Q= -gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= -gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= diff --git a/harnesses/solana-tx-landing/cmd/script/senders.go b/harnesses/solana-tx-landing/cmd/script/senders.go index e0d88ffd..b1b74070 100644 --- a/harnesses/solana-tx-landing/cmd/script/senders.go +++ b/harnesses/solana-tx-landing/cmd/script/senders.go @@ -87,10 +87,6 @@ func buildProbes(enabled map[Service]bool) ([]serviceProbe, error) { buildNozomiProbe(tipWallets[ServiceNozomi]), buildAstralaneProbe(tipWallets[ServiceAstralane]), buildZeroSlotProbe(tipWallets[Service0slot]), - // Mobula has no own tip wallet (relays via Jito/Nozomi/zeroslot internally). - // Embed a Jito tip transfer so Mobula's default routing sees a valid tip; - // attribution uses signatureSubscribe (active probe path), not tip-wallet. - buildMobulaProbe(tipWallets[ServiceJito]), } out := make([]serviceProbe, 0, len(candidates)) @@ -277,10 +273,7 @@ func buildAstralaneProbe(tip solana.PublicKey) serviceProbe { } host := envDefault("ASTRALANE_ENDPOINT", "https://ny.gateway.astralane.io/iris") url := host + "?api-key=" + key - // Astralane raised their min tip floor 500_000 → 1_000_000 lamports - // (observed 2026-05-26 via prober alerts). Default to the new floor; - // the ASTRALANE_TIP_LAMPORTS env var still overrides. - tipLamports := uint64(envInt("ASTRALANE_TIP_LAMPORTS", 1_000_000)) + tipLamports := uint64(envInt("ASTRALANE_TIP_LAMPORTS", 500_000)) return serviceProbe{ Service: ServiceAstralane, @@ -443,109 +436,3 @@ func truncate(s string, n int) string { } return s[:n] + "…" } - -// ----------------------------------------------------------------------------- -// Mobula swap-send — multi-RPC fan-out aggregator -// docs.mobula.io/rest-api-reference/endpoint/swap-send -// -// Wire shape (verified 2026-05-27): -// - POST https://api.mobula.io/api/2/swap/send -// - Authorization: Bearer -// - Body: {"chainId": "solana:solana", "signedTransaction": ""} -// - Response on success: {"data": {"transactionHash": "", "requestId": "...", -// "success": true, "lander": "jito|nozomi|..."}} -// - 201 returned for accepted submission; downstream failure surfaces inside -// the JSON body via `error` / `data.success=false`. -// -// Mobula relays internally to Jito / Nozomi / zeroslot via multi-RPC fan-out, -// so there is no dedicated Mobula tip wallet. The probe embeds a Jito tip -// transfer (same wallet as the Jito control probe) so Mobula's default -// routing sees a valid tip on the underlying lander. Active-probe attribution -// works via signatureSubscribe on the tx signature, independent of the tip -// wallet used. -// ----------------------------------------------------------------------------- - -func buildMobulaProbe(tip solana.PublicKey) serviceProbe { - key := strings.TrimSpace(os.Getenv("MOBULA_API_KEY")) - if key == "" { - fmt.Println("[prober] mobula: MOBULA_API_KEY not set — service skipped") - return serviceProbe{} - } - url := envDefault("MOBULA_ENDPOINT", "https://api.mobula.io/api/2/swap/send") - tipLamports := uint64(envInt("MOBULA_TIP_LAMPORTS", 10_000)) - - return serviceProbe{ - Service: ServiceMobula, - Mode: "default", - Endpoint: url, - TipWallet: tip, - TipLamports: tipLamports, - Sender: func(ctx context.Context, tx *solana.Transaction) (string, error) { - return postMobulaSwapSend(ctx, url, key, tx) - }, - } -} - -func postMobulaSwapSend(ctx context.Context, url, apiKey string, tx *solana.Transaction) (string, error) { - txB64, err := txToBase64(tx) - if err != nil { - return "", err - } - reqBody := map[string]any{ - "chainId": "solana:solana", - "signedTransaction": txB64, - } - buf, err := json.Marshal(reqBody) - if err != nil { - return "", fmt.Errorf("marshal req: %w", err) - } - cctx, cancel := context.WithTimeout(ctx, senderHTTPTimeout) - defer cancel() - req, err := http.NewRequestWithContext(cctx, http.MethodPost, url, bytes.NewReader(buf)) - if err != nil { - return "", fmt.Errorf("new req: %w", err) - } - req.Header.Set("Content-Type", "application/json") - req.Header.Set("Authorization", "Bearer "+apiKey) - - resp, err := senderHTTPClient.Do(req) - if err != nil { - return "", fmt.Errorf("http: %s", scrubSecrets(err.Error())) - } - defer resp.Body.Close() - respBody, _ := io.ReadAll(resp.Body) - - if resp.StatusCode == 419 || resp.StatusCode == 429 { - return "", fmt.Errorf("http %d (rate limit): %s", - resp.StatusCode, scrubSecrets(truncate(string(respBody), 200))) - } - if resp.StatusCode >= 500 { - return "", fmt.Errorf("http %d: %s", - resp.StatusCode, scrubSecrets(truncate(string(respBody), 200))) - } - - var parsed struct { - Data struct { - TransactionHash string `json:"transactionHash"` - Success bool `json:"success"` - } `json:"data"` - Error string `json:"error"` - } - if err := json.Unmarshal(respBody, &parsed); err != nil { - return "", fmt.Errorf("decode resp (status=%d body=%s): %w", - resp.StatusCode, scrubSecrets(truncate(string(respBody), 200)), err) - } - if parsed.Error != "" { - return "", fmt.Errorf("mobula: %s", scrubSecrets(parsed.Error)) - } - if parsed.Data.TransactionHash != "" { - return parsed.Data.TransactionHash, nil - } - // Mobula sometimes returns 201 without echoing the sig. Fall back to - // the locally-computed signature (known once tx.Sign ran). - if len(tx.Signatures) == 0 { - return "", fmt.Errorf("no signature in response or on tx (status=%d body=%s)", - resp.StatusCode, scrubSecrets(truncate(string(respBody), 200))) - } - return tx.Signatures[0].String(), nil -} diff --git a/harnesses/solana-tx-landing/cmd/script/wallets.go b/harnesses/solana-tx-landing/cmd/script/wallets.go index 94e1d995..55db22e8 100644 --- a/harnesses/solana-tx-landing/cmd/script/wallets.go +++ b/harnesses/solana-tx-landing/cmd/script/wallets.go @@ -28,10 +28,6 @@ const ( ServiceNextBlock Service = "nextblock" ServiceAstralane Service = "astralane" ServiceSolanaVibeStation Service = "solanavibestation" - // Mobula swap-send. No dedicated tip wallets — Mobula relays internally - // to Jito/Nozomi/zeroslot via multi-RPC fan-out. Not observable via - // tip-wallet attribution (bench № 016); active-probe-only (bench № 027). - ServiceMobula Service = "mobula" ) // walletToService maps every known tip address to its owning service. diff --git a/package.json b/package.json index a548de37..ff2dbcba 100644 --- a/package.json +++ b/package.json @@ -16,14 +16,12 @@ }, "dependencies": { "@modelcontextprotocol/sdk": "^1.26.0", - "@react-three/fiber": "^9.6.1", "js-yaml": "^4.1.1", "lucide-react": "^1.11.0", "mcp-handler": "^1.1.0", "next": "16.2.6", "react": "19.2.4", "react-dom": "19.2.4", - "three": "^0.184.0", "zod": "^4.3.6" }, "devDependencies": { @@ -33,7 +31,6 @@ "@types/node": "^20", "@types/react": "^19", "@types/react-dom": "^19", - "@types/three": "^0.184.1", "eslint": "^9", "eslint-config-next": "16.2.4", "tailwindcss": "^4", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 72ee3b83..6496de2a 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -14,9 +14,6 @@ importers: '@modelcontextprotocol/sdk': specifier: ^1.26.0 version: 1.26.0(zod@4.3.6) - '@react-three/fiber': - specifier: ^9.6.1 - version: 9.6.1(@types/react@19.2.14)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(three@0.184.0) js-yaml: specifier: ^4.1.1 version: 4.1.1 @@ -35,9 +32,6 @@ importers: react-dom: specifier: 19.2.4 version: 19.2.4(react@19.2.4) - three: - specifier: ^0.184.0 - version: 0.184.0 zod: specifier: ^4.3.6 version: 4.3.6 @@ -60,9 +54,6 @@ importers: '@types/react-dom': specifier: ^19 version: 19.2.3(@types/react@19.2.14) - '@types/three': - specifier: ^0.184.1 - version: 0.184.1 eslint: specifier: ^9 version: 9.39.4(jiti@2.6.1) @@ -140,10 +131,6 @@ packages: engines: {node: '>=6.0.0'} hasBin: true - '@babel/runtime@7.29.7': - resolution: {integrity: sha512-Nq8OhGWiZIZGV6hLHoyAKLLcJihP/xFeBMGJoUrxTX2psI8dCifzLhZISFb+VWS3wFMRDmCGw5R+dOySCqPLhw==} - engines: {node: '>=6.9.0'} - '@babel/template@7.28.6': resolution: {integrity: sha512-YA6Ma2KsCdGb+WC6UpBVFJGXL58MDA6oyONbjyF/+5sBgxY/dwkhLogbMT2GXXyU84/IhRw/2D1Os1B/giz+BQ==} engines: {node: '>=6.9.0'} @@ -156,9 +143,6 @@ packages: resolution: {integrity: sha512-LwdZHpScM4Qz8Xw2iKSzS+cfglZzJGvofQICy7W7v4caru4EaAmyUuO6BGrbyQ2mYV11W0U8j5mBhd14dd3B0A==} engines: {node: '>=6.9.0'} - '@dimforge/rapier3d-compat@0.12.0': - resolution: {integrity: sha512-uekIGetywIgopfD97oDL5PfeezkFpNhwlzlaEYNOA0N6ghdsOvh/HYjSMek5Q2O1PYvRSDFcqFVJl4r4ZBwOow==} - '@emnapi/core@1.10.0': resolution: {integrity: sha512-yq6OkJ4p82CAfPl0u9mQebQHKPJkY7WrIuk205cTYnYe+k2Z8YBh11FrbRG/H6ihirqcacOgl2BIO8oyMQLeXw==} @@ -644,31 +628,6 @@ packages: resolution: {integrity: sha512-nn5ozdjYQpUCZlWGuxcJY/KpxkWQs4DcbMCmKojjyrYDEAGy4Ce19NN4v5MduafTwJlbKc99UA8YhSVqq9yPZA==} engines: {node: '>=12.4.0'} - '@react-three/fiber@9.6.1': - resolution: {integrity: sha512-zF0rsKcVYpcJwbFEnv2HkHX9cvOEgsfQo/X8lwmR2dn13S4qEQJXir9fxf5js2LQFoXqxOY7MDkOkYx2uZ4gSg==} - peerDependencies: - expo: '>=43.0' - expo-asset: '>=8.4' - expo-file-system: '>=11.0' - expo-gl: '>=11.0' - react: '>=19 <19.3' - react-dom: '>=19 <19.3' - react-native: '>=0.78' - three: '>=0.156' - peerDependenciesMeta: - expo: - optional: true - expo-asset: - optional: true - expo-file-system: - optional: true - expo-gl: - optional: true - react-dom: - optional: true - react-native: - optional: true - '@redis/bloom@1.2.0': resolution: {integrity: sha512-HG2DFjYKbpNmVXsa0keLHp/3leGJz1mjh09f2RLGGLQZzSHpkmZWuwJbAvo3QcRY8p80m5+ZdXZdYOSBLlp7Cg==} peerDependencies: @@ -796,9 +755,6 @@ packages: '@tailwindcss/postcss@4.2.4': resolution: {integrity: sha512-wgAVj6nUWAolAu8YFvzT2cTBIElWHkjZwFYovF+xsqKsW2ADxM/X2opxj5NsF/qVccAOjRNe8X2IdPzMsWyHTg==} - '@tweenjs/tween.js@23.1.3': - resolution: {integrity: sha512-vJmvvwFxYuGnF2axRtPYocag6Clbb5YS7kLL+SO/TeVFzHqDIWrNKYtcsPMibjDx9O+bu+psAy9NKfWklassUA==} - '@tybys/wasm-util@0.10.1': resolution: {integrity: sha512-9tTaPJLSiejZKx+Bmog4uSubteqTvFrVrURwkmHixBo0G4seD0zUxp98E1DzUBJxLQ3NPwXrGKDiVjwx/DpPsg==} @@ -825,23 +781,9 @@ packages: peerDependencies: '@types/react': ^19.2.0 - '@types/react-reconciler@0.28.9': - resolution: {integrity: sha512-HHM3nxyUZ3zAylX8ZEyrDNd2XZOnQ0D5XfunJF5FLQnZbHHYq4UWvW1QfelQNXv1ICNkwYhfxjwfnqivYB6bFg==} - peerDependencies: - '@types/react': '*' - '@types/react@19.2.14': resolution: {integrity: sha512-ilcTH/UniCkMdtexkoCN0bI7pMcJDvmQFPvuPvmEaYA/NSfFTAgdUSLAoVjaRJm7+6PvcM+q1zYOwS4wTYMF9w==} - '@types/stats.js@0.17.4': - resolution: {integrity: sha512-jIBvWWShCvlBqBNIZt0KAshWpvSjhkwkEu4ZUcASoAvhmrgAUI2t1dXrjSL4xXVLB4FznPrIsX3nKXFl/Dt4vA==} - - '@types/three@0.184.1': - resolution: {integrity: sha512-6q4VdiqVsrTRqmk62/BnlcAvIrnDM0zf2ZDVKI5kZiniWrSaOHaQzmbp+BNzoggc/8tgW412pL//wZIxu2PPTA==} - - '@types/webxr@0.5.24': - resolution: {integrity: sha512-h8fgEd/DpoS9CBrjEQXR+dIDraopAEfu4wYVNY2tEPwk60stPWhvZMf4Foo5FakuQ7HFZoa8WceaWFervK2Ovg==} - '@typescript-eslint/eslint-plugin@8.59.1': resolution: {integrity: sha512-BOziFIfE+6osHO9FoJG4zjoHUcvI7fTNBSpdAwrNH0/TLvzjsk2oo8XSSOT2HhqUyhZPfHv4UOffoJ9oEEQ7Ag==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} @@ -1101,9 +1043,6 @@ packages: resolution: {integrity: sha512-BLrgEcRTwX2o6gGxGOCNyMvGSp35YofuYzw9h1IMTRmKqttAZZVU67bdb9Pr2vUHA8+j3i2tJfjO6C6+4myGTA==} engines: {node: 18 || 20 || >=22} - base64-js@1.5.1: - resolution: {integrity: sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==} - baseline-browser-mapping@2.10.23: resolution: {integrity: sha512-xwVXGqevyKPsiuQdLj+dZMVjidjJV508TBqexND5HrF89cGdCYCJFB3qhcxRHSeMctdCfbR1jrxBajhDy7o29g==} engines: {node: '>=6.0.0'} @@ -1129,9 +1068,6 @@ packages: engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} hasBin: true - buffer@6.0.3: - resolution: {integrity: sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==} - bun-types@1.3.14: resolution: {integrity: sha512-4N0ig0fEomHt5R0KCFWjovxow98rIoRwKolrYdCcknNwMekCXRnWEUvgu5soYV8QXtVsrUD8B95MBOZGPvr6KQ==} @@ -1515,9 +1451,6 @@ packages: picomatch: optional: true - fflate@0.8.3: - resolution: {integrity: sha512-tbZNuJrLwGUp3zshBtdy4W+ORxZuIh8a5ilyIEQDC5rY1f3U20JMry0Ll3WBzU58EZKsEuJFXhb5gwv8CsPvgA==} - file-entry-cache@8.0.0: resolution: {integrity: sha512-XXTUwCvisa5oacNGRP9SfNtYBNAMi+RPwBFmblZEF7N7swHYQS6/Zfk7SRwx4D5j3CH211YNRco1DEMNVfZCnQ==} engines: {node: '>=16.0.0'} @@ -1667,9 +1600,6 @@ packages: resolution: {integrity: sha512-im9DjEDQ55s9fL4EYzOAv0yMqmMBSZp6G0VvFyTMPKWxiSBHUj9NW/qqLmXUwXrrM7AvqSlTCfvqRb0cM8yYqw==} engines: {node: '>=0.10.0'} - ieee754@1.2.1: - resolution: {integrity: sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==} - ignore@5.3.2: resolution: {integrity: sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==} engines: {node: '>= 4'} @@ -1817,11 +1747,6 @@ packages: resolution: {integrity: sha512-H0dkQoCa3b2VEeKQBOxFph+JAbcrQdE7KC0UkqwpLmv2EC4P41QXP+rqo9wYodACiG5/WM5s9oDApTU8utwj9g==} engines: {node: '>= 0.4'} - its-fine@2.0.0: - resolution: {integrity: sha512-KLViCmWx94zOvpLwSlsx6yOCeMhZYaxrJV87Po5k/FoZzcPSahvK5qJ7fYhS61sZi5ikmh2S3Hz55A2l3U69ng==} - peerDependencies: - react: ^19.0.0 - jiti@2.6.1: resolution: {integrity: sha512-ekilCSN1jwRvIbgeg/57YFh8qQDNbwDb9xT/qu2DAHbFFZUicIl4ygVaAvzveMhMVr3LnpSKTNnwt8PoOfmKhQ==} hasBin: true @@ -2005,9 +1930,6 @@ packages: resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==} engines: {node: '>= 8'} - meshoptimizer@1.1.1: - resolution: {integrity: sha512-oRFNWJRDA/WTrVj7NWvqa5HqE1t9MYDj2VaWirQCzCCrAd2GHrqR/sQezCxiWATPNlKTcRaPRHPJwIRoPBAp5g==} - micromatch@4.0.8: resolution: {integrity: sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==} engines: {node: '>=8.6'} @@ -2216,15 +2138,6 @@ packages: react-is@16.13.1: resolution: {integrity: sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==} - react-use-measure@2.1.7: - resolution: {integrity: sha512-KrvcAo13I/60HpwGO5jpW7E9DfusKyLPLvuHlUyP5zqnmAPhNc6qTRjUQrdTADl0lpPpDVU2/Gg51UlOGHXbdg==} - peerDependencies: - react: '>=16.13' - react-dom: '>=16.13' - peerDependenciesMeta: - react-dom: - optional: true - react@19.2.4: resolution: {integrity: sha512-9nfp2hYpCwOjAN+8TZFGhtWEwgvWHXqESH8qT89AT/lWklpLON22Lc8pEtnpsZz7VmawabSU0gCjnj8aC0euHQ==} engines: {node: '>=0.10.0'} @@ -2412,11 +2325,6 @@ packages: resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==} engines: {node: '>= 0.4'} - suspend-react@0.1.3: - resolution: {integrity: sha512-aqldKgX9aZqpoDp3e8/BZ8Dm7x1pJl+qI3ZKxDN0i/IQTWUwBx/ManmlVJ3wowqbno6c2bmiIfs+Um6LbsjJyQ==} - peerDependencies: - react: '>=17.0' - tailwindcss@4.2.4: resolution: {integrity: sha512-HhKppgO81FQof5m6TEnuBWCZGgfRAWbaeOaGT00KOy/Pf/j6oUihdvBpA7ltCeAvZpFhW3j0PTclkxsd4IXYDA==} @@ -2424,9 +2332,6 @@ packages: resolution: {integrity: sha512-uxc/zpqFg6x7C8vOE7lh6Lbda8eEL9zmVm/PLeTPBRhh1xCgdWaQ+J1CUieGpIfm2HdtsUpRv+HshiasBMcc6A==} engines: {node: '>=6'} - three@0.184.0: - resolution: {integrity: sha512-wtTRjG92pM5eUg/KuUnHsqSAlPM296brTOcLgMRqEeylYTh/CdtvKUvCyyCQTzFuStieWxvZb8mVTMvdPyUpxg==} - tinyglobby@0.2.16: resolution: {integrity: sha512-pn99VhoACYR8nFHhxqix+uvsbXineAasWm5ojXoN8xEwK5Kd3/TrhNn1wByuD52UxWRLy8pu+kRMniEi6Eq9Zg==} engines: {node: '>=12.0.0'} @@ -2515,11 +2420,6 @@ packages: uri-js@4.4.1: resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==} - use-sync-external-store@1.6.0: - resolution: {integrity: sha512-Pp6GSwGP/NrPIrxVFAIkOQeyw8lFenOHijQWkUTrDvrF4ALqylP2C/KCkeS9dpUM3KvYRQhna5vt7IL95+ZQ9w==} - peerDependencies: - react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 - vary@1.1.2: resolution: {integrity: sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==} engines: {node: '>= 0.8'} @@ -2576,24 +2476,6 @@ packages: zod@4.3.6: resolution: {integrity: sha512-rftlrkhHZOcjDwkGlnUtZZkvaPHCsDATp4pGpuOOMDaTdDDXF91wuVDJoWoPsKX/3YPQ5fHuF3STjcYyKr+Qhg==} - zustand@5.0.14: - resolution: {integrity: sha512-/8tAspM5LMPr28b3fwLYrtdj77ECpfZviaP75CMTnwO8ISyaE4GDIG/9rDDYq/cH9D2Xw2A2RXglLInmVBQB/g==} - engines: {node: '>=12.20.0'} - peerDependencies: - '@types/react': '>=18.0.0' - immer: '>=9.0.6' - react: '>=18.0.0' - use-sync-external-store: '>=1.2.0' - peerDependenciesMeta: - '@types/react': - optional: true - immer: - optional: true - react: - optional: true - use-sync-external-store: - optional: true - snapshots: '@alloc/quick-lru@5.2.0': {} @@ -2675,8 +2557,6 @@ snapshots: dependencies: '@babel/types': 7.29.0 - '@babel/runtime@7.29.7': {} - '@babel/template@7.28.6': dependencies: '@babel/code-frame': 7.29.0 @@ -2700,8 +2580,6 @@ snapshots: '@babel/helper-string-parser': 7.27.1 '@babel/helper-validator-identifier': 7.28.5 - '@dimforge/rapier3d-compat@0.12.0': {} - '@emnapi/core@1.10.0': dependencies: '@emnapi/wasi-threads': 1.2.1 @@ -3051,26 +2929,6 @@ snapshots: '@nolyfill/is-core-module@1.0.39': {} - '@react-three/fiber@9.6.1(@types/react@19.2.14)(react-dom@19.2.4(react@19.2.4))(react@19.2.4)(three@0.184.0)': - dependencies: - '@babel/runtime': 7.29.7 - '@types/webxr': 0.5.24 - base64-js: 1.5.1 - buffer: 6.0.3 - its-fine: 2.0.0(@types/react@19.2.14)(react@19.2.4) - react: 19.2.4 - react-use-measure: 2.1.7(react-dom@19.2.4(react@19.2.4))(react@19.2.4) - scheduler: 0.27.0 - suspend-react: 0.1.3(react@19.2.4) - three: 0.184.0 - use-sync-external-store: 1.6.0(react@19.2.4) - zustand: 5.0.14(@types/react@19.2.14)(react@19.2.4)(use-sync-external-store@1.6.0(react@19.2.4)) - optionalDependencies: - react-dom: 19.2.4(react@19.2.4) - transitivePeerDependencies: - - '@types/react' - - immer - '@redis/bloom@1.2.0(@redis/client@1.6.1)': dependencies: '@redis/client': 1.6.1 @@ -3172,8 +3030,6 @@ snapshots: postcss: 8.5.12 tailwindcss: 4.2.4 - '@tweenjs/tween.js@23.1.3': {} - '@tybys/wasm-util@0.10.1': dependencies: tslib: 2.8.1 @@ -3199,27 +3055,10 @@ snapshots: dependencies: '@types/react': 19.2.14 - '@types/react-reconciler@0.28.9(@types/react@19.2.14)': - dependencies: - '@types/react': 19.2.14 - '@types/react@19.2.14': dependencies: csstype: 3.2.3 - '@types/stats.js@0.17.4': {} - - '@types/three@0.184.1': - dependencies: - '@dimforge/rapier3d-compat': 0.12.0 - '@tweenjs/tween.js': 23.1.3 - '@types/stats.js': 0.17.4 - '@types/webxr': 0.5.24 - fflate: 0.8.3 - meshoptimizer: 1.1.1 - - '@types/webxr@0.5.24': {} - '@typescript-eslint/eslint-plugin@8.59.1(@typescript-eslint/parser@8.59.1(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3))(eslint@9.39.4(jiti@2.6.1))(typescript@5.9.3)': dependencies: '@eslint-community/regexpp': 4.12.2 @@ -3490,8 +3329,6 @@ snapshots: balanced-match@4.0.4: {} - base64-js@1.5.1: {} - baseline-browser-mapping@2.10.23: {} body-parser@2.2.2: @@ -3529,11 +3366,6 @@ snapshots: node-releases: 2.0.38 update-browserslist-db: 1.2.3(browserslist@4.28.2) - buffer@6.0.3: - dependencies: - base64-js: 1.5.1 - ieee754: 1.2.1 - bun-types@1.3.14: dependencies: '@types/node': 20.19.39 @@ -4087,8 +3919,6 @@ snapshots: optionalDependencies: picomatch: 4.0.4 - fflate@0.8.3: {} - file-entry-cache@8.0.0: dependencies: flat-cache: 4.0.1 @@ -4241,8 +4071,6 @@ snapshots: dependencies: safer-buffer: 2.1.2 - ieee754@1.2.1: {} - ignore@5.3.2: {} ignore@7.0.5: {} @@ -4393,13 +4221,6 @@ snapshots: has-symbols: 1.1.0 set-function-name: 2.0.2 - its-fine@2.0.0(@types/react@19.2.14)(react@19.2.4): - dependencies: - '@types/react-reconciler': 0.28.9(@types/react@19.2.14) - react: 19.2.4 - transitivePeerDependencies: - - '@types/react' - jiti@2.6.1: {} jose@6.2.3: {} @@ -4538,8 +4359,6 @@ snapshots: merge2@1.4.1: {} - meshoptimizer@1.1.1: {} - micromatch@4.0.8: dependencies: braces: 3.0.3 @@ -4744,12 +4563,6 @@ snapshots: react-is@16.13.1: {} - react-use-measure@2.1.7(react-dom@19.2.4(react@19.2.4))(react@19.2.4): - dependencies: - react: 19.2.4 - optionalDependencies: - react-dom: 19.2.4(react@19.2.4) - react@19.2.4: {} redis@4.7.1: @@ -5032,16 +4845,10 @@ snapshots: supports-preserve-symlinks-flag@1.0.0: {} - suspend-react@0.1.3(react@19.2.4): - dependencies: - react: 19.2.4 - tailwindcss@4.2.4: {} tapable@2.3.3: {} - three@0.184.0: {} - tinyglobby@0.2.16: dependencies: fdir: 6.5.0(picomatch@4.0.4) @@ -5174,10 +4981,6 @@ snapshots: dependencies: punycode: 2.3.1 - use-sync-external-store@1.6.0(react@19.2.4): - dependencies: - react: 19.2.4 - vary@1.1.2: {} which-boxed-primitive@1.1.1: @@ -5244,9 +5047,3 @@ snapshots: zod: 4.3.6 zod@4.3.6: {} - - zustand@5.0.14(@types/react@19.2.14)(react@19.2.4)(use-sync-external-store@1.6.0(react@19.2.4)): - optionalDependencies: - '@types/react': 19.2.14 - react: 19.2.4 - use-sync-external-store: 1.6.0(react@19.2.4) diff --git a/public/logos/1rpc.svg b/public/logos/1rpc.svg index 5494a3e3..90e7f453 100644 --- a/public/logos/1rpc.svg +++ b/public/logos/1rpc.svg @@ -1,4 +1,4 @@ - + diff --git a/public/logos/apexliquid.png b/public/logos/apexliquid.png deleted file mode 100644 index cb141c3acbebcaca3e43125f28ca50a748d8fd67..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 8243 zcmb7pWmFVi(D%|ygRn}6bS#Q=D@ZIUEFFphl1ujz1|coAAdO2du+-8ZB1kt&hte#t zl!SuF%m19`ea`#!ojc!V?#!Hf=gzq^zni(6p8z^-4TuJSfB*m>xLtsoML-0AoRkbm zMoJDO15!|sQ&QihrKX~yW@QA?-Q{Axf1it;lap6aQk0ipT!51ktOOR9l988}=MhnP zsv@ff0-0EC1@ z|AqR$L_kVLNJK&myp^iZ0SJhQ2#866Bt%5SM7Jsg074>S5_-}*+~QBj815Us^kRJU zHo362YXZchYP2e$cEl_BiVy02tYJ5KYk-B|f9QX$0|@>zKzb|VqrY`aNJvOP{J;JQ z2sam=vIrKh#sHUlOVg z0l)Fj6*@%FMa>~8MR|bYs(~7G^W2Ku)F}+Ati0U7qKNUg+`z~G!{h~Y5nK$a^Z*0$ zH*X$2o9Aa~lztQ_)`8Tw5gX-ruPK^v{kuDKlW9nf?b*~){haKmjL4mQWYp9{osc%@ zluS0$6Xjo#El0lLZcHi870+eZ-`Si~D)_Wdty%%cyh9C56@x1@Cpk}BgGT#gYCDZg zHErf3=BJX^Zvb}%QdI^rRxLAQZ7dEpcwg+nscTqU8h4H#?>MXnh5g#KWxEXn~w1~NZ|M8?AAd8UhAp-%W9ZNie zr8aKftsx^enS@F#d1;LQPx|a6i~i?74=jIS$NR1=mQN_21W%`#3PYVIlWX6$!zmUvJ=}I0{X#*BWs1?4aoux{IZW|4 zt#|a8V#A|WNZxk;dWKvd@0A&PL`M^9-j9Y35tDhPNaNk|>vF|cl{S8v%$k^L*`x9x z&%>e1>Dwz+;uFgWX<>-HoYB(W;E}n$mO%C*$)at>%Y?$YCCd3TvjG7yijCA2gw~eH zdl`+?!I28sD5Ai7pf?mLEbc#b4-U<76|{FHyI_(2bV%N0k%Ja92qvn5`k3+xFZxP+ z5s3cIlezj8^D|Pg-gR-h;j8jX6Pky1Wj_uSjWt;j+7^xOkFG56Ws_M0RSr5TG|e0| zOw7t5v<>P~(uvhIEn~?YenLtyb24yvnqN`85F&FXUHY6tAx;lQ6gBio!0GL3o-(9L z&cf?7LN3yk+dL~y+i=z}yBFb^m3D|Ay`1<%`}r+|gOA_+>SWaFtUGScIH z7Qs!ZO7}*U;lB)?A{Wh~2fyx07n}%wWp(Z7mbtU`L$X~afELtSzv$R9+YQm3v`?So z;1CY2KtFVDdm8LAe*H<>$AoLW69FF^(7E*77+O;d?lkWG9f|lRpB-Wo-ICop9IEV^ zTZ(~&uI42R!T9Lpd?(}W14)K!rpG7E$oI;YO<8x<8=|)RI;`(5wjVTI+H4{6memu7 z?8BXsMBPs;yhfMgKfKJ=!2LAu=k!Cls}5G_d6HWh?4EkGf-af3XY373)ODPXq`^WL zwkxHi!|DW!d0WX@6DxnS|DlY*7%d3@?mb$|yo5Vf>^k!ZReHccU#VKj;>qC3g=QBzCN_0drwui& zax8%yVO*6?D1nkZx$?Z7O=l9ca~FvfxPT=?zYbUG&esQ^dkd`!%Ox(DRp8slwES+{gJvAkbbYt zm34XS{^u6F<8^aXcNlOM5fls|ecNa#;erp3jPP=^rGk%5aK9cO-fz7S84L8h6264w z^2GSW#cY{AL&)LpC^&pt+4m$zWl;XHT=35}SllBU~syeN%lhww;nTF$~)2D^^8rCcmB1p1nWsEoNuK^{w z-Qm`sh+_6%|5a0!giuYAqxbhuX07Y{0}NCNj3d0T*D z<@Y~E+<%wi%*C*g67mtK>J)Xim#UKR!gA+_m5l*}vsz-I3om3bh*O!MQ!hO|dtFrJ z2pgFzA;WEjQIK1hfMM3D!)t%|ynJE~g<+F6Rzg-!UY7WC7st!}^pX8KR*i}F?V$<b4WFpRH6B=5y-@K z5p-(bAUO9EeC+%NFlw`FxjlgBU^H%ok?YP^G`c<@c1TWGQ)$YIa$$#fb{aHU32YMT zaC@MBZ2GvM94m5v8Ef08Z;SaPLe!N&>d+zQ)f6K+jY;FI*LLW=;cbSkTDj*7*)Rt| z(vmFmX!xAwNN{;2=*&~zMYe;xirMo+wA>fF*jfEl!S#X%_QsDO#tQ-epiB7t;pO*h z4JJ?>J;jg1-)4JttfzWF(rsx4d0Ito$x6d;eao#Jx{&F}QYm$%gEaFqp*@y=!%|{v zw4!-80Fc#@MeoT}+7$EZqd2nSN0&imuv%3+WNGxtQlRXS@}|u|{6&TQyoet<9kFP% z6<5qelc@InYj_0bt16fKz6L%V%Ndd%pKKWC3f!|%+`Ciftz)3ZmI<8;Q^A_se9XCnOr}xJK2lV%zLODbS|hPTfvGf+-VKI_WEfTQNyubr~OIxJ~9qdYp*061m1}|y`9J*N* zmZRnVQ7S2B2pu3Zl$4yXzIUvBo9T@;B*2`so|`8oSF1i8mOs_rc9A6;#V)uaVmhO{ z`1kRe0=V=T7t~(pIZjgwonMad$LNbE4GS>+Gm^LS`==0Wnnf*M%7^ufcSSj}GFB;S zX2kS03xa#=KChbb=@~~s?ES6R!bb*SlM(My@}`|Xtk$SuR#!X$e?WJp(g^q9MM&kM zI>4_n$NaC1*O|d5TE5R?5l34yW-xWNemk1fp)O18-Cdm!LJHx))p&2$z(0AezJ`y0 z*^IhWcBCv5{eu5cSWqKkf5OTkXPw_V%qnzoz`Cg^N%3T3$dC&GEV26}=?1rcsFnp3 zmNP?^Bg;Vuh~Af~>^@UC+1JQ>g*dU=l>ONWjdP;*K14H|B5S?@j6UhTlw7UL-yfRy zG{U>HHEX8a0E(RtF$pQJ`$+m_E+>w}jt?oQC)rCZo$%ACHPWBWpPDdjoyR*a$W#R8 z{xxGYwz%JE`9ph~RCfg{c8$LBHnnfJZgfBuaNOmFiy3=QnCR#!_&daWM{|huw0((h zOPoQpDUSt}R1&YEyL$sM2P)g|@TZ?#9r#w$F?hnPhFm+X)rPSxMycpP;T{ytms4k| z1ApxKytIC}(?6i$m{?u9l|pP!RUP%Fi!gpg{E4bM>wozynfiE~j*dQSZd7<+N^ke_ zQHP?J|4ist;rZBs$!PS>%GEt-GFvzSRDj0A(5Am3y-vN#9H&GhtW%IT<5CgizdsOv zMUguyA5K=3EA6@OD8n%Dd_g~*5~To^dSidYsz&`Mvb1RM(-!tswm?Np z0)3*I;;fqaMBEuV)o9_XPc|Kh>h;O6&$(d7qM`E6f(5G3qZCRXv)F}ay?SD2AT5hu z#>s1Hg7RWU`6i$+6-DoW(0gR6lfmw&rd}(Aw0`Z19`hy1I#y;d4sRul%9`o#&*otM z`Zo8rCJ64J?|!%Ptp4~CbGl)FGRB!QTQ<|~h3~~tU}jug>hz!5Yy9B4TSczGH7$M7 z{$`55*Wd%sZu14pdlM_ggLR&z+gd$1MY+@$E%m*Ky@!Jwoqc>Id8rqK7Of0rOlTUQ zbOCnjBEgi&$Oc}SE4cp(iM`#Onqz?rTEZgANZc>CX8V#{`w+81lvVTa1`Pl3z&~Ik z6cJlNZK7~FsCh3ccPR&yTH$+|@mka5@z22>CDm~A17Q;1%66+cW((Ebfad*%1J;AODg4|BHO_#4*V63@35t-JcVVEoH58f;=@#CQx zRWVbM+D&mjk@M;v3M{;wsbj%ItPFLZeCPxu1}>*_h=ddzE=Lv|Tjk{*-8t(; z4TTp7h=vgS4E%Wmpy;FsoltSX*>K|gg!;AnM6aF+X|S25bePyN^s8)yxel5nHebFn z5-KvRNpa@Upo_TA^jMWp!ixF3`SQJd?ZOT#@_!g+qV}Ijb!dz4y7DsBr(gr^NzcLf zZ-*YVA1KT?ESlr64{HzXqS&V1VK{^#RrswR|^wF1kP-|mO?aR(~ZqVS<2CQi8eqGZAT?# zZJp*D@nL)K<}~J!YT{SI3gKs@uxl2}@=!D5X06rLJ=#pep#afWZDGIC-^l9q1$V)4 zzTga&Y(J>5GoP<_%?4c<#aNAR9K@)LdWMI1uFt#+p|A^jIw~A6Q5=&Y@_u)h6wBBw ztH}1N`=CAt*PYGg*V?!aw~wiNxLM6i*8YHKKMiWFBwr$7`0$LX^uEepO+c%%)jQY3 zA1c8eT#fKhvGTU1-9y0Of^%zTp#Zg=>dt(XG%C31OW*T8O>S^mkx%2?@n#RGp)qFv zB4!Uivga(^xn%UO@}g-Ud9h3n)iZLJ57T_d-h|zVZc?}i_ybmAy>7AL!?ju&MzuzE zSVP+zCK3teMpdgt5~DVK&P4?el*|IdUNXNs zU>IZXbg{mon!df+Nnc-_0=8l9A1Dc0-5iEPgMGS1qAf&J=~@GHl>F-4QLR~8Ha7tN17-C< zO3#XkN9l2aCqYuuh(UK=1FF*c<8#!4g|lOb6n(3l`P!^hcc92fWNF}_c!x~~ z%M?YZ2vH5er-PtBp&;Jx!KYzI*L-UA{d6H+BKdr{&C81OBB5<>`T_4i(f0#<+ZE{I z&+gOK$2}_-%_QBZ*}E)ub;9wbH-M_hL0oy1*;GYHLswwqfaWt9S$_lRW>4;CX7X}^ zu8zgI%_#ziwMup^>eRBw^)Eg%ANBtCGr8 zzJavGE;Ep8xK60DEPTl2dE(?L#BN=?6C$*S?HqXRdc9m5AN=3d)EgKl4#sKFGvv|k@e)d zplh5o#f}g27nh|7S#=G2IaBnU=89JlfWUvHw;mJxB}&RC!W)LFA>9#<8Liw(D)f?8 zi%A@tRZS9k6}4`&Yk{nq<$`PIQiYuBw+&mG;jyO!#ghLD?Y5?5?y5axmYn3^d{$9P z_^>`Upy%kkWyDjCq?DLXCwf$@YFp1n^guaR`@B9af%)Zm!q9g$GbIvTKgR0YQiGQo zS!2u^nj{%aPKaukZp~)ptD~7woVA&$lBqyGs2c`fFtkq%G;=!6Gx&!)t!zEpyE0Gy zEc*bn-?ceI@Qd?)!8qiFZ3|wevb3T!45*Nld`Kzxxf$2iIMi5xdb1(dPW$1I!hHai zb@@hJ+=1^v+TUj2Hc64no!>&FM?%$S)Tbv`)*NB&@?-0p>CczJ>868CQ>Lmrn~rpv zLmhC}GBHd44c3Pt487icHOGAqgUbCnjTg?SCH=3>fNnX=rW0=zufAy22VR=~v`u$8 z)$?~tlUUeL`NYuL|7)Z)srfI~_1TWgq7StRISAtjw@-qDuP}h z-BjYuzN~w3W9S%otHa3@5|#H#6oLcAESLS<_T4{D{94*_wem!>(n&2@($eOI4mOn~ zPb#+b@#dr$Ct11hgtcV!NDIB(|29T*b}wk9i36<|=1N$rTVxWz8|$PILjrt!J7tq_ z8q7cSC|SMz)rh1b8Ee{3=C%oDWCMPayddnL%6mM%++^!Lx`DP>cf)z^-VTP!T>KXU zk#6+ouS&^0e;pfA93)j^@ILEN@==LiDhHpzWr4kH8nR;PZHCKLCuBxT!pupN&viok zytB|u$J_BiyUxN+8@s#QDa-^b97`{?+*nq&T?onhD~fxmpm#hKX_w(UtxsUqVM%59 zanqgv*#2twO4CTOTkAUpWdz!lZ*3QnD1Jt9?_XYw=%t4#X6SYHxX5uTQ4<;GgSv^4*N|1d))X{n329S3~;p4A= z=CJ4^l+u^sXyxpo#TE9zgUMf|dFP z>UqL_g08XE&vv$!^TD%vdL&QpoDWll0R@8k=9SI=H5pgQqu>3}0teUev(F`#BT2sS zo+yiCmrI(M)JCCJ4s{E7xc65q6(1XB4a%dKgHdJnQ5yd;n(WbEa;5`BSi8A1DoX^! zN`v@HhgukVN004nr)6|l`;ddYZ-U2l7M!o(j73Am4W1rWHvrw{eC$J(^%E6I<$Rqz z(iUvBL*2$9{v!)VnC2Yv-iVNYy<)429k1fkW9pK193JZ260V;Rmi7gQyB3T1V!qf> zKgIt0#3q|lt6sC7dJAygFs-e;QYY6XF{R$6qi9py3DikWemJX5) zzsp={hE~g8vnh3kpx?Ib4DHgk7%7MeluZVNDqJT2UH8;FVBrDfgaGtNGJb z>t7cha5^yG07O#F9NMh-ZUBawh760B?+u1Ue|A1EUt-stgiIjPb~@@A1{JuYOnrx-zho5_4y?_3gtO&(X8S^T&MPPd6+ zSNdX3qJlIdee==Ya2eaNu!-bn^$jcRQu zGG0jJB1Xx+Q6z@ua}^Ww^#dMG5GVHTC$|gBSfS{$^}5x|tU%DP>##Q=IW5iT`qv7U zI`Jw@k6+Dxb_b=jgY7y`c%JZ!Nr&_0F^K<%rY?`Ew9ou+{$%ndcgMw8qJw9~+*(`T z6;7Tde1$IzH$>dNJj#KIvvc7gD{#H6rkT#%od4QSIdoXrxQUDcwgF>8FPt{B?4A~g&Jy#c@hsa&Yet<(QH$9A zFG%`V`V?6y?gmf|tJUAh<7ADqmZkHGTrQX~TM%VBxYL0=9a`iBvALu=U4x~O<$-(h zSx!;*8O%SH6ip9uB{E0%8aN>)he@v*V-pKYKY+P7Up}5q)4TyB8NveAe?M<)(zx@T z)55iiflgw2a5*I;_UGcM(gCWa1_I%wTEGt;J)HQlRzDTr9;6xEg1J1vx;V|vxnp#@ z%e$7&y}zLaVkSC<;kSd&ceHfIiQ(FlEa~{-k9cUOmr7M>ho96mwbbAbgYv4%`B)@% zne8<#YkI#T_~V8KBiXMb&+`Jt4*%a)0uw&m6_Tb{y)t$QMZB$6Y2VKcc(&-11e z?LWWxCUyhpNSvn)$XCfSi|ueNUGsTi3OB=V=Kj9+_m691jNjSXTY}uxsm=RYL0iDHW#Z)5RKF`WrMm)wIwC3ami- z|8?t#e!sY6G*T+YVU9Z$lj9Ic7em%}d!918t~zMUj1DMX#T-6k&DXv&qPkP&bj?w? zPO7P*psd}V5}Zn5FCOH1>3UKVY=hiAVDyW3$E|_I*oMO2wY2hoVJ>sO zJ*4$SicFn3oHdc<@%Fy8@U@!73#XFCX<21?#|({Mdv;8HDQg*UL{ae3`jwx)&9-ZY zvxtlWpKV1uIaeVIP?ds!_ZAN324q5jEOc~lbb0@~74DK+RUTeZ?<}gf7Gz+jLH_J{ zA!p({z!jj;(DOaZ^r-Tb)<6f$zr#)Sl?dNsfFov%GpjLalizk1(DbT8Py+ z?(>Ph-(sQFDdfPCsymbv+$X|@6s(Lx@D}p&0#&ufZ;?63|60+<2nM|ARZ&4t)q`LU6+DPwj~3Lk7VW`{ zD0ost^dzEU!A6VylcXlq{z+47+hlfUCOh-q&%WQup@ zOB`M(68MhIzL0eRp=!0-3T?*FDEOUN{&ar8=&ss>5)~Q7)p73DCL=vCTMu?0T8{!+!G+N9)~*JV8&Y06QQ^p*ke`=5zPjua7(oGvRZI<~>>W&b{#cbm z_ecB|YxW(hu(fJ&YpW2p?SZ;gjP_?dSh2h|TjuaXb>5gQ6A0|vk&s%22oycx!*fMG zxme)H?m91@Ec41}!tTM8`Pfi3YZJ6pU@_6`-;rPiM$3*1iN*;$wRM$4b7g!jC|l#8%+w7^!Q_UNXMd`4aA$5sPp#OA|t-=XHzj!goRjBZX-W*;PVtT1(sGdg9XRYWsixf<)cNP#YA&pJZAq` z!m8E0cdp1p#WEclHWh^Pu_hBR?FDGBfV3bo$*&6vzP;wLz2unOm~wEoj1_os+bX|? zhHtKU^cf+Q+_Fs<*4&j7>ees^N(eKBr{MF;1)dykQZd43OFr9*mdGkL76fS(?`GXn z7zt3)xh?PMw|se}fCe79Cu1(s6!l#Uqklsf1*zmeP5u{kBlrKU+d2;z#Xs&Q8caIBeY!e;H|d_hk%F^?-{#gb4ozn6j}U*fM)B00000 LNkvXXu0mjffJ+I# diff --git a/public/logos/axiom.png b/public/logos/axiom.png deleted file mode 100644 index f0b8297518461af04edef2ad983e0f58eb9e3503..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 12356 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 diff --git a/public/logos/blocknative.svg b/public/logos/blocknative.svg index 815dc90b..75bc8d64 100644 --- a/public/logos/blocknative.svg +++ b/public/logos/blocknative.svg @@ -1,38 +1 @@ - - - - - - - - - - - - - - - - - - + \ No newline at end of file diff --git a/public/logos/bullpen.svg b/public/logos/bullpen.svg deleted file mode 100644 index 31151bb6..00000000 --- a/public/logos/bullpen.svg +++ /dev/null @@ -1,12 +0,0 @@ - - - - - - - - - - - - diff --git a/public/logos/coin98.png b/public/logos/coin98.png deleted file mode 100644 index c1b73f5548b5561768421d07e694485bd76ece53..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1653 zcmV-*28#KKP)P%axEix7Zq7F1g0*NHq1UA{+v&mkQci+bko5Uu&DLM-LKfRap zyyyR%^FQZ2ub60E3*bcYDDV}a5zx6cNCNG^3&3xHm<5Fccm{Y9aNZ)vbI^g00nY+H z1P3g@R$%vSaQ;C!fjuY!64(K_Z=>@$xPYA!Xt)E;=g=qt`yC`;x7^G^N`VyVYXz95 zLaFSwLVy$kF>7y{3UdkDIV?#)2v7=of^j-~V?^UAN(yY$*SN^fwPG&%vXp|Us6l&I zl>U)v+zv@&otv^E+meKrBp?NhO&Yv-EXdK5gIo_KFj5MaLu1u)H(%RQ$>;7bn2(H< z(AGJ{!Jh{>b76w1SPH8}vb@^C?k$yUT3?JdXS@j7-tE=jTD*CO>LBbJ( z@?xFJ5rg$Z<<MHLmWLhh(nj`dZdCa50sMQ(&!Gx`SGv&IMF)F4}R54bAtzerIRCX zhPZfjifXT&gM0jZqA7>Lv1#@n4)DgiBfRixkaZtlMnSGMgTw*?Lcmna;I-4k%ovKT z8%lU;n-7~+Vk$*(fsKQE{B#H7bOd6YIzLWXq0ZU&!T@aB=w-v2LQ6=bA9DNtsbj74Ty0ar%a`A=#obt zEajeh58gr>ub&xVU^t1(q0!`b^ZefBoNOJ%S7y&zk_!kZATP&)&ugbIl;EB75#ARxo|l&wm($H?@tf&^&fU}r8~-up%4N}3v@PrwwT>ts-!3{ zvveU#71(u+$%w%p|2oFio*24SQdwq4Dfnk!jQxju_|xAfsP@{~yWK}&o{d*t5AoEq z*XRo+D9+butaIUZXat9noNWu!Kb&Mu^D-QIW=O@vpVuy+B}7^W-}q4{zdJRI)gq{? zaFFY<&=*QFFr38WvT$HmEst;Xay1ZTbIT=qf(ah_bP+AveE7=jL=!2FzdgkFf7weU zmg0L)`q{auJR=Gj5dd&HG(Nd17Z3yn67&uvxG|VydfKF+*3G^hH9Ye95-ghF=vzY^ zdwYl`zl%frRgkyr|EkY{W46qc0;?uizdE18$NLHNCm5eJ z@HjO-7=sJ~Vzv!myfTH&D!8vHm&Q8R{JYS|G;f|6!R63sZtx&xCy!}n+seP6i`n&y zk)aAH1UEtnc7Eq7Tlclo)-i<;kebciv3G`exaAVxeyIl|rKqn-AEa8}o1iC{z+y>H zLrn^148u25+4k;}@^> zqZBmPdvH4~d}eh%cU3v*2*mj2bJzIG`(Z{WX3}l@l&eM-qljq6YJ!I(v3-TjjaCDl>T~Wdj zgR(-MhB_BHE-gcJQVPbxGhFG3GB`So%b~H{=cKCCj-2hJ+3=wRfO$d9MaEP&Ig&{+ zKXm@5BiS63V!pQj6Whh(_GXYk;=fw)|3yLqm+v5fb_u))MDKv}2=I~wjsVXAvD@f8 z20RbEY?-||0Q3S+kp5M>mA~hgfkVJ=f%v}wC3lL%$Uitm00000NkvXXu0mjfkZ~W# diff --git a/public/logos/coinpaprika.svg b/public/logos/coinpaprika.svg deleted file mode 100644 index 122b7608..00000000 --- a/public/logos/coinpaprika.svg +++ /dev/null @@ -1 +0,0 @@ -LOGO_NMAsset 1 diff --git a/public/logos/coinpilot.png b/public/logos/coinpilot.png deleted file mode 100644 index 0458d8084b5680ad949f5b35566692d751f6a0c7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5140 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 Iu2bay0XB}G9RL6T diff --git a/public/logos/coinstats.svg b/public/logos/coinstats.svg deleted file mode 100644 index dd88ae09..00000000 --- a/public/logos/coinstats.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/public/logos/covalent.svg b/public/logos/covalent.svg deleted file mode 100644 index 76d2cfce..00000000 --- a/public/logos/covalent.svg +++ /dev/null @@ -1,7 +0,0 @@ - - - - - - - diff --git a/public/logos/defiapp.svg b/public/logos/defiapp.svg deleted file mode 100644 index 98be168f..00000000 --- a/public/logos/defiapp.svg +++ /dev/null @@ -1,6 +0,0 @@ - - - - - - diff --git a/public/logos/dexari.png b/public/logos/dexari.png deleted file mode 100644 index 3de0793827abccd4bec4e6e7e8cae387d74a82af..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 12600 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 diff --git a/public/logos/dexly-trade.svg b/public/logos/dexly-trade.svg deleted file mode 100644 index 2459ff6e..00000000 --- a/public/logos/dexly-trade.svg +++ /dev/null @@ -1,4 +0,0 @@ - - - - diff --git a/public/logos/dreamcash.png b/public/logos/dreamcash.png deleted file mode 100644 index c291da344b6c595c0fb36d9c6fceb7bc2f132c58..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2199 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 Z*@m9oh8^s3;QdW6WF?g(s>F + + + + + + + + \ No newline at end of file diff --git a/public/logos/echosync.png b/public/logos/echosync.png deleted file mode 100644 index 6786ce977582bd2735edacd35da7b0bc03e4754c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 11344 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 X?|xi6p5KQrg%KrrRk?4nMlb#kny%;3 diff --git a/public/logos/flowbot.jpg b/public/logos/flowbot.jpg deleted file mode 100644 index e3e7510c1d9a6b5b70ffb010b823a54132864bfb..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 8448 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 diff --git a/public/logos/gemwallet.svg b/public/logos/gemwallet.svg deleted file mode 100644 index 8f9c1b5b..00000000 --- a/public/logos/gemwallet.svg +++ /dev/null @@ -1,25 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/public/logos/grider.jpg b/public/logos/grider.jpg deleted file mode 100644 index 8c34b28c84d3c6732e842cf441f1a68b255e73a1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 16802 zcmb`u1ymi+vNt-oySr*Ks19hsDmJS_Kk1y5550J zTmD1ez0uCt8uVzyTy<3OYIho`5q*!V<6o z$ufYrZh#A54mw+a_~xLGEvN;k{Cn>IJ*O@fY;XENLq?PZ0I0p!*K2wJfXM`a=djn; z$AZ__=RyF0SOtLIaZysef0H6c`Kuh<(c_zgG&L}s{}%e+JF_CXHCktt zbkPmyfs{h5&(N2u3Crqd2LJ04D5fKu6K%4wTi+m%I~Wo9724$&H~gx3u-HLXF6QY|F% ztlK9rYj z4>{WdVe*DORVk;a|cAL?V0cyv!ab(O-; z0f9^(KgQi!>Q#J{9w}$aAGv#W2vln&zJoPp3tYIE*C83eA!;4vgQ&$qs_?|FRNs4~cpXsq-@d}s$>>c@&XiV|N;k^LZ*NqJeyh-q9r-O# zJT8;|^Orkh_YYwiVr zP2J|~Lz!ohsGz z-=95wHL7;yAO4_Gq0}ZAfB#;6>@JpTul5-$1=%6cT~GQDDvh0PB6jqK{~6c90!mE{ zyL&f~DDHHei^ue&#ZLlH%bmJtKc)7I`fYP_9W&cj*snq8bS8K&Zjj2i^4TLwc6Yxs zs2t@?vg9vf+5VRj=mpL9 za&obsEVU~uQJ)^bP&wJ3J;S{`{ZS0btiBUwQ}bp7b47Ixl$x<#HeLDlej=9sex`Lel)gk`g^j zUS1ij6nwi-X`y$4eO2^~ERDrQqhpbQpb-`Xm|#%gufW%)CG%UFy_!Z^`I>|*r{B7T zL9_%t^gDdiY4PM|k(dwpGX%BU`L*c3eyZuGY3Ih0e>dplxOq@s#F2~Tf+xPTe|QD5 z6vneG=vCoYy&O$4IN)kV1TkVM|qy z;=WdWt)y#Q{QeD^I~)Gy%T29x9bA)+36&uRw)eLng*8*HY9fbbl>g6Q1 za${oaZ0Lw{;kpwl9M&`txp!kbE>$L3gfL0@^)od^Iq@ALuy9Ft#dWM)mlBpio0=U}#hb*N zk8@8VstlA)RM&j@e#^cRmZh@%LU&(+$RZ@z?45?+PjcJ@}s3N z6!TYL%2l60XRGTK;Cn=LhU>{BD%*L&E8yf3fxdWuQP5%6nwmca;f?mv`as0A;n)6* z)y!kN;Fh0~kXlTF$AlDP?+I=Nx)*166&+0VTqJI7u%baqNy)}wGK6Iw5|{~UIefbP zL!@%uWO$0!_voWTQ6PgXOynU>P!Lx?ijBSKgG2r`CzrHrC!`M6Ui}IPHmM`fa_`F% z(BO$GN0+icMFj5-1u)i*IjBVCG_g1ps%6NFhNCY&r@~7>sqGXXnk#azNr9Z9CfJ;g zW<&&@HKz;KyZe*StWY#cMstkYBU^bH#~0~SH> zTQOLc-qlgiZL@Wit-@#|rzlIXH*F+Td5<~n&Tz6@PhhY--mb5{2MLm{e+v`ug6xoh zXW?#3Z$nt-a%(C7KNgi1alg#qB*fkRX}}U-i1Mx5y|k2`#iRbARe$F+Q)?c}Q}XUv zuW1=WX(UcjP2Y882WMVDkq=i4nZ2<335$*=dBNE~;>*fqEnX9pojvdF*x0yQTFSKB z)O!O7?#@e;%CTYAC<7T!U6m;&h@DK~G|jyl=B%t@9}w;_V%;)t&9y5whzRoQq4l9w#=;7 z41S^V5c+bly-^L{XzX%7fXx0`rEfPikiB&G8<{!?J=8$x(eIbW|8xJA#SQ( zdWOM6D6r_LA<=7U_oB>1hAKp_L4uw6<3^+z!9IsS68~}+ zJf&1oY>^paj=LeJsIxyGUfgq2_$O79p}yQyHcvR|rkpjO=IBAxf0abwdhVT|Gca|k zyAUgnep%tNJn}%i7p0XHNd_wfTu<&{ zCzsJsMK*1lQ=zu{j7nRXB}j)E1>H<2YMd3n?U;`g(%>B@7%R{pm}`q%#Z= ziSBjdG5(DmVH0HZM;Gl*(F_WsD3V&RS}4fO%H=MrYy91(4y{k%VUwD>_Sv4V01{^4 zIMO`?45KJblC20tfnE7ZG2n-_;9=x5o`Y`I7|ADc^XyH81GK z4tmuG43T`g3w~w;Si}y_UJPzTVg81=ORvFal^v6jN~Iv*6i56woOrB$TSlS%$MWiL zN)rD!R{*WMgun>>{tqp{|J6bel!AbPfy2Q=LP3J$Kw7{+83-gAItD2ji-?L^02C@F zIVG#8s?!d$vB{jUSVDato3d#T7KML)!+&Ka&_bZhWW9jf)SB>E1Lq66b98#jMv41v zO>7IU?8koHu{}ve1#h{ZtDB|g+Lh{z7~VHe%n9Z0yZ}y;sDX;DxUa~TkPYf9Fw(DO zP2{kmfaeJ^|HY$Qc9SOYIqt=Q%L49%?CB5{&wLu%ZZfWq*hI{EZdB5e3<*10etn*cRX1}g*4A@|NIAYBA&3zS43Z*dwL3lH z=QJ~!4E5xw()n3=)>uho<-)u(6V=??5To^j&}wX~!BorrKJ%s!bFRsry%HgAN3@JV z(VtevP5_%RhwZkCfC1oa1JPk1q zhZkaC^xcoJgOR7Rf^?5?l!MYMw`&+l`T-Fb?tG#yFL7U|EfTMR2F2QDZ?P~zs2Zpw z<7Mu-q@-Np%$CW`-=-;egw~okXmdjMtAWSG&;$Xyq(23Y@AHVDA;*-;O**V(66UD4(jOxX$m$eU(2ym*k$2 z3>y#Qx#1C&&MtJyPyTKtHO{h^=8^r&YgmUyhcm`BOc1FC%B8%Cc~4Rf;&=E{7+YKy zW`Zp9JZxKBlw&?sVS~g?Z2gXKAJ&xv37=V0BbRhT^l2ns(vmNVMOb-_SG(_E|Qd7N8UHb z6iVVJ>x7U&0aGz#-?I~z?5gcO&6X=7QV@l#e|jXiMue(sJmTrtfDm$gol9t{R95hd zm=oD5YPjWEi*=Z!r_jVn)TDV`6V7^2pnNZq4 zJ%lwZ66QxIA`T54p=PpMIOONt$0H}g_G3jHSyW*iijMLmc6##)VzsMT?%A~DqT!Yw ze4Prg`4TbEAu5hX!|SEmX-75DdYQxw4u(o#k~;g=gg-2}uAw6J%=k*D1oYY$69NmCCJIJQuTN~$z(mMNPjC7I}poy$jTgo zJr}4TDZ2^7Kf8{$IB(>X7zd9_4}AxGqT}8a za_=iYjyaiGEjz%)8_>UK4yRotZR}KTS2Va!JNb> z34C5XFOW~w^jo{dV`jakp%>z#OLiP#5I&box`*;1aY^I^6BE(81@UjH#_>7s<&qOL z=PVDg&$u&#n!Ho2vYA@BST-S43emJyGeHFpQ#EXDL%HdXjr-SsS!t;8MRAZyNl&yoKx}mSdgjtH8R2UY1>|MMU?9V~KH@ z2)o@+K4mhPQRGC3C6}NP2q)IgXt-+w4m{IaH6rr--j7W$iWRhm7;sN*uRwM?xh}&L z#yKYW0sBz)iPbKx9OPfo7jKOU$P{0%vWc;{82yDmpu31>XP*FlJ{>0} zV>KuTjT0*3H1<(RD)n|R-(KfU(wu%LtlUWDJV6K?V+(b|*eh@vnvi%^ zgswQTtw8tkp-B2eWVc6M!6voa1WLf%j!*{81ueVN z9`$B-4gu?jGcMJ@1^WV5zm65*p*Mi}zv*hp5LM}{8hlN_vd;}e?%m+~WI4A7j92?f*y zZJQpFfV#5$Kz7Xfnw6* zyx=68nuOo<58)lB9G^^cCq)b#kHqD#4!wzAqTC58f8mpL=5K8O3c@5}yv^=d@cNeW zP0jn0J1!mLF1Pl{!WcM4{R)Tl6J#vMqyA<^%o7C$50%*dE_@-b=;yM=dJA5eBNPHm zaZb-@O#rR;KO(PDe27au z!^$U=E(67#He?sdnzFaF1fJ!}*>uZeWA0Ctd5wGg$tt%uda86?-RDV#J}Vgq-}o1i z41r@Qe0thhOg$Ju&K2IlueI|&AZ#BCSJ?X$w;r9?!I#Z2eC0e?Cq36TJ8qwkLnjrZ zfAXm ztE00>Pm6NwT?OglU*=Rqyo99&!4)y?I!iD9foc^roUGL+N z+HpC{z7BMd9~w(a!^no&AlKcHKs1Uva*VDeD<>|k7e9n4J68I)nWfvIG1O;`y2mb|EP4&ZxO?`Ttq@q)2F?#frFjyY{*sgqlL?y);=aMd<&?$?ZRJUJ%BO1o zDxYHrJkF{sSFnT4#55}=&`d7F&6GW8D*T!&X(^4GZ0=F`xP1-;Nt`%>3yYO7K{NC}(?L+In4Wmo7IwsEgm zXKmZBu)e^uCc@52z@BGUFqU?6pMp|Y@b%e4;{npfk;wEHGtW4pChX};1w4Vr3;P>P z%9d7{q=|fiV@fMDNq?wbmkc}fDrt`TLL6$Tmo=C(+9~Ud1DEPJfm@w${eR+@p?TWT zcYd1-7nki1+d7;?rZIRtyz*W@zp;Iu1tkO>Pb#_Jm+2?K#e2v~Nk=Tt)qH3wxL2$) zU%FIk%%7M&Rtu3J3BvP9Xx~f6P4n&j(sq|wx{WanRY~>KWXIQuSv1{Wy_mlF?T7`M zvia5-P5oK95bX2o+Gf}T0eqJom-Gk1hWMNm&Orf{VG#a9@)b>jR_d5kA?sZDcnZV8 zdd0*XpCUG&IhHxcc*lDfDM)$O&0;l(loftFXd+dhLzm($Ufuz;o!O$nExWe$p5B({ zGL}&YU{C{awLH|*3lk_)D8E{wnmksy$_ry>h9hjRniM(8LFPRY%vC1jqshVduFAk^f>FVZ{lBlxfQz)veN zP8Z>``v(-=Fe>wB#~omDC8cb#pcjMqh%rs;Y9-^QK#`tdu%1_D3^`gOG!WTIl+VjG z{b>)B(HrZ~AWNpq4utV&D);_?j!wmxE4sS-J2NS(n;0XPZSFde=Z0{gL`Y*<=f$$j zV}D~zwc@^a@@RH}F<;-jr#h^3yK)sP3Gx;A@PyiFjlLi#sLVSPF5~8bJ^KkzkN}F0prmT8QiyXp!MYKOjxP zJ=WVGJa5MvhL3&~WV$uV7xYVnLOGHhV1mdcu*oJj%=yZ4W#&=e<--q!XOU3kQk=f& zR~G`xhIQN7;%v}HH}L)5WsS`4>)QllFYd7+vzyg($;3_MKOYyCYvPOG4Vj$9vxgb< z4F_ixQuDN0Z~Vz8WT~=Zr;iGI%U}nCbn#i7&HR2kJ;H+)sn&X@rq9Ww-mVZ=`!Afz z!gm>Q2V+k}o)E=riJ~0GLe;Q&F{UE<>iW}WDa&te(I4%dmHuaw)BI1BU5!OTw--$5 zZ31D;yzy20v;Yz)Ylmx9N`Kr>ukzr`xV^&xxmEkx?fYQImvxHVX0aRMx;?ECD|I_- z8ug_y(x$2X=$FIDF={5Fc?&}KSK!DcY(nGG%^hoTD~kbv)P z@!9r_7NhD5^K=Peq;VNOW%pWXIkcZk_lc{Q^-J6ot$+z+olb1L97w?iPdtfU!DqI@ z#V+{Gxb`hKP9k=pxlJ%qfHDJ$Xg?N89_N7TV!*{PAGyDZ1p+@Hy8_FwPdL@wb$mg=cHk$NXPVwAEhjYs*VHx=B|k-a3n_vx z9YGSXpZp3GMGdUpt_kOJ{&={eo-oF z_{V|@KEMx-I2OOmjN+Yo;ZhPAJ7-p(1-vkFs2-X~C2pNiAhi<$K&@_@!^X~RXvRZj zFFPQ-A$hxzu3kcwgh_m7lkcBZjT+{zESt&`$yojI)Gj$5^J;`baWCDTFzl=_ZCJXAkekRxzH)yEY`iM>J_TlD~eVuGe@Q1}878ve^JJ49++7)Ue&H;*0KRv&N| zhW>7f(?7NDTwG_wI5A=vQX%~tYGa)V?P8Z{lrNbgZe5O z6a&Pc-hD$HY*eTuXFya*INPQT3(`pk6Iq%U52-_=?KPGRDrzTafJEJH6L8AJkQ{5o z)QL*ti`giEj)9WtRWF;O`9ok|=i(c-u6SHP+NdynXw+`X{OyA%#qY7N| z&{?H6%ymXmy(;iIKyHkgfp_hHP=wyzSK*Jyz0`DY$Ojs4C#m&XDOiMqJ(W> z=N5J*;Fx{-20(pHF)rtxg`7&&mqYdj|5?&^O);AUCWu3TjVG(!f&!f_EDVkaOV=Vq zXwzmJMI6)q5eb2GVA#0A8Nd4Mk*HN9C^~5I(Cq~Ab{ovOfk&5=9b?BWq1U|^)W^^F zZpKscBJrG?XXbSKQnzL8}> zJ70`{dn~h@MSa~kdZ-B zZQ9|%434ToD~@~Akv;^GRVjRiO_qlNi)4*3C-1RI7DY|8Q0kRyYGc7FsgOL1_LJOD$#iIh-j?vZr z$~RXAhV59`Q|Qo~baC?4yJL`zQ=FuFV-c02SDEzE{7Ao}DNlPxHfd*OLv8Ua6{MdI zrkXC0N(ykE`v2)w_ft!JIQoiV8t)Z7Vtw(E58Vpm7dB&D!FjSK89r~L8&yySLx5;k zf_)pOEtExz&+ua&6dp|3q`G&0Esi9gEyLKA0CbER(i#9ph=;ZmXl0lGJJF?161)CK z1D&uDZeU!H&T5iyF7xG(iI#0{8nociyuK8qC7C~5CKz-ob$4dL%G&M6bt|MCkz*GG z8{Z?lAN7?e=QK#BAo=WS&jtq3g6@6SFJrPE!st=7SU ztb6;GYn8Dd1zkCOs>2|VNXF<;`kNYDU{7Viw$^u1#+XMJjMxxJ=?ydICK(%=@lpNi zUi7^hDT(@73x-0eX`W9tV;1%Lu_Gy1&cAyjOLr7!57Ha+(J3_I@fUJQ8`orlc45jj zaRXw6Cv_}Yx%+zUSJdc?gARga;PSo`Mv`OFGXJ`6Ik&M%#iIDtMPj}MTVDTJlPXZ1 zCq%df#R{h|^gcn6KaCM@BtR*QobbK08l+j-8q9FOBO6bz9cs8TtMGT0ySV`7RW$J@ z`uuF;cIXICt!|zrshe;!Ro(b#LxevGoa$^b1G{B>Y|KIx)7KO*R_J#d7*^IORoTSH zwot`3qZxTDws42XDnJ`EB5=yy&IvDo$GoX{UNG9;jSm^pjp13??;DBcZBd=QRe#Gy z;$OE|CqJ8s_Yz7_GMy6KS+l_rh0^2OPbBXT2Ti)0@$quFGITOh@2_LJmHf;YJ_=ET z;x%49^VF&<3dPx};$VoAxN!E7$KHTNJTA5EGs32dGPlZy}JtB*25#ygSwRU4RjJjgO9pIUzQhw%F612)FJCBLu0*Bg=Z6y+fT(Nqu# zeQZU;Zv3~20>)}hzme{NL>`V{tF*j} zq6Bc6G`jJtyrOzlu>pD^eZMkcCIcs|%z$l9Ga|(uq@yNsL>l4%^ukx5AB}w=Q4q@o zKk)M;II6e^F6|#oW_pva9Q>KY8YDGyms((DR3c2%(1G5VB+ggtq9l0Cp}XS4roq!t zk^~hVI%|}0Eszh)ipuy9r!);@QFwnM!cU#Cd12^v+eWECb47^?0WhC`VKP9uAs(@= zt@&J~xrzL=8^h#`r6R4UdzyL*&EPr*Y0U{Hahv2gs};9_Fpwt6N>M;8thL8n{i zfDTb3+JNwf<|nYVeNLG3YYZ936~O9fyyX;OY!ggUSmo|rrg0yog7PIh1WB4LS!pV7LOn25xmHx$LlI7qe)=MK`vQOo`ckOB~FbKJ>Oa zF%XW4yaZqBxVz!MduZFZm%6qW#?e8v1MtWCPg%mx`&fL38E69pkfi8#??Gsq+pAs5 z43Vg|h}(yvWS1)7m^soUVT#Lag-e^qVblgsvtu|FkNyoSc~0PF!VJ)#RgOkNQMtml z#ex#&iME60Z&G&iv9T~fe2BP2+)i>Ts zlt=FvE+xn?iL%t5-xr8ZNx%*&S9OMZf)m}K0Mt&ly*_lLGvh=kZQ7G0C zlM8y|4l-deLAG~X#uTVMNXG6;&3DEc0~V5GaMYAp$~uGGq=U2@gcNp&S{nkm5SKW0 zd*$)sh$2IZ=h&aspjs4|bH0a!hV*bzPcx3ek22XNEh?qNi=6tm5or@5;2=}2YU}(O zP;wNRCPw21nIakw$gR(*y4+2aOAR1N!S+JSLyc$JX}8J{Fo5mgzS3wE(*?5`9tQ5? z7wd*Az00KsTCjaFyb>hj18`VJJ>oGsU)4Nr4lyE9IF!mK%Dz3QM`Z~krGw^GifQA8 z7!>OZGnDt!>|=g71ejv53JO#k@l1qrRcv5%O%}>k6clqeka91RgJtKRdyQH;1K70p z2yIOJ;LaPF^G*}%Y4CxJhOuiijBT9Hw1Er(?_U9E{P$N*_2Rq1myI37!;B&=Bl9w; zVT4e{7Ncp;84=2v*OL%7qu8~R!ZwzDB0oq)jF)YBt%R294b{5GExbHm{D#V&vcS}z zXhV;9E%}Jm&&CvG=Mrof-~~k%@y>g}56pQbkORH3<$0Dx#a`qEc}-pQ`!NrcK)GPQ zFtS-*mvBIY+BTOmqWs}pyx$}_ENMMD-AOaZiT}6~jt%+$;^SrPCmkiENRq%YDC5z8 z1)6(6%agxvrv7~$7xj9E|9|-}_OC*Pf2-XUg z+8dMkdWQRYhV&YRdjUkp@n4TKTuCupj1bOBF#C?hM zrm8W9Uv(O>F$U3jnvyw=Vc|^`yUUv@hQEVib{TtXW&*?9IE}a`g*!h*=mJtTNO+~h ze;LAmfx>?&0lMN_8;S|UT}9eU1;ncn=ElFA>k00?8O-Y$)P?DPw7oUE8sM&vL3EMf zc6qzjfBn_P5pILN#_$jPH|MPi)Y~X-m;dBU@L$bP{!8i~;_^Qm{BP0!hn@1by>!(7 z>t6alE#9Gm-qM4B1b-|4wU>?tkg2eU7(0;$pe8Wq3)d^p`S)F1?)+=X3)=MlQp=a0 zzl|NHUjWqmm8B{0LffEoVeVwwVeT851tBng=WGZ)PuGdbZA!X~(CHQvX6nR(riFok ze+6F1F>U{#hb;Tu6#?X>aY&_VKR%?jt(&cJ%8(pRa6}OT)oe_I{+BL)Sg~-#iMBJ& zjMn*?0*lNXGegJV6b;;7GJ2%C+?F1P65Tjuh;q3YP$4S=Gg_aOc%m8!L!fl(oT*ZI zxjpDV@rIx6c#6q4xWLR=`pae&hB$!-3x{}+_FW{tjio4amq_$gXM&HNjw+M z|E(+rJNS@FF0I4&453L&t4Aiq8mWMG9f@Ck;PxxPgGRSsEej3^6cH$a?2?f$q@)zboS92dr3-c+t zQ)@&I>ZGM|OOY^cO8IXv5G~sBbP$GgIritdjN#mvET^ZrUCr8s%LK`XOJSlBuK8}= zzOS(U>Ie~}ya8_SiCK^+=^osBK&YUQb!7Dz&(mqzto;R`EF0U z?*~hqHxALc&8_bZETEqNkn4nqVj`$5+5)0vNm9yY(oP&c>eWyBmZBF0?Ni{ohW)SW650!oG>uiJ*@ua5 z&E2nnn8JI|B0mcScp|NWthR>Mku;BmhA}TBA__(f_JNDh>c548ihS(LkzJ9NLo{^M z4cbX2l_gz&1z`K62ciOq4w&837X_82W$?qxnLAGrnu=3wMB2)U?H<5F@@ewoa@_;Y zX#N*G-G>?DK-<%q#xMw_q8LZ`L-n>__p?zKLfbq6Vs3xLVB5_t3P>lL`<)?t(_ zXR@O9xAwDo2SJcZ#}=ps%EETnxm&1|Z=FINR5Ll&ymN;>X0;v-`f|hd+i;b*yb;1R zgJWNAX3~DJ{s1V;#8dSCc4j=EIEH9fGXl{ogdMk&Y@xHGLuX=cVn%u_mUu@ZVx{m+ z58noN*2c|z!im8d9Z714nYjRsi;lZ^_VY~D1(kFjnzMuJL9F+CL)cwSO{A@CGLLJc z%#yx$^`brR3vahdH@{?M$TM5}lXCJ0H~Npj-vUOf^cV&EQdxa#rpou4)J!b}oQiZ4 zR0UkZa@Po5pGf_YPYo2@@esUr+A6?)Kfu|3FwtMRB#Fnb$~WL-4K8xXX#b2PhfNHf zCk|$8q)s(|tQsjQlVJj*+DC*iZ)7fB@$&^-Pr_DlPb3lA#<tN zgbz4L(+3YpI1zEPRPB}d1$tO{)YR})rSub7vCW7%=AZ2CipH7HIqkOe>Z(@I1)>6X zQv?f$KsEHNzxmKh;DRfN26h?UNj6B3)H_lNsWR;0eQ`JCV|H@hrmBs4|`S0E3^0A3X~AHwvJRaTd44A=er&W5kT9f}(0V)c=<~6pb<>t5zpdZl z`dz2YME`C4^1V2$laU9-c(w9!omsY&Sz|Li0hg{YLMt+6o6zPUL>s=C>{F9KRKg$p^*fq&isomIV0(wBIh5~L z55=ZP?PdX|ybGz653OsvW4y6r6s-qRlWpQ#dS6c97H!^d3*&0mXyb8`KuV$#v+Ie` z?TBtYCyqIKaC--mf@|1n+$^L1$v>`6uQoDUy{5DHu*)y3o9&d@P7EO%T2Fi5^Ifc1 zv`mf|jU-J;4WY5U|0=XJan3rs86up}13XrSB;*g&5M)PzBq%&^^BXBFAo3W*%LYb~ zc?aZ-zRxQ_!#E4yis{xs$QE~Z?98v;Qg=2PkMNlzB9%d;`>XpDvczH1!)o?s{*yQprv^gftXs zQnh98a(Xq3$T2!F+Pghq~bLoH`Tqfgue@5iT3m&S4#0E6-{)B?+@3^UH+&Cl*(#DA{KB7`k*pyaUnI{BS9#HhnER43!$Tkj#uoTRH0;$zk zauT&SC4F2?DL$xML7;EJj%~M-*0Z91#t2mRm$BekVWoo^mC5r>{D=bzH^mIRvL5vh znH0(~CL;jYwYMikuv|xdr4$&e9#3QMBNT^oh7M6Ij6X>z$>-a=rL&z64!9DpKvG6* zT|uA`Dp(!~GtySR#-6qC1|1J|3R3Q^Of$&yx+2`ppe2Y?!Or6Y*geZ7?!6=!Bm6iYX4!y2Vlo*rU)9z=ehGgDSFH}%%nie`b zUETNveo`SVQs(2DJ$;Fmc&NJ8RFPC39p|1`a}rUcHYmX=7o<}SMFYamg7)6QE2osd zQ%)0=k%iwug8;p{(bbkh9VyNlV#q$di&`k|qF6&B@k_8Vo3bE{T&Ib>#XeysnwT_x z9H7&!p^)MfQggDwSxmVhZ7!kO@FUo14yn7bK&CAcal;z-9UPjyAjUd_=*n-W@7-Ww zKf7-9z33XUwhD*E6>mRW1OGFbs%NxaekB#QuGAr=t&)YR3?aLdn)m(^q?xl`0l%bNil*3CJMW{c@BDrq61#+f>$UdsD%EtRsS8*@Y3`zx~E$ zmtCP@^X=vH-=ISa4!$P?gFDC0-r+`qL5wdoeMbEydLMLT1!lB;&kt_GI+a$09s9zg zhSu2+!zz|vW(}Fr*|SR4MIQ0q418>50^_oS%Q@sn_YE?WHcXW75BG)XV=GUv`=y!* zZ0%VtZKP8f*U;lO9-7{~{sI$*SHPO;-ZT#rx}pWXBl{8e6{v~D6pK~0H)~#KSP|+c zgg3$(l#AmqC$8&eckSx$>FNY$%FgQKs#QjwB<|yu4eCed4}acZL5)`Psd9$#l0Y|j zGly)1@8*v7nUK}+zqiECed4<81|+24B0kF%&Fv^`-EZeg0iTuRmwLpqX*xQH0=`@p zWEpRQ!Qafk*gq7fe~c3Rak12feB3t69I~zKRBs~Y-Z5^NY5`f%i$&N-He*8^3$NKK z$ghLg$msH9{En;FDr6)v)c=(8NXfRLf_K*Zw8Ptx)Ba4cb#%F2qE%+h)QhP*RUB!|J4*Sw-CtjE!J9GBUV)EA z7JuO9kfa6uZ#^Nz^$RdM#z`+cl>!o*!Z7q;7+ln5co824X1A-UKPjj1R(?VHu18it z9m8Xk80~iirAKSm070$mI5u{51c@22s4$)^ej5M#v5vKL97m95LD z?$nl~PNg99Jiu1Zev@?LorVT=A~N`9Pu7*LoA`H^BxS`yF*0a`7&|wLx>;~|O39hY zsWOz}s;)gLr*e{PBYOldV|Vq{+2a`Twu`$_UodwCA_S%Z%^hQ2W8H5^3Hf{!y;e{` zK?jb6X{c-C7uZFqCx^|OYh-h(Y%B)&tXK7a0Q{Z?)%`aOFcqUBNDFqoA9`&s!ce?vKc8{$Y_qjQx;qfYi* z_FEL_m$7f@_(b)0qg4V(m^*b_ASv*nH%FE-A^aWABBY}S0r%J-1Q$&^rfxsjfk?N$ zVfsdd={T7102>(p>a#o}WtWOSQA`f-3Sf9ZV`Rx?K_Uf4mcvnWU$|>8@}s_`QkWl$ zD7~e$7(S9U8+xIB-Cb=O?5MpPvWX@GHfTU|X8_il0NZlx8S>%8mm$XbwR2)=I)OR$?OT>SaEfVE#lSAoC_ST)ZG z`Z-;mSH9clXYRIaBnfvvlI8ygQF;^V>j9=O={As?%8~aAe4c?Su>{qVN>+4;6+JLR zRfOdQhT8{bC|QcgC6bwJl!A`v0vYSk+A<^K|wb7sTE8rhi(SF z*~#sb*ccL9@bS*GT=>qcCW}$YI?9sFG%(FKz$Rh}zrLz@KSnJ$rLZ)Bix=8L-vq&I z*vtYmWMhT%jgt7yGTZUWN3*ZZEv-Gg8sxcUQo>{DT2;Cu^IghyH)eZZ~f z+_T{7F9~DIV`U$v>#pkt7(R&|y3d|EmukXcn~q;(v&8Hkr{VKS=O}IDb?e%Af z?$?!FaGheLhSitw>|T#9A*=83WTj%t5ISz852C=l&_vg~?mKjLwY@|Bre5YcWA!Yz zN#D>9hmH-wUxb@X19y|Rm9=@KKNL5W4%lkJbqbPI*yP^1b-(|$!(YJF%j6Ac$qHsX5HPqJ5`O4aQ94%)m?DTL>3CizzT}u5d9zf9d=4-gy*f9BE@YFo9za z=s`@qE?Z@EBTA`Tmc|_mDHhvbb~!iSG13>AT2_bb>X3Bn^`@3+zNDZ0z{0qT<~I0i zjkoQuO_}AQoJl^dRD%bU_>>f51!Dbqc~?$Sr)Ce2u>&wrH+)yycCOkZ9Z(L1&rd7bibfR z7|i(SF{kUTQWTDXL`p962h(uGuD7l?gqpSO`=1*-c>BgyIR^6tS!N?`%5V*Qr^qpk z+VR_ka=1?6-QU7|(s%%iVx*NDD4<@uDMkHnyO$BJYv}j+Le&51$#1tnUuXx;|n*b<%>;h`M z+IE!QFd27#^c_-T8cu~It!~C#@R^P`m#FHLy)T{>;+C)ti^pSrxug1wQ1=gSe}+Ho zO0NF87V6=Zk2`cUt;sy3?V)l}6ScPL)iR_gD8m|Uj);dN%gq}yZB<65=lSkVMMFj& zKH=s0h^Ap0H{--VB+htyb;(zCSd5_}!@U{Dqv(Tq%ok_LAB^?fu8EqYFRAPSi;5gS z<*v81wym&>_Zu}Wg5HbTR{F=8;@%>H(2pmZdHiRvGl#NNO;;v9Tn$*bA#9j3yxL#H zb6zsIc!J!n*6jO5tYl$n54a)U92x+vc!>cbFD-%nz#8dOlUvX9d|#cO{h_V%vwry@lOaRzt_2EhGjRstqjj1_fPzY&Xwhzg_5iP@%?*6Y4d!=d=_**-eo9yWZf;iV z3GJOj7P#@K9N9%=A9b5+qwjm=!t@TYaw`|+X+BY&$_-nQwq1RxCp2(;nCc>7iVDyP zb9#M?AToe4Ct5qkVgzmu2BE_%Y>z#Bvj@B^vbKStpW7-eO>e|+=B*{${-7<(teyqz zK^zy!CC0mc(fdX6=@Y){0psIVuE1%qc(5(lCzGq5lg{H`Gq3Y`IinQocf@Kl{auN)>V04dV`kB|)2ZRV zJ8s?j;f_ezEcEUb&`6~7w+aLhVF+`*>v~_sXv&8}Z^`y;+?r&o@rjBQVtqn(Pj$Ha zgF?ez@x~gCYDqaX;SPGOv=hjUzu9c5%n}811mWEJ*Qd1H!tDv1VPrNK>$;=@M93ay zW5sV`hD3rgJ*txApOL_BgY(Yvu{8xgm$)ve%I#NW$eOam1py|vU;6^a&q*h62}yeW zlv8Q*NqEhY9kKn4@fXNTu9u~QIL;2%cv8gOE3bjTruGzBA&{MO-fbYv?xLie4|EaawK_RK z_(R$f;|enib6&o_n>hM#tpLgKjd%*KJ!lqxW5+4hQ5Cx{vB<2+$~tDShQqa~x9ze0 z#Pf?c?0svwFVl(EGJrTy795AfI7rpxHC$}<{eArHf7$`m{4IbV_-pFXT&!m;_s7W@ z7Ts*P?l$8uQ_wB=v5K1X?NdzYJhy$$qXWf;IEMiTN0qiF9S_<3+?U^s^eWypy4^N~A`5 z2O$*c(gma>fJl>s5<=?y_M9_k=FaSM?mTzyJTu|RlRthd3%<3!^1ko)!TQcx1f4Rv zZFn1WuNb(WAiXaNs%UC?EUj3(7Z+ z@!xaexEOHe>WeoYj!WFEXcsUaAxf$|3XI_75)={^5tWjbxg;y6s&-9XLsLudmi}#n zzYL8m?ps<}+t}JUKX!3-bNBEJdJ-J+6c+j{@?}&sD&|#ea!P7iddAy#nIH4=3korx zii#_%s%vWN>Kht6aGhPfd%9 z0kQqtk^PHd|D9dHAsqSR=ux(#9Dmz&TOwL`JJza(fiD61mXn3D;)ZzlCZ99^{zF}ixUY80R9kqJ&vQ?%O+Cx7tZOziIdX?gmcgP`!r8)=v)F)sUqdzVA2`*qLs zKI^%>Y5X==`x2pa`!fDV+^hAap!mt^Uk|S&dUNte6L-K4L1D@_vu_pE=+&VyD87L*5L6_6_zbSfHcpjK)@V!~{~HIe2k6R*=b# zx=mcbT}KOgtai+cqV-#R?05w!#(MD&9`u($OKZ_ilUU=~nETZ%kXx$JM`=SH@5|B! zp2_it-tU)7%ZgL2(YJ?p37&tOdIgy$l^Dk4faoK$h}ULLfFb*cRw%-f0mC_C1Owi zgrDuSwLbH>pKJF{X3L%1JkIX@d@qCL@Lr3nTfc6WagHZdbWT)8c?QNGx)%JNW+IG% zb9u=~niQGl?Y_8nbX!(=zT~pp=_|)BbtxD^=Bj`a$6ayeyCzgs8y+?Qm@0 zrP{&jSJ|aH#LE56S)i8+kE$Oer?inL(@mN-%R-RAD&hxS&0K?aWSpe<4HhUWXz8SZ zGYfRy&uAw+$7~tR{DTGh$^z-JKvU(M8{OJ+Xei}tU;^;H&kQ3<672|GlxRTbUuKS2 z3xZEqC&iP|yxN=u9t-2i{iZMnQCz1e3zS4x$Co+IY!iquRfN|>lyHeRtcD^egI zC?4HbsKBN&Qg9ZD0+t68rZ%-%RwlhNzjqe=R1T9+@TW^BHhLB)sOk;kPx;8=)x)1` z+^^an7F%{(e|dOSp+~vHvf$m=Krz0!m*8LBu%UMXZ=RWb##v^dO-TMZvzrS@$X9{wVm60{S^`;d4nl5l;?cf)8x8!Av<5;)VeVXWKokrL8l8Zpy1 z)5lp5@fU7d=Iz1hE$^~N?qOQl)l2H)_h%90#)bRIV@ys01-!&d-DqclX5fCg#9AnN zSf|Hj@5=oO4eyVZ{?(JGHPla>RJnqU$uXLcH|5KA>9^hK&c0kjUoN+x3jg~FQg?vy z3h8A7ao&z`R3!aifp`ljv8|VgiainCX+m)p?OPAWU`e<}%J?9S;?{NX*QIYJnD4D! z-Zpb_Ni|95+pkfc&3E|1n-Ag=8X9~;a>(IHJ!Ld0c%rsW$P1jVaebsdwfeSZg& zRlF{OaC%Oy`)r$Ty_rQls3FhK6trYikm43y zXmDO17JGB5Qlh)_F^832{OjWk>!@hx^JL61Q}DFcnjv5R(+g~p zk|~;O8ogYGY}$_x-lMpbC+`)U*|Uxp>c0=yWP#W(MK2?8ZPjP0^fiW37H{qtC7-k> zEZ|nyb5Q1;M^cjiI%g8(44GR;&bCqSo6RB;RWK|NANF}3rygTN$4EI~t>YbSL}o;K zZ!H9QUI35Yu(``Y#?UUBsUUh;pek=yk2^?WK0=IF;cM5GR?*L2W^?Mzj~&za(qlyB z0=E~iK#o9>$;XbfK%#WpmqM|Ki@i7Hpc@!IU0=)aAUW#%)Py*ebUHMT;zm-o^5BEu z?cp~SN+jfh7U#SI&Y#j`OAb2;D?ztIh-NI1p<5quPvWv9z7Q{B%y7ohN z&IO@n`z0PT0#JKnRLgE(zeZ|o$2ZW`@HyA!2i7xLpg4tX#dm5t>K1Rm>+{>cf9ETx zC)HWp^4-?jcSX2V zyF?*vSUKAH-6J_GYB`%++3k-oZ&Ok6d2>stuWR+6#^OTT>U!vB4Dbs*U{o&Kw>CHI z8M-4e>D3d6sN*`7v01wV6LxS9`V}~>=UvAHlPtHob`@!o=*RU57vf!A0uSwMO7F|v zmP;*`m33%C8HXC~YiV;*bxFKOR}X(*PudweJs9{S#7vL#MIP6iAx8SO+-qu>d*6Ci zp2&`vMg)+nS7du>3HBBv5U1^FXL1QiC{CA)9zZEu+E9u?RvpBu`WSRRtBZg;lY}0S ziZ?`WSKxD=_1s9ZCknk%^s7E+(hwuQKr&h6r8)IeKYPX6eGm+O>pmwW0-eWL+ay2DLFcNRZLvh0q>9WMj z*rGLYLE?PehqZ${xtgS&SznjY>Jnq_vrYYR*KNv{(_sS{e0oPu_dQDZV>RJk0?bZ1 zmK@-tFWIWOa4X|hI14o51w8F?i0Jd3yK- z_(b*D0L*%3%6B`(I9r~_gZ@=7etsd@=Leh`>6bkbH)m8RUX_e7)m?A;S-{>@OJ!bz zB-3v!Zi~K~H=>RvJI9Htv=BXn@}*36Lx|9#vRw5Grh9Q_5mG310U*9|Z^$8}=1= z?r#_cds!7pub7wF_T?}CD3G3Y@d=^gjK2jltgT-D@DMePEL(4Esjo}i{IMqLoAETf z*gj74ujt+3&k+Q0#lS6fd*-k#-`8%`q zC%-66+fhcqC|VFxo785I++q|&{&uitKVvW-3pt;`*OO<0K6=5b=AEn)@ecSuvOv@aAQU8aAbr{{$y>1M^A&v=r^m$P>~ zs0P!jC0RC*Duu^k#=J_KwZFf0zC275O*8D%(jPLFo2-72Wz?_lGUAPVO0=@id`v&r z@$U9h=!Wf(H7-=#A?p#M%Kq$r{4jgE)93H&EYO3_OH*C62bOX*x>a_{CD5#yaibvj zo%P7I{|JHe8d5xnPYIZA6FrMjgaC}K3wkP8N3dPZ#17YysWV>@jPa;+(0iOQwoKFDKU9 z9Tr|rKbbDUCu&jpYc$7J-}GaFX|Nc7o1}|k3gk0(S_uc_%t#i<75sc&fMk{Mi4xY? z3a0pc^mz6&s?^Tdxp+-0p=mC3(k?1>J!NL@mdKsg192C9kEDvr&%MufAB{6nJDM4W znMN=B#Wp0esgslvtL|V$Py<(gAo-R8G!#Nkm&)SvB>= zXvT04MwS{cpJ&@KZ7AcFk^Y7v|idD=joBD1`K_ey&HD<8X-h*7f90YjAwX zSTFjrt+@926^vbh^qgkkuDlL^quu@;##91bV{w7+^C3bgKJeYo@vF`H-d4v>4eWZ? zeYeIMf49uawM_gngw>Ji?{&1i0FG6TuYq8Pr^mWl&yx-|0Tgc5qpQ#+ij9Rk5u4f( zk|e>x+7Qveb|JPp$MFDP34$ERM!CZe9hSAmN$Ort0EzuU3^Pc(*h%Vz2PQL zlT-*HYsA)OO^N!)rSf+Wcyr`i||;O>Px3x|?0 zC1zhE3q;Ky;QiIwVnN@ByfdRH^w4vZBHK2jC;(@&P>Km&b_I8%7|)WJ8Fv9R(u!)^ z@eWF&DegiU7R19tnFlia9t;fgD{{vZTII)hqlAJ`6Ktlw-DUD9Q4atB^VcipHA)Q& zBxBqOr73ElSRgCQVe9|F;-LRx@u4H&P{~QrEYN1&SIE9!1SBf+5XWf#e~}v4$a&1; zIV_M=c&JCPoc^k7xg^j9&z0U&anEkY1 zax4G+=Php2E+9^`K;!*{bD<(A(gy&^<*`5o|{bCZ{wbh>m^81f87T$8?!|me~ z`yO=7aJ$lR$`p=j9owu}MoGC>JE;vRw=4LaRy5m#&k0=D@biH#XR0X z>BXrPlzkTJYVKgRfQ_fB)A_j<1zVgJx8u+}ttTidU7{=y${^;6i8AvvrN<#`Q0_O) za>RQ(uZ4(-+Mm$3!8an$EdMDmE&=r=KqJ5658l!HmUDVOLtG_XTp7vp) zeuPWGZ5Mg@>b;_f560Ro%1T=mp4t&vDFUT_kwtG zOE81vn9}*dt}lu5sC3z-xUb#!qwFfuG=ro}^qbVMs&h4lnwku{x$f`6+1QO&BFpy%o$n8%@{gB@y0#7TO&|J59CxMl6uRGRM&+))N%ykYucj|O06t^*4F8F zD7^qg@@5wN2C)9R-G57_w&|&Gb)YEyt=E*m`REE$L*T8&yGQ5JN z472FhIm`*SCYpPg!!Yench|MFywXiRt(gP_I6W==s^pzanD{M0Q`?-i^t~uA-7~kd zIH%bd6u;!_-c+*QCps5}RIH!Iqj~ zMpv4itiX2Vy@G$SK-Dr^IwUX|Lpq3p2a#?=PS|gVi+y{-0v-R(0(B_o8-BDwI?rrS zTbq-Dj!sQ6UB0zUVGn*Bek%NNLnJ;_f2Mdc$3xb1%1}|Dx+#1iXtkaLXL^o^yD)gw zR3zQSg5&KHNu7mv)up+)hL{l#S0{L7UDv#PM|s|1_Sdr<`s8HtowXBBRr39{hbk1J zzRMn@ew<6qlWEDj)W72mh+`GDC&N?l{u4p*DD6I3%X@i7_Y1iz_7At(8oqgZJtq&;Gcgy(gNZ?Ip($p>D@1$Zc>g0z4n3RHQIKNpF5F}G5 z0{X>ejJ=6&$Jw~16!ud7xjPr4=q2vb^(o%Ue{Do7s^9dGUTFGgjXeDe@nP|pI!6Yq zt6lg9PAKZj!(WerFi@d{PV)}Ddl9ia)aYdS#pboqLX4Gv!O75`+E7bP7hpwVhCNFu+af@)NfXqV~@sIbb~o zqGZgmBEt0+Ka<*V@AjGrUj^6E&9*UbU$59`@zkO|OZ%u>b01fQuQgaWZl=x6jd~&9 zFnkDg@$(lSH+!Y6FwZ`$WJ=-Xrd=)U!C8w}#d=qlNaxREZ7Y z3W65_MnkT*3;yt`jF!1KJg`LMUHT*mj#v=9!EqFf62Ed(dE@e+ei2 zLU=xm(5(d2X&$=qr?rsGw3VNEKW9B(dpe3&CRy87e=SI}TAzDg7piWs5Cu>s*>B0Q zv8E87g5Ni4La4v6nDiXTo91w$+jF9rNVl&1GNpM+B*)b@-9FnKD>f6YB!#_vk)U12 z`>HHD&w#hzf?NBVlbwyhi91VzYxgZaRV_u5Cu9)TLVPi4*C1u{*o`55N^oU#5jjUA!g0}7!T8&in4d+7z5azC9-W0j-F zQB2b9+iT8qL>=~jfrJ2o@O?%1*&76Kmq7%OHcQHxUXlZlLB{IdqtdVKZ{7(%agnll ze9Hg!@vo9%;xA+O&2~rfCo)ZR#;nbjhkv4(+#E%9_QAS8Uus0zELWJm0$Z;uR;Dhq#x@r{r&U?rXtpz@g*hL?Q=BwJa z%^Of+#2R`w0rQ5Dk{35PnQ4xjFAV_nu5;^wYIW6dA*-#;&9gftvyb8Guf#8pfAQD# zT4clb1z+e$?t>Wycn5`Az*wMt71jO~#`}6CP0s6hl}wsFph?2eMGE@NnmF>c66ym!pw%WdH>HIDuD^(v_gI#IR@62H`y6Oi5J-FLC ztUD}4v#<0Elir%|Z2}KWhwyJ4CfaAv%$yk?-Y#BcfqZ(mbdshjQvGvhr+3H5t^KoM zW-eQ@G*d@253{UXNFQ}Dn49e%F zyeLem!_ADwOXduc4O^%QFICF$Sr*Ld>U1;PSxGrA65Q~&Q7EJSkSC9@1t4eZ9t zG%+Uo00cmS2>9c@64C!6{;mPEjStejAlSCN28#oL28Iv0-q!%A418_NS#W?=Rr-)P zSfIOGp5@4+fUE{#NTKC%Z9Dgf3yjoI4rUqAfLI09K-RtZcOl8Yn2#7ow)3|we}?-3 zdm1~jKt;nSuW$V<&?^gO3k$UMm3fWo3iLZA+L2^SfVfOZKSb*9ucKFs=zagd-6j4j zcc+@{=>SLLoQ<6J%VdGp(Wv2GEj*;e?EfqnzSmIISpabO#jDxAuEcAno1^N^DY#&(#+{kb*V+1mUrex<{XMsMNy=)`8 z0vTe^4gYitLd-CroFyF)GCH6<>ssYCA7H$lqrdDz%1R50*Pnhi@bG|S!4)1w54!DM z7U60?`ELKeav=D? zERq%oNoal7w(}Pe%18?a@`d4B@JRSG%;7rnDw=4Ubf^X8Ku&WLGnj?YQyX6gAPKzG zeK6zl2WCn*FLL?&Dwu5lvyFJfC%j0dX3$%-nlgNG13het2bW!O3 zZ#44_Ki!Aq#Wc-`X(QVO2r)}baJ5F86BWjqqaNEz$r?B zd4Mo5c#T|NIEv&}+eOh}|6GlZtRs&i&a5wpwJK0}@#0a%9?zt)OIwIp92HSk#*Hhm zdGH{=yiN#bR@>ZibH4q{PLk|D?sD^L ze1VALgWhiP%$zwrX@}P1$G_tzSRW@jRN0)T+%M}AD!J2G9pv&N%`?p<2^(j5saae` zfY+thQh#@df7Sdz(>%3xu{?#O*9q~!Mo|xX%%*7sWcwVO{n(z4Mb9&Fbb$voy`CEB zo^Ean%g~!Tx1C}Vu|w386utlLLTy#OORi1MM`e_R+_zv^(@YOd$&@g8L)~1|48^DO zyZG^?c~Jr#!OfS@u?+ihTb>WquAtRDnc&@YHX`oL&H4c zkQwD7rn`PAU5}KtNaE91$PabYIU1AaaU4uC+`r(j(*4)4*c6(9wqPPGfaJjf9rDvW zA$M9&q~?M5ug6WP=5g;nw$n7!ha8G-Jv|UYF216}ohb7|mC;|kxW#nn!D~72oZbuPFZm(4R zPW}Me-(xEz-e~P>wN#$MqI~x$p^k&DXG18=fb)3GoZQ0ZYX{?JgkQtws%B?@^q)*! zGc5@yY{<0sT=RH>Epf2Zg(PU~M!~iFuT1v{{S54@+;nv^lgAM*Wc;*^D@rVh?pl)l zM%HxXJ?qG2<9$*NQ&VK5YF)XUrf*)LVRoQG4kNj3O3`EhvOXLManAyyki2bP$S8=9 zu2xeD{vaOiKxpHo#4Tg6*-CTQw$sgn6|HIgaCN>(b9^E~D;N zH`Lbc$!e>yAD;l4G;qhwER)))mNNv#WUZebB`c{CD+ae1grPKu)LJB(a<5Cb>+zF3 zw2O$9byB~_qW@d%V439Acj>n8@E%A{d;qb?SmXuHv=p!PE&i7!#tJjoR(C)@!vzQ* z&{J^sV44JC#8I_|7}fSde75TiMTZ`=7$!)%N4i{hC3y$esRcn@_QRfxq1rJTxxKQ2 z>uh``@h*w(849Md4PD<#q{N|N8JW8K3s0~GP3Vslo<*q>ZRdwQU={e^Cf3)Aa^>FL zuYxUy&IP9dlPwS5FWqis6M8%L!C<50G$YC=wOA`L_?$ZDO|wNT#TPQm!Avw;5@HI8 z0+mv73Njf0-lbxgM~8v-Jb{w}kfPhGFCoNU03WZo?TOF?n6nGVS})KwDI&xYpaCU< zgK z#cm5U^vrK?L~wG%ZbEV_JPLC%Jqqhgt`|0sP3W$s!F4G7L~H!z51%|2xLXA%5_l%2 z#O88Zv8TAeh|}or8Xjd|rxtteBIidgwL`3t1ZNp3BPdx8q23k9p(>M1$ zza2UsrUD}90HBppt~0+vU$*UErJx*dJJH>dQ=b4l70kPr^(%}8lI{UUZYmel04xLH zMJES$Ag$0d$W0XRq=0q}C`Wu0psatINC;==T^t39D4>+=#h{n`;-EWEn)QM2j>WX? zyFA!O#w_fZv;uAD>1z}qRecJnv4%t-7tze*;WYfh;U$V6vrij%U`3Ij*kZFGvtRyc z*o|%ffO)(D(2kW!O3XnTpgvV0_@_eHD1ZNIK>9X*K~LN30f3Yr4o!Ak0i^ap(!GP# ztr6N$IGB|5vK7J{N!LPlwzw^sOupcac~T~$Kk2hw9X1!z=`PA%Q-h8w(^d&8p6hth zAEZ$Gdfohvt8F>_*P`C(;79)BE21^w2lq<9j0(^&VB`*?Lq$gs)2Hl`g)8t*#g5+R!D%3&!;}f}}SMK^_`sI>xp+hVX{gPQC zdQZPqfd#@hkbqN_E$Jf%Lz0n{6K%j0)1QA&F&zi+Q%@9N2-{y|BEoS{JPBo3_G0n82SA)y_Zv+=V51t4-=2nV2AMK-ZOKNG8|`^ewOMPQ%iQj_|Jb3;w8&0|n%Q0#9L)l3gevDbZu2t6qV_sAa> z`~8mVS-!|F{JK%P1b5sAYo1u#L{gVA9}3GA{AnU-24i(9`&k!wke4p#3;@se1@cWg z5RpY0omx9Vyi0n_76TxJJ|XkLdJBiwG)>a{U{Yi|j!lR~wub&0*yx3~O?2 zAI8y)3}^a|kA~Gh-@Ed?s9~%?hTX&nVlZw;}oK?wN{Q4u6+zVgs4dk3C;e3%R{iMiA8CLxHrHoQZH&^w_CG!+y z>nTrNK1vck+?9vB^BFj{Sq z`rVT44W;VR-MK2|sZZm_s?1F^>I5?5*jd(#1J?^ZB z$~K}yHr}@agzajsylsR%+r`~4L)Bfq7iH6tf8n0$4`ddUA`97cAwtRbiQDa4#&|v0 zba}I1Ddi{5L06H)6Wt&ZiL2G+uOCZDwsjX(nl8BNrCzx5cAyfQd|CruyRc07W%2Pt z@8Gs3^c|+A%u8zS05am2hmO~FCL}s_efO2Ml`BZbUp1l#q^|4}%`FDxU8_l4Rb@%t zVK$!@f6-J^#h}*%(N|aK+2s<{{D0_S>f#u&5YO+B$GorRr73Zc=Ps0(){B&|Pn1*c zBd{{<^OHVE0+JJ!M7zJPgvXwVdvToDP)P%Qe*V=jYIxRSvsHiSUuWZ{;u5g^O>r%o zG@sRmL!tP2!Qrk}(SF!7kxh;8l|v?28`itxcg-^GM3q{9Yw_m|<$j$kG#On>X3oP~ zanm%BFsO$a;AlCmii4!>MKo?Z;V#8>shtGdFqu$O{f4Z`f@*24Gj;h0ytD&hX zp^stNmql&1ixoH~=VcVzT~9*q!J30U^zIKke!+VfChq)s^3UL$FFIG*{!ody9scWr(Mt!yn*P?4#hg|H z(gdJ)oU}5VwI|0}o0saIH|6>)2h2>mtYx3_zd@afjAemfB}}Ce@J8DR1G6}c8dM$o z`f$v24O{jo#I0NH1?|*bj=yDrqZA-tMYa<*fah7fIJWmayD!m;@qCBl_Fd-qKqbA#Y2J6Y?+v1z5MEcy9B`aU znGTbCz#N5K0d$myd)?zmuWgjpogp%E2Fjt$`Dm>jo6-@JMo z>;zR-sdq`T#+vv%3xL9ZBGUE@I!hrhoAqK}TKbic5TOn?jQaBO-Yl!>ptUSk0$1*} zDKz*YtgCjEX0w=_G%uP6#qZ1f`AEV_PiHzQ<5jaBezGbHPe+^(b^lhX;HSS>Z+4dQ zc|HqU`!=B>V(jZqC)zy=(KXB;MQw~*UH$0;*KYDc#u`jgq?RV2!a-u&M|AlyxHy@9 zf02li6HMElNkofd3)p#c-Z(7`?6Mi!g3*C`4EAs0z1jx*mLVUL*4>yuG4@ko_5^DC ze+6V8?xdcT90}J4z~DMOxiA0mC6QkIpTi*QsuwKKQx>Q`h5ixw7H#a&1#1$J?Sky< zU8oE++(;NId%R#Z*F5}?QNsc`3q!nfB=FrSkj@6gSuAeLxXUgkSBV`HpZFPW=7rzz zlk8?H65o$SJ^%Lf@WnQBirmtqh!}1pkc5%GdD}aI3!A%+4hVx&-~ z%_sjKuve=TIQHb)ux6-MdueUCE(UV7FUUG3nAy_b->)|vCckS*PDkxzkRrbr6H5rg z0H}`UEVHktvuJ(L1%NEKBi@W#jcJa)^mhtH9;3H1tsz+*PN$##R$gFR3 zn-1N!Cpjo;yI1ozx#rN`x@HdRHS>FJcwgdW&{UV0Jnq3AV#yyA)cM}so(M~3^=Ch| zej;Tx$|l3$B#E1Mi;+=BZQ=C-1k!}dzJDD~817y8A62*`2R(HDZ33hdLh&4)?rGQS zX;l>m)R3r1%ru}#OSZ~RS>qtiSz8A|wmC1C1o`YW$(#sv<^1V5Bi@lJA0GORI#m;; z(VZ<9<_No~9RE1gvaLMqPoB9?=TG@wIC|>%`LFLIc#rb6b3{7gnWhsy=EY-G_kWJr zsUA8Op>g{?J?KQk04=3%WE@wCYVmuxJ}LT-lFuMy=hAyNf!)?o44sZ{*BTuR+D z6XsKjZQm`X&jfjVvN7>{>g!sY=@oiM%j#MjbFum4sU0 zQmRgx$+$@ZcPYg}h@aIGphhHU3__gZMJO+F!E>rYxw<~AU7MF9l~*z9T>LN_A-WgF z6|2JnYXyb0UQ(mVFYn9OmeX}F#y^~Rva0Jko-J`L&*gD}OmNwrV~g1`RJd7yBmp55 z3%8w6o<^SVA10sV<&5nkirskUUn^ScBj)R&?R&Y~y{ArJfHg`gt(;rp{#|F!w zuqPxPFV~9JJbO}PRk|u}HF4Qvh_C4>6Ub$5Nwe~cZCg&ol%KPBF@&n#V*Or=fi=Lx zt8k5o7edqU8=*xvFjA=RHCvB|FJ8-m%s4-({p&7nMSC{q5qa&A>|`JrKEH0VD_Pe% z=}QBzsK@B?k}{&+K1jz38cQQ*uXZ^R(bKlk5@02-=LM*um|#XL8%M8T#VK;2X@24O zVX8uQTN>}oHq*3;4BS@Lb4m{|b->$cNtk4+`B7rLUoG_`aQ=*$wu-@XM=9<AtVRv5g?~g7@3+lb(trKLB^W|1 zMx4mL`nt~_A^zI`PmS}DKdk;9rbG@8)04sUSCm=m6^eu;fuaQfST$xfDY~dctq>XB z>n0lBUnRa!T-efH0e|K>lS*cNoz znPY8d+gzKHPS3%GN%6X;(A|Pm7fehplp6-=T=1(KDQrfYBv^FK9BVpY#aFjFk(*1War?joS97D&OV z4DKvAS%`4m?KEu0fM2Bfd5E4#D`_kit1JAtBBLZjN{S0+fxxh)E^#fA%g#DNmV}N8 z#tKkU%ICzIb!q{XwPZmt`kjwk;WT&4&EJFo56q0+v^}SGmc9G=zX&!dfhj3Z z1AR??mCrVXSlN?xOD^?&77?^afBeppBf9@8yp1Dm<-40z%~RBu#VdQndZUxA(goi7 qZbngZ{^XkVi870f+%m(#KC`U+Xa7*A{;f;)?+>^9?^yz3P5&nwaK`Ka diff --git a/public/logos/hyprearn.png b/public/logos/hyprearn.png deleted file mode 100644 index 7a185931cda162668e48ba42158068598fcb6096..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2103 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 VBwxoT9gxgbp0{{dEBTtEN- diff --git a/public/logos/insilico.svg b/public/logos/insilico.svg deleted file mode 100644 index f1019d51..00000000 --- a/public/logos/insilico.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/public/logos/katoshi.svg b/public/logos/katoshi.svg deleted file mode 100644 index 51080e82..00000000 --- a/public/logos/katoshi.svg +++ /dev/null @@ -1,37 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/public/logos/lava.webp b/public/logos/lava.webp index 8b4c007678cfac616df3253a7236b5d26ec01c1b..4c90a195aec17d66d92d4c7002879e92fb60dd1d 100644 GIT binary patch literal 1746 zcmV;@1}*tgNk&G>1^@t8MM6+kP&il$0000G0002S001`t06|PpNSXrx00EFy+iuuO z7lI%NLLeAIA(+7ngPK9Zz-7>3U{>3(IKD|EM5CfVz5 zRhypfRkry;cZ%f%d)=vOr>6e^G4s`!nHETP?)PG}H#IZUmVZ)l6M((A9OB{+Y|o}< zW>VA7UR;_$a*~xR(Nk?uGEmGd0N&;vp=xgJY|Tc60Wp^+yzKPtI!P?}97~>3fYf8} zWkKCeU_1YNnWx3~AvDMKKsLAGmzsr@=g9)LU*u^sKSRlD0r9f)wTa(pPg_y>5)V7m zfjX9klDUH4mz^16TeDq(rS~n5ZA(Qa6t4|cFaKogw>@!syyXm8#P$nR^EIQJB}D2N z4Y2wABb{$Tx6FIms>;i;`N9~aZv=-|23}qTfNcJUFvv2AZQZt9?J$Pv8%ds0Pdxq+ zPYA=C&XI*|UroGPWgkyp%X8TgbJ7N?nUUjOMov)W-Irg;Gl~;OuIR=T4I!XZ8 zTxCZ*ilq?ia`yQj;c%<~$XlE*ZZ80>* z5|X(MffPFete3FQI@!}$oshhSkN4=jy(1=pY8Oq*uxBa4G6Cw?!(2gk_mm>p#i z=!|^`;t2(+%_v?s_cqU70hTeA%h+qm;eE!6XI~n6+7!|u&5r@JfqxiIyYfu)yNnjX%rXU=j*O~jCL?Je zjiC$;s%K^uKx&uJLYPZB1&=AmX9}bvh?Xf?$AHw9(?XcO=@e`d`y$OLog6}$P*5U3 zlBKi|&SaSaen$=h$`n#ZD25~f-2svikYyPygtODTX$;`^NK5!FGfHE+Uk+UPUgq)X`i|$^tbZ))SZTaEaz3mJ~e8lU>~79 zBz(Ymx%vSAaq1WSuc%|t1HxzEm-gTG)7kSiYx;SCLV{5Y2=Mw@V4{a$bFDyxkbaF> z@U|y8dl+(E*8bpSmS@KIMX{W^M#Zx7OAH)bAVgpq3PHQX5@AwZE&EUOcGnAK~pGNHxR?lSziR{doKRMh$_q_r#H0 zNN-z!_y5RRq(EkMecD&01Ent0xobC)AnXXdXD^(}H4!f|Yz(FBZVO+H>dm+~ey@eH1 zV8M1+l$SQ7HDDbjlCnM7Ta+f(@oTac<0G`W+V-x3wmeIvW=6f%EU>c*I)Bpe2!xs0 z_rLqm$ZU_UvlW{06ffoguR0o@2ziekNR%ZK7RlbN_&7(@tfih(s=15LJLSam`|vrc zQ{3#G9Cgn>ov?7Wi@iI2GRQbuLU7xAc< z^A!0%>C8#3SJFA51pCi_;qTmrQ<7zi@LH1O%l<)!?1 zyn6q)>tM($WX*$cCpTD%af569X}``Z$=bs5A9!?1zJYTZm+noUPDR4Xcr!9*LM*T% oTIuRg`5yEn4AO)f@)(BT@Cq8ptK`XZ{{o4?U^fv0U;qFB0Fwe=v;Y7A literal 5934 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 Qtz7Q6W|P9z_*--U0M5@#1^@s6 diff --git a/public/logos/legend-trade.png b/public/logos/legend-trade.png deleted file mode 100644 index 8aa181063619a505c65e77b6ee5c760d0f7078c4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2527 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 diff --git a/public/logos/liminal.jpg b/public/logos/liminal.jpg deleted file mode 100644 index 894c777812a8c9456368b51cc3e73fe65dd69569..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 32247 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 Va1G^sg>%mW;{~s73HAGh{|6&T*<1hs diff --git a/public/logos/liquid-perps.jpg b/public/logos/liquid-perps.jpg deleted file mode 100644 index 5ad297bd9e9ab414b532129845f0ce38c48b945d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 9408 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 diff --git a/public/logos/lit-trade.png b/public/logos/lit-trade.png deleted file mode 100644 index cf60cc4e869b441f831a3f15c102d8c8825f5d9f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 257150 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

%(-y*yEO3SH5YG_zUnC^3VjrFIuGJ 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Ɛ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%0DCztR%vf&Aos2Oj*2y|Id$c zXX(7}kNy0|f6u=0m;d6$asPVGuv>9>rjo6!|IDzvJayWtzZKTlH_g9H1=uD0zyIx^ zA9ra0?8d;8hixtQ+mjDh(&C=rhogP5um6fHtW^M+>3=$}y$)86!&XxT$odcF2b2b` z<9!WdrBm`$c+1N*-nG@n#mgRx9FM%;Yun>ubxbj;S82s^H}#CXB0}c3gN<ohXe{-3#Da@7orlH4pM% zb>)GW)JsVfyDGoN0VO~nF*+juv^W4|2NiEHnCxg7xW3yBXGkM^EY8fP9&X)3bJ8^_ zFJzi=IC%o)b`AdBR1@{rZHIr4)f=i68|ZVa(~e;#QvD+aR&}dRFbxc@MXeShZw1I7 zsv)DezSVZo+Esl|#uM*TtKz@gLgI{xLj4`otq zx5H3Evs43u3NKp!PIVd8tgx5?m*SmrGaz=3N0b(xuj+&OP*1{vaS+|oY0*Cgt+&X3 z(558_cFnI*8_hIDHY6!`|0pA!_mH#oI8p}pqR&O!_3xQwZAcK@R-&KRcDD=MD+$oo z0Xf_2J-N;>r@klCt?T;=g4%GWHs4tr?L3}8v!8tbZ(rKb$zLq6kHDg+D=X~mvQGaipJ*$iX}{y-wBKz- zQ?^ip|BdpmTp98}p}dh(9rBN;k$T+JJ6hkNo@CK7RKq1;XVf0)Xto%@IczzWI;f>Y zh8*Ii&O~&SSsb3!!&Iih>EH-axM({+1=`iug=)b1K-(ao{oQ~oL$RU#U2{zNr#7(y zcjK+q;BfKC?WO`ivC(a_ru^t*DZv);xGHYwFGUM8Q7K{Mo*WVv4FuI?t%uo#YN)jg z#1Mt6@loc$xSmM8ws(a51X*voiDEwrP{aY+>B0J75@8GgY#5l;Zq>y)rho<>W65m4 z2!I&hvt@x6&_WZVrj3{MI7C3C0o^oDW1WzqQUt~!B(YW%#v5!A@{%ga4`}m)G z&Hjpz7>uFVNU!W^CGuGaw^tk#KC{W{03brfabTQ@A|(@r@{}6Ta{V4ww2^6k+xcyKII|}ZQe*x@P7en=={QF3d6OD}fMR^>wx*h62z+=gO zSE|N9;{kpXJ=T3t!LEiRI#1`3N+A@eA?m>S6jzadQ@~TD+PYO$6*WJjBIYt6CEK%u z^s*v`ZUIgcS!t66e{BWVEP#HLIzklJNgDQspM21#3Q^-|f1Mgvr+h2`^CmoHL$t2c z>ZIF7V#cvedKI(>5X0h)Mq(3jkE?>J!qJeHg*etzmIYbUixTx^Lz#bGy$ByR~a5CPZQ`V3##{r-@f{p{QSKDqqaXZGQb{*HSc z%7bbC70Cp?^<7vk`DEjG zMVXSSb!!}DUVq5i3{)kf7^6_uvRqv04o(s7mqCyDj4-Zq8|xw5C`9dpmUtiX@1vo` zVgmkP`36C;N8|`jv8Zr*7s;i5ZUZl??I8ECYR|un-L9b32PM_alnzH z?W_`G4&|@9Ur2Am8KNd?&0*9pCS&0v#hI1)D2|R^km?d0)v+526ID!pZe!Gd;;mc{ z7G`QH(vEo!qUKhU@7{Uqm%jy#h5OyW?l$NtRJqAnB_&e}A0F|mz8k`8C?6fNn*YdX zz_j4By|^8TEOq;+$Hg+VRt5u|07FrNM}Yt(s*Z-I1YCS4I9!vC6mfq8GW%#(L@OM> zqPr9l@_Wk)|BY@P@A0x>g4xY@w~5EyGzY}F+7>FA>_ReV2{ee~B(x7oQ(+X2CI#_1 z|8;YIMz4er@>P>$7T1i9kU51BMq#7JCS2q)q&X--6|`~`_9VcqmO^FyQGL5O+1di- z;L`znsIi+i1sWvzYW;~HyI7aNM68totDILaer)?Z_*?J%nmq=`Fc$&t%l?q`x90sb z`43YD=ezr5I6S#O+YkTv|8#-n&)44j>tsL6ll}HheKs8O1CQTxZhyX)1R zc!&Ozgd3(3D&Hg3-d5)>B%POs<;fnL&Jqu#=rotXbU(hP{O5&MM4lcE=nX6Z zXIpW0QvVHxIw~rCGWEOwsW>f|7=d!d^~Kcr6e^f^zi&jxurOzV`UAGC@e z>$#GDFYrLWwExj{9Qp~O2z^E}VP7zoOAubbLlv98^WMM zk!2q}M$z&s3e&G^0)KK^+|f1k1r4X1Q%@Y34NeHAw@{z-U@+w?V58(SDYGh4Q(qRzA0s`qrK{$YaF?t-c!AbSDyw`G(MUggR zItj*kGD9sh2=jwdIo6@ZMzweI$?r<7FwtC1E2)g-mo5_GjpB+Ary!RW%P)h8TFLcn zOc}>zZPMPIv5L;kLVuyC=OEmW@M2i0#031IaL8mFksi;W~l&!**6sOi%26fxLxk}(+_^%p1u8RcK`4{%>#k<{;st9 zOUQjMVI%t3z7{bq#=v#~|LyX=hyMTcga2o|e*N?G=smsn<)L4O;qkme|7)**J8ikR zv9|lIqkv;gOIUgGhMf@4#Z2p&Fifqqho1bmZJFxsHQnO)ACRAoUrC$c%=|wHW#lsF zZG?}fF5$J7cZ}ltPWkY1q)OVL`^|2!H=b8TQK#*(LQ`Q&y0-SAZjMeWtoE2$3~aN* zOG?0ZfUb>a9L;F0iF-p+Wuj@srza3oi$slzqRvptY`8O-R^?Zk=V3$0v&b^cif*ub z>;CR+!>i$vxyd>TL8Vp#JZ*{7b=mk z(Y!kBG8RR^#zz1EoV^~gX4q3d1doPFTsEN@R-Xdg(chj_AmvkF5QWL|g*AswaP_na zoetnnHXnc~MbLW}%aFy@{Zf}7eyeS2okYXk0Ny~ylE!hB?b*C$XvU!lb1qRj9~_Gq zbdOX}&i0HdDQ8>#5~u_138@3uDChvPKnn_eIo{Ahv_!e&lKt^RJz5uOVi?7^zCj-v zW;{b-F$@?8NtZjc7K`b+*?}wJb&w4(+5~h*6mTzPCAg9P8Jga-L-ZKRbFIX)bzgTd zVN+>oQNiw!Pv^v%{|1J>rIVu`ZC7X=+LDL744hL%jRp1e4(4sW2W!q6-Na zVPZtoXSsbCnr7z8$L-a#WjE?VnFHkFcprXqGr>b@1>OyzK)pf8Xi=0~$W>0uhziEU zOQzN7TESpvM)&dml8VD=SlQcl4-5c1iP=gG)Dh7g1|Zxxw@yP10cRM(WyJXKkch}8 zu_)87J4hPZUpBF$EybE9?UI3DOTpk>Qgu&gRK{u}c@E@i`QpO;tL%N|Mk65r>DCrL zl;4I?Odoa+dT+J&e`fky?rgV%(4Kgg^ZzT$eh1(E)Ao8dMH76tTw$<|mHL+|%1h&w8APh>q&?@+z_r{D2D({p zY}96=Xeyf{dh12a0G=qlRxlAAv2=OH1@eacQziM$+8{w({!Hantrsb#Dz+*A&7QMp z=}{=|!F+(KQeTu$R1s7D!}>Gz{^-k$tQ7r>(Gn@ow5)*MEY+@kh{Hz?sKMxH$%WGO z!Ut;_xaut%gbKYVDo6D~6#{LY7|xn84w1?_htL$;=jg=LM@bNX$f{!7M042Ch5e5; zbqXq|kgFi!Ktq(Z3;~!C)!@iu!+W5!YJ!_GaCguSw6wO4^#`Da!*V?ivVtDF72_7L z54~{A^H-DFI*fs*-CU@EYG>fxyCA`4Oi zyOe{L((2001WGWbuq$xKOzev8p&uwb!k{oD;T(sKG)-}EZQbAQh4P%+0YpiYes^v4 zR^FD4P?}d8q9I!h)pbL*o6-n6t!5oLHRe(v??|N5L+31xV;F18Es3=cpx+NObgY9s*QL{v3*I?G3<{6UhUSOAe6?n0hN0 z_rYj&`cbXY+esTdI%Sz^pyhu!kR@vE_)Pt5T~9@drsh{(s`5qt%_dL`i3|ajtKzgw z@}*Hf`Ost0HK}HswS@v%#8lc;MMhA?_k;Xr52=g+^e6;+LlhU1$3?VT#aiQzOwCkX zh0ZX?+9pE>V&G0Yh}Wx|+(0>fqNjt0N^@RVJ=N{dSxS({))S%D5pSbIVpl1p4aWx+LQ%{k+ez-Q0SQNM3*mm4lPPIPIhYxq7T@Hdt zyY&n1yH)3*J?Wm3C#p~uRIu$in@HywQtv}e>qx|+k= z(%Sqak9+e-H=>oU_GMTR2O_u-!n;%`e?L%@GLhY}R$OjID5@s=d~8%;>?ufbB0KpU znJhOqx2Y%k_cp{zq1>Hvj(iu-^;{lgvOH^5c&}c5utfOzyT5L)_5v@Tx68ag{?3;By;3oXIERQ+n{+GJ_3csl3vk0$1gN|L^HE5O1Tc3yAUZ6&FrXC|BdyXmpCxBdU)@QSrXYLb7R1!pbF$N86m1 zb$d~Dy$s=lawo@(LYqM2Yqz0=D@ya4wXqJCJroD8&fQheTd<8bSTt!&=x#wHLg*SH z;YDiT1Ji<6!1~RoWd-6dI`Y6))PM{{AYgH@m=Cnm{@Ab=T2*M?1(~FcJ!6Ke7ae&Y zpNcrLV<5)j>~(e)!gJ7IDs$wVZYVngH811Rx31(cqdXDx&5?je%C=xm5?PB~Tr)x& z7#xWx<=-kgC}StEgK08P2yaHUsGiAq=n+C0Agy(p@asOO&^oBO&4FShKc7Sp@^~srM!V!F@?BqYTlU^wi`kaT3j5;CSm(cUpbZ?7IeWu z8W(Id?3ht*u)X8D))l~@Y5N7P6|?DB&0aKPRA#bw<4vTE50^q~!-GQ9STuyd)tF=7 zQ}Z=7cv}b^rWkd$aCK0mHjMyl8JrYpxf-{tqpSAdt;m} zm2K_57b_9(k%@LWJ&@PdRzVlAE|6Zydi(VczVlm`27bJf{a*UT5V-ukzIgx7p4{0F z{`LPM&gah@c?jo~d$95md^aS{wnF`@9<2Y*i3)5AwB_FZ`F%aNabur4?1%du#4<7v zlEl7!-s3=ewU`uACg-(ms;JIa*kPCxy~*Q}$7I6iCC#GnJcdneI~Ju(?7>YN#U{)&@JnsH_9>kP@QboeGs;99Ug8R>ZKV8Ds_n3 z6#R>zsT10HsK$W(g?|_kgYt7w*sbUJQ9?0WEwMc~k+BZt6vZ$4tr{!D=750#LzzO` z&GK+F4dr14xE%!6hnG&~Zb@a4C_gt4(sIf=q!o%{Lr0%&N4j;X?_R^0%r^{jGX>N25C~_t!$Af+$%po+kf_NF0toIyqqTkovy)~h39T<>N2RCq z>>oziHJpgRbEJBdgLH;U;rPeU%J57|rew*;qUHSBpZUEEC>I{D76b_y^N|+L;DBlm zt(LRpcty{(LD){|Wg(>9Tie$D^vhsa9x;sg+)00V$^OXYbdTF3_RlAnuYb35tpHei z@b9U47r=iNJ9zskv+(ya_K3j+_Z~PhZ;O#RGqN`8!>_{||rsd-mex zPc9Ju>f##gVgJ{;0nz0>YCGa}bg$*ozrCzngjb<|+2OC2?JX+Rsl%o_{6SwiRsdQa zfMk{T56#P8BaI*Pmj6PfX0NyrF)C~baj=w2lohH{k$Wt;Gl$$NgPRIK3%*o;U>Pg$ z1lMR(6XF=d(V!kq{x<|4SWl}Xv0{Amp=~Atp;Rb6P+{l>lTOv@YUaGF!9Hx3T@N4a zY+7*EQz&7Qv0i$K^>{7Er2Q?_4b$bsayj@$S{5(49U`K39UYn)?RqemoLU^OQ{%2P zK&-8cfwg#V;H`c{2fEOF@I{RB`LJNAM_1n5Sl-h?W3Mt!+CeBT*O?iE&=i-&WD?P@ z$}Frn=F+$UkMl+54`R`%p>^>plyyaCY1#lY@{-mDi`vBS{_h+6muy*%`>QJ_i%27@96;@#uIS*9{SqUQU)@N@QZcl)TyZ%z?aQ!{sQ8Db-+ zv|@*{5R62hf5nWZWssnix(E<)F>?TZk{%;FZPlA#nooKfXK9N)W2wZ{9h;4I?VtLnXtGh8# zlurs}#5H#&qs%5JGg!xQffl&^9`Pjn&rJK@aUGW@&ZU88G2pDN;j){*et$gZkk?sY zSG-h!bM3vK>G)@bKAr`Ee<$z1`~6M)|AzClz<)d2{!Y&S_Rs&P|M~y?@AZHDum2PN z@%g{-|M?F;__zQ2f5HFtzx~h8{rq^2|DFE-tA2kl=-dSO+~W5X1?LHW=f{5LmcXaz zz?3zAo&A6J_n-T@*PoXFde-{4?DQmcKN?6Y{K5K>&q8pt9heDHtywJLpM*H!yTbJp zrqB#@WhSBLwu?i1T@8RVNq5 zQ49YvgBqlQJ4w%$N1m$njC#QqV&)lWo@^h3Id!<&RrD(*tfV~3e6FbpOleak7^#;Y zjwoM=PvRxlsef$>Y4Xrw>K>F2HN#cNa02-SCN>Txe0gc&`t@uAHV%^$=|_D(?fewA zch~1ECVeHg2`?IDssYLdX#K_Sp8xb8|408=@nj07w0TdvgH{Ot#(}uRfPAy|6=_yv0r~Y42I1l_mT;MtiBxI3g>9;9yP3Zldkst zALVaNX)XD6=9JO{^UDUaq1uc z-~Rc>|F8b~&;KW9C{Bs-JV)RGc5(LMNym@SXVm}C=O=&9^Zw6GcwHa;?g7r-1J9ZN zjD+52e~U;th53B{ohGN1fw>}Q-TEav+n6Q5(3)#^vg_d4rOeF7UQ z`#4w=d=o$WIPE&Ush$TS?fsX%dXwzU*f2R(1!t>d2O)8j+6|-Cc4O052P5>CBh-cS7z~p|G_W!2z zQ)~Q8vj02L|2uNd>&IzK$X{ujSm z(Y4gO`pDvFC6_o9_*Vst`#NoWITopT!!^Ob?nAqR0D326qc}*6umzGZQQtTc;~O6U zA9TfuaL%wg8G)y`uai0PEme|zo;DYkMBrUD&ujeiDvTzdtQwIt)K?@g`_N?8rDG=N z0BWN`Z62fa5OgH3nF~$-RZOA$;Z=Z(80CjZ+)Ucf+(yYyPq8+Hpmt`v8gI#) zD`smMO_u1~cdV&Nm7yxsyyj4To7td|L5-)5X@{BN@aB$8)uT5nvTs~qiO?6@oQ(6n;BoZ-gZ| zYU{Xz0dCjIM~R+7>a6R;4w1w8%(-PjKoN#rt6WNu9he9%qvO zx$^$I;{REF|JU;%9wyk|<$33R`)9#kbHx5T75~?HSP_z;~P-KWsz*69vyz4JLoZ zqO8uVs-LkZWWZx;v9j?$zLXozBk<}Dw_c=e4-P!)a9OQ$*pG|-s(3$BI1J@|j@kxd z6@Bx2M^Lq5A=-Go$c=qvaTY`q-qFVvV&@c}es?qe;CdTomAV+nd*dyYJYCnfK6H@b z*gU@SkV^d94iIZ4IBgd$O;pdW4mx1J<3<7mSDLp(uQj0*N@9Iv^50xC96It91*n%! zBP$g+n_7Y^;#s^vv^#?fCs45bacrq5Y$b>P5S5`35+^wLT?7>Q9i>_{a?3#Vg5cuO zm2b4YHVR^@FKzknzIL$S1!@sF;uc8wf>A})p@d4OX8gFnPX9{wOB>1LnnKmt(o2bf zLE^_;FmX=7GTolvFc`CYts9^LlnmLbay46{%Q#SVJ4eG^)|OE&=^#Z~tJQn23e*96 z1gr^BteGJuNio-S&i1d7zP&B)ecCfXQRqqZ6CraU@l*OdO;26P}-sxa!O!B^W!4p_(?qfq;-E2`OBQ z@0dbO7|`J=zNgKx*{+T?CC16nesi;+(84D8SmsGW%ydi&)w1CB;}8iqUDjLMN|#`J z&niq0MPz4%(peEgBcb`2{vtL>v}Ebu#jZb3-zvJs2$lU%$BGf=-^mjJd68F-xP!j+W6My2cj*vTB6TA8URCXjE_P{L!xltI!- zq-NGg7++tV`xJyLqFbG5q`sO~J5Fxd#C0wY7q8VTHTgX&lLEeR+FK#d5>$c%iPTH+ zyMNaKI```PB9O{ato~Nzy~3e^rra&Y@>mL%#hLrq@a=??6#J}0HuY} z=Vg)T(sKYI$OKP#RIa%C3<;;Lnz&Pi=HlDTdi1Es6E%!8pU+^T&(-}pMZxDB^YeS3 z--D%}=cs4hz%vN{nM(%0MZiCv+YNty{zD~de@lzcnWhKtyFbtEKMOfO`l;hj-qA4k zEim=-Qb3O{p6d)XzuNRD{b`M1!i}wg#4PE>u!}te7X|ot@t>)GZ*o%dj`2>tx#>zw z*RJ6;M3gH|4@R&;!oKcrF#Vu)6!g+Y!dan8 zsW#|e1b{zkoLpT_3IoH9f3ye-Rb{xod3Wq{ELNLShFdo;Tc~xpVYTnd>!oSy>ydkO z>(`9Nwm{F>m!8O?RKnTGpXgEGUd8$IgPvSdb!}p7I6zD|28BYb!So{i`xo) zRC|7}L^W|oaL<3^?_|0outxWapD|c)(Ghsw=2!e6p3Z?yexBAiBEE`d%;LFHbR31s^8BS5;WN(zc!pFzPm+C-@cBXBXHj0wUHJVu z_w)Z=@Ov&3^mCuUzs&=Fe*1i;`}_RXz_~Q=%sBkM&y)T>=lk=pAKnpg?)4vOnyGyr zF2Z~MkHXKxe0~dzb7h~8N1kcT!Qr_rk`s)|H=OCZ?VL?& z>duq9<6bKU5qL466wfi1tb1&gV!ey^#vkh@IP09xj`rV9o}c%uY`LPr{zLokmyWzZ z(|d&bhZhSnwuC_B6o**X2c%0>&6_b9Mv*UtIvPcpR3wfB|kQf zDpDFMcE1p*E-QFCoq!t~c)AYhtsX>jT0QEgN_4Lvv5CW675X-|MJsi)pzomQv{O8^ z!vS#lK@2m!KU3;BlSx53IMeW-)*wUs&puw0oYniRS5NEDV!_|s`@6XB_e|amph3&C z@bCBakNI)DXYT%K<@buf=dW|C;?v}(n}yMD3IEqKz28Gxe1ac;gy)?0*K_axxodzz zb3tH@&RO0aJq=frpm++)9m0tnP;;4Q?3*){oyj-(V+Gd=kT>t>kp4Pdk4#`y_ql`r zm`SU5Hoh8TnC{M#*7Fon%s1JxZQ=`~xjFb{jfpxaadXTMX5DEg`u#?(b?HQdPzS|L zxOgv$^dO~E3DB6xS%6Ik;mzY-CXK>+z5rX2#McNvt&)9Fv4@k0z?<9E{N)ICUeU*$ z3aR-{W_NUL+8#Z{$*K=pp;*w22jDf2&)=UE{~genz3pxz=$R)v365RT4cAo7 zyd}PU*MWP=zzY)&%vzf&Ac&RZ)Jg`rbYO6Ih#w_?g^na*b@IE9SuO;2aZ46p@}JEV zTGu62nYUmXZJI?CU}eh{)*vj5)=IIArOMqx*)@iXZ)VDt#S}!ND-V5A-nsYoX;aU{ z4|{W^0KY#9^w)p>9r5>b zi$I;H2>$c0f14-zpOyP(QQ&!2z(3F8Kt1Mn9$Ea1`_DsuK4^kO?&O*=5KF$MqEClT}B3?OP&7w zhypC_DwLRIDw&5m322pi>VWfDtX&D!sw>EQKzsdCErl4rgMUH;eYyrRNslD{QyGcgA%Eq;V%XMbD!X_eeF zrJ_dB$rdT2g;CfHKjmqx%TTa+xV723_5Qr75vM=fQpmkd)6Snl8LgDiQHZiEy zL7S`X)TJas!HArMS4&o0rGN`ixFIOe?s!WyVv#=+>Pj#Pc_m58ZQ?2P-TE#e&aZII ztWL?^4(jtHyV9@&?jD^)%>=1RLEdP&B)UH!$9ep%PGhkePpx{#maS4jrb-hx!G3uy zUc&buB8+}|$6j9e+jUke&YH5kDQ;6$-H}#IwPV7?sD-YUtUk;Z#kT4%?S;=7|IDHbEO5xN#XXn z73-rB3b8pX-bGeNM}W4eR}mn%(6%fCM@e8nvAxCS##p%+SHZInEk$DIxjp z;(lu~1#)pZjjiDn&!v<+GH+^+1t?BTbl!7-O3&u?`V&;-c47rcv}C|rX7X%b=`{Me z7V8uY{?uN%By>};p;gFq{smU%H}g2N8TN=iDs>JfMrW+5ru|Y}iHwM+bAIHW&~wz7 zYHzJo@Mtpv`GS8m!xVD9|4d+y<9XI7)f%ZsYa(L{u-Hw4bUO=X3v^cV+8$O@JP1I! zd}x+4{g&gz7VWTPjb+pKC+0hFTG(WD0-`kHap7o(jvyDpT^OENEH04y zz&d=CBqw3wjKu#si}sqw_A@E|du!nHB)&Q~1OBG_=K;YzKh=AF)_3;KV|!;cA%C*> z{OImK=ZN_k;OEi9=W##J&kue6?uRo0vjSk|CmQn@pWUb&VhEz=T2K?^g`0J~LQ&mNCE@K$-6tdv`-bdZ+!u^7U_`c%O zf;3O#kiL#Xg&4rG|1LV(#oKfi>2KXzVxih`17Ct;GTx_*!>3Osg0{Ak(0N+`?;;QU zS4x27b>$TWQ-^$Wcu#wb)yxYvX|W;xq&nhYC$qAj8ctq6sr!T}s~q^0xvr+%u$^%S z5A9t<=jr2K6)RMnUgx*JJ4jfj!?((2>?0Xta~>CE3%7Kyt6F>PNcbU&4B6p)f4)RU1Y+nW=H;nn9sjn-e5rn}j`K+&cm++*(}4c(uX&|rmy`wm}R-w8md>OYod z#bLqb(`QFG>xyI2kGW%hx|YeEM=8cK3mvw4{+<-t&sxHNe)yw2JrB@559c}Z{7%vT z^|<3V2|t$so@xEhliYt7_x&yae*Bsci!4Z@okgJzv1l4FmK73BIp%=&$geRQUHgk76v0dYX?DO-VOU?So95` z_kpht@ebt@A=#o>?i1hf(&;`M*4a-0W*k@uHSAn%nj>2ndL|;9S;D zR=3a7^tgTUdfCuLzigYisto6s5}oj_n2JMx7Xktr)hPK`=1G2aZt@!~h|}lGKkzdh zJSn+VSta^DvXo?X@^ua8oN0x`#F8ox4y$pvt{~8Zh@^22swrU3xG1N$s5oAX1G3( zl@dMhaC(S+A%h73K+c3#RsoU)*vfj?|J|Rf`?U$;WASop8nk&*09^$K*>Smy2H2Du zyDT$-iU?aFe>=Zo=0kecvc=-8-`5W;;z{gocevF@cwm=-=>!X5if!;R?}rZKA%!m} zN&g?`-dvn%?a+o8Rt7|7wO6#W@}yD18d=cHp&dcL6)$O zlnNdha7O05cLu6-qMy1wAJDvisg-orG(h%QDM-j4iR+0}5}gzw@wNa0!~l8ps4q?_ z6aVlxjZ!PXI}7U;0UaA98&&eJDwvi-H}pZMo%rq; zVcqzDz05PDBXi$GVzCG~FXbBwF_K>me_sp+4U#&z4KatF2D5d1#8NPA%!)|GD9OQ&HOt+q*PouWV@LzGS$YgV>j z@XSF>A&-4U4Nm$L*%+AqPG3`4Fy=Wod}w&$cHVUpPqT@}7HyRAzkX%_!l)&^Y=du~ zWyq^KjL*x&N7WWruGb{ZT2*?zXB3!R1qR&l&*Koq1Z=svsc2a$2(&Lz?6?X znydTd2vEwUzLCvo@6uzuHe{iv*xAO0N^47psFw%zHBpr)t9_!UX;EAC32t%lH^1L% z$S~UnGGfHuJ?hFR40D}Io3fy8lRy;=D`&B?zTO`WP#8N)FVh+OQjwOaV|z-% zO4^b96bWOjdIZJu13|XzY3&in0-jp{`?&@1Hxd8+eV)h{?gXCS3Rn#BOW8li9wL{) z0{!~elh6(atx5X7-+r$QeCB#S7XH0XMh+QQc+^81ivWv1A_U;S0RJllTRZCIMZlNPai5|5@9!kDxvF6_Ymmi)hOQvev0 zMVsa*u=l;%Z&|-9uch zcMyyo56^u<-?KPzE<3awa>npI1p})RuqXrPcUU;3Eay_Mh=`y~Rt=9^uX*wz|Z_SONWK?F8m`b^xdJHQmK>$ds}|Kx@4O%wt7>CUk;`ziaI zGUkk3+;2P8S1lK2@A9wxe}XnfORD)Rwx`k+ob!6#izHHEH1>U!utPBYQ8;FMX`fU) zkNFXyV4LKrea{Qym`;L(4Akv$0hN^cB5peEeAWy6uFl;moI`7DX6j)WvKbz)G<7ss zx9RY2y{CZ6y0-NOQ*Q#ijXH74%b16`j9iBf6=sbB8gF%v-6?ed? zZ0TCpd$d2YD&}bf4`m=HoIq>2-Z^hJmSbat7{#`@u>PloR;*MU8=;j`F~Pm3$zwzZ z`E5Tbu1gj)r>YyNjf#M+zRl%02_Z`NDqk?&pLZsJS!7)vQ0IhK`96X6Q}_O!Tt6%F z4=B##dT^e&_goHmNcXpe-!=ZfleeFF8sT5_u$~j#w)5w&kAD95_nhP2^Aka>Wq}_p zEIRk{e*$Emo|OoE0D`hN6NmoF%s;g()gl$i$Nc(>tYeUZ_8@CPvlNh1^XP95nG-4T z%~wodtiwzc zJj@WC{?;7@Ehk2+%n2MYZDPJYe;)yj@U&0aSn9G&lVkNhTtMnakkU9sW@@bKVMSE% z62KT9tNKz!*d6;*()4MsCrMpFYeoC}^gb@oT<1)D?u_@Rlh^0|wvZ(oY4`x@!+3|L zi_nc2^%spb>N+551xJ}eqW7Rn4Qn#tcM^~t8)$cLbF>RUI=pciODoyWRM>3%VyBmX zDtb&bx}!f`&ro}Ke|}AuE#l$HW9tdI*Bq+IeXNkUM6W4%UTM6#yk6V*-t0ybM?mzi z4Vn`yEZbBLoI2sN40@FPsk;vQ5iWH~pBs4&yg$!1{F7)s+?x16E!Cd%^Qns1K2-lC z@SnL$7E2UWpCUiVB6^H$o)qHbl!>gvgqc^*miV0z0gLrJ&=-|{r}DHqk!QB zT$$Gp2*hg+OH%YpNgmi=9~;Si$X&|6!5ji-h^~NN_8NI=$DI4mc==v{Y@p&21ia8) zUv!ilsun2~X6v%+B7kG^)vI4C?{23DarwXm?jIt2_3;kA&X1KrCJ-{zKuTZDbreeH z*lkp}Uf6l^rE^;cstkNBV)(!eay~Q@mn~EFav-FI2%L1(+FxHz83O+oNoKb6-o84G zE`?gb_P9A@I0pEf)%Zv@USSUJyP`bot*0O>anzuS6W zTJWGt^!pS5G1^Rb+;U3!s$81+3hZ&zy{M(XpuqUt#X{aW<}seg07}fL7vbSf?yo@L zIiK!}Hn$Fz9e~%W9m{9snTS)QE6{B7eqB%M01MJqN}>dhh6S%)bGvJm8(j)uuef(~ zk4(#rSeG%n!x9@6YF`x%@F!*q#WSKU%VY}d0ofm`<>iyuF7dyT4${+|Spum~zu3uU zKc|xLqT^ua)UTuYx&ZxdJpx-D4LZ)+z9|y401upb{GIeK_^QVQFEa4YPV?L&b|?j`WJd63yO!s?e8EvVc7Mh zc&RU4?Ig#Oqc2>thmoR4cg&d@w`ega7?{v*uR~FjCAUwXImpL{@_`Dt+T^9Ac#X!!~z*i*Ek_rrV!u zpGfD?)&%5~xB(oXfj*kVmO=LP3$qe}-2#wpO6}e9rb+3+MsiwCmf`lu&a#pXsM1Ve z<&(RWHh+)#sNp2de8yK>PLqTAyEVzTae3w6ePs^87L!Ij&DX!+itqUUw4Bwi;(rP)k1Tyqo8T)2$lVJY>abt%7mrxnn|X31J?ekqE`MpK|7iu^ zSzl1zqIyB}yncW^l~l0fzr4nlAvncrtVB#QD$f?2V48hl2zbBRQt<#47Ty*?H*oco zSjpXCyRqD7M|!G+jL{C+j=7^^4xwXYj-?cd1nY^45rIvGvgBPhO{Q42$6MS1&Ctf@ z6`>91m)S5jZ!b10<-6#N05I9Rev+YAVU#IuhCq=;5}>uMLL$;3pYyXI6YT1%1$|Z8 zLlQ;3WEgW|I4|H>Dx+h4!Rc-2VzjCB-C4M3E}|Bo9MPk&rArqsD1U?#A-!Ei{5F0b zkEs#5zI{U4C)Nq$em&0F@uDZl;n{Fu&1TzBpuW*;BBtk1RM9>VWo z=kw!6!hC_h9QgF}6Ri0>KG;wh(l{H&IXx}21G=qS#ptB$QZkZD%k@u20YAJ*tr-f7 zp4;&J){I1Q^6qHce6bO-{%?7L}c(J>7PXiCL}L>kC@EM>bSMLu*B-n zB!eaF(aUZ{FRU73^gD%7TW<5^5$T*e^-Rb2 z-@QLk0aBbPn=0u#3^nwiQ7_hEVrP%68oT&;_N6W%17NF{b)tigFI9Oe{Mq-F04B7? zpm!xryYcKii%ueDRMjTIBzXJ9Glv+cP2-{vSwf#v=JhFfP!)0$*5kJzGdGE${_aZE zDnf0Dv`=R5%lvzG;q>b4GuNcj38cZ zGy2%r$~y5zqfym}_9_Qh`hk7E6AFvn;Xkmz0OCO+6*0>mYTI;eee~vHPv20i;kI+3-DdXmg zng~4h+8jxw+ml#g{B92#YVohBi*+%Kf06Q+SARa)%JI2}FSHeLj80-5p;e~Br?tVp z9Znz!IMEPdT|Y(`d@Cc}i}QYU{PrZUedVZGP&+p5Ct$tw2-LY4+)e$7_|b0aZYK^1U5A}^Od zN#R7q`A$CKJ+CSMms}M^kZr{=ggwvd1<}I%jiiY_zqU2iKmzRq_1v!KJ`_Snj!&p zlA7Zz2WwRZdW9&EO@g>ZVx!#e(=!#9iq%ws#vYvaJcPeEmGl847D{v<_4oAgcmID4 z^K+&}Y2f*9e!K_zje*21dhX|McVN4YlD}ODx#wW1Ctx1_GP$w4;0tK&fcEQI8PnMK$3{GE zQnS{j+8n7F-r>ZLr7?9Erua$wN5u~C@}BgI3iCBTaIv*)Fdv9jB&t0s7_$W>{Qrok{jxc(!j1| zove4zcg~-GKnPT9KuwAjR2*b)ifqwcYu)$iUeA@UyGEnEXs1F}A^GM(4LO`<|)51Q^7*vd)M+o&j^gPq|2%ceBk9`Qw zDG;4dE7vAeT~TbAb&lNH#HbFO_7PZg;ZDETCPuge9zr{2%-DprTGpvw@bAw)j^S#5 z0W&pgpwYO+Vs!G&)5p(GC4sG1sgLFfaaolye@^rOAsV=`-jb%1MI-lt{F1_)L*_@G zJbv1uP6M1dIaz831kunC-(!Wwj$zGDS$6D@2>xm&+n&|gPs^u_oCAU0qdi{L*tL@?ELDbxmSdll=U{4_a zH~-atztON7BQyk*Yb9^4YCXqh5e2iySY5?eBxVL@)mx1Hk~Dv=CRTrxtAu4#Ci?*I zmxh{l0xL>zNcR2sxbM?j_c2>INuU}5V+mhd#I#9T{7pnkApgQvSAXI-QlRr(K26JyiDKM;-7Vzrp_^q+YQ3@Sqs4KJNlvKZ+on-z4olj z%7}y-} zD)*oIp7ZOyPmtOy*SeInj%R=0ioqE9*WF$LtEO#3YakMR)jpoSPLOtAw?^u`r>TD|fz%dG?n>G?lCETQIia!SAuI69EA>G=X!9By+Vw~-cPYspFtTE`z@CMB26fX8@-KLYC5#r?Dj`yMFBX;zpqOP{>0GMg| z4@xo+T@5*_o!wJuW2&{E0p2_LyJ8Mq7z11={W%M;$mAl_5#|;38y!;n0IuHPT`6Y% z7RupMq4-G50;8D&U@HQeLCC=rG(tJYG6|LR(2^W6sO?|n^jy21t6LL!!Lx>-`LD8l zl79i~*$5&K#1ZR!_S16b+RQn7z%dLBLem{`r3JZ-eZH&(BhU^08;=|r4$_} zi+LI95_N#tnfSv=1>l9%TGL!6mB5xzPTfctXU3`Qzlw|id>NTn-FO`%tZj)}+KLG) zi;A%d_t*_TwTLCe@YMDMVlqm+-w+Am)M`#E_iftFBb&h(MPzB=S~+@|CjwP!yqFvr z{=2*9@v{1YJf9)Nt_fcfj#=GB3)!=?4eg>F^wcuH&`uV7t4ARGaU(a1X} zumqX5NO$Sv5^>Hl>CWMY490J+J(O~|aX~^(=UcPoAO4UCT<`rU)GJUK4iI4N2 zgq@Z9!f>0@XZ3#ba=r<%Si^h<1 zhXz=iFp+qYWkVA}loJg>!<2~lM;rh4egt0nBptb;X!O`cbxF94A9c{tSKB&jY`Qgn zK0BhGm-De>M}vxF;F>Cw*SQd??4CxdC=x==lssQPWz6J4P2y3J)FEG zPkt^l{!5+V`17$dvCYl|UTiaw102RZ9kAMDysp6L^c|3_7)qkZ5&+^43_9dAhu%bL z=dC8Y6wgyDy%HlYxwU(%;vWoDEge?wj+j^JulK0NDvpjIZ)8?_93EDHiNGGCQ&+8r zRZFl?E-7aOxBX4mC{JOv)`W@O*P#w?u1lp6(R!51h>O-c4=z$$&B9vi5;fDT0O0TpLbexP*WRp#O1UAFFr*8F{rmtOp%|Wk z6+P7nur`ayUkI@**JdlSD12ShvH)7_QRTGf%9>5&IUUs?!jLl>Uz=&doorKdm^@u0 zc)D2a6{mbz%X9EQI{pL#tVPTJKc~&lZ!ang7^l%84KX zh|r#M4_S8y5xb{piMFe#PL4hy#PE=7k<-wPvWThRH20TXjT)|a%kY{qRrX`E-Ps#n z_%B&7OQBve(h2bA`a&0V@yMaPvGk9q>PU|GhV|WNkN-%wYhoN;G#HNN zG}(FxL%|%$Jk<#Q1V^M?bfNgXiZcLp=WiOiB2i;PCO1rvS`3(>UMqhtKeV_*`r3Hy zDm|jrrve@)e!UeaG?oHt-pZ;!zSw>z*&=IE^Ph>(V|ZJnN%L|8N#+i?>8Gk{8<$%zyFTLn2SQWugc0<5)_#-F|dCfS-%f4_SJR_*!|!pel@sXcbpzFWuQ zRt55{I+T6tOY#?}&yU#DBFQ?@qiW=o{l3Is#S(6XSrnA z{>EJhXLZD1B*|uiUpn;*l?b8&v3*wuEvjRW-Z3)>k$c8D;CtC{6=s|~R=A^xy|Ym1 zE8AJ&lO$?inCm`I0>sw^ay&)>9=0_3VN#6)y)MAkxGaI^h+)uX4KO=8Wa_%ry2ONN z5#M%(=eLZFruQ?2t&r|GhesN(oQ;htN|npGetnGZriBef?(gfv*x+^ZTZ`*fC7ulZrv0YRpo=@WHn=a-+HGuuZGE2O2 z-btn}Hwz*>-Tm9%{bJ-fU;w!MG0aROH}zm|%!cP+#aF+5Dw$SdRI>g3{xRq{gq9WhKgc{tuS zY-EZ_=5Rv{KX%C?fdXkd{@urMHxn{LN=1=J{|uBEyR`3v)X^IH%q(0d=646V@DFHQNj50 zm=x+m4!pQ4U=;bW$dQI$OZEWtK_BkI0l^;?fZ?E(eUWn-o*j|_Fb+ku8SSynF)(eK zheBm1NX4Wd(}hSi*Cq5!I-Ehv&*(2_q)b5smHR7EL@(DXv?XXouqCC4P7E9(S;=j> ztpMhiz}EEqG_jFZUpDw-sp|#)u_}Na`oCX4ly`!}yH7u=1bkZ<$%Q;lBr`gvIviok zM2?r#9TAY}ut^3Tl((pWG0pu^I6N|y7ioq4TVl~LjC8VKK{>D7YDH4=)KTvX#ndI7 z(-EXw`-A`+9j0vPc0k8k)F76Azsv3s717lR4r=5u6{)SDCm@?O5jn8G@X`f(V@j)* z6d0xS5q`kJVvuW31)}~eLUcSunbn`hDirUuxB5&b3TB8-fwT2lOW z@*2@nk>-MCL$%@cFqAFgx}C6l87ut%B|q>XXh>=0V6kV3GgJY&aDXd_^t#+#19f$s z0tx>}UZY9yC;UGr1paTm=v37F7Qor|(JJViiJ4Tl?7uQ*QMp~Qnqmz_n`;#t$|Nw7 zGvW0`2-AZVQPuOv695pUOhbyRPUKD&ULEL?23|*(FL&th`NTyzO6)u#rRQj(muz6s z*<8sTPv=S_@UTFx^_c3EDLE*}_AK={stx$5Oyf#Q*p$um(sx2stH&hDTLXycN0E^_ zMS)w)dk192EVY)lm>`Y}740nNyD!NRyn$v|b~Gom4nhTJ#3CJNQhNZ?u){^7y!GTThcy)x0t}O4v$rQD@QwzTQk3EIs_@5_N(yeqGseG z;F9U@S1lbnWDxs}PBa5}f+Cc`7hZf3;;6HgDxhI8Wut-i=5AlEH^20T}M`!NTj{hkkS7HO6W& z@$^#ezi|~h&M>wSFt>4Xl;7qotjm6!TIECHicBc{w=ap)H?bm&Bkhq>o0aU>aX=DV zuOp8%$SFpc)!fz;e#j)kR2vDw9q84JN3L4$1R`(E>v$j@iGmPgZenxUgW+yN567k) zJIa_Onh$bmH=SUjb%2PAwNOdXkF-IMc#~+#X}!db3PTVxutE^z=1F4^4Ry zI-WyQ(3h^sH_Jz1Hdt{5iJA1AZky3SpP6G+BAw`OrNbz7W!cDSXb(Ro0QwH6RCtw4 zWmkvJ z9AfUn3iFUmh})o;&glfWU>j)ZgogvCpc9foE`bU503V+5yls}nTxm#Cv_FjhzKwLuM=H{Y4BuZl zYZP>1IJ6sI{*L10;QzT~r-EVQKf-tluf_B2pxHDKRl7EhsbS?id=&*1k)l3?z2Cp< zHbCw|L~GTqS8+w<7~xHyvwanT+CJdl)v}COt7>L`(S}yU*DSue`wtF3+j^$AG&4V>Yv(xet7r*3ne1zs+QHD<_?tmqE+-OHcga ztK;nSqeVm~%woW;Xc$g5Jes5Zrpp%Vj#*Q)l?>+S!U_hG>k6#k9;hmiCUvHmyF2oT zc_7A)cu=KweHYIeu=FlnSU_At!uQf++byO# zc3iT&VN#hq*m>+}*GId%#RGjL-m(^#}C+=#G)~r5EeUXj?1qMRn_(=jn^V%Qa$v9LEt7!9eLaQ7b|Cut-HLK* zR52$F#>X@$?FN!hR93Du%kw|hMY>fvUvzslNx&(K5_5k=;xuq(KOffK3jx?KRYcrFHwA2v8;Fai06DFqvSJ@SH9<#%U+|M)P#qHQW=_CRZ;8nJhchA z$c=8O?J5Jy#gjqEGfdVkj@oKW07-w^(D<;;%`MU67Y`k|+P?0asbq&U_Bk5l3oS};~6hRBejM->>EFrd$ZjLVN7W5==W0w^)Q(tobqOA1?We?zT&?{f;B%1HoA^!NbtYCmqw+AXY`YwjsMUl zkBfYl&a7ARpmx2t{=rrk{>>(EOyB4B==cS9BWd669KR=^tffZpBTwnAEGvsG1@x0R zh<^(vd}FLL_*b5CTTaFmhj!pBn)!UVcAzuMe#JkPLaT^sr_gD8D8Z&O2QSXzIaDh# z0CPFVNQ*N%Fp&-X{{La@>lRq>+J<{gPngbhUGeJij93`xYs{ngYT~~c6JJ6Y4WGO) zFGPHllzQnEN(8$lVs@DqkEL?ee$+D_FWkbx0ldSkJDVROW?$@$ zvUF}vsa7Z^`KIP9jMR>)eegf9QAF2$cSRPK8Ls9J(nYW1Yn7@yH#zi-oMn^W2D^1D zo)Bcq?cx`~0BJW9n+gfq1&U>4!Ve~hUFN)6{r0v=*v52s(HCxOu7EL(wc}4&?BIVW zGiN_WCC5MiW{?1=YZOHRBGDv76_r)nPmfI|uwot&%`MO6iU zH{hRb9a6T-AgpM}{AguzLxnzt3ozWd!f6oZX$f|pE~o&}nWp^lPf|{z#Oo!BkVy-C zv)mnel+3~>0xk#kuvfiU1WVqV5Nlh~)Tvur3ppS-j;(Cx0B-oA^wgP=oj9q>49)Hs z9YgS%!O;MR#?kjyoX9rpgL;fgG#aq^ud>)jzj9h#gA|ciLnBDS3qlhC(etBV2Nmi6 z9Xpc=+W2=O?({u&4Sw-B7#VeaWc*OeTg|vsM^l)=_U7=Z3uEr@;ygwumCIQPlRnV=(O2n+uC%L463;*t_ z5XDSovIN$3=>ZYpQ4k(1=F}Wl*0KivzLt|s;jm*}l#kZ~yr2PF1)hqFA!t|os!{@%{UOPsxrp;MX16^cawkDsC_Yx>GUE_Kdu zt+04@y(*|H6>S$s|s`T3q(+}jXY7V>z{6^qk@!*~v)d&Bv2Ee=yym;xr1Da|Icj>c) zZBEtAx!rG?6Hul14rAEHs~U=kG&oC-V*OUir%oo7O^Zw6`?C_7nMXW0ql5DZa4P5oq+QEBPFA4@1usbs!~cQaDCkv#aYz*-x7ZXqnPf zW8%5f{GH@d8%x8^#c11o`Xj)C&yhxewlg(p2Vu84rS#;sc?ye|*xa2bvFlN}kqxu% zagwOqvwU~d29s-v8jdTo~Kl@ zmNhV^sE7h7BeBeUE&T7=0;I)}V6@kH`1%V?cH5opxWH8j|Tr zX(^BqB^AkGC4P5M$Qas|@-p{9S?(nA>g<;z^Dxy_@~1*|Da<`}g+UR}E#9dZ@wxg_ zAknpHnQh?i>!AWztf-uU@2?0}!BI)qHaLMcIUrk~5Ux2>i>{<)I)Gpvt0|}%Dho7;&79p*r*7#`LxIjPFA5! z%AQno?K1@i+Odi;wl5QKTTib}s-NTU%qws#Rk(C!MlMLX^7;e*8w>v(J+NJi-0G)Z z)Vf|{BXdebH)W|C6CKnO5PacZ_PQ3yUE=~!AD1^ebs30pBd~EAU}Rtp?oNGh;lJme zZEt|hC&PX>TRZgQlqwH8wX0`#H1i9U4a=Avvm053?=>?;Y3sfNh2b&XJGor(TP9qP zU{(%|WEG-q4zK7l3E>W;h0VE>LHH-!2TMHJ$!c-Ew9o)_fFyrat$Yz)u0?`%?YkK* z@E=}f->pvDa-YY!XX1ea#PM_n8pRoa!k2`@WOi+<806V4Q;4BnGaCk^eU+nKq)95l zD33-@2AK}%`R*cSM@);HlZHo>jFZNj^eSyprNGc&EQhlKd`7y&Y=jsLDMw{lO~sql z9w4*Ja28{zSoI%0hQliWvus47B21}0#uP~gCqQWIM!&rm_9_~SInyUJuxF$)fHs(E zOf%O6tu>$Tk66t5qi99Zr@nf#U%*qI;N_wFuN3kDpBAi_O+k35gDIp~e(8p9UFN zw^k0jw50Ml(In0x@B{@eeI#hd?z42><>p2i$SB;#FO`yW zRR2Wv9HIfm8wdxesEmGg_Q;P57+55;W$nv$ zcl;#2mfUKa9^+}T>*`C#Maw=(qsoL_gv6}_?bF|UZ=SfJ8bbT7=I{x|g#8`kcg%ig zs6%7kA0Pfy*D*z7`F882 zZA(anmKcRM@Dt9aBoU-)%2Gyo>#G=qx-c zok4SL=@j2@`N{1wM(fot!LPhUZlv{YZ|77;1ba3&+kAWGgMCf#8Yf{`pTEHFxDav6P{@WhUSv>|Za7+ijmT`HLNM5p`*5b}<&~k6J630xLSKg0#97 zTeedLB;?Vf>R5x_^!%WX0vb~t^upz{rM~I^E%}d=&chG?K%XP%D~Z8NLB?p{l+6<_ zKPMnJy*-I-5n)}i>O$Z-ArQ>nSAx^CTUR?33~XzrI#obcBScSoatvY}l@P9^yH`p} zuQjl%C1rtVR=2Fx7q0w1nBn;ry&Z>6P|#ESR?F7G`FS)@4tacX47s1K2rPg)H%5L` z;!vQ&ML=twkJ?Cx2?98n!*a>gO>u!F;YMu%+W!#Q!*=cB$0nc^V>(Iwh+h`kq-S79Y)E0P^~|j zwedf0Z>^JAX{!Ts$sdugL39+fdoY&8bP`lwsjNdR8;`h{zHX72^WliG`uc z)*?VeE9aJ$R3w!h`#bqBpl-8y0zI4lTo$kyR~c?buE1h3Csy<^@=cDIXXea-ys=lKuI?*3TR#p-!v1psN;0hd zsK%>F$KTo*dE*^j1mwYBsI)_HW}w*F{j7z01`+g1>y5U*WEvfRqLy$UW*f zw!gR}99uHr^dx?_e`4EBs)1{?z;4H&>{ zPooVa^P@|Lfl(Fd#4|m+ifRdu4WIN~F>TBsz(hy;RjlE|c`UhtK5GOa%MavjC=cTH zx`#~3$-0bnOep4lZYze$CSt557whh|lKcwnkf7G0iLfo!uu7@GC&p^E-=IFmsB~E5 zm2gn#?(YO-Cq~)M^Y)=~KKTn$NQS97N6MMMQX3UU&_czDQM#hgAG(mpiK?^GD5h=J zI+W`H?2iqQqa#x*5JA8`o>84z?xjUro3}aU6w&t1Cv^>#3FF3$!sGMd3lxF0bOll^sjb9`_ z9Nr^_6M45e3{gw5u%JuGaN3h4@bkK_k`I>5ryauO<&Ccf$<# zr>8Rx=DK$zLbf`2H`+F%`uXsxb4q836G|*YnvRY(+!?kIGhF0 zDJF`#^Q1EALxn+%E^4$SYKRYqh$_jXUQt;mNe(V6&ofY&bVO_}V#ry9`lD$U42YWP zRowTkkb(5^O5LP0IeNbonrGk7DbKjFeZ=VA+N!!=Hf2l?O`MaX!$_H6b*X*L(Oj@; z3Fd2E;Qx*C>iAbkjmpa%(caF++0#x30OOCYh zF%mr}zG(z^XRV+Tb_JkVb_j}H@fudYh+0V+nmH%})XdZ>#Foqg3`JR>v(7#55_0NAqka7?iu&vL#pS3Oa#q$>` z<=?&w8aMvywc4M_NKX(Y+?5v^Sx{*12thn*9j1%GIfZl1tMjwZOfw@g8A)q)Cc<)X zdQ;ITkT%FKn~tajdB3BL6JLSp&}sEGn4Xi9ra zg;pf)=w;1aa8M?Iswh@qcYj+kHOtD_P5Cls;H;P^15Ck>l@(jZQzjSDlxn}i7UU2J zRPCS7Yy-O;ZfCfNS^{aZt^%_YeLT#k^RcR`-Hz?A{NwU6ImXs7FxXE=qJaDFI1EGu zE3R5ctJecQQ(~!Z0HUIX(sHR2sYY0@aJ9_5P>8e-n`sjkD}_lGr(=o)nQyddy*GL< zHk%Oj9RntT&{4;n#E|Sj)3*Me_;Nw9-a&kA$eW(thRIu@L~uz~2U~DYg^2Lo4*=6{ zuYio`UH#nq)YJj2ha)}fT#627+UQA4pLoEImlJ^ObLqT%&vx`7B63 z&#St#_qIz%nhiC#KssX)X-86jIMtiXU%NES))0n2dMJ`x< zdPABJa2hKyj;XHGeo>s%%7&MYJ1Nci?DZA0YdWXJHf0eX>@?X)1xRO$xdFec^-pyz zVC~XN0^EA8o%iQ?3}ZtyMQJgS)t!|jz2*dBt^Auoi$n>>JTL|-q`pK5A0oQF&#bQdT_ z#5f!FEd3O0SaCuRTlA;JNQ|wS6r;HMtbrZ9p*T+zlMqdG(fYCD^rTowzCF3&s*Bq& zM-V#@xqWm&Wos&NW^lb-9Q1)`cUXD;Z<*0ZUHnwxg=}kW+n(+nT5Pn%l|^}cK-J}K z?Z1+>4_Sxv*z-j(*12!`s7XSuvUD{6HWTi+oXk3XEL9OT!S8w}b>rlp*yua$I|S>> zUH2G@$C<3F3^AhT$jUb;=h&X>%| z-N=iW(0En(BU6p?#Z<)&<9`L@>KVu!2{^H&GqR{nn)%^5l?98lxH!6FPG#vS(6e~~ zNXwgnRrG}5=VEy0yupqQmfc?T=f1O|qJeqwiYv(1G#SFqSkgq;OJud|Cy+Ha4bcQy z#R(_MD(p7`q#K>9pd3~eQd9`yLpPVqGu3C5`~sv3jrmO1$`+cvgoniDbrD3jx3r|; z)r8@l;oTL@hTc@R6&G1+`Cxq2=f{F5JHisS#iXm1_o9mCVVlW|>qVjijfkUwk02PFh52L9EmE_dBt*?}K`c1^gx1Vm zVO{GG`F+Kk6KK?l(~o&$amctiW!gLgQ9#;`N0hu%l6UaW*_Y^RWUoxQZ(ezkrk)gO z7wJ*kD=ykoe)LV);0mFB{UyHiB_x>!5f!ZsGj^wXyN|M-mtKe{CZHTp@Kh>wXG)%d zl4J$~|8FH{L7z7`77^N>j?Qex2@+RXVVEK8fZu2m+LjlU)H3U#me*itX##T>aNX?? zyA%I30sEd8-IL@MvDPqu`7&yVLOVUbRWc_bHNJ+IF@I7{8kNSD#>CnW*2}RQKrI3c z0%!Lgx5@#iRc}k&s!O@E(dFcsUBDV`F%e|&Mzd?I1e7eAD2Ob;`!OZ1Ne~(Qamr6w z$CWn9gmQ73*$M)aNG3vfU}8bKG))=tc~52Dy>Q^lArZu_7~t5&vi z`&Z*`_uLJ2d??%7SLC}qvm$%k#3j>5@GCt}R+(*@QF_JS#0dQj=OOOiVkri*gHjn$ zIU+42LC%bpf{i>L3%z@^L>7p>?4tnLmu5160)xXXr_0GRRz3dJ&NH4JGGy2;_>7b# ze}`y1NxW?$D7WUrXInW^*GuOdC!vkJ3ZE20tfxH_;Q=0_0aFxN$7vF-ES`?mPmlBA z1Y|x-VR@Us26(ZtGKf$uvZK?{OMaJ#9FamEM>dXFRy+eief((mB1{*&6yS#{-YpA67+s`a>o=Y$_m-=uFX5* zZXV>9qm3`GPqTHu2W2BOF!A+M{Mq%Y zZ5A?EGVCWftbVe!1_F;{wD?9py2yhH6ZW30RwU930w5J`*oyXOvyZ zLC@w>b*Jx(&f3wbO1Tyc-j5y&GAY5alwg>2X!(W7POB~cIGue~d4HYO37CL0jWhOI z?m0=E5pEzVFcD6#TT}&FBa7lit!DC(QlNt8?3~g9(WX(_$c!|8 ztGQ-Jq99{GrJc~XY@pH~+}93F8t~L&DlBFvM|H3Cw-ee~BU2S_T_uCgF4qB%YP86h zloiZ%KKb=d+82c_Ys_ei$)a|PtC(12F#K%zk}x-YsLxB1k@NE%|827?YxE`lyssjT zht#?_?brr$1_xBGDXgn;>^_LRHnkLLZH7CeMjVtj#;sZfjuR)bRh*s_Ru0XX;u#;AJuUSmzdR@vC_pvZD*hb@8!x+oI7E5w&!fAkdalC`@uT zmsFVn#FrN+WMHX;OP7wh!84)N7EG0Y?Y@n;DsGb3A6nqrfICQmvgu&WPE{@bC`72 zLPPCrK6ZHmxZA5+9aQOqJo}hLHai0JN^yM!?pShCQ;PuQAA(fiF3)jc5F7SP)Xy?LS%wAg*GDg6PXF=ig;{C z_BgIzm0%`3a?At|CLR8e%bD9*DVJYa6j+u@QJ2<=T$`|D(4kwp*3UyUN%bZlAtP>g zo2F{{$3=z!?TWi}e%m>nCBo^5W2%wKF$&A%kZH?}SiuTORX{F?gA&un#B^-paG4QJ zMx-!*g##Qtv`7->Vce2g<>Qe%_sGmSQMjg`;9rwbjw75JnmtG~x!?ucO&Iz;UN*LQomVe(wWNZR`N0j@ru zeZr&VjQa?yg3L?BYhBj4xNvOKZaT;I=KZV-Sl0r}%=fDlCWyq)@UI1$wmCX?Cs8EQ zG{*lbGNP}wqWlq?rbOVMRr%A2KVQ1^s%3W3(3u0+pP#g%%gWudHxmv!nd)YBGTS|~ zPZEmxsK;SHvg{-f_4P*}92;4;F;N=TzG4!@DvlIC>}bKCR6U1|wdun&Gckz_qn_Vz zVSSQey0uYWR_>^!qz>)0^(w;JD@#YDUWEoiiA@0J_tQ-V4l%ujwC7SzDwo!8YsD@r z`JLPn=B?E7=cf{&3;zU!4eMENlp=PmH~F!!6ap*)95z7Y@6%#0{^d?8e7-sVI^amR z5my1)`8eM;sQITmH$jvw4o#y!n?ny#hs0SVWkOfO-debWVl4iAaC4#3lU?`MoOdta-H1 zELd`Ij3ULg2zuFLfe}e0h1>2tQhXVE^|ZajXO{9lr$>IQ#F_YiIZzxmwln%wm~<2#r%BU6*GCqdU3?{dYfsT>>; ztALU3_<#o8W7xRAww(B@if#U|BW2T4gXcKfUsXm&mSM~=n@*a}kZd?LwOCYWDsRu? zit4p()AmASim;ZXZnGIK0$#T=F{Qi8abpT8``^8eyv1tkBUv>hYewGh&a;81;v4DY zt9B@4igeI|{eT1yRonEHBBh^2vK67;%pSgcQjx@Bgd&-i*yCu=rC?DaPJ3&0?Af%S zTr~9nv9{JNTaS{=c}>@N2FYhFJxp3#bS0e%qM(gCeq<$Z$XLz(GAg1E#ouQo1;?~4 z*L1i*+RGI0iY*IDxM5g~G0CuNm6NZNLnNE7Q=R5 zk*Fo8JDpZT@FMR7Gz*;if(Zgnl*@*LEDH~?n1c%Yx$Hw5OEK;!%Q@CuF@hus710^I zHE{RzWQ1lfKI>)nN}o)qxbUp$xM-V~JVu4DYP3Tte&FiDzx#poQSyTnAV-&?szdBf z;+hTE>h15WBY}OOn6FGTjfmKbMzE5Z_EkcVJ`saix95EsLpGrDm)!H{;>tLJ@L+mL z0;p&oy&jC@^Lxh`!=N|LFo~B3(_dxdu}eSt9=m0?*9nBBVz+xQTt{tY(txRiu`HhW zVt6!Ryb79g#5)*{UcyfMLTDlVZr}v|TU=$C$tj2g;i{t?sr#>E1P#^1zWS%Ua*+@Hv6b#K|aAmY(la?$IE*_U6 zGDEO^N9=Ztkos$K48_P8rF;~z(~E_$E8ZR*8mtPrtJX=#4TTlEN2i)1Y{D>I5*dR5 z+#R}%_#fo=QHk~nQA!!9-6+OQYG)C1*u41zNzWe*Eanls=5s}TPg}G??~MK>dwLjA5V>jeZ;Pz7j%}@GJhb^L zsx=jU`ZL-F(NCeZ{NO^3Ic1<#2s36AB;1a4ImrzxvcN=h@E-^&I(*(4*|n5D3Qk{r z$7JTP>3?5SEniBI8#Pd4FT4}C&We1KSl~a*L;U|3mlYENOhN8bkbgSk=bwEdf}@Iw z2OFlN5Gxf!8$wsJ;*-0I9L(^WK^J{{PIj5qxAP)eO`NXe_@pE-vw#7%lZhJ%ed8pM z*qi{&0&${b4Q0& zWSSspu{2imz? zRBYbcpDdO+6iv-0rqRL3N#%k6x=!550ZJ*-VWODl@f6>v8wJb8|5jBh!w?cN0C%;} zScnWalq<75mDA=vp@#V72%4yHXTb;4kKDpAZKDtoTHM*MrAsYmrDV`Sjz-+N0gizAQ|CMFi8lGGmnJGrjHjLXb;k z86*$ViW#?XK+=;PJd#NljscA-9F)T}Y{(;3c%97TaW@wRe(+6#Z!}f{fmo$!*V%4V z>Q`1P2DEccD@(`ISEos6QbZww9MxfGq|_mF3Ix)=O7opb=~t`|!7SbjVyv8xI7-M)IID6e!>to#Iwp!t0_fUuvC1j%fj2ubh|?Ba*lFY^3?~4N zv6?aM@0|oJFe^yeEUR@)SZ+WrLO3W<6ofG=`C58sG#)wCMfWaB^{}`Y_!wM4Dr~dD z;81=S^2MJW?BH7&smC#KviX``^z^W`80A8zoK7>jRlZG)SYYUtpEniodO0NvY$jx(^==w9wod zZCq$!H5wg_1vT?PFLR(8o+T)k(Up>?a%&Y`g*Vx#-_qIdc-y$+37$4B%H}m%Adpi>t3q5Yjspa%;$i3#N<&zV1<&?MRx@_KVmMPlnBz=g|WP6fP z2fL!Cx!Kw)xs>eELEc-X!tDTA*rcdQ32UnQF9s8m5wIt^T>xFR%rsrPtU!Ws0kn)A zz0{Jr+jnfJ5HK?jxz77Z-<)3C@+|1MO5 zu9bnAdk2@v07vs}m-{miH||6*kN~C;pXj8Vepm@0cJ^4JF4u}#HxNN$#-MzTo- z{?+*SBC3&^O18EG@H~X+R3Q}_vhs0}-1=_P_DDT&vxrWHv4gpOru7t0g?`OP*ZI1H zs`DI|UCCI)zdD>a44#BkX|fLcD>@-5P`iQD3DS0$@E#zc_lC%F(?y$FI(QCuV(lpc zC#c73<^m*NUHC8GPTj#$-HIQ_jYc4W|B)EKmjF^7=g_PF*pS1h-si?VihOgqA<0a3(l*Nkh!%l+w3SJC9gka z38g8|PxPJXqspA|s=#MQi4~`nMTEj|VeSHW4q*E_2Tqm*N@vm`@nQ{gbZw)V9kAmE ztja#!stBDkm@?Wn1{6m-VfSYC451-j8n>!0-*kTLJ#1UMMz1NHO5u|n7>?DgN{7sL zd(dbLBt66Hl5bNuE~3Djg@W^({KvmcT#j)vQl}RG&MP>A__Od;Oc@_;A3`U2Gpl|f zFmX$zsc0)De}1=>vLOC~{~aNHpC|B7q6v!d!n8S40TnUW=8>SA#Tf{FD`BqKC?Dip z6-|+Yy7e%xsWa9!(d&w7F`FBDc4YBhHnx3W4sA<25#LoY_#NwWd*(S$6CI>FYTqY+h-Sswl*YcGl-(CHvGWMjsyqq2r`Bdp8C4AOs8l zg!2`fU*K=QE;rW&9Osw>XJ`ii8~(lau0|-g+?)jgxkt4^+kz1KG$v>l6uJge zRjUYGqI5jX&3TAP7mAMHOkCV?{Lc`ehEbfIYBPR{rUNGkhziC>16Tt@N= zATq;&gb;040RP0#$PQ5(>Vn3?5W`FHwD`G9QwTuPdoTwwbq2#5GtDk~_uhU0R3|{Y za}?tU1zob^n*|o$uNU(Z(TGN>=CP|4X`XQnjTrCtmLkab-(B9+ROK<&>gV^HlR)oA zWc5*B@8@tLsAG`Nej65FFpNsEv!|t2(0S!aXn`?68{rh za*wUp!ar?Z(j=61AKF$4L4DAZ0C|XZK3?D=!O}pfGyVOp0mvU>z)eF}kK}4gXD;WD zedM9%gZ*(lKd4(ao*<_Nf38Ecw!%N)!VREVo7i9^+U6F`mSX<93nVuZN5QFPq%UMS z)E&v*KI@j+LxzR5!T$wcNvV-fJ& zNE@nzC4DbX)yxXq`0w<~@OzO3z6;jfwm{$fw zU-XDRs@A|Xd6>o?eQx;cQt0pZjsG+W`&)E%HYt+4;u4W)!Gs}_ls#bhp639R&)z(t zxU)QEq8owB=2(Vm>^j`XgoC2#j$RP<32{m$ivTK}AjVYo4Vp&O8wiZ74iF=DyjI#x zmP^tK5t~mzTdk|!!DWgWl{uhG*MNzF0aSBD9c0pV{Ys#ETNOvx`_Pfwj9LWC=()4y z#1>!ACZ2*j)l;Q+ty%<_ieUQ86?xfeX$D6B2!6+C@$Gh*bh^^L5G;6Gr+b$!vX35*uu zLczDXrT<(6uh|8H>o-1He21t+P`!Wr-8f-RYTYTb<(@RV@PF)2_7cX7@wXFILMhs{ zudp(>!h7)0WmMit*mmtOV*FJ}t3O|(yXQL9Aa1r#ds=)+Rf|e=BQURGEb1#0IDOcT znefMGZv0c*fIqPCe;RhQ36?W6y+=065?D*IkeNBDKZN%<1?M)vb|bOJyw)eF?iZC% z_0OuWv^%XARNajT*mmGq)-QhT9mpzhUP7sb%q|Lp6E&^r*^TbF{ZqwihhI~X@W}L} zzzPeO+Ct75hW63BKK9mWLWXZA{!Wx)Y!U>h^imVuO*QK7XQ~_pG`Aga_~;dTUdJ z@k`E~C^g5cD1!^hkze(f6e~@cf3riV(!e!Zn!g?L3UQf0;RGH7RPC%dNHWP%b6#h8 z&d{&HJza|^7p}V|cSrpqEh~K>K`L^qTELBu%Y=nAX9qFBq{)0e@;);Ftohsl ziAl23VO@6)ncj03`Rn^5i~tH8ZC!GI06ZZHm+#>`gC+TvNV4PV=%zv-zSj6 zQw0A8N@c*=8%h^KZ}^x^77bbOrwI~8{~4Y5X=%uq@5_^ssqiFa2A6|f4hwDU1G8FX z6f}EVhs}^JGBy*VWrB-Poqg&Wg$;SCJIemncu{0nSs7m&p#1Y1h*A!G2n{_MzGAo$kZJQb&Oc7V& zVai`8k&%TcVrc39?QAsqE$k(tWHBDgu=7|tikyRg=awN@yx@=wVDpie8bLTL#J|x; z<|>=^>IuNQLndbE)xk;o$CQya(5isd+~zOWvTkI~h*0W%vP7QvNhV({DwCFi4L$0Blr zAn8VMpsyl=oI-nI5pX~bedj)sLRBvIN>eq%-p1hplZINvlV0SNs9#?)Msyc4rvv^lOvVzPC!?h~#ucA}! z82`ZlWg$ha8MT1AuR}Md$m}R1ScEkz;*iOr;!io6F)$2U`?SWMvKX-&E;?clOW)qo z(~lM@3IpSR=rk%yJ&pA9CgD1uCCNx?NBtBStpwSbaxAO@^0U#;%L-sN83m>& z@VYG3nYh}FzXaw-oVa7z0mTBZ0ELzdMVuS(wA#}(Xs5;T{M;RsD~CG>Dk~~`#AM1O z*YGvgD$iQP>a`8i2YunB9U9%=`YGuVqhn+8K0^o0 zS(}zM>JC|Uia?_(>9zZv*E*obJ0J=DL;IkQ$#!xKC)NrX4SgrN>!5x-!n zV|{_^p+d&72VvO6!#>N>@tGS7|Hjk7)Ui+B3OFdE67@0WgVL8zUXPEG~5h>~>xoG3(W`oswaKl|UTFF$Peebw`QkU{d(-0Qr=5 zOkhn<4Xia1DM-0g^}{iY+2M$fbt*)R_O_APk&3Cmsn+Y7nh5{21On)jPi#b6@;zVYLERrx@ONWi}3|v(Uk?1L?s*11y zwyrMG+K!E2cTCnML;l-=6gF`D_+L^4W+c9VW7CXP-swDJYK3w1wNGh2H$#cc1JCJu zXJ`2^3XYK5v^1{QIksV~xEo?eZaX2>h#dD!x39XvzKpuiA=8&9JdjoBolL@5Ba~nkICBNZ6@?9miNj4obIray;X?I-oR7UK z;o)RuqaSD1VXR(k$J@y)eEd)kHi*s#&H!%P$cCo(L5kD%B)cq-BTGGV3!_Vlk&4 zd%!pUk~ENsZ4y!X6Dc;4Y>lsVv%TIKtc_PyQR9G!#p$G1gPuVp87fh+_^B(U>0RcE zYxkRff>!&)TUEKqbU}6#nD^(?j|2587+9*bEork)JSBZ~&Scy~ozz;;$k`mwF$yy= z9Q$pX57jx|Gqse&hJWR*E(i6np5?~tRic`z6;!>zFCLyx#k@9zS6FK~CRW)44;C62 zei7ekbULsrlAZ_QW$%iF!bpS3Ui>rKmM|BYW??GAoZp-Fyh5ip{;5Cx$mG<{g-03B zI*}6*Fo0#%q1iq2O|?44 z!g~Kbhj>)y;wNlqPU}9CAH*>Cu~JV<$gYXCUmqa|9K;f)R3-IOXZQ0t?|8Zm*aXSn{mqPlJta)3lG85UUl^ z1szStbk=~~N{i$MH%c2eM~qAT0l?z2UU7~q3e%hIZCjT(b>lxPr97jYOW|axBuJaN z)y`a10VH~>ZNfr2hT~an50kX^&k1a=fo-|=l>CY@p37J};ZtFR(==5psA@vCAGnLn z&e{#<#vJi0io|D3EfV$Q%2hAHhMf?Q*e^MR{}%p{qYCo-%;tVSp(w>{RAW3f%21(LZwKj=KD{c>g5I~v|R%A9H zDLZ*+AT`6#-=8=BvA3!e(u)_i7kuocj0l0@=S&)4owgl1*T6UJv1vllLI?L^{WWGl z#8MftFt01`E739`-0%F%!&iW+eVE(@%oQmS+H|5+TImOfv|k3j zZO4zRNG^|Lc7e;vquaY~b_*#5mA(g8$HcXZXYpXxB~nlQ%=C@wt5P`4Vp^Z?eGqGX{#U3%&Ww*3q z70%F39LJLbSrtO*bfrEuDm$$~d3y3|)RMVs_JzFZMqqw-$7c*>57 z!q4HII)DkS0@Uq?c$E*=41l$}!mmADnxCPm41o6|43uZl&JOy*vRTBFGgM_Y)|w&B zx!rS^G-hXd%kzLG-Ws~w^iwtgtZFWTf!DOEdZoh0xim-8qT!? zRK$u2>BXytR6Ze6%?9T^A3p18k!Bheg{#JFCxwdvgh7!Llh2sr^mFRsZrl&q5gRfL zRT&i$$DLT`EsobjK$(MA?!*4-iejpI$q|RY9L3ycA8Os6{8CfUhomHV3A^QG^COe} zD6Z}uqzA<=Mm4ZN@Gxy44dB5|K(d`ywt<#_lcb6<>17s(WFynI<6cwPYPPe2C;@iG zCTY1WIxY#PxOLDST{Rjb^HuOx7}Xo}ql36;e91pM4=gZgwNGFt7-$r!8#WF6pF`UR z)yn(j0l(T?#NwgD9*AvYP{;9Zj$Tf%eHOD!{!kI{eEre+tNZ?cXb}R^>Wb>BbBokHS*}nBS?J~hp z5)zlD8XXr<{+ZsZHnBCGhmdx_UM4}&2QAbUGV#{+m&bP$VHvQ6!sfOKGDh}ToOyPsbDRAj&3 zHakZBP?A!KST~tWU+sdB-=h@>S}#JPembhwHGRn*{IaNyB}uw(BGrCK{I`Tu`@3eO z*A(x?p4uegpK~6GiZPcioNX0Shi!4|f3>FQo8kz4iKa8Vuz_)M-ny)v}2*@M2^71*Mw8PZllKH~D>#EYKX1^HRx$WLa4cGz4GPFiHp?WkFhK*sH=#0)aOn?$Ol z3maK2!4OxOMnd2?fOW6n!Yxfetj>p5LUKmfx?i0lRm5{cTn1YqK!#{LkgJj3knKrc z(ND$UowZa2cGV8Bs6elm<-)`I*TSY#oar2q@UCRMGY_nr3b>Yfg*_IS1|qRvO_@@t zl2mY4`Zcv=hY*iJ{=&cP5gB5z201cI7vg8_KOcur26uhgJ6*JbzG!~hds{i;s^fAW z6B9y^V*F`SAt(OED-&ajOK7N<6GP2q-F2E`{VL}ij}h=R#_pb8t;Ju?8DeN}ywWr= zQ?4Ll=&1M@1ZlW6mTA%PZ316ni7>Blei1X^%yAedq<&my9Fdux&t==_?x&)rzcW%D zHe`$9`z-2gm3GRxh_15kYs^(q`Ku9DNjEUJn(RmJ&T7n2&YzN=@rCNmljHIdfZCDl z%5C!9IW9&r@yRsR1e6+ngqsmnrx^g$Yj&Y`y71u|TCtKd7vOFr zdXtY&!CdI#7|(k+8$3vaD=Q}8{eO4#Y zeAaISbYKb2^T>h0@9R7>K3)Rj@u<+RH1SjB`4~Zr4eA!|#{Z5snsM<7WSeFsQg=-i zwEV)qEGdt=|K9Ija0xw=pv=589m%xc@DTQNN4#>%l4g)in2MHKXd!;83G)e0tq|Rb z;NV|}BZp2Al(szzIZJ58ZIN2@EnZ7F1NL2X1jOkFI>v^{34@V@fo=mqRkP93u~43W z^3wU!M*sB1@R{4K9T&7MT+2fnq`hkLAPyOchc$;If-c<>9G#q2Ny+YrC%f3{V10_I zXyMttY%y+6BF48mr~9_ojup=L4XXUpkF9z5nmVOh_pmzV>Y8yISsCUG@-4$C>M_Vj z@&wkak3tqPXVVlast#92?R#Kn6hz&@O!A7XAhyYR#i}*pC!pE;0`#d~`{72&LY^xo5lb=1ivLSM0 z+L@>rj7J#ZpRsnX2wm0d3YGX6Mreto@Lt-KhpTsxK0^Qar=NMPze#h%f5U5vWSsIP zo@Q)z?^sh#IC9n1#2msIk%fOkkhzukkF&!D%6ffrVC!6Rch?-!A>J+TV3Hn^$Q@TMX%`hUBrSP+Msmmy2ihFE$)m<7?%3DAthp zbjQ&o3`Ad6tARD=7zvL1fuP{m%l`bm>#ZgLizQ0mhI~F~g=q#zXn;&4$Y?7irYpuc z6~opb-=uN^ZU{pSFUH3kj}@}A>*luZFNRU9L#!qn4_z}LdbUNyS%KICw2QaS2m`&O z#$FGBt2lJ17a`$@wWdlFvVO~x+nos7u6_P7c|6E^%qo@4^m3H&%NW3l0nvG)SGJOl zce(?DuSX|NUBYs2Cw90uGspDD0Ic0lnM+i2GQXworVY}mDy$1=JBcoJbo_840Q^n!}WMs>mvNO zdxFApOoXV3dIf(}C|IqR)m_|XTO&rFOHs-|ta?@{Jkb|j?L~o;Ulpbq93;sAB_h5X zH~zJ~Uq__Mwv+mR@l-C9Is;dPar-~y;$q3!FrWbxxSPu6YP6*5Rs@PQ@=BJyj^R-k z6*(%^xq5zCiCRqr` z6-0LmyCR}7SuZg&$V!yLpK0g|+J)oY6_h5;$-Oak zeaf{9bO~&lFTo_-yRrwftt753cW#*?#$*tk|8Dz9{JTmyhafPz&8i75v+U_Ql3tg=fZ7{~TVW*q!aj3AEX%o9hj7R8jQ_NLQQgY5D17^bblA=?gZ z9hyNo)+t;@7GBSG7&+D1bI{K?<^WB!U;|`g+jfuG!=@b}yrQTQ1pCXyt@wvv(+)J7 zf#w)Bs3+tVtE0&^Lqsp4sk%lJ+JPO#a@W>ui)$e& z<(ep*(5#o8Qq^IfXQvj)Pd4ja-tiip;+RQhYJi)(#?W=g>N%Of@z!%`WQ_+_dkea- zt@^UP=p_i&x-0f(^9(fTO6t8T`T)4_EQ(i!v+@6}Pb8c{RTyfWMZiA07P7w;W#1Cef>cq+R)P_{ z1`i=?>HN$^SK~hd)Xb9(YcQG0S%5Gk8R1da?HH-&Hu29{q@T-wlz zNZ^$KM5%j!R{#P_rGR^BKYs~r)u0v0vJnc?rc5#>-p%7HIdcIDHd!F#CP6RqPTWL1 zo6KEPuA`vm;LG|YyQ4Lbbb+qfyOX>=q(D|evXUAtm*to1O79}~18x)Qm_niTHE`IkaGQQ$JyQx>7s~;yMq}hUa9FNfla|HYDt&cBH z^CVq2HRI@_m~E5Q&h1|FUR59}@z12xw@oBi z2e{3dOwLGmVmXgdfkmBDtk+5*2@+x^NJh%sy^ZLfwhk?sI18WVkWH8qXq_q4Ln;MF z=O$b6rO0&1eD(Y{=`m0(y7mLLR9rF{RRmWp$(KW>@ZpgNPEv%n_r38iaC8*rW{}L8 zD6@mVBGTuqbzyPU4KrBDAC76RQA-I=Lua%A+3fe32$5H+^whZ>5Y$kFR_<7ew1c3s z1qQ?B}mlUk$DW)I?3f_@CswmnRRT<-|RY2C#nW!zh>&M{zjZ`)+p zc}o6UTTT4t0H?baKEe?P`ah)tH!49=X?MSd@~*G!jgeAv^cs;InCC#u{fLiyY7hh8X7PZ5o4b$ z8&oD!byCTPadZ&C(;ov?*0gOZV{^w)))vhgqCJ9eXLAVY@LQAzD^^9kxFaqd2n{NX z+KYn3FfI8%YHqX#Coam_kD|}mBR}#vVQy3X%_FUQf|kRf-?VmkJ=cie_wYul{1^Bq zsP8~^QB=L~C2~0(XIoIka1sVU+1+Jog)ot`*XoiUgOY#6$iYhz! z@CY{9ObKp`(R)&P^2XFF0w}_d959fF)4IyDE27&8WOlaVJTgKRF6TuooAjB0QYmq5 z`};&skgD75U~LyXVX47%J7uJ*PE?Busy-Z|q=S48lc!6{?rhfjSbfg#TjjF0v>VOi zmN^R@N(O~Bry(zlI5oxtBxcqJ#1K+A3lJVdHc;RunV zy1GKCrOhO=8du$!8;r`}x4n~C(Fjq!_7x+*N_579;4lGu@ox4LB4|X@hAZPb#=1EX z)2)u_58{4^yq8Xx!bk;)FX4@@twNxl3?nTWTEVTxKZ2rA{&f`&+6s|7zu=#nl|1XR zbF^k_9Vts~wQZ(;pH`2mPRs>TWH4^0C|~d|97Q8>fSNePSieH6uXlaRs$zPYeNm9D zIPR%MnpTlv$3ZgLX>a(=k)wH@VIM>k2C0f0E1H`Vn?e*`fJ_I6%esDkgn#a8iQG|` z8vhFR4IqJ&v{Nw*26Nl-)n##+MKc$$zCD3>5g`CyxjMG^v?!BNB%Fvd0r9wc_( zAE2j`GnY*om(y!~lOdQy-HcQ@ql-!NEDA=bHA^)eKE3CHph)6TnY*}v8jyk$b@`As z>n`zCt}o{Cd-;Ag>9cxkj-K-#)h}KUSQX))-dw>SsmaGnlO$u{+GqP8h;8hLDeUdk zQK%TR!8J(2$*WEAp)RJ4-5WoOaScYq#4Yc%Pm9#52K!vDnXfq8eZt8&ZregYtci-IZSpy^;|3;*=eiKkDj z;O4ZuCx9bd=)y$_)Ihn)J42hY5$$J2pRQR(+`x2@OGuRWMy8;yQLJqj_*KI16r7c^ z{kHzY(>}cQi+|f+?$=ed4VYDhfK|`7yPB(zd+d-a;BlsBsgSz-XlDPz$}`XZT& zyVIfF`lYRk!F^^QflbEMuBzyFSVqQ z5Tf(gf(X$AfSl)Ogb*0hB%;nirQG(K%|piEAr>Ue%LZZ#RJY#pi)dF&EQ*`I3Y!Wi z4*|E8=D%7aW%f0{>_^=in_%DF(@^9kX)+`DUA!Q3Qbdb5Zi)U3T|j*7736^B_pFsM8DAh;zpiE(+4!YfEB0%8_n^5%KnME|tD3!%Wj zlfmS-i+m~myi;NhxT6tfE#P8rg<8X0Fvm6V4-Ra&eeskD1a??RH{2ROASVkST(%^D roYvB;W<@VqZCCai|DJsL_1XUm%!M%505MQ400000NkvXXu0mjfLT&WU diff --git a/public/logos/lootbase.png b/public/logos/lootbase.png deleted file mode 100644 index 41257e3bdcbff7fe84f07b796de9d92ad34c3b46..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 134292 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 z z{SSDxsa9Gw;K~}k<$%%`D|Sb za0w+~ZAvv%je!LVd@-K;V5P7KsljL?=VdYX*!GU44=PlSgMp4GM5-v$Ql+gb9&dRE!ein0_L%)%lYK#a`b&^6k!Z0zk9C$+wuh4a_ zNOdG{Ra;mvhQ+1bk*>Q8Vwv)UhmuP23@`Qew&{|l}C7yfdSy(^| zi&%2(45;BubKwQVe5WLpHMHP$@Z3nIY*p zq7=ob*zk|xV+<@scK3+&99mcouUPd7P(jru5)uo`am(3(z!zF&=QmM8EQB{Sl97L0%`OA87U z#0k*W6R~tD3U6W!a}>)ICnVI-!vQBiZ@o&g;krM2-l(^*@FL+2vyM#99UEAKR>Jan z?yOW!8M2my9Q}hd6_t$HbG;&`hK{sUdR+dN5v$0^3TRI?Z2!8okcv=OXttGBL5eZ6 z6kC!-&U`Tz5u7npq={wxO7u}{VP!;iFW0OG^`DW2r7P!HUc-}5%u#yoT3bdKSS~B) z7}WRbjZ0|Lo^?J>UMw|QT(2QD^6J*j`D3z*Gs^4-Y|G_846HoGp^ooVoXDl3)`gl_ zFp)TgoVzjyxWdzoI#e0wiX*9|lh>ftylM|B6vA~vs5)v{4Wv9FB94y52_19vN!CzB z@_lxV@Is5!8=uh9MvaAqf>=4MmDAKZgf(?6mqe#rP}i$jrSfxM`Y&{7|AAm7B3Tt- z=`c08j_8Zr>_Sm$mgGnuQgJ3l$>>=|(TXT$b<{n-PS}*fSZzDORgeLVxufUvNkp+o z0q9>;6HDp3I}2;$V(x{S&)C2s;>b)Jxjv1sDPtG+;)>;+05=&{6f|3ws$iD#Oz;4E zi&_2aPksHb4bdZ95iF^;#Jtgp=s*p6hSB^|o%-eLKH$yG>sxu-FsaP{C|HgT8Y?uVHL1ou?A>Wm&3WJ3P@O$H;~v{ppcfzYobLO za@?3I>S)8tenDmf&}^9VpHEj43uO}?g|Pb}AYuu~df99MU~QCzrCFm}s@-=8ISpED zl-5r*wY_Kzt69Pubq~b*VxQGp!@5c}N^s*N@4x^1v%%{6!s&%e)DIKCo<-fh^1aR# zvHZAnnqSbVA-yjoeN|Xj@z{%|RMz!#G9)%Ig&9;kXI8~B%Y>SV#Zq$$7S>K!SWFD- z0_5Bgtzn3K!X9d2DaWuuVAZ%^P?RBlRE0$$V*5UrBiWm!-06_-$E>M(31|8icV3!eLZN}Hn%o?u z;U_)93lVHkQTJ!W8fJ0c611S}CNKqYj7lE%R zt{D&Rzsj@<77Gh=v?!`lfVRp=S#7b?I9D*C5)l>fmI_Lt1)2D&h`kPCHPb9=;N%iz z3SrfHkWP43wR2F|9aj4qqwXECutLDv#TM4(!nFI2t|Fl;KT#jUYC@Q55DTlMl9X!3 z4irubq9Jus4`k5%jcDZ)bt-~2iB|@zyUn0}cd6uZrBHGq)LnwZf-H9t-AJ&sf?XRJ zSB=(6HW4hBo74Bm!Xm=%fv!8qCe(=a40xkbt3exBH^@4WOhO_zYJ9>0i;YTY8IdF| zuVdpcr&}bPZT3X?3014fjOY!?t07jDsj0pN;v}FYgqH}k zbj77*wVL2MVFN9K>-=l7bqkqSs0=JDlw7v39Av5N98JV}5{rZzXJAd4gk8XC&<57Y zD>ay!&no6V>xAhjR#Wf>8@x!ED_4Xo)}w-ACU;`j$PE2^!78MXRz;!9kC*$3bVdBE za%MdUb6HfaQAVq)b5TXGY6sTK4(7z zVgtw~G!_=oYVaYfY75KIMjfZ2xBj54iq-@~QNkN7ahust0R9EB`-_#S3X$U#trQ=t zHa|Vrt;_{crTS3&!j=>>k&AhQHT?N%n*D<2d!s1RIW^at<#}C@n0h zlKez7b9Or_ko=45x%)&yRzmfb{0u@^S(89eP_Qu=R__S}4#EAtMBxoJLRPfWh*ikB zi@7944nwd|cy~y$FhK6{Ps=$r)wGW#P}`PCLrtdjzFfunJ}y~5npg*%o}-ot_ghbO zS41q&YS^PpLSbN8m+*w8WwaKSw6L;fjq2hP4YaQsYQHXgU}87_y`l9`I_pg`^uPaG zQA)m2yF~jXEO*52@N$!Ep~Y9yl6lWyDn|6Ga4oReN;xFCWwpMXCYFd{73)9CWx`)N z=XI(ERyo`?KUYFz=jG`jN^qyrwSLEh@t8r!X z3fuSjf%l{%*KDvLqP94IzYNbv15hBpB%2D_)}m~Z#@GjqKrPB_n7E^7V`81=>>TP9 zdJ}6;MMs&1WvV`F3+or)VV!j5GpwOXmI#%F^~!D^<5-PnH8ibT*=PdszKT5Bdbhv4 z2R+P+R$<`%zQ;pZUp6&Pa|`j)N>ED3+Tf3GU7NSXoNkhS;gl#?Ez7af%*mI}J# zAl8YMCj4oMScZvJV_}I!!cO{xKdnbdDiWRyt)VZd%Ve8Gcw>V!5x@P4Tkjn;@1s_g z55ESksuH2ogYILAbya%WEO?rgT-n-~f0UWHU>R|7GshX!cyi-heq9u!;Cc-MS|*f& z4abvQCIsA3;}bGogCe>!LHDgIQV(20!D_&HIb5p2$FRIV*n}+idm^O;!~L#hBb2d~ z*1%O9#=0w^Gc9Ht)bN#vUUv1k3K}FVw)a0n%f@8ok?dkt<1K`_A%cgDR zhiTy&|6?t5ge6Wtbzw`Fw4iX*(mJ7MWqYQ3Z}N$BMWw!ux6(D5h^1XZFFJbTH9R|) zaObK%cU-ICa8MzvqYt_hbr~n;K4m|P1f~Y(4bFadW5wL>4v8)vbH%Z}8dud$;leqn zi(%atpI$J(@3N@UGLkBfMwR6x?gBCu#WE&UV`cn^h2_$7yo%q6mVf>s1Mfe9iA7}H zpC_XGSb>7oP(|W>b4^0UY0#vGv*fuCM9*E3u(Ib|P2M#~Ahkq`kA+nRpvu9?->?)%M9h9$xQ}C4gHC`3+0Rhc{ntNG@)K41 z+Fz-op4RXrs}jyy4SNv70s_e;qPxr_^!j}svJ4BWVNrG&!D`>TR8s#mtqz2)#?`Ww z!ornabgR<++GJV^p?)2)f}werub0a;GZrpe@}RpXH8i73D7-?%#lkYl1BkkxK;;~e zo#SMZWz_vCvampjub&s5`HV9OVbN!|NH`(Z)x63KqtF`c`>p;Z(SVATmldw=iM!Wb z=>_4)M^Z`OMR2%xhq94*&qy`r0G2@$vE8F;^}SmrgxSv?uYN+0aQ|jG6)Y?n!`klm zpvD)cH5}s#6uwNo67ZYst0r4Bs=*0`jTCc#G~;UFqiXd9->30j;+vwch2EGsax69O}vIWxx--S=J|`4z5yDY!ZWF)ZZ}4t=lW`w-3D zEUY$dg}Th$YdTA4#HbjL*=vQX59Yf+z*@eWhgBKcx(%x8!T8w3!~3pA+wy{XUfLad zgBGs_Ld5c1cV}S%2|u6xya8$rR;%GM<`ODe16(CkW$ICC4xzcxx(#m;3A%39koXG%Qe)@C;(^QN^4wh-Ip$Mtbhz z^Y><3yq6oZE)0Ggd-O4BH;*Psg;v?)23-w@^c_rliCB$G*%i_#%{8E$fkd)0uwW4D zgqI25EUY)~=uegY>=dzxzKpc5Fk}gzkVM^)g*A|hIjCgLM03xc(=L8m|L_Cp?B@2a z*439ru@?F*<_p4xCD7|A*d`7Kq4T39HXP*9XkmTCS8@2PaP=ustVh($`EZnY z0FUb<=r(1f?_xiLpe1^Boj6_25BQ9->+aap?2SASywAf^rO|1 zKPg)DeZM{_hSliFb(?Z;GEZ62v2rdJfA(?>D2SyktgAo zA@?YFwSvsQK3KG2#iCCc$tG@P7w1P2zs8lK&`~U?h$Up*xm<%TSKo!jp92ev)Xa&s zWem?9R(-Za_bHjM85arNVjx;KY!-*G)>!-ZHnIL1#7f@{vCPV#x3uzYsgPS(Lyu~y zo&>D{CO`jjnxm?gs#_&|)kMP%=oTIC#&Ot0tl&}}HhS9uIZlO@alEj7v z1l&c&(-%F}+O)#eH_6XgEv$Dp0I^2r8F!tEB$bdvvChWAaxttQ$B{UC4PhOmz>G}J z*|}xH=UEP`&cZ6>obaI~)|ts$0|ar!b`b95BMda^OBy;~$?sW}H&^3@ysv+F>w`12XwCZTCJ<2qrhY^;JzGBB}1BGzRJVs)UHs#0~| zY-Yf!F|fKf8kUfj`Eh`m&!;n%@6(Hfy%%d}<`NW*LV4&QHeZBTt9iBhgnyugrHw2t zh;_|&qYkzcbQm=*y{u zqi}TdW`8Qes1li0G5F6P1?$@2=PQq{F{jVTCiG=rgoiU0qPSALsf9IoMJyzf{6nr2 zUJi2%3nvq9cFw{I#Ttx!-vKGQ<1+Osl@ME4Gmq97Sl+^F)Rlbw`mCWf{jz$4f8{!1 z`r{GHGlwRqnhVx9t}vk^Vg;pCPe-ZXCuj{n50w_yM#Zq?GU3kFpqR=&9~ffEusacJ z2#D^Dtnt-kpPkca+p77B5Y`%O|8kL;bs6x3XbpfeB&{o%pwr+W*1)m}WeiI?g+Fez zhB@r+mkD>)DV!}Vmr8gOYtVwDhdK9IM6mQKArNa&Jgm18U$cod3r63FSWWAeELtt; zZi}dbd!Qd6k9o|l=GDiq6PE90-5mUY`~P(&*+=(ZOgLp2%=4_dg|T?ZU71*#>3;GS z7OGWmiCCe9wRw>-EHBm|ihTV#SnB9WuM(cH-lz^?0kH;AgF=x)%*voxL#!My4~ccH z(W@^h_{FDx`}a6;xc?99zD>)~Hp6Qg;Y|g2G_V>Kch4x9P-^(8lgG0O%c@-D4AnjLP>OQaw|Dl4KJVCm`v!>op|7wSp97}j6~u~hBnAEF9{l^iXt5^jVXmSei3LiN9b zsJqN0#AUuL&%K>YtR{~kzD7p@jo9>Zo_kw)H`~>``WEYikG7ZIdH*XHr0pp z-?AEvu0SJH8{Q%{fa)HK_=PIThohjnPt4Ib%o=%Enu#@9Sep^Bs^zde(f!pmmFj&b zKpP!IW{yeA5u}D|2ullIHLZp&5#Orv^)<(|U8C*ad!4XFH}gHQo(J6j_aN5YMG!x+ z|C-C7CSRVcteNWGz~Y31C_{0E3VxdEE?5mFHRlRhds#|#R>Zmi)<#2?O(hh$&vO*( zho)g2orT3#3C$v5GeXvNIRY{pVBxRgpn2WK+^;*xTPwBw^ImOj6sxTP4S4@Q1db}k zRlCr_`l$Yg8p+x~nAQl#Y6~|>_m=yF!vOQ2E!F+U@uuqj>!4Q&FQph3vanQD!tG3S ze+yy#0%ht^D&b%=b4C-(D7rV2)bNH`nr_=D3sr@&+9hRe-Lr=KfBML)JNU29)R<`> zzhF=AKi`Rc5{Ms`zU+&srrM0+nl?K}mVX{h`ZI{RE6LHL&L#Y5k_mmW z`j-)~UaVR}Ky(-KGOy?S@pktA2pZNLbXTkf9dx%Y;cfB3=fkpaySKm^`HcH7Pbp5*R#{jEOxjqpD73L!?DIXO z|5R^u5||l8gY{v^H|h(^{o-BJNW5AthalBtp#HhwGY1k zD6vj|L?MaAhSVpRI#}yUrm_E|t#|j|aI$se<$8#@D*M}nZD=)BX<}U=>qI1GM!fnp zQb&JIHrCdc`Vu~&tfLBOSX-wzda)sQC)EIm?tP@za0_I$QwU2^LK=`pZs@p;es0X` zC0f^E20r26L$80jTdOMOEy;D7Be@d=?9uz0fqqzH3XVXXBhubP)iHS9Pg+C5+GNF=d&?3ouDeAt_78VG(-{5K{ zj!vtDTD~vRYLIJ$w~+g6Vl}sX!gf-Y0Tl@wPr*f6S?E5&tR8t&!HUWnzWP!omJ0`H z@1}(#;sN(RWf*bL;G=_FGE~%(+76?AgXaD&E3S!})`;WuK#FAAgF4Dr<`r6ONB}9-VqwbfV2Uvtc*CjlITtcppJjJkbZb!LM zU*)-JY4v(I0&FQmt?(nC*nVmE_FBVNUlhcudo^fey!ZaQ!?|kX`ggVK9Ok;3Ukxly zYKzm%0j9ZG%|rU%7#=9@zh_<{>4qB-tGO)_Hh7tE5Ed453W0>*1zT8#I*KeTUzN}- z5*{jISSJ|6(oA>28*SQ2xeo!9eNZ&|G0<3xOlxE`a;(_UzIq_8c=fL@PbVZ3v}w`( zZ_WL0@4x?W*y$?nP1~X|I)0FRlcz>B%>I!PCT1$t_kZE|Z&V6l15bHdE6lLSmm*@J zLSLNLFooSO7h0JRSy<07hNXQ%5qAIOQwjf5SR@>@qPwOw-0->`<@=hJ|KG$GmcK79 zPH)E9HA(@-#~Qx+(jXR?Kn=QgzA#DSM1HI9f5Vi`(T?tj4GLHUfY5k2L??$@;kf^5 z{5O`ji2L87sEVpnbrseeEAZV?QZig86x2~utp1F64RbQ#tBN1+3HL&CR9INgumpvc zbe}xJU!#fjPmCXv8i3wtAm4Yz?Wvkj17xo(r>$xIqorwyRi?nJafWn5yv!A^z8J7t z>)KG@;E~M5_utwUCNr!t`F0@a&#o~r*cUQdn(x^K?4&WFyermn*{x={mMQ_Ji0$GFTO$|fdX~UQU z48_X+yXH0^K8L7R>Y$@E)~Mpwz}y_nYdFCm*5Nn{%v>e|OIujDZqBoE31<^)J0?FH zN%wygm`wWz)_@!^+kYwmfv`BM#wXeQc)IGfa?T6ieXD?wp zUc*cru4o{BH8f_6LTLB&-v`ru{~OOZ-4N58S!|$?^tjDRXZRjb z_vrqc%AXIt{}lUtNVRF9!9sn`CS2k!Y_z=pjhDIt{dZF2#u?A;sH5T{SdQ7Chz&0N zS(sQqZh~09ZZRyDoTF+#zig~a2xwSaE$J@h8gMS*WMK`Y?z4%w&t=bUY8DM$uW7kk z2!xf<{ij(!^KUC&eGjht*WCXGn=(z2V&F*(B^#^pv}o?x-QWKfIC^#cmuN5J?F}zg zFC|A^4C|;C35A7qWi`0k&xX}7)~b(I2|FR+_j8P41%ji>z!JO$VPR#bh}DiZR)a1$ z3b%u2CS8_Bq%Ov?d;PcK)i;T{f6@JSLHVXF#)sNy4JU#c3kyxqto!=k_(s+BUwu!7 zb0p9GI)!_+P6#Y4TTJz2m{^xva?VdH*Ptw{ov}1s^ptf`_jRswopX?7Mc0O| zbmjr*Ze`#utK0u;0lG6-5BhOgpBL?Q|IHpgI&LW9OD$ z0r!`!>M{nay6SVGvEZQH2nuTbX0v&PeT!w{1n>NNbbMn})(-pY}i$N;zmI>u{Bk*-6 z8f9=vi3ry$k+x97{2E~}SR*zDGncLy#=EMr^*o5Al?li|^E!%}JYSl)znezxWA;n9 z60Udp-~r<8k_j`X=S!ax@4g`cya>X&rm!&LayoAKrguO<=`-0ax-I z?)W8O>hS|Fb7YkpLmgh=$=R*QUgT2Gt`|A69QG@r)$Q~2!e@FFFI6t~Jtw4S888a% zeH^qLvdsGxr*F986lpm6{%k?pvKGjhWHb?6r)RtB2gyNa`zeGnXLlgy2_aw~=~s4M zg4BTAyKew19*h(#+~0+ZijsJ*KR^D4C;h%E=_e3U=)X&K_nABWG&)tMt%Ou%;NhTH zf|%d%=NztpQ5~On))jsK^~8s4^g=zoF2CIeqd?2n=}2ZV0j2<4*TW3B_>52|JKlE z(d8wbC+=GTs)CZ*K1nUIhfWjNBQ5 z3X2-#(At`5x|NPn1Gy+r8*iasG-RVB?S*2xpF>!Q&Uyk~;yOrd{qTqS1JPqXR*oc$P(w3N<5%F^MgP<@yejAR{20p}19bbl9=f-C5y(mfI2+g_>|$pTeQN^Wkw+UXAG|DH#a+4n6uylQVr^T#U2XBGJQ?zZ1| z{0r0>_?~{GWXo4r!&*)^{==2VRki7iH>DSQ6xiI-&YT@KCniHyOQOKg^N^336{QtY zSQmCCp9ZeB)eko9c7mLloAt3tbASI9UinFAvX)?2>?4{1dmjY?t8s^?haE^iI{Gh; zO<>g7Bl)n&a1Y51w~XrNI5%8%0(izi&LjlggCxfU7#>Ls8K0p6)5*DzIfjprkDsRl z_6!N_SyDJ}oYrk0|IAJW{5gG$*-y$WtRq|raSzpS5PeQpR2s&+nf&E!@e^sTKdyne zNDG`881uQQFM7!Td<=hq^{RX3Z$~=8;YaITN^>Ldi?1m8@9Q7FAAJ(#O4Ux)P43ar zQ!{9W#cfwfqH{qt;oKYoU6YCY`qk74b*xrq(CKCLeslUeMkyk?R6iN16uFOaY}#OB z!ovTVs_rmIB9+!fr`AZ2`u4;Au`>Y|#zyeW{EhZoLwTY~B-xi%{+1 zGS;&O(Q@PPk`Jv}(4QCD>sjjm)zQ;c>iaViLjT+Q1%DkhbSvUPD=XVArxk0{E`t8* zXfuI2e&9}1;h6EJ{>-WBZYV;OJqA>`)M#Hk_i<(J5rvXQ$)U`Lbyq z=W%KjO1>HIi4iVck1$BR8Kzg`M`#or<|SB@7KSk@Xi2$`GfB`$UW7Ds)j`kz?m{xG zAvw#kAJb=yiDf6V<-g$kx5=!=wmm|0#nh1cbS)y) zwe58}s#ToyEfZu<*zD`e6eGajf&<*!f&+YRF-J%3FV9ncAcdWiT@4v-eS!0et7RTU z)zv|Q4R}=EBIRQH1FG@{b(xAMf9X1YFGT*D+RZ|2;_MI2>VGNvv31_2;syKi;LPHfIv7XT^&1a<7n9=a)s|Ua+RCM%8cSU5(xuG? z1qNY{ z^6!xt_;X^1Fl@Qb@)opZ;e5^#tF7U{sMXc7y+Jv1M1(D+v@ruHlG1iR4=7wqh4)s# ziUk2Nq$~OMV&YE;8_KWkt4%Mrw>He=;sBqUCz9S6qwuwSBwjlSAVRGd@z?m}=W127 zt4yYAIGKBIlJ-k~c{~@c#QL4Z^4{Eqo-&WV?FfDV@q3cM5EJLvl|#hG%6Nt5_;l^ zJImH6%|pA(p2c-uooOXnjpEXk4Bl>iWg=5oqEm4j)b)%${1d&V0eZNX$)$uVJawT^ zWe2p^@fs#IMkYI_tnPg;Mn-XZUHRWsSL6KqtHpJk!%Q9H#^H@g*VCSbOy=QU=8=KI zaJ)Uf#2sWo={36s;kkIqQS0*}c+tTRz=Gm8n}o@!at=TlEWn1Z?g1dgEx7H9fo9nE z2e%~v*>2l)H9pp%1K#1^p}MXIs80r&IDUrQJ)U}*^j^x~^QNHLKitMy(AGt?-EY!8 zbNA46$%?z~hluP0!sZ!qp%!Z1?g8g=ei*@?~Q1{%M0j33mM$YVd}l~F&d@(OvmzK-KdA} zdb#?GjR!5OXv31~on!}r!#?7HZeG=eDORNDrf+Z4kjWK;#7b?fDbKCU3fe|kB4|v| zKFKEvfnZSfX_!84QuOt*Ja}v(n<3%*M}9JUZpNGj2|-meU~sWs|4dXVGfLM=llwSc>EnVC`#jktQSsgy&TP3G}W9O&xJt`>qA{%rS8`lxlOR~#0JgWr$HBuG) zA6C;B#dK~ZhQgU{B5kh4t{`nsWOxi?Ge);~LacO){JFa6HrKaI2I;8La`tbIdv)2h z**FX(c*Z4u&JADk;4wXGbN$j`LXSR-Lf&PbGX0@x6<;K3Kl7|?qOpthEHIX>*V0X< z_9XraT;98Y>TCuW=?6?v8rR`fft9EXs^vKNayufB^<;auqkD7%oi2*tATOGBi-Vyqa@#EoGm6q{x@4xYnsWbz~)Ude*B)#?vqc!B* zyGTCG$L0?&WcOE*%VtRPU}7+h84QCw>Y zp9r9MCWpsl~Jya zP!~ed2-|&I>DH-RCjpLsK7FuDzWf}@@EmdqTF%99=}fe&2>B6!=kR#w12DMGc#tdO zjlRT5SdhL3zh7c3<-9BJHVygzB8ph}>aq;3ps=3NU~-sC!EFsi_a0NcGF`C=6Z%z2 z95pY^1Al!Bn!(+!H7?(Q9Vs*G&S;{8)QysMKjch4iEO}`PCz(eXMzT(Yg4qA>F8yW zyBBT5dL}l<4yIpS@)%-7sfI^dM*w}jQMMgQ>QbJ0>iEm`NfZVN`cljGB8l4hBSD7< z`f6r8Nas<Rz`KnY)ls}<|PTW?M>J$h2yjZ3* z{72ugot*hOcrZhB!gYqn-Jp59sAXnkb)GzME9C4jH)y%=s|~#APPMXrnr#PF=~#4IlN?F%@dhIN_%IzW+9xL6prJQolC!T$M-Z%}551--kYXaVzB z=8mzo0ZYEV86Z)5`YWeUB39+Q2NTAhiOx?-*pOKJ#H7%Z+j)NPGtBVIS!~b^{+5Ll zomX$odV~3kl*96}$;?LvoFDY-7xEn6ybdbrILEDD1#MsKm%?A zyg!WjEf7Wa%2ebm{0jklQ8tpsGT<=e%q2Gncq@2Kqbae`^C-hDRm`-;%&>+CUt{zc zsJ~vw?96_7^P>2==UUIu120jdiJ&IU!^Imckp#>-JMqA)S&}E~)%fDY4SuRYxb-+H zP3=>{+m(p7P-Ss6eFP@X3waF#BcjsJ9dFepc^gpb@2#CQv&Ac=1siWShMI!5m~eNO zp!2fL>F5%;88b)t9;YIwv4Iyd)+%<{=bzfgU!b8zvB0*-vP*B8;$4aqSMY1E#z7bh z!y@rk;GkZ62s5_QaP$e(S5>)rT+mZ~ObUF#yIyu>hOXSlS2~%WG%dlvz$KmgocfIq z@_mFMHs&_DC)EqwEFmqk5MUT%5q zVr!h5ELuY;Vh#Zb?m;tA)g4Gc7Bi=_lMB6X#f; z#dzr39v0dP+BPD`GR4I-ZfeGG&fR8*(#8`Icjr}yOOE=*VNQ@mXv}=469(*1%%mjpCswl5!8Md&$tvF&x z_BeFl{`Bf;{8VG+2V!Ue2HMI^Q<>zoZJjv?<00MabA|+y$4~Y*99AODg(h^VDsCHW zzU=gkZWK557zkdG+zH@zFMWPdqlRWHw1NPjGC0V@(dBt;v%W>C55c1mLfbWZ#vtHZ z>W;ww^d`+kP&CEY(?iLV5S0@_du?rpxZ2d6=HViSl&^q#J@j1Hw@uhqKortOy^KUD zc_IMG2$^IP1ZqcMq$83_+aF9FtXLY#jV4;(`91+_=^*bKPF<8;0{rn@bz29x$bKRo zbGxqk+Sc~+yn+W^Uf~wko+*@LnprywG8zVXZ$^@i6e0UP=tBf~iX&l-U0cV}3i1k$ zSKMvo@q)KoRnCKqshq50Um9Nxv0Bs)EZF@6dp}Wm8zR|SLRG6umxJy)w2;6R8)s4e zJO5j2>4xxc;z{hNZhwjZUY-fc6GJp=I*?rto7$_LbC*yG><6x&_^SOq9-3r>&TjjK!NY^`$eeZ#Ox*UfHr1zD zTpVU6tu}hD@@pOSrv$)D7JUpTwWasSS6^!?TK zWZNRfq-Z*F$Z^&iFQ}-SUQ^v$YC1^6j|oC0ivT`I6mn^KjSmtEu6u1TLibPl!dI>_ zoRA*#t1DtTfQ2Yr~jmR`_nLYrJkLQaA|IfP*T_VqHw>swAOHuwcB7*V2KS$ZGD+l0e5_w@SR!(g_DL`iWVDM#1qZ;|%N5Y6>Qgu;RSV&pRL2o2qHk zRsXlg$#Bztbz_oj-=}cxkJ>e(A1~~O+p@4YauC@mHUE2?a!A(EdpwTQ`BcV83D0r0 zPH4Be^c6o#@#v|9xFi*3b3)+V_nEgSiZ#MZL8JR_n;ARWdTBlRbh!Ea16f5MKmYR|AIQ5ky4EhOedQSR zf>JSh{cSyL0HQHuZugAYaF2k$h`tT%pYF52eEx4BDc+WpAEK%(kItq+~mg9D3gTeWBj;Y!w+|){Wgm)+?Q84%2zQS;4R%+SeQw0H43<`V=gjC29Y;_SO^; zkESbm_nj!g=SLyf71rZ9y+`(Qfe1PTyByde=&s@?JBA>@QRtc{ zC#6c3`FF66mw4%}ccw&QhYj7OjCde@|Ia}3Ca$5M&Jy#l4XQwTlto;+=WTza54)3) z_PcjK)d?Gda}~in(5B=H;!8*kBkdJrKgrW`3azuZQ`JUSPf|hGSZA4LCKYPQ^rBC+ z=KX!|zb91e6Q16A(ArIeJ*c7k-C?qJ>q9QLB6nxOUZZ5=nTlO3w03K!-j{x>-%n!Mc46fkp-PaYE=aJ-ER>-nqV)mnXg$0_fpB(rE;=8-ami zyyGA8{#OyM;)dUdE%L2S_t9q1u4XxBXIbpHx_QQwZyLL1C&$vOusQagFB1N_S2f%d z$RKy?Q;l1e3T)GyWvFqaJMDb}wI0F*FGP@{9W_=otX(%TSSEq-!6svf(m1GS)A3IkS_PqV)F4=mx^a}%`lZ&u0J{%KcP|ZuD z1Ou0b!m&z7rV<7^mK|0o1XxHU+7sL(&@1-GhlJ(0esd=EaMPDNXVn3(&g3N>Fkkw< zsSvB1Uffo2U+pZIiOl7x+39k*E;IOfB&3Iyk-)VDq1~fHC0`PW;ZHjK1BGf1Yn=&9 ze$ZuVJ(7&S#%&xcr67(++L`qkQZSIk5D!<}T+wD$lF_4kBvMu#Jp>?Wfu))>k}~U z{CyWJ$n{Qb9)Y1W=lYL}elG9(w>p3RF}kiBY0P&J^hvJiI)JFe@wj2<-szw9M+KIW z)C>rJswjoI0sBp?n0p*QC%i&P?I8aOtVk7Ko2+8La3P*0-Iu;?vXiTr-}clxld@g< zx>k%^W5nhMy+c9NO0`IFk6FrlxwRH(=(gO-gZdMUdOZr; z77aa=BLLJX#G_)IWP5q9?$MOvrI9$g2K$$Knxrk8gQN@+tbN@HF?0 zE^tw;D$esql@4Uc9%4`+O3)>tQWkKAgr~H^Vb)jG-Jlg0V z>d*-9g_r?v{@Pf1_3qry2G-APFoV0}%jyqXn+p=qufL1@`r9adCla1$J$4?Ft?p5i zI?=z=q3=1wVUF#2vi^0;5qCh=IUy0=xzat=vMC-;d@H1uZ_xsAg@@^6dxprsza=o| zRBdJ+K|oTV_ApW$t@FKE?a1Q=bTn7;@}_Yz0H{yv?nfPra>Mo!$M;m~#9!mwk zKCJeSK$`mnf@M-Eu+h7O{B=%$6O#_Mqy~|mAdc|DM6i*REf3G2*s$=sId+D_kotTp6QVpD5w`9gJ?{E`a<&Nzx*SQO!NSpQF zI$3aJjryO{J46MBObo%Ph=F!Y_MyIMV!p`2Yc~Ep4b1}*=1HANb*Gwep0hg=Ql(rU zT>9|oymXPM6IWwyj#^DWz3`FE_Mm`&~wD;0wxu-A2K->lU-N{Vifcm~yd9}oCFF5Y;^K^DgY(~oLr z?%ArB=&P>;+}lX=2Ir)HSiP#K4{QL%&4}$`z!nL6)K3H)5ZbDiS+zUIh3`nqY5c1? zL16TSO2@`jn`NG%x!nG<`1u$1Ms1|XWH3SFhqYd!L#5NE>1hS>pD{L&H50Fl4;N5N zdi$jR@Qk{|8SW%!&c+a85}Jzgr@`{oFeI1x8IAhxzd|s{B5Cmh4oilpBts88lhwBh18G?s}t5RZ~C}- z2ETMZO3+49tSkCaslx5BMuacy_{`bJs5)`>L~+Pjw3pI9a@2`2!US}X?fMZ zNO|SaHi~7WcHZI@cb~eYJj5W0Hl}QU#4m0?MRvA2A6(jtXYU`C5MLJ?~l7B zU@&|K&i#WuB1W0XJb`=-X1aoCIIV~@Bd)r=3&RSdKJk};y{Z@`uD7#N(>$OLPUb13 zmrp!UVY*a4Elo{7GhcZ>YfLbxaz2id8%`K}D3~AEBRNQG^;uSiE9NaC$o;14hD#^= zNBtG;De&ZMh>r3;+CV`O7+ElXT+jS)lD1^R z;;vxgfgXz|6U=?4LQDa4>B-70?L+ynOOLE1z(NAeZZcY~!=E8p>WG&j9)t*b0{rDS z*rm}Z*KA2BYS zGm+0;0^*4KEh=XBBjU?G5UNC+6$%1AH#Eai**slz&(k-?c^7Y;$GV7>6e2M1NsHW> zh$FE4_1o=&B%>CaKWn^UTB3lMt>z9j$|DuLp1S+l-gT;YHjMGq2783X=KfC?EPG80 z!z>ee7WPDN>lZDLHqk`>d;HX-clj&JwJ!&hsxoFRp!O+x|UR zMnVt$>?yM9f#trZ6PX7%arw36HiNH~r^KvT+n7Oga(?5%1Wl7*~GoAZtIO zXOENK5GDS<7Qnvq*Q&Gf#!mBjwq=nM@`tu`E$2JY@HClO;+%2igoR(5YH=NX&85CI z6o(Uzt+pHrUP8>&QJ%RyEJiMy^|K5DULBNSXL~aJ5ZjUiH`NQ;##{@#R^b+uMZj1p z0X-X+QN+{3h_IsTS7d=6caN_iVZgBsv3-{BX`PiQ@nOmPERU~A9iz#Jt@B~3h{AsX z#eib0Sf3{kmQcUrH8S)Ztt`0-6@K&g0{9bVcoDMpO|fwImDB7D*a2v-odWjN5_KCC zSJ5g9hp~8ejCr7&ZM=#Pyj3rLUPE4xsWJ1Y1WGH(@E8NKq+wlh5{TG(*y{8v-SeTA zabT88fEl2IjB#Xd zLJv?oD=Swsyggm3{_wcoH$w3)nj#F`de;h+Ly+IbNHGs8`iKG~*Rqf=M&6)n&$tM6 zH7HWNj|w;Ji;(&!b*j3(C9agAFX-iJCRKgt{G9mXrT`%VI;kJiF;XTq(56Pa0<6HS<%?R+hKT_V>i2-d{qRM}cjY zHrva73V!sF|UV^FScwy(iaAEEe&e&Wpt`EVnw zQ6IleL;2;PU8=SfVfB1vFnP-TorZb&sEV>8q~sCwDH1tnN#u-5gHP3LNPh_f7DjN8 z$n?ksH&utP9gh!7Kxq>D7-@Tw;AUfpRP|K0iyt!P(}A(2=aXU^wJDvaPkgAgfUG*! zL4c01rX;3H6&GAcgi>({dF^XLg!A*e>;9)wW&y7^k66$P^YO@H%D@XV zbfJI>8{ROd(oakDeFK>YfVvSc7U|up_UZb^#8aq10Uncn$HqsrqE+(3AC|n`-@v4| z6mPNqq@M%lIU(!?c!#cK#6!vh;LQx0FELU?6wi&~-;Yj2muENo#O_`@;!O)V#l#6~ zKXSc}=(q4#3C-cF@5snRV<}l85`S}_FwoFKDe+|*(tnB~1T_ftV8zJ?E?9D?PDHUE zIvhDWZ3ZJnbYGG0Y)7EMTfSq%usnr>0#faBk_dy9aOp)s&w%OJ=qkgzQrKm zW+UFl4JeI2S^r1Q_a6`xRvImq&NXb7>Hb}AUvEqLT~1KQ{CCi@%w2oU`-m;wn(^2^ zSw?IMZ;i0iO5<_S^~dfDknQXlManuQn>XoUmwDd~a*47rJX#)HNiVtgc13dtG6FEn1e|@6vOocpy31e(PanBsX5hNT<~0`GU)psb$*%X0 zpl61%=v4(hE72Z8lxGBxv~6!z6=$@g9rU3Yyy zh(tcN%66O+zHuL0qTEj@obkP{v%H7 zQO$V+1fd>xD7|QXH~K?_20#DP zIPaF!$+I5s+6vew$fbY)EbIur<^YiDTZU$Y3>p9-b*-vNeW^ci&uNs*()eXR&oz;(kr+ufKXARFel0M|I zyeF1dp4<x_&t4pdhRJQODYQmuv5B?s5&jBpIV9aCMMQ+^DQK?||DGWvYX4-nZz z`EQ&_TQg2CDRnst$o94hrWi?;WB?(nJOpZol)9R24a!RlWy}jmrWE1S^yukGfaJ0} z$A|WWi2hxbmA+2yt-Gui7^HP(k^*F&*|PXCeotMneQ{~{;Rde-9uRZ!M458Ps8WRm z@txI%>&Z{Zblh&2KgV%3bNOzA9`xsf|1Lsef&_%;99~pHLTRl&W-o6C3vwXVII1`Q z%vG*rh{t&+ADl}q+QR^3fl4ZYhW|w;A0(3HBQwP`!h18tX32k`fNX~qOho1A#|`p7 z{q3bc`E2Hff~qRLKJ>>zWG5Dpq(h29Lw(^>z7W3_da<_1LY`07#;nr$X% ze&~X==uQm;8NQ3>w4mc7v5$gYKL1lhT%oh_0%!%$lb>tbrn|M*r>V11a-~<9t#zh$ zjIWVD8~s?-=+JK<9^B(m9&%}ZMlgKSL;?QQXBChawA>>G&&sG1`~@R|yzNw7pj&#m ziFD>)r7+ZktYjS(`TFPs)$RVr#|Gf-y;gMbqqv((N`PGd!$;6$S_W(l5qRY4JhEgARMQQsc7=~q1K$SMLP z0c0>O-rA!?dZ&tK5&t3hB5+|TY&KCT<4gabcMNeu<3+o(v`i%#x1tkGOSP#}^fPW_ z7o%c3gU*vh%on(j+p9QyueQ+njo4Ogs)BiD5gY!&O$%Pa6us6eP^?@5nJz!sN_)mH zrdERn`V=tgsnhpX;DNwT{BMLl-hx{(MgBh_W|J@}*rsc<-<~U&IOpIrN!yA;G;IPe zU`_)~FS+2vS!v!31XDu)KGW^bmD;twIqj8s2H9B1P3hLV+ zuloq3!qjQOx8NE!ZH`~B)&8C3+1<+RmyfY5+KL6Z2cjZWyJcw1JAon3&W}%Q;$@w(cI#3KMdqjVwc*v zsZr3%Yiu)+W3dbk4);17xOhl!u^5kE5Zgc0EK_6hNc3bD^<>8LKf}r(H^mYN>LIpk8(OSGd)MxPT_Upt`c>_%qd=5g7$$4j@DW`o z2_gPlsJ7g>iaX(1QhZn;wR#yv%GQE~1Vc(XWxIXOfzjB^WX9`5Ozg>o?C%V>N8#t_g`PBk9vWn^~XFS>kV{fU_`&EthpqjNAbw8~S$a&}4X zM!Zd=`#lf2jzq;3^3R)Xo^sXdd6&%PRcQ zGi72X_ZW0OMSHM*R3!rSPOU|U-i9P_^sFGBkOTb61tl?Xh5(MSLZ$QeAccQeTj*+c z)iam}35UUTbjt&u*}sbUOfb-jU(}QYOUP|u-{hM;Vn&$dA;}?Tc4qQR5oUb8 z<5`dtQ_P(I1k8KxyZ*aQ9bfl06o^=w2EZEJ541Ey`9auxHLXFs?14>msNF9Ch0>cX`ckr#whBlIXPcc>` z{~DkY*uJ%sb3iHl@2u`CV_HM& zW6)mwk&zd8qbfe{^ycJK1dy-&v8-PkZ-_U$lE(A;j2{R>t)ilhc;dH|&`bEgki08a zcbfj>@%0O6${jca3FY~msXJ?Ms{GP#7$*2#YEDBg8X4K0A*ED}VjUsJvWg>~(aXC5 zU}3}KTP5_1oOR*fo{j;iu>pl*i2D|y$f@l3O_G{>^R7NEI+LWc7 z>uw7j?LuWplT^oPomYRAs(DM)rt9GByJ?2aWWGl3?RyD_>w|y&hr8CKW%av{LUo$X zeUn`e5`WxF0bLkZ6iYvAh=yl^r}Jv{#V*8NA!e4{7y{Jpe-7j!0JF6sWQQ9jPQ`M? z1L2Oq`o*k*`a;K-`>hmR`CD9}d!PMdhL()~%gON65)Pak;F~M{%Es9z&L${!?m#m2 zP$yK2gv!$VdopKcOim&c-}B`U?LR&>md3N`@@Km)UYm!6QmLmt>q$>EAwurHdM?9ZVZJ5#U2l5hZ`JF2K>l>^tpE>M`}KT(Mti zokXgB!Q`t2F*ea1OioJis(GuBF~u1_-{u3Q)XIZbPCkjEsmuQjKYPVL5b1CD8~2O@ z3FG4*6xV#~`BI;Q(ep{l@xI1=GlNSG0o;y8J%CRR^_1<(==;G>{L)SB_}w@TL^$%F z{W{Vi^=KoXGk*p77}6%nm?C&Yb)P?H2nM__m+%F?i3Ym=JN;6RsXl%bW7Pf;|M%v2 zNDLL&fK=-jrMG6#Q+8RMy0>ap!0ENWeZT(|MR?It?j>bZ1#<6$)SL%l z1?YQU*%mUkQF)_hldpEyjfzfpGGIqcfk%0rYKqX^BeRw7nhw0H+c^1`sBc!tm-m}R zrLYAFk)k63XDZ|sC2{de2-3OBNEoPec|Q7rTCh{@^9H%$Z)D(24%yzx2VIV_Ay!{9 zT^c-M{B+0bIUbot#}O8?s6cGP(61cX@}&XB02K3K%VKfueI(yRitpyX>T{6U>+R7}P)&kMA1-jE}bII~zu-I8V`@8~VuQFXwXl*sY} zOkqjjqk5zOLMvO1BM{uvZ0}6^m5H__{GM=D?4A^S5l4h}d>Po75ypVEt3nB|z1KR& zV^3zLjrpKV;OQIoG6Kx_$KnvTMXJlo$&}nA{F_OxBd8WQpe+yM(QVq8`6ph%LtFpF z;2m=Z9$o_PUql1X_FVM$vR~?gi>)D(nl}9|?I9OUa*B<4K1?n@NhL+;wauE{@C2#k z5h{|4$y2wV>#gPftkP}Wt%3-zn_)jp+bGdj2DKT^(=3R^?}mgv)VJ!S`G`#?+iav5 zbyQ4Y841xby+I*1>EJQ_Pg1XPzshr*NA>3PLmHIhV~#N;z|pAb?^kWAtEwzE(z&gW zwTBvd0ACPG@|=#qRe4uo``@eghp8k1BgN8Wt1O*zKjBI+k31To0FlL}ESa~CjM&Y4 zBKmQSsF0Gac6}PZAE&9^D6PX?76kacmJonJ$vl1TqeX zC+sRn7-y&n@N$JkD4|@PZ3f8ywm*oggom?lA+Nl790{!XQ!K;rH)%ojnw^Hb9~|I% zoL;_~Mjjq?SEik5Ad{+Xwa$d$_k4MBKL!I1ceYgmOnDC|a<>;xOWYn0ef_Q>M`1;} z8qq*u^vD;e?jUwQJfut)l}iXQ^WuT%$K73!_D`}org8EdJCYY)kEH>HHhK|5Ae2rz zWkC>=3S9;hEoV*M<``qRdZqB^R|W}i_TTsHLK9&97mqFMa|WfdBV5tUn@aRBN;P9C zHR*d+#=~sw{COUWH{y1z2C;-@a{0PWUrOf_FgwnIgB5AhlBNAjFVAM0Q{64_A`E%z>HGkJ3kq5`G(F6J}#5 zE9 zlF0UBtK?DQFdh8kG1p&3Jj0cjBWG~ok_WdG5Mp{Rjv0atuEMxUJ?GB4o0NPmiLgGh zJ){9jM->k08Yih4<2t_-2D~TRqw0rMGl!zp34`8~am$12ygjR}ImX7^>(hbiv=GJ& zackBVSZzk=M~L3U*kP}gYL?Ezdrt$gA65$BpkUW&Az9<7gZR+mLWXeUsrY$(1%xBJ zS}(eRblXc2<3*%e&X~#VaURjIN95eqvbhMwcs+aeb)nYQqCfu7991rE^No-t%^o7( z{Pp|%Xa(<$a8i1m0yaQgTfZ$4Rky~WMOgh1>DLVNQ&s+NFX9*AZ?qVkc^Yr<{w24Q z;h`^tD}c8n8W>|H+B69B?d<0BX2h5VOP<<)NQOw&n8?3^pE>3_hwj#*xmr|rS!Na| zaTtBiay_apbh95w7XI$rPe*ss^5ct&I3i7DUxI8E?u$-_l6}p&y2Z z)O3)jDSbmQd~B7FL-auu{L^R7^B4^D5EIs?}_C^zMk5GBP8(EqI{C<_Zolc*JIi(_&Lutz)q6C_z$-eiS-RO)IV&*vl zT8-#s8+-{VZh#$QEpe({i=zE#(^;l(@^+BcHt(NR*)wl9M3{O*+_*M#;!vhk7OJ&m z-}Zyyx9t8V?8sp1DDsOXwpyaGmKAGQtnFksx2-7bp}nn1HaN<9X;^z-Iv;!5`nhkK zp+Rl-4_)9L2?Ms}U-$h2iMh&PZ^Cg0Q7*DTL3F}M)?hECGr6d)-fU|=zPoZ&oR3I_ z&IB{0o`}V;^PBJ>QiJ#H zw|DHNR1zFZHr$vS{gzjpi#hzRvQx{!an_tHp6rVbf?l9zSm5mo1JY4Ty9Dwm9>m=c z<4P$Qb+73hmqz;;Fr>IaU&Zup3W)UUya#i5<~pbkPBJKLJM{VzwAJ@RnfLfuN z>PpS$9ZPpwJPi9ixm=W2FD3K~mD^A$aIM7D)vU;%!~RD_hGxb?DiW)AD67|dYN|!k zNBB~sDa@x$;9yO7E@@2}z-dTlV_Af`C*zHhS2(y;jU(pT>lmm#Z616^%{7Q5Ehot|c?I5{G-#I^`vC`8#-k1FcaLhTGH~%kN780j>1M(4;}2` z@jkL4-JeT}O^9Hxh=TUl`63rBz15ROytbPxSFq~N-KrO<)vk045V__sa7hVkU?#;X zrsUes2XNG9$$xycpm3p@tb1K+>QP?xWY5JF`b9JH;Q);rfAizo_ zV0$u8oDO5W_g1IibJnUj?ky>S&TmPEurm-fPX(m`9@z3xtKYXbE#U>(b1lyo2e%A3 zgXvgGD+w)|Ppt-N$$O%On`h+}^adg3ek(~JjIIgNp-Xj1@M=TxT~ecwwZhj7gHE)sdj$0m59jO&)wNWC0FMT2zPFkv`K!c{s%B-HUs_ zM!*u?Q|CBVwhhl<16H4w9^(DK79iai6C|lW&=rIc{`#-AvI3?h4iNI^_Th`(u8I%h zc@BMep+U*mgwk)?dNG;)0FRZc<8n5rt$xcZ#Z^0|g^b!LY||h(gIQBTKddM+R&j^S zVK**Rj&QUKlcixYD#if=mQzPD_I*B%Kf9d4(V=@{_gv&_4^0luDQ=W&p!L?y^oo~AyYvbfHG+D zeJ{4EvGg`^V~$~@bd7jE^%kKlpw~9#AvGqYpJeY`Nmbm3xz)&aK>M{q-)gc5haS zot(}(h~Ylx6bN8v5wX0)Ov801osr&EpS1uJTKMMHEp{F<@mJVh{Uc(UJ6QX*?oH%z z{fb=%C>#+q5BU}c2k2kG^1~Zj0N$*4;>Yo0MK}TYCaZxf^DlHQZYYu1)8Fv%wk9@L z`Z4jQUxH{QSAzpj?WkPWpUe?W*2;HAIzw&lvAZHac|*Ep$~QOCIxIgkkN!jrl62@4$SVV zti}L8OGqG|M-9`ZiY%Q)?|l!l-5=>@GW4H_7wjI@uKruVUn!vJb@mx$;bVCqzDIJr zFQW8?oDngP4toISS52bAMhVy(ooTifuwpAS2g!ZC#JQxRIm;w3CGcpFx;i)a~$tdl5n@XT5J|S~hwt<^c5KOI`sB-XGpSs9B#E3~l{ceCxJc zvrV|=NpjwI^9XXQ((tvADLK||5GpM;{4DDfnJdy(4^BQlSOMtkzpjy`0m1O5^y9S0 z(7mlkEGj|d8a4a4=&H;Uhytt|@z!6Ih5Oi6+3*imkUL2_8Hx`-8{_H;O5sJ}?WB<; z`!l_AUOK`*GWY4V$FYmMaeZrasZ95L_Q-6h-Ni=ZzO~MRuc1QL`_3&6QF3P52%zT_ zV1U3-{3Ap{sgx;h#lSV{XGdODYeDQ+FkJA@^z?l+z*)gIVmj#I0 z*U_q>XF_F^;bc9a+GxLt3Q1gaKOu!|;3MDUs(s;?#^~1_v)AIo?FFl?$QF;8&x5DV zZ!^|e>9j>GM~R<&HHlan7MC-pPQ%=0ZyTgV2mWhbaT+#AfE$ONjpe&>{z8=TEHk_T zWV{~J38i3;$%0=up}!C}n=gnYlMjRMVY&Ly!z#4;BW03Y*5a1|R5Z-#3ePP*D2IKP zJfvtjRPhCV5a(Ad0`uD*Y7J{R+IJqcMikd#CivifqDQ6GqQ2bEbTjjkrF-sjJ2O{I zoyO6|E}U2|jLzHn4E47ah5M_aXB~tjNx-yy?nxeczcS)8QA-Cnq0LzLX%xpmW|+t`z4W+c!?YM-4tUm zS?R|ESy)onUObXAv6?Q7S!2ZlgN%(pqxSFQ7}=+D->r-&=`_G7c`%BqZrdmf0z0?C z=IXXR#XR;8u8_>hV;_`2<*<+g`oy>oIWHRj(xfY70t@7Bg{dE)K8fYZ#8Vh=J&&A~ zXO0hjoHz0)4JIh%23lM=F*LIPj;Aa60E%;9|FxIl@9W_gCK~_v8*ih_MVjfC1FG}R z`zDIa#?wM$+pG zzVDY`-v?4x zKI3K!%!U&0&J*ZZ-DXt2qF7@&~Lt`iL0P+hfHb$wawKk=Bw}$80V~muz z#wS;Ye-e2#7M1IxiQ1G{x_M%fN?EQ5WL4jQbyv6|@)2t*9m@8+)A)}!?g#lk;bib~ z?Pv0A^6&rPj7?tipJQP-;%{5W$1i+oCJd~aOef9zzER{pN?1|$=AJ2NOzj*)4pk!9 z`h8lL^{e^pGPQmHdth#nV{p;LlhM@&W9a9v|j*;X%Y-v zW?iqLN`w7z`2oCm@O@)?x{qrCcte*wU`30iVKcnts+X;~q5FF+qmN`;k&7g;ko?P^mb)F$uLNbGf^K?+-YAUnIH!h02p0S6FyVAXY-4I zFuMa#1#YA5lC%$L*`XnD0wcd{Dr`VtPKE+li(W!gUycqc69keg(qb<(90BSm{%3}d zrfv;|4BVdPL|%mLD>A%(AKQuVr^KKv6+e*KA57&g;ym}ghVUGqPml85bA${O;6a75 z1!adJPF^#dg?r3}QHd*?(C8Lkat&9v-Pl8)X$n3M=1D1(Q5bMW`pGrALF&DR4utOx zMTq7Rt8my1zMmpRi;HDE0dT=(`=(IV!f-s1nM?SH!+VQHm#HfYmu6>M#fKv_Mu#e4 zmFLqGb|G`T^2F^^->WG@Mazlu2$>RD=*pELR~J+9L?fUK1wsexQ~H;lvs7(o*XV_X z&#jU`!)#qvJ7Fdny^vV&;^}1v#36ZmXK6!z5*4mV7fL99ET&L9f@fCSVdf9Ki*24| z7K{38+ka%INke4dYU4vewL-zzrifm13NL*;=I0vDQFtCbFzH!&cW9Gzf~Z@dKUl!ccw#xU!+IS*!~2&-4sPPO>z7gGCa z?i+AS^Q#+eDO53&jHCOFQok99JA^kQ>95bu_gOTt%H7>K2zFi-c%}V-4x%2-BJTAb zuFF;^uux$);OFq_VTxcDrDlXEy>2qgu@>(B-{7hp`B$`Y2*kZ$gBIs5BIiGAnd60? zL>cXa=3B}F{AIVU0zr>8hPJlRg_e0G(((IbmV1M#+H=;8R+23U{|1)spKZBZblY|Z zlO^4s2skJ@fji!|BTzaEZmPcZ6hRmH1E#h`D1abRnBUsUy^hA`63{>Vr#u>uC4Q7c zzv*10bH#ohq}lrLPhP0b3!*WE%^PTZNeqh^QUa2hA;JhU*V*>fX_c(@(zLs_*0U#P zif$tcJu9ce1}E*S?1g%)ep%~LWTxvkW%~Jx11spnph{jOufd$Ut&edHt-HrZZTj^o zK-LWR$h8^B1B)mEU8{=~aXv|XF?p&>NI*a(WpKA%_L1__-#kfhTum4iZ(%hbwE*@L|k~ZwXnSk^vjQ|g^=v)Xrc9Fmljw(2db{0KM;>= z>Q6!(z64Alc&Gx2uMN^VVS8lAq8N-C*u_#xKz9ijeLtsA z;uy^O{xpO2`(&HIthaB$AIJ)sWVC<&85|~KpB|`J>-0}1>vn;=#ApWJ|1h8XU<~+8 z9>(s+E~PBsl3G%n$-UF4&2Kfd)cVp!^Da{}0B}GyE@H zo$gZfwIHG&F~+;B*b4Bx;I7e3I)fNOhZtH;jiFENbsDKIZ~?4YNbtUG6q?g~u-PMc z0_5b5uO#C5nyy0V;9oX}u;=Iq`^PSOg}x83fjQ$Mh?69Uq@CcEd+uBU1aF! zLZb7a!{&tQr}V48CBfxfoDY1iN1aLEc!Zt~i{y+!<4M+pC?ksUb0|!R%O4^|#}d(a z)W^pnduxNt*aZm=6>^O&z-|+tV+KX6psVVfXd3oaqG}|>RCdu5sgxzi6{sf{QZy1W z1VKVD_ma!_ubP0ug5}8*r)%R23PkDh52h_Y`HkzDoD~rz|H6V61mP)UO(s)jJxuYB z9Nva*7n1reb+DD7Ur)RMcY}sK-A>#eBCRD+F<+#C`&flqQ(^$^QdM$ey}?SQV-xY$_sG{1z3naYr?|D@Csl{06 zcvWNxE#__BzmQOmkZd)mss|e|(Qq~+^{N(UmIqP7b|LiZ}+q zZt*DKmtnK#`_wi0+=E2ozSX|Fxis#OMoL#6#Vdzn4Ct2+H#=8fy-V89SBs=I6ZXTE zHZSVtzThOMimD!;yqJD10qty2K_(H%UJYedAhicOMpRCjy5}=l=qmcWT1I+)02#+% z8voW2D_g=MhrzgK=q0LmWB`P`@PNxZ;6?mG-PXF)+XNuPL)R7#13c(94@hL}zLTCe zu`JhE7wS!DgSlo>yt*HE~enKWq<6cLt0{we1t80LDrzF+@(po++&$AkBY3ZE#rU@RY0%+i+EaWMVMQTQ! zEmEmWQbp6(NoM)!#=7QHNMxQQy}oR$9$kuCf3EvJS}x?TKR>io11P-L10&jh>OTfx z+nPY8`&fVERm>kV z(t!QYTNKrPIsIdN6H`x3=0{8Bf1|ick1N?WHRj~T_fGDd>P2D)`YTPzxVtQo5VdmZ zV(;Zt7h6kipkpVqd6ENEUuD_P|6%SZaIzk>+~6t4v+Rw{w}8~YVRC~=?OgI$1&kUB zi;x`p7V|Ji{&E#Un3VGbZX9V&f~97Mx^SjuWiVn$@x2nH&=UY<(e#4hE$>#jXi;&B zR|`^egboaT;yjlj=hbqPw-;;fp(&m!mo`{$#i!oNXqN#*raBaeyKxtto`U;EN`MoV zSRmEpOpM@>MTuwV9k8e@2K~DE%@?~^%7*&ck^@O~=_!-s@GxwZblleZ7k+K+WUWC) z9I*j=_yN;mlKs~TIN5JK;ISWI5n`mHR7V{k5@IvE#NZjLceJN>=+;YO`PgMnoU$F< zxpwx~%SPlEf&M8P98UW)KQkHZbXzJoCWDSt>5yjuh0^NtR0o^cu|JW3o4iqj{`%^4 z|736RCYTZ%Cke%Yr>2WYbG%WQ(j)8YZLn`h(#BYr!wYo3c5XtMz&UU^3xC?pDgal= zV*2;H^$4_G)jskrhg_MA|6O5p4f1|Qpw|7l3+4Xlh{2W1x|f)HRZ3Bm4q5nI{^3KI z!8Z>K?K|9BzC44IVBOfEs(l{_cSYQ< zBxT}*7LuLwVJ$aQb<>CRJlGxn4j(0rADw|O!Bg1+Y4!_~GbMkbcG-mk$)-kcK176* zM^Mu36Hs@}I8qSUF8wZc>8Eh$fkBnwb0A+%a$mqDJNtcpLxyj@8xYghe6Yd_maONN zA~2>vNw*UK#6E$O+ac(=M_?!q>hdvv*uzZ#6kCL@iKd`&^>UGT7e!Bam+6K!H_X_BjLemx^w(;&<%zwL+^XF8Kh@{CDylXz{*Vv!#aT`kc;g z+dLzQY&Rm{Vk7!*;RwuK3~Tu7W^2zn_f)@=Qd|G=SbyK9Dw*}3jz*$Z8GA3b;$}T( z!8Ph%uTO&L;+px_A01GwZC5ALbcer>U{6|lpW}~Wzmtd6Fn00QYDhS#Vdd7;8*|>` zwD8nK6NP%bt3Wa$zT5PVT`?y|<;u}H2$V_Er`NH2rj;34Qf+84V-4s%-48prNpXeA;d-sVe@pZ8U2OI0<|s=THz_G6DYX>$ zIZe%06Iqp}ZKslI`b#CWplU=W{K?k6N=L!zkq0D9>uX8;pE+2?m^FH#bT5cJT|M3okpgfM0dopPy%7t>-$};6!{c5t3`N>o#YI4lMlz`stGnr@(4vp+KT0$gH_XN zvrV6tQoiF<5<_Ty`lL$yICak!Wf(-v$$_+n&Wpn=sW6!E;1IYi3~rkavWYIJE{9AI z@~xm3-l%+BK|dGz$KXjcMin86qOd2DCGSPN8*Qtm+V?tPxTw&57M%3LSHtN5C!3Ef zFcqjj?~g?aKYS)Fha272XIx~^~k-c(_h-Me4w6db^+>T>nD z-&>6;e7ZQQ5O@ZQ8)X*r*szA#6K1&U2`1CFyy^Y@g%ML%>wtcR8Ktr>x}r!(KUuJy z5B?ylfvg`W+9<%oHs zv%?R1l#3emmQWLx=R`8ZkM#Hh@Cx`{@I+X-$_1E3v!_Gl7Ur$v5VXfv zAN6QrU*w4_Md51Cw&{!$C>m_jYjlj1AY_jrY~N)f2f*U$UtyAq{cL^1nLoYSCFX?M zQta39ghaUo#~OWgZJDC9)EJDiF{|B~!5DgoYz0Z&=7216B>Qc&5?yUP%@Q z`#xepC%c85(shC$`PBoyucc+{BrpMz5NBdVzlL`NR?UcR`+wB)s_-a>hH|mi5ZIbM zmS^bDUg20LGMlRCN=?%8OUYFmgxYfWH?7%JD-Vs3DA#%^ap+l~0xZzb^0%BD3~ETN zG)eu_J`YI{UT%11Z>L;=>Z~0bX*&q|ny?%}ZS~a=(9T!6hwg4oTut{tHNRmR$jLju>wSa-`xB2rvBi6P-7(R`Xef(rDGkF z_S3SAkhs3nK0jbQ^jPJ&&Tz^my7&F*IL~}gIk*o&I@mq)^UD$M^dV-!3>f9?L)t>ArvzQ^-8GW; z|NKTvhPfx|x;tgC{jI#U<+_4V7X zgturmdx4ID;vXqXXn0}&Am)ha{X>o{)j1+$6^%3-(jB8}Uod+Iv_RU*YZB@h9aGM^ zT9#xuhaX#jM}FbuI{FC*-F?(;qBc89C23#0QX0SE*ONRYIO}ShBPBKy)}dzcpvQX% z7wZ@vEHYkoWJI~jF*%@iisf0h5Cj|@)g6x(k35?$uLK#kO`VL*ZCy&N})RO*~UF;XIcJrpPbDKXd5MRm6Uc*ultoIqMT5W?VR`=u*_8k(iws+i3E4+7fS(9*@IBe^;=q%kRc87pP}`=CpUwJ*U*a zD>ig9pLYT@MZ+k2He|z~oqmOFt{LWQt+THdow8X6+Rk zpvJX^0zMj?UBuj^$=*R)q`nT5o`wsao@V@5D_J2X4p0$hC3Z3)&{Te*KCSW;H#|Ss z`}W?K9)!(o_7ooMsHb$XCaw$>5WHUrS)I3aJ)%ZVTDCn`4OT))6ZnkT4`;GTILk($ z!5=v)QmeIezgHSQw*MMmbTz$$M(6UXoOddJ9stsrJc*nq(18TyEnn^Qj3Io^yHRK9d6C1#gh$--DG^z*YWE#J1X_VBQQCgoD`6|OA;z_Nd!P>K1)J85_rI7Fy^Ah*I_&5sXTVE7haHU9hV}Z zf}d>78pmvC`ieMIk7!Pa#e*A*yV@0Q`IyRDca@neDmr7!7hKcBlKb?QHEWx<3D2S| zykGsZ`9O3a8Qtc(??$5g9lt4rnxsan(9ICPul|~uk}jnpL&bg8zwKtHrz;k}m1t;F z`rqhdKqc_jn(VLdDa+$jG5&|okZqhJEl7~+Tf%j@ zEq_#O%mi|xuz=KN{RTi~Cl1PES#BKw53C(5BWBvHO8 z$>K+BWu|<-;zTeNtPywBro8Gsj%;KoI*EG`FQe@B%dYH#Jtrp2 zrjYr#qWvow0ol(l&$Gz~>XEXF65G6V*mja0(4%w5P$fwV{MRpbH>zCS7{yffi(7iW|Hx@-cWF8Vv6zA#ODV`15 zpSTtIYg?bjE{ystg<_SZBfB=I!L)euB7UtTC`|{8oOT*-+Jt9En1+F}TV9dfxmC*J%Htq5y%a@wXp_L3sS5Cw}7oTm`71 z!4dD*zn|eBqdHt}g1D3eQw#X~!-lDGu5r}n-s#G?*l3A}$oZv38T({wOZ7`Zs|+wVL#kbTcwT)sh!4rKeHV4jM06(KfdK3#2|D zA{^MTA7IC{)f15JcyD~X8Z*}Z7*G+?a5rl?iU6_sTK|lsZY(#sumG%1{8nrYDEl0m{`@oxwekTjWp_HI6FE;V@ z8&qRL%xXF5z#k1myCeL6uOK}E+I<%ri{m&d?bT)xVSdNc^yqYjWt_L}!-Ge>l4|!j zyx~Ogx~ho}mVQ`lpW%;fHP?Nur>sxc;?9>~3KVtQ!Bg5aS6)UtC0=pY>NFm_d3ByJ zCA#aPJ~hb54Okxu`2asn1mTV?2JxN1tTW0ZWinI5d7T^CO-sTfUhAOEf*41TSxL;q z6RpXxW}R{zmr?%iXD_4+2POh9Gt(cG+rEbtdM9W8yp*@0%t=Zl6p%_MHXLO85ckMn zax=Y3`fI#N1&oFjHx19-);}+h$8@d3KrHgKYfeD+JcE?Pt%~vJxh`DhbIY6f?R7b! za@E%_Ry~lAiS{1p=ciei#54RiCZ9wYmA>QEJk93Qwv4O!ho@d&yybL&7q3>m_jSfF zYZ~TQZY8m)MC3bMMotL|(fkg{qTF~YJed5`pYMUddK+6nMZfwvP!A$ydtVm^Pde-2 zcjvuWw$uD*Pm}x+c!>*Z;R8W-O-OpK3}$f%Np~f)}Am_jb@! zVMQz|@1tDoIHi^J3i5s`{Iumb=4&5p(;~`|StkKW!a!R~9UjF-VLoQDx%i~`GiEXy z#UQfpP5o|s&mezO#t!&S5-Ci6r{#BYn^RXXf;aAWsQZgLA-@m=BQY`+w=9NK_~XPw;1D^~NOZX|q|aI`(51H~KkJ4I!S znxo2xl89$yHoZB{gU=>TXyx!z1_1dSv5(yK_XI%l>36E_P zyEpxvl?#r+C12IsS`*c(_@{pf^`&JI`QA_j?*slMksu}G^PvEkyiyK5KB?PDVEw8#~cl z*Qe?)*%(|D$}Rj?-vK;z-RG8+g$vIpvxDm%@=;+$h;O7Ql(_4gVHj*%KOMS`%l}F6 zGVuPi_@fAwXSe^zgR2?}N>m5nf5O8FEBM#A#ZjC9d+ssiIQe9GIf%4I;=-tB{qV`M zZC%Pyc}Qyd$%^gEEhlhtt*T8cKCLDqw5|)E2(I%}UcRd7s}iQN7LC z7jpf=Ia}d!dXNhG$^Y8f5O3>(;@MM3 z`h3ds?I>QF;Dcv<_-134=xJB2qhB}oW?B~aP1zzvos2>!y)X>sES&E98y^zk9cQz?{T*0ncenY#zni1HdjG~DcVhQ^Bub}^#lUEj`x%x2ctKZ~BN zcKcjw7mgb%qs6`o_|8N~RKO$5dHpy%O0PerTKO&D9pYGdbX?YRq_Cwjuv%4oDkDpt zy$k9}(iKDeu_h~eL;pr9N-JSgN~xF1NL#{Hu+`Z6Ng`A#;aR5vW%38+?r;wbPhLHe zSCqh$$VBDir!jorgIdkr%qvi6cfU?;XG=2zVLyBUh;_BN(m?T}Sp$;+Ft^0uMYcX9 zUV&a#11Sd`Gv!v_T!evHD}dUK$p;*XH|81KW7R{E1fCnA`p;eFvn_Dl1d>c7SNVK8 zLKgP=U>iKltaBHjuZY<>vxM`sq7*Wku332P#O=vYXUw12jrk2kVbth!z3nFQS4 zgv1}OkJb>8=JT|C6VWZl{oU3*WBdHs&8yo-GZ^Pq3+Dt(|6VRWJYzkqiU(THY#n4Z zJT%R!w%MlgqBEE(*`UQ!fg4~UBv3Nb2%eXo39vj$EJ2ZWm|3SyF*-fjj}lZ7$;`VG z=BcDF-^gS4fl-}jS+TMe`7#56+6k@l} z0^=mV{F332y%VJ5YZ3LX#b!xD0Rc#at2@^Rcvv;3`VfNLLBvTiiP8u)O&YN~mw=VDU_}Uq@`*J#^i@j0^oE`ZF?FC zuMX(UcRgeGWcH|$vKN`N7=($^BvLu;7x&8eFDndznwFm8ingfIP*=7iyu=vr3 z-!FV*maP<&N<-sF1UAMe4h=5ePhEQM8q3S4VtvuP#n{U>O*kK8DIj8)@=UacPbKBq zd?gFrfbvFiEb}$t<`6q95Dr8MiV*+;7yd_G7R8h0%3mK;B1>ZAxCRF_<=Ci+s|a_} zJm5U>II1kdV9+vF9naC1?CUR`2|jmxTdjtLp=N*cLR>||OG`aO8Sjkvm+wY2r}wSh zlvJM{;Q4!({+Mk$neUhKoEv1|D9`4B@*3G~stt_HxF&kQMfiO$I6TuvCf+}lhdYOK z0)cHLjmYcEs7@(+WCMFxu+CW|x-oRf;2kvxgAx1*dv^rwR>x|+Iac{;f_G1u6=?R` z+1E)P8wcLD2qU{N&u%E7rW%vU=);oid+OF_V-gIm9bU1L{u{8zY7|AM*}Ga?%dfK! zfKBx4@{HwCsrHYIO(rrKT{2vzgu6h}&>7BeJSzI#u%5A#cUm85je>g7z!ct$d`FZ% z8q}7rkFnW~ZkDXGJXQ3C@5Xv-NAGujrL7|O@mQaJVE3{%+KvTQZ1SNEILpHccj7T6Sh7GFGvQz5SbfrnZ!`m_97QYi6 zzs;r4^3w4)T8M`3^FaMzra|La+sIfDW#74D+5(zVEFNH#M$*$2h`Ic|dy2HrjQYL^?xh;k5R!B%zVsQ3fzf)IbGgE4%4id z*P=zOC=kG%m#kkKvooi5_M1w6E5tFqRrw;uNVg0y4qqgp8@-8HcbPNliV5K2pS6a* z-*TGY@DmEXcsVsr%^mTtlx*jkbbdvknceLrn{lQQ_3G95C_DD>_S@U4Ks z(rlqfH%$6$Un8OK));q{0s zk2+SWY6p_9sNdjz-6keod4)MT7iEVe4B88{13N+aWr2Kwi8ruHdx>0^Qw2-6SXaX_ zfRt2s!z{|d=XtDUh-m$S!4^!e4pRU!!p6g2Y(KB2v3Xg0yCldq)hmE{ zh2gUB9Uk#Rr|xC?ZGP33$1-^+?#4=aXgm$cG87Ptifal)(w|%D-TkAUAc$d+b%&VV zyZEcs(aSt|em~IAM#OepxNY#buB%k5R^#JbjUTHU+!*Wfa?96QT~)}U67p?()wU9I zIVDP7afV#|E!T|f`Zi!cytm}65Nhz%|7!J=iW^3C(se%v*z`FJFl$GNha|&(jep{2 z^D~&}y2#Z(ElP>c(*LC0m=)@tW^xHI(bB~FOZ7Ob)%dwz`*?OCzp>6lGz?`5+aGcB z%qwj=sRD6()8MWdqA2S@#wz3AhpmJIFNg%7T_As@<4cxL(YzX-py*oCffmsv#6qI2 zNPsw>BSDX0OCfbwMcS`#L65FyN(O)d_$$D^6xDYT8anK^{_>%t5_Nk8+ZVyIu(aiG z^tU+vI_(eS2A|?a_}xQ!Juoe~bY^KEsXUao5*u)FY!n{7WqF_CBE4;f8Ip%k`^HY( zyy=lFcQp7WJ05#jdv~qrs(0`nJ~n=H)?KJAh?#lgUNPQ0{`Z9AR(MsS-wl?O9;C8( z3U8$87F%pBhu}xv_LO&eS&|PdBR}2_{J97Pbyg9794}iCtLvfX)X+FR{=`oNQ9(P-K{p3DC(GUhxZWp!Gulbpv@9A}aX)&U@>=5u5PEXjhw=Pl_BjegHa% zKtGbW!^((A-wjXkkc9bn-TT!dScK9-v3pr}J@=mZ1t6%(DrpsU(DsEt?womh z{@k93=?7+#nGqD7kFi&wpn`pF`7ztKxr8I#$m7-H0SNNt?T3M7XOoC#Z*4qy?n-fN z*&Gh(o--arl`U?{wh6QHiFr4Ekx$CXLoWw5>61?ca7PI$OQKN7t?-}4(Akmp+(|Ve zm2;5%m;_3rXI$pX#U<4|W7q4D#C_g>7rnZkI*74Em&?}z(1oG20hbeI7RBx7^((CF zSc#7VbiWHkvdR{FT+Hlbj(}5bymi~Nu{d-Z*^t%NUD+LZlFOqs0Q>GGijp=?;CspX zHj37tIdVbi>QRrgmG#se>5RL(Hf4k$9Y6Jgeeyc`c|9w3f6$36QRCxSGZLuF*(I$) zs=gP6q{O_2pa0tbm}1UK?~E=;g>?*@o9G>jY&~y6ZU@qL`s(ZaczWNo(<^yNv(Xhk zGJx`rC=Bw<#7N|E}i2z1yIevqP?{+;p3lK$Vln9^7%VF|}2<&n$7)x61 z4!;@AAByed9kTj)7;*0}^7y5g*zk+YC|4WcK79tcJ~=snC7LPA4ese8Lro zT5TILp(Qk|^J@>p!X3!ldybf@Y@l`5o5@$u`6cKFR!PBM zh)7I+ScTe+)wF~FgZQrOeG8Y{oBrrZG1S9cL*z3fz4?yUq)`#P>~v%SRi>|xVoyNz zZ8WcyDDPTV2!fW@*KO%>f^vWqLK<4l-g^!~g;#?u6>GNZ=&Ap_?%%Elb)|3Rg-z`H zPSWWpr$)d+>O>Y<1FBe=NFm&vC8YCn7(!pK0f+WO%Av-vEIl{QYnB5x3EIO51$vxv z`S#o=`Z$ruzMph0`vZSUvfY-%rF?T!-{@M>8d&DNp*aBM_h(%LZKJvkS&5OPmjMi# zkUp-{a`!Q^^Y|64o>}JLocF>=)w8cWXCm>C&4$bbTqC&YASUSe>8xcbXb~|=Apo&| ze}DC7=Z+#~(O4$xB#|=3k047^g1ZSnZ@$bb3%(t#fMGX60a?ew2OxXHa|n6G!PYG= zp+<>!7VVa=Wl-As=JPx(0NI+DqR?NNaMx@4d)>w@M*{J_-g}+YV#7*0k!p}F@n1`8 zhLM%ITY}q(uspbXn9HWdV?bGY=kMU}*&1hwqw@%d?NLj)E6m`>)!L>qHwsJRYX_!trrz&0Suah+0|DT@-2xRaXi3Kt7* z78AzPQJEg)ds~^=(bCuLa{RJ5CO`UBhd7#3QvT!+Sn*KD+_O0BpMeZ!fErlFl}Wq7 z=cvWPlm;XXwtOdrEbhF4Fk9=e|FB<$Jp8f4k|~BF6O>P00a%vKTO^aw^qy9CVXmKo zj+caG8i`sOq>}&s*Hlb{d?znbOy+E(`YnR`@JJY)*|l|L1Mn1`A|D=a>W$!O?d57y zdmo+Mh4xg}n5T6$BXIi(qF0Cd(Z3q78?PXwCJus z05SwbT6gQk9VVPTGJNamk9OyKkh9+yMkO2!ivb#x~}hKeS#xzw{^H2_=AI z&G5-oJXFH|o9Iqe;ZV`pGrDL?{EBrMSQqvO5}mfN3!$&wpLARB-@|_!^l5^}uGN@B z_8{>vVpujodr+03@hMT#-@gXf^#1l_J~1!l(zsYi)F2n1jmF)nOf)Mhxvgluo=7%A zc~%U}j;c%tfqq*0tFtJSfM+B(wmY;37P7v z5F8KM1HiUIT#B=%U#m>-@;4WlCSp9)|4k6?XbiV+g@y+(7E{+f%%=NohZ?`Z_4z#8 zqDy*&D=(MpqUAk#;CekYn&knPBLzg$gMUJb?WZ1N(vN7rFpgFQsG?X7K-txQ1l@>) zQ9wXqylA~CEJM$47V^!$3E!$li&IqP`ikCi-kt0uRa*%D4m*k;Ea7*Loek?;crZ0o zl&2y97XELT(vp6nw6Ul_sUTs3Dp(_`Vr0lK=a4JmZc4q^{H*)ky8pgX+vVk5!AjH2 zq-2n#mY-8y?bsCJ9i`3K{)zh`ARavSkkZ9f0{-)GD>A1({Y0ACpqeYu48x~PO$>x4 z!NMU{1nr!i_IZ*SM(~gtEVF^^fTWEy+LFDiBl0~CCe1Ad`|t+7Uh2>HLhID3w6gl!Es!zqF%G10bGsYP{=h|x*+|+3 zku3)px(x~=MDEG(C0N~u=bXC{z08>exB&|M_n)G}6y3IZJ)0rj+%l(;NIEseSy3q9jCzCl9Tdw!sOFdQ z*L!jKpV8j)!Saws4Q?>7i;k$wG_LHkn?mY$8BeK->=0zWds8b?fTCo5m6@(&ed)>a zkvCnQbRC?PQ#}bp3sKeIDAhI9nuR>QwAlDb?_U`%p+55UHUmJ~6(*gAnSN$3!oLSa z1U!O7<4yJ?p~8@c!sqS20hY6Zgju;2e0Xj1N9+;7Z(xdWE6Ex7`A`@yil0a@sXemM zL88{I^8z);*o$6lZqQg9LG?KM^Z`l;if4FDuS#|W@4$GT;c^?h93%hp1=@!uVKL|8hXUDc^b8)Xf2|<{K-rK$vYiA z{axGb61WtpXkL^ZD2SD#iBa@Yu=UB>9+70zj$EQ zY;D2kCjZj{7+5y&EOU{lw3bP#Jz1Wmh(c@P;tBt|;xmBOs4g5GpE&)hk<4eBkN+O2 z1n&j>+H^Kgi*b|Z)m;v1cuLdX`e8cVF_Js1dcVjf?_m`S1G4$0|OZ_z_ z*+QPw@}Y%ozmFn39@>D08P&H4A;Ev-Sn^DKZ8~*oQzUm@!`jt9rgUzDQ3iGCsO6bC z#&jm^0y`=VV>y!*n4_~Xe5TGNn_?6)xh>idyoBGc!)q8B`A}*uPa6T0QgarpVdkBj zu1Ww+Ayof35OM=js=kEG1~F7TY843En*)|TVn-K}bvL8m(HJ~{Cu;PP_t6wyc3|-H z(b3T!8>_bEa2Xcttcg4G4T1+M4#}iSF7(ct6b7FK)oXG~p~#w$CM)9hh5L1El{8H` zYc39b?;UGu>F%Ba+PU#dgwN2$xfzulv2134pRZ3fTtL}$Z4%df8+YamA)jNuwD|S5 zefytI$Yf$d5Xap%2;*7c|pjhTg+#PBVy|1`g<%OvzoFs@@wI<(r zadrN^#|&fA;VNVyJq^*5f>K`(4j}EYY1%a z3F~cbp*lY%1r=^8jLPF>W9GE_PyC7mbo1mdntDS zbI^VGw{-UG{hWt@U3iy!-fy)`^1%7xZ{3mmL!(aSYfW_&MF@PHpijA*qJn2$WgQKd z>dzmuDhA=R?>FzbyN)qg0S^#~Zd-Bs+$K&~UK3>N2t0*YD zEiI#t0hn&z0K6~_PMIEs>Xl#e zp*2F9>tno{l#_pnDS&r7CF*bcfP!gQ{@K}uwb#crF%#h!m#7;fkgwXZFE9S3tNk;dgR9$f&)APpXCy9ORAyhpK0iZ@Mv*Av$+t?!S z?A^Nr{OK>}YCl01J(}~pcV{mn5skXvPHfcJ8iT?S?SeZY&p7(_vw*8+mhcO3JgSDb zv|e~#Gf$VZMM9%zX^R5x7^q-wJa0qNn6}OBefrP$Ij6_xVLn-OnQ(w6QULubt0>NI z?sfH9osYjOKM}G20f8ji2>2jb|N6BX?;aS5sl0yN^$T|Xd;1_70h*CmfE|CL6n$#9 zk_7*yW~asp&}VggLG5ejTF-@_HkKBq+cpZn^M8{qie4tnOD_?v$3E_e)?L-fT^fJ) zVam%7PP^}rfCFSbKnd_4ridz}J<;nm-Zo2V29R=8CY+XKr3zzsXCA)7r4sTQH1@x& z;gI9vkC2}x`C&66U?xb6C&Goxl`qdI*O`9naT8#ZSr}Nmp2nt|FT&+o1FF;SqGnVCO?g1$F#0nf#CE z`o>3*(!2S2;K{U-q8{u*_DJZ%M}*<83|Yqb)z4^F07Jb6$d$&VCmBdUf3l;Y)o3zd ztnsVQiOu5n@;cr_xGbX7&R@XVWlrQ?BQCz2JTyCp_zJ18iWVx|^f_A6{}{Bx*yYeG zVG~p}fA#y=e_o@%DUX3gkkPHIxssjUc28oVAisnmYZNt;fy_2gyD5j|jvJftP!TOV zGwo#`qD3{n!9gcqdu8~QIK%?uVBOP=#aj=md8Qp%zj6FIzU;pOrdof=V}VV0wD($# zpPa|B;9xfR=s|(LAVM!!aP`Y>hL!<<@GJVV-EYrL z=Z*Bb)0#Xq#NMKdyC9rGQn7pOPC0*cVc}u+KmqjNi{9gC8@iPb58B7~9u?o5t82-L zv@c5w@z@ynIIW&3tlHg>(w){=>A^R< znKlbfFHcjqp}=u`0#$X?yQ-1xk-Y3762#(#XQbdB>A$MQ=rBC+Qt6@1i_3>l3saDi z4WfdzLgQLWtL`tE;&Z8st{wmLp5ONYs?hCQy)`Z#1+^&1*o8VvnA_3k1<@Y7tz~cD z3j#pEt|MX>7!xKl2ieDjF(gQN4gdQOk5pA*H_SBiMbaYp2lRfdd9zK@X4R zsanIMoobyEy8e2+h|J%zQMkDL zyZO+!PQ{5_^g&B9xrJDJN}4och|^SI0pb9T_M5UHES;DHgNmGjLENITrpqXgQgrbM zszzh7LmpP`%dHyKQyfiJ(XagpJAAX!F;x39G^o<|X7kv^QP+^^UKrUQx8KFE@gh*pyPE#-Xh?!9Ip+vO<6#H}d=p#JlIf4u~k?G}X5#U-iSH(Li0cFc8YQ&w0l`6rR(JmMd@RIV|m|MJ1I4{Q|AFrLbPsa^O3DeJLg+m zd8?3^HUa-Nt*WT^4EPQj#}q?mdMMT|ijE>g10=WXT4+dB6jI*1Azr)IzeJBdc_mjP zqGTz4j9q=KC}HEn$>Ty4#jwzhCa+mY=lm(+tmBln6$K2_%m`M2 z#@LfJ*JoQG(gku+aKSoshL{=$<{SGPGL(`YexPB@r`Oy>~Y&`p1V7>|_x4*vL zWj_zlo%NQyGko+w@{Dg`%iekpE~YWI9@vn->wiatl#e_}0bE`@8O=UPkL zcNwzUAoB7s+=>tviw8PH5GEH8ETI0ydM8qZ&i!WJJorfZiAX24{ubYnGVXF=Wi{aV za=3aTzp{FZv{n?;|GgC>H)44sG;fbJEN)8d)y4G}>a2a&!4XKlejJi0&I6EK)N8#6&+y2`Og0l4%6VfFYO5I1C3D>JO4l;3j zNm$a*=oN*|3r1kQo37wzXP0M%5w%nyE~_0hw<0EnHaSN@g%#0qS_AL7OD17o??dEs0ZN->l)p?#S0AZ6DX}2ZWkwL)!?Exoj?-FX zMkpHp$SG8P=0^uLCY1F!HzxU+oy(jpo_4eO8~f~^i=q^jBl#w$lW{iF*9s5FEA&SM z^PI?ziuO*oI3HzgL?L~7gF!l!*JiU6YfE+f-_@cAQ0oGdPb~5y-;)C`K<162m~*%B z+L;<)%c-}FGd%pc^jXIC!ZSh+(jA%NjRcE)Ci}Cx-;|piw6JHJpHJD&Z&v>@RU2qM zTv;~AmZItUy|6vjd@9y{iD6H?womDPpvwo>zlDrVHkZRj>}WlPkkPu`YHphc%evajr6=ZdBOMEEljM)l^dc&ydg zBF_Rcn%444tn;Xs+r(wZ5=UHD>drRn=6nqZQR168{b*bMFIrG-G%6hq?dWrDl0rO zdo|?P%@aHdIhxW9JIjC5>@EQY;( zFx98#6ps57aY$zinp-&AkvVJZ);f6lm-%Y=vD3mp`}`BztFq?up@NsQoCe#GDf_xI zlaV{Q#xtU{?#`>sAg!8{AD z3~vkQ%`V;4k1dZ&=d0VdLhVAUMHlkht_)PB25gmERP5Nto(j!Z+YEedx%?~k5mx`o ziEv%gY}Y4ic|O-GMWQ~3zzd<)1a2aPkp4!@G3;+GI;D-adfRA_UbG+Qvm!JBsY3tC z>ngS<)K@`G%n;g~h5PLBx(y4=bBPJz#dO$km70Y+b60v=@2gFW!}r5NCg=PQb9d_6 z!}d5d`iSW;Sg*U?%o;zH;q0o1FVBP)!dGB|i)k`**E|ZhlCdpVxNehQl)aow{|w#0 zq-lg-T~9OuXQXm2sMHbqvgd4oMa76NcwHQY2ZFbLNP%gev8jYBw?*rP_soR?ukSVA z)}!(>R4=+9nb}YG#TK`o_JbKd?Y!Wk zoN8>+CC-}loxzM7`RtU5ZpurxOVs6!p5^(&K;`+v@zey+dLFE+kB0a*QI4AHyWIfV zSXFhYYFC-NLrJX%UGYeC{DPf}coDgX+gG7ue4r{@B@Am~G`0whHrIpKWn2ZRGO^U6 z)4I7%kjL8rdCE9X2Rrc2ZV>n7uQ`d3-<2mVQ?|JgF9WzC3!+b;OkzAbTG?h(_peKS zJjsnO`aru`nNi|+i)bxcquK~?*fWRG&IQpT?GFztv*clUA4FX+vHqG8--RAv2b$+H z&pPmI=tEUrboEs&&&AopvcB|5XVq*%K@8l&w<#6@pM2yzq)xe>Nv{F^a@O*n*C?wN z|D0_kPTx|kP*z?Q_8l~AsFrr6RF*x`4NuMW`WX**hLtlr@QYP$!@@OeQoh9iOL%Gr ze#R3PE%Pd)bNDiZdh&mh{89wAtv~0mgTsk9P2%U*o+iG?4gDrbdDyr~I5R;cv&4)j zZVi$o7`uX#AXHC=?rGRk^WEZl&y;ZAxg}j|O%%nAv~`TAdhx4$uH+G@DfU$|T7)*i z8PFEySDCUwxDTp^^biZi_uRxVQ+ZDg0IV}qS{@dGjJij0@`)KV17D{-U@I;8_M|nl zgZ;DvKN@l9$@e5saQ(F6Wi_1y^Mbz@!JKpYnzv|tm;J03DXh%zlR1zZ(w49E^J3*| zI{A|UHzm=Tf|cVC7Wm0S@VRDYLsu^Er_Y6B{yjVYLa&n-k)}y0@+K7(*QJg z!fUzxdm1%O5$VBfK!+LpI}NTfS3H-4=d#Gi8uV2Hiy1-XejDX0h2wnulcJ{tlE#l=i;D}&zzR4oB%M)*Zn z$9c;;OCb|?+M#M^c5{)@(9?EPVN^7dbYpBc1vpL$Vm_B(c(Cu;@9=$!max~8^bZs} zNqn{VWI+{k%WAdB=o`29}C)@;V7IVn!Ci_OlS)opSm6o!) z@?<)BKD3tJtbCKDiR%4W=<&;)U_kMv3l;i`%3a89UL~{Zv?<(^Mau5t#&g5&Ds*vT z_Nc-F+9|P;XLATlK=fVsMf?M>pD5K!#Q0}yI6Dr$%P%?*i_hNxp&a|H?b9tLaUBih zvE&J$hFd!-jldbKh%W5Ll`M*$C&bX*GIyM!-8CO6V~6_s!7VLFH`%@TV5Cmp3!VUT zeuh@rvMr3-iME(@R?0VetAMHzx# z51*D^W+`GJPwsp&y=9h}Mx(&f1oHT`b}^Z|EmEUO&m!+@BDOH3fy^TqpM;)#>T#(< zQ@;12;};8LP5!$|g@%WuZ9P3M4L_TEal!lF{N>2IXcV3a(jg)Y+b}A0`|$MMf@K*z zhmYs5vMTnM(=D@H;>ZN5P_||Ph5|Fk9AeSidWC6LjUf+E;3n{swaTJN@jnrhr02C% zcdqQvhoAZOfX0x8H|bYWz0zjPjK4cAFKi#;#NxhX3)0x6^~_spO~Lt<2N%j(HiQ_Z zZ0unLS>P(}Tv^UgsX?^(Yd!}!j29*1rXCy+`yYjw7Lt3w6+Cwf717J;SdvP-eYgcB zSn8OzdLf6&y3>;k`CtK7KlG0j+D}e84PXtBS6(Ll?6hNfAMR#s)8G=ZszF6OUQ*N- z_xz=3cdp8INH-t*BDw#1bB(boGhI$j)lr$32x(I!)Uj+BG?`-04v1yAa#2(S?q}_b zNSvD(igx!A<>oC%Fw=UQT;V-GlgY}q`>FH@UQl#%WZLB42;iD< ztA~a$juN=F3d7Kusmf{IBuvP0<%>=d%`AXIMcvFmG$%MWLV!#;JIGNMR@OB}xoHkW zAXOkz(1?m^d9>;0#`L&?`KUQs%3n}&CS^R)UQ&3Do-7I%tXcTrZx_A;Pp2dMgi&l( zSCkK}stAHh5ZF8Oo&AyGb${at#`4(L@2Uc1VUu~jQ{VjBwZ^y}`z9mz{GE0_C_|L% zijJIktf)HndDDIMLai#P)gN+h4NtKlr|60o@+e+G#%it&dVqSW64AV`GFN+-uGv9?3u9 z2);O}peNQSo~UbAoTJ3w%tw{~{OXZ84?JAjupLFS2|NYzXt8nu_r?uUt?wQ<)`~ug z_p9(@>+7m=K>i-c4U^QUk`3(9qojB55Q3>9_b$SbhyS+NJTc)ng)6IC71_J0TKwFNXF&l%OYAn9m4QXjjuc^R57Oiv z2_fFeFMzgMg$orr8EESE=mBY8TjNO(Y@A&e-3aU3s9;0fu@$?DQs9h&PxPQa=mykq zC|!?>T9;V$B}LT~t?O#Lf~9$btX%pEorw1z9CrWq2M+1#;CguKAsNG@2;R8O7%P&l~Moyphf%pzrZih!HF`XC)ok(QXs^%6={T__)hFgP% zr}d7-1E5cdE7u5!%>(|fXwRZ9*Mdz7{ivg69=&DgxZv^1{?5cHNgz zdlD@S5`2%Ll9 z4O0^{fB|Jcbn$%*r6eseQ*^F>6xYqm7RmybMS=A!sZ0+Jv|mUlGE#-Y2R91tk@9V- z2>~wlv}0qqxe&oOD%170Y0dRn-pZuCROy)z<>rs2pVv_s>_T_nsHSCPiJw?-+jg%1 zD&GQwCz|8+`t~<=eKDRnkiYsq8n>qY?R_+zw%R6XH650=es*aRocodC>Vq=lm#E&I zex0tjx3p-wM0vK+3I?1S7F{c)j$pbEK}c!ql~Io{fiW&Vt-;KZ0Z|k#UJ;Ar!J<+b zdA|NzbP+;WsRSQ zERF$~P=O&()TrI#8H7ozWM|54$S^%A16DdtLCj`M7LX{_-=e-rugHYJM%5Zap+w2D z@+X-hBrtkZXD0piEUbIjzQd+|xr}F0qo=rWJfV8hqnd>!j5x zKnHYSgDwQ66mJwb?4vR+@|H8e^IE1-^ z)$yD5h&<#Yd}3dh$f6@t8zlCSuzDE#>k=sKOu3O1^>b7n@(|)%VJyRHrU!-|;_fV& zo8>@W{qImOTPW6Pg#g`rS3#>%Rr{^-s}5ZkX#|q0D2}KZ zLgq{$t$@Gv^ixwgPrg~*0^#i-6dDS_%4b}8_#vW2l&nS% zcW$NqEK^Wi<5?8yw1C;6(Iws{c5QUrX4V{1tBVt^o0r_r^Mmwic*Y!hyuZ=cA`j zaZXp*1W(w2-Et5a+a)oLLl#mVXQz~X*f;f#J>(SH``ynwswjAyNi{yKIR63)-XQr>^R zDKXCd+d?P-vqp<^2C#0Buh%_L&*I@Bj9fzhUveOv|1PZfQt91bPpK4b+AU~r? z_-3wqexa*xI|4$OS@`UNNsb1Rn!a^O^P4Wrv_MUiXM;UUFEhNN3y(9u~@a+k4$Fm-mIME_?}t>@@U z&IcX%53lKYwX`B}i6croR{f#O>us-J{*q)?$+rX~LvD$35ufzy#UikA1OO*b+Jlh9 zGy>zCHO5Kynm#ZRt)<(pV9t-@z-9uge|1a+Ij1+jMi`4Lc|BoW)<6I3KWLqmh<8Q+ zqRd_PdUtx9V~bpk4MD*?#$Wv<;#jtQtvxv%H!k(Ng_giLJUG!;D3LW~!v*EK}@igZ!cV|j`e8Rt?y@Zv{DQD%HU`!` z%|%p@>3C)#57L4VoGvoEkM77mV{%7F-*sPm2vpRP{6Y6aG?JL=^>;a#Eh;oOfNZR6mohqk3xncK-e2>yB5g^mLBnSGO&XqTni< zq6>d>wMZT(_gp@eCOj4R#cR3@m15{!(f#gHrNZn?5azQ$m$0Ko8%V?!AfILKa9H0d z<^=T~>u)5d2vzU=-@uVTtJkodCJXENywuVsC{08$Y#I{Q_+h6hyOf>kb zMKNDdd){kb940va*QIvdGp z$j46v(Dn$IK^{yq9^zv~x{4~yqtweQTJ=W?agfm_jI%$N=goC9$i{D>U^0babg*)Hu^p62K~93>GiI4cphqUZ8K0r16;0sSlpR_j++!Nak@2LfN2vUb$}O~XhnQ&nZ%xYgMsJWKCUq@||CT66TMHR0;aEhxDqEo~n|Eeg!KZ*&l5jM-4FA)WD z-_`DEX2G@1NDZo;9R&s`sjD_LVl;FE;y6PqWwBGjGa%G*Q?#Tnk~1cXK;8(UI+8Xp zC~0D6Zb8sNqSSqD4Sw%QTm%K3zC8AcApqR{mydqfPgBSBEKWOHQGNZ*$ATv7LCe-% zv*)5+(T-i(C?%~Q$i(S#`qO6#)W7T^Ompt9{C+;6di|QaEfoJOEv}@JTq)C+jx4WZ zDaLU7UzR>ubo8CF9xh07==r$KkcfMWc1XvIy3=mpi0bxRsonCa+b{jV8e$7-rl#TM zW$=b^$D1gI)iA?|5@KHD0TuEn(?j3}@xl>o!00d2Q+wCM@d@ z#$TroilVG{;S~}?-NnepX45MOU9*#0m&iO}qbHV_C1>SsYyE-PBT215K#s(sqVj<@ zp>g{uH1X!Tfjle6Zg_?KjFq`P&g zTfWI=x6zR8EgQ=L-Cnr0eNhMgVubT05}iX0ZKUNa{`Ys-E`{Zi3m?^WGF*7GhQ5Ho47mv_`o+8TKCS3q8^XW)ILTL^ z+8SRa|MeU0er)5iC=b<)&J<2-p>h=EO{Rh22>qA&^eJNTI+>*gOla4@7+Mq4m+iu;IYx7kS3mSHTgid3@)@> zY2eR&ukB$ky8w^b#9hMwi!)3%Mk>MN$OIsrSu*!=HBg6|nd%=Wo=C*|sR)%RXlp&7 z?zu?J#)U#*I!8%NjPag+6?sJ-Z8SOY4MWz;pC5_w{0C~rV*bVG!}_Si;4xhojkdss z)=s3!#qZUl`mw@Rv=fhC3z{~@Q6l|;`w&}Ikx>j8pI%SD(7^%mHa1fjV_09c_O(+w z83@d)TG{yUP&qS)BT47udog7u;Fq}4m3}6bd?F`pj?vg?3^8}a9IwI@SMqV$o$rT4 zu5XO`(a*dCeJ~Rm*Hrx`f5SW$cg?(*UNmJVB~=DE&l0_vvjb%rL?hjuV#{n;jN>4> zlml6trkLl%GFh3Y2-_MMrQfVy#7Ple098{9V0|GOdg*z0mjKytq6O3z+855 zvQ+%CW{E~ zXo%-0yf-JT^0q&#xkls>olzxaDOZxj+sLbGuKQFlEze&MnlvL0Vk|Iy*36MYOD}R*t%~qF?Y? zxuP8vga#0mncGtJ8?;o@l%iZ&2AnmrFcD)VQ42sNfC`0bOQhw5Uk^*087AF{5)S*B zg!_lno*vlT>;0u|!Ot8^c1_gY^rBKiOKYZNV~zbL3RT+dfvH3uX>p_Ep*b5a#Er@hLXfwsTyQGAzijT||O zYv*0$s|;iY5tnsq5-!NEvRUih$yM^7&-1dPg zLgJvVNQ!N!6kD(M=MOaQCYAvV&0^}Z@eB%~(BBW8XWHerXq65@BpfV#&M}F=Ga@Yz zr$CK^ct^0p9_0PW$&DcJtyNDyWckVGAgJQZ6Y~p@$sY^3ykRsO%G;8Z4>pu-gxU6X zI6FX4Vqy7rK6U~p6E44b3H3dH*}~qT=Q8fNh@hT1(3H&ueH#9r-*sG-nw*D=F7X(A z=Z~y9vA7P~geoEiSrgcYVsQd58(&)z%B(>CI|uPQXfZ});1TG7!8p~{Tw&M7L&5sX z>xpD>VE%KnxDxLP1)g+3W=x`6}L`!mgC<6KQwK;&MZr0N7Hs?RWM~++w)yNH? zK$`~M;J>=sY`srPO^&p&)^}SB4jZU|tfqo4POOREX<_Y^3#^erWGFO>pQUtB4iq-6 z8~9c|ssuB`y}k2aTuBcC!1V6LK{<(*Ix`h5MSFwC(0bE70&w@vdu|YZ}SY`?x&Hgdy|~U8F5& z%KiO{Az|Q8|3GOz0vRIstFJ(ZNUtg@YVbeAOb1&hQS5&>Q0R^z5 zwsHf)ozSKkEBAFJ0#>|S4dT^ijJPMb(Lj?myPIk!MBHZKAYNyhojj&D5@Z0WN3+bd1bKBM1Y@4KNgkcCQYobk*q=CGDnZZpeJ z__V^wV~5F|I|`hd$AzGKTG4g_6RzN39rsFf$;Wj)P(8VD*h(OqUTe(Ji4%Y}i@iq5 zB-ORe<8D=+$+ z*k|{e=K#V2lQcTq&oU|?&u5|Ts;{J~_$@DaS=Xz9QRK+Bv0A-tRUjLS{dyXl2dk;M z|0E7~tot1S%*z^I?@h!JrRpU%UT2AMtt%(9KdC8p3v&|1a8gE|SVsM2l>m0PnGhWw zlT7!Q_1r*mQ>^XM?ix$b z7h6c)$MM^KN!^z382*BK&|VQD0COu^YE;o7WU9CUsrL{edUq$Wn(hZ*SB0MnFmzC< z;eYxxrPOaVtIi0b^+7Tw&qQ#c@)`^e@x+c@pai`C3_Tm<87hq0t^iXUd;eO?TXej3 z=qib!)H0vAfJw3B_=-d2dk~wqW|LUfNH_E2XRg>1neTd#VJ@7zoZBz$7SDFeAL?Q| z`T6U*r4t3R%V>3?Z?vxmRCCPabc~*jUjUVvZ9997T>0tAu>@(5@I+jRyMg<)Cx6X8 zY|Hxb@$)}+B+ZzV@ke58L1zZX7sw;K3|fp*0bxpkSshmVHc)6fYxjc^;2{Q_5Dqg( z8h3d5*ljL-l~Xf!pEhqex1a+8YKVZ=y%RGrZY2K@vQd1hL~)$t_;Rjq7R0DKQ@>7g zHnbm3$W(M}aw-MP&|?RUioQvitrEM_^U^lt8Tm!~;H5pGI`Fjp&uOHmT=ITep)8jf z3e|6(J6|D;E!%$E0ZM0Jv4{14{zRYU8P+C>JPPjBjt;-6J!4B?m)4B!p>%J@O3t{} zlo1OuOV>)Z7e*Y7)r8*q1|n>M~d)aGGSwwTrPCxs7k=6)eUb*Sos zudWKG>I%@vU~Kiq=w;$mqi%GRD9>Vbh`j42ihcbU(*se;M}uLNT5;VT_%L0HJcPumr6eeAjpPsznDx$!PJx zlHCo1kjOuc=6XE+?3$Z{aT>RYFZFQR^64AJE{Rw3R~eKafc78ma$V5G_xAZHS?xV$ z!e+RLO=ywy&d}S-kA_$45PP|+#o^$Ks4Ka5h5_q?m}yRS^KW>LmyOOZfj6nVk<#7` zo`av=*KqT?$ED-!l&DdBPzOaJx+yO`GnJlY0Eq?qzQ(PwGZi6hBk+ds(#*N?4r<%o zIksh)5`Z%G<~bd6pyA_3E}>Uljn!7W%EOpLMu}so)1R>}`gjr)*)wvo9oGG9+x7+A zcO6+T8`3*y>e({CM@l*~db9~Fh&XNKLe&Yc{c-lYe;~>xHV7cRQUdQZ*@Vf7jJLW$ zZ;<*K=~L#BcOa`atB+}I(Z~#PL46`a=A~J`t_X?P5l)spn7tu>&(RvZJGj z1@3Y{-&4ze=Aa2d4E;)oKCc$P9;P9Rx(qE75o+3eG4hW2L=;k`=H(JnU-&Gz@)95? zT?S1nl}f*-olJQzm-RO1e&>nUPQ_w=w^1kTxy{7m5vI?Mzb`ufvH_jo&g?lBQmbS4 zSjPf6d{r2U#isKEe6}lC8whcmy|=Nt>oztZDBb2Q#+i58%qx=-<2Z?>Ht8C zg*-1CR_^BzQlmclOG=R)&*n07D;@S3<|$=wYW9Lam?-bVY@s-jfNr3b?cAs$1Q zc1i19#=F~27|$ym!?bD2JLdnHcQ=rJC5Tcs?1%K2@o`%n>gn=Dx*p5PzU{Uzg>D?(u^R zu=$x80)Ly6ZYl!vmz;eJYjb0YNIRf}E=7w{(4N=~Ow zPz-v!6*dHuxefaRG2o+?#ZF%+_M?Jo{!vf+ucsZP6tIek40^!cgtj!-;vh$g5h=-H~_D8>eEQZIJX;NB)&U zrQ+c(KIAK3+b>C^-e=O|?K{Y@{cL_ltq%BXP;bti*Mn$>&@W>J11PR2pMbm~v0tbk z5UTtbpt;?`R6FJV=%VH6K(#Dz>z)5C?5#<0hzlb> z<=>dlIqEmH!;x}jH+crAKUtwBf3_+d=l_h#KRIi;^g`*8)dX(~+^A`Ou2M2l=m*w= zzi+^z0485*cb_@IHwl+fi_zr_ZE+WxNh6S0M>ee3fynq^iQ1Y6lBIfy67{?laQaPy zq1Dd8jNFq>#+51m=HR1lH1B?ZeLW7yRzjHbNUBfspC{E|=&(B_JueC|VgpFK zm8ZQZ16Ip%gF6u~?rdY3<;m9eV^6)3u70=Lgy(2^@;^iJ54am*N?roXMaA`?b!G5U zScR#TRJpG@yTLEK>d^ia8Vk^tuS1;b$no~5ugrW{N9Hsvwa}L|2XML3 zyPR9T$`!_hLa8)5w6&972fDoc5D;>KITx&~BiGZa7bjQl^5Y$-9(QqT1Mt=ngQhHA zDuVg6UXC2LxEe@SC4e56NL9GFQq^m(KjFRmiQ364 zmxZ?BXDKCpTADg)=?a*tswpMgaeDFDg2s#$Y=Csl!a#0Ga#g3%Ki5=0iHbL(9TL`FCSIDm6Yg@$;}vPy&v3gO zhSakkcU)I0bMm?-XAr9`QW#=|{M+rMx;d&2k2XjU<~O z&$+dORp|S7OjmJj%saR4>Tq@?26%2Wu{teLS?PY0ocw;>=&`NZoydQ{9Lzzn!jwFQt)-3|NR^e3YLM8&4Gylnqky;MxTCP94`m@whXr{=i1&u^3IN-Uj z+j|dB@i^mmTpSkWt%_x|H1H)?K~WM%MuXMeH~X#hIhZuOqPjd0Pdfd9%qpoH*|^0M zSo**#w2xVX$x2zc!Mi_EwxddJHInPqSHdY9Xwqiw8}ID;VGM7Ds7VjnDA)G}DvicH zky@0~kQAODq$C%daqiNU0UP<=VUw%<*YTYWA*Lh;94zclY>kx zVmInX6M0J4i##>tjd~F=6ic$_5FqD~se4q`574=I7MtR`oA|bd2tVRGtKwdHML5u1 zDgadO9baLZJ1XxYGZ3#msaRWVcm}&UC)9dFWrlci=B<)nb-j$r#f=K|o_(!TX$q3W ze1pbX9l_rMb0uIAEAn)9O>5JKK}g`4q@3>2M4X}+DzfX;ADF+C55Os}-e?!5qh>H8 zN6Oc#USlZ$nIcKk&5K=Q&GO7_vJ0DZ#9rSE1lvPMdHafCi%W9qb_@mU@P#@kI(ivglo*l9Sjgkb3gJl zJx=NmigAmhIgF(o6pu2jETby5pN&XX#hGaYP8f~LZ3b-L5On5gxj1wm>N#Oo7kx^f z3KtqH#G79cR0l@C`Kj9(`LW5R_qd%l`eJ-S#lR+_l!1eyNSsdP`?H8Y5$~b zLqYyI>W*|=wBqflsx!H2_IUSV{86ahS=w&%huQ$0;DT;c-reNSMyG9$|2hhdF^GX7D={r;S}ZbDXEwiIX%dK=fA>m(aGK00ilo^BWvBl~Gex;d-8Ly8 ztK2@nc@5$7L-6wG;__nd&-ueQSMw(qX92s5e-RNMjT_HDlYjiw5|+Y6?Kqgt`Bea` zT4c|Qdru=;+c0L$JEJOtw}EuaV|(=~3G738U2Zb(d=3r@4LC!^UBOzE-Gta*q}26D z>G*5ZeCah_etKZrYwzO~7H-#9zjM{tO=e5pA36i(YYw?SAt)YCF20XN9$g)j+@vaLsHFNtDk;k0 ztN(KD{VU{IqX*`@SEa&zSg&7rljT34jBN8xlNPrUfsc~H|L~(Hr-WNd=Q}W^ujA6{OKDLR-2xy zs;hu-9+Apa$-R%OLDxJbEz?c&Ej5PgW1?9o7fAlfhh2%$(rub zGllxF3KQE!tI7M7PX#cGZm&*iI@8Iu;k)jYZ4EF_R|%XCIBCq6JYHT_8A?xY81;CKDAmfEgUqGDD*IL1;eNX|j1>=_)K+&q8QRc~UgMN~tdN0#o$~XKccg*Qpa5gj@`NBMYNy z47qJ*r}$8M8myWXvUG_^wug%x#C~J#v$Ac z+fg{xZ7>@5>S^@5g-%_YK3lIP=QG{onIP=^n>NHgS$5m0gzW9=JkWCP$ZYY|*^c#` z!`0c`&IH!l18$Nba%|pq>7=N!he^ zF<{2Bb|c!5LFUkVxKILB9w`%up)iQ59x>&9f3)v|jJ^!AN6$YfoNB$C7of@dmabg( zv!sf^zNjq^^J9FK?WGfd__*>L=(ArFfmu;e{~wyp#1X3Z4f|4L2xBZsmMmkJB4r5~ z`;c{pu^ZVk$eJxAV_!nXnq+4T#+D_DLD@x&>Wl1SsYxU|@9Fox?_Y4{ob$|c?&rR* z>vP#@0t(4hRoV*^L$i=Z6YY59M zse4<0WcdJ0#GAYzb>%)Q7R>_9A5U^L1$iFL(f&5>OsQ>mb!}S`L+I0NM@05)%I+{S zM{?HGcE`_pnRj}PXkZmi++<}OL;}@)@NYe_GNX1iSOt>Vpy@BTyY;(LyxNf;dCb6f z)dwcGAf-^7_V}YKOrh2Z|6VFk$jQe=bgGcbuo))6#776CgFXB2BlsH~r2B>Mw~__j zF-iWR_g5Q^(>4Tt6mcbYF7C!14ttEU-mJvSuFiP<-l??qzc+s2i)c3 zfVOhbRED=E0CjnXm?{PhRNv%Bt`e`YZnk|wd#xMhAYC$IwJl(^csB)$$`^I`XcKL= z+uXgWL~l)49!~<|75&|&=L)I+Rb+A>*I1Pq731h<+w7I2 zHtXTn!4`ttGG%Sus(F)DF5SD2{sPt6G-*47cjH1_XdE6xxck*5d>9lNV)2kuw}5U* zx&Hh9VJDAj*y%)fpq~Kt?U}eQv&~%&@9ZZ~Eo5{ssO|Peh^~J}@(Pja77Duhka_P1 zw1XmC1k?Q!Ttx$pvr2Z zQ-ES+_h&1aSa#mu8j`P0C;KeG_1s{uiMN&QL@8)a zCP9>cIapl>M&dQ)W-JHOXbe^W*lLO|7?<{IoKDKMAQ<7TYD9*H14e6%$OuUi^QaEK(SJSG}425 zw`ClZYcv4m>gBw`Ki6lcD=q@pJ$8rrQN&50&pkdB zG5yt6?)py!w!l!j&sV|k=0e62@o#aDGI!D2=fqkgUaxD?`j~r$EvpVOX(;gb>@pM{ z5WytT)q&xlvKZJ3PpB!i>K#Mu_FGE07;vX4>AP>=+!d)1Yt9PZWIf6*K>oEyeKtV4 zPH);rx??|wRdGOW_DFMiW7Fm?H`k(V0a4QvT+gezp1kwNiqHf1&pcGO37!Z$J}JP`Q>_T8))J^LYRP%N;!`l?)EDT**a zv^1FvIlMb0Y~RZYJyJO&0~gjaY6uq2ml8cO9r-}%JuKDktv&QD0~$MM(~-;P37`iB ztX*<^MbV3EZ&vS06die%zkOw?>rA}iKu<$XRS~}-6f!U}W*v(w1SV>&=WI6RM+oy0 z8X48CRem1T_~*bV2;(|+xhdDXtIm)9iC3;?GhZwOjl`)m7O_Xv`iaj>NP2T*j9g9( znEvYq;+>V`!rY&uG{bxIUb6x@c#;ku$`$rIu_&a27uGi4|L*3Z8=I40LNmRTAf1yJ zokNO}48=vvHks5Wn@JG-)-`UDpgVQ0Cxuk2@V=;Jb!Kk(uy=9xGJ_=yEYNW##og>xjJzd6guD90YVddlFN#jjMO> zhFFpu05#k`%2-+pwFbTLh^1oaN7JPwF!=(*fI+`1hm>iXYz`?g?@y$)gYlG0-4%LKNn4Ce=LG1h2rwxBEjYhsOdJD^q(KLQnwO z!#-A#z_+4sPp4slDBjHq<`OYBtinnXqHrZf%kBlmrYD8?B9RMmCBT+aela`rolSu! za+l|&YN@HQ9jEz)_gnS77jH_qXvXr=qX9sI4>c!_&Z9yB>h#keCbzn$U-?!z;8FAH zu^hvYLAH_=HfGK(npjSQh$d!z%ZZLcy(C}Tfon?tO5)A<@2_oOc#KJeaj3OsWW*E8 zD$kMfxQ!R{3ac01Lj;34L+Okf2ThrY^I5T%vXt3VZTv-MN(gATMVHEhE9|;Ib4~0( zfV(4_=!r3kA_BO1K;!0v60MF>lmwnUZOVYnpGLrZ=ZuP-h9O&`{6T)_jy`0@XdF;Rasjh5A_KJD1W(?>&;4r zXijB9TfFn;!V2Z*!|Wj+zIj*WOKVDTcQk;Vo~nlV!(-kGr~6k+ zMgP}W-m>-Y24x=nyTKQf6Q7KSPu|T{#iuTYe=x2~47^yZd|0Ct<}tFsm3UqzCd7H= zSk3dWy-qGepql*B;d&f07(|DD$j3z)dcAXy+o5Fe2I6EJ&B)t#wpKd+(78`?P;4Ll zpvX$rzK!*t(CyByvHkAp-m~+(=e_l`!+ozDV)p;`mMP&AXqQ|PonSacNjFlDQ7C9^ z|LO-G6?jm!N2`=@hJb;UCOt|wg_s7|)L}1Vg|7Wg5C-iVW`+wf5RrlJ>~9B zGX7k%d8AKkq#uA2;9!*yF|AUZI%4JfQ~)uavjO}| zzrb^vsaI)GA%b`9$Y>;KoE8lPewP=^4hK+zb64{4g)Q+!ov9tVLDR1n>sJjHiSzH_ zvP$f~t_3oreh~?FE;`Ubh-}R-!vYw5M{TFa7BPW6l-& ztc1T|kTRG>K9@`-=x-VUKb(4~w?8j68;KLi+EvSj@1>|g%E zwlC_ho}Pgqgep9}`hyM4sg1wtiT|!QG(E0?ipe&q!y516wgSd@vzk^tA1gK@R@cmG zu^h6EE31_F4O4!L4OnFt&Zg=ot!#6{#Z$P{z{54b;X2b*wM9Dm{?PPt12niE{oytH zej#s&Q}?4%zLhj*a*A2)qMXte-N(#UtRDS-zk0vXdk zR+7t0b?t9NNhH_Z>My>xN0;>^E*g!T@4@Hffd8*|eJcpDAs9mqAW-VcBJd;TMwCMPM{t-6!$jbCH)G zMO%+*ip?JROVyIv_JH8uye-*VcGKP4-8#ypav9O10Ro7UOV0HKk#)zRzA^ALakCjT zXE(%mZXJLBw?o$0#ax~{i}jdZRvsfL-@8{fdVz^0;B)rvd(pYzT1-rK8Vy%4=(iyN z70i(}zXlwFj&hq~-x@q*X2u3y`)542X;=l52F1q2z4Z&869g@Yzr*PQbN(omP8`Ha zg5Lo8u(qf&AL@xfrl+0nR=2@>Ls4lcYC^5od1vO}#qhZZjvMDiEL@4$#|~2QxH@dw z{Kb%xoHPRMF~7Ac9ys$E*%~Se5>ldx*dA+PiW+3|y2puc8JKH#bt^q>7}vdi>2l`P z#749vr&TvuJ@!@HRG|%u(QWQbdpV5g%176nd`k+8n0|L7uCIY!2lZ4}XOZZM(!{0T zEdW&=ll)1R~p)fB}L`2i-GJt?mzRhjaoN82+@KL%LSp^G} z&h!=7XeT*JgZ^X#CZIxrmTSR}I?nV1Id7>Df_gT*`-Og*yy4f8tPw+I_@J1ah^X~< z!;8P6<|rk>D{fpu(&y__=ZBSU?;N>)<{35;hwptZpC^)4CQ<-k)YS#QQaNO(k3CSa zUfftS+{?Mu@~SCECOC4Cy8y<3tC9?u=v2QW6#S_3EaW3o(fq2W3C4gSk@*eTjk!VV z$8~&c3_}(o9gmL~#UAY(hIGyV2Aov+*)j1zT}MP)p#b22G{z8j64@;J&{Z9#TuyA8 zYI41KwODg8!HS{R*`Fp~(y2#kT04)|U&ktJi@ehQfFzdWkTU8P9Y6tzR1Dd~c_ z#8MN>&zTBYgNl^Ibnc_IuO@Tz9>TBJ`!%nqs!Z}59sKX_=Itcm*>M*5BiN)+c&d^| z@_Uh?%*uSsq_TxVDFm(U(`aI?$$!qE42W#Oe1r#ij3_~R@r%Sk$tk&-qD5k2Q|w4? zCpPmAqa{f}v|V`WHrz_p#1EJPr>Vx(VQ-35yuaC>D@;7ETq$s|ct=L)WG!qQ_?LTk znSXh5_Tsh__ea6VOu~sM2dxkt10ml;UzZJ?dsn&>oH)Vv#e1H}q8;)5%1-+8z1#NX zzR-@hPl*B6(E~jsVZn>T+*qK$IHi}4oj7`#%p#><`<9a^br;h?|Lu|s_1f(;!oNrP zOtWJ5)G|S=XxSY8)<$7>a1hVkYM`K_2Dz>mhb&caWTT^%{?uLv0w}K%3j=Pj9s**Z>G}dT7znEP>B?D&gFIH(tYMFGW)cvIm;K zHU3#!f3eoP&Yg98)F*OhE-tymhlUf~R!p6d(ST;s7gfo-LNvvqFt~VaSddGEn(wu& zInasWp2g12N%Rm}0^7XWMDGa*PKRtkmZq^>EwUR0LJsaFR3 zhrn*)&jhXp?rbvQnPcdQP9Uw12k&gwNywAP0G z1`#g>WVT)6@%cd>hL)eDY*5{Z2$}k0RuMlPwHjLGozGvs4qhrWEuq=-ZsG?)T>p59Qm58-DQH5+ZtMO$0L*q8)fmJ{9Iii`Mi&@H@FY;QpBa(p3j z0fgwnvY16fIRfwqXCG*;pMF^+8p)1u{e`!(1D1gL%Ivgamw=l^t25BP=O2+)rUJt& z3Ih=CWP;#0>xGiYv}z~7>(B<`s{VaCt$wguQ=qP(VcvcFY9qtVsVJ&M10xfdOYa=F zlUE>K1?6v_S@I1YKQdP7p}6wxrF4MU)4*S1A`X8bhsuPVRI8v$Q@dY)&0WU9K#iTW zoB~lwJf34@ZdcH9yAE_9Hm*&d}AymQdF5Pc^LO;9V!AC5CK1RyJ?=4jS|Ef z+n4U(J~qA}r!&vBOoTwar9(NN;}=ZU&=p`Pd08N!{LiBC8(_y?t*Ad^`9 zT%*Or(MGipRI*Bp@B79z=T=IL?}0HgN$lYjC`FU#1O*DCtl$sq#bx5-Z~2WPWk-!( z2RymGJh&sJ48L2FHb!=f;w`YYEBKsOuU|yKqMXf*F>7PbZTvV6e?@BM#s9LpDfOoP zMrN@LQzwdiPesrVl{xK*-!Q;7JD5Ec=o{L?-4Gj|v>>(hj(-H2U++xX3r9(9^1Toi zOra8C#f%SBAN|b0-v?^zzI6Se6<{F7{mhAu}x0H`Hii`z&@2w6d zXHCM>Zq>@IRC|m{Fkg6tP5*^ux>4^uMjS%lFOF5vBuHN^J640CWPS8PK+P;e-q;}T z5zF-Xi&r9aZ5dgwd2X=*hmdR0%}!iQo>;9(<_?ZxsS3l-Eizi&O_A=6Q9MW;DpzQS zVWc<6>EPEH7~Tnk4-myAb3S;cYhQouI?H}tpU?|alzaAsLrFRT6TI3GDyJ?WBAm;X z#ZG>0wPzi-i?RjLIRg5BU#f|rq7{fWwkK34o=yj5@%$XzRzlDsg$SF>?f?6Z&CpxZ zOb$|(I89;`j`~-)-+^TPcz2fa!CFlmIn;UTSjHF%oO|D~^Hd$_jbKsvFFHelpV<^o z^37sZB=Ci|VavoD;32J4fS#AGFrx&M#;u=jtHiH0qSHg)eK{I-CAra~gnASIT%{kL zKdlZ0O$Cy~{|mGTybuYHrxVe zYgm=-bm;a?xydLRY5cx*?;_ki8YN?m^N;n@(hsVst-oX0_vtgw;m%TdCiCc#I`jq9 z^7uz~xaoH;y5uX(Vepunx_t_cl{XquiVd%itRBNQhQF?-+*o=oyhb#-U-s4rvyZG$ zxXY1C6)PoLil-}CO6B8S?#x+O=i`Jyi;?$$B$BbX!*!;ADewfEI(Kp zBxHA|IVbQ!`LZ64_;z6N3Kh#l{tM`;VnDsWZx|2wLln%Zl~>CKU*hz$1y@ylt$TXg z<4{fn6DLV2ewkaS0Uq+o)yaQf#bw{`XN&v@CEA#(Pwu?Y>qg8)4Ck_}VP%gU9%7q| zr55}q889PO%mKpK6ceaO{#`;_6TND~D`yGkg*Da8IRVozG`w6i(xS6TT#V)x>QfIL zpG&s+(^ui2cN0-MMvx}@+T(#Dx>6qZDt0dl@Db6Bg;7olJ$&66MQ?VAzQ?c|-}t?x zKhPl|kc*s$$0OgY0^xE7dfVp$nJ-fDV(~~}f|J-wFj+Q8IMbeF>*hPk$3gG-5DR4+ zxKXPp7y{URJw>&q+!Gf^5@G{c1BulQ0eOX7aJk~hC!Zq!nf|WA`D^CRZoAw?u67rv z5Av|qT;y@zdp)eAd5eP#7nbg_jO~GeCRuF!FU4sy4C#nWTaw;p^n~K`3L7W*fJRs9 zYC!HV(9>!YSrNAf=^~y3^U&~RU#JX6*5f-B8hp3e4cGJZ2hxoC!9Q?sfPz zBv?0rni$&?+EEQAcY<ATUO!bOB zx7Hg%KffqhN;e30NfNsSsvB+i^ZkGO@6Rv(e>G9O zPsWwN8BV4?UA|nelOLUzU>QfM6mq3^5p%|JYRAQN0@IyzDo~em&)l3Vetc3iVid>^lc*?yuj=>A-|xOa8;3`>n!uQl7V z`(FUFwfdc@J!Hq({Y?a%u3RoXvf&E-Nt_u|?4YTq+5MM+@2;(g`=O+kXVC5otr_;P zdngs@2>N&h7m-4QY!Rr}tP}fw8NUBzOO1WyIxm+Qs!g5(6eI?J)t=i--K&S}?7;4c z1g$QMvP>CB0V5qwh4FnCIj4iT#1`YT-4@?SZ;20e!Dmrv+>IKx1!1)lNL|v6z&booMpIv z`sW)0l^4oTx-jgel79X>4EXA=B9R=6`2|2XKPP zMSEzzAHY>GjZ8HQd|}yf$)#EgFxrk(b6Py938*}ZZ&td-Yq!}!k40rFZqTPr!1hZa z8IdEwAglEVt)rcF&zUi0zf5P;-P%k>Ceo{~IWP9?y@nI;FMDpeUo0D89B^&nDK@BD zK-}K_qkcktw0JsWZ{o*THHy>kRz<|X550XYO=6e^v_x1LpFX|BG=#W0X(vp0xehEy zZ*1oJb%srtbx+;fv;2n#&uG*Q11V(Q475hM%7)JLFgpEHxDo&z<(k5E+-qjFRswXp z#T}klp(U{^EAc790G&v^1$E9&)SA8;|7POil1gS?b|zl*s8m^8WHP)PFfK@n+A_xN zUb^S%)q$1f?Tjb#58;U7qChV*Ou`J1jLSQKs#dGDP)<pkoZvv9XVu$&y>UZ>f6@qW-)EbTqOE5>H{Gz zL22&;IQ}tFWDH05@q<(4>r3o=-U&UY{8XTFuP&|}@odld@n6(m1ZU1c!=CUe` z=@I(5=7H!`5(Y4KTL6V)bN5_k$=AH-&astV{5Fw#Y#3Bg^(qlmL@@x953h~#f_UwK zK<_|i*`c38OtY4f&GvB$@!SS%RCpRPm)>ml7%6GI#rpP6g?fvHwkgqU5Q1u{%3p3< zo|pa)C6J-@wFsQF?V>Xf@KI5^r)?+~EUY_a7W^2&yeI#V`8_^;7dR?d#RjfUygX00 z|I=!E>(bzOx(jOXrSL=MbeEEP!oH+_5a(w{zyCBP2lhD<>&dfYCv8X-v_t@F?d6X} zL`h`TEr8|?Krf?IT;xc_cco_-4vh9a15uK`95Ga0#n1q7)_sgS;G6gw66h?*Wk$Vv z8?e*ATkbdAsQR9oOyo$=hB}1Uu6LRG&+3T^3TFjR8u?X8EF!vuv4Q zE=G~C5xDEqsxs3XSF8&YV#?{@3)tT<+Yy9Lb3@3t=blX z(&e1)BJ;v|`vR^k5K#*4bn$e*`yop0pE}3bltD;F3{fdQ&(8Sv+?etmrr%d1Z2s+( zDY$SPGdurzhx<*5xw5(0T_f0Z+Kl_V@@vFlGez8LvVm#)=X9TMpsxnNc(>w!%xe#d zM2}0Zjw7W94=Guv0s1i93_FU&}3%Rn|d8*;ml$HARG&Islx;8Ngm>@gouy$ z*pZN01xi&1gv?Ow`7cC1dXxMkk-AgKSnIldW_ z`0CfMh0~dDU2x=oJ|U_>YcKHM)li%shUzbVzJA@Y!-mf`$u7GYu-Etw_t zCVf+x(cY%qqCRP>;xMdLz2!qY=FQy;Vyds*^^IB7e~CbCWVi$gbQ^%9r#}QWnHPOg zi5_LrLdVOc2QVi*MN-u`*#`JY8ULmXVjXNw&o?v_gZ@A^TwyvW8+~4Fw^5k5bb4yu z-B(}_xT+$3K|^-&M(mIF*wdL}rHbS>f^A#sIqS&84Eg@@?`hsym8SR+tMNzHYb+dG z>pIz12NyomdiXP-HAbe_0jSbX@=IMgb(INIcEv>Cf&&4%Pn#cL3lGC(vO#xqm?R~L@t`ZG$lmKqH{HwSLH$o`>UqPB4Wd{Dy~?nA z5Gjl1JME)4Td)7wzNjH?u5ZqovkvT#lL{Qe2tnVvgnife1}?Uf3r{$UA07y~Xu5`f zfyeii3iXnjVpXq6*I>lm_XZ76e<7zHr3z0YHu(+w%W2|A0KRb<{uNu6`)o^j?v3YF z8owh`!$7~kcfWoOCQW6r$x<~o=vkjzarz|k2wS2hYZK?ml=s{n}BGehH z%|qZ!k;-7cYyMk4fyYN+=4MP824w6H6njswyIamm(sp?-mUtAqAGN$;NWy?L)~_d^ zq-IMcEnyp`%uyTfBwJo{E|#~^$cd%415WieZ9xlh13UPt$dm@{T-zsSbj<5*ovK_D zJR*U#xJda~c|3-x=`oYxaN}q%e9nkgooU%2Cg*Og*Hd59@B!_-mt$ACOn)d|hY1pX zHZ-Z#mEuh3%tZdO)0S9fm6gq}+KE&|6A5k24*y!0J4+w({PAI7eJ?p4XCNM3zdfb_ z87djkiw!iHI0A%$6D|xuo?N)k$Aj>R66@RQ-@o6Ho5f|Dv;cYvVC^HyBuiB?O@1uH zE5(C4zITEa?+L<;7#`U=mA{X37Lr*ot2dz8Q1Jg#X-O&)94ONek;AK_lT zAg^I7HiP@7%r+A#t`cN<8fgxNA8o6fj`@h^;Q8rRh~z@$bl#40W(iIG?JqllCb?AL zv&d~+O z1jZyi0w-gAye|c{C&;+YFE)H-XcLn{%u9LW&+w05(DwCd?(!2Iv&|l}E5%F;n#&s$ z_m@gc6Djb;HLmmZ;_t^SOvE9ZmqM7unpPD@#%|XD$GEC65Y%2LlX?{eDmx4rTcuDu zp%*rVM+w8NfGIMsP=elYVrKTs65~CkifM!YdmS_ud5&PxBNfz-GaYQ@q?enzFYrK1 zASpdm{1Qp%NWKsx=qOs}D$)zXYX6qA-`O!2#C)RJ{4M#<;Dm~8p62D+n|y@ZRodjy z`dFt#DBXU{%cRjbkNI2o=`7R831|^|N$8qyMQlwE46Lw*PUrRPU)#>TvB53~-B00F zg2VP?bVaK9k>)$i=bknzEf{_A9BC_QjlJ@ZxT6yf1x3)*_fPaM!6$g$4BqcAP+|&% zCO;8Nu97afuWe?G*NOC#HeR{68O40k))s}Vp5nv0M97-l`)Y$b&~w6fS24l3!DjCn-nWshG_(--W1I8~{l~fv)ku&8e&%JbTzYn)WMXpc%VWJqOSc z6ZQA{c?jan9NOPY^1qtsiYSX%aB6%8jQ2A_B=`=46wVg84Waj=vMW;TA@!LIKn=l^ zc`JwEJv552ZrGoxQm)`ALe^P40swvCMLiz>*umtU=!?YOH*wd=qCll-k3DyGk|+312U@|@Yl2o~3h@Ua8R!J5 zIC1GN6cb=Fp-+0pfxKg_c^i^ej({u|COjWmBau#(SoIH5l4JtqM`(l#yCubS>Djt2kDR22ZYh^X(B_e9u zJVz$xk`k9`oQRYi-~jQzM$S71uL!UnUtY1H*FUnH>5 zkP^>fK`iIMk@VG~!GOY7h4rZ(m1S)yIzkuGoTRvaYw#~PYdR(S?vP{U-AA}uaoXaX zVwa{`4OOjUy_5|ygDzTd*<`O7#H%WxzvgX0(ve+|Em)@pPHA53``t_Cy*mArgY0)= zI5^Hr2C{wzd(6y&Y#DZj#{8O|#+EJr^_;$mYOc737(Z%A34#EJA`4A)3Hs$Jg_O9t z+@@l!r-hRCM5Wc9y8$q|*Py)FO%PX;9tMo%3c8ssD-sG+yX&tN3k=OwSJ74WFy!%F zyrQ&L!k1%1OS-Sms_rQi=a4l}uec`@iXWF;-C{lbuNCNq;A4dj9%~K5lflEwYcVrISK)T z+PFnXe=`G64InRg&G1^y)UxLEq8$7VnzQUn5FmRP?SeyPa4&iH+9hNau&nyY{;&Bt zf64QMEN?Z5Oz?$?i*y;g?f=B~6tBA3{aF!B&4TZ7k<4n82v^H^7-tPo*9agdubbhY ztP3w^tdGKjOhPVLF>21P=Ul%=*hs4`viuHo36r!PkT}acbJ@HB?a2R(KU_>-O80fH zdU9o^C?NFv#I335O9qQaG!MKIV?Irz4=iC~!Ur0P1du(SOqWoZimlYo{%?LRER#>p zZF<*XZQ~oOzdri}tGDwWf$Iqy zKqJP})3i!B*t0r1k`PN@ii2gQvQY;Phelrt^Wj?tXsT|=c{JzcYNzi5Rgx0l2YsN< z3*v%=^n8T>=gW&g6a?``jRvRs<%aP^_`V6FZsdq9s5&^;Jb@@a$tOQsMc@~jRZ3H9 z^sN?RNm_Ob{Q1Byk|+2v1rdA5NteDMru*-)*)R-6Twk?jH9M)2JdNXC%NYB2su#MT zD&3Sso?$4AK3ctE37Z=kW>#yMiC>s=lOzyd{K%Go?#1tc zeWznX`yT&F+t{j`4Q5}1t6!b!P{;1Oh`e=*X&?GL5G1SFUw@5$i5Tpp?R`kw2l1Km zjC|$H{9`z(-;|3p9``9b<&6@-!3=h@qz57e&{2U^@$K@2>Ef*JRdUw{3f*6b5d*sm za70A)6;0hNu$(X%BbnQ?9{qb}!+MXkmwyXrgEIcCY)J3Da5Y)PrYJ?!@^ zd?D255An7oEJw=KS@l*J2>6))u9q&l!Blh&Ah%TTAm!Mvm#rjuD)pjk=3Uar;bjbj z__#R3j-g~A%00kN7O_qKAgN`wE#F>9RB!1+H^XFy{KHNL;NHXRU`6$4>vU%^-oTr{ zoQ!-Zt-Tw<2b??YK+kpJrr^9MP~;o_g1ArzgB~xNUEm!GxT9(g_Gks$gx=KlK?b4%X&Zz2iE+9tYr{P}o z`s*z)`NbyGbAx!Jc40WGgvSw-plz^VmP!2)G1_|sU!N({#l1)eD8{K%qEjDx=D849 zxjgB>ctB(Vo$ZXh>#&;kWT2$X4s5gb=UsPBVM+i8TUHnp+i&VU@^wvW;ba|-MFQIO zTxtgSo(NgP9EHIE7Iqa{X}<5ezRZ<}x>IY$vPohJX7#WW;cktt4V&?YKp#2F=hiKV zjJZ$M<>v-PJF1F|_4R6!@y)NDNVuQ-PW38y`E1Db7wo#MTSff#%R5khRaz* zpb8)HLO%j|Jj_d$7nYWcus4M_v~eWj1y3)$Jn+x69A~ zvs6g$x6K&hGZgon7~24<1fCg&z|&u}nxf`s<$n@;yRR}K2uzS%9LwO3S03th0%V&X zmq`l3iS@<$7?iJ?U#UTUFetYNHW=<8Im@au>DW2O%x5806IG+6yArPEUmT``vduUD zR@kCUV(q2Er*3>=`XI!@_*S+Esak8cgvi-=-)y_2(z`L{m0KvQ-aOg)xVI?fhNE&6 zLw&#_76c_8Kz?Vez+1VV(oMu(s&73Ad7+zSQ+5~(=zvw(^8#`UhR~`^T`+8nau9>b zlz0Z1%iiEO3tJCe=QFoR{C|lVg{ax@!zXQ5usB!0?3uFC7-BCa-|SN@rB{G*iKutG zy?9?Oy1sOo2>^gzk8`;Lt5Bd&^P1>ut`=m$lDEu#QJlZ73l2zGGg`hR6HN+~^s_V^ z#^;rM^BSs`ZM|2Xw>K22w_u4gm&#owHAg^~Z@y!T&M-Ft{OihzQK&4^1ZKh7!~gMM zeq$Am`q)|3K7k16*-`*}F-sDn#7T5GvA)I!B_&kvDI@4IF zKX3_e52XWtoXFKU&NlxDJTF1yLY5j^En+;|E8;`4^VPUM1&*h6mtuB-jh#}9W!>`z z@XT9NQ8u7GMxc+}H-hC*;+ZNiQTA_rT71u-QJwc$-4iBn&eD^t-Ikqvbr!(L6?t~D zceM9w#3`Cu1YCH4vSULbW0#{#tVPWt#GL&2i9d$Q9GP2!0EKv zg%LBLEd2%oe1<=Fs#`c1VI~r zABEU)PTA*D6$NAm+RpRd>KyOTW}U-To8E%5FRGu{7<)%}gSazPYRx2KjZR1Kw`Jls&ZGnT@pC?##T3E;5TYzrD*EdPV_riTmm*eMV=vtq za*wfaAEtA>`Yed=W+d{A_oTbh!x*0%zqKXTd^k=0915D64^YV{iEuNTb= zFVHG5XME3I(rF?6Q|YwKQRHESAxqLwE_LtJsFe*fni^Arc@QyYCM#%;nt;{ckP@7h ze>QkRaud2$hN>dqw>r!^n@?FyrhXOH$et=}yijXWV@0=V_+{rvi`nRGzvAeZEWk=F z){AsM-*)LW1i}gkJ*2L2sah^ePN$Yob zj&EUQ@*2p>ST86>$p_URgouKxkfHD7$lKKu$&*_`pEdvh6e}Ti>WxBe$HD5= z$Hi+z$WH^NdP-$0y|}r8s)MAxYt4Dxf-)1PtG0Y(;d=xgbb-6r3{AiCQ=fqBC6`-W z5cK(*D1&-PtvC_QHdK%nw0vtRAn&_Q#;-5Fjk|A~(64F_ubj^7hr5Q~WEnb1_v_X| z;Sj%dCCmtk7o4u}Ss>00i13tMQ2(oDAYasrW+N#d=2BVZ;d_keuTOFtrDLvg$~IQ# zBU-r7H4G1Oap2pe;RQBQqQ*Gt;p)W@4*_@c6Pe0mhLacmP&>|51(n9R^Vwq?4lD0} zAA6@%S6gzm93_1dzg90ODFFq-nApd>@P1HdJIzrK)Gtpa?U;X(r_{%==RFhmcb^fr z3IW)1!A*895v~G|l3$Zadr$SWzo^1~nn8YXMY6Gx^8Jm8SoJ)lcie%%)>gRl2`&nm zm-iXj@_07i<7$vomm%jXi#9bKTB=X@gdCwJQLkJS`9|%0Of!2?7}tG;{K7hmb_`3B zuoziEHA)h}X|eLc0p zqWq{?8OY{N6&vVz7RmlcP$&*aBY+3Ce0a&(Ryc4hO{LtUX3de7i>YVz9FX^R1 zm3PawMkWt23y6yE>M1?&x{jqcsa^UXhfIn*Ok^BHS%>^kbfm@f=A|;Q4uJ0^|J@I;b`cp*9+qwk2g9m0*QW-RmaFNp@VEFu3rPsKP-q^>(W03{5 zhoujvn9T%EFPtq0%-(68J%9cO^8k<8x%$=+j&cBAfFpF5DiHiB> zcRJse@q0V%?e|%c+pHU53voaQ<5=+2^AZHX>(b2U|E~p*>6*FlDNr{*jd$u3K*na1 z1OLI9NX)YSfDX4uvkMZ!N&+JB^0Tt5=-I1`1}^Qt=9Q~rPz`LZ<2fyCwVoI0Dz9uM zEgUkK`|!NRI7zk%wKg1X>ZrW8FR?x|FurIdkW4)NbCkzp&ZJKeseqZKUiU=wB;rtx z5pQ79*NZAK{;B@>Sf*TR%+Z0np7d`Bf9qaI4U*X)K6}AeVLR97mL*BLm&A{}3sL@k zBcgpx`d38X-_y7MHme_zrI=rPBw(O1VBFKrr4!e%@anMu^5qN0C!8e;6z)exS>X8& z+9%C(<2ZmV+X5!fmKpB7Se!AQKs?8){KUeX?x&Y%IeH=E@Pnk{6!3`txyBg)j2pv> zs}s|&rO3A(emL`vvW}!MIfPE9Pl=IrgG@@dD&(tC?m~1AiVl=Ku-d|yW$ZGiPAbqI znubu@D(#iuu~3-*JmK?NTsw&tnyu@E9I7l>L3EK=0TT}*Ar-t)Ta9=qWvl<@QWXyv zU8SiNEc0$V@XI>s;?MU+HIYKU=B7!{AK}k-9_5JzJs0F&uWVxX>q$lv-;|_e-z2=1 zjw$6WFmHDVflABGw%roD`m~9KNku$M`{sfLbG0&S(qD~Fr3+^V2k_0En8K5t$p6li zn@>ZZOeGK^YgVLA*7pj(<`z2drXc>7c`1D}Y|Rjwk`xNzvDyqz{~otLXvOd=oR7>2 zgx7Ldvn1*7t=PNo$prhqDPh!)^>y(8CG^1LjM0RkldrE_Z|9!vTJ0w6;|+q(tV@sb z-;e1lfzAs_=f^iMj=t;%MbJAT84R@dy@0AH?r8d&^b)jbDN&K2ub=)ACl2J|s&O62 znYMvOjN<>h5e}W(FZv|oP-W-&hfn?bFV*VPxdEavK|mn$`VLDR%taJYMa_)E_2)M_ z3ZN(RVnJxDr`ic6Di-a9Q|UyYO+SqON{kH~?oqa|gb8Ejn|-9tMFgxgeQ=wLWS`Yf z@H37)e5gN7UHt9^J@B78oaS~8cM6~Hg8$k|8Kv6$QNc+i!(*#@+(>>d!*dO*_wF<2 z`)3jso{Sp=_u;k%Fe7Z6JM?=RSqeE^NUWs|6VVVSNomtnVxMR~wil=fIQabct@&o* z>7Rt%dWKEAh<=~H?2oYVO4x4ehfkq$(m;b3usJ*r0D}G)(F5@Pp=2Oyn_5F$_~C=P z+mM9|nB)a1eV&z^MV6{`8}U#c6<7~2{W(x;`sHx*`d-5BQsG~Zepx`+ru`f*BJzNrY##*V6@B~m)HzT*`AbLl zlzlx;@kH!}WQ@<$x?ejm|Y}|NJSnC};Mxh*?Vd1cjkG(MI7jZEiZ^6H8E@8NV2(xrl9LZp< zOyL%o+^kFx&M&+}4}{59_72@cb_V-fw6fL?UU>i7;(@Ym=^nK1x()nvx@uRgKH`bF z)IwOY%!?w}t`cp%N$o8z(m0#cys2v1N8ADtq0_K9lh05+91zrjO=U6gc=wpVJ3D<& z9xQVcjtocU3j@T@H<9K0tA+IIW58-wCLAtTybXBwql;v0d@0jLHyd`8ye!gN<73cH z&!>dnb|I_0Q4@HA4LrMzMXv6d+V~s@j=IAvS0OzIg!Ytcc(pigEFfz;bMfe zj>amiK@vB&|HXJOtr7c=JM4J`Ev}GhdSB{ex;`OsiiZ|_7WLrr>NWzf^UP(F1itIv zIkaCVCfAwV85lH;*Ruytn*%!vuodb_mw3+at8J^dT zb{}uO9x-1YYT7O^HbQWF@wYS!`pd$NA&rfnrBZrW|K z+>SMdvI_wsnOZ^D>i;%?8Q(oiUjgEX+YJHBLO)vK+lgU9$xNw72bP9Tw;IDe0BUa2DyKbeu4PrL*99_XF@e-b3atf!9f)sUl)MN*3AkA=}*)AADXVhEvo11gCMYU zOZU=}(!F#_vxLCX(w)*vhja-d(y+i1(h^HZgGegfu#_Mo{qFboJntW{vv=;CbMDNU zPka_2wP9W!b^uk)f=#ofOnu;js#qq0al$3^`iIC*FrB)9_^Y#O8a85ZK`{#E9L;?u zJPE~VY_*J7w+q`-LO};-VO>lxsVFc5q7$WQoz*ouV8(~Hd@%Ckg%$Npv7kM+s&VjQ z<|mF(jbibpTWYu>EZoOBe?pIW%{G4{?i@wWl^{ca)QHCei-{yr-kvG4GFdn-vyjz8 zo)Xej%MG|M1La2Tm&x3cI^quTIv2HjD+@KMgdvShJf+h6$A%w9^frD*ioZAY(ESq; zX4N!_dfB>p^}((s#JDadg@8Bo3kDwsI+qMl#5?zzMOtQVzILe1;okL26o8h1@|X8k zmrnVg!~2k8)IblH7(CjrkRBraUJB9~bu&)m!b666kds;fu?yuFi4Q;TEJ6Uq4qu_~ z7k41^;zTZO^;ra^DFcWXk-4vre=_Nz9H#?bysrqLdgGCAT4Z)+1`D^GPs2~icAPI` zp8w}uau2Nq9l4XK0zG{}k}G(EFQFe$O@D*BfeRErP#9%Ee`9I|$R&^a!s}wlbJpw$ zzE=+77ecPKWL6!d#xcSeq6#uob_??lmH06@M!V_$d4)(A zCF>9573ZCU$b2EDk)atOvagf6aIkMi2vv5#Pv2$DlTq*LZ0Ser&_aiVntiMdZ z(c)AE3CVt|iti366giV?3446>aCiNxRU=y?dGaV@M1bIXni~?-i2ah0yp#O~kc+}8 z>^XLl%(i%=dM&K?SK$HL3lII8bTWnJB%{dPCTX$@P&i3e`X9ACsLA8#CAU)TAmX^nt6WIc(Z$EP zJVffvFwUygCUB4k0tv5|fW2%y{i_rI(rRl0a6E~A;~IR|qEWooy;iK#6)ueQ(ItgN z6iLh}lK5rT)R!zJdK;?#s~-7|5gEnUBDYEepQ45@DeQpI)1kkcQ$-ZI7<>`r50;=n6>K+(YS6#2lLW}&Y2+e ziQEsoPoz=urug`8kOvkF6VT?`@x>t&wDOL9Blk;KQ-I=J)i}H+}Wp1q_R`otHlgf>2XFmd&kcqhg*){A=O&f zWe$`;n}>VbpE7TtMxj*xq$snw05$*O;rVIK1cGkyba&sOvO956aKPxf6iPi+po!ts z{0r142u$>m&}DlBp2J>;zJ1qfc4(>8Nd!bBdJxilt*5J$D;hjfMaWSbCpWU2K$b6t z96@g$y60$_zl{gJCHOe|AcSx}fr`WdJF!yW3%J&9xxuVi?O2(M=T9f0DFq*fNnvMN z`#;we;?)Y-UW6i00H*Ux$DZ;b(8;z@LUO-xMUUfoD&U3%NZe9*8l zS_$f8f!Jx3sPD-tEIjRgnirU`@k3;hf!;)KFKl>&H6y-6`xyFV3w)7%nxxB6&i8bH zQ*s$6Tjl6E9I6T>giGzW|>&d5R~W{L3HMdJIX zpIpM$5(?ACX+F&sL5!cSgA^`h+%(^lctECc_-8uNDp2v%XHdJ{w{(K={yr`i%(ag|7jZ{lFg69G!+=v4dbK`R=tGkFc#;MV_nHb#h3DwigtN6_ z)zcT1f&D@bQ@AgrnfIqU^^#-Oi(A!3?(LTj_SXyn^o0Ly5um_Td&1{U-}Q*t4SfLi z@f7wv5TWxsMMdM)BV*I+%H5S8Cz3ZF>;~7v-e9uGd8fM`T0gMVOBc>$cpiQd&+66A zelHuco*7BBrbR_oXVTVbwD7=%&NItM+KQV9{n`Ki8(7geE;|LTqaw;340sWcKl($4 zYxQZ54n>zmICuOyK$(aNFGI@L*eGp`CTh%|!yIXT51ne}5Gz;vc{u$1s^^&<4B)SW zKJnH;*%913@I1mK?MXc&&@`(=3eYg8)NH|ekCZPAEKLuyHfl3tf2SeLoB4uo_WM(< zcz^-BU5W%KZs#a!kJcL3R8`(! zzuJha@Q(}TDrgj?E71&vtoRvELea$?gyYDG->k4fNCM6{_bN(RWbjisDtZ5qtFj5g9&5%fXQNpV!&#W!7;Gr1<1)s9)BjO4WXtz z6v2GsK@NEdfZ(z6O5Ei0&>R(+wV{4|G+bCEy~>|<#fW9nlz+}IdvnA1_VDo>|+rzcmM(9tk7U3{3cKN^-ZCf#(+G)a1#7og*}lNxtBG zobh>xpZ8d<+zwLmUx#WD)Y_SlhdlOG+~+Oh|B_oUMp-j5jm4AB$iK9Cy9!3yY8E%N zN<+TelWPPbhEUTl$TkezntOwv0#~Pvm-@aZ?!{+1tNd>cY7jkVC6cnPxlVIJ%?~1Q zH>%io`c4mU{J89AFw^-Nbb4cNmzhqze4-Wgv%gCk3P#-NPOc38oGXByqbs^24%>;#cAL_R21M3F_Tcp|XCih& zFg1*JY9frdU|o!lf>(Es{Hz(0Fu9T@g)7p(vqU^xs!u%nAX7F>9{>ajRFNx9_A~^+ zq~j<=5=8DGL)2g1@)a3xeRZdRe~d@4V41!WBRgW*q_ffXKk)INKT^LEK9q&8?OX7d zxB{icQHC|9crZunF@5ssDm!)qmqmO%*LYg;mO{NjiTi zeK`%dqYPrRN>gejt=A4~C0S5FIcvscAKN#5JOwHv9%x4m0IzfP%-=)8i+5JHiC4@iw)7q%nGJA`N2ovN)W~v`mCRo8|*q zW>tR$v|13`5TNR^j_q42ijaiqOhQN&*2yd$9u-lmI$Ead5zZ^YT>jG<)~NQsIi;Ly z@ctk-fAh#Du1e7&*S0oO$gDj{ZK`tsSbYx`Poz_o63;vD)l8qsOsPnh(2$TsUo58! z2ALd5B?|wSF?K@N%5J`2Umv!)`r?XGj%e5dY+LiwzQ|TKN?hV33Qj{hBw_e* zeywy18wxq@5v_I8%_akw#%xB;@AW$CST|}h*o+LWbEj~s&%1<2@4NDKMfN;315`TO zQhuMgP{i!gq@vn(l~A2*T`X|BM!a1q0QRWACzKKi6EDS;=}`igaL#d&^Yi*ts?vxK za&dI)gB9AZ9})@x;p>mVuBr42jeCdnllD4Y$%Nw?s|wjO8mqJ}@z0&1i6s>tDf`FWyr{I|K0q_wlma+SkR?0Y`w0x!x8A>gtqT~ zOe20cWd~OD=PPME+b-*>CauB2GXmU&ea#m@SyS<0aBfjFR}#fAc*o6RxcdhyikCD* zWqEvg#04{2vX(_$DZJW8dG|IkFJuonqlo6}s^9SAL?%CZvcTy7`pQLHBD_YHMW_s} z4Vev@7oNi_p#q~Shw0a^LZ_H^V{XJyb2Fr7=8D01gS>;hncqkW({UguZKPZ6gV1;D z)hu%}8KRbN0d5QhH%JKMB~j2LEO_{rGo0C@yJI z3J_CiVOB%ji18q7FM;l1q*9(Q*lUoCA~z94G>LO)DfF)Z^Uc|;rj8m3O5!FTK9pLD zXY=ra>R&z%GOdC1mSiD|^m8(NesX#dr*lM5>>nb?K;L+LltP9wxBZrqm(A_4lB&S66YttOBm$~ zdSWs`(djbnsNZW`HQz|bf3w9D=oDxqOedlk7Z63XV>!*bl(Y)P0>m)N^x z?r%I#{!3aNKWsfTxcf)M2D6D~ro#T+@>s8uS<9T?C$+BNEx+T+QjgBZ;#oC<#)!kd zBY`btT`wT?EsVx0^8#w$^h#*w>!wqf8uys3e6j^ZxOYE(Z>es2%{=ZvvGja)FB4g9 zf@}H(yFMIG>UR&4f7#@VOP~*l@$Z}0hZ|qg({xpwf&u2#kT+63#Br!SXinA)^XjT4 zf{zSBuYxZY=5&Or`2MRcY z+*;BplG=0&7o`t|BK%Q7-V^}7&lEoN_(*3IaYNVrfL$t=5nW)dp=xQ zu_t!9XSzV7uzcpLtukVW2>Fd549t2AyhpK_6bkQ@#UvL2nWT7!swUbYoK+xJ=Adaa z1|O4)<`QXn_ncst73E*@JFJV0xC>V3F08wc75m}eUrlHPJX1yhV4vqwM5{!wulDR} zpc%eTjc5yz>Z@IECrsk#RD<$8qj>EPQwsofR*K-k(x`sY1+bW$?8vKI-5@OmNp8+Z zQ?tpqrfOG-?Ke%2A8c#dEW$a>!j(Tui4eS(dcs=`+g(vCJc2IF(f=iFHKoreSNc;KSviyVMi-wo~;bg3$oh!t&sRMyCrkofD|tI12F~MzW9$?nOuLphRda zPbgwy=u|1Zo;Zt{kOyJM~S9d5pK?4X-`ThsfVJA&0$UD@svcMAt4uA6D@j#lfT z4@QfgnH8Jg_lxznee(8)$`%S;`Absa`Vl|}-701)XWdXoGnB9=K#})wqwTsDx>Sdr z4M>4S=6s*lEb&Ze)(Wwvrq4F9|BoPFqzMyPS&6=pd~KuPoNR=oHv7ZGoHc$ zqDUSKHbh)wU3}y*dzIJ%hU##|;4klB((lMraAqBF$+vjl-CpV~@0*3si@4&z*Us;o z?=nE=;OlY~P8Qz&jt~Q%ot6D&;!YnzO+$bibe=wx(1i*DjcG#gCQ#&@(os6Z+(h@! zVW9|?X`XaIO{NAe_3D}Hta$uy@6QZa9!Nnrnl%(Q$lJwNWP@%?vi-L_G^?}OmrIwg z+1z1(dK;F;NBL-g+f(!Jv*u2$1QRlc$hG|p4=FB}>r z-SW>lIdB9qg59aBP%@AAbSp~^NBJ)`-ep{o87Xnwz}NoVPdoG_corM5D0G&VNc8=X z8Gsa_a9S@{b8(Pj)+aj3wm!Vb`Um@N98ERVARb7(`UzwFsI0g1Ujj*<3o51}i%qQ! zmIA>4V*!d2f!X;svI??>4|M59NPBXka@_0J9gn&kp{v8zU;A$=cg({&9=Ak#aM=<1 z>X0r<2qbRjVOggpH*JW8cTH=Ai`Pj)^7Gn$q3hgFNO?cBS1z9IHjiZ0;(PHD5LDB8%@4CWo%e-$llrrCT0kShUx=?X=v>Q0VbgvXY9# z&p~o)W%2DKfGV~j(69-M5~3~!qkj*l>x%VJhtB`?p2*vU8+pbv?>GBM=7?hkIh>|M&81|n`!3Dm@Y+I1F- z*i@f7T8VR?*k6!Px`+9*lO5sIx_QIyw$fp(<%x;-d1;PlF~@}huToiX{J8L}<2~^e z%5K9z`Plfot5^U$>ybaTBQ5`w7p&A_blZ;%`{5-&bDt(H2`bL0sXL`&OEEmvWbfz} zzI%haevIO?OYapFr*Av`!aJ1<*VF4xj3V*D8BZg{>+Hf`YURq#adSpu63V%$PN{PwYrrsF3b?!tU21o ziHyVjrBH&0X~5ske~zG{2oM5`+9qb1B&os}q#^u?%YM>sS$_7)3%7j*3Z{r6qKd&_ z`?=c^j$S9SPBLK8@D^w-8DHkX{Z>A(?#je^EctJ6<>hoxf!f;xVTEF>6jPYSNKEMh z^Gz}{-V)>i3wGw@N=OG1-23*fI$1ZR=DpBhC+=!xnE>C7^~NMxf1o0XXDh3~TBhA% zmSbMIy^rRFI!IPNK1pksbdXUOCaq=JC4^2-*3XCMCi7bZ*}!J3GJDRjUtBuB%QH$e zR=|d#tcbc@Quw=z-`CU7OtRn_clGcL+vKh?)1F(UP3wXUeOvSO_NITsS_rr`nZZ`)L@z-de`!uqBy}7qWS^SSZlo z6^_~*+~bcEylr0kmq0tbRMJkiA*eWW?1*wbFVn=1+`ILG!h$R+En(p=v_ zmJ59iHI)*zsXi&(sR=`n<9j=5Ha`t?b+)(T=p{WS#wkGc>lBgXZ!1PVM+Ep7~|pY|Re0eRxx1mEXS=B%Hk}+mvEhB_Uuhi)Yto4 z9_eN1`NNc)V5J_V2Jfj*76AUIELd7)UIkqH6`C`!6%DvvTPjo*=k`WWqUeh$@bo%~ z7tdU5;9D22_JTPl2TWIN?4K!mm9{@ATqF#9kQFB6J8r}%aylvb^tmygkYKi|lB51Z-y)<&-&dleAB*H&Kd8%lipN5ud;9Tq2PFVmk?Lk#8Gqyf-3!&aF zPOi!JWu?hJFPgA2VElS;E~xQ8xHrzI-N!!%#Clgi%C)zOS~}LS~OB*POi*B zuQPry0%V9S{U1a)Fewn%Qcua+J!TN?Js~>)uZx)TDqIK_@)=$a3SfZH3z01F{nBzW z_mPga6TdU%fco%n-b+!N5tE6+=RSPN{^f;pFXzuUdZwB<9&UU(`5cjyeN-(v`Ly^6VXn0zGiZOJro!W z*n|h01C^MKZOc!SYC}rZVao%$qjP!RwF;^-S@`vNKd0TNQSzAWlKKy@mgBJ41ci>- z&j#5K(|NlR_1euTVXt8_8)~qz{_A`+eu9qJ)_z#Guh5f@9amGk zX8$YHIrYe+Pe0QzrbdA|XC49wq2@qbe1&5s3|-=@+vw@u#Q)9J+|xL$VA>A*_Bwfv zzv6>#7Cca`wA3w({1rqz}1>iD^cdS87IwN=8l3VSe;a@MwA+r9T;$lvLs>y&)H zKLLlYSA8__n6x)mCdlQodMm*E9-bNo75PUQR$E$3ySpHtN$%opNl;yzwtS=KJr>o< zQ!~@=!7|&zcc^aTz4FRyh`;t3<|KK%OUyqj_3ET~NMrG)UK#cI1Z|2{zyn1Y^z&xX zRIi?rP&ck9uv-HmTn9BiV(+_nyNX*C%f;ogR7ELXfI5n%+Sx?cmn-tQrSl$My_58WzIjNVX zS=+uxR&8Evr?*F2@g~A)T-V})iz}H?W);fwOOP89V-6^IwjRRXc*`u82ft$F6^&uB zJe1Zi)_*3r#ZAh*pdo9@h2wDZyfS?Efi z{Mm!;M8mHncw-Q?%^|n&r6KJajqy>E1wwm68HF3?bl0yGEGq8UJPgve{Dx49i-n>MAk$dT6B!G&pbg6ie*$ ziNn?zMmeNK9f>%|2;F^BTk}Taz%6qC46)zaSyGLb1fu>pU|LK_!$e_=T^kKoxTLbc zxX+|dE}LLlVh&KHl8KLApfV|iDgFLcCVl2!h~>M7Z2#BLyRM>ebaUP^bEg2QIFLe4 zwustK`f-{v6O0VV%LtMFc^%XV{(gxr)#OEW$eDIc+l@8xq=Z3+7Ts1*pn?X+w`CF= zJ;AP!_BKkMCvS@#9Sk-#ThTmi-M5`$sU(GiwSOe<)5g%k2-r+B1*VPN4I8>1X>2B6 zLeKmkM+wbv2Ja3q%^IP)3OU57iT`Ti!b)eEsBu;sggLdK_5=>zlM<=D`1&@=05d?1 zfj(yfFMF$f#*y{MJp`_zZ(DUnse8@V7W=01L{~$Cn!V74dE&n^YboX*=>ol7OyrKo zZ`fY^-aI6j0e3Upgoo>V&AH_3EKg2yF zVuJ>1c}qnu%9hjO?bEY8^dYiLP@nbM_u@~IV~K@6Z4xEaWk(0_GTIzrVaNAe*XuvL z+55atXmVIKEm@6wo;tX28Zn)`mT=2r57Gp@bnQ@aQ&3UG7fhC2D~mnKqzP`KkczL0 zvZ9XC%h?k2&sIMxk(WM6hbg4Z$D&Fp=l#vvJ|kc?b8?T(o5MPtj=t;rdfpd%2OSy( zubm?3kD0<(F*f_2V6%lZ8`#>1OCxz364WJ0dX}}i1iz+yU>lAc*H%3VL#``svVcZ< zR-!96vyk?=LZR0D3^8;WN=5wX4IsLZcHE&SAt4z=^!O9`Wcr+d(erU=t%Avg=CT~b zi(GS@yb~g)%*$_9t%FupUoRJQGP;ig%ug00FnIfIUdDgnY{Wm*8C!l0<{f2;ZPD7% zYxq68bNyjNeJ71aUy4|pm_=y@pO6euB^t-{nNY<`vnZej_v`I#_}5PR^{(RZ)QG0+ znH<0es+S4&HoVArG)YwF!B02->WvDR)L!m)Y0$+#*!2kSds$NNzxj%? ztdm2HdCYqqek!_)S*vW#w#R;MZsIw7&z@_cI5X;=7DSqc;q!?c!KUgm+&I{|M|{FbQNDiCf? z6dvaGYid0x%iCjaAG&^wq?&AT<)}WAzw)>K_;w=>iUR-zF()VoNjq`;81nXT-6XX^ zcI&>DV?4%#NOuvsJe`|#F&4}AlMn18D{U^TPwI#4QlmxBva_P|B%D)=@GpF`pZ-Qq^wOF_IO)$ z>0y~Zm@#bO;LQ5Ur?{~O;_0Y+9JzjA$R<6Kbsm=?(%z}}8hP5X_e$G1QQ79)=Z~zq zWgCI0E5TS9x#S%2sA@toO?z0Xom67b{ik1fa>Hs)X;ELszKf=kqY2lEVDk4qTJhI7 z{_DH+*mj_VL{9B%A%(Z$m=<-ot3)fX%~u~pEbi?sn2k;7AftP9)HccsTJb*tL2-n= zCb|wUdAf5r1-~Lce`PzEQ}MJ*8~})FXK+ZWWs=XPcgZ-Yk8#y#M54`KP0Kx9QaH|r zAKdI)zc6x{DyULW0)G`b9}wcDw)PwD^$>MYBgrARp>G~Iiu>Fz;bL=5oQd!9d9~SE znXQ(Fd<6G}(Nix8N0hs7m{^SbPuj6nj9b#cpMX0VLCK^S>rr*0(9Xw0O@4{*NZYC2 z*kRKHzQAkhwt|DHYHWK%RO7VCV8II9ZvV2H3322Jz4}G!5;Lgp!)cwL)*kk1?-Y}$ zS1m9{7apS`%fXYUpFMI8NJxlG`{i4UNtRMd7nk;dyQVn(Yqw?C!&A@4$h)}0aO6f? zUbTP}%mU=Z%3F;vqrO`?k%`*@B5wUJ_V>h7!7oA#WMXVyBA#jR<^Xi+B=khwN7yk( z*Dh+!3kiuol?!(Ci%Oi+7{g_Z6}0`*$*e|OW}l1nn~_z{%F^Q8C(NYWqe{b#^W$g6 zzz3d9rwykVPTudTOAai&@{r{ox>6rGUXq12OfU!UppXye)Ttf9KV|@A%G}66Kf#LC z#~%BM)%3R$;DB#N28^N;abGd}Ak#j^^Hee+FTT0~35FYDi#o}IhhHhRx-GTmoW(;{0feN;> z%-keb%3k8s4tf}l&@AC3t}5jJ7tsFfh%K{gI*Wds+V44FVX%l`jRLv;cc#$Bs1cbc z^HSWYAL!FOLLzAq6g=p3Nt8s$8hG8zL4KKT0W}lwrHA8_(ES$Ds^{r4=Af2H=IOqB zs4u2eexG3zbDrH}P0T`d*}@rGm7Qh+Fo?Jcea6e~x8Co7*uvov)~4tb$%6^xnPmwa ziA4;`zR~7}u}&Ugvhv58=)#>tL;KpBfq6>uzAL?3x8=Y3rcLzPQ28Uq zp@#_u$CulmYDUa|sGk1H>H=3rMDvk)_l>3Ke+k?TNp0PY_VI)Q2c-nY2*#4NCgjlc z*R7oyMCaRz*cEys^2;O^lT4Zv-nx0#K&H?lBKXHmz;bfy4do91A}-I=Pv}DIa!A&Q zQ3$Cc2v12eygtp3m}Eh4|0q>jHIlUU4RxWgSKx|omOv!w2q(3DCl#zmCvkm=CmYyW zgOkbpbR|=9+s5Wctz|~>N8~w6SQt~k14f0!nf=1_S&bFH9{v5u<(byIJ)a{ICv=~D z_Be1Uo+&R-nzL7r7~%z_OoYqFm-~R$N%2&{vwm~rmRx&Fe?M*j+Ne! z_aFV%O-wA%9dS-+L3s~gVm?!9O_j8Adhkx(Y~Z(|zn{4z8u*ogGu}Y@H~93D9AZzf zYQh3zOd>|=at?0sjp_(93%G7fbd3TW8C>d7sGozK5oL@_FYNJWlBb9waPuz zJ>R+I^{^q5)u)051@@E_ERjM^E^l%}VtuA>MVP)}oh&kGt13tt5;NNLiCjhmgZ^mu zO*4EjIi3ro*sL~vW%|>ki7L}_d5Yq>@?QxW`Q_8{#iuW}u;QuP0n{mv=coXtVhU2z zjkbTri)9M>(Wj5_3bjk6=rr$>WEuf6gtdPVDE0FwaFXC%E+Wevl|X;R7O!Nf!-epB z$=W?GG#P1~FqY*SRVggwT=wZsV^sR)Sx`}}C^L>m)Z>@M*P_g~v!I$Ase z9`$JR(o)#lSy=tBgtCmDuz7pe^Z|@_DQ1UNsQ6>u6xcu;#|Q4@4WYR>%BWrr z9Cg%%DMagptCa4XWf}lQ|MF_fdFj2 zDIr9?rG!y=tOj+K@yE(@HG%u zw)|<;N@OLQCf4BxMZE{NZrEHXPE**t4&AS;zpeZ0p2PxuiRy9oOSR%3R&VO2Uml=t z{a_O#h060x-*n6V?h~T?E8kuzp3MOW5_Xlq8V3wTt>7hb5MlN+O%7caI^s%xLDsx3 z2{giCEz#dat%^PAI>Ks8G{;E|j7R6QR$*cE7u-x<35$EbH!fc<3tAyeW9R>zpyB5F z1Q>$N=HOP;`L^hqe*5G~V3(GV=sTYa^aWQzMLVrt<}*@P;Sf(Y6?t{Xk1LVVz0cT~ zK*xfHBp=2qNZ2Igh(3l1Y2Otftr7>nB5~Ph$Zw;StJlahptP!~zEcRG#6YMY1i@?-P8ot*eoWpUxi?G679 z$*6F>nbec9If1Lt3O7%4KJe{iI zFCZODXup^6z#46uf>#_n=2;b-OY__w7AN2j>1$X`IL%2hvDH=nRA2xN~C4`V|z-{;}L(G z;*+oBSfAq*KfAR<67h|#!o$qzFjHvNW{?U%xpqwLi($ErQlzU(wijG3EE2rEg9OwuesN<(D%UxFm$+}Cuf z@0a{X7^k%XbI4`Ph6)vWx}>Pq;%ZQ&HI7|;>8D8(U*RIbir|_nY^95}uVK#^;}UV6 z9LauYpw1jedtYK z5-CW@UZJSRy4Vp8GC;h{5L~0uo*D7QM=ijDU0Sm)WI79sGGgi&uPPK6XudPR>n7(y zdt%oX>LQ{gTZ=RYegdJj z-K+Vmr1o0h^RZu@(3DZwM`Xlz#%*F$8H``wUIvNC>T-z%uD~;hky%BLuETP8@2T_1 zMd5O)*kGI6=Jys36}UTL&oX8ufG?V4EX;~POasjU?-hk5erS=Gk`sgyg7w@pvyLMkdv_Hm<$DepuvBe~mHIjXkGwkowO#V%2Fo5TX!n=NjvG zEa`R-_Va|-`lRpAK5O3NJBHl1HL<=X(VW&|5Hdjv077Ojwu))nYw<7dfSm)kEqW}M zI1hlcn=tKtfTnlsgBPvQ7vWO_nB0uw0@2sT6~>*atDUr~%XKThP%3X6rH=y?f9*Xx zKU-8=Sct zUh4~3IQ@;dd#*J?MV#~{_;Iw&iRd(1R9K1su%V(1Tj-R#+ZordG!=i``xLv3wkWGq zDtGV*-k(gIO6Xwub=s!dw1#AIYV@CNB)T$_TUqjCtagmItG8zg%Sh`OHV0wck<1D( z_EM1T@4L@ewkSUXB*(V`>77`!huiDr?_(q4QNrdtc2pK;_tBjyOsc+7+@0+yy2-lA zlhZwoT0E+AK4-FV2qDRUR1=GNCKlL0;^D!vhAMWz!Xg`+u*{6vGO^Kse!{{kqnD~N zEaia*8J38^$fM))0Q7Xz>)|m;x?L_byITciVV!23m|VUquX#iI0mL6KoTZ z`Ly7>T+mU(66B9c8w>Oto4Os0{ywAO{T@=+V;rduh z9|&)$x+w|zt#6D8QpBP_i8NHZYsg3mopcl!SPkXt5gJ!0l_fG^gqS!eT=NJ|b*TWS zH+9<#vr4Bm#E;1yAQJy9LP*YsqB95O>!qFRv}{k28}01x{-CtFPZJl;$hUrLt1nON zElw9Rl9@6XJN^(aoJN!V!g_ZU8sd_x_4~utyKib2*vNuJ zhU4V{)Az4SLXU5w*M0Sy!sI#ckkf_$S(e$`>QCHui)W9tflyF8ZW@HGO>F)|>QAwW z<~baqA=5knqK5Q-Ml>mdT=|-D8g;KP1%)4%@fu-V3uC-SK>Dk3sPV#q)l7dI2SBM_ zSvxQ6b!+2-LYxch?# zI&B6jrq3M9gL1V#X_<|Xf_~hs*ttNRVvi7zBA>8R)k$lvzS~ApNJlBB${S!78Io4X z#x#kVopCbc=DGM3gGDbhGB*k%A+5^+?KN?sS-}f4W+U`gthHFC7sFXMn zJRit4_+blesWSRTzp4-QIHv- zBR}$yYpJFqxJ9p3)R_Hs=#LZEP_<+rGFa+NX{ z|Bn83ph4P+jFhoC$-6l~eSM;_FmvxHP~K+~6l7rO@Th>SltO{?Hp%8C#%$xn)>>if zFKlB9fy5BKs>S||FobDE(RwsVLB}_?fnYnR-ya$uyYzF(Lp*z^YJzb{K8X!ij+blS z4?|i78`EFkzjO<*h7f)Xo8mvPCI55vOk!&^-TrQp!q6%9V;kOm-&H9WuULZ|tz)Mc z`wi|z+=j`>Y~ru!-r^}Y>~Ff~5{`2D$&cKm5;~>B)e5EARV4L!DSYI{j+_CXob$$@ zXibub34Wp{62{0i^KY?OH~%CEBqjDjjs8$3ehdXyD)lG0u5f%P+A+CUA<#*Ku1eA; zxmR*Ml`izUGs1hq)~!Wh4dbg;jV$40KJ{MAu9IjQ!Gg>K6hb6HoTH|fbX}qdQg#B+ zZtBTOxl9wQO9X}w)b&pl%JF%hZw!iEN_SzizR-`cMj2Q>Z~03{ zkVW<}ZpB9?aB|Qz8HbOyuvl0=Ujjo}a4)W2PFH17ul*68s?(9j4>NkJc#7f8I;T5! zZvQe=PjTZl@uD73>nsB7O?!( z9T0T=(F9l1VgHq6pFa0>`%91sI--F6SGwrhEzVRXW_=joK*q%9ll-ap&3p4+vXht; zq!pu8_IOfr>opIx8<=8pulyDI$Kr`w#nIc);|Z06^Lr1T_Yo{5H6)z8MpVZkG}p-i|EFK8PAX>lPx=RyXsY`z{};3@yM@`Ur->AY=!(mhG0 zJKSe5Qdx5HpxzPrX*Nu+!zMlOn@m5p93A=Va0j15+J9!~J;~Y4-$EB-rxO~j5>LJE z5XIh^6mln*<%&Tx7P~R~A+z4Ai{JhaJF%wauN%XD!XLXoy@J^}J^#`vwP=;0o82In z1(V~6z@dG8+WJp|TRmEo=8G}74u!krMT~(V9VC>zq#At%>em>VB3kj~N6_f)<26TK zhl)aCFEC3tx4u}KoUfar`!-6E{trHOrEcp*OZnAl*X+-!=DK3hhTgP<%Sc{V6(8>SHl!Z%6TY^NVs(7Gw;m4~&?e)u^@ridT z5x`D>Tf99!?Qsjg9711bbi|)LHDcjQlGONYNuH0H<9MsmCiAqqYtnP~djHUo+X2PJ zUglo_Al#z!@g;7;7w*2V$lk6oQ(SX(GHQG1kYsTviE*!N8N(dT`=V`8XYp&(MWzZe z2BM#2JmwsO%sGvD2}^kkF9gl|$o)GE_!W ze!B`-1J!uRjEAtL^<>hgAH;r2ntB-skuuQgN#ETLxFLx?$j*Bre`N{l0FnGgW-@=d zUWlSTM^(%`Z=LKlIKS=Mb$ZWD>`&=}$#zelsd$Oa184Qe?Ji4Acix*~MU& z5t#E_wt+N9EY#X!rQaXqgmhiSiCI0d$|hcrZslCXVK+R{>xdFHe_pUo&v~_jC2LEu zP)PEzqpBYZEFWVpagC2$^JC(mJK@A#EBt{=EBD-ls`eAt!Y`8K&Ea2UJju$?Ke6(!-%W)tS#T$hRiUSjztwuJv;AuK-`Yq<|B(g7 zLI4rGWg#?@*DWFD77%in1mqwGHS7#a-jtUKjI~J0aw>RFPMps0e`n3wDi@VRG2dUe zK86UdN139XH9meA=qK2J!eTZC7<;MmR(X5)(n5F?VV3EqYtjgE>&BkKZKaO=Bxr?% zqoZ`Ao-aq{AW*I!r3a43V5bM-wG!q#Um4G> zoi5^N{=6Bg?6hlrl>y!F7DC>hZN&B*-Le*ghYUcjsdOo2CH-rm5Aa#lz!Z2YYL5R0 z#6Ua0SmWFkiG@NeBX-YPHso{-jB#)5D2gd5jMDq?T_0cJxu3A%%dVfEWBv3c*S{KC zafv%JmT6#sRVW%A#<95XS(qa`6xIY-Cn;iS=E{ZUfw z*;#}Qaz}2Yra{Qumm1+BbJuR}eBv`0Na#^mY7oW2^gp{6GkAE8RJ)@P%b!{=j7RU0 zjn=Jhbt~tvlnTqK5Sli^q6o_$P`~Ddw&- zTixCUvm%Mv>(NXkY$9Z^xT>MI^SuVAk5EncItmfinpK17e>Tcd$0vD2+EEx`;f_K; zyOT8XBh~&KYjRT8U)TR|&We`_=WqcIPsL<=ZhC4)(=fH=bS5KI0hUK$EjeMqc*4BP zOs-I9Cg`vji-gaN?rnN{*s5FIK5<4EjjxObt@&oP@l}hbPvkiF{nGgiGQvX%g|)Em zD#S8{LTKVQf(B^CVzodyiaQE9i@BJ1GFD6r;quvuZSKvRyk z8nt~nYZMk!Vo4S&Ycg{NygL#$;FiJ$iyO3EvI)5AR=2u6I>Hijy--%zfD!d#LVe#N zpN4VWYZUe6tWsF2{~6W^JM7|jty(S_;Q)O6To*qeY)B(#VS7$Rt-96ifmFM3z_PZ; zDa4B2;EAhE1NLd~RPM?f`Di9S=O`@QPIzF%d$(roK1#1-)B?Q>q*zZ3rCYMlV^y@O zTiqTXVJYDw(qK8$o=t>heHvJRB~=YFzA{7V^BJM`!~zkP3bDp~h$Y0MO{V`@H5F0> zV+y6>y~0-A>UMW=koXKjW#UfO2J4De(G9SA6=9_S%WHey^BSQFu(FMWGAHz1u`+c+ z6k@H@SaB{DLc`>oXL7}?y4CG|s-0`xm#om2G(=a`(6`(OYv@^kwcyog0<68BKC$TB z*E2#ji2{wHSfp5cpmrbi^qjWL#}AbX<)FeSItS`jx4Jz*)~=>KFLP71Z{Nb(G(O+% zYp@c7wIqa+!J2#;)Bx2vbjkwO_Y-8XKtCbQ3X@r~Lt}xVUv@~Lnn+=+rYTn3s$1Re zuL?@IT11dwu-B3jM&;wKH4QC`uyl>^j0Zl82y0i^mxDac|l&32+1Gyyy}Bxj7BpImZ02~%soqCF%nBo&ymEt3b9O~ zkgG>Qq0oR9G#_PR+msAOp>V5P-RgFS=!z$TN#&4f%87>yDtI@N7vecSIp3-4_y4CGbG6vP_oSK~pOr{5thSotV z)Ra>cU@Z(*QAU`=?k6k7a@FpD#ZpbsU?4>cvcd+E?tD-odlXd6s$1RebCMyFj06toxujveaM|W`s=ae$w*^Wd}5#S-)o5U^@ymk>$)P)Nw1-iecUA zcB6_xG!AN$QRs?1qg5;kum;gaXf#;Kr(w@agp&wM%p+XQ2tCIJOlG(hmq z1f-2&-N7%Vc&o@&x4PX&w|irr=W)m@ZR89Dj#lyPQt!|l#gVAJ#i&r1n89BhQFAeo-fD4u++;dK& z$XG_| zVu6{ey;6@BH5FoeEaIg?X*C97sz}wAv~Crs)I4XVWsH&YRwP`V)Qo3i(V!I#qCR+a zY3MVfa%71x&tUy11T16O0Hj!xFV^q3_d9f0Qiv*r#~=CEL9@RYZ^*3LLd6k%Z}Kamrzx{oGh z1GXTIvQVhtDHfc)y4CGv4BMkpw=45rpJ`|PgLcyM3|5U6j83L9gXzgR`%TZC^=a6i z5prdN>+P<6u}0)G)0>_`?LKPlM`x3FOk>GMf*kjus4OYhs$1P&StuISpwuY6uRwJW zRR~*WHa#$MciNs2gN3^YHw0Kr*?>qa(NQSGSVq~P#8_rbp&p|n9h0r4pYGC;Ss@y0 zU(K`X_F@&m2xrer7i8J#Om2A9z^M~X3!&~I9CUz{1PwrgW!eZg1X$b^>jZ4EoQ^^< zq_AL2;p9KcFe^40=3UC(EoN!dGJT$PtJ~M-tWe*e8jrx)_FQ?;?Ri!f4UWhixip;Z zaIYo6I^0OP|K4^dXzqTL9fh3(SA(Y>MKqRS-8p16jysldo&kbV+?h~;t8QOywxA?( zHN|U@igbMt%df2Z$_7}DNy8}eLCs)wg256-SjlR1OGd~;Ea*HcI|}jWdXN^jz~UY1 z8!|zbb|V!LR)k4=^v`eI>h@LQDt>)Ol2R)GRuN@`%PrUB8VEDCGN6eNxHPy7)@gTJ zfaNt53TXqHsfwKZeA*q2u1}>x?dZqme?^DT;+&R|p`d|mb*tOw11M>@5DgPTQ1c_g zDmTDlUQci;J#>^w@m23P5vo~)4-K%m@hH$@9fcOF#4gz%N`W2yk{%0c9LQK?+0-y9 zCQJJ(Yr}^~)pxmW&tC9TLc{1-GvEk|Kjkr2<@5{-UI~ReCa^?&r8HPlg5?ER-!}r* zH`oEK)uS_uwaf!hEH$&l@+m5mt_T zCmz+JKugySoogVAQ8nhO+Y?w=0aanNFO8(#MAZ$URE(HyS2C@X|| zR?hC$01L2KJH%pL8*~7TrD*pYS|L4_rm|f2ojJRDOjeYsp{FmE;^6px1?W5^#v)I) zdygm5Eyq^Z|3Co(dOAj(6B@_eD8$ofj5Co8s2t`BQ|)d#=)1V50wHK3Tr^k;t`0K3 z+8$s57VEIBP$#<;M0%XdjZ*aefG z%6}+6LRY1MR$sqd?jkx%iRj*p_9lt`lbq`M-)#M^r9vdoUqg0mmm1V%CwB=u84t4> z);rj&Im*m}1_W7Y65)BRiSVF|Wi|}UDQ2;BPH2Y|p0nc7t8s(m-JL-?>qHiRW^msu zF~?S>hqA`&DYc@B#UscejljO-q3p+Xado)3oxM>Obwon9Ph1;dXNLsW^}ogX&Dbs2 zUK7c19i~PO3Q+RN?z;5(6P}TwOxyPB>EJk?SDK!WaCYi#0hVR4Fl1R43&vO+v|4Yx zDimZjyl{cXfXS{X9S>7RttH5KU|JK={jfrWMw?&if0p>Ifl81q7DVF^9f``ED%2C3!WfO-!C+a#(- z{z~6bgp!>|CPx4vq+U27{fC0~y8iptuk*`D>X~Uj4)YK;ZUBOB_vWLT9-M_{kI?=~ z;1x0%Weqt)hHwV~*6wDf(KQz907iasFTcE-pQf=|Ymeo4H(Wl>Ca-Yd@?E3Rnq?2V zRb3I75%>pzK+F-rL;}{$3g-Mqp$O<0#kxf|do@u7sX=JbWq6}gd5Y?1v^24<|558l z3|k~X%;{A|J4!;Tu5=bi9@oCm?Z&^I_2ZbHXQ^;EDd8DpgwPn-`e5A{V40b!Njz%3 zN7n@J!_bQ;t2MIy<{t*C<*~eI%&MsjmO-^^**V2+rUFgcTI=@LH7O+2cxtm1=`!a0M0a z!W229aX$i^hSTm=kvp27Gly6^5n_p?&~=&_hXQ%SGW-ijvh-Z&oRm~H@OULebnfk_ zR%{|F}`*ewh){wi9y(ukF*55mdx!lZ#mSc<{g-5+4t5bMB4er0k(GrE51 zf%Y6oQ&S8Y{Vh-~2@I5|~eOX5bYqPHb&LXUHuJU9`CN8xCPBPYv<<`A{C z1DEx!7ERsLsE%LPfBX7vNQv5Goh-qKLPh@v0jGALypn2$GX5%sSc5-w!Wy{?36_GZ z)9L;IYcXxuDR=j!PIUSF)xwd`!X#@Awv;a!MKy?3j=GID%!2Wi;lFSa z34|0_UJNV zO2%LWql>|2>lwIXR~efSs`zTD5Q<^XH`_FL)}treQrHP&ERV)gIiYSV?Av^2p_P&5 z6GPn|9c6$_BFksxUpGf&qb5DHasn|eKi08B6ir|FmW;5#71iD{(W1P!Wqtv7itc)R zH`evvv;Ighl!9PHG!42TohcXXVpe zn9G(v_{$Z!i{8;b@?9l$UH={Hx9lkVVg6!X{UiMdrUHsx<$_7d zfXx{iGajckL%n)CbwWw7v`It9M-j4=@Bsl9YS8gnEUX^&TXbf)veOFJAd97iD{Y3X zCEc8AK**<@L0m-9tsT3`BzjuvY^o&(})q>@A{t1+|Ai80P>k#=Y0gTocHqO$jE)}ARw=SwPRrYM1ocU@_AfIKTMFSXRq%(NqizgYjp zQW^=d(WWw1O&j4iz)x}Yfix<~tgo(rW&LW$wl<`j|45aMY-%8oE3Uzn8j2IW&Ot}d zAPlfTebAeny7x8iy9XtNGQ^taQTSt3c~W@oe9RdpFP_P=NoW3`Fjy(OtP(zpobE#& zV)4vTUN=zNMLvT5_8lKa((?;uAzKa^!Llt|uYWK9rJCdT(kMio-mf8Y8g zL8`&XUYOE-kE{c4c_w%@$ZTLQPD*m1{7Oo&gvaRMb>!%t95agWaRHV$2HGH&9bSKC zJvy?bP{mkC^xpVn)-nl93LVx+cuPwHr)8y@CzMF?{V=mM^gvaW8_kuf(xr|aR5ofF zCwa_ZCS!xAuy%2yi0%)H=yT9=5l&p!^>181Q8cWCb^eaVVZqf^t)f**NE&I=7f~h% z-1^YWR7Zg&@#=VwJ(TL0b@<%U`o zuMmvqjT)jrfiZefn4bM+ZwmZZM6B5x6!R#~*f}xiQ#k z6-erQ*L7|WimuO9uxhmbaf+;BR(#dqW*jBJVis61z{(O>yh8Zn0f5C^8+NFrPz&DA za(q3OV_6;xjf94tGa`(gp-U8NH-MH_$iv=t`H&O}E_)kj8wol8jS%p`vQN};fSJDm z%G#N4Vz~~%hdQBm#7Ah2$sDGzuAjUBDuN$VZ(ANp8Ki1#UC=XT5bTu-uS|d?^;g*d zt8-js-Xy@XA(rCZ(^%DnSbM9+Vo9NPZcvSd?P6|-x(ki=oq5k}fh>Oh2{TxHxd`fHaC$;OUMl{6~xr_!hJH^v%7n@)DXsy1(M zy#2U2VpOcw2Gk-urIj4G674^VP*D0}9Tt#zP=XXh310C7H-brL`dGnnn?s@)5l}eQ zCm2T>LpU;{ZtMD;^^@K?03rQF+8kXe>7tt76#;pL11w|UeytDoEWFC}5Oy-YN(9!! zTpHG-4F_%Ica)=`;TWB9^mzAnCfSb+;)d)&D5Uo%C4{MD)| zL;xcNLu^Y-xJTS6H92WX#JsTDL0x~z`pK78tMxkzGvaq;uz2dAUi*IEt-1ea8DSJw5ft)Jprb28luS0Dw9Q9R<^J{)nwspzVe z@^(0u-Z2@K0hTNgGR^3ZhXEGznL$$uVN>BgXF$5dSc5Vl?Qt`7lMAy_peyyeN+%Z| zA8zF^jtaW7i!V|tx{S$YOlD>WN`lMo4sxKJR!SLl{f~j70(QNz0oEL5@khKP6Ghsq zwQgt60Sj2lXaei7d#i*{`ph`~?#En@4y+Yg8VkwZTSjEHF8RI$x*naimDzek4EFZd z>U#1(w_)*{9dcd&8*Gh{vTIj9Z+_RhxP38iZxMYpc_KTC24pg7B%`~>Cxj{~MDo#8 zDl}ctUW}zetY!39Z(9o!ShYa@F65-TM_S|5TcB3m>h|uNekiNUUK8yZ*%dEtwJ5mK zaK$Snaqa#903ZNKL_t)9BOFS<9$x{Q(H{>5tT`#%os@jk>PG=&&6qWSK{|touzDL| zDZh7@%WCAqL`iy8nux%xZgu-4U?qDy8W~(MFB33y-feV-W-@Kt_ZfNns3oI7F}mjh zEN#+|0<7J)2XCIwjMJjyj4D(y7Pgz|5mY7n zK+DEc+<$@PgE+hrDGUg(CYHvrlQI3yf^L`jppv))jr*hV3RDWQHCAdWM3^;NG2S$ljUQpHWuHDuQckWw+ zR}!&u9fW%oUjf2>_ZE!%YNc?pA3f?eXa-oqfK=LJ;R&m9%qp)K<^}LZ3NOUHBA!yl z%Mzs21I%<}-Hc~Vy({bbbsf)vrv^ztO<*;54kyirOQ-k+F8P&WslFka-7m&Xy2}psmrgL=)jd*4#hn zR#A0@#WHe=-{XF+$l7|U(a z>CMQ(Hp9I)X0*;~m}St5S!$W~o+cWuK!jzQInam)7&0?7qlt zRpP5f94aM7iIx$8AOLSbyINg;X8m@d+)Ph(YBU<6y`qwDb!=VQb#1V9#aF&ppXndW z#aE_4X!xtsTj3QlnvvdEmd8?Qp~GXDYN4MOHm$5`G|gIvv`Xir#w||CH`0yKp*xLa z4}DeHJL;F{3lj@4Fu&Hor+j0C8g^IUrq=f)+JOo}oo_Wj&{)?Gi+Lyy6bPwo6(YP? zbqz2UXsx*9s%=q#1>j1_MP>h>)?ZD62B{cD3E}Q-6T-|49W+_hmI}?Z!Z9PrO2T&p zS#8o~wdHY^IKSed6xEYT{8b>B4a@aS1H*V6<16+ob4$%G+#tYfvM7qV4^sJL zW_nk3{h9US_f|$#pjTNL!)R4i#(qK5R;s%hQdh>P54kg}#aCM44yI1LO%LH}PoW1{ zuvBRDSXxA??HjD!J9{oH^^L+nt1%txQDujk8ZbjIN$#EL;L5fLmGYMMYH;)g zcu#xzfv2Q;snz;LgQNZh4&M^UIxE3%4n}pD-M@4!2006oWFWo0?W)P zgo<}gW3f^pz^uWk77jMX!uEb#oy7*Qwygd9hRw$0juKB_e3lPu;8We+qd3_FM5}DT zcWMMS&1mo)D-A9b7R1K1lbavWZ;$Ov>iUuN0A+jX|8e`pEBkF*+usZl!rqyax~Lfn z`kkRAvT4bAqcJ(#hu7mdI&2`c$_X9U)e3IP(%?SQ6Gi+s^WHI<|8nH3{L4@bNxD~E4->Uqg4v7U@qu4 z;Xv&bV6RjK( zTfF(3h*c};n%sOyvAO9sigz#n<=6iRplW3nXrapUx>~3!uQu4j;^2VL%1j^x0{4R% zlJgz}me*8hW2~<82U7s^hKwT1v=};NLnd~xc-4w0QOoKlb*tNF+*);6H?8ezZWz_8 zL2H&}gKQANl@Yh|=xTv1Gviqc8s69gYs*Xu9b+9ekF`H5qjxNO_wvGaJ<8%DlST~* zW1gk08WmEvx_t_S5&@L9-;?nbqpcdBxoVR@8-!PS_TaEWUs?UtA!mVgdOy6%*pIRh zD`!C}+#3cIWx;}>Uo!+Ucq`HpXH|q-n`B&dtJ}NcRI5@x6i+pR!e&qd<7KlKi(CvkT+Ix$5P%6 z46;0ZgQsxtVyvDGq;=UW4p$JiwER~gSgU0%4f5jB1IXIUWvQ6678j=T*LA73IrD=p ze$R}PYo=V$t{!Y%zlTUoW1*?dxb1l;rBtC!o7sBq)(*M``}x)r^p#8pmHpLuj;_#z z9BhI0o&=UlyxTtLBWQ$ntA&H{PDYT`@-9P<&r+P0DkBO`i`Q8kN}y3P2?=0o2XzlQMt?QSoZY3BQ7F|6;ZDt@dKkEjt z##=2|)%G~Na>*;)jC0%vjeD{U>R;ELsgo}bKbOjzQp1+sSEK49~;4JO7) zO**PtI9lENIDo_u^hCGmkG5^|m}P7pTykrT@@iG323&zni{k+s$TcQhz|U~^OQ@Wn zU=;2kyD;@CuxcY45pIfg{h4^sIUeUKY-HzILM9YUHF>O>N#Eps+^(Y)61PLUK8;tY z9|!0e-kEUsy9$9GtFw)Tg2$4R?1At-)e8qG%wkM@yB2AQGH;`aF7doV43`Pjy_?Fv zJzxpC;Fo{v<~X^M9LBApW?=*Dvaa9D60>`27VFO@$E<2n!&I0uXw~xxIHjs_RHxMlHuVGd3G80SCmL1&?vedqFD+IyoNGwS-~`ddp&d04tYmwB`r z>8JQtlfkN9nlZExtY*_I9bW0;AnJ8??5|QoPMVRk`Pk}*}&mTbvlT(az~6I=CzvSqMh1{Ph3?!kSAzyb;3hv8LL+;BV`Jj6QNvCv%i zJ^)cx58SdOP$}oE-qmSk@k?J0jmjQ%?$|iP}OfDWhC%fugE9wKE(uDc{MQOEAEB72jP{~ zGvIvi`?qgTfLJ`l+PRRmv9ARb++j?AAAUquv=jzgtI_ruL?u>?Rs$oOiadXk9;EsC`$5YAuB)K(C8(Am*&J zsJ$0(rJeeent^u@T6w$Biyl5+fVJY>fCZ$WSa^1;g)GdHQC14F9LSR4uM$1n0$t!a z47?jnuIMmku1>76yUA!_z01AvUN3>Q$rd9TN6BUm(;jDCzxRC0&`nMD(%FVotZ9we zGGXd!K-0TsxEeF$6=$zlc`zGaot`AVT8pue=)Lo*g@$}rdEp$h_E?+6rEn@i+(yXX zwOO4izknNQkkqu20D&WE{i9b0kHXAc%JZ`8S0)LKikzA@*Oq(> zSoN|P$axYcv>Jqz0m$0j)(& zq0h{o7M)uvWOs5Lq2ly&GGzC& zYu#t7Zgu-$lrmC78CA`;p{*oFT$UY&SEIFM(Cn26uRuO%?XP5g@bv9THWXtW+&-Nv z`QCwcXs9EFso{#DgU4<$Q`l?sG$$)%(x`sdt#0oZL}{364NxiRI)6O-Xf^a)aFuVv zNpLly>R^|Zi%LV8-Lv5pZqhM`)frDeV3IWn9E9x*j3nm5ZA#tVP>YNR)P<4>WMR|O+ zJ3Sv>IXu=CvW_Um>QuE*23cp77|ui%;IbH64Sl~FY_)=zPbb`p?aUP;9&_@-YkPFr zxnIh^xNujw7x=%*UevZFFK^o|Z}TPBf6F_ou)S9vps?6yD0O`ew;9YDL|sss^Fi4a zstrzXb)HA1`r{_Bzvy$}6>xdyJeK2-#j1tY*sn-Rnlx_`GC=ciZ>b$0z&C<)tcjbjr@6up=I?5+~6QvI~A8UE8H% z#IJnt=;pg(vz}5)+_O8cmvN*O{494`de>K3zdWk8ccLo$zWj4S*OB;OI7rFr-#S|L zJOP2sm8lFOvRztVIdnVFi#{=4aeFMTZP@vWEHTO+_`SPP)|d&ihMu3Ml1*oaO25)7 z#jqq38)08V*YY+~>LYO!OssdwO~2_2^=1djWc_?8)~2ufN#auYiAn8yD=p?Hy$8 z@!@zdjE+hitV(8HVf_ZnbW51`kb@66L`Su~x!Sfu6%VOwV5MXXL!N7A)>oZUGa&WV z;S=P8epa}%F_xN6(K$g@(!QTzlr_S~MxTC*aCjSR`AMXBq6)iaU53;@Aw&Asv=Zsd zRL+buU16<09C>-S<|W`D!Nc2pr3J5U;ql9?rTwz&H_;ASRBPTDeaVFNH*flCm!og` zOjU5ORJ$v^VphnoI(XQ9p7;vKSO@Gl;{{nD$}(Y=P?U~2&|+D9lFZ!!U9H1_nYc>~ ze^pOQ+cMEQgj(i0b{@f^XoPQ9bh7~%R=2CY-#nS3{DCjIex0X+rRR_;OQ~)~Db7;a zOc2FZBOl{zDuaM)mz{$QugcsRo*1uGC-eyw3ymbJGf@^O7`mCEgIPV3#!U&L5XRpd zarMQd{^r-Vxzd2sa^W^&w09k6+rRzx>DFJwD7EkMsixkv6kH9+-U`K5155=+8(kso zl?PX!E56EjH!$bqBMh>n#6gExILu=5EHBVXoMUfAro)>fSKaFN;BA2IfJqVBb6qv0 zt&Dq2Y8lMI71XvndWO$~R~)fUC(dIbQ@^7q7jkDmD}DzA{NOelW-`PnOH^vp;qG*? zZgqP@c#`cL1MjoxRXs3U6123Hk}-@%$Y45gkoby|?Vk#-xX(LmEOg6-+{3}4vd$pL z5@FWpg<0&$BjYUrUcw|O(^p-$y1flL^%j!!e~#TkKjgNN6$MRnbp|?7IU{w?j2Sdu z<>d??>EC|mWC|f~IDjB)Z`?@tIx9rVETMuQGm#drAF_XmClp65O=JQnE5@{8JC*vt zo8aBvt*$@+CIf?|UduXr!BueBl3Y5wh?AqG2U(+#TMdq+T@?m%$so@L*XgUzfLETp z0Ww*g){)ABp%-RZ27dV?qj*5__#P2l=usvsjheq-`_-4c$bWM!u37&g-WPg3{EFH0 zhQqJxch_(K0N0ev@^~Djm7x7fXf;Z_LJCm~S3DV1;nk&8#h5dEmUbL(+cD8QZY_lU z&|(glc75k@mQ4)@C3aW`tzH{1izti}U%h&;$!l0PUW=>HUV|XYANb?8XZM-i+0esX z@TgGV27`L8gM-t%wHgp7Iq8+dK6rZ#>z{x9>dl-b={FeMha0P5+fXXSPG%}|znTG# z%#ja8SFF2vbY!AB7Zh;C&9Ata;SxV%<;Ct;3Eq_ud{G9_)_k)EKkr%TEe44EyvXHa{Z~grj zT>pH*nDt9pffKyJvR*H*Iw8nWtu_5>RK?>es9z8>=PhxigbZFfcyO%Scb^llM6qy} ztlrlUYd=}Ocd}f#KRYEu9B7H!VOh9kuYw+hU%di3dn;rgmc6eBeyPl!V-Tl?2qKUzLoEc`K!N8q=7N%3Z$)FTeAyi`zhIOn8Syf~=ntIvv8 zf_hJorTrTYM;v8w{@t3AYCh|XKudS=lmi!vzIp{(;(6P9d1gNhQX3;LSuYhu7qt3< zeRY0+>QH*!ve6qD9>lad{9an0>*U#AY5o0R52(i#X=6Us1Mak_#y1QF`JZ|~kIp74 zfhOP0AE5u%2 zy-sPg3vF+c&p{P=05FI*!U!PSFHHAXZ_|igABoO4?2+{5y?V8uUJhY1aQ#)*KMWF{ z*h_i|S>|Q(V;BZ!X`7*H7&Hr_icv7Mf+B{qAlk3N)joq(su$;zprB*M`z&1?eE1^c(XYNR@c9}>;9HQc)%v*(&MOw z3xmh7j}WUkb#<1GSFjTYr-O3X#P@HXaubLp{Tmj@I>Kfh;p4!DRqW5WZO50D@;qM5 zG2&vnA?dj4R=4Nd1d%QfOQe58HVwpJr4*u8*3QW*Pus52!B2`;T0_bbLoR%m?7NRy z4rq;v&pMCUO=pRz0?f3hkI5YCR<{QbQ|w_nVbrL#pc&4J-x(IHmR!(}t|VN+Y*4|~ zr%VUoI2}&CLrs>NQlaeqkTlD~taBc+_-G6H;7aJF2?G7QqFLSUz@zE%F~}rmo=a}Z z*ctmc#TuHyxGoJ=`@N#BI$Rq(dfDJJ4j+7ET6n;&Gs^Vc%HPkpIT}gfOHgaj!c$WY z9spZEf~(B^1)i0epWd=t|H!uOu;`!Ot~P%jpKJYcr&|wl%X?zv;tYmtT^@32#96@= z3az;4N;$~vy<||}6)p~b-gIy+E!6$cFfZJ9vSi5lcN}POoz{A^HA=CH7ksfwaluW) zA~1NexH1Q2CJeF4|zcS@_Mb&3Od(lUiZh}GZ8|d9lV5#3hKkn7)u3sKFhho<+ z_xCy1uRjF75A&G_Y|-l<&?lk}&U}KUn@}x`7^zZdg<>mDC~B4MPIz_t_9ZqqE#y&_ zk63$6z@Ir{?O|dlWDkYp);e1cg%Vo%GKl2TT-fr)uq_mWdAY{O^mF#w7q_6j9|n;8 zY9ty)=iLS^ZZ#Gq#`t}WYHVwA571wIU(iXjtSiQ3?o zO9!FsUFL;5AF}`h-|fcE2sr1d;?DQIcy1t0aI#&^`bCvY2HUh z49?X*;4lD$nC9JV?mPf8(Ckg^^)sy>AJyP3(!2>iyzzE$!u3B*u4f{vz0tF$hQU2X zE8%)2YJ(=c`tj}SY~Q`K@USZivr?1=g$^zW&!XcI!`69xw{3U`HtO%>N=7hGS;eWf zy{;Xxv!~Cwe*Zm&(vNF+3_yX}Ut+5?C*pyXB(ARfu%@m&w93QP_itZn`*HH4EElpg znT0^B47QdSnTg}=18RI%{Hj~sHic5)SEAK3(bX&mvNb``e#4q@x|Kd0(~0x7!YeGv zDub+5%sLy)+Ml!As08w7aY>BD%80tv?M={0425u!O3+kmSas%<6%VeArd^DeIA9@z zF=qI3;gy|Fu~YuZ9%NlUzD}fuN$DU1t>o)~<)yHiXu5mOI_N&@Ylr`SDo8sQeC4a( z>d(9WvrOv{`!rgzbrfG?AT^#>x4o3Hp8;AK6@#h^I(YR0;gxhEU8AxP{jLf4S)L_$ zcy33t8fxik%9yMH#e)pcUP3dGdl0TXC-3=X_6=S%p1WuZfZ1wTWg%*wJ^3AALOg)+o_!AX|Q3*(tnUaI{^-ZEz$ z#XtNq&wuMngHp-*KO@efhuAq)hXm`I1Ue;9mDu%tBCO83_r_XX`GrB04t{zkncK{h zO-Hm!3;~%1+ID~zUK^GcVwRSkNIPkxnZJ)`@ip^Zz_N}aK+OD%cXya0 z#BX?ZiQe_U>36~R>)q=gd1!1GVAt;*5|%TK;K*Ij@joVW+$OObb#Z9JCLYfFq+(x$ zR!|xWV=E0-E9BKz4zEy=Lc^K3qxWO84OyEyEWNub{CXD;OShkD;j<9(86Y z!mJK3@g_+;yRHv!wB?{`Rfb`1POo-g$T)cGx_cS@pSB=*KI3JKD{7$8`@x&n4?m9l z`rXg3-&gFa+p{5*;A5HB0s^Y#>hBU%?Ylg0h0#hRgF8)L zon8m7v?yzWEEQ&nxvSF$s**#SAWmn9$>PKVXAknlq*6KC;A>xDtZr`(O8mFdPRV}d zvnczW;U&#v3-is;LBUn$qtygg2cK(ynQYL5EE{IQqM=o1q3jUwTHP7-^Qf3>ZyshT zVZ<;70Bt}2vFC$yMMu|}XQ9m9Yj3Y#_U-f%@k(cJdY^1BdwI9mciFp#BL0*6+soCP zo#~^(f8DZv^wrh%gCkT&k^SOcd~)jWz^AxBtN0yWIo=mU&4{7a-hnD^yrAiIKw4$d z%GWWxBwX2gA#lsusoW5RS<@MSoE88s8*+7s>|z&)N+PYoYo_tl1vY(Mw#c);t5=?L z*D$|=r#G<|wSEgrcZjcxx+#8N^xXIMomM0k29Hwxb=&&)@@>#Q&0p{y$o<;aHb*m0ov%Er+Pw2X3u0AKzYc)3!6VD_YA*jnd)B z0<9y2tm(gf;^e!;NP0;kD=spk;H-aZh}ye2Vy*+hfy%%#|I;%L*`*&t%?ovwL zDZlINyKi5A=G%KzLtFhxABgtu8{sp)N2l0gl=^KSn`bwQLMY|1RSBv#I<8#+01E<1 zL_t&}QcV*jBvt|D%2MsGMqXv}Le&+G6!3H96-HWa`7qI2simje??F#u=LOvC5qIv+ z!b?zGU1y1HmU_@70CCBR0`=a#azQ9)cAfiq`I@s9uXSet;b0&5Woz%f2R~Q1{`1=2 z_Q0UdxB<(P#Q%!Ej!qN)CznEXXK-#b|KxrSE?AvA*|;o&s=XUnrOsR)Sz$r@AtPjX z(QGgSS*BqJK-Li^hsWbes5KW8J6=&_4CU`%=WO`3&)i2my#IZ@cIYFZ=Ky9$gYr5%8FGqa&YG!oQKR$?N=Idu2_e^`~ob|&eK>E-bmnv!18H<>NN??;rJVvbyaPdl_Nf?)Q>JG%+0>iTZOkF|=|K{tDe_^^{y9;Ef z7fSIy{|CF|J5wCuyWGn?ux9b;+xzsU-E5cNon`K!a*=LttTMn0_vqO5V_-hu^S1SO z{FBo+IQxeF_;o1FPZv9ibLR%z={T={!1Z_bC;5rUJqA0b^%Q>~ifXSP#ma(j4y<${ z2t%u>z_n8{1{+>gxN;Lii&!=_Odq|4tSqyIIIeClwOp#@M?LBG;GgEYOd-67G3F(m z#-u&FsTJt4ubJI<^2x1hq}?8A)jIF~%ax_h;*jNSsou6@KQm)PhmPM_Kl>EV9e$He zSNGLx47#2>zCW-h^jPZj*|Sw>_bhbouPbsUD}}vK>2%p}YK5-iO@ffN0$^2>!R?75 zVzV@8`T60JBp#tBBOJPTt-s)Vmc6}I_dFDGhcWHt0@q_nyUZ`un63!TyKhEw^nxnZa zxhq?t$^HCb3P4q-`6>}u9S`exb*kLeqae${EF;nqBx5>}>k*f|DxBxtzJuXd=Uje! z`~r0kDwxbL7lOmkKQ4}O@BZE18tA301eHY)d)Vgq#h2{|n%T8|mwngiz3FF6hmKl* zjC=8Ve%knI%p1s$zU1tBSBnUq3W6wyrpjU!j;*G-RXY=00ko=cRievUqz_$ELDbqjnMD!=otN(*W(7>J@wRJ%O(3&GrbT_3PkKqIbiPCZYFaEvvY&x4Xy7+~-4c3sv`Q z$0SncfA=;)tOKYrbKufXlezcXqOISe2662i^R=2v{hfwTc zs`I|%(Tl4%UO8~3jbnV~s^)@^3bPJwb|?d`DcU+@Kue*PhOT3$e=S$k3~9%%tMFF0 za^{I&MC^LI{MU6IYdHh3)VX1mp8zs5z5|S`09MuD>gF&D`DUp&YX>ol>$P(9mIr5? z@M3VK9(T)Cci*GZs?Z}Hk>7VI0|0hdw&92kGI`J?467d~)Y-)FQ zKm3jC(TZ2DtRH`9?D*^o#a`u4cKp*(pP;{c@uj0aPJOY!=UsP{0aGWQmJUdDe)3lm zQcYlWeZ1Rj@Ps9zHMqJb%-VUm;bCF4{8)>T@gnLvZh|i$mXOz{PAmaRnQx;)PkMd2 zNmTQZ+JpR&V~4^;{?o^!y7kom`R?W?Ka+=ud+xXd2kHMui|o@+@lXQcxj`v)cZ>C# zJ%C3_haMN^<6(=`>+i&~31HCCA{M#^*dG9fx)o%CZ2C2II3%OcqZe1DUj=fj8eBar zHOw(u{Ip~?#YpBwTpK}b^@8ifUpnQXdbEjve2MrvV>4|3g#;73i_V0Q{P;WjO|d#~ z;4n;pDfdymL@q`Ui$`bQcn1OvI_Dia@MO>{V}JU`fAnytD-PYaZ0SnnWhIt69M-VP zqu3#LRnh7pn8geoFlOxvVlCO(W83ojeh8@!=teoYEPF+(J2A^4v|P;MsI^;1 zEzWSsXP0@Ly&I0z?dxv`@&AMWOR`f(tvrNmRUWK%>Cs=&>g@xqU53#@8KOhTWAFl@ z7kj21!EY0!n_u>y^VNC)7qI@v!MoDYHxJo+qxeQT6x?XH?w_w8t@BXu5o8Yba3_9j zSpOldrThZmSIj~}aX8Xpe+fiMTHR4u3EB#BR~4+@G|<`!?D9~nnB2nXbzl!RA;!~S zwU~4%mP}oP>;jg7oZPp$wC(qte~3N|=T+#hme%w3d^A6fz9x>sz5_U3{c#@g;b)Hw zy*T^BCbIU{50`JBM)v$K7m&Fwj{KUD$GdG?FbX(YIlPqxtBO`{4_YbE@-gcm!mW+4 zRrX|Cd(}}^Dh~%lo58y&y&k|M{&5%Tj($vduvlS^L?k8vYSn#s#E0S{u*kp5A!wo6;SL!rYs?ZF zh+Uf4x;xweVTimxXlT*jKy8oM;!E-s`rr7+k6v$O`p&TcRW-ZE-};Dh=c5ipz1t8T zAk24;`0Gc1DaVq7Q-43=uN~p~-6K3Yr|)Rq>v$JFsc|-nQ$Oe{-6;p!MDY8M3RWMG zAMQ8}f7-2X2c_RyW=`)8cj8yw>h{oWd7$nNN^`h+m0P5$fz?NbTHkjl)>^0I)zj#} zBd-);FSJ($vbw!1II+u3R=jlxbtuOwd8_OyR(&9BS*ezk#BJCP3r)`>FmcT=0OS8K zzjx^RtJ{m94L|?#t2?GTn1ZG`cCz4vDD*=)RP8KQ{f4TFRnGuh-`(=z4Zx)e!^wtg zCpb<6Y6jv|2ror_3IPow!Y>^X_qP5k`wxCs>2I-biZ@?-V_lHl9n7)sO4l#GY+mx{ z^&eC**#x#p-1jaTuM5^*@}~D5%!5BmuoHP@9Q3uYll=IhFtuBUDW(F2 zKy`_!DpEZ+a4F zzhedW_HIqG6M0{oS2=1(TOT{9r5_3ob9X;}99BPxuTXog$dj+ab0r3D1 z{|jA$o!^Oi;v3^O z@Cz#|>p#Gd`Jlt>1B$2b36VC0QatSwh_zhWzfr2f)Yk#8D|&t3?NC3pxERv!y4CF? zwv%X3UbNA2Lc|rJE*Moo>JK;<>!)UDn&GM9 zQ{6O{DMYhdNwH>UVz&q3-$^`(&69cc205+WIQToK_qlJ^zk0HN-}FYOwYNIKznqHV lp@Q - - - - - diff --git a/public/logos/metamask.svg b/public/logos/metamask.svg deleted file mode 100644 index 47ccb58a..00000000 --- a/public/logos/metamask.svg +++ /dev/null @@ -1,18 +0,0 @@ - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/public/logos/metascalp.svg b/public/logos/metascalp.svg deleted file mode 100644 index 6f7ad8a1..00000000 --- a/public/logos/metascalp.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/public/logos/minaraai.png b/public/logos/minaraai.png deleted file mode 100644 index 5c2d6c5358bf3164394074c1ef1429095e9ecf9c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 7668 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 JcB;>2{tx{B2f_dV diff --git a/public/logos/moonbot.png b/public/logos/moonbot.png deleted file mode 100644 index fa1280ab01a0de08f9b581d4b7f7dc7f041a46d9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3850 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 - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/public/logos/nautilus-trader.png b/public/logos/nautilus-trader.png deleted file mode 100644 index 8bf97ab98106fbcb3f96dc78a46cf58a8eb8cd33..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1501 zcmeAS@N?(olHy`uVBq!ia0y~yU|a&i985rwk9xxnCI?B#-cU2v{pPzG-0D$Sg!# z&W&Yzx5z)=vVB>l-MiK57aqyio=Ig_>5!eEQ0CBdgOM|7lrsdw;Lx_J1Npc6i@&lw z(AA?;N}^Ya9ijH@=rat_LvY1uOcNg#*8)78&qol`;+ E0Hw>>djJ3c diff --git a/public/logos/okto.png b/public/logos/okto.png deleted file mode 100644 index c7159696a6e967cfa04b49d60b73c9707f880698..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 14080 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 diff --git a/public/logos/onekey.png b/public/logos/onekey.png deleted file mode 100644 index 4b0e183352e88ee997155dcd5ce9ba5971860ac4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 12054 zcmeHt`9G9j`1d_yERk##nPMVRWRmPPrV^EHDp?{#sca+55REY@B_S2cE|q;t2w}>W ztYs%gk=-ba$;>d%p+4W&^Cvv7?~`9{_srb)IoEZr>-~OT*Eyj$69YkhNqz`|1W%sO zI|D&*@Gl(V;{lgNzfLB&z`V{F9EI{)w@*S43OcEG#LUljc957M_akxlPb!gAJ(!zY zQc{u@zcFfyjeO3-{kKwbhWB4YipnS|h;_?dM8s}DPRNn5A=iXOh5h&Ep!9?{%4+V) z8GZzNzw?$o*2BZz>0oXN;ms_K^@TzI8W5`;`ZxklET7XdJ$$Y$ef9ds&dhPf%|KJH zs?sczu6Dud(Uhhxdc8kgZ~pQ9j4uJ!LzurOE(mVJK()io&G?K{)#k<7aC_ z@$o_3>sMg~92Qb2n0#flJ_Q8ivVP^;tbl?x_j;d|U!NL0NbS!Q`8Nwg{I2DD#MY(- zgHa^cuW)XDK8Ra=@X3a?X@O}A{+o8nKX3mFl7A_Q`2Pz@c+myK*J6p{7QDJRec6pI zf(^Zis@u-J*bGNt3;}Rs_%>qg=}{epOB0i@?ON1h5km(>yxMGH@#MX-*kK_A0us1I zfe>5gw56;YG!MhB45BENS5ye&tyUm@rAbUXg~X-&j9uih1d=I5gLHzc3| z{0kwNO1STnoclOvV&SN#CY)=lFvPQQ=I4(MPyCp6kODq2{`vx-k}*d6#si`X^u=oE z;b$2$ezFw!P%3psKSi8e?3nIIx3u!*kS4y1V$q7V7{t7YFf>1T=hS%=Zjfz}$gOZ) z3_3MauBBmxg|2!sI+LO)OTSty-%k6PtG!gxhfZX=DZwkmg&_idf)7y+cZp02?J~e9 zm>+`_O6c-KIKWS-;b#efaJl5w{PLa9XsP@;z2PEY{B$r@8gWW@1r04;6wyMEYXQSK zc+?c1OZ%@ne!P6Jn9=^T>KUTE>gb*=4Wm;fKd#Y6Z_5YPlOeG_me{z5$P zpt^6*S03eI;MM&Ylq#B{-|xCfIX6fh%-W%azR04M1ux4e#o zn{WgmqK(O><0A(3_WjK+kIC)h^w514a*eF zoI-KIV5neu1u~_MKVkVpwe5@nPZe;IhXa@JM0OC=ZehYJ`%oVXofvW540i)T+yC`~ zmrE}AroTH*f_w=WbHJHPWFi@SqHAa%gUbSjIFGkfdJt3f20rMSnw}QIA0)5;>DNLqI1L7L;~QY% zRjXshcd>%-R;V+`{RF&X3&>Q(iG@F+kjw+LoSDqWak<)@$`OVpc=l zfpuwjiHWzvc&E8*@{}IEdQQpBAjj4B%Dc+n1Ds99LUrvExZ1^^c+MPAR^=UjS4f^@ z_&2UJ70;_mAwm%ZjxQ1hp9MJ3-(je_2WQXH+pV3SQ`fDV-_V^sT}Wr*tAFzro`cyh zj)h7rv;7`?J+LjU)QG@!D;y#_0XS%xiO&+)(yLXpB_5qqJEohbH~yoz7gK1Jt+xfz z$0yz|L>o8sCYv<0Z)p|n>=zCed&>v=gZ(L+$W!_3@bMVOg}#>)>;-+jE9nsj{3VOD z755XyjUG@B_f)#t%VJS>fFr0w89DakDgTxFqNc)Mi$}d}FW_J3ZQ;p6?GN-*4jH?P z)Z#rZcC`rL>Qgx7 zF#0O=DYK~wL4IED{<;j{X_=4S;p2Q}q{;m4hqqYgt1U1CtK)X@EgF8g&S =e&l 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 diff --git a/public/logos/pear.svg b/public/logos/pear.svg deleted file mode 100644 index 8ef27a6d..00000000 --- a/public/logos/pear.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/public/logos/perpmate.png b/public/logos/perpmate.png deleted file mode 100644 index 37e1975351a4697b5b81cf0c1916e53943fea434..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1326 zcmV+}1=0G6P)(oSYXNcp?PlR|%d~k!@ z#|8@udd#?4l!YZeIDpl`9Wg8#D#b61x$N-`Oe zJUsyb0000000000000000000000000000000000009WLFx7#l7+3t2-pPT-yW6M3S ztM*Zvl+HatnWW8r*?Zm(%EGQG+boX5Ftinf;Uv~a~%!xW)&|UjDN^L zn4OwgW?)|y_M_3CxxQTljp=BFDnB%6O{y zEh{d?KLvf6O&7mqWu@@nz%H8b`#;;r9tZm9(c1qWKaM0n1;hA1ZTv$9>d17I*Hx#< z;~z56u1&{zO&7#d%>VyzH;&MO&}%jt;y-7g=}pJ_sdcf?5&yX;KAMj8Gu=T`{6hu~ z5*NqKN>}`rRXm%H_EH~AwgkB32jZFoc~j_%-*St+v<&20rocZ5*f_oEi2t#yHPk>K zWNTSJfi4ZT#_xuStVK~ZeiQJvMO&GU`7g~zZ~Vi$Sk$WmFV!8t1ibJA(^0?cPWqn!%RR|y4pyy+1hhvf#bCZS zFa{0_A~E|W@~AeEfI5V*=cj!W#BjvAHEGGe9DTMCSLF&s&L50w-FNO2Q z%wkB)+oAkuW;raUG47dZhzQy!^4nWtG(}a**Acm*+Tv?RdjhOL&KUUg)F=8!!Bk2a z^y0U_9DS-J7ie0;y!vz{|(qi;CC3gEPt_5&iUIpX! z2wi(t7by+4O*`IQI&OH1r1b#rYl6ZaCkJ*>?oCJY9eH!g!pE=ETf{4Q4L~)ycMKlC zP|<0+nZ`fJw~t?`xtu}qcgy)w)%JUrs-A*qJ@e?_ESs{e<9MTbt!@~{Sz9*3*L`1+ zdtSfXH)&D^cW+iMlQh~_-H*Ch`PKPqZKb=lf8f>H0000000000000000000000000 k0000000000000=ze}&vxirZ=G - - - - \ No newline at end of file diff --git a/public/logos/pvp-trade.png b/public/logos/pvp-trade.png deleted file mode 100644 index 62af58dd3114dfd534e99641a0aa82c84ee61f3d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 62331 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 ayoPlNJ^ma$^HTDX_})`URARNAf6AZWfGqa_ diff --git a/public/logos/ranger-finance.svg b/public/logos/ranger-finance.svg deleted file mode 100644 index dee508e0..00000000 --- a/public/logos/ranger-finance.svg +++ /dev/null @@ -1,20 +0,0 @@ - - - - - - - - - - - - - - - - - - - - diff --git a/public/logos/raydium.svg b/public/logos/raydium.svg deleted file mode 100644 index d014e8aa..00000000 --- a/public/logos/raydium.svg +++ /dev/null @@ -1,37 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/public/logos/senpi.png b/public/logos/senpi.png deleted file mode 100644 index 73139847b97d0323cc8be049f037870d03d794e9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3563 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 diff --git a/public/logos/silhouette.jpg b/public/logos/silhouette.jpg deleted file mode 100644 index 2a330726fce68eb47a38f9c8ba71de44a5ccc58a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 30130 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 o uHbKF=lkNZB#_+dXUVr&af08KqTgv>u@BVj+5&pZC{@qIdIi2{v5B)DQj9(@I diff --git a/public/logos/supercexy.svg b/public/logos/supercexy.svg deleted file mode 100644 index e233e20b..00000000 --- a/public/logos/supercexy.svg +++ /dev/null @@ -1,12 +0,0 @@ - - - - - - - - - - - - diff --git a/public/logos/superstack.jpg b/public/logos/superstack.jpg deleted file mode 100644 index 6c7a15e2815da7741cecce12a447f3141350e2cc..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 26583 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 Z$$L8@&D$1b{yHna&dPr+zSDWr|DTiAa!>#O diff --git a/public/logos/superx.avif b/public/logos/superx.avif deleted file mode 100644 index 13091e197f3b285dfb64e67733e9069ffcb00313..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3144 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 - - - - - diff --git a/public/logos/sushi.png b/public/logos/sushi.png deleted file mode 100644 index 8c9f1d93d453a780af8736476192eb96c4e9c4aa..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3887 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 diff --git a/public/logos/taco-trade.jpg b/public/logos/taco-trade.jpg deleted file mode 100644 index 273dffe32bb817e554ce7cb7ef8bb84c92d90a42..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 9871 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 OKi4n*hy4OrWB&`6`GRBs diff --git a/public/logos/tenderly.svg b/public/logos/tenderly.svg index b3c05826..c0bf3dd8 100644 --- a/public/logos/tenderly.svg +++ b/public/logos/tenderly.svg @@ -1,5 +1,5 @@ - + fF)uLso44L~26wIyM%*0fi)l+B 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%0D{R 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 JPDHLkV1lyv$gcnZ diff --git a/public/logos/unigox.svg b/public/logos/unigox.svg deleted file mode 100644 index 72cbb67c..00000000 --- a/public/logos/unigox.svg +++ /dev/null @@ -1,3 +0,0 @@ - \ No newline at end of file diff --git a/public/logos/uxuy.svg b/public/logos/uxuy.svg deleted file mode 100644 index 020ac2b9..00000000 --- a/public/logos/uxuy.svg +++ /dev/null @@ -1,10 +0,0 @@ - - - - - - - - - - diff --git a/public/logos/wallet-v.png b/public/logos/wallet-v.png deleted file mode 100644 index 068273063a629011e30cd5ec0ffb924211db64b9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 201000 zcmb5VV{|1zw=KG3vt!#fI#!1r+t!Y4TOHd;$K0`P+qRvK`u4f!-gmzD{=G5Qs8N4w z)v8%*&YBges33&|j|UF`0Fb1Ah${mC5P1LQ6R^<##=A@jkLIkst4HRCqla3 znjSHHP1Ey5whD7faiX?alV0i)Q02ZTk_3mPfJFg37-Lr#nAJZaN@;3AGmDT3tZXZ?%N)CUb)gVI57e! z3;x`&)h;#rpAan%ow&UR?{VrkfdVW-mMMOjQSUf{2SmCy*4*Cbi*DnSh=r*B-G(G$ zhSbi?d>}deA_XVY56FWAo8se9wdl^(Y^kvRW>c*9(On_%@!oz9biQ@Aq*t@o0J`P- z5^cv_`~7V(e@Z7S{m)csCOR%BZ;oyjUJYxih=evuW=$bPrm zA`ZWj-DEbPtCzTy`kp2feLvE+vl0C~Px+FQ4Pmi&a^Cs%<^=pW-XDr4%W<;s5Yh$h zT;BG%6hszG%L$rg4FmWR(g(kPa65ELQr`Bvkz>H%u3lCvJPpE@7a}! znW(C?6zTy35RtOqjk^R_&N*R=PLLI&NXlEY#tb`P>wQYbx=kYViPi{%j! zN4*yhsJ=qp_PV=$;8CnAuGQ12gcSK@kQb8Q?k3^q4YZoF1JZVdUD10~hwd=(?mZE7 z^FO_+`Ceo^xM9AN)Sc67)RdJ_`cIQ=-LE>2E5OzjRIR*t)EkM^_p$BwDXVC@FK5-- z+JrmvR&ajqX@R4H8sgP+qn92u0LVacwQ%S*pEWhI4d@+d9p@}p1I|&*52>!&>gqPh zcBfZAQGPXkyq=@yCL7K=a$&eUN6-3*S$JhFp_?EI6ay$UQu+D`qNrB$*QgPr#MnFhC0zASHzqmGA@naWCy zHdi&qJgbYTAvJpbx*ocZuTK9L{?wCcA>Dl4Zx?XAqnKdaO)TD8kxfOOm+cFM#2ETV zm98gWu6O%G%Kk?gJfO{INSaKHcE=ZxZrSkzU-VpPsQ=yBs4uSF z=Z!JpSyZmzmOcDZ0jNu9^>Ts3Ai0VE8_~?ncm!LIvoF^SeXe6b6`amO4bnxGRt=5i z!&Q09=Cp#fZ6AW3yZaK@{F&Qp9ZqH#>qhH&;8eEfzE5e~9|r9_~l#{$}p@ zzdKu8k=u6`^qgHxuV1WezF^p8u~lu<1dcY*kLT*R*9geF=ax2+55l0jMVKA*I>Tt> zFtcy-Kr&_S@MzF*qG5mAryiV=4p_lrkdnQw{m(elkub2@$>=R2PzbT+q%L$~S`*MH*M zeRzAwYA|XvYaapSe5FaKF&rS+?-5l$XZf9AySDWvE7Q@s{H9NN4{}*E?uo6mFuko6 z66~q;n+SHiRJdtFMn|Y#@7EN>dzvSqr%;KT_Lm^(l$`~Jy2ghRe$?&}tF1sZzQZyq zb#HFa(Sd=mPIsxOWuP;5d$Y?LLLN3=?*aOd+DO>Z1^J+J$bAW_woPg6Kt099_>f)* z$vdh$8iU+5=}Iw>24sJ|bkEF)U6tf*T+Txu5Nl}XeF4(zd*KJ5>48MboKydhOIGsB zT$xh?{XL{+7;$n??i++S-VUWpt~VV=avnz>O!(;?SAK8a+-2$c9P_%*4%cjHdJG}0 zIjN(q*nRjQp@3G;HJ&;@zyjjwV^?#i6m?N@q3p}MBxKTEudZFX_?W@fz7A$hzeZYzrJ8*AWiEwRx4%|JQ{ z4teYiq+Cw)p3Pj?3TM)u)*ETF59Nt3E$wWW_WzIks`pQg#V<+JTaV+K9k{T{ie8hl(=^E_Zp;`j(qhOE|JB z$o?R?Gvbz-oC;hbK4_6jIloSEgWdpM_EhTf-*=_#!8Pl?qlKZm+ErRE>}(IUtYb~2neGx?tVdEWG44DMXO36 zee{hz@4Y`aN4KD+l~rV`-CfEL@WBBbh^`iN4EX_1Kp-u6)E7YjI6%xYZ%^|=BDc{| zR>^!4eB1qYygkXdlMkGv&Hiei>;@uWp~r%V2O8B0)n~GB%MFsDp;!B8>+E>F4QZJ+ z_2rN71L}-Yiw>bTIf5B@-Tw>UKMLrld=Oj{p)|@qk*>Kv7&cH1Yyb2b zL7(eCi45!$K?U^jAo!JTAnkO_NO*Z_m7nO;7XUoL8!k?`ngsnWd4z|2c^oJWszYmr*cNU z63%`^w|_LD>iWL_xKM4AN%ny9Tzg7{^oDuUcYImrLu5-8z*k-Hs$b|TCj_W^5ii5T zFePW^3}D{O%QzCKN4-y5A8v$h40Lp8GcuH^cZbhBIOXVdD!72Qx3-?#1#9P5BX1cm zi61wg0q@$LsCVuuz?syVt<9H9h^xagS1y!*`AMBR0G|6z0b|-0bJ~kS3jRJ;n$ECu z_Jf8iqNc`DkB9k8qEni!me6ak4cDP5T>b%xY)a+D3X1LjC;xO{rma_e5BKeM6m}|@ zC6?r0qE>H@%v`I5G`;h+d0$Uwn~Y-B9t&GxyFoRad+UU-)nc&OkZ38pa2c*H{y%4C zW-67s<9!>gXH}Y)`r7VX_gg$qx3{}x3bihdbg37w`2ttqTKOw>7=d`qs|;G8k-DC= zO-#}Tg5I}25^(EDVxCyu;0z6QUBy3FT9iSRt;g9ywW-AYUM_zcV5^$e{rYppj&Sex zk1El0n;;mH?$}U@%0tD0nPA&}v9VW&3^?2Ui?L17vtdxiCvm^LT7xsgT+6vbj=-^^ z_o`adZCBLco0rOho0V#S&(G#dn*{6hH|LJ5l}VO64P6c3`4X;6mvRT&?d+EHW-pb5 z@0LZl9pNvC_?OSBUhKY{xvHo0`t`8j(-j(j!*NzFxJP$NgA& zxj#0GkoPe3EDZ8MEWGq#Ch<<5w6Nguf`yNtT}WN^^@Z&NS($y$Oq%b-=Y5H+{D-(V zQ4{N|nrTF)C@~7pvH9J4;BWvDl;Yz5mVft#fO5uwNHU%WpI7?nK$s6FWIMNYsnnumMr} zFz1oBd<9@Tq#cH_G=&6MDoL=N@}2F(i5ogQq>oxZI?6B#?g6^{rs=RQjN@a1#N z+$zzH#N4MHbJPS4S2-6IXQ=?OggJ+W+~h$a%?(mvDv@|S;UJ?4SvNd8{*~GWRi^zO zKLL9k+ICSHcQ&U)3-Qsqc>Vc^1PC?5rEkzoXq!Agvhb8izb&%x&lbe88 zX75v?wWZC2-?#(mxQWUWkQZJr1lgMP!uB}S_;#T%oSBOBtYYEl+#CHQE-a}G!B$#b z%bztXF~*_5zPRUDs9(g^Wcj~&3UT2+=yA%n$Mv2TehaB3^65>3G?>A26~f*x$LOVG z0*mSo=biI*1A3LmCuxt4270N6V~&t`!Aa`}^Im&pdxqh}R#DbW*30XyciTR?YFF=P z$Iefx+luQM3#3$?IhZrX;83Z5Sl}a(8V-f20a=qKdf$b5yJeVc+{>L&oKGtBY-KrG z&zuwdV~y@|D`#*PEi#BWRG8?e{};^$d-Y}nv5?5nXvdEX@hrz{2F%5u zT#W1X;7EMn#0~}iDQnZ-$7=Wxg_Aq6Sl0AQ{n_}tWf?=$iS%Z@m?rOO`!|l``#5Yy z!k6%uaod{+U|yA;^DDzp|5)NOQm*W3g?S2#YN(uB_*ywr5k} zL|`~u?YBWgHwqF&XU7!7_)sSOz%zuP=0k$Mo*c@OqGdv{7nPa`{Y)G~xwqKIuvE*8_r>BKMQp*<`AqGUkDwm>FBI8f)#||RHnA998CI52|<{V%6O~CajZG;>orak zh(H}7nV>@2S>Z=4S`9&FW;B7*Z*9wms@=hrL4CT~5@_sd_@e19Sw}F2jw)72gEu3X7~omf{5&Jv*XaYE+Yi3>6T-q z@UbzBqw?emg?AW0uWs_IwYTDrC@#fpd6?VHFcCTgA{>#p-r1m02>v%iy@%=M5RpuB z?kW{?c@HTOPqfubL#$_)B_v<-^3A8_H2q$4QBIdeU9<0Tr-xpxbIWMS?U z-A1h4kLmsHJTBUuhS(P!?dQ~U{^fwyv;WQVpGa1b_s4OBVjonw^2yG_Hx+EleNFW9 z;;LhuiKwR}YphGRzg%aj>t<8HOwZ?V>RcKtAFadPd8lIK+*B#+iwKv%i$x^)wn0{+ zW9J>}Jomtw1MYR#Sdmg%&+)uw9z8D1ohjApVf?xAcKueN8ObH`f z`l?SMCcnm6R1DwO^g}W;KZw|jx_eUoSZV_`h>_#sHJdX;10M9*$zb(_Gte$FJEyQt zDH1*iy{p!2F2hEq6maEUEpT?g6XmDGWdguq5L{8`n%!e_3%;3f-W+L-WyA*^RQ}V~ z4QMVrZn1wW0;i|sWuX~crW-DWNkoQIX#$cbqe*G<^3KMO8F1;NaN9F>6XXo27tz8ih)Q2VG6TckiKmom<=hbASgQvv7o5b zYY6dTOZMv%U)b3MG9(z1^nEMIr5bRcW%1UkpSrLV#Yit?s9TaRAeMD|Vlb6OyBr<( zqgSL-E#n)B+Y(|mL6_bHi4#J=s*dOm>M$Mn&;cd+rd0|&9Km1M<*fHcTlzG!&8Dql zwJ7H{i0vdpa?r#?y-b&4Mh*CXiM#hO?W%Ul4am;Oos0(|}I@1kFp6Gk=xv+xC} zJ0d)>iPD2aM#MuJVtd3R1L;OmYy?M&M#3(^z11ADw$AAn?Ed z4UvXOtly;of#}I7^i1(ZC02jrbYLhau4ZzY*k$pl0)&Uheh^0DZzwI{(sMkKyCOHp9p-j+>eFI9 z`bK_zJ*3n=^XlW?8ozxRz~`zMpk02a+f1dJ2Aur~E$Gr&?|>xkSY~Uq=dWz+=M&Pg zJWaLZBLTUt*Gz7)W!1?{5-Xw4uBM6WOR3%RLL<*JTB?ol4!je%f3K7u+Pc2>-1&P% zyXS`N=yg1>9QlYM*6Bw7GQpmnNhg_D6t&bPA!F@=tkGmhl zy2HVH5YII#9!}8vHeQvWH?o>k2HtO#D`vT*;DH(I$v^at+Ha|SYyuC0u($%i!UY6p zIu1JkmNl&>H>|Xrs(#;99lic`HL1DME$8c{edph92MZ0BeddPadX+?|ivP@XsO&s! zp>9;VfPYl;2C+v#%R-AlLktJeI6s!6r8`VUcTQob$vizea4! z;xZQv0>@*#B%`5%dr@MspQapU(kaxuBARD;gMqqP$)5!vlt6u2Ag5dY03Y@mnJE7n z-nfn=cZ00!6Mujt80v4e9R`*)%4~ICfsMdS zbDx~Bu_!wt_bldP)@+=m%$)om_1j-qwkyH0ki1cHHYUf*M}7yqxAjE+ntuz^*Zm}p zl<{c#ge)nWjq3acAO1olfMkrKDaC|A(|l66FK)cCyH!kaBN;=!+Qc9>oDu&Nap-4e zW?2DdOK1j~+|FFhisY2mo0NsO8yQW~%e)out|LrEIqwaE-wV-n3jr>U)}wK=Jpq)- z6@nm4pE(0ZG+|1rKn^wpLs?Gv^ph_%)qd`AQ4yI-%qxLQH9%MfEBohd@EkH0D=eP7 zMKt1zl+8$FpEBG9BGwp^>y^;c_>1pBMc0x;d60vm1)chTtfDfN9C z1GS0W=OiF>Ue(7WmlT*>N`fZ=U`5sS6oM9|3)So+Fd4R0ZWegSLJMUX}ry4*0-8cQe*k7LYj*VjHLXt+kw zbaU&emKYm-@E3JebHrb#QHszs-+DTIxub#AnG4>#F=-zjh8@D8VE{mz4 zZ(dwh(lU$7K^#V(B z4eK51@ok&>TMQ5h7R!rgI!C5L~|bWe5P2Mimzr46{}<1?_>DOtZ=a`t$WmL^FL9|iZo zt=tWNL_UNcENT46IIPS&>~xxS_XYM)+bR>&sxr3Mr?Nmh*(!+NF7h%%uE?{T`G<7XQJKEq}^*ESj z0^!OD`NW)@DTO(BX3fT-fs)p8I~!;z3e{xLr#KlkoX?tlra$>LH{(6OwK|kCi{?== z$!i{(TQzCANOxaf_ZvHk@0iqCv7(?ZvKO}$yV(H>sD}2}hWUeKI74vX5Ep)HUh#$7 zpTG!W+#o_zArJNNH(Ilx67Q+o>f=WyW}tu7EHs$WE6(tML}@k7zlgmFmoO+Yd927AXc)M;{3paI^8TSh#QB zPw=mK`gVxhFMlK>59Ai$EBLQ+#|+Rs(af`+KvRw2WG>5XBwJ$`y`f(5a2|kkg+n+g zHI9sJ$7wKuo~osp&G2RLh=(drHlb`vU3@7Z-Pv=c+j1v0;T9s{aIjIDxwbq_ghiK6sd zbiutcb-(=4HGbLd2mXo@8P+(=F%ch0hrJ+;-Tq#uO;PT;~t;5{1Fh6ReqiU~!@W z`E+o6`4M#FppvmVA?)0>Aj3JY0326ce01HqD_d}q(U(rWc_f8oG56?(QS%9MK^Q5A z5@qVUKf|q)@!3qc_9{a=a{}%PYBj1$A5%g|7a*IKTGVLCoW=5AAi4-6q`o@o15MW6 zs!BQ?quZj+W7O)(5EfQ~h-9H3Qd-W&20^%g$#(0}twFAyJs~gA%}S0=vgZ@(RJ7b# zp{}TMaW#TWe@>TmzqG8Sx?82E zojNq~i$~5s6L!TEcz)A+*o#4L=twZG)WR>P~c)^}U=M941yasoVY&N-oBA z9#o$HbVS4C9{TWUCiIuY$~-N(fTWK?=TQB3mMYN*+M4m{0Dtz`NaJA%F)|r@xJ0C^ z!1A|~%8hv=rNUj|Jl&J+1O;7p@z`Q_i(Lx_$AO%*;zhdh{8MOjIh<6b)H={&8{*PN@4#{A&gowD=KqD=TkBCpY3Y87&=Qe z5O8D$r;Q9ROgEV-QM|G0JhEc-Wfc_3wXSdnLJ63+);|S2*W}(l-^J|}C)gD(etj;{ z-Fh22XbbJECwAg|^2&kfk;83CzMQ4<)Sj?DdjW95h}iFp=%GW#XaW!-GSQlL(%B08 z`GBoqdV$~!FO|tbRp{8+XeB!|D`X&Kr<4(b7S^~Xda*a*Re+@rhy=_YMQ z2LPXa1dI!#H>@Ifa0c9AQ~enu8L6)UF2OLbodoQeOVM3cXuc`?Tk;?ieuwp-DJ1npsI{dVRymUPRXRXF5;URz0Q=m*{d6U$Ib zlsP8gw<_6e^1#LKoj*zlTR92(=1p0g-?@U?`eqk@?XrvHYjOeDR@H5b6BSWPkux(Y z(C1v?kw^doVDUJ5fg8qqs5)@Z1=YzQ9AqfizC$~xG#uotZ9q%gOlH)a0b5sRyDcJ);`=t7(_gAs$ z--gDVB);@*ZifsUHWNgrXi&w$QpK$h8N3NPi^K+M|F07%Tuw&B*xUf8Dsf_VX zz5Vl4UR!DwUIN$If8tPep}|x(v-OVoIqRjI+raTyr0CFQ? zebs2gl|s}dY6G8oP(d6` zt4eqY0+Pf&4_*t-u5@2t)|?a~$E4o=LOpw?3LpX?SY~z@)jQ)T{?OXsVunMF3I_k% zh`}{+Aw@(O1`9rOKz5F;SvHNbm0l}|eN$6os!S{WYwSXhfVVHKMJY~FiQbyGpcGXg zn<34FA)!-fn>wul{e^=HP{{I41tBv+n9LPwmwf%_#`GtQ8Y56g{PlHbKN%JWh6yVQdb z{ign8j-j_P+SSAtzpWAltc1*ksZNc+E!8QM>$;XNEB z02CRpWHyU=EaKq6)ijQ$(w%9K$2epV8F6g$g4C(OLg01M!CBdl(`o0}EEiUtmO+qs zw(KCNYC=V(KAEF8^|P%QNK?aU`CCs&8w{{8b9`%~T=3oqndSoHD(C~Q+i4R?N|eZG z8hp4_64-Ju@;I@ zqu>T}8MScaMVs$!6Dx#@ogQ}yWNKZL_jo85(#3e=Nk7{GMAk_fkq#}Hs)-tU4Jq*^ z8w=Agi|3Y6(bNqj zAAKz)Wu=Cz+7X~pHJTg#N*^-YCQsnT-G|V_WbUWPOv~l58MhV3x2P_n{>K7_!Ps0c zt1g9g@?)*DpBfmS*S?t2_e6HYRpeNj-bkgUv5DCo9%EVH#Vy z@l!h9=j4*bCyNmf(Vn7=f}{n8&qbnK7(P_pL>APFsiq%jW(>1Oqklx=3M`kj3Lh$v zkEIM^S6NQS7C1zAq6?_WIdd-uw$9$cI{Ct3F39B$)?vnscM_|3r}HAf2#253F3GG@ zZWTJs90_93L$Ay#iL;nW@r^HhUzQl&ore{bKE#r!@eQ?2Ln9KuUW$dY-kKk@S}nWT z<)3=>(5#Af?DGyCB6`75$xu($u7imoXF1H`U=FB)wkD>xRdOkGV>&fyrfJL?2%`Ga zB2+Q1GckW;Hu>)rKJB*$eVs=i*H(1!g`%djhb{Y>$&bDM7Di%{u4SGZ%q7JwLlftR z3P0$m4B`;Ov9|ObX3h*-9}@cR_k$kX>+zZ5_~lqJ|_dgG-tS-GG#B!B2n8n_29q$uo%ozPz)K3l#vXl??3U> z>TNf>tj4UxqmO~VDC;Ce#q<{pJD!g-KNorD5;kNPC$w&cn-ye-C2CcxC-$8c?20>` zXDp0=QzT7qu{{i^w8K!2Uv|!;cx{v(=&gzNx);1FVMhNde~Y%g)P9HiH?Zfyo4 zOz#xtgZ0*>Utn$wN?4>5EO5lgpxN}$7)_PwZm+hqY8ev6F_20Zldbp<5l-uHkOd)e z@F&1*j72PD8-rp?PLhy;(7~$7{kxptVWwFHIjfS{(IyA#C@;Kd0XSv^o9S6n($mf4 z9XNXWSy=aR?j^<@ze2>phXk@#1q1hq0`@Zi7&(Z8*)mzVzbe+;jH(pqG7Y|7edGg% zA$^N0I4N{D#byd7`VVp??+u});Ju?bVrRDIDcpbea9Fj8-jdTF?Q%+Uo{gt^`N@_~ z7s)nrug;S;9@)9gS4`W#=T z6#sLdq61}=X7BY8+dLUb^qE!2(e^EpoZ`f4dCAKG7rpmx-LiygpCZ|Em_siwsEHB~ z(~IXa?VPhvyZqVz^!tmI0X|`C_4kjzxYI(yTLdqz-`?gQqFmipmNI_7n6fZkg!Q0Q z;a^rx@{+Vccb?5rI*>!mJWyiS?w)uk@gilm-g2IPl?JV(6>4_XeE%t^N0F+K9$Ot} zqUr}Nwh#F?jTb5T+vHr z;=H3$?#Vzlr>S%SyWu_-nu8!Cf^7|di{>DY+=^~eFiJZ3;H!JgXi3l(fivtP>Mkkh z3T;dE;Tnyw%tCem$H<`G;?Q_t$uaq@O{$EUyxnxS3KCnF;E0H`%irX;`~>HCnrr+sZsUiwTl z%(DmU`UXvhY}fr}+fpJNY;7I_Sm?snR|ykL(gNYfc1PT~;aaJvjb}%-SvS7Ztl;%%7$rxv4GLz z>;8NE(#5vUo-$NLW=07$Zt1B)o5%P0;+)}tm^fno8k$kI32p&<0@gu>kYEvUby_fV zRP%5mQ`pws=GMJpOsNV4ySxRIQ}FnE4$FXm-J zzq63GM@pjS@-=E8aDR2;lR;czz{~&fFb!Gl$uE?Ygbq4sPVrb42%E7T*to;D=jzp zT9#7*LYCY);=lojOt!Z8;7HoxaF9?RXn5z6_^ff>lWw6gr0Q{rBbL+e#&az5Vi^HS z^G%ig861c;F_}qE0kaU*+VhD@4(O6gcp1**8OB46aW+uPF#CLEKwCUCmbfu0^Z7cgG`2`r{F8D6>H4N3{h^LdF+`#B#tMNt{_!eo%6wcWn8vM7_N%F z+N)OrTJPuez+%6qldz;`gX>nGf2P6$am~c^Ze&n%fwrz)S&y|2GDgYEd#q8K>cc!gJ0+L-yZoCwv<bSzd>lxo1m0?w7BHDlZhC zLEJoIfZH-cs=1qIn$WP;xSnp%w_^$}QkpLxWf_ehaycwk=*lzQ^wa@_KZeb zyPa;bZb_vXHwcOeKo4%DdKxia^8ABN=Nr8P5sl?>8*C;Uv>&VvD+TGEoT-Ks_7K*#AjaVVI&_U{mc>OiCPkBP5HtKhm8_G*f1IKy$dsChm!Ko8h>Na_ zH$YR1rw*(d5FE;SXNV(3FcX72B96IWc~*s2lIW{y$AZfH+YA#6MJ8`Q^BX@s%nY80 zm_hkUK#F_(fYV02;|Nhu0R{T0!A7sO#rAZ<`DA%4NvoJc|Lg4d+ z;wIkB8x^gsUXSX!7F+9ZUI;@m33ET6ksDdFe1u*WMC)mMunw&wq2DeTwC~R8mkc*o z^Dj;I@4fjsL3AYTwL^RbM`Bg-*+0$VEPVV90}La|jozg@Q2h+|-JL5>GY740KL`+x z;=&3B!Gy%p)FQX&apzDd$gU_GSuS@pT^TS1cyr1J`(ya?T?ZVLu@9X4QXo*0DlH*r z(_s@#e?XtbRBMhb{A;TsH&EH)x#ZQ3Y$xE!Q?8PkS`GGrq7ME_fk+lhWf^5bIkYho z(Q2v1X+m5EoU;zWo?Em2mD0G_r=z0({I`gv@F8-79S(faUYgvlSh!S)h4wj$9Pl^% zel6i8DIrJ_8c7Nb8){MA3G5X`?T^%DGE$T{x_ShtQiQVp=A~9A+@knrNg1=I;p7KL(X05c&Fxu6|H}(-m3x>Z)pdh&N3f(e7Iga>C!lh1;g?FHO2DVps^PKYQ)BH~+9+SW|L@BCgPJ%^80A^_ z;aD&H69M_m9*^BOl`?XLy3N#1aF4C$?+2S{m{JJX1nw#Tn9oISooOgwQ0VVpgArzQ zK3(0EG2C&DL&U9y4Kwu44BeQ%*M8_{Ya;WkQiXe8Bnk2JNyVG4za(eC2}^)ZNp zE8fO!#9okz|-&b<`KHda$Ls4Fl>RujZvoO8$ts$^NMpYd zZ*i1mS>2?h!n4hjoy;({K_;ZrdwvA*F;*B*1-M{6(90wW(Gg!bmP@za-M`O@7^ldl zS-b0`mi9;WGhm{M{AoixqQ;Fe+{5VcH&3)XdJH3*Sd3wUfpDClwfgr_&-ie^6erv8(k!%%R6<`!0ui9Yc@HHz}8vw)kUHFejtSJ3WD*3q6(PnAu z-f(@ERVRr~m}fW|ek-FSb##6O?zjk)luSws1U@7YhV~g8}CUUriY`fu4s<28E8s^1<-&5&|U2Wxq zS;2XFhJFyHsDSArU`2Y2w5%j@N;F{OsY)~qC!)zHmgEFF66In@g#5ha7;^5XWIAy?E*ODD=-6OI=3>1eXcoxLa@2w zzN8s09vM)=hMU?avoX6tD$+CZDvS$NS@Eu)@id6Omz8?d;kw$mAZVDnwKoH!TB;w7 z*qQw@6>7^K2pzz){cQpo0=!&Ye#Emrk0;dXb{Q4A?=MK1shMb6lrk4rpURK&uC3lH zWvC51a#;q7`&V@nz1PElg3j%;d)4_n&g=`eeTF5(fFmuNZ@^2}ySF){5sS4AxYuKD zuEM?+qPCn<7{QY^bx{b$@IH&w&jljEUq9MuU~tA5Wkszdzh+#}H*Ri>68V+k{RKj7 z`0LQyI3~U1G?k}CG-FsTpI4O;lsrv6S~hnW9$B)CQnwQwNhT_)Q(FeJtMaw_^3>iM z3q_f`t=;qKj(elRHgt7H^0hnih2F9!gx~n{UiLX53p)5C1(%{GgVCur$O1c!CbNUM zO4uu}P+b=;%JzJA4)^gmYY~$mT+w5tPW+v;j1{a*)B|-@5{J=cR6t-QS%^8E#IgCp z(p3k>MB3AAgs^L~a>>#zkflnntEh!HNESGSA=7>>F>Y~bdGZ_QuTxokLW!vx7V1m; zYEbfvMAt?Wfry@pm}QdPG<{^^bTvhN8hMYxm%$1Hq{+p3J%K0RE5p-0*cKPi7L$l< zv-Fl1d{2aI_@oM+phgvaY536v%mtpLPQ4>@`|8XIkDwUvAsGCsxy+qPU|thW%Bb@Z zpPL-psBzT@r%q;v*#X1=Yf2CV3Sjd-eWW%m zdZ*PowV*zjODadFM{}r24ytygg##+q*+y2I)f@(I;-rIh@a~g_(A*q_ykH^Dcpc}I zNDbArjBNmZab8Krn}Z6s)R|F5qV!Fd5^<7d%rY)C+M0o;U=}RLA%E4ER2z1fgsC?$ zv)P%x8JX#0mcEY-l{bOZZb@4>>>+@NeiHyvp(0{u*_bcE$7X1#Zxx6nW?j~VLL)wB zA^}UnaauB*8d)gSY(o!=V8hU>Vi7eKLqIIS*oSux-m@4@=G8HO{QYU&3@+#lJN z185)C(@HrG*6Czfw&ZI)5r(%jt2pgv3>ov*X6f@W^0R z>qxp4BQEf$JPD2zS1(PjfUZpm?lMk)a3v&GzL0YsC~}%S&}dwBkT%#;1Ir$|JT=p* z1sr3dgj~*sfE!|Y(QfF{UuDx}5xls~Lfy*d_MJvy#JL0Oh1M-vWJs=e(U)R5EwEt-6P#Pf4MVUxG%1%ZQf^FOgfUtHS^-F^^AkmnfoW+9=z6O*beB6g=cs!_QCBgvp3n8oqtpi4ySTa-w zP{TssCqBNVK9Eg6pZa6saU9PCT$%>oW)#)gw5UI`t;qaXQ3#dcx+U2PDct}@LmPbh zg9Ed}a^~S=VyZGO`*?HRlcvDtrF#oQl06GTn_ikdS}5ytS?#s46F{IT#1TNsVUX^3<1krvbx<+fdLo z7;J+_(r8d0OOkz}Y2s4d#t={b9=8P<7Ojj$egOz|jap5dDjB7N%I|gH z=OT~YgA8Uxv!t+r)w9RF2{wbc5V14m8p%kvL;c1!q@_7C>u0=X_z_7IFUQKyzHFUr zNZWTsncxuyENeSn^Z>C z5hRDEuivAE!@o_~+74G0YztFgHTS-dJ!G)|bKA4hNv&^jfaXdLJvCJS#wy0cC42Gh zv`mIbUk4P1vL?nvvqFv(h##Pg8*M|+ZZIcxLi8HR#GLKJN^bdi!D#0=dfNLpeQzG* zfm5?9r!?wIq;}C~dRrPM_DG|hfQu(7LeK3|hfAtGqm1NTjw}+ePA2n|>2ueE4=prsGaIlDpVj-v@0jJmDSa=$4`~nm=|1KL zOgLud2*!Iq8tjftR&t zX($JGOddIH<~0C3tPMhnP}81I%j;RZHA7xvofkK$5bzAa`qN5Wa-Uz?G6|HvkgW{X zLr8A>Ce1Tgf+3D2JyQ;5h_6ka4Kc{R=Ig^r98a~E%p|Sb&zb%5ggMR zCK~UHHeijH`}{SdmQ}SLmUTg;)fIit)7fsHX#+g1>J_!3Hb(#%(3msp_ZRLMy>tr5 zpbsH>*fp7%(>?L`pE3Cuc8h#yTJ4U3I09|2gypsZ6`0CM!jJ81qQsur_*Q6(p%n^zU|0T^k{n)qQI^FXF`+w0F96;=od-0sxn+)Wc$?4YiJ<#ku-v$t*e%@*|G-> z$?UKwX%$<*J#MSh&Ly1+o-^kmv|hCY66e+&188`b%Jbz)U=}^EmOmiufNJm48~V*l zvEBrDVN4x!m@Gji+$}r+9MXy`RNuN7_l4?PEEuq45D1b{iV7rvk%;zJS}-U9KzffE zml0{ExZ`%gcYH3%nGq2%i1|Tc+-P~?oGSrsbbP{rQ2Z`Loj1MBym9Fb$?2InbFAHg zY`$RLz%Ix3LIaB^HX5jVe21uTAJ*#r-cI@X`?u}Q-~Fx8vwPciU#P-JbPUNKres<$ zN^(@ufsJfbTG|ndfN@51v1~AkN2P_BQ0PlbQxvQdcp4}NV$zdQK_&e>5AUs*cn|#=odj?!8qW1# z#2`|{hcPidhSie-%PLWkw?C@nGzl%MaGLz5Qlk7e1V8Oc1@%kv`~!aLAtWVay9o^pQC zTWh6gKVWWMU%w7B?nSF!g>Wd4Zymz(HPp>HfQ-$nV!n1DLz(5)X|pv%KQIp>?Z!+r zjQV)`Sj@7+5fqDLRcN7(NSile=1NRgfX#`GMcYYLC5Hw%{Nosk3tBW7#RSDB>#7we zB1jX^YWj^2Vmkv625fBe1SbMiSHjbi7VVU#QnXRhDuD8HYPRm}KFH_#iO!%JhAGn? zJGN5ZQ#Z`!qYx@Ss2BrXUJQ&9uV7)Q`;uEAgo;p66L&#vL&I@viCU)(vv?D;00x5r z67To6Q8RIbIX_Ak2Jry(VFq|*u#1tjgF0#Y%!+0q)3()R2pndc8Jav*)Mk?uD({o4 z0zos)d@u6cCYXgkG|F4>LDR=^3oEFgvE^UEEm=5LghFulZDEU$FYDNQ^)jYQ%>W@ zbc;UGSghveU^)Pzj)eF;!yqbCvOqGtPJM|BMqZ2#mnqm3Fkr{jg;BYP6@@Se>%YWS z#OO6#Nn!{mU-EmTV@6q|DOSJ&(hgIW19+3{F}KM$fn@`Wzs9&+H1@;{#@B3HzYjlq z(y<$Rt!2%96VXv`VFer^P;0Bgf4XZ+UyH{^)yKz1{8dnT`Kk{MsizI{2-~yHE*{ zRY@&*NvgbpPFcKDx^d>TsxVQY=w>aXC$d>XFio@z%Yqc#!q@wQA!9eR+DmgLkrQQl zVuTJW+T&dqprHHZU1%U%Bjs(CcSWt5{4KmF!t>1}@`e%B+9 zM(^s(>eB&CJfsI!TWL!jbMIJ!uz&G{dFLA+Q|gItN>smVZ|?7uH=q6O{5PKd^}%Nt z-lsGKF_nwE8>Liyj8~)D3Sbc+aWCChqb|_u*fQI_DhDTRccAnPC{V=*C0m2$x9*Va&b{niwnU}8OM%vO7E82@zIQ{r-}NI zZq0bcjHtEqG?IyDY8b;FR*uJLzdWLLo(R-A&?(85X-h}-M!Lq3xW;9_R8_JX=XZ>M zMr{4!>kJJ`(MlNTG{6LxjLBIK_?|P;XC^Dl-uAedvz?s&YT0mD4UqcC4&oN{7^XiKPJd2n z;~oK-3u>aDVI-axBxf5_yCO6Sfs>nJ2)Vd<^@P-HLSso+4(FRKw-v<_UZ)kH0hdLG>jp_qWRb@bmwq_jjQa>_cUU)ygon;IO6Q z;XY9PY?6<2n~g>f#(B0hEa-oa`K~}4l+#=?Uy9OLXBbosrC-yML90255F#IYK!sLr zdJ$c7vzggwh&6dQ9x~233W+JH@T1a{(wVr6h%YlU3Xt)Ln!?193K*A_TJD0m05Cb` zAq#bpmM&KVJ|$(zuB-RYND>ELF`Za3IrEZAHhAuf~HiLSh&4Uz-GGPnnlA}0e zML!w|M;#e!t(etOjU`ta_Zx|y($N#&l)dfkUz>c_%z}QadJW5HsP29K+5Dr|e{=No z7k=M9&#*9R)fkLLfKdwj9ksbk7eN9f3)p9c!Wy!6ZiEF7&6hYlGYD;$r?SU9F<&%ZbQ`crR=-UW-rW9oG(P>kQ-y;nZ-8~=Xv zi?@ES*dkeoCDdg|A4#e#I7-y?5TmK7fI4MZl1b8ziURir*qCDC{LP!{kt3_+=7+D+?B^!WFLI%D zK+I>uTt^*UxuQ3(&Z*xy0Y&A5nXg| zLKUrgb>}{H zz^`{&UgHu#hWIsHqw4XBTHZbZOGd{Wo6FF@GIP&+7Lb{_4GGKAfq2%$yTe_{%Q9naoU9LeuivrChFVbEm{2$QVI7O`x2iaGEoyN4jxZ zj7Pel%QD2>V$>R#7z)5Vn$Ppmwu;-cYN#@`Id`iZ!Mwlu+)DAxoG7@3W>>%L*gtV| zc89Jz>kf-34HaV|Lvp^eiY!S`i0bDd%))LVmW(LFqoq)MikcjHDl$wJ4rC;-l+$`H zIWH`!gi;8nDMND;AT&oWZRm<=_?R&xbt#lkK_KJ|z*J|?Co5m~Ev-NMS_6zw(o7wL zmE(IJeJp<8jZcq$;Xi&j|2X}nN%nw6&q(dVypfO5;uNnLR89y-DkM8rmQ1iIhWXe^ z5VK*bxE29cqJ~Th1gUjMtzD}RQ3^`^0jcsad1Ai=(0jjs1)u@>KtmZRIlj(yp}0Nc zg1prt>EN5W!CYJy8K!=V%xAN)ItVfdj`vby=4tZPJv}DvCf!qXM?7N289H3<604RO zEEnX&iwO4U#+HbZ1`3j-5dAdfE>G^Eh1oLcCi-~m|h4n##qot#TZI0n?5{V9wl%%>Cv zdBvP`k`yz?5nYRhW`9IMzXV2ZF(juTD;1w@p^xS~b6ztzoPjWIp|oGLMdK2dfNR$- z>P0esET7jq*KWE%@7784{O*G&opT@~qR^bvD`=by`*D)SM(8W)%)_t}%k1?GRuUEq zf(`L6l*l9R!Y4EfSo^8Cm)Mq)u|E>NSulnbW2;~wCmER`SD_*dvxi1GsW`DNz|?AC z42H370BM1)jA$pGc*_eHpuP0PzG!7|32G)wd_ zRjX=d{=TN=Z%p2EhyyLjw?sWH?8xPa>`-XY^`L%Lc2{kJE@%^VnYlt_} z*wI8YqqHRBOSQyf7^a%hj@3rFR)Tf^QZT0Mp&#KSfcuwu@@2l=U**4usKJ~~+^$1>P&%Q;See8^S*AwrM&j$+u z$LiOl-+T5Q>HB}>U+(`8UwBSEFZ2}rPa<4Kc2iT}sktFNk))N_N)<$ksAdQlN<6JG zoj_qHG)W9u7Po+LX7}yc9@)Y-SZMLqG= z?|i}Y9tYrf|M#`uy+y$B?+3qldqY1j>j4A%72U&Bu3WZqjK~6-Cn|u*PtJvl1CiMv zsfvcq7(Hs~utflDTBPQdjj*pRs8g1d&vcI; zK6<`X&$#=0^2vHGw-b@4>h-c{xRvRt3zyC1%NNx9pn?ANXPhtn^6AXi_H{1P2+CQL=jF(Z^la=_4eNK8SB z&VP>2oW%I#VU}S=+B*zgoCW}l^qMr+F|Q2yCq`q^Se9g_$hGi!6Zp@z+qxWdRWX<2 z(k>u>@pxqS_F{cZsEpS_HsF_JA~@KWq-Z5^K19%2`@CKRaNXZgI*+%34tmi(`jUVQ zn6FdxqhgG1l`7OzL>qnr2${huVO;J5x==ByTN(Lp=@$z?#`rh^U{*4CqWXo3$7Mj!fIV1rR7f4iZE_&v1K^=2ij^hMcLD)JJ)Le>TWMiltBE}F6ReL^zt_w(c8^4^7 zEGB#ltB*?eR_vBkj7YZZm>sGH}``#N@G2U+JVZS9!pYQacn58OjggFGb49p&FVDb(ywwk?mW%k9t0~yrCaY*F5lD;qkES9IRJYvw!9#CebbZC>0RU~0!29MP))^Cxr1Kw?WI&qIPW20N+ojhro9 zmK*U~=e%i{5t58Mlvg47jC08>ABh_?RcMa$KY=X(9l9ulRu$ijv9?6{SXLGMFZJ9g zZgK2-*Q>SFI~Q*$>INU6j%&WCD;&Z->1B9`4#1q z=-W>5usFP_$ut#j#j4-N1OTPzUbd%OYC(}!Uqi^1fKEuTLntMakvM0I8#D7{FvUfl zh@G2>D6lq@0oA)VDre1*U>LkV`sV25d%wH$U$;B@(TCkH1=e5w$Vb)3KK5%6R=fHk z0ip7lLkL2xg;1+M`SfqwFtDC@;+^W-zx|Kvhk*_Pjt_kA?EmBQH_Bi5rJw12n9IKq z=+gegZ6V901Q7|nC$()9&*@}Etu4hwlaEAuJDar>3>WfJ{hpd3p~}9pWOD2r=|KfD zQx3LZ(STTg}Bm2l3Q<)Wxojj}eHn_E- z79iyA5AWz%dZ3ZopP9b<`z9JLn5<3M7F^jhL++g`+sIK3rwJ+hFqaPV*v149uv8Na z!m^Q<4pSg3}G z)9jCK3BXC+G48mhKl!Oj&ja9LpLpV3>OJ4|_4+;U`9^*|bS-D$n0fc_KQsQNkNorD zFQApgd!k^HK#UwNVbGb0N39ltPze(*Q9rW^GMSTRzCiTZ7^*4;;Iv46Xe8OA${`9q z*zM_dTAHmKAQ9MlW*%qQD(rk}^v)2Ve1loT&pKd;hmd@47hLQVv*caU*M*1rrDAel zrTN_jXI*~MeY$$}s+v1--bU%2=-xiGCopxz%m5|cN~9!C;$d%`Kz)cuvnh=^q+|q2 z#$!b(>5>4H69!iRkKDHDMs3dzPOR~90c!qK~t3!VgV6auv<0nw)v7iidGopKjeG`>ECK0R}&@71Y4UL>7b6?zI<+LQJ-}2TKy}Bw|Id$g|i_UJ8VH%Ae#Aas5z^_&P_D!W1 z-zOBouSk%t0vQ=tbj7huK{(gPi?)dt(s*VUaKJ7ARRE0XabgEiTnte^EdW+n9$|Pu zeF2l_WrDGnQfP|_=YiqSJ76&_X{?a|JnA%L(k64AL60EW9R{k);OP?RD9>rl1PDMA zIYWq;+D-BbjEWc{Dyoas6w%Qc&<|)fht^;wQF*s7F3S~O2u11(0CoCFXT@$PUl}$tD z0g-qDzz~_;N%_i#PF*c7+Tj50j+u;)lVnlQxMAHdgh8LFIuz6kITLefah(!>VoSx0 zNyP=QS#$&3)Fu`8U)LC5mk7Ki7^Wh#-me~imPTsi- zATY251azU@W{k!9#h0B=gQHTkuIsdBT$Vgcryd9B-M%hNQ%p>l9?yi%_SA~j56Fi) zqjhVrAe5<$%V07-Gees`Ku_8>WosN|P*LX23JQ~T9uZuSq#+?iD&27kB`#CsM#W7? zjK6 zyevs?(M_}+;%Pg!90F`4sT~$G)+AlC4<%&0)Ulm$S@v%keRsE1M`w(lWr#Z#LB`)~ zENz$>Ad|T_x&)EDw>|Qz0%W89^@tTZPiD{$`z}*A#5qow zf{SoRsLHx!B0gVEPV7R~%0`%|s=FTW}JmWTDF z{k^XGxu5$t_UC@?=V@_r?P67E3-=*R`(7!|KEt;{VV^X_xEo-m)}v6%EJ>I^QwhQszQTvB-sLKuktoE z(%6VaLsG;mi8mjoHin)(D`%kAM|%|=$ST%sjZ`_;c6r+9`nETB#~j~_%WXi!W3wyv z8WhRrwpJ^d<@)98R#k!E`t<`EHM@h)Y<;FJ!eN%KsLps>@6SO;F{Ed_a2r6G0YxyR z)NlQ>t@q6@Bwv+V`kSaoEOsEgbGH%0WK+*bwgzzy~ZTK$lu5 ziDkcV5^Krrh^Z@b6mM9ci_c!qKmI!(AN;P&6{u5IKp%f*Aw>?y1KWyPmf4~Qo4U-8 zLRpvJ(8IkseeLpP`_xkxUhzU1v=Wz?Ea?iY8JOwQy;~+~XJ(hCKHHCDGZ*E(Q5>}( zAeRxA>xdloFyz|SJKvMOb!F9j6H^Qe;WAmVrGBK&XihVdL#7n{ygo?48#0Pk_2oJ~ z_mbeV6qTn?8fb}U(T?Lw{5f~F%4h$>zv=(~I7AtJAes;^871s4Z3~MfnznDs97|H? z(Ivou4g1lL_w>1ER<&AtWkLnzoRCy$aqo;+Ggjs@(<9dGQI=;mGqg-^jEez>qDzf6 z6O@v5&t&g@Z}PQ|yg7LS&>$`(uQIi9g095VPSJPFy|%P!ePE(}`981mDWao$0U?&v8s^1#ive=pru)aWIXE z#Kk2w1QGpOln|ns=)euuCESy$j4d+mt*#+N4S#HXgWl>=JnL8EWQoMdq0kGaLH+qt0FMsi#PSFzxTJR|y8Jb-EX=Q!u}-muFVQ z1tP;*6PGtdpEbaYHNrZqp!kDCmKJ%DqEDqTNMOx@>`{(Wy5~ir3AUsxWKI^*ij|Vk zETZ24{i-N-y0wK;OeB&qg%HxHiZuhB1=BVoH@J^3%giGaK_VDMrR0oZdOD_fNv*MD z_Jd_4>ZvGcmCJM1es+)u`%U`XN^#)~1e56{i8-aNxT8v_`5>n%J2Xu6XNLoAW?DuxA;Wo`4ZUc8aI%c%?&zI` zo8=;mFb^PKtya;V~6B;=&f8*>WmpfuJdd18|&vb9CZcFSP#;?HPUgU>~CU z)6ZT0*8my+8r%B;U^t;p=6^ry`|5Y?QniO0kYUEvR@ZpMok;u4#yswqfB9GRM?Uf^ z>WQy@m->+(`EL(_M8{@GzxdIAJ@_cWVIe9aLd8-tJxYR=Li7M+^HKEW zfkCKjksmG@s&WLF$e04sDVIZ=#Z+Z=V8`#8{)57H(iw?Sn#Wk!f^}~WZNG3FbNXGz zGu;rkHzt-=&sNj%-gdQ9x*Bh;X-O<94f@A097fM;m(6Q?DJQ&3ma5T({k1w}ut>I%J1=Q}iy?6prudp1b~|w%_NI6CJW1;6>7cheDr6I95>%upY@BaqZca=|LyTdqUZm^ z|1$hfoMQpTDZr()p>d^*Wc3 zOMqns|E?X~(!+dL=j=s{x`xSrObaPpld;$4j1Z?Fg%y@Uf3y8lw)wh|h=BGOI4wNPJQLOCvdCT9|Ahsfa;adOa-1Q3e466SxVj$xowX%0NE zTlB0)7hWQ>RcJ=V&7f~IT~j`Q?fw+W zgP>8(PbhPJi|p_aYSc@+-~}N(6v-v>!8NfcOTyRvvo@YpdVY9E-$%z>f?zeon$@DH z3Q1s`;Ta*=;tf-{W?TxHxEMoCX9(0o4qFEK^=Y%oX)}jlOPzWtE;!<21R?fqe*_@o zI}U>ky59WQkNx-5l-tT&QB5s2%qKdS9O-@#9?e?sdfAvs8eO0o|F>`529Wu?7FG^@ zP*Z;54e{4~_g|S&KmY&i|1*YLNc0JHh%`=7@y5gvlE#z0z{SEcqZHL0jMyjzVnX9F z*5Zy+3`aP2poZf64<&itwcP=r%J$eU9iKN}fQ-8^+R}SWL$H&Wc6QRL)X z;wsg}CUbDS1qzDZP&o?|+GW(=)15LF@{az{QQ0ysLuF`_g7jbv%!LV!u55`GHZMqU zNy6ZJBd(}o&9GvrmSAsy4k+<~vflPYvH}qJe|lIf1_8#0KJ?RSzuWb->nu%H2Q#s% zG`C9CD?k9a)|ocK(Uo$l@~G7lPFJoyH7#6EtMB=qKQ9)J@BjYqod6tA@3bF#XZ+o1 zE9?C7&-Om7tfLSuXnmp%ND0cfwGsf-E|G^AE+=0h9JqK*2)wjIWOl`!EX z2HiXibYy)R{6V2foUN>a#%$Sx(tp`1ax3rkGoE8ORHvWzO&-gd~%-L5X7=Q6)W?sFM?8D@9 zBe4r@0ra$rNa?ERGc+i(Vy?*Z!rZraO|iUEGQj;ASR~ffe?(tfe+3Js_=!4!;0h)= zO#Y0`$j1yk>%yp!!jKFNQ#O`hJZAdEWR+oN&J^A0in2AkVBVp=Oa=Df6OX>tJo<%a z%Fi)RC1z7gFI^h}Y{a87ff9Jo@0Vt=Ro>gbZ?a-+??rnhGXkIc@e8H+$f}pNY=lKp z%>JT%T2(t;*fhz;RqVlRn!-$wz}8N_Ya2s8Ov*Cn(4YnmYo}>JBk>mXWh%e-neyK| zYQrKPmJ%F-xmT0PfPSQyGL z3<$x!d|5Easg2orfL*BwQ}*GKw%0J0Zo%;yDW%k;++JHS=#9s9KrFBxN>|=VhoyPi z&J6wEu~;(QER-HhYZLTjV%8wtH!Z$8@}XDt%{irp7gB7)s-e`xlGd87QF3R=`sZzuUByv z;Z<0VuFL1M>fG^Lnl8-4s2h=kFawk|8N}i-0BfAUpiq+eJp1Zzj{oxf(dbX8FJal* zEPm#9KRN!N$8=$!?4G3bv@c2IV$xorleU4Sp&TARt+U)Q5MEfijA!Kf@X{`)LOA8A zZC(D1y6p9pUYu3x&TaJ174BJ7dTH0Rwn(Et3*$v!$MI0IbtMvEECJGn9?Ud_GF*!G ze_`IoN+`J*BIeJC>6O8}8S&{irzaldDe zUf6&i^lH~5OqE)|h6IjL=1#}di;7S?q!9#CtQo^P)tDl=^wvDA zMdQRAn>|{7cIS>diF5DrMvmk3K)LgG?x~reNP?FRv zEiT1J>29N#oJ#_%GbVK*y_rz_6?5pu83SWb$%9+MK~CnBRZ_REd+(Z;RjhVe)hp)O z)^&4CSQSpG`KA3RN}2V_FyLKsiR8na31SjDf4ck9tv9|cd6dGw`ZAWs-k!V*{fJa_M83=0ZLQX?_`daW1dB;?8|$0(-T`2x0)v!K z8C_-5k#LmL7>m`2I48rMWXB$fk7jMXqP|S!*FW69?)cNws6Z#@r`Y|szNuq*2PsXzqVNw9IX6r57mH(MvR6Niw4C*aoQI4A?8_Nz4Evg6e+Z5 z>~v#IcNH@JxG_Ej8LxM_%xqdqSZhuyO*a%WfVT1lJKwuz#Pf$X=RM4sQ8e>Pm za!K|H?LOrbo&qw81c76HnLBDUvw#mFR8i_3wY45+Jw1apEh*a=WNpnP!sJS&oss#y zVquS=Q?~fmM%sB5#p0$5lM!8~7LJ;^Kk;YVF9tFuWC$mN+Db|8oh!AUKb&aW9FMxG zpsMDa#`sr3nw6s{Jpa%S{dG&0q-I%ubM(#c`!ntLVkJ+h@u$mIY2z4b4);>d4Xn(I zSa=t8L1Ipc%hEO%iw?|D;#QW3rK}^FxeL{g<`?G-ll->wBhm-sp6g@JZ*3_Guap&N zQHuArOz-ns^4Wn5BQai*n6Kj!CYq5p%$H$Ye2g9nz-XC}%Y+I(iJ74+rwXxPFmA?5 zP7Fv1xe}0}9s5`Ejo+ER=V2g&u1kOUFaKBeldvj?qo`PSgS_YR2sjT^>;BpLJs9+y z^~u(*w&94dzg{D}X~SJb*?LY6bMNijw_ug}JN6&_qYoauRrSb9{4M{*Uul0Yv{MNg z3zc=&G_q%*Qj#)v)*XqV%Y8pJj`~-(nX^ty{t?FglN2Il=tgUn{as#fm_4d#Fc{F4 z>ImfEAuJjvW0&|7^UD>|IbuALA(Zr)7cX9X(Q)}IV>Fy)h(gmdSI^sbe7oC!?C5>9 z)gyN7qt`ItvLq>^vBK_RqZ~${y={9fJEhNrbKSV{S&8HiCMu;W)0CP}9X51w4X=ct zDpV65$lhz<+rI666DFv)eRcfKU;mZi#|=5)OTOqsQ7~BtI%r(bJl8E?L_&w3?=hJk z-~lu$m$xt2%j+*+6CK<)u3TADkGGWF!2}npEu)ScVWvKlq>=9Gy(k`aA`DJ)uqMoI zq&U<7gwCwS6V?n)6ug8p_Wy{`kw1NHxiX!SjjYMuxiZ}qhXWQy@hcJAE(%-YcQ%2gcjTBTLFri{$ zI&|_yjrA}vI~e0+(O?1`)px(6MFWfGw7iam)%#Zz2@^N4;(JyP%u7iN`n%x}*dj&4 z!Ss}i<(ZPaSTvN?4;8#B%%CbC-3m;2O;>~A$u_30u)yeg`(QA*mZ%`6prv!Ok*qD$ zdkA|2RdrM|(reMusoey(l~A;8fN>@g~M|+wP=13t>z0m>EcxvDBl<>$GmIQ zCkn$I^L}Z^jET7o!dYjmTM!OZU-;G3@&}-aKBM$B9_dR_E-Ci<&F7SzL7mSnoYc0r zV~VI3sX-j2aVKJ;*K$O+r~y+Cq|A0;1+;#Nu?7V5M5IHkzvPQyuJ94muH;#V=rkM8 zna(Vvr3Xf5ST`3)H80fZYf8O{J8tdXd`Vqgzo?#c!SVP!r?v;z^&_yBtJ9}df9H-q zHP0YB{Nlk8HH!B1Q1#3#!??Yoh_MCK8;$Ll@!{mKff`_Jgf)a=EE0WNiV$u!-mwlq zqZ&h7{-J$a6L22zdj zf9K8}{lh=}*VW(u2Y+`$7CN(5!kZ;8#a{zUH7o1PlG^RF2Ta3oWFw}tLXACDPZ7#X8 ztPn9#u=Z5oQ~(k%6%J&)`@QM;w|`Cg7Z3KE4}IvT?T0?}Q(7rC0paSpuih)Bat{zE zj;WeZhc>Dk#Wq_eG>(3_!m**~(IhkY)nENp^$-8S{|KwpBh@j&O7;CS{eSyYgMUQ{ ztCW;zSVl@A^`*xmKQZ4NWBaXS*B~j?m~n}b3(RSun=?Al(lxD*)@@l*l@sU{&V>qn zry#SaCPgtlVz0quy0)}N7kPbc$;B;e)$F^6%WIPKiRRkPAHcOfe?!e5o73zt<88ER z)=^10g2{^xbBu2;jhNf9m~Z^&@oybJm3<(bgIvQu^`W1wT;2T5Hyg;+x(fXC6`YVm z{LE8Hl+As!Gadci7yfj0j+1YQFx%MQ)MOG;CGlQv`6?VjAJPvw>PI?hmG@hbS;&<6 z=*MyHRrLyr&kM1RMp-9M^bOOEXLL4?p>!7mWCVmBC$VS((lKnVCJ{|NY<{_7Qm%39 z#HsYFnrEaL^rwI7XX`6eP^uaeS|9i>XjH4|$B%$UMFrR)yT1CX->I8GWA;e&HUYxeZO%;u@?cj#XRkTGP2$2`tU*hNj06wrua_+%$e#}h5{v5);4`qDoS&mHQRzI;7)Q`D#aOI&Q8K*{IC!g z0sf;a$3qt=U3Y2E0qR#Qe^vQe4YnOXv6c6*GyU6ol{;_^6Ho}rC^P{Oq*tYeg?vlD zM%9(-QoUkHtL&y*l`wH0nxLlTbto4_dw*~LhPiq3ta|g(UC0yzUA7kWcravgQU=sU zJu7@dF6TpT$zV2tGHy#wfamKS6Dx$Clqwqif3i>OiT!ljX$rU`GbtgtbKND!dJGLY zbbh&|scaOPai3H|FqQ)hWLu}D8*Mr4>f;a|UIUe|Ljv(j;SSc+`SVKMVzAJR(mS8I zsZP$3iu}0hTWP z)Zy`e>-KH^!$0)b)&Kkx|C7jDEcE;T_CMGDKmMzKQvAKWopM)Z8vJ5h$|9@8RaE9J zNm!=L7#0Hb9_DSJAj_}_NKkaZfYo&%Y*a;*T3Us=L!;W660p&lIZ_N_Ylg$J?94`b zX5ZR=qmDN3xLg?&aB(b|zo13$;cj|5OAG}g$q80KGA?8`97ma`hw=ylaYUk9ddtXN zmt&WmU4FVP#EU+nE+xZy#Wz-L`7557RW}^&_*z+!u^K zk(G95>88&2PiwWhYB!&A3H+*?##qxAD_xa3XtaM#GJ`(})A$dZzp8HRET~7n>ZDcM z+iGrZRt*O|E{~e|_X>AyO$!#~`_Eo4KL1Dl7*q(}y!ePDp*cZ*XyvHf>c*=oUAeJU z(Ypn|XIl%<_0m`;%DQo5(o1W0!MqWtNXZEgZ~;8+vP2pt!$y1LkP~N=GKbP{@W6#@$~$#PP_DjHs^+Qi^OGZ}^4Pnf&D1xZ{j9Jp z1YT!S@;&;N=#kIg$Ul!`#VOMebXbgDrjC(ZfrH4TsiDa;o{MR=FBRRVp1EQ!{)daj z`uauvLK-M%8ivWA!Q*Qe)F(c1Lq~Iop_b!F8ks$4Ejr`WCr>V48 zeXLz&v;gU$r%OX>@0bi8;=(*;s$^QwF;OufxOpBZX`s|{mh)OATg$l4Ek{-U>Z%fI zRi(p~0OPv<*zf(mzo40E)Y(pL3m3E)rZR@x0oGg5mTkb7!2^aSMu{{rej0iz1!Hm|h6~_#gjI4;lYK zbg86Q`Kz6jq#O8PqOO}0PBq4LE!Vx&_@{jJAy`-b>RK>C!9sQO+-TtC=4R9Ean&={pa!bI*52=6n5B~vV zGWYM4gWg_wvw6PvyyqJl zZD(!pVRJWLzx<-;&_$qi2?MSHNtE}Y3lwspv}g6BrR4Ci8B-Vu;K)gZ2Cd4NDvD9e ztdqU8YdV#mXsjQ9d`_>ci|XYSElJrfbMvYTK%0dr`zWrMwPrOMu zqgmegRq-k`PpPHtI4RS@XFV1E{1J1yW5^^uvzIsx)V0st)Tb6#?dsB+y>v;vw1|OQ zxqj|~-Td%X{dFf}O=?U|KBIh2oIgopr2-De#1rqBNUSp+sk{IA>Efo59<9acnW_Wv zS1+8ux}xIf$OFZsJsXgCm*-I(p(!>R_g5@{!#PJRFgC=%be5*tQM+A z`;Ztc8)7SLpte;L?nl}MfBShy3h8XCc!zLO2T;_*3i};XM@E!cLY@NU6rqlB+6bQy zkJIMBEm~Eh*V;GOeG@{U0-#2)^ zwD<1bRXeT1HmdI+Zkd+XxP&?7*z8%mFi^TPf_8X&Uo-B30f;hR3&Wa-i{gXNOz*U! zJ@kZ?Mn*oUre8YyR3+5MH}n;s z8MBj~@;_R`GhTYZdGp1 z7>uAH7|8ueo~ndW476$jIj9zhN#(Wn{?<1hbea00ANp?&jQ@bdbO33psV=Xoy&AA? z?Pz8rsS8xs96hK6xXqP0VLd=E-f z$ZM!+GT@R<8dNf}&#q;TAM0nu%!GV0-Dl z=>eG!F@Rc;3(kqe1Y0Clm%?FgN|T;^gLzZ)Y$E(u=2lftGBs+p?)l5$SvKJxUJ1@N z3>aUBw(8=3BC_`BPkn0QNlv~YdR#F>7pLUh(Z<21fIghL$%R^|zKL4*wO-01Lw~+o zA6NQ1bBCxG7cjzn>*#P%HdcflceiH*ykrt&#(HvrO-we+44+y8*UI$m-;lknc|K~8 zsI{@ae^d$tRWF#~*&8}u)xfN-U#UuI9YDuK>Rp+iuMR(_rsYdjF0Qk6*Mv-iF=5-= zF2GrYwW1}N6d^oBoV%3-_0s+Xx#WQBR0W2$n&=s|z@t!#FYi?Te285B=27sDr`bU;Rz-_ndlTw1lry zQozD?nMmjr-bvRB2naDLW{ehz6(#GoucGQ@psa0mT4opx#R`#jpil*9<{&4C z>r^TI>sv2m?>lnbOt>NtWc=iZexmNvS}A+rpRPfJQU|vKdYk|#O4We8-Y*I#RReT? zp3qJe5UH%n2b9SN0EfN<%f|ohZ~l#mwxdk@Eq|)@z1j!xGruPLBr8(lh+y@Jl3YAc zn4gnCEh8HdJ8_#2 z2bFcNG6KvC)9cE`XyFEymrtoIv3Ag#wH4(8d6wxC=|KkLEg30$=VtkZ=GkD;P*sKd z)!WTyr42Ki^1^d<2Oj;0sQ$3nH}*>#J^jfEOrzfPSoBuTAi}mF4M8nW5ex9kovBXZ zC7Y!4GnwT&wiN9D{90@jc$@Wmc%)Q(+o+%7d-36*KQc)GNHeO+l2Klbr+y@YU`aPSbpZ+ z}iPV1pUb$*X6xm`o!I=vYx1O=Pn#t5MR&Y zMMp=oYAY5E|Jn6dYhNyt+W&USDgfOxSNCj%G+27>jTVh0Ntl&blpm#2Hfdc4@KvRf zpL9L>dyQg{&8_ns_s0d?FJm!C>Xx9)brOa=5xw1P=c?dMWpp;gAxut`FmY zMt`?Kp}@aJHx!zFv8tcP-%dR*Xyp?R9`<%DC+=77CvxY`^VF(VOC`d#M&e4R*uCbD zm#WZTQGKi$3(axyup$(28KT;C202xNbKDivT&6|fj zn+=VuRVAd>3M%gi9ah^go4Q^T229=FO-an}piQm}2{I#Q*lJOjw@k}(SMgwBrw!|Wef}`dJZ${$16}=%zxm%y)L#_q*0=nr_LB|(T6!=f zk+2#m(T+=dk=;lVIP!BL43wfl&z)t1LjGVhhEcyAQN|gLo$yL!A!BZYrIKKyGcWQ& z7n*avk8&t>+w@@QiJ(i(Iu&)&COBtNwp`p=F*X@mg2X~P&SPOx5`a-e+L5xvvGI&c zWf?sRE&s|}5?pu=3LR0B{{+jShAYodC4 z;$@rX5AV8hUk^K$_x0?v&xi|Ev&k2 z^U6eBZ&qu&7qXqrLstOAYY238kAnH1e)`iB_r9DgyL>jh+2 z(w1I)!<*wJ)JaOfQRGDe1R!989n~-o2(=HRo*CZNLRI(9#aLgvcHM-9!M=c0%}z;X zE(S4jF^G2VNPI?jhzZC8GM9%Xmr0HPXs0HrInEfLI2ljYQ?SNpTlt<_TM2D@zCaDWhv8QrnX(cqW;h= z=GT@uUM{&?d=;Y0K_SRbL$y%U_@233nsmBNy(9Y&`>N}&-sIZ=9!(%pztmTJ;eFB_ z@6Y|fnudHKWf0G~d1#bbS~SKqv$8ZJ)f&dE7r#JQLj2t0bt6_a1q*+Kt*itxeyuuO zflg|dJiHE5z~EibdEPMSx^bKkPnCz`CsZY_gnyOx(_1;+JX+19y1K^zNt(M{MB$-l z*2+=V3zs9Stwf)v@XA!X5&As3zD;{`wljBM&US9HDqh!~b9hWNUX9OW!VB{e-@;t& zwlC?XTVtb6JcFM6cH*2$9R%>|%TTl=vy;rdzEJ6tiSXPOA+3z*0wfvN7yv3(Vwdr| zJRk=Ig-qqAt{TEsSwHW!n>y1#@O&**&0Vh*MTJF zWT8jF;u0+ySR>B4lRdNsbUm+8CgHK?8uQ*a086;exzm6a+%LmBpW#Qa(9NVd36b!ZI%Pa9$H}8dc5STPiRpZ|Ysn%8sFE<_o z;IDvw1?;N%#ZMmoZ~a~gq!rFmlITBT%w#W zz=N(-kd-2j!5Z|bZe2Da%Q#IrJ)XzH4kZj1G3jZItmorhCGOCA=;AP#tR&Zc@mk>i zG@lVgEZf4lOpB!pmvA(?Br2nYNoOuoySTGyx=kgHbqZQ+5w3ZUu)uuXpUB?dOvp!< zqaXR3KT-jP+R{*e3c$l#CX{m%Yyt@WwgMIUAUJ6N6EAqM7u7(;)^l!<+a}MUE0C!w z8D!F(OZGnXb5E&He)5wO?RVy@;_sMSjAt2^Q4-<_9Xe&T(t$G67XdSX96&}+s9~~p zCOJu{kQk1KqBLf#MwWMl_E~7AF<$1p`_!JNi$CwL$tbAn=Uj$xN4@Amwwm|#syXd^ z?rXKQv}T21gz4mW(Gc^yYQ)r6YM>$k8e_#=qFkU#Nqp;;&%3vaYt8eWJ$pvg)0Q_m zHT>jd_6v)9IL0=nLmPfugAxAZ*&CB_2hh@=p;p}aA}W_Xvd}Kq2mSx@kr`lcbTJSZ zEJid(lQd1S6pUYNG2w(q`cewn%OAh4SFmq(NXvCBsNMmYQN(xz;gR|O3@mKxP z)>(|wRyZF`oYd6U@Tn5sgXCO`&;d~R(9jnJ7fvj)PTN@3x83jV>l+8^Yvpa`ac4;= z6Pk)qQ!z87vc8zkf)hob?qJXmMeWG^=NstX*J-+DqC;7{5B0Tbab8!>^=@m!FlkQ& zLlU(crA#hH+{+|@(eso$j&I3an{?*Y8=B{I))*&tRp2Hpgu0y8H3<sa;r98k=&a<`p%!|=Qjnw(H zM#3ztBY@Yu)z@)4M7L5l5i_eRQ51;_t%M=yLj%Sy-HlOGEjrfEKc#Y-Miri4IU&GS zztvg=t;ivaDHrqx1A>WiTv%q!$a9{dws5$=L?VZ=P$j_lBHNWFzP=yV4rQ1FY%qe_ zY9bIAa z>;ECCUFiQ|d`O?aq@rurF7o$gZS6|L?=D>MD$ii$rQwxI9P*gWjzo9&F?Gcn*%dnI)*;qV#(=f0++`|wTn46zhW1t!e!`#P3m+?k)onoCi7P^Fe zTjK91HH+9t0uTzdsK~{mW_JFVo&Xw8J@xbI;p4xK?W*Sz6^^s@D0Jgen2c&MI3#@w zzYj8wwUy)(#=m;V_*aL<|K-a+=krF?<@8&kZ+!dLWREEl>jkH8XUx>gchNj7E|3(2;mlQ<_24ANEae)OTJG=%2JE(Vd*&Bggj= z_&ss}g)Tj@kIP_t(5^&4O2%(tmMR@!E=EF9A+AEC3CBan?|OIiHd4SgpY10;^b_{h zt<5k--NND9sa~LL@MNgku*#j`<;jWG3iGB|xh2NJF$`7!!mkN_TlqQGMQzuzSo5Bm zGFlb0Ve4(5w?qByAN^Zue}AufKDtn?{psxeI538kZO|xDj=n0cl7$vlOzo|5A-Bf3 z-*vGs5)b40W?E;gYjxqW zItTm7#@2@IBr|rKwNGtRDzBtiK!=i<>{rWN@=bPI`Gq2 zrJ6F2_I{+?@ySpAwteD>cU9k=Je|BntI@An(uTnjM3XzZDTBgH9F3!VG{zDU>F&5o zge<>#=D?A*m6ZF#2WmlxE^ex8;!?6IgV9yTVW80zN~$~cdstWO zd+1wL5uwR%(<(&3_R+`B=;ddWUEEW8o3xGqyPK_5d+y8yO^*HLGd_DT)DYLjNOxUr zKDTPsb4tDM2guNJRh{~Q^Xit=z!f?7wQFmZQ_7QQt8i2 z7?rBEbJhl6H1P}qG_`;C1pugeE*xv!Jp_%WbBnqRUCR17Yk5x>o_q@Tc3G|KbxTU= zb)IkSg1&bBx>l`4&6$p%FISk06v=LK$n#_A0kFMm&c!Y;{NduY4o~6+mt(ZE;ptR` zPO4-YP5_d+sFflroa7KrU=tnoi^-`TPjD%7FVI3XhFHyeL!;~+h; z?faOvb%*p4j6QI7%X=U*SNO67$RJ$9=(h>of-S8??B_$Z11&V!KGX zT9*(5XFa&^3Jc6NmjMDe^u0XP&E zBxttuL)`GZi*8d$^*!I~!@XjvT1`l%A^oCZ0Z~eY_2eN%T&L(uuC;et&I`=(FpL)? zlV)+0L$vLfUNr1w#of8YJhH!99_zE7*~XZ|*ss_R)+yjvO`!GEQ>t`Ha@~ALPm86k z6Oc`yTK$@Af*q2UjL%}te#!A4YSgbbVO_TMuvMzDCO4)P|CMJ(RLxaQsRMn@ z)~i|lyQ-b>|8M?{|4#kHPyW*h`r$wNzSejD{tf#N_wSGP#r{RVh(c0lSP3mHsHdmr zUBPUkl3K*Fca3vfrp#RkizoA4Ft={r2PU&B>kt)WF!(dkfmX9*#)T!c7&F?VFHB{* zxcWJvw?(EsAqaqV$*JQZGz+&aiLRi5ETDXZ-ZP>V17e60>jrK_Vl>P<-kp8NWV_r_ zANl29tR_aK8v`&X9;+aI|HoIXb@ghsn$*F#BYZoCvj*L-s@w}Fi*AUnUQVlI5A8@r zCUj8^8Ng27lD>6&Q~l&m{)GB#f9;2>!%2C2`pxP8ck}o1TbQ58XiM@bU^>WAB}r>g zXBcB7GSHGEdMJu@6=g*$!eYa`cP(vu`+Yk%H(L%zR(AmQ1Dv6I`(yiO?e9Ftd!Sq5 zd3TqX4_!h{c_`hS-(HhE8W$mCK*OU?Eh@V~u4^Elv`0o`R!0kqdtnVAXTfw&wA9+1 zxu2*Dwx9WA`8#iYLRI-Rm@p1tKvQU}hM=!)>&Ih-@%<3<3#+XJ#{e8vJ|d zP%gx&%410y8n=Z70)K?&mWd8$M;n@%nV0L@(GOi*u~Khex(=YRs^|+i9v;!dEYfK? z)}y?SIlgULnBNLbN<Ea8&S8|w@GQC8~t+aUzIBm*28d}wg0XU#Fhah%r7R%MvX?t@?#Cs7w z!eZF$GokGcg4avfb?wQZHNB!K^oJnFkJA4b!iAUxudS+k?HhXZ%rVUn=$SLI{?Ckf z1lXMc(Ak8th!I_zK4|y!>b%|I#?5&(np1XVMX6tZW<$-LIB$RF^EcG7ZCYSlVtPOl zb!zc~y#)XRK}*vGj6q;doVzHT^%VXuUAnGBro^8KpK;y>p5dAzJh&hN;03>5guyij zlBBFbw8K2I$ZWo<77P~~+nf0HIo$K9O$dftyr4VVHNH71Q!Oqk{YX27X2wW%DU)Llq6Z+shZQiPRxjZd~hz7Oeu!)v$1Lr>($rMXIGIsp=Y+ z(7^~EmQ{(-C~3ok(laY)$U|W;_?&taeQrV3d1GF1{J%(X_0)iLHYlAOE~WMEGWxv; z`}nhkzPb7M1$_?MZvq81xUTO};qeLj6`xmo&ur+GcdV$L&)n2AXI9k??vd^QGp$or zE#K1n(Esc{aF)*H^QRQi_6|Tgk9pgfRl7UFIai=)xTEZiPu!^dTd!X}YZsq8W6uMK z+`58e)-Lk7?PcHRFI~D&Jrl=&0N%~|(E8=pM`K&pu^D{!cc8!DE$*0hnVJkZq7UnE zn{fuoxDJxliHU434tiLGWBU*+(6si};G&VArCM41Tf>4L>|*+12*#HZ0uKy#kUyZX zq93((LFyC|=~6t(6Nvl}R7a+mi=!ytkILcTR`iJzUG?a5XUpqzoQJMx#sRXPc}@Zg zg3OEOE?9yN%#oN%*3><+O>J%H{j?p4o&f?%XZC?O|C_*T|NZX1KH-hUV!O$4}He)tNJ&p=;4nroB=ncA^OB4bxBy<_dM(=oc@;1gSG~4Az z{>J|$7>aZ?VJp>G|AP@vHReAXCN9;KFFlNQZQ}RW=kmvfbs>x-j~4y48ci>46|7ZN zU#Nhks&rQs$Oz+#KY8ls{w0)b-=iKmb*g&S^WU7lcXOlomsl^Dh?>r=umnNCWd4`J zN`8%k5e&v98v&NkGXQkufY3Ts{T|w)qttx{>d#vT%!iRV3Dwf>bGP(w%?)*T(9?@8 zmrLWCDE=@HLWOzJn{}IY|C*%(J$Lznr6x3#ESa~%f$LED*fOgmx*=pmol9~_rnw=7 z!{+bj+c@q)_#G_{!ak+z#XZQ*VWIZoasxyv8_Z6XFs{8%q7RbdZw}J7E-snnQiOc% zg5qda#zdmU#}M^Oe>GHltHVHUqZvrHeCE2G|D{|3gq;eD4%sr|7G&dWk5T^O16PXw zqILmHIuWO5rje%^654@eVNt)id9F`>@>9OUdWoe{rrPjmu1;zbo2_RQs~W-dZY=3) zVzUh`hpM18-T}%co{yG;*#$jI>kosic&`x604)*;&}sn@bCO^HA3G)EG&Yoy0B?4} z_4P{+0cBb^m_PWzD_Sf+kKZyK#%H9kiok?Aq#6ULg@Ioqn*JCxXq>+xO}eKaGZTR9 zQ%`@Y5|&EQuz4eL=oS*>>IJd}W}E0Yp&oQqyL6kIw+tHHHT44)&LE&H(GAEqCT z$hwZ-6e&PQiG^|Brs!Fp-6`$8HngByt0igOo7yKg-`7_TL<6*51h)-Ze7K0dZ;{&8 z6XqNx;w5E{zC%T$x%1J+R>v$37UTV$I|)E-)KN3>^LQo0mb~))`$@jvNxIKxvFi5| z)o&$Pp2gfJ-yP{BbM5Hx<87)2XuBj)cu(Y_()I(OYgIV_K0 zNq*20YQ9dssK>BQ()SnWSZbVFUnA>|lXbXYmfizOO%z=Xys#r!|H9|SdvIK6hJiM; znzniTWGR*Sv;a?Va@Sw}9?Wu!!iqw#KcS9LOFcfIQrEgIpJ>J^pBYT@SG_1c9Gnrq|w)CG)-3+PAJ zrBD7B=${$-DaXXj85J*{S&WDAt*DsYO87GKvkCh-`+OJ|YO|Ge)pp8pad!{nqt%iz za_zb8WV64WH9S8o99vuxqGjVjt%? z32s-I=G-%^yOyBKlXtOrq4h-jw(#**s*WKE=UJCeW@+iV;d(<~YASm$H5)U>ITSmJ z%(+TXFhgh0CAgO$g8{yi!Qi%9YrOy!dQ#BQ*7p^>f>e_!M+bqblCZ;T;u`d$K~Hx9 zynGolKtgd9)BVPdAv=!axE;m)j)@1l7iTB3_&8w4Xl^5N^Tp}N)idfCZ4adbgq?HI zC7c^d2D7?`IS6e*Z-xzA)6L)~Rn)%ks@IJ8yG`7!I-zVwn?J>S$rx~f|n z&R@4yJ^sVr7aIRhKm9b_s3zKI;h1^zxBRK>J&en=*2id2E|t&RE@K^tbVzrb7cOpt z>|qSnX8b0!ZX~Ps@x9VkHh1NzZ7UF=s{Jas<@u?{b|*rkflcJlY`{%V<}x_3{h>yD+Y^AjKX zrxR^=@^tj>`6G7DFb>Mcu8&7HiH-^#;{h_t>U{cP}+SaTMp7xEu z`Q+1+zKHWj^|HmpMn(m8PV`a7Y{YDnaVnKQ1Cch%=Y-GuO)%fy+g}x-uc?s^#WsBB z`MwOT+Tt+QgH6)6EgDW})TDB-N#nw7MaBd-(JG14SpB+mBI4N5wccug+vc-Z7)+@N z;i&4&^6q`eJeF{M*y&7^r>)B-O5Ez9;(`qWv#QO~cA508o$t(*WH~uD>rQ<6vU3Ou#uRR^d!Zu)Y!h5ua~e5K zVTFSEy?ZwzSQ!k3epn67=HOQRxd$rlEN#UUo+t?ImT5fNYo~T5O|mRY$HO$~Mp;^p z63En}?2&eoX2}WcAEr#rlg3HP7bX^Y=dt`9f8V|Txip8+^}K+QPVzZk1H#qt*KS4e zZ=MxF4%U;1UkAZFx|BhYk@lKQSL>jdc1`- z`T$!=gXOI1YjFV^SU=wnyyoHH)3CI_V*Vmb~0GI5qIHYD71 z)@Vb(_Rh`K=yRXBBYlZuA{pL|2^jcF$4P8^Y0{3|xF}nFfO6OW)pDGS_lGhrTD^8^ zc1Bs2B29FWR(E^icxD<%;x4*J%c*noSVmc z(D|CEKb(aHZzTTlIvK}wPjYz=O3%#06mwA|i69TRMb(cg<(?O61jzdNQ+pWXe^br2 z)g)^ttbujmHDS?^m^)!J8cCqB+@G(#1Ux;93b$Z zdQE^wOcy8SW+~9O3X&JaWQ8JG3={iu&Mik{iA`njc+ob|P-G#;N(FJtWhtR@vEw|c zLTrX^XTpxe;BQrU*~$N9aK2LzQ%6%urnX1VB*zcNW_;u$zo4rAs+#M64JxSKamrX5 zbRrcnscMOl6{VLI8lWSzi9b$HfCQ=MQrF+R0CPV^{5i_zeQBjC;O>ow?mMlV618#f z@<_k*kzcR}V>Q0v+gtC|bn`Pc@dN9Pv{PsxVNGMb(SnqGd%C!XO`^dty_{#V}E!yLWk4n#D^Tp^s) zp}c+3Mf1A2wydh|@kr0ilW__Y7@C-k=xEwf=;mE)hD`X51TJ~=TayWxNKJ#Y+*mg= zgo#8qw2+la&sMOZ(fM7+Z2&VhfzBJ2l1fYKK2sCaEJtAhQUqpXc_`@8UJ7qDYm5Qg zE!LGJT5@$Wf5b>f^a1pf6P~}+wF{SpADx;wvVkx_k5&i4d=qxB zNM(77UNkI*C16LnGwj;o5o>RL4jul+$&!BFZhTy*&a4|(q0kX50E>%PMMFm+ioy!D zr19;u<`@O(Eol43cN1DB^1TPiJcOr(EKMi~sW!zQfQBeew;?o*%Ta6Gi_*RsW;U5m zhDjvC6on`PkJ7qVIsn+vkiK-34x=d5+!wXdVt71x1cDfavJApi-pLYb74swa6DSk} zApFk8t!QUe!Md?(mft}u!bZe<&Q1_i;Qj$BXj!1(PoZEKt7!kxmFW2;74K}e;(HL% zhEWpjE}-@RaAs5z4|jJ3?2PeT4lM1Z+~)f|eCCV79tFpF9Cr-&#g~HinL;J+ZwG*6 z2%#iZ9f%`Q)WO(m(bJkira325>UDAv7>NEYbYgCly!e#ptOZrHwDPM!{oedo&s|}x zyZmI96o zTGwbrpisXLkV)Z_?M|>Q{S^J9+s$N5u)jmWQjro3;T5? zuBoRUU(?&$=XDp78?QUVV8Ed^v#mi~>UNaVy>;Y32CW$t?IpC)nwE4u*)yp-sYOuL zRPO1zDV5jSm+rgf_szdyLOsy;IqcYh3=R82f+A_lMN>`&Mrg-VRhYzf#|gk}GSeC) zvw52A+)k1Q81r{OzX5BLv&>QL&kr#|M2+t>pwGP zHyI}(u(rPW1D!uVzo2IcFjy7z`xoUXjTCyEI)*AGIV&Q`FH$fNT-ue^Dar|(u-{QA#G0zX%CyC72%KwnWfixRVd8xh;F1e406 zETcEC#s^|%ZmHk;~FT>=lgB+!r?O>~*a9hb)N;Pw7c!1`G{UB!qz)}MS4-Z9` z9-uB7v0-QV4^bFJBu>0N9L%rr=gQ8_Aw{nLm_BuD)fsGsqT zPmL#hnp~X5Of56k;-S?Ifv{o82=Jq7I~DxyLX)6j_x5({1UkOF>8;Tl2r!8DC_D>A zT0W2rs^a2APS`-p2x3H%e&6HWp^WT(U zYl%f*R&cF^iHpJ0+`i^rizrCZrReS1d9fJmKscv{lG=T0XX(a~LJ&vACaT>|DC9gq z7wztjvK)dC6ogqmO42?Ar>KK97=R;9$E^+>hQ|AC9plxGA%(>)%>P+l6s zPzz-F{$8sr_geWVPsb3-2u6kwsK&iaz)ReVMFSi|A^KqJ0R)3I=0d-NdwX7O#nk40 z7DC@~SQv)S--^Uafo)nI2#_cQW%>R1?&lvQDSprA=;2($KEMw&%5fRRtu#(&bKn77 ze+ccd#XTedOT#XNJiO20^V|#sMFB{|lmZ{?fiK8YsFy*)`&$4Q>D`Uvada$t(CbD0 zkv0SLO)h8zuj6PelP=bb;k4LSd+;3qS&IWh^Q9z0vwT3Fsy2W0LVelLTFgpexJJ*LN8@7quv#4Izc4V=OXRtP=^JO#*um8J{qP z)0a822U3St*6m7LYb#B8P;U9exS<_Y!@IBnvTLopwFf#A-MB<(b?kx08pmje<<>?f zDGdw=MUi6GPtyWc)iK(Wa}bm!9lY!IaT)JBX#0D^fy^hv=zeq$^UL$wTV@Hs;>YJl(rL0Z;kP<>hV7@AZj7jHZ2*p@tr?a$oJ%0sH|k8#=P=HjQ?st zs@r$&sK5QUe{`a$=r;Y$-_?4b^)6G?*9h~YclV~Ewh%%c^sU^ncha@VdhZZ=JTT`L z6Y!CyR@kUoj(Jn(Z6hvKaoZ%6A0jQ;*yTNUf-z+=Dlh-8yEkUVo@V?$vS8!~M)E%5Sphyk;>P)UsT@j0>H=s_xy%?H+VRgM^_O?Sf1L6uuw`F~bWTmFQjq(2>KcQIvZR zY4qS*Y7*2H{Ez`|{YvH=5~jgPcc5d-W?3sI?rTVO3*= z2(ysiUsi*I=eu!Z(xM@88b_iI1F?C}l7TW#qI~Eq4@F-~kS#4hNAZZy6PPWvu$X#b z`UMKD9^FACT+O5VJV)PU7R}vxB@?UA396_FiFn?Uyt#P}(ihv>qGM~JP=!jVWVR5u z(VQ?;{asjSW&4S*e&@t}clXNMcYeRTORrKWQ0R>+@fqlud7i|WdTp8IlIaNMjj}vC zQ1+#2x(HX$*|t(kATr7xM5B~K71}1{eQe`?%2tv9R;2UGsc4grb^7v7 z%Lm`vc%@rOoE}+fzDwn8n@DN z+~R(I1}@L|40)EeW&o)AeJAkE%zEn#tTuZ zgb2*Vf~QUk2q$Qw^)Faywj9BOxja$l7bO`Mx0(uxTib0-ddbl{HX_ELwB}Bm#TZux zsGyver9<5II3bUTqASwa$3hqtq6vpxQCq`bZ{W790?o!!#1_N^{=h_qUw2d zyUV~i0A>{3<0y`j&o+fdI>i|=j`=FHlv$>fM4F^3H5oagFa|{7VR}%cV7x=6m9=Qj zwMl%BmfRyrx&!NLZ>t+e`%C5sETx~@gwhM|N8X^K!RC@E{g{BPb;{i}b@#idj2w#> z{e5WB;Qj(Kbs=nmi3{eEMA=#g5605xw>daY_A2)k`;hTpS=W8gu+w&{#(bbB>c}ff zt+kWau@i^Z^3BT~|7v3VS3%aa_CSQZ^6LEF(`NtesEUWYY zbbphW4eS@IhNr_N*q~*DU?bM8Xha=_X$hbR`8LL$!d5I9dF|04OjDe%MIg>iITlGL zA|-MG;Kx8o))Zqsmd`}TJDtgx8L?*QN|1MbH?02$a#+;)E&`}7b@RI#bokt4p)C$% z^Y&oT`u!mWsK&eZ?Pl|QPdxF27Y-YN zPf7*f_MkRVhcY@>a&+C0O{{rPcs{Wlok1IlIa%9COE43_hUC*gM{m>5DI5$UxO!APh!DUBCG*H7wZLR+Yo!|nzQu;WE*}(P5`f#92~W`w`ZR| z5ZCgqcc-hO4WkvNbf$PWk>pZedh9ZQ4s(}Hl6h6O4+tAx$dEwrEz}h`&a2Gn%tpy< zqMV3?E8AroCCKnrA97SgM^EZA&HMWQ6Za;7mR04M=)d-GhC9?qQ3C}OPz6}!z~CG} zOf)LSB%O4j89Lo!I{lLFsNJ3PYcbtm516F$x+5leJwzb0ifv3($Y2x&;|PTjN~H=Y zp{RkH?{tQ}_ge4&{x$A%FUC&Lx8c+|_Y8Zlz1I4N?;pV&U2>K$8lVy{Mqs7n!^WcN zjpE)h6kVD!zjW1A?Xam+PwU4~UrO>a3|t9Bb{P{-82t; znx~Q9FXTPmh5Z_vvo?MF&Q!yxsvh#WbiZMRjJoW&SYp7z3RlAl7sIHYu34#K@KLe# z*s%9taMW6poARu(G|2la%OO7_#=T)LLo-?^;ejAlx=sPC$bA&@sK-TTXc$1SVliaU z#BL(C8Z$tup%6~@pd60*HN(t)FE9HTiztfxzKjbV8vJ%pix-DF{3Uk1^ecA1+HPQGD0C|(}9se1*a+a!fjuj8b z%X0fq=0mA6l7irPEgdveW@rKj$aZfFGFMS93M8TyNb-!*kI!YX$KRNi)zw``N3Tnf zBx^uH@O?BOlyIy*w$(g5@q3e&sijZ`Ts#=Ze0Y=q3`-LT7lb!}07yW$zY$}RukIAX z@{Ht3^x1FXIx7oYPK7)Ti zsAKj{EOZop(>c-2iur<-YRVBJIHGZ(hgm+iG%jl1_k=P%?9E_xzJ&clL80e?!TQX+ zwFAjaE9n8&OJRZ$$}XHMbfBW;E*Pgw@>6XYJd`o{k)g?*B&CRyDMfKb&L3-$%(y$! z6t+>UJ?LJ}Tm;X0JY;^rJVE1;_t=NtVF82odfoCg0}lpw(>1)BqjHKdMrU?hEa|yo zI?MA_8;TrqWr~$k-Vq|hN5|*bu!WA)i)b!~^jL!`2Gy9|)Y>M3Lje#fbcx^+Hf7%s zsfj$QWkeW=grdgb<*SOo%y@&ThX&M21~v(R^HCY9ZFG$W4zKVy+7C+5B>l(wRul5y zf8Sef-QTz0e!GMmrN?t$)V*%Y`Nev>Zj8hfykjMMTa*U{t0Y((7I|3WksaPhegX6}G)*+pG?5LqY%0ER zSAKCi<_GrNPbdNFbVU>LFkHb5f4||sM9Fu$rPni!X=xLFmA!`~%zFd@HUv?T>zP5V zaILt8-b?6{%bmeXwa=HF-$W3STu;9LnfvZ(t=ZYDkPyla<57P)6Js!Xovj`oRxqR^f{9QA>K@zn0mUw8g`ywN z8ql!EyJ+nx(rbG=%`{uH`lU9f$7eL-4Jc&1!iN2;AYKPQqlbJH}#D}U^R*9y3 z%lTPLc}|ko9oPu>lvGL}w}As=O7A^oNd6q@c@og(*-)F=?VG67wdQPfjx-mvMd`#N zBT8Ft6OK?Gu*3HXCJr|~JQY%>eplM?O`(NfwtM$Zb@9cs{LXg5=EeLp0lt09tsm28Lvv?U@yP?vex}S{D>pRH+d*#U8!>2{0H3Ztt-r7!MsHbuj~sEf-#?kkV#YPV*KC}f6$^j*0qv77zGSM^W4a|xmdqPD))Rhr{#FWF9Xw%R7 zx?i&8nZ`}G%VS|LDO;M^1H;d3r$KWEHceI~+eC}3J5`|i3CxUE!AWYTsHYy zDccEWTkvPMCk+xK6yDcj-uf38OG8UO+^fBxFzslOp*OA;>mYLpp;`oWM+! zZ47VQ&%9Jp6CaZU;|Y|qf27osd|jE$&JQdyQjW4o&`7Umb2OIhduKKrRBPAnG!icO zF7iBzEWj|?%?@P1FoQgU4afFo-Lv;g$RMor2)Sd&ea@EZqUz3-^{^-h3%rMlwVefo z)Gag)rz=qbQBSsrz@OoKi zaFZxBV!WZSw<+za>?B~Kb(_?t?yUB-488Lia#nUq=I|)H*v&P%Cb5azWY$1JSq}v( z*yY&Q%x*f&8*=6cY&P%ZJjd+B=&_Tg3xfpp*f>!zXsWD%VRi2u_F@hS^z&XiJt!82 z^VuBF>2yAquUXHwg)WN`?|4`wkCoM@sSzTqLKXmW-dEe_BTW_L&Sk zGdI5Toy+nyUUhx%Clw{&qVZM3tXD(V4Zqj0iEUh>_yCNl#(6fRpFLv443?kilCX)$w0_o=4K!x>D10@6+hT;+$w3iXU~`7UXJ|P z&y`9Q_NXKIzbSqe^iLO(9eJnsfhbQa$+;*EZ8Aw-hYx?k9Y8$}xg5TcY7F(FNpN9{ zODBLRXl};b`)?apF6m z*fG?vE$Qw4NN~(9LqEy>!NWOtfl48r!+Ox9@(m9n15GtbE1lfjq z&E#El6mwE6Yw-x0CMsS~ux=&70IqtrkaU`8@;%6M%=`6aIZaoRrykqTaD%yX?dCc=*fXN8yPxknK{U z*|zsUn5yb@8tn64*%xmHzJIFIm>t`Ml3{;mc>G}nU~mb=I>p`AU!D9Y#$QKt77G;C<_N3dQ*90rV3V?_i z1Oo|{>r<>w%$Tg6VRSoV@W}ERC{-C0tGqkSn{tL%b0%Z!F5lraL*SVX+gjN!I<3`s z3W{3>&qrg!uL^CgjL7vM1|6Em$r!AQypV!H1-ugoyBZEF1{QUfEl^$Ru`eYf;YG?pX9;Va7c{Q3PlbpakVF>#}7z>o@owe@<+57C_R~Q|t^9@YU@U z-KNSryn*<^swYdW5i4D_sZbk*Z^y?E+iE2O*-_qBsAmP^ZV((sr2;wKV~UaxJfA9S zNzMBSonHLbl-YPTVA!Pb6 z4$J^_$bMFQUEaq=_Ic4$r~)!@o{q(FSLnODwp=>hEzV{jm9O4dlpBs0XLZ=%aD?aL zMLTUd>HhwF%c(0Bo>6s9a<>)>wZPw7QpfXEd_(6Vt#fWrFoP7&-JoHRp>y_HFu-WE zJlNL?&8>qR2p&TR-UD!4TdH(&)2pyaosm1SxVtX|C~9-uCX9l9w|E(yvR}J@jCiO! zeBvH&at4KHl>`q)-DkDSdXk!ocT(0Ter7`@)Ax89zz#g97&EOiy<;CJ<}E$K+}53n zA7_Sh9eq5{2TfL-wJOhNinYw3=X1oF&oRL0O|4S1vuNCFoA>srzSK_YIf;U*fq3qe zsKM(1Mv}-CkO9xyaA20w`wm2z#AGTfPwMAnkdPK31Gt&lnEYSdDdP=1f9x< zSDEC@-oxeB$ro4fnjX1?bLIC(;tx-FxZg(z-NJR$p(9Tv;d{3F)HxTG>rEp|?K~N5 zScCaiIoYQz$dIxS)FD(|Lq~R$xGg0id`Zmn&)w0#v zVB=W>8u6@m61o!49wo`sXhyTTTsPygKdu)}>V<{*rj@CE z_0?ColdIM(Bp@TXIg=RfD0o03l8tW1eG}D`F1)n75Q;M^U71weLxQtlyV_Pr07yV- z+TlW$FXY*oZxk{hDccy7eaD_9xtWR7og4WXNH|0FDqb`pIEhR}Jfm?nsQG!zdByt4 zDoX5qF;Vyj20_%a%&TyJ#xWBU1w7b^=f`$VUw#LEo?u~0!B+5Im;km~zwu&XG70?53FHy6DuJ2})Y$52 zS*7u?)ux6>@0Z>&Lk1e~=&d~~SJ-ZwHg(h~_Fz2pq_tYYVw);d)`NlM)sZAUA_Pbh zP)h)esV;p?&xKc;7CH(c zQ9B*j*nRz-?8&^zh5?CJk1h1$1No)AYY*|Re1esS*;D99QxpO);04G_39m!m4l!tj zx4;5iEn$Ks?;Ch6;F-gNz2ztXKMl}Kl@YpNi_t9T0<^;5WES*c48TG@!$59U^Mm>R zEHiw5CVu9JW;$VdVRk*Mid<+3bip!x7Tyj3^D?(UT|9w&O*~{jv*(Q$uHR#iA;wtn z1Nk8ExFO*jV!Q&qm!%|;*Tea;;`^P`ixN^LrJ0#WAU6g4bN$Bc3a?Qd0=Zi!nXj@R zAX6-s7Bz#6sa3_;FxM$jCN3`Z(vY&K%$g-HgMYywgP3lK`2h1dV%p}p)Z$^a z-d0wY*s#I|1{hO1ddhk@a`AjN4co`rxX@Hg>vdjc>v^8*5j%uuvV#3rY%!Ox+zNRu z{Ca+Vfx6A2s=7<6?haJVirA3NoUGQu)gvfq?8nOLw8>rQ6d~C%5BIWoTD5?NZJPG2 z>Awxy+JMae*iUveUQn>eQ`<97lz=&}2&)9`wdvn0xAu2o9A>%v2P?YsLwC}>_qC0U z$k*8U!rnzFPfX6UVUV+tBeB17{WWZ_EtZq)HET)~yY*pIJc9))p~1T`Vn6}IkM5|v z3RNa6o0s7^bVE{x6$Z@;A#Bouz7dZGqLmGnOB&o~YBE1#-@dQA+y^%uZ9oxuoG)hJ zavow^g)sN=Z+jlgJAGij^J3eXi(Uwyi{sX+4H)B^m{2C&xO1iaIW3`{B(-~xL>{=f z@4<_c9vAM+cX)5RmSP6bVo356B???TdZl>o3O!b~#O+9m7Y&x|_6Gf|mRD=#-&Lcd z(kE@xd7Wjl$mI;Tj%UxK;nr){uH6P@Jkd7*c^U{G(I;W$)l&AeL@x~n8WwEi2p5ye zJt%d13yM}1r9FH0po)@b4Z(LqDgW>r)U?2dQEhOcqE*HI)_opWl#LW> z0T4$#gxbtz&$2v?uH9+3=%E|8OjGDrtbj%=Fr-mfus71d}8hW z88+%_mk7=_w+yy?@rsDeqn3&i2ya2UnDsj8V*TcJh#A7+yoDn8e@q0WDzPwo>yd+J zt};~^S!CGA&+tIk9fzK%_ww5=uPBqSKja$aHRFLC!Bj}hFnTmtFdKQ_!=s1a&9ld5 z{;P$WK6W50ShYFpT>gcAF$x!=#8x6!#D@$hdSb23%6z&) zu0@fH6&3=RV1;FH!0P8LlqeR4t9Uz$Vq`>FqE*bO0p(Wl?pwv+U>2{L>Dc%9kr`H^ z@@y5r36FZV=D(RZS+O#ri1CfG2Lu3yuT|y(450WIB`X9H$^?tDmZWkd&8mFJz8O{o zPyi=4;(cMeNgwxt5Gm$&az9$`p%M^**H8o*z)V9aBCrXpJJ)j z87r7I|2`KbkL|cqIKMGjj}^rpBaCjD^Z!lLVH0neF%L!mnuZ0St;Ask8Z15nt-+qu z3hsu4=E#v^*fS~^E`7NM-j@7923gcNeP7|ZC z9bX7zv17KMN01TJpVSR(mS4j%U!-0-vEdVAO(my*|E<)MBF6U4MvZmr+1M?~-gM{Q z?71%|=?jDMw4-Cka+D`NyE#+T=v~18gE66m3>N$-o%aHvNvhUj@$Rt4Aag)7^I=Uo z7w`a@Ab9B9{^dEH5NJ- ze2rO}EDiE*e^DW#feq&w;u>Js>ga)zm_OgK597;A9ZEJ=wP>I4;AsIF4SMbvZ2yCg zRVQ>4J8_`lFh7(nOPbJsPz1w#1bQ<;X;t2P;pf%=-v7+Rx%O|QYvIoQjP&n*Yvp}d z4{zabxt*NZ5-)DK<(6gn8ZUWO`6C;*=4UC_UxNVxTo}w^mE_#0#+OjG00U785-wh= z@SI6FRYxL6piC6fTEK>vcX)yD9>QDEwOR~9859jAUg$>Iid4!nM^>11w&Su+3uK_L z#Qgl64X{$)8?7Bbb{-~^mIOB{^=Np_%X>9U3KEj=rC`ifLC18@{#+y;2l>8=zqMm= zec!xZ7y53v@0g(DlB*Ev3)!fkvn3!0ZyY|{N_R%}sk7W!(cDnF+-sC`H`YR2z%Qj4 zz%jtH;F@iPBl}x;G%7UjV+c8_BX6JUZZzArZ6nX$)5A)*_Im|A%g4<(k=cDcCTcHD z&rj(!t4dSpGiGtrW2@J|pqGYp{b4(J2D^R*5if06nkOD<9=qi7crL`p%M5B)KGL+@ zecr7|PFV~l18-wdjtnOO)?}UrLYAZ&hi0EMn@X#ieXi13u*p%Eqe0iu;px1~a%YOa ze~N6g5K{L#2cUJZ&f2CjSsLuSX87K0EJg_-f;tKPA*-pnP#N%&3QYDR{som z5*(lRN{X>y+ivUFS%aLC?fHlCh%1m*P^|5da3yEgcRz*N<>#1OBp`mbf8Rd3{IZy< zux10D1AvrCjz+_1k(K2Vj6`ZR!&sfwV}=XWnQSc^x!1GG`|v5!lBa=$X!S07c=t}V zcI|Fa!cVi^ZT%Em=G0O)wFu-{B1wtohYjg0d2++RPuCLX$&5amUETKl?AyPuwdQhv zD#okJeHb6ts*-tdaqX^)I0fisKTYo$$CLZaqr8%=Ul?|E5gSyQz2@xEsGzd42e};R z@rdR9nrU;IPSDJ%8FhG=sk1h0Q;W#g0si9i*M}d=yWREdS7482Gc2lM#&gFiIheAk z3RXzi%81-Kwglk6^VC|H1b=Xt108zHxbpyC1ZC|E!9;GLcx)v zQZr}DYxdqWJaCq|mCo2%P@$WV^nwsOm9DE=EKeCc>NG~BGUlU)=dV;qf8z_*XvN1q zc`N6U_y&(9j|0>VPGpcA2ge3BZ;6J2;KGMGntqhusnxOxnmRRN*X~XH4D}pU| z9V5zC_#EvZb+e#M(HAP?C07G}fCoNz8$oDEFN|xiy_ODrl+VkCm;>9UvO@s419MK2~lb6ZXVXE15ez6wY0=)06jb>d~bKVw%MLk@aSA+S} z&0t|pFZpTB(=vqAZFT zKoe(6w5~&W`b%A+d{=oJD^nhf&#~92^mC4*P zqD8eo=0EICW2wvnRXogk%yOYBCEOXy&bGn1IEzQZP zN-<%ad_;)6gu;HyyKkXeZ+&lAKSVaX@<;kV`iH+h_uI_e(F2G%w~~6TC^P`JDr2v~ zup8;msE`L&NQf%a1_S{m`Dcf@ze&=UJO#tu~NV9rcD`(bA zh2(3=nT&~RNkMJ#;MB_u@1%-nFrLteLPb)N@Tv6Ry}91)Jh5^&wwwrLGWZ-J;6uyS zCYax(&_S-cEPsp|v6rtiHAUkZb&Sst9L0z}Iqe1khr*$!iGGgtx=%APpqVJf<8t!C zP@grR;bj$G@7_)HTfenaPt$=6R^3(8YzP{TG)*xbFTo^MGzb(U&@S#=Wm3Io|JSOg zzPIWRef&MF0}M9QgT7m(n)uf(kFq$?ScTe|<4kJjSD|_XK6+%|zSh_gvc#xwYW@uK zB_tfPq;Kj1E0Dp@Cu=g*SBpzaSB=MqmEbB0Z z;5Vh%`NvE;KvyO6Ea-Cv8l5!iL%G(qXQ>O)G2MILedH0fykRWfCckf8B3J@8EPwD2 z#2yx;1g51NDDgH7%UmEol~M^(CgV1)%qx#Y?cN;=`ksAG{v2Dvu8{^lIV)}&u1%*Q zA(1<0?YZjDs#8@(huF=wY1>AWW+Y6{%|teA>i+v_?S&iF=ot9PLe}lBWoAES@ysR> z*0Gzqh5*dv%&Zmgu#hmn9!xHsE9?(1)cl%%ZSb#&9;mSwZsHE zu1@D_wwpJLdEV&_Sw}BW^BEQBnAbAeFs5wS8d;!u6{>q^DtRvgR7eec!`i$;$N}qj zxhPec01s@r3!j&rv-$ka*0me*E&VCx0ju-P%!m7FKFhZ{kR!D?uMe>SZ-6Rr2Ol3l z%HaRt;;Cky=Z1&LLSCU!A<}1R*6-??t=o0gK(&N`0ZI^!7>WdnvLezA<<(dzg7%*0 z*eej<;A^PIj^;sV90qR{EH3gH&Z6Xf5j4yUu}P7uz*`}+L9lGlYAhJCIWk%_JT?%s z{jzCL$!@I2rk2)^{04i5pjiro62%?8S+vM2Ryvv6x}7FYgJsEV0cxlyV7#NkC4sw` z+o)EVph5*Ab^B~3CEmUvt;r2)uW0Q{!8&`1d<3x62-94CSTAKz6&%-a1_$LOSqdV& za*-+`Cd7QVdx!Z!%5qqcVX*NsVZS8-eP(*d*JAGmkFP(s&a7W|m=HF2YG$vxcEi~y zf?$w5c;ML1tTQ|;)spHS8+Jx{z6PDFmxdswysiKu*Z|WMCE79b$xC({GAuytBnBR! z1#KiooRt;<8%R7w=mrXUK!Y)&mWvU(*#7+d9QK@^vvxzarBi18*|lmjYb{fgeB^IC zKp*3gImrOz^k9)r9{y(Y=;;&s#QulOQ}Aat%6jPu<>-hJqsb}_#hA4zfO7?t1k(=B zQ4OmTi}XssMpIO}!+UnjxSZ_?WtVMRBczKgXkt74(zwy9TpR0!lgtS_i&?ceqYBhz zVj~6mc{0K-bDft}rn_ttU<-eTJ)sOP*lWP+$esdt75Q)0$9T6h05LsAU*HQpV`$li zYMEW4II;ga#mq@mPY8)b%2LJ4e{1pzOz);o7NfwUBDE=bKVi)L*GzDw= z)mL8)prInLprHJxbL(ZX`(85lUg>o)3|^Q~l>d(BIGH~o|4phjID3AJ{!>p&%g8{U zr#Us)suTRQ=fOR6+wJe88{YhuFiw=>zxIcxuKM(!4DSW(Qr5CAwi|S}fW-=l&M*O> zpeH1QQH@o_07?MlGGzl--MpeKDGJJD)(ewCK0q>9@B!x2*!&LgHH23;wipd`weD0g zmF_U)Dp;>WFs-?n)Tzx@-f#0dZ+r>!?iN9l^*ifi#Ud`S^QJ;0V2{O#A`o}$?-e&I zGmME4(w%~W=1LU7OzV0Sol+)}7ysbM;Wp4ryz6+m3&IJ7FEL$ zb@=uwbU-Y|S+`d*OR}Y(b7mdVOO8(=I{mpv)qw*WX|_-5k^4!1n*F~!f6fi;UADn! zTJH8)^=SA#YeVtx;X!OQ>)Bv)Xi(_xSnQ!X>$BScy;=ZrVGh=SwvB{Np?Tl&Bl>F_ z&&`5g16E~(Iwfo5RAh&{Jpi|4;sHloO$S{mVVsML3*s?=<-s54U6P-(_X~7F!+0y< zQfw7tIfvTLnX+YD(YQ|yPiND4S3Nx-HM*G8DJeU6laX$%4-;+X_s*O;nDs|JHGgtW zWvluUQbYq#4|ZuSF@?;Ep=2^rZ}Ls&Wg8}i-kv>syyEQc+&yKH0OEZ3JM%;lwqr}7 z@yy7@XevsS3_~WIOsRH2?fwa1hOy4BQPXp$)gn?T;MIVjXFC&`=}FT2sHn14<8Ibx zan_s4)Pb)aP^0;6GGDuQ-z4Wjh}oHg3@A6Sdv3If5NV#N$M;*KR({Li3Ji^*U4BQvi!YqQ!VY?~2;7E$BFmRyzsc_9buik1c!twY;0 z;sH~&5Pl|^bATkUZ%G>`cWHC#n11k+?^l1Wc}?(h5VV#mbB(PsmqEWVh=x#7bknqR zAcD*eJIVcPnNHyL9@M9MF2H(6a|m?ILKqXZ&M9JyudQK*$#N;SZ5`wMS8lT=Fx1KM zO`gY}Jt&LbT;|l4XrT)h)hINr#;787v`>#~3m!DmbAS+f4b>1De#ydUxWs?xF-@&H zsTS5S`3?_en-+HJhuQMA=}Go%o<5kJKf5){PL|o2y~pZg&g(EJ<}+6P*r_1}IC>SD zf_0eKm_ZVJOl);$i@gHCP*5s6tZJ65Ua~a;-KDA10C@8-R-9Eyj5$m zEzbsB_ygzZmugFYCYPqF=UkWzlX%rX?9tpw{n*@TbLgAj7(evYFVy>ZGgWL(s!9Bv zEZ14q@#0qO0;~$S|H@*_?!Phe&Lq}-2s@Nwz=4<_#tYe){oS+mc(f!v&jyHLoL+>9 zPN8s5zcb1gm-4(@@?7ybY6clR3tbwU?)UDVe#OSE`85C#Oq9rucLuCGy1r_&p#T4JK6n5hmKn;=QH11Bd5Q-EoMm1AmLkcx0B_Pa{o zKA1pqedcNXB=g{KZ&zG)Ioau&q<_5f)^jI~oW(lGByR;*WWtvs^-%J0k9FEmi|%^^3BwLAA zf5{#tUV(C~n1!>a4oOR^be3wfy1)|8?egW4db?^|Riwu2|dD%{*LdNS)O-;MXRG!+5~+ z*Bm|AJe~p#QmrLFX4Ig~DnP<2I!+^6yMfffQ+w5}V>{(~sHpTX0}V7$LP^&yDzSCfW~+O- znp>F9H0tnFV##G$A^vm*8({uAQ|1miWrB@fIMGKzs zcq^-)kQkCC=ZZis5iGC_U`#24dG1R(yFT~lL-yxu^nK4!E(+in1q)%soYc85L@gfyLUjgY49)$Mmr~cdLhY?PQO}Vbw(xO%40S6myXIOmz^K$-Zw?JLI)6 z2w6wGCzA&Ys0-4$+V2vQhtcY`HO z!ii8dpcXDTVzU}+3!|CaY6?J)1`B|4UYt-z^UempH{l@$v4+_51M}J0b zIcKKWa?XXtRWE*J_tfbVX8-5@eDIe?o@kEqjPmN)o;ZRnD##jy-NNX{f?An@m=~-&JA3)JfA#F!eD7Nw%nJ&AkAV-LIc<$jQbobALrG^@$%_ydomHSS-9Eo@ z|H*6r!pF)6>P)<*p1iEY^1Dh!5N}oC;MOJf`Z|Tusj$ z%%+cRH3jp`T{GSM#KKATWfj>H8aFmWHa!<-X(W*O4bRE_% zm=-bt-F)pXLqx<^vZqgXrdO-k7rwIl5;j8YdNzT@|H%PbT(yoa+*dcxMB|lf>C&OD>h|R zO}_)qF*3si6!$~63G+v0INef7xn`3y2s3P;U@s2<+N!nc($(v;SG7mDk{4{{@(0GT zN*7q7R3dNOHVz()D0e-m2!=ne00k3mdaOAso56$r)+3vE{?^B!Yc?{!|1k4W-kHb^ zWqq|fW@~IgRXsA(-7b5anN6WVAN9?6*f*VKKy|sq#x7;LnIvgtqecd9(3+8r>{_C% zSbS&AnAu3F0ry#qOV98JKR15x(ifKh*pFfRjvcJGTuyr)d>|SEl@F&;DjG`tbdz+U zrf52MVBZ_Rf^Q-DQR?altKjHgsmQ3@H!L+TlmC)bY=gBQ5$sg_4$VSb*{u&5AzPRZ1V1u~(X(8T+0 zfn4aT7o=(jrAGsr(19Ez09WcjOCd7BK~AZ9NNO-1h~kY33pHxDvV$KEVT2uJur#rcmzC$|q+>yq zhrlLW47Ft+KIAn;(_XCz%-uxh7DFKXoTL_!gc$`??9bZXu*U4)zfYyg_gW;-i;)_8 zw6V!vsHRne8)rE>d-qrlR-*-Vda0M8`qGmN9rdcU19SM;ZgtPKM4Q;{)@7?_JrC0d z>=;AXsU#UJ*KDj*HgrltA>b)tu)Su3n&>sMCk&W8p(lomls_jjFCde)(r4!jC2bjm zw)V#(4_1%DEF;~(v!*H7Cs$F$8-yhd5>!~;kJ)>~>tttGVuMhBU#_EHLU= zlbeNMf!qt2ELqt_{zZw%U^dsF@lls|36j4%3RPHYLYqkTY}8%0s&#k0B){bOFP(bL z-vwMOEG&kS&PR?sod_n}>)A9jiv-5$Z|hv09<4q59QC3fx?$=?u;PB@v*S-Z{H1z7 z8(i7VA-PtDq}D?Qs~_YI3Dg7PK;&(0I`myXuwqi#2DuxO?+wYO;7zgNQW+Wi5rN3!_;> zBW9tUql6I2LBR%>oJCrHDW4h_MU~ebcG$B&ur4)PJU4mC1l0v?WWIr0j$8wUDoOk| zbe`)!ezYn-rm|sNE4O!45M~)_Hvrp`u4$t52fw7!@Zg%C_=XS1q z{>wV2*cjUH#x$yOOVg&DC*gd{5)Mb?ZMwKgZ%YBh_*@JBSf37})OTj_bvR)8-L20)=LA2%my6 z)5TcCU_}?klgOxOpiq=5l=j(wX1wm>0Uxz+hqAh`EShp1A_DM$%AbTtB|5Z>PlX7E z<@E2yAHo5S967B1^DY08-hIojgegaa!}tB@)OCOI+YA5O+RJ4W;)TjhVGxgiUu!fh zkrFt$IK4~6V6p~;C~^fyrPb(U_canKYLhastB_wM5mb_>0l{Lu1&G$J$$DAUGTvy~ z5KmLf5ihu7GizE*nC# z@JSZ-iZd45>*=;a<8IzL^3z$6Wrw}ia(ine%4H0(YP0nyX?J@Cqc)wKi`Q7*Us_mg z>gu?vPjA#Sxh?vH9F5Hv&#H${9Yfm!t66yD%uW$o0GL-(p5vBZ{N>guvVRE0sN96TA2@HJvDnKjgNXPO1X!>6G{=w|?ndLjjq_(v~1RlxEN zTc{v05}Sg3LCT&l9y6=5O>kkOf4OZFA-FjkF>Q4EupqH?gFlaLMs%8JBdbdz+Ai(a z>C}~OLa&t8Y`aE`^7z+7G@oO(Rdjl+Bo9S_M#K#~g9d&bJhSU$X0_U!j)j%_NbIT& zED{|#eLtnJ0CJ7vCUKq|TK6Yv|83ti6z0|b)@~Un^t*RoAHKK#?0g$T!$Rr-Gk9W; zM9$uM_WCq1$!3M_Ddg*+x<`*46(^Q5wQ*di`|rP!w#=gL^4@HIdZ%g*WNOv4VnDW( zA@~Bq&3MnUng! z;^}5l_9<+NYy{vDHF?F(uBz6(ZU+&>rZ>|wdca${vzYbR`?zW9;8*^J z_V0U)1;SDFl?VSuy1TPLbwM~P5h`)X$x+M3jT>q6rj2yb_6uqA=8g1%7d(%xa~D11 z^)RNZ-_ZM+E3VZ?zI@N{?yrBD9*5UJDO+<-iw5r_UPXt_Vb`MX@&P#uk9#H+l3~|? z;S4=P0gIG?3}n$Grx#p3%T^FrWZFtVkoZY*nsIgVRjfnc_F-_fujEzphp6yQMTCe( z+glrJg&#gsd$86RWkkkX(gG_aKgM|75JQ+4E!1-Qrt2QpqejLE;6ySF)t96CTqHI(F>1kS@CDA~r}|NSiiqe8y{Ij2pM+FZ`i@GW9|L z^Kb6cU;OM{gD)6(HL|9|>|ls?$E>f8kTzr_?+w}+L{D88B?FC7-58M=!0b8VsCklm zte`Cx(Bwoa5rYlpE6krzCid?IH0(~AFlPB9h9I{9h?L+=EUlFO!f9^wT{z%RtxZuf zQth(eOQRGyyPJ{nRAbK66x7x%>#%=pd=l}?XBk=?s3p|WWx3R?5W9#H^c`dx=z3fu zicxYg(D^GX3mA@d#e4)|TRAFT@b~`a^W(c-{@QK;8rQw<^>o{9?~}%NX{e1?LQPan zOscCyOQDzleil=5O!S%nR>*_BPy@$<3DpXh^dQ6iZ6YT!$#{a7gA)1ZMsx4IpP>)l z`2o6q_Z!2!Z#pl#{1rdkKXT8X4(?SJWPnK+q!}XsP0}+Y9~|mcEv9{xy5MixR6Au$ z@*$=NIU0FpXQd$&u4-%_4W#pGacU@J>ELhe!_N48<3Un3jE@=Vl@jjGg`KDS(}%OA zdX$}==%dgkF}iq*Q!*dgfeU|L>s1H<(Op+-o#+~rEPfgu(~?VQYuBNrMffIZzq<8WAHzgXCKc01=@8#~Ucd-lQ*gfXqFI}nEUdWnL$tm?J*^h%TCLfDz|w=+ zh_2L9t`WzDq^9}3lcQd?deA|bZPuU4vKo#0AVVt)VhpRC%C<)-wqKfWO+gjLg!~L= z3r(%?)Ly;>FiH#766 z%p!9GNor?9U4foa85->5RgT(BP(0LNA)6g{rQrA}_VOS%V;AkT8usR!=X2`ZPX*?~SG{~i%Pzp* zE8Z~m<{i(g|K1Q+U~?MRw2ii{?;GZM1uvm)_j&uXKl@9*hp$d3B35o@LA;u_ zamn7&1O$%@e%WQuQ?Gs9tHUR-39+lPE3pt#X@I$EgGf!Ob_L#>NzDzBSt$G0X5ayj zD=&I{RDo<92PE8g{hTZRH^sk=PY_p=d^jGyFQ4Qbx|mu@+x6ji20hZRyB#P+?}=)S zF#sdK7u3r1zw$*8A8b3CNuw;du@Joj7aw!A9{+A>G{{zWd)aW&n5Ct;Z0*{$G%6X4 z%rEA}G;7XPSJ$y(GKvk{8Up<{MvW{`{}+8hxI8r8>N8`EALJLQZXt-gL~4*fV6!?OCai@|jf~-oBX2)&}{^z4y|6tQ>l3 zcQ`e^gQEG&@E{5xvgkd(iTR zfRDX)WuFkHbbVp~6LREv)RkiA7|NzHEMwzWFRP3Bv2N6$X}Yr}TdGU9z)Nz`RWLb> zc_GGR(5SCo9GMJ0G#hAw?wMMuPHDEOnK9Do#Dr4oTB3LU<_q;BFL_mGz`{%7;h|UD zaKjDi*7v@L5<{3bj7DwK86m6+8q5%pA10V0PN-9Nl>e^#*O&?VCzUKoP-ZRtt2SmK zY8l=FIBA6gcwl18ZMXflLcYe19kCJjj^~%J{M!BFuRZ-_bIc&NthPCH$bM7C7P3GL z1YAW@4iOHa3_31aPa*n=J$Hnvd#p-iwyIsuZt=#4w@O()_;$g9(5qe9hI3Yt2fk60 z8`SH3UdXwPr6@rT9(X0*UZqVU9xX3O_BIYp2|*?5ry}2{#IJ>$ZWZR<=^w^#b_XAv z&ZQEcm&@abLM7;Vj)+q;skTKW*8-Jm%mkI%@;FWf8@X{?7F%lY*YZk~QcmhZiH0jHeu6CO`M$ z<@p)pBYu1p88V6G%|u5*LZjc52WJ-D}f@4eSV&h2&=C|)QAq^D&VYA=dCoZ(7OlB@1Z8bim>0)Z<64L1 zM`d9la1$X(03Qh;v0QYSN8{i={TRY-P?8xYaY9ZJ3m9cOO*U3dT{NcO>#<3tp+yuX z$p<-!ZRWF}Z~~Mn zJjnc-dF^%IuU`9_SFu9%f@R~{vaNXj5B`(llCSNlKY!m{gRdxwy)||`HqkqioRjok z*z3ag5hS74*IN?Su~ZMd9XF?m=$;rFz!z%)4c%r06t>WDL~G${_ZT zf0e0~oCa13*zxFK88j)b4HHa$6S=JxJOsLBF;FX9B-Av4ng~Mj1#MBiMM@8bm04!9 z3MYv)96Wk)jj2ulK>_mgPi^|A6~Kl>nz{GE*kF)^JF^S)tw$)QuR1*j6=sP|4O2AD z7UKoBgk^o6XVuB8VP5ux9+*3J*=vFB?eN~^y31tRld!=i?`iazU}q?gq<8goy_a2l zS?Bw|l?UU<;iEzi0NwldJsPYocAVbA*fzINutXX+H7d+o3zcBCwO8;=bnyJFecnroH=Va5d+|MgI(+|;$Lb>}iH5SgtanK+8oNky-l**L z$WgKv6{(s|uh3GXpf!Hc|nZ&-47Y40Gl|qB9yy%u~FE33}25{i}38sIV?XsV6opuzgcW z$=e%m{5N#_?Z3;QYF0jivGz4@>i_s3|Mt@R=I8W0ikRcJS&Wa7UkI~KBbnPg$*4n+ z0UThnK}IW2NxgU?CSY8G>?s8aBkvs+HeHp9KInN&(smLsa_!W2-->Je%; zF-u09zC|kYX|ptc+LW`l>J+*R9XLR!Iwi*|uDzCy?Ig8#FPWQfV&~JltRLQw;aO|g zmmc1wgNx#M(;B{~nRR+Sv&@BhfpIH}n3<+q7EJ+yWv3*H^q|Bo&qVdeSE@(T^KII+ znWm@F14(0XJVwMvZSo z9HH6`6W`gJ+sVxsQ>qGDo^G6VAtL9*3gNzM8_^ig!1(jGzV&U%nN2!3Rv6gdx15Py zISnefyC%*jVM@ud@x1&(lDbg36i-cqnnSQ7p;}kPz-*KuEOT+Rn4!_(0%I=p%{Z~p zQN>IzlfDxCKHA%7)gT+!S!Ua(buyGeWp!TWOlqW(D%NkzCP3MP#w!W|QxJJCm$5Dq z<$$GAwu~oWOR#Q6jb}htxSSw=AdGMSL!+mVh{6sy*`wI64IZpcv0s8wY1bBXM`Ihl z-t-|g>7`tnXf+jE8oPNH&Fk0**<<%upLbCoU4?mQQwmM%8Z*7?W##jK^q)=t z;xmDa2ieo`_P6~az5VU~hCcM657WZ@f?GMSEV+l@5>6YAij5V@{cs+UKC3To%%Q=t|D(H^Ud4;ftZ+S=+dg z03VZFH;#pZVZlYRssvQh@_TPPf8{J9q)bOkb1B5aBZkWM>A-H&yjNiaR@Pj)LXJip zkMfv4v5*IC2~opk06hw?HhsE7@cljQwe{z73M+m&0HWnJ<73>vq` zjn_}&_)Rk9ItVd8^h8bca+8)#q!NTpb_}rk!7fyw6par}y4<4)rJ|Y5=Vj;q#M`Fd`rMax z-nbITK&T+V1!&?;Z~7^^On28WB4EjvhKm0S(KehS%;#`Ghf#`>d%M9bqr`{+LO;rwFCp3^KyW0KO&z15cu=Azbyep;ua8*Ozy6&%)@GL{i5{VGI z$;MdJzmq~D4Z@Xcw2v=}vLjuO(NLCIv8fnjOiwSd&8V-(`J$29Jp4e_TJZD?{WKJ; z@{$-Uuh}%JrF6G7TuawAZEI5LyMJ%-u4=?eU2@#`j(_LqpFDsK^dF35D)NvBVg2+w zGlyH0FvnqSwYzO6%WMPR73n|xWy}Qqr^e?9I4I@D$#=cC@9@#X^uF8P*P8w*_HJME zhTiv~Y#yP27y9tAVHFk#k>luf!zu%F-x4M{06_r}#MrNqh^bsEVq|4z-0RHoY3VbN zr9joGg6#dkhCjG}-0CX0Wz$x-cP#zexp9s2M5mG*1QRn85-JJJ__XB(37y-A4l*(F z6e)5T_GIAmCh@BHtT^{uIgf4HXS}i4cmJkfP$vph?ALbJnE2AQK&Ntb0b3S$dd zbLMojh`9LloY!1)b$h~%x9j2ITfD1OcTVGvl_x`w)^VmYBzH zo9$-B=^oGFR+?SCQQ`enBZVaS44s9g8#@aI2nd8{O8*~p9pUrOOypCHHO+&s?4Z>B=_z2_{$GAmr9KoNvafr0=)|57Cg?LM-4 zILya-B&BQlXMiGIC<%IuW?ATJTuq^CFcb>bBBlH78*b>o@v7H$e-_qGnmC}S2*BXS zo>Xb^%s&w!cAe#U0)P-rh>f6Q1&J2fsPc0b1iT6RLLLYqVP(qv^jm&5hHNFr+OzY` zZ}_R{*E8t2gz0I9e>%fN&cKSw$?qoDQOlKM_nssz28D#u`}1>iY9I6;lvjsvGnX%VT{I)!vwX;q^X8ph?wMlOhQ%RZ%SZ2#k&O+ zDetzhPCU1o@F6s!RK%{_D;z4gH7T)DhrMlrK4`BP-a`E3o-jyv;CcVuR= z_t9k(0)N!(%7lSZjbNP25e-yOhbg-=DgnAxujm$NAV=_EXjYwdidFJAWA?$vyv8GtR`v+`ikHpODU z*RXK{9k7iV^{8Ym7~z(M>Nd@|n<+H0X8#a_43;w`j5CwhnAmWk@=@5oUXe}KemVW? zun9cV4SUSZsq1zec#<{tI7L~i_4p|@t=H}vE&5l9obp1>Uz^DD_lX0_D3akNY5=Ln zEQ{bvW{cK%ek>i2fj3GPT8p$q=%e8e^e@9RJExi54^5{KD8bGo{&!?6WM(KXj$$^s z%`cT6qxQz+^%p-i{)2Ql2rYW+&%Zs;zbKT{_N>`GsZ;=Bem}*1Wa2X=%B_p`^B`sg z`d0}iiS(cFRUbZ=7#%!cNPwR=mZ-@M^}##;i0-=kW344PcYE>D=e)4kj*cWK;KHXV zd9DhvN@NT^jFPp%Gs@U&gsLlaS#5F)J`jWn<4}{cTgn<61#HAp=xmo(uAh&vOmw?m zSco0kaj<0{Mnhxo!~rr&a@8!ij`Sb*xivZY?<6u*MZT!K-s!u0JO1eajmV044&}R$ zYf5C8n}5q!P&(Ivj&RKgdi>~h9FMG-1uFI$^4eUyqg7i7&WVA9y9(H_iwjp1g3l^6 za3`?z!k{a7Q`^tG2u>Xi*vn_km>->D+8`9xpL3?G4ML~<-+Pa>uqq*RDz%1vM}P)q z^`@H?GSKOsdu;c>IUd+-f0dr@PU)=ILCJmgWR$?U4J-ucO`xQuONK(H^@$_;vGk0W zqc(L|_vD4~03&V?6(iyTL-ooyC6;Y=X|_h~`$HJ(WGWE6Bi&?+npNJeRF7IfS^x1; z*5^^4T+FjWvxl<-#|~ukgF%*+Tj@!vT^@vuspk675F96D1D!xi9Km zlvYbQa`-UZ%TaTQ_o$q3R6(yMN`RM66akmwLG^EktTDC;89~338Rb8RsQAQ&v7Lk`dcFa}740#&xTntw!H0`3*XXR?~ zF;c@r$CVmnGEY#@QAGt0FchiIg`(S9>b~dOca`U)bA?=%ef#%0Q55eYofq=m0K7fY z0W;60?S6=Y4aa4dwSmUdPc@GrR34rT^yEV65sB*8HaQcLOS*)iJWe*wv60c+8kSpj zT(R}G=|HKZ$}dPa zd%F?bYI&ir+KIcV@byC5TR;3BQElMmX2GTcd&`>_Y~gjdZq(!PE-c7zydDbQe^~}N zdQ)oV>L2J{b@l5zm+|ifQ0d8vI6+9ZuItC1ZpxMJ%eecI6}1U>v^?NP;&{#%Mrlcu(e*i7#U47fw7cmW;UL$w*J^#`)|AS1>GNDFPp-@bbNeaYwe01or+JI^NmqS%ICN!r zUUZjg-7Qs#vcDZv2W2kAAVaf9LoWjw!Q$za_AqhADNk+>r@J&o11ddN04Fg&(!}q2 zp5#5tCW33P$tJU#&Yy}?X8al@%3dI`plB^yL%f@bB^~mcq!-h8Ow60vOJ1_^i+Oc5 z?wPrK$<%BID@V4SbjivTG3Y=peJx#^y6ouW=cd#>B$xtQvr@*^-Ujfw7DSc7HVioc z%@Q_K{m@^J_C57j{h4%32%);-@+-p3M#vHOPyzsgf|mFdy^~P|9&G2C0)UCU-Os)I zo}Qq8`j+&+OdoJ-AuRA}7FXPutkgLBWFype?5 zwUh~-7(Xr@)+_=-duI|dmK?_pnj-c$^*1 zy+B`*9k7~pWG01Pd6qeZzY#kn<&W;Chc`^pV!P(dcPMnqPCQV}1{uI!nm*oGBsFH+ z^qc{B)1ziy!xx`3nB^O>rbdWjUYSZ19uU`ATl1EW3po(fa`8_vXyyKIFkZ z9DoQ^^=-1HyjaS!;=&@6MqabWvZBv(HD%`tNJXLeD7t}Xt|KV4c4f;UoPBQ5nyWo~ z?x(;Yqu{akpJ>9)vOu0CTbhg&%fvt7Xk>bNnmrmo*QOomSR`*7>yXxv>RQ3{i= z0=J)4Lhlr&s6`j{ZP2~8g#}nyLxCw|gXhT2u&0p>MS0zPi)MK7bna?lJYFc9Bz!k0 z4&Krg=9_5cY9UgkE4M6Jx(`Dzq)`p7Q64?x5#}-FiS`3OmZ->hOLL+$w1w=-7s}+0 zSv;uRn-|&(^at6Fu>rO>M0jK2*7Q$4HbIs zOUvi|z)w#7!s->g7zjsVdZ63y_+469T#N=66Yn`FS8=W4U}=a*YaXA)Kk zFqR1*%laAO8Q3Faa)avO-G-_z<+{t;mcfR$fWu6BG>jF50Zy18OO5|u`6V}g5+gc} zAsm5^1fJ`Ukj)pEuQ%w~tHysl6AsndA{Wx8C4+(<>^NYe-ch2YPuwah5oJ<|f`tcr zh((?(RTZ(5o#&-1yt+?)TFroBG+1Cq8=s7M|5Ufns_qgplNn?T%&1X+B6_n7dx4s&8J;KSLp zqb^OV9lA;Jx|FPQ;3X!4A-Ac6F6*urzU``*x$(@-%&Lob>};(C>oACMGVs_*Ae+gx z^zKBbPb4xhqR#4)8H$l`K>+N$vYQ9JGoTkCbc*PVobT)n{Ldj;cA(9}%{Nn^)%5rd zc{J>Lz3W}1cJu4aYj>JcU3PX28a+gHxDFe2XVFc$)b&`4>yekd(KSgg4Oox&eyMu2 zsieM^9Eh9W5gY6&$83yGr3ngUB(OwXc8t}emVbN~c^db(#?2Py3wf7I5?P+xWN^4& zp#VdbmLz9Zj4P%Ag#EDNTju=unWI_O%Ow|q?MpU4qZspVD_c1lO`WB8hQuARWi`*Y zoS(OL#J%@@h5~c2g21yDr@mNGn106z2J)C4?`__^S@~)Z@N5K-rA$y({dfHg#r!bG z{1ioCmq_RbC-Pd@YH^`;ce1!MXpI7}!S~6Jisx%ojWXmdbZdKonUPXUPi6|;C8v;)g^@00a#^S29h22L$WsmvD8e) zJ^m^Zb$Vr1_7Ell1!DX2i|yb0!@Yk#87c+k<85#I*XF&y@mr|x??I&rarJI_q7voh zzCGM)FOWSHSAOp}B`Y#IAEIX`!7hDN*j;RJ48sYuV`53O&*uL zpxpZE>wC}P6SRPa*ogdobRaP9@9@4)X!k!0!5Gf%JRxA)hx-=qsT@6iGcoP38JMl= zR)Ar*IMpnNeQbg)8ZY@ zN6&PqV6&#yK5_pjGpQsxUVvX||KUofhyG^lnDCG&Y_wwJ=h|ggfrgp?F@aPifW`=* zyFgd(ro%R~F2V>6o5~1YJyD>uDS(Xc`_cZZuez@Pvy&C2kcaWkcm8{N+gtxNdj*b| zWC7d_P13)eU#|>%`nP+9qMDHG^`Oi~`7yEY-AtOG{007@qH)7rA_cobe zv-HL{{e&dbP9ES1*Zug^&t3eyd^h>3C3~&}ej?;o3O2=VWub z>9Pr_l!EuAnBXN}LvpDq{<@F~Vi_CMYh|Kn5c-W+!ub<=@r$1vy+0ij5~hFY9se%5 zIWox%1rQkYmmvA=dMMTAjUHt9eN1YC-?Zr8$MW0HR+=^y=wDCJzu(*1Gw2n-osmTU z_uTs5T5q$#VB57n)I(7pbT*VwajXq%e8I~hRV7LEU34vxM#ivK2uLViFc*yr)r#xf>UUfs2e3R3R7ghR1n+-+vn=$KNY{A7-#=Gn0=zK>F_h?kOh{T!`e#mUD2 zu@U7N5JdWCn7RZZrq_Oet@NHJN2SqkY-79z(E=FuFsZVbTIIpuF5bSwTQ0&xg^BcP zo|{xRF)H~x2qMhjBrrps2EY@Th~$MMG>pLpY*PSb7I0-*HlEF<891C~uSU+E40wK2 zmt9!R3|pYa%z%2TYHZjP+@?qd2b0NcFg-eAw|b2{vhNW~*d}2GK?$e83{_y&l-yI; zJi!u#*H>S4P3zuHJ*^*S6|Z9BSk0Ce8;dLcjCRd8BpBjeSw}(%BUY}Eo6&T5_&s)l zb#1s5JQ+1BRc7kyALv~5${*_e++=77@-N=CXsPY1@ra)Jb3d~8U7DeXIP&nL#Zy>S+2ieXSt3h zkM?~!z0X^Hob|?rOFLyrn7pD0vM4AXD=5g)9|OL1v|i5h%w-h1dRPg_u-9F7h7ew$ z3`Oslf6sqCrJv}|PUx51pna8*W!KTp-HxFmagRN`=-TQ|Dp49vDap*Fu#W=Fk1xd2 zhtQ(bLPlXwfp3^Feab716W5Trk>n&L=`3Phg!d9nw0A{u_2Yzx<)e`2amY8JB8Kc+T6JU)4k*N-;q$TNm@ZD z)wTbi_p>j5ZT~9dZ1Cy}AY)CJjTZ1~Abbi%`}o1u;!Hdmsw0+Ty@Fhiv*gz{INz{G zw4?vzo?9E5Oi+F-cGG%-{+$vkJV>|rPoi9TI-p1|CdhB)>3;&e`SY77z#J*9znCe>rVP!DW(KvdOB3e|Mr(HNnHzycbrGMX#3MtD_aI%s-j zJlL?l3=^JNZ9|0y=hZ+JLY5I4zWA(p==1d>k9?*2({yB)Uw$RMY4?x0;2JM`+%7UE zof`_WS(|{B_3cqI3X6iD%syzr>!46 z=Zf;RyI$DYu8^a_-Zm%+0wM5h`-w5nV1puT?FfA!32jB0=Nv96?K~QYDaplo%4@2u zMWzuY3$>>j<;!kA@r}9_2?Ogs>p(K!ZsR6%G!b^}lfqMwXA{Q5`HZ9gwhrchZ|UF2 z=JYy~pQ={wg-O;!x$nCa8kg@uu|%$u>&^?S!}(OQ)_zaD;_6qo=Ktg|vkxWsp~f2V zWT1o{YgYW@x*kfn6rwY-;h5!3Y1q{#yBQ#3JjMlU(PV5=0 zSv6>md{ggD&vp&Mr@W#VNHt6}wHS{|i8kmVj#;_?_|=|0_qQemjr*oonQ5`86Ixi> z#(g!qgCpU$v`OCCS|y4yJQ$l7^9&YxDAB#C)d~!(li3i0g1Q1Qa%FpB`gp{hFYL7X zBOu1{@Zm$o-_yj(;@m(l^SH8&$ z)bQF7&K}!OBOJ)nm|ml%VVS^v)$CQq{UR>~VPg_TF&gDnv!oDGmh+tDgE^VEvE;H0 zG8*)3;1w!!)fSM+gB3$qJ2ss|>(gE%I1oCOR55YkV3C>nx$^VrlqeOHitt_XVL^za zZOz+bd&hf4c(4fo0N4r=BZ=T3P7r3uE6ICo7+`M(GfcL>u)xo|$ju-qR!|C9ez6Fe zy6CyZMbCY4=f@^N#_g)OK zU+3VyR`DLw1MUGq7fid%VzpFncQ?tbw{da4k_X`$SS%Z*4+SAVuTGBmYenAUj06r8 zOgNG4J~e6u6-kaxQhtuMDj)%GSF3jS&?Z6(N#|se9_}c``!o^3E^+ba1D`^x2?T+<_OgtGtx~{bk~vJNphz5 zau^R9$<2-b+g-aX{V^sik7!NBptcqXw^Ab?=8~*v=?EPzJ)fvAG%= z-t7#Dx(HE6qBknqHw-WYDrP9U%9=21$7FNp&wjH(k3RJLj3ODC3?tf@}h^_J= z5@vR06TzLhbQ=tEZSI2LLDQmJfB_NMc0n8v6{3|~BN_%Yz2chhZ_WJ^-)J6ewAk;Z@jBwulnsG4rqh#< zz^*E#9gk#7kL>S;{9nON=OXVLcr@a15}keJ)rq5Q2BW>SW%kMyWKsM0jsXqm$2Z+{ zld*Xk*P6Axod$Uti*wpc_l%Y}$ZTMG?9r&lMnY3~%4#JZjf`1>slK+SdN@5N!hxny zML>>80*eZzp;+q6Er9A$SL2Ti9mz3v75^_l1ZVIV*fKr%acr`}Z zU^K`UJ4&i4sV#X1kg<-H=p(~LiBCqz5P(Ik*&uE~cb-dl5zdq67hYPnLV+H5@cwW= zK`5AIZcdZjtKXdAUi`EFy;1vwg9 zF6^w3pW)}pseY!l#z9ybLvb&tFn8gO{EO||cSsp!f3Q#*?!CW$)bB}>q(AoImiBsx zX;e+cGR#)l(NrNzykIL!C$F;(k~P^J(>88o z9YQG8ApuW+8`x+Y3&NXZQl@JHZ8&BhnQkQL@VklgquH+(s~Dsc><32Ni?$PZ?wVIf zhm-&|mLCCdQBc{E`}gD2Cd_M~ra0$L;asM~%c+e66uJGUakq$?-)X}>-i3zRp%O&P z?pk>$7L~;?MIkocBuauqO39v^xQ1V*#C2ND>%rjoiC zvlVEhphlJK6oOppIFK!-`jP8KJ|_pf1$M|-9D{(?N9XofpI`ss(PXy z96TB@Ey(>SS+IdEFxBc~Ic>F+tm%*H8c_vjvU^2caoPX5hbj~`*wEpc6q%$`M3k{Zq%6Zsj#2Hp&WP<0Hd zXyT!3wqHywQOTgY95NAUG z97tyMB{c&J9!I75Mzn-a)u^8(Nmf!#8730ETO+xOJsKz4c^b3q3cJ`br?>=dl{-iV zN(F!l8^k0FY@a8?fzH~JZ!xydg;cHJnO742)YMslxG82KSp`e>qM9FAuLklB=7$T} zsxr$;QJynVvI`qrEf2&gqJ|Y;xtLw2TFUch?)|jfLrW+`R$`LRRLam3rZ2~i9T!Vk z+w{PD5%mUv;?8NMtcuD}5<+8=`3l099$X=>g{0PNEiO+fPlrD0$ZcT@r+77ntZJ7_ zS#^qi|MhBx`ueCwB~1-08{6H+VLBajWW4AY?_-KO;R(pU?-y9F}KIBZ+>dsf9cX`IoASztxe7Q}Ep2nxYQd>%U zG8TVpt@)=F!ak(4ZG$0XVsUbL;iw5|@>a1fy?h~B1M%1Qa}>s6$E<>as1i*f*?F|$ zJi?=XzcB=-HnKx~XuO+pyZYks`<1Ct;F zd*rPQOz*w-Uh)c3xCgf{jMv^ND#O9r?RG#y^NI1vcs|$KpMggxFZ{{Vk-bRt^Nt_O9-@<9F!2xBlj`HNEV6xk3z$nFt^>lgpSWI1~*t35y8dbDLl}{fAp^(SQ7IqRa)EL#>~t zGC3WqF)`WId*IbF`VW_*<#ZtZ0+86s*38Vg8A__C?4T_tnfWe6d}sQYpPe_)n|5Gv?c5=P$G zDxXr7itTx1q+yWc*+^iCwmpwDERmUw^U%)YE0qHIHFF!e4$SrkzTUJ9)K^~qGF#?0 z?6Jubv;IiKT-`29eL$|~g?0v7$&s)g5k*PgoyZ$fFz$`I;o-+`b(nN4k?X}ZZBel% zGm%q*Z~VY@|1iC6nm?f*k$ov%w_I{Er1>il#Rzb#X}q&(P_uX9`x$ z7ulNuj~{ZYan9o>i27Y^wr;i8Kx>E17n8d4PCM9}iI&MV9N$r(fuSKe1h4Pm|KMst zp2iY`4V1YZ=?*YeQ=&;Bdo@_wtkDP!mH_nC0O&Y=M1L(kC;A+?diuu1hA8oZZKj69 zRaej{aVDFBmX*0(dse<#8p}wf8YQS(tn`uyzL=wgV>Zj$BReU2Q%b-_wKmVu$Pe}7 zJLv4{LWhjxW;A)I%*5wiwOY+g=4b5R_lO;PP@3>(8a|T>1r?ZeVB3yYO)AVd0MOv& zZ~{PBcC?5@)<$0Cpp>{;-;>KcFcEHsJPm-dOaPUZkSA2xk~zpNh(NV2o~OLO3iG5S zH)Ezit^G{$Uho~Uh{A>>HMDK08DBo1nE++pqd_4$*v2cGbRU@HzARM-20f`Q;{B_x zdPQr_o_eg=3#*hg=tB)HBVE!Ys0E*+@;7CbgnLPtSi%2|QFaTvpk%mdtTZXG6xMz#$GVG9j--D&@UU>3z!HRxvceD!w69E@5VAc!WEznz zj8h`gxZKDnO#~HIcU4hbwdS4AapcGmC1B&oa@ZxBkko8x#wCL0yAC4FlHPx!qX|L3Bt4D2k#Y5WT zBEH;#9(Xj2H14zPT2aJX6XT??H^MdJ2W|RK2H@$UMei%0-HHs>1+rYg2AZN(%}7E+ z8#F|OvcR^Mn!Opdav+0rPkKPGV$9#`zv>@OeebqQ^Olbvdjor9|NebpleSAu2G!H= z?{J?{369Sb?|J3QeHJ{qegnJmlVlSsV@QOGd%Lx*6p?qbw9X%BLM3XX{k~BtxS9CO z-kH0XJ3sUxdiT43g(i=yUf11y{>AD%RF^n($~I~(nF&vn8%vA+ zV?bn!e2s12cGILnS)vpJGK`|6j5`wu?aw94^a_qsRG z8+ZShpWMLj?Vbuszn^*)!G`f)@IQ2DArauV$ZG1L^o!=b6f4MoZz)%;_f;w*$YaI` zM#B5yI(A>b=hj~{kL+vfRTsaYbIrzcv-JSQS~`8|5)~ySAC}$B#x@TUnQsfs=p2<` zl&d19r2QuH?HUPhrc*_Y%*l+$KUuCYJT1YgSDen+bkK zO53iRK1&98>R4@#%xpJ@9wT%35i+}X->D)A(z4?_?9s4|I{sNrgF?w^-7Z zXvNAiK?s@%#!S%KLNl=Cg7g1nS5b1tS0^?IE73{$(nOJ{hAE2U{ zjhl^!Eo;ldB6lFe4c04Wekn6@w~3skp&2To(+)+lxio}E!D&&0y7pIl-n^Yn-s3Z z>!RcBJi`$In@Pf2$Qc3 z7*R0|5Rx^6GHv^qSloI|S8$)&D!G=NIq|!8HZoL}lslm3! zhTR%XLp5q8Ht4qjBPqFj4gMbVnC7Fuv-q*4dDCh(@s=BYhBj^5lx{P%%-}-7v(e&0 zhFbEDh)e?UOgi6w9c5;HSk7|!PYL~-uV*MDz2x0{f>A3YfAGq5SD)3 zPfY*R401Z9`XID|oOwp>3crvPl`+DZrJ-Mj7&Man4f|}Rx37B_k6I^uo0(6u&CEJ|dd%L+e37@C76N92uy`|avYrfd2+!Fk_R#0+hthMQ za>LBDEw<&7bs}3!dKRAry2!w42f!d%8r_aq z;YSGd;k}1K3H?>bxCUtE{brB1QI^vT@^x zo=mIIQ6eim5FzWim{geKyj`K(Y1M>;h#?1Lxwo^1c!e`z=9Z8a7UpQuTCx2F-HRmF zGPm76Q9%OWp&(lp80BjLF7$Ai4~juHQ=lC%gR&gCEaM!YtZ8h8F0pVRHzuRvxi2YN zpbQ}6@X1&59j()_tMK&GPu3^ci^bkrTckh` zFnsB*sf|X(Q5Q0$kQFP5Y#KH$1P8M9HtR9r_Fn$_sh6K~VSZJ5{=4t~GrH}z+f4*T ze)J|~=qgD*B^M6m@6!G**&|A|m^=j`6csZQ1iAm5QehLmPaz+}m^gRFT5S?09k1lR ztYhgv(;kgg6ZY@l?>smw9XdT>IwL0Pyw2j|ne7DqQylXO=SDn5<}?(^-juMZ49+)y zZ3$b_wDJ*@L5gDEE3_(Dex2YU3L#T29fA@eKA|+Yv#ZvX^ROY54d-GbYO5=_d4@5D z`AFu*#6nOHcjFFMag z>v#S-+O(~q6hM*vt_gzQhfLTCH10PhG?aAj{%!Ps*Ijp+NqS)q`l=uJ$5TIy1aLl4 z*Pw3(EFS1jfE+?26?#;AS{zeM_MQs!)8+$-;lk5dNRT(w&e@1clK(;kgUjh(8x?#} zj+Vk}3JO}7Z-KNn;oL+8*d*gh_e(qsG}6rWJ(A|X?9G_ZYk-dV0po{!XvX7#giX!T zVLDxDjR*@^Yf%yNBtP_cTB8~jun77HWV(YqQfBI%2FjSpN0J~e(I#vhEjrc^g=Vf9 zJmApT5JDw+8VFrcJQh{|#hruSp9}^6Y$%u~Ukpb=EP2$?N*>6UFLfljA;o_$iii|D&}$$k({$4ZUln3Kcw{XyDh> zCCs^KVvP4Qgik3OI)z%cymKTV#E41&_H9d(W0ba$Y3^EGdrjS#uYP{KH=S$bF8tFQ z{*?`N@_WaG610JD>m=tw=1Sy^HDW~icQTG9O4piTz>#_%z5sE8C?S-VDhfZL9^pSsEh8JFlB* zrA9X4xtk58oa@+G=;b%Cc@)x*Lvl1gT(fJkRuTn5k&Fin#-nAsdA+1lt$U^PUIXL3 z{IbiRaSblsaj`Hq(_&mP8P8qE)n@iHtBqIATk0kMHJPWe<-Gg?%P6z}DhWMPb&ebr zEfu(Wl8XVbA%&;-_0q_8(k`kRN%E2hL(0du*pj)(mr1X)Z~r%uq6ks|oE}cOnthl0F zk(RQPypwyI&&#%4@`BA6u|?AG_*YEmnQO&|^`stSgb5O=Ok1bp!x{cS0KvY-eD z{v>Cx+N4SZPzV)ii}`4wa*Wr`trH|(2ASj+ln6(MQ=QTs6#{#Cdtc^*Y;mwL`05 z-}GZov?7&`YZ9o%F?etf#~!MEr%FK{#;e47H#y9>-{a}xUYK0BHfZ%87+H&8)m~{T zC33}RX`~5?0?o46k{&uaVyzptzaVEIM~?@7sCr7u+OkLE+8^rv_@rm=mS281?ccvo z1tS2Z3QZ8aDy8#8@iDFMC-iT3Mx=kU0{uG~VWNl0B$*y||A+G{uX~048TNwTcTu;t zK*q19Qw|a+s=saezx|Fo=*~Mo)LMu&8?tk*eqH~C8evl;kwFaX2(7pfzM4($4M%`} zyc6^v=9;2GB2rtVe~Qsy)K+|x`SjH96f}Q5>jVt>SMGciafwkhLH~w4ji-jLKu7jB zYS|uD0?WrR0ZINu)#SD9d1P!-H|ra{sw;z7(o-%m>m(f;v43tI(OTY}!$p+4oj2oR z(TsGjsn|?7)$KNQHng6Nrer&lJui~NZHYMN!I0*zrfwP-OdGUat`vHMDP14_rau12 zL*q}TuN%);ot@D}>e&~-*jc)NNl5| z-;wAO+Jg%Pf01%U1EpX_h92#bbVoL~jURKT&CV%Bieh? z^1juqyoWThS|@Mpy#{*L9t=yUYVf{^&K3+2%2o;te9Enb4&k3}9>eu1(PNDRC?+mB zQS=t7o8S5Ct@)ilZT3C%`ReNc80eqDGbnmBJQ=k{`cRErjK)?|D_pJyO5B!>DZ40o z!-Uh)T(87L= zWW4dA#AjQ!O*HDW`5DFyE{ws?8zt=20VJc6sNVE8-S5A&f)LdO+_k)0`Ui?5EXfQT0b0b&~gAY zJ(rLFwPH>=lw-&%c@F<8SMA6WoxcvbeSOQj-%Yn~-|jo*2Epd{B{>7O3V&MF!_G^R zyspxp+ILl0-}JB^4apQ__5xiDp;O|G$5%75?>DxZIZYnMgitcK^%BJ`Xgg9#Dt%ui zyOVS4}q<2hd%EXHF?{9K;c9t%?>@wQCX_G?eBoH}9@W!#%JA^%%sDayk?M*`I^*oz0Cftvme)WGu|L=Y8dznXVXG79uVT8|p zY56_h++Q7KUiCCA=eB9QU3D{=x?lnm@Z)v6*3P#H1SfBXq92j|qpI)tMVNCHlv4Ya z@!%;ghB9$o15`^kuxZnO7+osN?O0`A+(dgD{e)dWG+kEi*`im~=tI^w@J7_=)m5WN zEe$B2Db4y-)8_P2L-1ns=hm41C1=sXW26uEPi7lf!J20UYcNvOU&ZF%f!1}8_w@*t zicVvSDl-+bVWgKVvc5AGZc;Qx!hn@-a;SAVO9<4Y%HUx^XTK)D=a0wt&dz3Qw{9;& zK>Ztc|Aff3&)j>D2Md82lhak)ngkj(CZ%`fczMF5TJ%qGN80x(IluqTGWu_a>xMH$ zxnUw#vtK8ZfEEFr0JQJB?Z2yQuDX^sZ;m#@E3Ylz@Z{sg(c@3)69y4enKk^QD4=#$ zU4z&jC;>3zAs|hOix8cA;E|RqBi;%{s8Ly|fxfKCHl^VGa?hWRK6}A)itkBFk*lgzYSP)?HA*lP6B}XvOdsW+9VR zFf-WB;6TSb%bhOk;5m|#$t;ce{T{%^l z>i0+kzXqX|Y$1638};6;+w+(Evt517E9gD%{WYhUCx=@s6I24P9C>9bDr9CtdDz1W zIFhscfdps75h{zFbBSzY3q1<1Amspya|XAenZ0di>qvSmoH5PJY88SR(TC)L z2fpk*LFBHL#<{A5Td3A`{deVBq`(x@19=oPtIf>(DYM8Ux6OFi=EDnGbaba0!>`fJ zi&Bkf$QGque=5`CabBUwzUlB}GF`y)gCZW*I)@5Y#mr1L(Wvhm#w=3@1Iu&juN7X# zGv&xoDKZU9!kad2p^LY-fyTZEM~{g|g9W&z3gx~vMpLshqswQmq&JY5ov{%Ljjp`4 zDvcyv{vm<*m6Y>X7gWW5KQ$ui?ZRUrPfpA(PC#__`-(~*Y+jL&O zd9uRPo;`c$j@xfbb646kiBCes>ImL!qqvE&c_HoSKUtSBPuN-P@l{t}eKlQm)m6OL zH`BLygi-C=w@>YVbU*SZc>E6rBxLE&TOhrKQnmPZG$6So&i_ODzvY%&%YI+L?a!t*VM$X+=pDEVn3ai(bH;fziF`o~c-~ znmc($cW0+fGa@=pC#W~i*4xeoGc2{~vfxGozibNTc4InaUk~dMqAz&P2CA;}rq^K! z&u7Zmse}YXgc6de5WUv$yEUvDs8z`8k~!OpBsBvoefm#FpZJGAn?EO2fPd-6chOJ1 z`Ax{xjQcoUH#eO@#Yqm)39{w%N|XZecnS*i?*r5V`$@hNfrN?7qzwR5VG^ZktIz~q zF<>|U_l^Hj{qF4_2;WC|`uF{V{ty1qdzXGMQ$FV^BWFiNH+NXvK@VD-251rhQwB07 zou}7+o4?UC)+RvV=2Ma4 z@7lDd(s(!()vq9N-JFr%xK1K^&B^Oj4pb;NzflyJU_go0ASp3Q#i4lVvSssm^v~YX zE+u^YQ1kgik5*3uq@jCchEmG{%Mevrz+I#(o*drSY~1Guf6mr)Geqc=8S-~ZUCgkQ zTx6^Glrg7SubnMdA*_&S1JU%s#vGVGK)W{Vq(f};efX3#>Z9FmQziRArTg?d4m7-> z^=7)sU@*v1r`ZFv(4B@G(sc4ZORI5HH&QHK8sb>%1HlSV^S7ICJ~BS^^6&2seQD6m ztQ-OzA3FS0x)GG6zz_xyWS4duBeJwa(Q_m;+0hbShncnc)WS)#fKvNl63DY)XJ}D$ z85Tm>Ec)4~(kSnUtbH{$W3(G&i(id641OEgH^@0KQpOGQefCz>vg)zoY+o3Y$^ez> zA`ZO)pWb8f&i>BFjF?4 zg`{UmCY7`C+wD8cbJB9KurRXcNl{CYwgBHxg%x$=#h9X&DyibVyLD$TmPzmL%t?J< z{)|}^_Qh6#j5>^WD_{!4E-8V2Pw5=hEYYO+}l=^bJ?myT@Plh<-*&29u*vKMf58cZXNwXF1!3PLSBkkbQxr{ z&(S_uxsr-Nu;}i2a1ZW7MHM7m*DG7e3@3`U4W)`<5XzP)zV+5y<$KHcIT$vS4`*622niU5I{?5e-Cz>s-co>RSJg@G}{#UPAT zOK0;GsFq&_S9e9?5_^KWZRkS7_L0@7e@iGFYVjeldQa>HK-5rrjNQ z9fy2y!NfF(yIxGjFh0Tyso;5pS3bjA{9K5c2$f_y1klZ%y_dYYvn+h@mUrLclo@S- zPn$1M5X(eSSd*RUNgz$}o+jwuh+=;I?(1py?%gdV{qJ(XBaFxEUi&%}H(+{rP~Cpp z?E=Wjc&nxx0j;d`>AxfWOEHBT-@!EV-tfEGHEP|{jo$zO=vlx_w+Z>c&8?QV|U$K-i$H)v&n0&Km{w0>D%~?{m>eV z$2=L8-HFt&sR*eV?1|{=tk-DSII zip3VAjm~Oa6-z1~%{1Bch~+&iX{Mv=;kYp+x_}x{*H8u>DlpVGc8vmiXCgvWiLfb& z-Bc3gqqDg)YT=%b4*%da*Z2RqA2%Wn05<;l&;N8VhI(G=_J@=IVQx*-4=g4P_(4&i z`>?m7fj#BWi3*e$B|KJ$P*_byig^C#IZoKoD)ER@^ltBC1L1pa{WW^qTYn*3XU$pJ zd9VLR{a4@h`%8Zz=f~_A1UQ(Qtc#<_V4`JL5R`%jH9V|$LoS85H_I<`SC$;Vl~Y(I z!Eoc@FN`0%;F9vMQ$zKSzwu}2%X>ac_uPB8L}#QR&GE=oxVU?Fp=_RIisvy?uH-U# zA)rhIBYveEr?yYpyQcg(9V_=By=~-m_8uL+<`)2>xJe<=vRqkaGu5jPK>6^O9W=HUSp(VxE^(N-qmKr;Gy4Hq+!wLoo=K`Eb6JP zJA>3D<~#juf&6zJBZaQudv`^p)OpNW4Dh>>qv5wO5=I`mp9}^%b;foH*OhPH2d{>W z8Vm7`aGmj{TR5W^Ci66|Mwf7RdLo*vqL2`i@v5k0g(eDuAY1uxigRn+=k3VPA=jZ= zNreQ21EB_QElv5#E;5uV_MeV&=><{uBvBknbMC5E5t`6gT|x2=)^2F`g!s&T_qb8D zO?1&q8qqQ>)2)p0{N{=)Uf3G@;U}BX-utUF>3bKm$3ujzF(v|+sC?K_==iCd!vM}& zLe%isKh?VCwq3%+FHcKw9Xil_jlY2?&>9Vxq?~P*ON_5- z3R5s%EIX8SOJysOXy9r)|xBmQF>2pc_psI7vOGSWLg^g()%0hrZnDS4*WIhVgm?XA{|tj+SV zw2zEz)j}~dDyf(#1Zo|A4Z8K^wBiv2sQ=p~{8^pO!KX+xUfGpzTJ4K0NhkAVOnZzl zV|ZpPIT*R?T&|=thV;>hP5bh2h46a|CY+>;BMtS|Q!|3wfXd#L<)7pvv)yZUubSoa z$P+E`(wR%tMBxTW>Xe3CMw;{?H-ojVE}x+LvRC(Bx^ZjP>L7aC?Y9HGD#x4s7+TkE z^Bm)bj$fn&0HSxY{To)?rl)1kV!z_~?+Y>}4}@9)aC}hc;YQlDc@xFj_A(|)*4lU) z{`=5B0~_(Cq{q$|m6uJ;s41Hk%V_?Wt zV-Hmazy3hgTFfghe<8i;`k%1Myh>)%gmBB$^rymp@q5PO3jfPguTW86XwyF>^l#;V zpeMf-jo+u<3t}j&xALqf#QK@=BXVlF+zjUj* zc>7L|NQ@2*e@(bodykj|Tl&}kClhATor7^+udumRHpx6TVDvNVCe%Sie@@q%CzX|C z%?9M>E}47(>;LDMe`i_9)T0m8AA9oA@zVs0c$p#LTZ${e-Yt1VUcW}M0v`CN8A-Y3 z%5)@OqnNf+z}w#F&XlIPIVow2DzUw;F=*3ws$0ALg^u84(6(aNv3rznpy3R>MD+hd z)hT04kXhGWOSFE5tq0wWQsn`q9TqJuzox}=Z@_XCgh37 zD3vN1=_4FT?5bO0?MpmL4Q6KKUuune!Vjze&NJi$vr1y zHgR6UnkO6F1g4uPF(!5WUVeESpgp;-epJF~L6oR|swHF;x5fU%8lj>}vkQjZ?-qO- zbUD?Gm&y)8MK+$BZM^W(@>S_MZ@c|Au}JzkCKbo4g4Nb{8Z{J4kCI8hV^_%}_eB&% z5vho#ZGtpB7Pr3Vy~I{mb;Fx)cvh4xQLq@K;JkN!@J@LhlHsByIZBu4rxO{e6txs? zu?AC&lF<|!qNVqj{3Z(02)uU+`F(z5-76mUKBi2v5Axi1prU~!IG1|K@ZB*4d4F#*4zjk}R!~XN$A1^uG$CmnS z8Ah|hOh{v1X$i#txIQ;1ccB0>0JM$ju<@(I3)*Gi(YxgG;``Dwpb)@acYoZ3617$Y zhkc$X;1unt!&Ihjom_j-&i+b`vB>wErWaNn5|ZN27g zZ~a984rM6z{h}B~73WuYi z3+WTVr|MMFJEO}=^B5&v`PMQPz=(iAYCqFR&I)KNKLhCAII!fc3&t~xc!aoJ7xd;8 zHgXgpuO=1dLkH@4{-`?gO})Tgly(079osLqJj(m?h{(qTr|*+;AtDq|jwi@4*Pprf zQ~dm{aLrZgvTd{Lis^;ZX3-!FlZ~8Btr>W!f^~Ct-PJ{x-FC=)!KsQ)mseY+ke^Fw zTS3wd9GRhhUmA9&RTe7>M;J!^_Rg`}n1iIT2_!~W0W)npOR*%QN)*OOh zK$R&Fqtv<(q>OUtjG@?@L3l}M6#$PeDytJ?O(cUCotMA5``UEO2ot%}hD;?^K+B2T zdm)L~E9*{(OZZK&5U6l#Ap|MWu7cwm=?wq_H@@SY(%kafIT+cG>WU2tEG;E|>z0Mv&H zc$1#;WYIpf_w;C~7baE%4N>LX7&b{<(Mo+ZOmZ)2h=J3P-Hq9WGM*{<@4B@l74wpV z^>5-37-8eO1gkgVeaVp6mi9I7s^qGw~fqL5ULMHJbEJ{kbqf zwkfCc&?0$L85yXOa8mRP%2k)=vGdYbl`on!tUystl}{hyWEE8v{6p@eWFJH{WJ^?1 zLjM%_6}%TWy!kD((t&;c)Z_KTkAJOt9aC{5irj9CsY4AI{g{CvBIBn*$oxyi;& z$!e3zt8QIX4JwUj%`&K0clwQ9HzGRSIn3UR$}A2^ZQE9xGm8aHGuRkx%GAOf+m-rS z&-Q1;u+GW|^NWEhx+s#}X=)Y)X3Ve465%PTM1U}>ciMsiWkaZ-^0FoatwBruAIuBP zSKwZ#+NM7B$HNc5?kD}_AVd3Jy++}zdY)&=@4~#QR&-62 zcP(#yP*kH}XocOnidAhr5P!exoxe#x`1&`ci$H@#bMVjpVEj=c+o3)q3n;|Yt?e_j z<%UT@7g`PfwTZt2x%_ z=?#6oRF8Gfl<0v2hVM$nG1vh5XTb5*FOD92*=u5+hV+bJMRAW)KAlm_UC_(22r|N= z#t8GE_jpGBfLP4q;;vbrZzHJ1IlA&tRtUJT-LBDYv4k}bK~Wm)MB1{lZKE!7lygOs zzee(rm<1X9qTF&}yMKmN)V(`0(rl`P8JBMul}l?m@ZZ7M;c`tC=EXTPKKhiNM>OMs zZ#1W#^TIL!jccxXCH?w){|iOo7Ii1%rYl;f!q^N2mKV94t;%w!RZZgj9r-zXzcfC{ zFN<-bq`p2{qU6A63f0BN?6@k~%|nohEDc0i$s6=VQc@6GJO!&(o0-Y#T>JKY-3e#q zIHq#UPkGydW0+3;P{Gy^2$-Vxh{5VBTWpiPKL-pFsF+|GOQ5B@fDFX;b$Gz2Q-JEW zVBM(i$tV~#zuD@75`9^@X=`@&+2>}h1n}GLxJ~9Muw8E?QYuaNQ~ph_r^+3uP@P5@ zpUfNgfnT$z&+=Q>@7^tn)-zdhp=>RjZk|4PpxO7tKK;#8N1D^~XPN=_O7L$==qLnX zrnX(0ZQ6Klv5_C=tvg$thdTa~=Y*1V`)zl?QVs8oI_f%r`?d1mj{IJVAU3i3+a2$< zUOQD@;<{UVf!>n2t#r-@KyA*YNVta!Oga8jBbvjKCU9j2+76N0u&SU zZ`^xXD>LpinuT6h{*WGu4U&QtIr89jZ zLO@`Ns_KDI^uYLA@lro9uy?%UMm7{(H#uzC^N)YMdfykRQnoa2mLB|Uefn?ydi*f^-piM~y7vO+t1q9V2Y5FSR`~O8 z{TF<%hdp?59vXU9=>LOvzMroDhr3rZ#S*lV^^bVnLa8UFj)+axN+>rf6wtNO^CGH^&sx3RKoSRenwCq^H><_*0Y{M>WSK&9Ad{8NVzk2v5is#xNyo|s4--G|o_sn}M17E9{Fc=53-rS(tR1T#@A~dqBSECXelLuSD3$2-= zIvv)@_;!ZusheT2VR)|(`0rvoN9dgauioi1(uIQI`&KjC-)}m-od#i3$j!hQ9)6f? z=u|LcEvNbKO6Zha+Fcvy2TeXuhZoI1n%=A)4Hu*n;gInaJ2#n+7wpzSRdyrMb`1;> zJaMNd+>ASRTudo?41$~}Dlvh<8)G5|4MY>HGQ4$A@nN!Y-^OjlIz(imKZID?GuIn~ z6=+sG3)IMBhF(a&2nmtuAkn|jH9yGyPD@E)B-I7Sp5Av2XXVLKW^CQS`(?>yh3W}5ov+KPY@z{1r zxl_52B5Aw_PRp>Xs%=tuhAK^Db2gBhk@GX$MVQab#$<@4bjM}gR@fB0Ke9H;-#n?L zGc%d6!rI$zRr+sYX$uoL=>>ZFDf1XJ003LK6C3!-5rmEgys#)EKSOGIx^bdW8FMta zdppR{c;PF`Yt!?=n*rt9?NJk=w)e%5}c`Ki@)c z{rR`A2r`&goc8U1T|$G=?}Wbppo^MP9z{?{izH2UP+0-fZaF5tnZ zndjMfv z6_j@}@_;fwQh3&^-1BR(98Vm9!z5xe7!Hi>8DQzzBr^~344K?iKCg?N+ z9>)?ZmP<_ki~NzS51)GhHAi@D=XtBKs-x%G^uZ4`FYCo?g>_;}57uSCPQL+f$RQ)( zA&Zj{gYxmX))hcTC+pU|8C~~Pzg|7kdhx(PE+;KT4UjuEMa4owhlsB^c`mMi8&afMf zOE2qw&-u?OH%s7?gitH#7+wP$qw*^BgaV?M`HqB|X6fxoU=dpg0hfe$;2c46I2ma{ zgxa9`?mt@ktAqQSzfP|Uu0AawA6*e-{N)G6|MlR$=BUYB{!b?5&lu@uQoYrO zOf|?;f*D-?E*snFekhG6GuQndVTCAZTQ0FGFq+}PoT6s1PMGX;Z!?38NXCce?^nCs zYiZVZb7Wt%f)M_$0S)6kiaRAnp+q6$|50q_2 z=alA}!3F;ANMf@J3E`+V1%>;f=ayS0D=0CtCvvrNyn^MqN@VbT~KtGMf=Cb4-WFRo1 zQ#A11*%(Z+08MgNii|->BNeJ@QCxCiC|k~N*W4FS7KJkf`(PwuL~p3X#7&eiLT8aM zUa#G}`5Z}(PmjmK2$BG&)rL+Yy`zy{x)gV8acPwyv2GHk^%|g0Kfn^_`_Ql ze(!UCHTuHB8FQT3?p%fk<@}(ztTc0cra9*BbG&5yQ1Ul(2YEJ7%2?1tz<>RL`fDG% zWAP(@{67c({m_Bt;mPYk$-47{9~RI-30*nBU{bmZk|=TGQ&i}Up)hyyO)I3F^5f?- zrGGci%eWkDU=qmdFlf>UPdbBZ9lD&Y6gp+MQ0P!>g1`^@VbqGfx6BI{FOH1~?shV< z3Sc}x#hO={Yji8)5y!t4qq|67+k4Q@R`UCnvPUWJP=40j_uROg&suC->1cpksdGpzTPf7DK@AZdKXDoYPe$6nBU|FKeH0f z*BSHbu`x z8TLFexGS=39srN`7lT4tV1X(?BrA$V-fO&O*;2y}Csr2*?57#QQVEd3{(?%68de~> zHEUA!2{vY)Vvuo&b&azwIYG_pje2^TO@*7b>O)_>zuAT6WBd2h;)W%?tILd^Kd&Dn zy)b7J!|_{o#_LhOU`)5K;UPiC@Z5A7B-289!=uclKD)%l=dM$@Q~=UO8o>HI4K~lq z`x$^omeqIt!SLgg1#f=(hM#4Ax+PJiO#pXoFOvOiIsKF0OUfjW&r4CKNVn+U0}w+K z@?WKNOa6Nlzz&7=_lAN1MEteFJ-8A4r(6CVrG{OEBYy7>_y57{8Z>2xvC`(nN?{p= zev1f66E6lycW~hrI#l>8*lbxM0vm27gqg71Huh63)u^2J@?*ch__2eJHlI!B8aW%k z`1W_xFTU;FFx1Js>5wax*1@$PAm|;+%K_tZfCI;$czC0aR3xE9o+*j53G|2L*P{Kfl+|LyRj%qm-afECudk}ma?fDE4uj{V7c zmH-Xp8Fdk+!(1HsN4nFOoN44{AalN3u31ArK{>$ti1 z{_)=Qj8a8ude#K7m=K*OF#A^^ki=R>%M}Vk%TV^&=Sn%+99BE+62o2en|Lq^d2|F= zj9GbZawH)zk)Tl@$`xx1I?iW{Q+i%pr)3dHwBXR4)7cQLmEH^G*09yg^o*JGXgs;U zI>DP4?E_)S8XtX9pGrRmFbVNCihS^b2)!U4qJroz9Ik0mqs*`Q^hD(;>8CNPW&o~o z1V~B$5QJE;k4jF5F046>%kg&?dZRq#^JDhk2??SxiI1N*Z`!PG{q^6RXgFrW zMIQd*_*3tH@51kYV^95ccD2pJiYr!I1`MoP&#?wO*En#&_VYOf3nIST5QydUR3^1j7C`uc+vim4Cy977hl0~ReqHVO^d)H&dL81QCT zqO2KYS`Aq44j4Wmgm4MZZ0#5rD8QLvYq^%s8Eh=!J>F00PDm%Y>7v^ z#J@m}9|O9aJxGedhFSo~U|G7r(u6z!+tv;)<=#!v0eIno#<~ftEYKHTP%<}Hr22K zc2c|=>yRAIpoPs#y32}Lg-aGvJd;UN*J3d)3bgKMpeZ2y8@fy;6{vCn9L80jLc{@- zUwMx;puhaU@DCUu599usrQdq*Z6f0-EJs`ZNB%;oSJe2ulnC#{+mIOE+UA`=|0>a( zh`fqouW3RBJ^xu^go*Df_gzCV96V4p#&+oNK?WPY)Y=!w*SP8j`d1-@+K_a*M<{iU zT4IKr@e+j(5Im)%XpBOVc-`3CD!GU_3nW5K_J3x}N=Y+l9uji0nvebN;G>U!t^TXY zefbk_{8?7)?^D)$;N&*?keZgKf}#X43GBA_8u@1Uy|K*Qf)PKrL?)#rMHD^FGc&8` zzrFhp>A(H*AJXh>i2Ef?4G;nCJg9KTKm{ev+G!GdUM9PCAGM4N=8}6iZLx&^3uG|qO_w= z(DAfPneBFciAuv0C=sh|CYcD&U@c0&V_BuOoX2DBS@{KagQM(fE*sq__h4Xw1m|&W zD-ba%DtuTK?|KOv68E1`<)-uV74kDEXi4Oge*!)ao3$0@kc?S$6;!B5&wKi~UO0V> z-OL7Ys|rG7eCV;dWo>%}dxAn$853+BZA)#6FH}0WLBilkA-M~A8tHNVCHXn%Vnov4 zo|W+&0D?Ulf`OHFaQqTU+m8(!P(qNeOORGIy)hb2Bs6MQc7uC0U6*Cx{13JO`7_P2KfPn=j?a92bRRS5 z1^(_l??<)@=JOd@Ai-W5c@Ne?VxGf#IPV#nhvkqxH*EQBSkUut$c8Cs`3-+J%NTrQ z^9|LD2q!uEWOMlTUtRpIeP5|su74aiy!of;`s?3FiNfKvDhhO%?72h%b$6b60m#ij zLf;O>ez{b!36r`4LDOxKy=`Y|td$j`RqsUotlGYih%dDE-_6-?ri&kI?e4Jw!JK zttc@v!x;no>#I)DGZ>&vO1BY!g}G1u@F7w(LD#g5k0u8aTFF}(mGl;puqk*q05aq? zdo^}kR=gnno%LoM@@r>&NDaApOkTSDJM4P({-nTM9c z9KYw+460b6<#Pyc&E;HdSQ;V>3AquE>>0NjGJ!_l`Hp}09ijh^-}P~q|78z`7@Z4u zWn0`TBHsoW6>67+>@d!jV)66X>Z5V8rfy#0L4tQAaM#I3OU|yq^G{0s;(4u^nH-jb{4cU7zWNRLugZ&q# z85g=3kMpwXOf@x)*Hi!*IqMb8=!9OwfT5meyCqv^X>mzk{gUlwG}^8SHm6-X_1fP3 zMi2)d2M!#dX*Pr+#0ok}Jy@l?i|_@pQFLrWs7$rU>g<|keqb7a4a93n=}`0mgF;sq zY*8LJd6~P=DN|?u86CIK``3gVlp6UO4}Ga!@)lvvZ+Xkl`9xt)F?N1c;4Oa6gZxXu zplL$|XK?-2^dFbcB=X;%Eh@(xd&?UcjqJxZkjBRw|*4D+); z{cqLX|N9|&fsw z{|t?=siv!^yB$W*tbC1ls!lW5V2|DKu#vVCgsk3UtYddE;DdDH=zfEewujbE5cACp zGH$*p?67C@YJ3+x8tp-Bc>{$!ja5vyCBQ}pXlf{Rs(raQ0UH@~QA?o54(YF@=X}LA zucWZHp5;X$??sRD+mZlTV{pg4B$cy7Bgr6$ovE_kta{ zNDddvybY_$By_4kHGBx-d}boCnXhA_B5X$xa;ySv2HH2?dLIbh$)Rhm`QFxed43pF zD0WG+5LGrw?!Y&iqt#f-CdmPSwq^4cr=Z!hDN4LQPWt(hi$rl=sjVEy{DE1d#|1mf z=VYiP1w}k}xh+QWzjFW%c@#=Y->Q0CpaL+`BA5;ET$y6$3p*|E56a;kKJt{C2c;-U z{0$&;*#-Ap5GfNQyC1sY8_Yaq=k(voe53i9vf;{4a z!G`n(5+Jo{TYmQH_3i#Bx83%?gz*{*@tbiwn#2kiw7@7hlJ}B*97F2Bm}X~Z)O&CJ zEqF9q_wm$$X78W8Z|M(?K3N@R-n+o?h(QEf0u=y+UTBnB$g*M{p&>eBZv`xc{2t%? zqEU@J3T@xRXN^2730VNxAo&b&?U{s9;X6DL3!nJ#=#zWDH2&n|D!ldQ|0RREE8Lzk zErWoG;9@!R4z%IIMndds6r)5GZK=kE6R1>3`oqz?$|Pe%JB?R71Wsv(-5~w$j-+C3@ItMtF=uA*J+QGwnrqW9N|>yT&M2^igtz# z`L)&QRXCFm)iIMJWPuJN3j}>`Cru0~0yg*rowGI<>(1F$wu~xw-~BO)7E(JV%gkaJ zl!;1E*aI%4AOv$ci@MM-yajLj`M0-5$DWLZkN(cW$BsXxPfDneAqEoJ7^#h{ZAi`< zp8-8L$85>3B+Lf!@>*8}?{Ah>wYJZ?&d1vIW5Dn5T>&kbc#6lO9P{5M6Fw^;Nj$vq zC;oW&#c%AX9!SS^Iq&~B?tbI5O8+EAo_SW%+Fp(4Tv5ItoJ7k`$G@(uCDn-K=ItdO z4%-)(b(G0X@9EJSXG~Cz+4UMB_{%%cW8 zaPcewT(DGK%5y!?5+d0r2Icl0gQ`d6zMHnu0(fZgK!Wu6dpazE|X*1^lCPQ z&UCeajk6GW(dVh;N6E^TgizIe)=Cz2mwkGeU6cxCyOV$n7H>83P2t_}x(r(;p(Bfo zX`0%GRFMUNNaV%)pZ~ML{ZHp9;SLX{lRDoUo=^U=71>8zUo-jnxN zp#S6qE*FPVeS~x?Y|a@BO!5;?yMa;r-PH1}w)r^y_HDnltmN%;Us8VWSzC*BhzRjs z4R9Zz3nbJFD^j*9oP?ID7-TCY55VhTAXJhvZgVxze#3}k7`jk{!UCWC$nf5eyl?4O z#zSgFec<@P*Z&0F_2GvYaQt_L&?V28BDe^EFEIpLV~NdsG2VD$iNei|D-j$aBfraD z3-hyYc?U7TQ2*CkZd~TY;7v8y_tpACcmB_XJLXU6Gra%N=ePp@V&karGkGmam8k_> zV9&WQKHi9RJ+dGJrJmu{ScD&~LISwfDB(OT&Y135#w_vHhBpJc`I+89bBgI;{mga) znxXseC+p3)lXl%nE)~M-_D%q=aC}#RhCn`rxUSto*vQj3YrfLBu`?%`-Je;|9YI^z zBQ~MRCbMLiOtjmqPadsX=JU%hd!aosg@q^2^;BXxN_d_MRx%>*LKGbqzypo@9+~J5 zvEv2VcDU*!@mE^_0ZY8}P(V_oSnJWattlH)F1*T?wMBQ!oi8dbO7k;7R1VNs%bjHu z9_9MDKa*H45@k97D0#Z#@(G3cYZWL~lKl7^Y@t(9&13GAZZ)jA=IU4aZSG6!MkZl= ze4=MVHfbp^l34af=I@dH6L}iwry-S?bWxb1K)$WD{xeuZXqhTAcrmPf#zwU6SRqa3;vJW&v{Dw^zJ?EfY5bV9S3m<& z2DX{DNo4puL$x@Rw#^#X@544KLx>k@eeb-yXce{Iv*&(7VF9mfQgn+FrSYBaGY{b0 z`22SQY)%-puM{K-{3OUg&cw%V8~n-q89JG{@B@SyFv45peY+^20I%6wfh0AZbNi4rkrAr~V{Dofew)#72d ztWrNyj)sYQ%qw6riqJsLEc=Ncp9u#A56(*0@F88^)k2h1^00k0;C<1JS{V&_wm>>j zUhS(O+-+Er|3RETN81h*dm5UYN>~ihTd@jwp^(EPSb^YhamAcXLNJ@?C* zohFl5{leISkPfsQ)RKg!2fvk}8~({ptI2S|PkdO)-6L=# z;N;WoczgD|C=_gXw&>r#x97nYrlGZG=Ub+xQC`?`NC{$B!s8KsjF`^`6^}&W%`%w} zGqE8}(s$7BSrdRf`5YP(WKsZzA&biKUQ(f73QZiy3xQXKnlaD#m=|P(mU;@_A_g3q zJr&5iK-ikDvL(hPLzCAGK=Ogk^FdwL!>rDSi&ZmhP(O#7QHKG>@Jv%N^RD}>V3o7% z$jGaD^}u>E&LGK~_7f7zVCV#}_&Iboe%KE0=6mjxYC3qm>Ad|4hR`$Y)tF2vUDbUkJmz}r$9c(mSr5y$Y-AZEC}2Sd5R9ON z76SK6(#nLiw{6Hx+F#NpZIXN2ByA-%h4i~$UgX|<_iIwfmwQ_XR`Vo4(~ux=csN0V z1axf6vMk&3kz`4h&U^2@)|&H<|CrCU&oSj~x3|mQ+WYLi9&^n#=a}O^9{=$#e(GNb zc1IUVZKB8t$SxgM_OqY==~|g6%+#9yI+_1A)F=2VeCcsxf^p9)P+=Uz5tFQS@#>kI z|GpN7J%p`SOAF?I`KcdSldtjDzo++|${8~xUjyu&U{Eu*?v@>rN|+3Sc4Vyg*W!rW zIJ2ZAf{Tko;;xhh-Uut?IeX#p=JLJ&$MP?oKU@DPt+N4eeBd`eMfd)npQ8Wa&3}uH zw6`YaR@a9r0TkpyAp?+T>2Klt>FF8s^1EK65F!-;#tmz(zj$3g{NevFc-J2tTmB<} z3xrD9usi1=(=~g@s4hWF$m70YK%Kjgz1oFMVc@C`7^g@i9O`BC_=SXxg^I^>XHp|K z1G;!oZ){LE13Avx=*-|Er;;Z^DPdErT$ixeOI`vi);zn4UALEO z7?j$2i3dHT;^Z`A_u&))6B4#X@CbucvYnmPbNuTFtRg%y8R=T;z{ekMS|)>+3P5pT zS!4o`Ad00Ay%kaz8Z%#KgM1r;0{@9mv_l<{r!gUU8aazzZ7XMsRl<6E5I(5t2DMsC zA9snQdEHost}Q#--T|98lP-tG$Dq1zVotl(sj?czoAUjOBgd2HuV2;YAmmlUng(iQ zT4Hf{0Bt~$zg>}q3nmLfh^H?Sq$Py|&$pK6d&?c&R^?-aijb3}VW`EBpwJ!)3i7(o z+9)-);Je@7cF)^rJT4s|y;5XsAuO^LEntKHhQ&~m{Kf{uRRJNnS}9Gl0&r2)2w!McG5`?vZ~)K%qyWr( z`lHonQTQxv8$4(~{geOFD&;CwU`_ZZ>6fv;gVI9n`Kn@wl^W~2F}21P=FBJ%lBqVB z$R$xcca72O2+MeW757(DO~rQrL?|?v zDYL%Zc1u`dnp9Ewa9<=w0(TE~3`S%TK-@UYaB3zPUozIP92tT&tO(fP*X|c&`_p6Y z{g3ar$F`EVgA!!b)O1l$$r$h&ueYMQ{QxlTxu?w~|KQ2$FP}V9Uol8@WVf7_xCv{? zXT3rTzdYh8#MFpP(po54Fuw~_IAGO~;e?SeNl1yJmdH<(aRTswEGXbvMQH(VN=?I{=Tq!Ou6+A22ktraws@EEiG9WMKStggF>2tIZu`HbbGz|I zX}cS;&A@VNlaWzo7X6~}F0b~044~6T0+ne4{D_P4rk0CT5+4HN?x);oSjp(|mnCGl#wA*diDy`9DeOCb`KL@ZdqZ5r$0 zlfsGeJh(LtdkGdl_#3Og%ifKjt%me8t+U;E$6sOZ#=m7yaEgxopPyF$^dJAP>h*WO zMcujguQ)o~kgrGMMjm_*_Ndpr_AT_c-}b}mJ-_mw)JJ}6mft@@uYc`Z*992fi}CM& zY31jUk5Oa=>vh&M+b~#F0yr|6LrOdvx)K5cP}&yoX5^rN7Vlcoova5)07sF@dR0RI z;LYfFCN%PnbdP(8$2C~i5Hq#V-DZS+jkl|pYP0dxDA0F;PzgNbXB?6LMPWU9)YnfL)q90m&N97stq(k1@bT((-?D;SQ8C-;Ndl96?yT; z^9-(DY@Pz&iju0NQa;Ow6_-u)Po8Zqy!6{B#7;X;i18K*V^ZM|TIUp~)^|kCp5;T4 z7T2k#amyX~&e;>yHD0v~slljKDRD^BfjDC!Y}oun_<_U4LEzvou*7fN+|JKnpkX2? zl3tO@#Wsv8-BX7kQ4&jGXut7o#&37O=JhRMd;XE?0m1o&l1lViyOd!*6+c)}JlIsF zP`?0RlkXW}BT^!H`>o}c{*-BA4o5UkdcKy`R&1fRtP<47#w8z3QN~jBT14pV6i&L@=|!_VTonIU9oCdX9bLH z?51IRT+IeVU3A$fH)?ENd{t9%=6_{jI527tdu_av1PLz6?fzHeGc#KhnXB~O{04i(hW^qgyS z8k^bxYI|JE&3fcP1n-5o64I!Eb+!a#gr(VxFX-e9z`;T&`zedwO?;l~Zb}9n0|_jH zJQP9hBw)jVA4v`49}#s<>sXJXwUImmvK`}<3uk|8cUheOX~!i9K#et0@-!4cMrK^J zw*mu9v1NO~~kcApRCe6=TCBtOb)ng^QMR9s#%VqsSLeWMjt@%74H|DM#h@o^yU@dkCS_D82y| zvUVv!g(mxS?I_Z2wgb{aNa&}ZY8GcdTYurjuPTEP;+{j_Lm#;J{bp%t@vENy0XhVo z(6D?wXyM_gbb=cc6ss_UeGr@j=ewCS( zrpN7F9Tdprgj#RPDKZP}_vp+(1c8$CX}x-V!t_ek(gxb(qixOh8*Dh#D_>2L$Vvx~ za{~_2G5&9M_K-QuO+6;}d5o2)L+0}3<7zMe9=2W3Tes<3=PzX|Q>42~EMb?~O_sA) zgB`;f98#Isw4nerQ-y-hRILmVLd9lC_GMJaCjj>ayyHzKA%VF&hA#}rT0@~{?OBd} zK8LceF;R*=kfJ8#D3zkMpLfku=XZQ^%! zC+jqzHC|$sJnZ&&?z0zr9{P;We{X9bk74+W-@Nz#5(DUKUlYn)(C)qEU3*_#Kg@mc zXbu~PTmV@KvM%Q~Zb?}TkpcYU_eKmgxoe#GhHcm^WU{dLVfbU}XX2D4>2;)yUVOZH z>ODWZ_|8|qsr&NhzohfVvP+w2oeiJ^ufO%S9}eHmU3iS15>Dg~4_N(%5*GFGUDrGp^7T+9YKs&YMwpm$~ajWbV62W+SUK z2M!#dH@v|<#MyiJeSab)_+ON+c&6=}?$MCVjm?8R;g`4W)^O2G_qCqvPH2=t@3@5U zT5>f=5GbJtjvuxdJkFHS;z_2yXW=X+%VwL2RD<{GYW1FC**i zMra)K9F}Y!>Vps}7d|B+LGW~F7dj;@EbQjku)$1^CpLf1TIiiY)Xn~28uD&)Z}IaA zj2TO!v`O9R_T*XpIR7+cO?e1U1`i`i2Isa6pM0cwiv71Ezb^{>*+lY?z+~SPdG8KU zlIYiZ56eqXMi@M`y+AiTuejX^lN9$G@-uS#nH@sx)3g0n8|%?f#@3_Y6BoBVKfh_5 z2Ke;D4_XB@pdsm+q-{ZJ`Su02i=eQ${idd-)Ofhr*$0|O2#HjUlpPZbR37p(uoV(M zg+y?|OY$^wNUr?$JJp`_T&OO8;gTPoiFeBQa1ayzCbMRJ4{D<5NSE*#cqr)FZQ*n2Wh>?c*4j~QAsw8E?gOU|1h^zJqo!s)3Kl!cU z@#~lM6Y0%;|2uvV*65bwJus{#3T;3k$yis>YL_mh;gI01q-cGOTPA431;>h4EAu%J zxm}1vT8M8yTUY67Jv;ww!+nH*6{ThiH&FfY{^_cC|H*^*U&!z>mK|F5HNr8abJ3YK ztBfks>uPUaKKQygUO`C1k%HyTul=4a%e|s}bobcqWb`wVz-fj5s_Sw%Q;n{(*0suR@l93J zWiQ4J`L=p_E9r|spKhMsRu^x?Mv~}x2386y1#%4Yi zUX5#)Nhoh6qy!;UeRwqxwAF}J*m^X$q1w{j!g}28NL~zv7%O`tVgHekJRV(nky$oP zWvOp{D2(j`wo>b+{`l_>KMA91+Hc=;=zpXGFZ~vkj+bbJO#0s>rUVmpBNG*W4=Z`yWq zv5^O?crkpP4WZdaolpbog3v@}Vw6EuRwsPO&R>FUED z_?4A^{-O7;{NBO>ujvK@#{zPcy1;vme6k`Fb}6Mg72j2bFg^UoVyt2_0tj3!$lz7p z6BK}s8D2MdGDgE?P(;Jg*#DK0-kh8-Z;IT+@B`8@l4n^2vHvBYYO*0?}gnR654~2W6lHu%uuraQ`(g%7zIa~IBgHOs*wXC`Y;=ajBD=9{QEuV4DoZ)x@F6KCot z4Ft7nDt@v8GDwOuH6z5rUVN;1Jl!7(w+Vp8wu6Gsq1Rh{yg+h&8}bfpO^{^UvMswU z7mt|&m=GWV=LYIdh_}a7rDLWlrLPcj#`|o$CEGdPU&-?fE%8z=^i?oNhXp*%J89i> zx`Dg=;$!tylIp;4tJ=713_5r-ywA_TqX8XDG@3>f5wv^P?PV)ebPX?Bw<ow80Azm{96BOon9E-*) zvc~=UO!J?-c{B6WlTg$N$>EuVj27E(&Ral(6=2&Ilg@}J>y&S+g@4L8<4aUf;vDjK z3(r`(tuE2Z=RQ$AVI26vnUE@K#{<~3frGGkXvvwA;;DIq8X)Y`)0UXR<&W_K-C-Hu zK{zbW@s6%x3}GWu4YmsYoxIF1BtHfAX)xtksVus?vS=o1bEp4ubT)18YrgHEe|+oA zfBhxrzt_f8cv2QjA`~}epJGEz_m=19H_EXRjtBdQmh2MC@|-Z1iL0F9j2t(+A-)b`L7Kt{>nf*lxDx9N;j zcT}xbbv3HHqYX1Nqiqu#s>y1@sF@$t*LgPA(--s#ZLLR(LtWpnOAl`*y^+Df{>%IH zwc8J9fCxH%P|waDMdS40!xA=SK)H_>6exfXv=8AS7HsTeut8F+3}B<3uQAOgJy72+ znu%KTcZ@zdeWY+S2%V}1_T4x(D&rWZbmN()Y@H1-Pzg<``(3DrRZ$_{{ttd*@E_LZ zYrIp8O^%bkr8oFF73Poa|Bx4@D8_QwCzI5;P?WOewPY5BIq4xxpt$#YrSmpiU%8mN zL}n-R-?iV6AJMFLEvSF>uAgd+mEMG!dHr|y-mHAShRf3s4qLL(1>yz*Mg{5EqySn?~_93ES~TF&5Ed$;EQ8J#3N)X(eBKL+7o_Kj1@5fE zj)h;3#j_ep6&`70Xsy>JpfIPF?ZL8Hdg4rT5miy)%}{VdYs)$XMihXK>sR$tXUqmSUXX`3;oeJP$5=O7uT&rLb#E{ z`5n8)^E3X8f^2io&o;%xV6$kxi3=mO#=T#u!QRno=e4KIqc))`6J9AXi2&KwNSs1U zcP@*tM#K?lsfFSeaY7Pckxgz;?ZkDq;!?EjQKE$Ug;<4wsyvu90T$VXTBYBUUl`u; zj=$ept%oZ#f8QUBKCQv$uk-*)z7hIP&~PFaih)PdNVVLo*B_W}JzQm<;ZT)>n!!X> z4@aY3ceJ=#SHr41qJsS+?sI*u9+ktvsM|E7N%nM*ni&oT6+r6{UJmY|VbjU%HTc?@ zFu~ADCiMo4(0;N|o`3N3RjV-4cf9GXn5!Y?Er3R90}F4JYa0&y;^iNz2_PjX$g=M< z%RHO(-Pq8nJhSDVTEDO3EpUr<7+;QJz^%@f1IT+E?fxoVRka#bP zyc-=9y74=UpV}5o*AV4Z22wG~e{Eo`A9rh`xs|^w!%Mh?OJ$iNU;8G@H}A+>+1dBq z_c1#MvKV92R#8m=*R5-}+U|wA{rqMgKk4?s=Z23<&%hIuS^7&9B0=04*lJMgBNJN@ z>Uj~;bvyP2xvjb^!uj2F*-6pOMykW}sLRNq$K$zEDE^L3hJ1frL>BO=7-JV;o$o-# zBXY-kuz_k==dngpSX!MP_2(ZOolDz`VyV+pQ?&m4r!P7G-MCUd-ra-+!H6d{-EO%f zzZu5gu)t$X{iVNw$cvz)u?2tRcxx~c@oc`Ki@PP&g&t2 zF1q!ZrduyJyV-+*qI<)ePw3O9kDF_^lRmZem;efZh{FcT(c#b-QI@0%z~ObK0qt&?ko<`2z40h_* zwni9=GHHpouO&rSgp;P))%m%^Ur_!U2bOB@U#RBP}Cpd+){D< zaeo^B9F$p48hHedd-~%QrEkd^n2}14X`6Yi-k**Stoi@$z5jcwIX7(1 zZvM8nc3y6YSd;*K@?o6DvQXv1YiogZ%Gzff*ibI-(uh|Nkqa3N*P>gJFgRtl=p6tD zav=aVSdVJ>x4B1~OMm*2!6*O2FRuL3``*3sPfy-A{Iv_`n&S)C^cjRY(U-AdzZLdc zT%Kz_^Y9m{|MXVU5cHrRYBI9p+_a(1KS1JT-wPxHN0&-mRzR0#9#1J1x<5r zO7b$6c^ogX{*5-G0{Di@yF@2PJ`>7NkSjR`PaocA_s2!pgxUY4w{Lom207*_47H<2 z33J&{{|rscPlMmqx*=)ABZtu#}=A8F#S_aLHS&h@vy0@mo)fa8CVbx z#vDB95;rUhFIZwsZchKj=#dw`BF4?%amNc#@Q_doL&ZLdLWtsIYUH^ymg&(2m4z?y{EMv!%L`^3so6g4s^jpPaQG{JuwwEH&k z43v8Lwp)tLpg;EKl4|cU(O-1wcJPVsUu#sh_2Z0Derfi-?^X{#MsXGt7`$t&$l#y+ z-scBkEtBtbfcb`8L`4t7pyj!ZjS{_-Sielrn9(J zlfWeusIt1^)!`*Iy|u5(xskfw&$CV4ta-ZE&5LHBB@d6~agKahnQJJG0!I)Je{ipW z>a<2>6e{lf;Nbq-UoiRd{-m1m?S9)mZ>M+v^3RirteT-u!f;o{eW%GA;oY+)<8>IK zupoMcCdpZBZIb(-y-5yH^j5!y)eHH&5hJVgSzz!x>g+!EtEc6ZL^2a~%v9DeeruKlaJG*+1C_`pXH;w|_Snwz`#W^8c%FRQfknpGy z0PE+9S2xEuS(^~X0>wH*T3jKll6lPvHcJ`Z$(ufs!v+=0E7MFZu^p%w*5@XNdYM>W zfzSW!B^Ka39{B&$r}vnHIPoj^b!s1IYmtiKLOf;#P_#xBI2J;HQ>)<1jw-IE%euCCYGG%_v7y%B_Bx+;-%Q~-n{GsZJ#~(IxR=?$y4;QuT z4ipqE)x*)7a3EoFWtp8{puE*Co>Z>X*ooybY^D4-0w{rBB&b2&$W;my$p>8xGJ5`+ zuK)a_ps>zQO6`u!dQx`YR&Ls|Jx_8v>|L>Lc6I5xUR`(^?2OK{qAbx23DvPezKOPp z>bWDXP}qy_D%WMk-U-REAjw&lL~qQL5>{ZaR`7R?gh#O`E1MqcFjX-SW~nUiHr9Br zb>8nw*i^|LICkBd<>92{WfY9gV#!8gTbB*DMBZ-jxM(V;Xn!@L8|1D zk1FpxHdMLchGJ@BTD25s?`vWK2i`9zAtlUmdJasNy_r3m#g%%`ql;{E%GJX*$M-RT$IiTXz8e7n9uWw)6Jl zHVxWKEaAw<;Lqq6z6y%mNw|~)A<~aC8}iA?nQU8nj)xz9z%?gYYJ$bh*k|jm?@Z3t zO&m2li@CACuypNcMY7TCiTX??%qtQvEMO=Xc3&{gu#1iL=CHF3<`34~n{F@0!s1So z7nZSe{7P*S@oj=7N!dpGQINd*BwcG!defLC_wtj?na3ZjpU4mzrxIR&0E;>svNLeR zwh;DS)a;39hK9;v-kGoR&2=^39aSq&td0s(H8<|wT6b@x1{T4cy&d(nvn19*#5b>8 zUal)WsHwlPdMdAKcstZ^RDt28Xv$I16eE&CXU(7}vLR2|AwNl}_RHGxPzsxIyB_*n zeP7ykSfwW?C&#p3H`c;>m%J+z`pkW=9C%b=o~y*rHm=x!(hNBoSrm!6dueTn)mwEd z#YHV0e+&xP!J=V&2;RH9uwi=Uq z6io0E_;;mZ2&Gx?BGML%$!sDC@-;GBGiduQ`IdBFYhiCaM|Tm5ifpU@>^{jeZmT=I z?b&ljt39m1FF$>`VQ;OGiAv&ORvog1K>6Kt@!~f2`1c;SxX+_tf}7swX*Iz;J;@97 zWR_=>3=1atBKDnM?EIMEOHAQ+P0b{?V1gH>J}ZI~+zWl~iXL}G7w2V((B((l;m;ig z8yyCyI#e7a3w!UnFJjU~2~b2@Bc&ks8; zY`XZ)rirh&sdd9=<4pB!F)q()&GD|?>z>>SY!T!VSYL=zWhBiJRGbJmVpX6KU4Xp> z#L5t;W;>nT&E?C-HR@ly;r0XkLLCfh4jzQ(LV$%ncI+r($u*)T03J{zIL>?(0Ef$g zZt2a3jSZ(d6u^d!O-H^4{zl<4C}Yr9*oUkU^1Z^1M>Iy6FCeemO+=5 zK%|_2cC?XP4XGe*!(O0p<~C;qfBV9I1X^b9hY$Vx!G{*c@-_aacl<+Mzn|~BGrYIw zzq>Jc6mcxY@s!Sg<;UOJ=N_KtIGb4PJQv>W4^U(K#rfa5Zqze;BmD0_^RAz4QQl&E z-FHoV=j62NlO>>#+zb}txyW{96Wr|4I8T)6E<=eBeI<+=#^z(9-+67Ybhlt+bN$YX zf>2f)VR;fy$EZPZNrg})6o_<2yd0tFO4i>C=jyq?{PghDU$S@Ni=SSd{mV~}PJQ7s zqc1-Bh@P9jiaH%e3QHP!*)_W?Ghti9IZzLS^+(Cc&SJW$)zFAH2RkO? z3AThVY(PQCtTatE95Q+x@@Fm7%9-gj9c4Wks3n6jiLp6cT{I2*L#_>LfOW~sK%E%c zaY0fTw%@QzTMFn|nmfBH6wv6ueLr+i-jDkJG%3LN(qU8Bo^_z{Lyjs7ag~^~C>nxJ zsjF2u4TR`cSx#!!XH0D=`b_=A>8cg`DnKI&wa5bFlxP#6Y@B5B7L@Ct$jINPS;0*Q zIa{tbY}=J>HlQa_rXzJCjL_FgBDnFNjit4P?A-HLiWb`x@(mW*dm!=p#wTj}kPEYR zR<%__XTW#99J-anW;ykKn3)Qa%^ArN)N>~J0Pboa`;E7c3 zc%E95&$7V%73{%DU%01i)weeHzU&YxpWCD540ny?w75h&7z-Mk97bXlz`-`8#@09l zwJjKD*#834gYwB|TX&3yO-VjUYO(R4$Qn=FH_6N1kqw1Ng@3T_<5?iL;XB5F#_VV7 zKQj(sSdgLF-J%DD2*GB^YZwbAHf-o}#D>AD&KK&U*Q-X?*+TfFEnEd)G4};(zOYKo z#i>2ujc)dDJ+8m7dcHyE!8zJppI=xI5VD~=s8_R5opt(E2Cy+xS52qkbEDXquBs{* z;j6{vtEEjI0Nwvb!_PNWJ6Gd7-uzaTD7rDGS4GFV39bR#C$YcQD5;71W7aA?nbf=s zL&nqF0$^k=(EuS;c(&`)+s5mw029nQzZ0d;)ZfGS%r?m)yLQWx^>Mt8T4o)o>uxH! zw(qyrdkQ2}ROl(pf31TOq1MmQ5F8-k3M7TINEUmnWt+EWo6~(Ce)u7i9!cIZALoPr zEqQl+<3fbu^R;(%*Gpd3YSX3jdV$*jraFXEu))G~_-{nd_ZX%1*!j}qBPaOA7*sHT zFaQnwt~6p!r}zrfd?!=vu|S9?e+REaHpS}Na_q;)b6bFt8JGZo zs0kiOeE~8`^|;vrZn!tQ++?BkzH*^yg;wm{d*@d)|NS$gF>n^=37Ln_Jk;u&Zl5+x zZ%}=^!f6ztvg%;tpL^z3|Mg0;ggK;wR1Nagwacwu%A3wjYYrMG`P@G7Ir>dbk6b75 zG8#+e47XBl>u4e5NI*t+0+3M8P1m|!8t9#@^dCR?aeeQ-q-PmW+;hz4THuB6j>v_N zNNXfS%2+@lDBm07lW0N9xFjhW%2IUN?~gH3vEf#v=JuXYw!Vh7ZSKEwm&CCHY@lj5 zDvq0>X5q{C(Y3{ghfBStTdwG8b)}JXZ`=>=O%;42T3CUQ6kZ7hY0i%3oMkmDka_09 zrn1V0QYlwwL)U-&JFCB)hK$2d`2Ts=uRxy0*-X(`Gp0WT!%Uq2ey)$re-#qMsXgY} z$NAr59i%XJ?O1Jr3cC*5QDM~j^3#nMH~%kOI8Q(G&VSb03;7y<^>6n7YL>YWDye4% zeGj?#LL(^j^FpfOJPnzXr{YE97O+taHWFUrfo;i?BuFHKwL2kKgB?=Ho6$BOB1aOo zBxC~&WC9G>;$0z+!mhz;=z&3&*{~-86Ag+|@>+}+K!gAk-p438rUHOK4ke$1JsU$M zIT?Dyo*F48YN)CuT#9UH6mpo#tf+K7Vx+)hNofQb){JQD!KkPU2DJbg#ug87bEq%% zGBnSnraP&d;gp{4&*&Qv=irjRPko`0a4GZ?@-pDbvmoQRc=lx6BY)|LTWJ*0GuaT< z+n$Bcsbo7MQ`fxV2ltsTKEX1ud)aidDai_l>=_I?x@Lz)0Zur!zQW7J(x?W7+#?S( zPh!$}h9XQlSou$W?$3-9%ig0)&K(~uLC!tr?J*%xz(gA~ipa1vU8TzDZ7(QqyY!g8 zOb80mk`C4=hn2T8fN`zgdyJ zcTelIv^cLX^P+o|1yqINR2djNFlREMXca0-xl8^5g`{@h8IKi6_rV z!0*mw>uw@Zql{NvREstboAru;Xg~^kp~HBLDY5tEB7AZfyp_xM1pWX?1wtth;h)Xi z&@L>9@CB<(kpuZEyxV`}ww?Ppy0d+Rf?cq+i6hs3fA?!%+iExHY#;dC=&aQKFf`(h z6>A69?QGL9u4+5G*v|m14hGPz1S-naLUu|yBaV_oMNls{u5+&9!bxB&>ZJg zck9-DYU|bmj28DbFWgAkM?X1h_P>0>EOGA)udwcxuPVc8o|-5tgoyG=n}bY}t;1|n zftL#4He;|su=I}3J~%pY$BW8W`>VX>HLs%&9DAReis5$2q(&{fEF}-qJ@kZDvlW^| zX3d!N8z^oYw~VrZhspxHVn$4c-rC~%MAzHgRJF51nX!htS);t&B6_SSZCDtI>u1gd zt54(az{b>rJ2SJts|HbO>q_`!p(pZ+Ao)?{g`x@bA?}mIXeE*=Z;NGWdt<%qzwxghgOPA&fQN8~=949eZ1CT6nstZ`oUHM*K4G zE%d0|oQhBlHzTP_Kv2}!8xA7^Y@Zf#D(#*|j7d^?R6Y?f5icDSeHK^NYKka4P+S9K znG7LP;^j6X_mOLsm10cMssp`d`i88ZwtL&Q9rkv=%=vE_v|_ZBHK=zx3RQe~Zu*4z z7*61Wt=iWRgp%1_6i#4EBi^uMDC^jn02*{8tWK(~M(p_VS@v4oE;$t*Eb!~FQe)F8 z8UyId3G48owjsyrDE}u_k6GJ7F~4KS&YFV<7uDN09%RqP2?OZKN|~CRqU_4>lA&%! z^OqRKPER(Iy`1W$6;(v(c>G*Up&8z zQVE!~3$CyG6Uugwmw~MTVo&2Aw4X{&)3Oe$IRAZj+nwY5Pvm)e1M=O+@B65PhkegI ze>Yrt$F125U-jnBQ=k0M=zf`l;H4$YDxf7XT*d>s)VR8*{*A_q;sdNz zSBs8@5N)Yo&I5%-dH$DX|63wLB2klpsz6??l2IBC&PjaoBRzbTigpmriN$tnK?RvdNKks;N26Z zDQrjNf2EE%^r-&J-VAKdD$qF0odGMth2tc78ueh0?&Rm#7PLiISBFif%iY`vp(r9} zrIMp87>3a%FCIb&noW0ba51@d7MqJWN82El6B|o!Ts&aztQ{@3(jTC5X-m134 zDo;`r1^Nn}H`{czP#?fBk7+c_@EiiymS2G-A1Bl#fZMWua2p1NT=C-u0T!o6j1X7IpF%)#ZCbC5uVuN3ZaOeU;yDElbz=hwHPTvSV>yTUHRM3n5Hr zs3BEeaf`O}D4uUROSa?IQJaS~yx#RfODRB=zY z%javb!B_AY@GfFqk?>5oV7r})Z7tQPF4@vj*JWQfn>rKCQ`gI;9#ne!4Ff%7kb%$x zVO-gNl+w@wX9=WZ_fk;0?_oi+pMeK0Lx`SN-7QFzn#@*cRb_)ATekUHosuQ3NW&4! z@sd>=6s}|!FbQ4bg-4r5Q=qZ;jypj$46mW>0hJ^glJTl>=ov#H=3Au;p7D!m!~#iA z`Yp5h5BvhxDEL`T2$^amTKAa)r~EVVT6xf8BK4^IJGK;q){@)DHdEBx)=}*6g8_cWXXDQ{Wx6Pxc3JD9J3+lo8LbSJBqescMl}^%ne~9p+_s`GjMf=+ShkhJ zj*5y~Frq?RM)zg{;iY$BmP6%@8YSmG{fEQPZoW}%-?b;^YrLJ6@Q2SlU_SKW-=-F{ z3iIFB!Uzb=uayEQj5fiVV**~V<1nrZ#)WOiRX48xCOLh4w!ykVlmd=0j>)8BMz!{J zfLhM`Yw!Kv4C^T>jpBIzOUhTD{=9zpsq^(!2hX)|mWwi8aECUTsWX(sLYT8qglozz zUqL1czV~cPv9=6aNF!7ma#_Ss=M*I%+bWPCA>ph7+66)IJv6XUfcK}ddV$!Ab1uEMc&KMM^ z^dW*^X}czOU~A3TUO39H!#>|h(b|Rf8MkLGbjrIk@fj65ag&o*&YNa9Be9Jm*x=c3 z0D3qjlwEn_Dd1396D}=A_^t3Mn>b`>t=o^ti_RdRqxDRA9l#HIcf2||#ymB%Ip3y) zrWKX0C1k3D90RtTmF(Uq0Wx?5b>P+5c5|@_l`Yfb;US?Qbp18GQ{0PdlUjt5@8hC; zU`$~?_dxRyqjDQdXbK6PLe)sNjf{*ap~mHHG}XeQURqvgvrqXd;o;s>MZKkPm}Ea+ zNnHL8KGF3hM1qExu$>m3a$-g=PX8f=i|s+ua~n^X^Ro+0 z!+?c-jZI!pG+ouH5er(d6&WwXE?p9rZ!Iog>rQU!2ToLv4pwR2-vh#@_Uzefd_Snr z2;&v{6m-}mY~z%8@=CuCWpWC%HKDcUjNNq5;+CNcpAO| zn@L@#)=^^>sv}nZq4oyyHBO&65GZfYk)`IJ+PzIesCZqKd<}$AEz~w99xPNtmcv@Y zr?eDJLui=D<^qLU9Q7^Id)a`A!fOB(e0>xSLj=dj2$iX)%cJV!9~}M3IOXj>`H`Pe zJ9g{}vc*JQ-=qedVB#dFPiSA8h5Qkwt)bAEJof#ijnkIG)Aka?o;nyv&a*D4D#Y^79)+f2gri<~_NlCxoT&PLlhFS72|uC|57+MA6eTo_?*bvESZ zHN;wseI&0!)xsLZyGqmn?={M#qPGzmXIA}3S&mmW>hO!7cqN1gjr|>UF|e+yV$^7a z*=2mpNK1$m-cdNW!|QG{#M-MxU+%FlwH%5wMC;MKzK$TTVJ$C!40tkboZiY_!t<74 zij9xZztJ}c5wu}~c0;(7r?X8!hP;2d-VAKdYL14t?qU;{GCk57ofTp=wL}k~ z>Z8rw6!(y-&px;|Peb^nQ*tLx&l#^iH9S0hqSexFEO>0M8YXCA> zVb;dx7$6TpIS{h@&SH0Z?1|6a@A5OoHzy0?FaG*5Sum(y#@xxMK22!m*)VwE^9ZA9 zBw-2fP(U$|O>PSTVSp=Ng_VubS1+;$B-swU^c4YOwHFUN)4jJKG?1JnBnC&E>a&q5DL;>BPwC&}P@U!3oT2gDx-2CEAfpLG30EyXH6D{Y%Y^vsK% zRqoAeU-O1myRKa^kFxb>Bn5kf&MtF;+*%coQU&{WqijYVV3p2AF@t`V?YOOMg^FO2 zUtC^HQND{u*It?S@u~KHl+7cdXqgOZwm%*p@7QzaSb;t>Joiv_0nZph&%eNrh}d5& zN)6&RX{MGWup!^dYNJPsJ2a}}B6(6k#^JC+823u7a;2*@DkC|dafqQT|>d!AviMpZ79r_)KdT7 z#MYYs<{9U|HT-}dO8dUD(j!=i168}38!L3ihMNr}!8uYNPnf%%QV4&9fDf}y&W}HJ z`VA#AIM)1;zmoOS|DGCz?5}FQF31v)p%H|Jv;}s^`m(afY+;Yam81| z-c(|-pv2>N#61wn*|>aM9Xw*c2QB|}zc$w{*XGn0&a-v6hR!0^V!8q0t!zOaP3Xe( znm~DLx>7U^HNsR`Hi%vUNhuUa1l~wOxRi0vh00$HHmK{T6v$m{K|gk@FU;3V$A5qD zzIMLG4E>9r`q?p=8FK?o>zAYh*PZ`%FZs!7P(&%Cm^V^5`x(V&uHt$|T5wxnOhK&=#T01bD#X4^V-Ze9l}x1{(-RyjG5Q?PfCxra% z;!uMSS7u>xUZtTx*lv1Wx$U997_JC$ta$%$q_)By#A9N;H=P@A&TmQY6`&;uV4oo3 zmwMYM-!|n;5J_aDeM6ha*`}^tVbGw3Z3=>j2coJ9l~?F6Ti*tpts1$@VtM2xt2p;y z{lG1Ii*O<+;lJ?icUobhq5zOPbNxnsF>z)H<5()j`p=yF{Qa#pWoARRb$WxETv)IP z@K8{Yh$Vd{I=fI&cDCNsX@!}ce&m6mpr_h9QS|KCt~AjEAFLrMDzci>cp~`uGxaPO zYqc;m5b|woZU&-%Y9Z~E$)RDG&r6X&!jy+7Nk0AN?d`BBDJpTG9O*fg$SEzg@vEJ#@hfqxgp87(V`SjAW%p;!qjl@$33n>hdiruEML zMt!wr*XY4L=GZBoZAT6PXnYx)4JEK49unq=m}S~edkniKOn-RARKtnJWNgPPyN#+F zIEUF9R5ZN8)~aTqoWn89?d3LKyKFArvNxW6@1DJ>*5C&gQEG(qpxY()D`g2pJQ(-* zIGn-gmX$ON14%Z8er2zhv&Qb@b{mPP^#$MbGpX1_PSv9*D{On+gZ9k|ar7qMkym5d z_P?a3i9&dnopgyc$DCiSdA<(rZleciIi) zhA7x1k%bZ?>4zT*UMQ!9gn%j6q99MA%hCiHN1i#($NMYm0rOPX|Fv%y zF3$OJ|6iQ{aThMkwXVZf-yX~RObVCPWQ&c;R6rpkTYJ%#7g!Hg z5+##RIbj==%+NA&-o|#=OVnFk1ff|+FG1)rs;OrZveK|6s+8E$9BB$+L+sR$o;ZJ= zmPeP&p+g7SPVTSsrc|QqDuj`e)ciVhXdfLzQY_2AjR#Js6DJT}(l^AG;Qf>5viXO0 z(ejoHdTF7^^8O91+_5E|o4GJtqO3DbMLkdwRLvF_uqoqSkwBD{;EP5+I5b`c5~Y?J z*3!+A9*;`lhK&uGl4>p3nmT**f#&?fU#LFz{JY8!2F(UT_H6t#{o*gb(`)+PYiYtT z3iCfmF#D$n#`xSEf>30IZ8~55;VMf*GQHlEhCg~qmuL_a=0DL`$fiBY{+5PwDlcc> z|AAjOY|dGp^02i$sRdEm~M)TbZ#TyvJJdsd>@1tUmYsPIH)PWB)wrq%90l-8)}sc1{4x}#)qS(FhyRwJA$R$ zEdLXRr0f`>l%lHBbc%t=yPc+j z52dFiq>5co-~q58~i?kSL`e|MKVIvkEl4-gWfoAv%7X6sY66P&Y5I$CSMq*_8Eapz9It zSSkjstUd`foWeZS&E>h~fi}PNx2qH06A`D9jq@dypl@$ywDvpaJ+OxbRREN&_cPG= z?$G9~JJt5npI1*9WeY+mNoTX+&Y9H!xVcnrxv^a(_au8Xys6M$yk)!cSN39DnYfpS z9rE45G0Xguk5muB;(?(iiIAB>6>w1K)DlCek?RbftuV&tyuegXoYgJU7d#|0)6;5U zaUmLA{lf|RGKB>uW! zLrMfHs53CTsU2&5^5p%>A&s;hPQi=P(*GgVLQK@3OjK%ESzpW2_2B2LM}*ZwT+~YJ z?+^l2Q|r9QbzT>!KEf+Aax`4Zuo#ka!I+(%nV>bB*X>AoW!Y)!j(8z-=BPrc~sBU;AWj-V{-IHk4e(gI>2Qc_ng8>9SLV{!1H*34)>~ z4}DcDNW`T19w2+AS0!GVWRsY2X`)@7`F@5&IzNEdK$t0Z`2DlIU^-3vu(M{`J1WH$K zT^bnNd1h4+T~sO`vf`bnCTzJ@gg~JK2Z*lu0ridA+H%nxVFSw%QnN>9&Hf`|Xi@O& zZln|0Mpn+Q-9D?XPVY0D;fwF>pnQ1AJiYLcDR!2oxxPvF*rwK?@J5wMu7;jOCFV{u zC39YKC3na~GVZS4kUW4}u&qz4AwNzZ-zEYM|3BP4h_T~8RuYPLFP5EtGwq=1G z=I!_VJ^I9bAEgr~KjWc%J@l0Ycy z$A?AWVOq<@XDFBlIU)RG%}ZY=FWB#2nJ$u!kr{4E%dP=;a$Y7vASUNpr}oUm*klt8|%3(h-lb!`&P4X zoy;``8KZ7(rk8e0_}?kM6Av^-5jUOOle53{rBj3DwF4FhlbYUbawPH!t#gTr`2 z$EBV|bEc9wvdQkGpfq%NCBCjg07lhhHLSQwA_<_p=x3n0^{cMe`=S6;e%ZBC!3tpG z9oKGUaTDRR)NzR0jW-p$_%|@=lq?ZC5*8$(LGoRPkMG=iN3p#-L7_ky7T(XE{EYDq za&oR`cU}2Xd4<5Wf^3Vz+Uo>@x$C8`Xtn3U6M9ZUrG#w-j8m*K*99p;3@2&7Iuhg6z&(pXqznR-rqCz;& z`mRB~h5{93-oZQXQp{{BTJ)F?q2IkFOrx=LM?=Jyhz?upH3?cG-(XV|9am@P>h&+qi1r zJ3Ok6Mtj7UxjC&%^a#Xk?%Zj^2Ee}!iwR;ubIGY@P4IoRh!+Nf_W-^4q#*y4_$~Zl&S-6?@XYe)yT%@jG?#;isEL{ z>$+}C^+Ss0sHm+von0mCaqAM~#ss2VkZ3CfChF2qC&8@?3n+vq7FZPNMvV;mCTzw; zHR1^J*jPzHth!AOchsMZdyqG>`65XO%7)8irn=f}n!Hoj!x>@s=@io}ohKR;OIxmN zZpKK$Tsk&~4xdSjej`CUNa$^_Cgl=(3RAgwt!=Fhp}LhOVwolJB;e*zx&O! z=7oud68BUVmgdb*{M0{aJuBpEy#Bj--vLaZY~EOA-4-ycYRS<6oDgP8vg1t-L>yI4 zQij7uO-GO+!B-^sp%L0;2?z!iamCKuyzWviIs?L+v^<-t;kBhIGcoa1$fcmHkQeG* zU_azf;yGfU3Sm(VXlk|8!zhrK!^fz4q8i{^Ro1JcRSA>Q!*;BP3>&W-ktHcJ{(^4NHR-GiN`trF_@(XSSkA%5 z8`Vt!7NQ_43oxA0T=FsU{f)cwHAUwFprO`+PtNHaOg|>Bv_caVx{0>~cYRAsxqyIq zoL#6&=xmJ$AjAk7gso^BFGvzIm`QSOBY!Ia8&@vqN7HlNb=NC`#PN%TYAI6W#@P6x z5$#*9-D~=6>&|Q^YK{PeX{n}5@|hoD3FqWgc^? zw1mw8)EC++E*kdx@kqWXP$a4JEwmSN`-O}%=`=}77yRhLxH88& z74}_^dNxr6;+dgi^i7P*5h~hq>9TD(^x#+Lm zmV;Iq0s!{s|H|ioGPcL&e_WlsKA*}A3VjoSR@_3)+xRN4?U%}VNV4(a80Vf!WZIZ< zB8+{d#^-@=pGiQ+I-AXRLmm>qK2j2DRj#w&7MP&UBUEWt9XfRQ8P4|g-NLfs`T`2q z?0$cf$0Uw@=jj8j#MyKF-@Me z*D?$ret4FC;obkb^}KG_oZa%8xAeco2(^?%mI&z3mR;5s^0Re+gv&{!OR(J_d@4@{ zvyka&%NCV4!T=@7;;5t7m0TJlwKece3IPi2Y#Je9yKYR?L$z)I2{URs01pf{03C0$JLX9lv(Xr4jF zH9a$-^@6UO?lxOca&eyfc;^MWcBL_sY=OMmKVy)q2~rrkOd5ds;K7)eaqqp{FAS`mMy#(WTrMn1NNjGvoMgIC zsBeB=etX)UNB6aoJ?La%t7CCMtwzW z5usBPmN;x*{L~%|#+4-`QH}WjAu^{Vd&-o=cosoinImzKSh-995t7-{^G;38Pztu( z;uqFPwGP;zV7b=mcR@E@U$L=^CXqp7=eMoS+yV%zTb`{I&v|J5*w*SNcSdrd3_;n8ZBl9Mj_N`3p~3(q^r`e`d}5pcM5BS^=ubpD4HubKbk##I>e;n^A&P#eai5NM=Z z$(CNfm>~Wp^9A}cTdXh1t59nnpI?_uSQB-8mg#dfrZuKb5^O{COyk}5Sr+WwdG14{ z651*D8PCjwzyPtnT91PHW`GUTnjwBWf*Ko^?$ax0a~nyNH=7)eVtzZUw|5n6KPcpP z-5^3EYx>O+z=p5`b()+(Mg=EEVRaj!@Rvd3tmnB^Xrb%C7-oq-vbqt_L9)*CT2Rk^ zcJRpgN9s?f%|yP&_uTV+Dz1X|mi+JxQ5}?cB%+oS*MIUSaL+vIEJ2*5OS4jOk+6F? zcFO44^G$4lSPI_E&{`E$qhJ;ZZG8W|?=|Ck#{QR=Z+O9h;x-E~#AOGoQ4Tk@*4DFO zgvbI;3*^-zKijV7B2qO;p7@~%linKx$?J`=QC`E z%8{~|d^D&{jfk9)ByyX;6eWfBTw*u79wo_p#P7j5 zagtpYJ)@VKrkNg2vF5^Fj3Ix;Aa|1_eQz^c7Pn~+GT_PZ>{5tAw3{u+=ZaGro0nlJ z@A1h}NtdcbrTt(gfl_~S2Xq++He;> zw0ZiXX@^hUh47-JPfVgT%SBCe(Q9=Q$tbXuh{m3|L1#%gJ1uAW$STb}FNXiEaBtR)F@VwuJ3r~!JGwM9= zg$4JS=_)DU)^t!gmybf|S!c(s*;s|`*#s{5#n&rMls-dfDv_cy3d|4^hfuSfV=P@? zxPSDBWQ#Rm_CV1)>mn^OJH|iYhjG zYgwd~SoRK^S-4l(D6rwOP1=O_v5?TIt^gfr3p_$f*!v|0jimT5kHk?NbJ%?Nl!y03 z)B==RyD-C+j5BKmo=QKB|E%SuYzZth#g<&e2C^w+_k%cL9sRw1elvaz<>zcLP*7MM z?S3jf%zVkyYaKawVdb^;dB(P^)u3bx>Z-rGOQ?=YgY!eEXsPrTdbgMdW6Lv{pha0g zY9)CU8i$m8&gTc&@1aW1VYe{Oogu~xmN1UVw=Do` zA{BwF8G{&Y@cXac^*_6Ou(*Be8+&h=p2;UY6O~dHaDXOH{x!MsfTL+5!MVuXT#`Cu zT45}*Ia|1g^KKzPQ1pbtz5`?wokAGHOl3V$x-O(zx2nrZDs*eqzhE#?H5JO(j_L;S zRYFZGx@!eMflw$g_t^K50~4S`&UzgI7tNqs!<&&Ua*J85g9jsJJYkrX4`h>b9}!hO}SOHpSwZjmS2lV|Hz_!O-34oy?C==;g! zRuMa}!-!WzCRqYi_y&pGpJ_FBi}v2JuhovzpXd9|t#u<4&Syr{4N0FEZ?R_p!qcQ;z1i_W zH#K)4*gfmzMSZc=Z+E{z+T-Ko$Cmr#lNAU_yTdJc;q&qP{&TCXTelZmkeh*iLw}*K zl(u1KTX&W%kH+y&{1Le}_#`umB5JH>+B-B?@TNNpHNczmd%%SvPg$(9W1P2N7F+*1Mb7Qp)oHzAc!tQd71Y!cM??V-EB{OrbDw{%UfJ|t zwy!}!8VeJtRHxR$Y9gL~Z+X-0Ly{-s|F`XM7EI&Kk*)a?+w1;F!-x{g<1-JHV01u4 z!k9%oK2K+kw9iS68x2y0!iDA}sz}U<@a+g^j6f;riqL*a?!`Yl@^dp$kjIqeDE$)! zS^9&F2M%G+HS$kIAkmut=Bu3lCddKX7v$k~fIueXZz$WJYTf6BQhi8?1>|>CkzJ1& z50KVZ0utpfgq+3ujnC4~zy!4Vc84BOX`lPeJv(I_b5CQ#Q@u~A&TPN*>P59>^A>{g zzMpI|_SY)IzM9Rp=5SELVEF~sxP1AzIz7E;;BA3HXFo5|_0ldq&jy}8D|?$Jx9Hk= zHju9Y?=SK-GVqSp{5e}S$k$*rqO+oC5F%a+6Qa#Y)!w7QOE-*&jk5I|gx);2c^mR# zFmn8NhQFN}53&8+yZ(PtkT=NA*8KN3M+unqo`Cx{D-dttO%#@A7Z#x&}(!! z@0$4^!E-Bu(rR$g;*av+18hogbb8ceqEY8YF61E)h2 zGHPRKU!{)#dZl?be7do~1M6C$L9D~z!i5NO-3Qg#c(HWp2;x-~*Fv`|jNa^Eyx_-u7{ zjdk8xv7J@V4dNsLkwW-DlGA2V&q7cp#%n`t-H~sDC7yR@g&Fl18EhD_>UD3rJ!@s} zTKAr6#p{x1r1yWBIOF|$BG~2FyI!(RLi4;?LLWd7v4gLMSEF$WM~D#w$C_@e3l`wR z7E)uOg!&P@&xOaDmaFEjmwqexesPM5Nr6vPwOsG4qtH3ai5gF$-?b;(WsL9_%1gqh zGS!)wQWGN9c;3oeNeu2O-JX23IR$T+gqk(J5E2Ut z)vMtx6GB0W(PQD#wf^i3bc>CptJ5JsVx5WSVzZ-?5FU6?4s4(LfQM+!bn&RxQj}PX z*7Pq_2Ej;V<4N-Z+1Czq*fG^-Q(#pu$!B;pPR&{i+~Kb>KcjVhBkokY?Iwb7+pvLw z&Cr&LZ0%gzK9lgSrV%R3wdeC}J3$!?ii%0+LsUw=l|EJF+-TL-V7I24PP^R6Y~#-ezpHH5-u$r;JVuG@PeVWg2TIruqZ z&y5{#+mRO1iWW!mVMwmaU0oqc=6>8=860qSsF1U68QQ=r) zDCTCQ^Iy?dH~$qSp?b=b5V*cckE0lRIc}7Y1+NkM1T88&=**N;=Us=aTd>bRC%=<1 zEhZ*!*zvvK4QSyI_q#tA`4hD-Vbjo!s}xxT!8a)?7aMiP2cT#xDAS z@Bhb+paS0nY7IZ0llkw)y;3S#EQk_7834Ra*MGNK`_rWQ19=jJ2>e4!0-W~{J87e$ z^}uOd|NZ_aPJWtx^WI-??Y3omcIUyj^j;BiHNZ@dL~)_(5>H?*i;=PNAEUd-eNCl; zvXZT`V36-vEAJXybK`W<22)e``x*R+tktr$k=!4m;%UfK4Vum%RRQSkm;{>drkn2)XxpK z&UBwlPZ(`jNV2OD?xRlA;YU1_WZg!H#RBJ7Tj`5KzkZoo@#NPIX|6rR&jC%_A5ucnJWjjbr>6i5COH1QsP& zD)?WX=&oQNcWhQ*h0AR?%i5Z5VO+JoPU5(O+TfIs_QQ7Zvx)FGX6^j8Q^nSRFk`_I znOm5vVUOQ!X@liau97BxT{ZxXoo_v0rZ4R_QyVfhSZ4EDcSY45)Isfrt2CjiI{HtF zkgQeWRR9!jxk@xauZ(&n%c_Iky6XGUE1#}Y^_oW@VN;o7-w{SuDD1XiAJ!J>OII~^ zz0Hp&m3*ca$cW=Ud>8jKZegYbEUkZ`%+(f9-h+{O5-RtzR{1l8PWfe=R7xG2&_h#D z4SiUlSAzY59zqkfZ~wZT5iE~x{_Axu%<&mfxN~>$2t$&-Fzt8c6>__m4&RcW|1H;! zmsO5|F8-!;09BDu%CxT2Qj^l(+;!tIDm4zpTWv9AeYNx7jLm;TG`?meiQ!{sbbn1v zwaS^$U`1bN6m1C^B#6XmQAGoOQ}1S9E=rSff)}++IJGqL!>q)-+l(=4Ete zi5#tkY~N;RBq=|kVBao6MQ#vU(6hD~@)qBt!pei~n0+0zx(f`(pbfox$%d6S8!A09 z&p6`p#zvCEk+ZR~V01O1NBOcDt>^|Ufk^rV*nqWL@-<2qszc7(p4akO=d!-b`fXgX zR^u}15g2^(`rdnyFtHZ{zouPs`aq_ze#9f@K%kj|6YG^ ze}oQHX;@=xs`ybCk5hJV1sSWtj>)pgU;g~N|J9oC_PsAI@7{h(wuw-{kCB=M7w~GZ zaLsZ77kP%-B{+lN5o)qgCUo}BK-M%id@AdrE=HltUa3u9vKPbB&w5~?1{P!>)&|T_ zIi4STE0D0AGk_3(N#+3tgNYu#>(-NHw}RJVz~A#J*lWR{g*_Kt>emR5T5(C=;=z!b z7#c(ZrUskT>Lw|^w>W>vY*{3Y+8Conc8}b!OP^XMy?HYk@nZ0t0l3&X4Q8q1;>p-L z7A|!UDDQ2LClA5d|GrM!bH}5hEV4pJV4`l>uuX5IYlJ)v#D5R!RgE}CxU6y{OJV(0 z68X^ZvGv8rb!(*A#A!QdqXkCP(eS+=ur3DIqzK!666C(Pyr9Mh^7dV#&D--W>3*lr%qn*cN){NWe*`7kJ=h@F$um26Aw5oOJNIaHmZY?t4V!`m1QvP- zA2x8?Br+t1m%6s>fw0=!eXO39Rc9YG=f^!k2k!FMu?>vw%#b?h!3G7E3FRlgyC))- zrxD{Pi;~LQUr^p?B*Y8=jRc_GbX%LD>-3oiC@2g*k&My>E((~SbA;vFTVrgej)RPq zMSbz&t7}^Uf97=MuYz>#iPNHNtIn^e@w_^kI^Ce zdTbIpb%ZTtbEGzJJ15r}PAXLv6Vh0I&al5BI04moe!zj7jB#QbDuZ?*W^Dc^=Qp%w>>C>ID_ZAa$(3#8#|8uvK>C>&X-Uf9 zVjp-F)VM;?0@40ViFaF32zT+|H4F;7kAJfMKFoUK)fcFIrmfS(@iUfnid`BA0Y&K4 z*HZ!d3bq#Rv+R9H42Spq5JI}dQhb`h#+>tNplUdh!yDFRXzOL_FKDw;JZ*GuN+W~{ zmg|0LS%jpzv!%Axp8N(zLt{%fNWo%!_F>S0@)q>inz-ur7zdprfL*3VCW8WSqdx5*g- z&`r+b=lM_k)sz4>oV{+*f4#U$tt;mpXuXA6FF@Y$*+cQOcAJZB&v9u8M# zkCZc#3A(E*e!)^Zg0*#rYk1{Rg-*ONVPAJ0ojR4EDG7F;yWdr{PN1G?I3fH0{`!fuw2wly2>AV-@c1={N{w&N5ujm1Oz&}Q4v2MxU@;Rj zS}GhO5vJR<=+RhSW8pJ)+|sD-JbQB3LIP<%gSWC+KtZW6Y{w1S38dm`?G|7DVmwb{ z*X>|RGF`^YT_PI_blVHcmeM?T;XIu_J!_jVE@)GjpCllLZ%njogR<8bz{7@w=2Q2N z9^saWAQGBZ0ExopWq_wyyQDH&BXXmvKc_S{dMSv61H26vN zCa4uAhXRjbAxW&xE!;X{~^zI|&JC6j)zk}QO*x_T+jP~o@KvlTqb@ripS#et`U zrq<&Jdkz(AQH*&KtjyQrzKdW;5z+zo97CgAf22vQ!RV53HjUl%SVw$q^FOWyrnUb% z$E~5lR+cdX#;8Upv9ZEsnMH3dMog)78lFra?-5cIJvSaI2gPqp*=$+4-Mm?Q4R?O` zXAXf;!(38YhX${zD=f%5AsL*+qv87JYm#AK?dF|@mWc=3VNie~{mmdW6_#R9g(40f z;VQeg?$*d;Lw$`K2ek%6U%fixn5gDOBLxGM_F#jR)=pt977eD;I!F$Jzh(GslepUIWqT1`LYFRqm{5KTx&AbbO62poY z%z=j6ctF{fZN}#jIfJh3r@~1rs0j04xzMYCCe!ub>KpEw&Z1yP*Bl!*f9*ZL)Ouds zKHcz|@94bFATeCQr>!%anF0GD)&h+(mYH>HTlt#he(=}wLMWeQx~O25lvHw4bR-4e zdNoj`8^B{ln8W}ux=8d#_*2h%B>G*H|6YPKs?i;-S6L&=Cnp$uOf-{1ORF_Ng-z_9 zV&GEOlHAR&qTbkCZ#Fd-7+loTtfcTbdR~`ZCySNdxp@cgf5xEDH2?-EYXNfS&YqAk zDVyw#*D>ilPhfC3=_5aul}g9>*MELJXFM8i2{hIfd4e`f)@EseZ<#xOqT81TR|x}E zVHro+^;EFA6yZ~-r+M)SeRX_di5I{x2C6Nf6Qtg@m>M?;O-oTw4~=;=Zrqh`RucY0 zC0}0{ly17cXn8XtI0+op?z&!fJHbrk;u>wBh?4?N*=Ec9UG1=`>sOm|62qBgm2f(v zZidP$xLA!VBm>tgcn|`}>f%bxN^(AsjlEyXPZv>UeMEr0(*XHHR2D#8L4i)(xFn6B~O$`<RG@vFn7Qs=0Ph!g@j76t%EH=n*C-PmWw*DKC>#s;|6|Bs3ZkH4WQVD#@@%#fp+uii%%( zH_KKxXKMQ`+})T~M`(?H`;~3p>u^YN%I22~`LoBPPYqWkSePvXY%}UG;NWSgN5WsO z;R0%MW!4}7+0yVlihU3iDYu{`Mb>&mF_m>>lpd&Yb%;2RYa8<9~54J z4bRe_g95l93LfGJGSXvHMM{Tzbvw}byo#1mV-=Vbq$q2*^(%$ev0sb@CmvXuZ^Zof z&nykE4cAMOcJX;_%^iB0k7!t{YEa_S(s+|~ElDU+r3RA*X<~FeB`Ol*XB!iR7(Kz9+_bhJ-(b-}Cc*G`$%iqW0 z)j*ia0Wp}u%53Xv>@bU{X|x&C{iqH;B}IvcY*&Y8qnI)%5^Z&yPT7=&HL7CW?jU!t zvFo}iGck^7w}wmTR6~-l0WSx+aH>mBG*=$}LiMq<)iA#P_>cZe&oL)A5+9o<&M|JF zjngW-u^9XzCg>+#o~dv?2RPz2f)T;^G2wQzCsASCCu_J-Yu5j8jsSdudZ&c)mfrt? z_qImb&3lSh9Jsr)k40($S`vknJe^BYIKz$%OjKaskX*g2kRB92N-dT$ct%tsxa~xgU&=j3gu+3eQ!5g)l|clE__W{Tjf6)w5;`do7lm zNlENpsOqMp>t^9{-7J^dj8+@nZK|eTyrBDCG7MIX(A4%Cb525}2KvI(6BkYS}#q`m)odo!>-XMlzWu!z9~$1h?Wf#5JH zhl3@P=c}Rea3R_LHg-{HO4(||W3d{y&RYfDsi(#YV{h3C($9JhC`_g(LIP1dwi72m z-Rk@swq#S{$pC|rf=7co+iuERHslimG~!{d7EI8HDACYeXn{!)W!ArFnfT!b(Xv(&&w_ftSiCt z=-Oo{nrWnUd-ts41^To4j14s_ZLUfV@y+6(vRv2bky5M^9UF&l_ z)iHKKHc8(Z-)1tcXG?xRKkh>B`ZF0rYoeXp=+d^Vhw`B+75~?iDU<-c_m+0s)*1cZ ztj+h;(W6I|SJaNW-=Nf;3d!O2HzLUz570;qPrvrwUsUjJq}zelcE5A$Eow9Om4r=Yxz0s$Da%B~Mn%;q!Q%?PkAeXP z-f?VJm!>RBVWG-ZX?hGcGNJbzNWH3jf@f@L0fs!szD7}L)9)a0+p-~n@S>#W&zzGqf$z+{|c1u#ch z2!2R)BM!$B)GR!)4AoGyp+GUt7B3rS!le)&@UBkjH{S*XM*`l zUATB&EiNw5w5w}ScBtTM-Ei^oM(BNdlT>cKDQhWF02;}}^p_wL<+nji31C7t~NjX;YW*{qNi z5^E{3m$|IJQmsW>K5d2}?D&+DgF!=S4=k_7N%KYH4Iwoi{sfC(OJT4Ij=eQy9a~n5 z5S%OdLFsj-HmHpx!ZOQiUU~{PayO_E&Z`gKNZy;^i7@J`PLEgX$tIf`DmAf*m5@17 z8?Qyvk#7clnVWGTD#*{6-B0T3{Te*XLZ#b-EP5M$=3%^DZ!BS0-V?UyPl*!sJr z6xgNNi8VELR2Z9aK0RYUK$p;7xrDiYG*m615$o3Y*&37!AGPmHqh9^+9TQq?+_P48 zU!_1(ZS&N8zuPlAg-NyhUIke-t}n&COl(?P4IY;@|Aozr9g>XK))~_HDH}=Rhpve` ztEAoI=S!cNTJI5!*I62l>Q%|#lcFqqE_n7Vq;X4aBlv$k%{};!E$EAhxvjenHfI$a z9p1NLqUG9{HP6AHLN<6bGR2}<6;dhHHl6`23+!@XfvyaOv;j7wvj;?(f3`gu?tU~Y zY+h|p8$TDMa9aMW6aba zzHjhbfAb&of4JL^%#MeD>gVYn{G+!?xRGg1l3)_>fZl%D9-o-}CP-_elJ(yrZ#ep5 zxS^cRdr>^x2y0z(RTXBYjeB&UJZ)c?Q;v?;t(7K>Q(9P>r=R%AA2jd#|9>Q0ANd-u z|L%$JdjGqZe+`8+glQ6~;93HDfzyyqh%g6<4nUwU_jJY(okejaQ>Q?(cu}dMLI^HO zfem;a>6#HDZ8{cYEWsVMY(YkuPuX}lw(j0=!xXK+%F9Yd0jlGTY*d}s>;tjwtEaVj z?8!YX6J?*3HW+X71*FW{w?uZ+P`Sx**;QoZ+}V z5#si?I>3ACm^#ek@Th<0PPiU+e|z?{(2d{V?KuTBaM$R7!-Y*zMKVQ?`S8kbJ3MPjy%i5lvqsOycax@_4?Fj{Lz#brJyxLG=)k?OYfI3U^ILNT?CJZMPCvUJmQwWEa zebjpQCNmo)4`A&9Z%JY0J4hvHL~6B|Hd{82gpJB3gYQ$cc7lIXH!m}t{Y`nHbcC$+ z*e0wa(CdU089Z@z)x7G)4QlspqWOn-*=7gL&JEkl%8>MM;ks(N{Dis_VqzB*QW{op zyKLSXunj$HEdMI#B}WPYl>CD#^1OygQQ4fqOu~S`Jmr9fu^D_B@-;s5$HU)w?OS@^ z=i3iY|KXqhIr{tm@NIHC>8+8yG2?HPTC>*QfBHG%R6FM#9ZN9AIGIB2t3+@Sq(dUw zH6?ml(mrhsc;RpNN%`j5lb?S06#e|WkJ69-=;5&EhK=gBxBQ*{TR!v~tG|Z{0C9^* zRFp};oG|D!;kso&!6wIsO^hAE<)vIlo1rQP6YPZ;($EZrBnFdbG_Y!9#)j{n(t6l8 zW-!tw?`hqgW<_fWVRB%K(gsNH0&8ZdJB3iFre`B0Mwe?d+2uA)GN|~|Gv?|YM7tSS z?3R|#(%eQ1E_P1uGdofDfwd+E8M4`W7zZhOFYNaihezGL!}E58sP&}1t5|)LQ2TQz zbjl7Cpsa%j4{Ex+PZC|g(~mq2#Jib#MM7H&w%CKh)zwfD*D!mZ>V)y@`W-l1JZrF;_ za&fc!S|}5(v97-;6%a$p#UCjjLDaYI^>i0yGQ-Rx_{mnh1$ZRI0)^p}$NAAOGE56Zq+hi3n8rYm*~t5L2B_&8SbOPA->%rH~uE}zRjx{)$j z1dm7(qxo_{1^|X12Y`&Hw$5f7x9(P1kF7zgS=LjlIgds$N*1bdkI0jGJ#M{RH2eF$bU6XuQwYyNqAHC78jOK5ZZ7F=>h7A}KilFSrXiUm

G>#xF@|wT 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


H8E-%>3_RU|A$jm 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 CLf?u2 diff --git a/public/logos/wunder.png b/public/logos/wunder.png deleted file mode 100644 index 478b08fece4db3c5915f23fb7300e3eea3e5dc05..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5883 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 RC&%A^@Du<4>-S7`{1aB4`+)!e diff --git a/src/app/about/page.tsx b/src/app/about/page.tsx index 007c9d05..ca9c17fb 100644 --- a/src/app/about/page.tsx +++ b/src/app/about/page.tsx @@ -66,14 +66,14 @@ export default function AboutPage() {

See a number you can't reproduce? File a{" "} - + data-quality issue or a provider correction . Material errors are corrected in place with a dated note on the affected report. diff --git a/src/app/alternatives/[slug]/page.tsx b/src/app/alternatives/[slug]/page.tsx index 1488a209..14ae5e17 100644 --- a/src/app/alternatives/[slug]/page.tsx +++ b/src/app/alternatives/[slug]/page.tsx @@ -76,24 +76,6 @@ export default async function AlternativePage({ const url = `${SITE.url}/alternatives/${alt.slug}`; const benchUrl = `${SITE.url}/benchmarks/${bench.slug}`; - - // Schema.org / Google Rich Results requires Dataset.description to be - // between 50 and 5000 chars (Search Console flags "Invalid string - // length" below 50). Most short alt.description fields ("Relay - // alternatives", ~40 chars) trip this. Pad with bench context until - // the threshold is met, then truncate at the 5000 ceiling. - const altDescriptionBase = alt.description ?? alt.intro.slice(0, 280); - const altDescriptionPadded = (() => { - if (altDescriptionBase.length >= 50) return altDescriptionBase.slice(0, 5000); - const altCount = topAlternatives.length; - const peers = altCount > 0 - ? `${altCount} live alternative${altCount === 1 ? "" : "s"}` - : "live alternatives"; - const pad = `. Open benchmark snapshot of ${alt.target_product} versus ${peers} on ${bench.metric}, measured continuously and published with full methodology.`; - const joined = `${altDescriptionBase}${pad}`; - return joined.slice(0, 5000); - })(); - const jsonLd = { "@context": "https://schema.org", "@graph": [ @@ -101,7 +83,7 @@ export default async function AlternativePage({ "@type": "Dataset", "@id": `${url}#dataset`, name: `${alt.target_product} alternatives, benchmark snapshot`, - description: altDescriptionPadded, + description: alt.description ?? alt.intro.slice(0, 280), url, identifier: alt.slug, keywords: [ @@ -122,7 +104,7 @@ export default async function AlternativePage({ "@type": "Article", "@id": `${url}#article`, headline: `${alt.target_product} alternatives`, - description: altDescriptionPadded, + description: alt.description ?? alt.intro.slice(0, 280), url, mainEntityOfPage: url, articleBody: alt.intro, diff --git a/src/app/api/badge/[slug]/[provider]/route.ts b/src/app/api/badge/[slug]/[provider]/route.ts index d54fbfa7..70fa99bb 100644 --- a/src/app/api/badge/[slug]/[provider]/route.ts +++ b/src/app/api/badge/[slug]/[provider]/route.ts @@ -1,33 +1,18 @@ /** * Embeddable SVG badge. One badge per (benchmark, provider). * - * Endpoint shape: /api/badge//?chain= + * Endpoint shape: /api/badge// * * Returns an SVG showing the provider's current rank + headline figure * on that bench. Cache-Control is short so the figure refreshes within * a few minutes of a new run. - * - * The optional `?chain=` query param scopes the rank computation to a - * single chain (e.g. `?chain=solana`). When present, the badge: - * - computes rank within the providers that have a measurement on - * that chain (read from `benchmark.bestPerChain`). - * - prints the chain label as a subscript on the SVG so embedders - * don't mistakenly broadcast a chain-restricted "#1" as a global - * finish (e.g. a Solana-only provider being aggregate #1 mechanically - * on a cross-chain bench). - * - * When NO `chain` is provided, the badge falls back to the unfiltered - * aggregate AND adds an "all chains" textual hint to the SVG so the - * scope of the rank is visible at a glance. */ import { type NextRequest, NextResponse } from "next/server"; import { getBenchmark } from "@/data/benchmarks"; import { fmtUnit } from "@/lib/format"; -import { readBestPerChain } from "@/lib/per-chain-contract"; import { clientKey, rateLimit, tooManyRequests } from "@/lib/rate-limit"; import { PROVIDER_RE, SLUG_RE } from "@/lib/slug"; -import type { Benchmark, ProviderResult } from "@/types/benchmark"; export const revalidate = 300; @@ -57,51 +42,6 @@ function rankOf( return { rank: idx + 1, total: sorted.length, value: sorted[idx].ms.p50 }; } -/** - * Per-chain rank computation. Uses `bestPerChain` (the precomputed leader - * per chain stash from spec.ts) to scope the rank to providers active on - * the requested chain. The leader is forced to rank #1; everyone else is - * ranked by their unfiltered p50 within the providers whose bestPerChain - * entry exists on at least one chain (soft approximation — full per-chain - * leaderboards live on the bench page chain tabs). - * - * Returns null when: - * - the bench has no `bestPerChain` (no chain dimensions on this bench). - * - the chain is unknown or has no leader this cycle. - * - the provider isn't present in the unfiltered results. - */ -function rankOfChain( - b: Benchmark, - providerSlug: string, - chain: string, -): { rank: number; total: number; value: number; leader: ProviderResult } | null { - const bestPerChain = readBestPerChain(b); - if (!bestPerChain) return null; - const leader = bestPerChain[chain]; - if (!leader) return null; - const live = b.results.filter((r) => r.ms.p50 > 0); - if (live.length === 0) return null; - const lower = providerSlug.toLowerCase(); - const others = live.filter( - (r) => r.slug.toLowerCase() !== leader.slug.toLowerCase(), - ); - const sortedOthers = [...others].sort((a, c) => - b.higherIsBetter ? c.ms.p50 - a.ms.p50 : a.ms.p50 - c.ms.p50, - ); - const total = live.length; - if (leader.slug.toLowerCase() === lower) { - return { rank: 1, total, value: leader.ms.p50, leader }; - } - const idx = sortedOthers.findIndex((r) => r.slug.toLowerCase() === lower); - if (idx === -1) return null; - return { - rank: idx + 2, // +1 for 1-index, +1 because leader took slot 1 - total, - value: sortedOthers[idx].ms.p50, - leader, - }; -} - function valueSuffix(unit: string): string { if (unit === "count") return "(24h)"; if (unit === "pct" || unit === "bps") return "(24h avg)"; @@ -113,11 +53,6 @@ function truncate(s: string, max: number): string { return s.slice(0, max - 1).trimEnd() + "…"; } -/** Returns the human label for a chain value from the bench's spec. */ -function chainLabel(b: Benchmark, chain: string): string { - return b.dimensions?.chain?.find((c) => c.value === chain)?.label ?? chain; -} - export async function GET( req: NextRequest, { params }: { params: Promise }, @@ -139,46 +74,8 @@ export async function GET( headers: { "cache-control": "public, s-maxage=60" }, }); } - - // Chain scoping. Query param is normalized to lowercase and validated - // against the bench's declared chain dimensions; an unknown chain is - // treated as a 400 rather than silently falling back to "all", so an - // embedder who mistypes can fix it instead of shipping a misleading - // unfiltered figure under a chain badge. - const url = new URL(req.url); - const chainParam = url.searchParams.get("chain")?.toLowerCase().trim() || null; - if (chainParam) { - const known = b.dimensions?.chain?.some( - (c) => c.value.toLowerCase() === chainParam, - ); - if (!known) { - return new NextResponse("unknown chain", { - status: 400, - headers: { "cache-control": "public, s-maxage=60" }, - }); - } - } - - let r: { rank: number; total: number; value: number } | null; - let scopeLabel: string; - if (chainParam) { - const scoped = rankOfChain(b, provider, chainParam); - if (!scoped) { - return new NextResponse("not found", { status: 404 }); - } - r = { rank: scoped.rank, total: scoped.total, value: scoped.value }; - scopeLabel = chainLabel(b, chainParam); - } else { - r = rankOf(b.results, provider, b.higherIsBetter); - if (!r) return new NextResponse("not found", { status: 404 }); - // Add an "all chains" hint when the bench declares chain dimensions so - // embedders can read the scope. Benches without chain dimensions get - // no scope label (it would be noise). - scopeLabel = - (b.dimensions?.chain?.filter((c) => c.value !== "all").length ?? 0) > 0 - ? "all chains" - : ""; - } + const r = rankOf(b.results, provider, b.higherIsBetter); + if (!r) return new NextResponse("not found", { status: 404 }); // Colour signals rank. green for #1, dark ink for everyone else. const accent = r.rank === 1 ? "#3F7B47" : "#22272F"; @@ -191,39 +88,24 @@ export async function GET( // chip the site uses internally. const ocbBrand = "OCB"; - // Scope marker: rendered as a small subscript next to the rank when - // present. Keeps the badge layout stable when absent (most benches). - const scopeAriaSuffix = scopeLabel ? ` (${scopeLabel})` : ""; - const scopeSvg = scopeLabel - ? `${escapeXml(scopeLabel.toUpperCase())}` - : ""; - // Bump the SVG canvas height when a scope label is rendered so the - // subscript doesn't clip outside the box on stricter image renderers. - const svgH = scopeLabel ? H + 8 : H; - const svg = ` - - OpenChainBench. ${escapeXml(b.title)}. ${rankLabel}${scopeAriaSuffix}, ${value} ${suffix} - - - + + OpenChainBench. ${escapeXml(b.title)}. ${rankLabel}, ${value} ${suffix} + + + ${ocbBrand} ${rankLabel} ${escapeXml(title)} ${value} ${suffix} - ${scopeSvg} `; return new NextResponse(svg, { headers: { "Content-Type": "image/svg+xml; charset=utf-8", - // Cache key varies by query string (chain), so different scopes get - // their own CDN entries instead of cross-poisoning each other. - Vary: "Accept, Accept-Encoding", - "Cache-Control": - "public, max-age=300, s-maxage=300, stale-while-revalidate=600", + "Cache-Control": "public, max-age=300, s-maxage=300, stale-while-revalidate=600", }, }); } diff --git a/src/app/api/cron/health-check/route.ts b/src/app/api/cron/health-check/route.ts index 7892bede..0c5d2c48 100644 --- a/src/app/api/cron/health-check/route.ts +++ b/src/app/api/cron/health-check/route.ts @@ -1,7 +1,7 @@ import { timingSafeEqual } from "node:crypto"; import { NextResponse, type NextRequest } from "next/server"; import { getBenchmarkSlugs } from "@/data/benchmarks"; -import { getSpecs, loadAllBenchmarks } from "@/lib/spec"; +import { getSpecs } from "@/lib/spec"; import { extractMetricName, Prometheus } from "@/lib/prometheus"; export const runtime = "nodejs"; @@ -214,28 +214,12 @@ export async function GET(req: NextRequest) { } } - // Pre-warm the per-bench unstable_cache + KV snapshot layer. This - // single call is what spares an unlucky cold-start user a draft render - // when Prom is slow: it keeps each bench's runtime-cache entry fresh - // and triggers a writeSnapshot to KV so the snapshot fallback always - // has a recent good value to surface. Failures are caught so a Prom - // hiccup here doesn't 500 the cron and lose the Slack alert. - let prewarmCount = 0; - let prewarmErr: string | undefined; - try { - const benches = await loadAllBenchmarks(); - prewarmCount = benches.length; - } catch (err) { - prewarmErr = err instanceof Error ? err.message : String(err); - } - return NextResponse.json({ checked: liveSpecs.length, transitions: transitions.length, sent: sent.length, dryRun: !webhook, transitionsList: transitions, - prewarm: { count: prewarmCount, err: prewarmErr }, }); } diff --git a/src/app/api/mcp/[transport]/route.ts b/src/app/api/mcp/[transport]/route.ts index 4348ea36..a56fbcd6 100644 --- a/src/app/api/mcp/[transport]/route.ts +++ b/src/app/api/mcp/[transport]/route.ts @@ -35,9 +35,7 @@ const MAX_BODY_BYTES = 64 * 1024; // / instance-leak class of exfil attacks via the public MCP endpoint. // Derived from the metric names declared by current benchmark YAMLs. const QUERY_PROM_ALLOWED_METRIC_PREFIXES = [ - // Aggregator latency / head-lag "head_lag_seconds", - // Bridge benches (bridge-fee + bridge-quote-latency) "bridge_quote_latency_ms", "bridge_cost", "bridge_fees", @@ -46,40 +44,12 @@ const QUERY_PROM_ALLOWED_METRIC_PREFIXES = [ "bridge_output", "bridge_estimated_time", "bridge_quote_success", - // L1 finality + L2 block time "l1_finality_", - "l2_block_time_", - // Metadata + network + wallet coverage "metadata_coverage_", - "metadata_api_latency_", "networks_supported", "network_coverage_", - "wallet_labels_", - // Perp fees + buyback + oracle + validator yield "perp_fees_", - "ocb_buyback_", - "ocb_oracle_", - "ocb_validator_", - "ocb_chain_", - // Gas oracle prediction accuracy - "gas_error_", - "gas_predicted_", - "gas_realized_", - "gas_oracle_", - // Stablecoin peg (+ usdt-anchored variant) - "peg_", - // Solana TX landing (observational + active) - "solana_landing_", - // Public RPC capabilities - "rpc_latency_", - "rpc_call_total", - "rpc_health", - "rpc_archive_depth_supported", - // Bridge revenue (Relay-style implied margin) - "relay_", - "per_swap_margin_usd", - // Hyperliquid frontends quality bench (bench № 030) - "hl_frontend_", + "wallet_labels_", ]; // PromQL identifiers that are NOT metric names - built-in functions, @@ -320,22 +290,13 @@ const mcpHandler = createMcpHandler( " • a derived metric (rates, ratios, deltas)", " • a histogram bucket aggregation across chains/regions", "", - "Allowed metric namespaces (one prefix per OCB bench family):", - " head_lag_seconds (aggregator latency)", - " bridge_quote_latency_ms*, bridge_cost*, bridge_fees*, bridge_fix_fee*,", - " bridge_gas*, bridge_output*, bridge_estimated_time*, bridge_quote_success", - " l1_finality_*, l2_block_time_*", - " metadata_coverage_*, metadata_api_latency_*, network_coverage_*,", - " networks_supported, wallet_labels_*", - " perp_fees_*, ocb_buyback_*, ocb_oracle_*, ocb_validator_*, ocb_chain_*", - " gas_error_*, gas_predicted_*, gas_realized_*, gas_oracle_*", - " peg_* (stablecoin peg, both variants)", - " solana_landing_* (TX landing observational + active)", - " rpc_latency_*, rpc_call_total, rpc_health, rpc_archive_depth_supported", - " relay_*, per_swap_margin_usd (bridge revenue)", - "Queries referencing other metrics (operational/internal ones like `up`,", - "`scrape_*`, `process_*`, `go_*`, `wallet_balance_*` or any label-", - "enumeration shape) are refused with `{error, reason}`.", + "Allowed metric namespaces: head_lag_seconds, bridge_quote_latency_ms*,", + "bridge_cost*, bridge_fees*, bridge_fix_fee*, bridge_gas*, bridge_output*,", + "bridge_estimated_time*, bridge_quote_success, l1_finality_*,", + "metadata_coverage_*, network_coverage_*, networks_supported, perp_fees_*,", + "wallet_labels_*. Queries referencing other metrics (operational/internal", + "ones like `up`, `scrape_*`, `process_*`, `go_*`, `wallet_balance_*` or any", + "label-enumeration shape) are refused with `{error, reason}`.", "", "Example: instant p50 over 1h for Mobula head-lag on Base:", " query_prom({", @@ -364,7 +325,7 @@ const mcpHandler = createMcpHandler( .max(604_800) .optional() .describe("If set, run a range query over the last N seconds (max 7 days = 604800). Omit for an instant query."), - steps: z.number().int().min(2).max(360).optional().describe("Number of samples for a range query (2 to 360). Default 60. Step duration = windowSec / steps."), + steps: z.number().int().min(2).max(360).optional().describe("Number of samples for a range query (2–360). Default 60. Step duration = windowSec / steps."), }, }, async ({ query, windowSec, steps }) => { diff --git a/src/app/apple-icon.tsx b/src/app/apple-icon.tsx index 347c3042..77e95033 100644 --- a/src/app/apple-icon.tsx +++ b/src/app/apple-icon.tsx @@ -26,6 +26,7 @@ export default function AppleIcon() { justifyContent: "center", }} > + {/* eslint-disable-next-line @next/next/no-img-element */} OpenChainBench ({ slug })); } -// Emit one OG image per (slug, chain) combo so social shares of -// `/benchmarks/{slug}?chain=X` render a chain-honest card instead of the -// cross-chain aggregate leader (which is the misleading baseline-skew -// case bench-001 ran into: GMGN looking like "fastest crypto data API" -// on the unfiltered view because Solana's faster baseline drags the -// average down). The `id` Next.js threads through to the default image -// handler is the chain value; the unfiltered card uses `id="default"`. -export async function generateImageMetadata({ - params, -}: { - params: Promise<{ slug: string }>; -}) { - const { slug } = await params; - // Load editorial-only via getBenchmark (memoised; safe at build time). - const b = await getBenchmark(slug); - const chains = (b?.dimensions?.chain ?? []).filter( - (c) => c.value !== "all", - ); - return [ - { - id: "default", - alt, - size, - contentType, - }, - ...chains.map((c) => ({ - id: c.value, - alt: `${alt}. ${c.label}`, - size, - contentType, - })), - ]; -} - export default async function OG({ params, - id, }: { params: Promise<{ slug: string }>; - id: Promise; }) { const { slug } = await params; - const rawId = await id; - const chainId = typeof rawId === "string" && rawId !== "default" ? rawId : null; - // Fetch the chain-filtered bench when a chain id is present so the - // leader (and the headline sentence) reflect that chain's measured - // baseline. Falls back to the unfiltered fetch when the chain is - // missing or unknown — that mirrors the page-level behaviour. - const b = chainId - ? (await loadBenchmark(slug, { chain: chainId })) ?? (await getBenchmark(slug)) - : await getBenchmark(slug); + const b = await getBenchmark(slug); if (!b) return new ImageResponse(

, { ...size }); const top = leader(b); const headline = top ? `${top.name} leads at ${fmtUnit(top.value, b.unit)}` : "Awaiting first run"; const sentence = headlineSentence(b); const catColor = CATEGORY_COLOR[b.category] ?? "#7a2e1f"; - const chainLabel = chainId - ? b.dimensions?.chain?.find((c) => c.value === chainId)?.label ?? chainId - : null; - const titleText = chainLabel ? `${b.title} on ${chainLabel}` : b.title; return new ImageResponse( ( @@ -121,19 +72,18 @@ export default async function OG({ }} > {b.metric} - {chainLabel ? ` · ${chainLabel}` : ""}
38 ? 76 : 92, + fontSize: b.title.length > 38 ? 76 : 92, fontWeight: 700, lineHeight: 0.98, letterSpacing: -2, maxWidth: 1080, }} > - {titleText} + {b.title}
; - searchParams?: Promise>; }): Promise { const { slug } = await params; - // Next 16 ships searchParams as a Promise. Reading it here would normally - // tip the segment into "dynamic", but generateMetadata is allowed to - // consume request data without affecting the parent page's static - // rendering — the page.tsx body still resolves searchParams client-side - // through BenchmarkBody. - const sp = (await searchParams) ?? {}; - const rawChain = Array.isArray(sp.chain) ? sp.chain[0] : sp.chain; - // Always re-fetch unfiltered first — used for canonical fields and the - // default copy. When a chain is requested, fetch the filtered variant - // so headline sentence + template placeholders resolve against the - // chain-scoped leader rather than the cross-chain aggregate. - const baseBench = await getBenchmark(slug); - if (!baseBench) return {}; - const chainOption = (baseBench.dimensions?.chain ?? []).find( - (c) => c.value.toLowerCase() === (rawChain ?? "").toLowerCase(), - ); - const isChainScoped = Boolean(chainOption && chainOption.value !== "all"); - const filteredBench = isChainScoped - ? (await getBenchmark(slug, { chain: chainOption!.value })) ?? baseBench - : baseBench; - // Use the filtered bench for headline + template substitutions so the - // OG/Twitter card and meta description reference the chain-specific - // leader rather than the cross-chain aggregate (the headline of the - // unfiltered bench is misleading when a single chain dominates the - // baseline — e.g. Solana skewing the "fastest data API" claim on the - // Bench-001 aggregate view). - const b = filteredBench; - const chainLabel = chainOption?.label ?? null; - const baseTitle = b.seoTitle ?? b.title; - const metaTitle = isChainScoped && chainLabel - ? `${baseTitle} on ${chainLabel}` - : baseTitle; + const b = await getBenchmark(slug); + if (!b) return {}; + const metaTitle = b.seoTitle ?? b.title; // Description precedence (most-to-least specific): // 1. `seo_description` from the YAML - hand-crafted snippet with the // long-tail query phrases we want to rank for. @@ -97,32 +65,14 @@ export async function generateMetadata({ // from the current leader's measured value. // 3. Just `subtitle` - when the bench has no live data yet. const sentence = headlineSentence(b); - let description = + const description = b.seoDescription ?? (sentence ? `${sentence} ${b.subtitle}` : b.subtitle); - // Resolve any template placeholders ({{best_name}}, {{best_p50}}, ...) - // against the (possibly chain-scoped) bench so editorial copy in the - // description renders with live, chain-honest numbers. seoDescription - // is the most common host for these placeholders. - if (description) description = renderTemplate(description, b); - // Canonical NEVER carries `?chain=...`. Per-chain variants share the - // same canonical URL so Google consolidates link signal on the hub - // page instead of treating each tab as a separate document. The OG - // url is the chain-scoped one so social previews don't all collapse - // to the same target. - const canonical = `${SITE.url}/benchmarks/${baseBench.slug}`; - const ogUrl = isChainScoped - ? `${canonical}?chain=${chainOption!.value}` - : canonical; + const url = `${SITE.url}/benchmarks/${b.slug}`; return { title: metaTitle, description, - alternates: { canonical }, - openGraph: { - title: metaTitle, - description, - type: "article", - url: ogUrl, - }, + alternates: { canonical: url }, + openGraph: { title: metaTitle, description, type: "article", url }, twitter: { card: "summary_large_image", title: metaTitle, description }, }; } @@ -171,31 +121,7 @@ export default async function BenchmarkPage({ ), getBenchmarks(), ]); - // Variants only contribute chart / leaderboard / extras to the displayed - // bench (those legitimately differ per (chain, region) filter). Editorial - // copy (findings, faq, seoIntro, abstract, methodology) is the SAME on - // every tab and only resolves chain placeholders against the aggregate's - // bestPerChain/worstPerChain stash (computed unfiltered only), so we - // override these fields onto every variant. Without this, switching to - // a chain tab surfaces raw `{{best_name:chain:X}}` strings. - const variants: Record = Object.fromEntries( - variantList.map(([key, v]) => [ - key, - v === aggregate - ? v - : { - ...v, - findings: aggregate.findings, - faq: aggregate.faq, - seoIntro: aggregate.seoIntro, - abstract: aggregate.abstract, - methodology: aggregate.methodology, - perChainExplainer: aggregate.perChainExplainer, - bestPerChain: aggregate.bestPerChain, - worstPerChain: aggregate.worstPerChain, - }, - ]), - ); + const variants: Record = Object.fromEntries(variantList); const benchmark = variants[variantKey(chain, region)] ?? aggregate; const isDraft = benchmark.status === "draft"; @@ -298,7 +224,7 @@ export default async function BenchmarkPage({ const faqJsonLd = buildFaqPageJsonLd(benchmark.faq, benchmarkUrl); return ( -
+