From b1fb8b523263143db858d09698f9c67e3be79e33 Mon Sep 17 00:00:00 2001 From: Enes Gules <101020733+enesgules@users.noreply.github.com> Date: Mon, 29 Jun 2026 13:24:24 +0300 Subject: [PATCH 01/18] docs: update Docker MCP Toolkit to remote server (fixes #790) (#2839) Co-authored-by: Claude Opus 4.8 (1M context) --- docs/resources/all-clients.mdx | 29 ++++++++++++----------------- 1 file changed, 12 insertions(+), 17 deletions(-) diff --git a/docs/resources/all-clients.mdx b/docs/resources/all-clients.mdx index 8688080e..b30b8105 100644 --- a/docs/resources/all-clients.mdx +++ b/docs/resources/all-clients.mdx @@ -996,34 +996,29 @@ docker build -t context7-mcp . } ``` -If you use the Docker MCP Toolkit image (`mcp/context7`) with a stdio-based client, set `MCP_TRANSPORT=stdio` so the container starts with stdio transport instead of its HTTP default. For Cline, Roo Code, and Claude Desktop, use: + -```json -{ - "mcpServers": { - "context7": { - "command": "docker", - "args": ["run", "-i", "--rm", "-e", "MCP_TRANSPORT=stdio", "mcp/context7"] - } - } -} -``` + -For VS Code, use the same Docker command in the `servers` format: +Context7 is available in the [Docker MCP Catalog](https://hub.docker.com/mcp/server/context7/overview) as a **remote** server, so you don't need to build, pull, or run a local image. The MCP Toolkit connects to the hosted endpoint for you. + +1. In Docker Desktop, open **MCP Toolkit → Catalog**, search for **Context7**, and enable it. +2. (Optional) In the server's **Config** tab, set your Context7 API key (`CONTEXT7_API_KEY`) for higher rate limits. The server also works without one. +3. Connect your MCP client to Docker's MCP gateway. Either run `docker mcp client connect ` (for example `vscode`, `cursor`, or `claude-desktop`), or add the gateway to your client config manually: ```json { - "servers": { - "context7": { - "type": "stdio", + "mcpServers": { + "MCP_DOCKER": { "command": "docker", - "args": ["run", "-i", "--rm", "-e", "MCP_TRANSPORT=stdio", "mcp/context7"] + "args": ["mcp", "gateway", "run"], + "type": "stdio" } } } ``` -Keep using the remote server URL for HTTP-based clients. +The gateway exposes every server you've enabled in the MCP Toolkit, including Context7. Tools appear under the `MCP_DOCKER` server in your client. From c8cbf3ea87e344a79c6d19af8146531167db45f7 Mon Sep 17 00:00:00 2001 From: "vadim s. sabinich" <1430016+sabinich@users.noreply.github.com> Date: Fri, 3 Jul 2026 10:57:18 +0300 Subject: [PATCH 02/18] Add AnythingLLM to all-clients.mdx (#2859) --- docs/resources/all-clients.mdx | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) diff --git a/docs/resources/all-clients.mdx b/docs/resources/all-clients.mdx index b30b8105..9dac7518 100644 --- a/docs/resources/all-clients.mdx +++ b/docs/resources/all-clients.mdx @@ -1307,4 +1307,31 @@ Install the [context7.mcpb](https://github.com/upstash/context7/tree/master/pack + + +AnythingLLM supports MCP Servers through GUI. + +1. Navigate `AnythingLLM` > `Agents Skills` +2. Select `MCP Servers`. +3. Click `Edit MCP config`. +4. Paste. +5. Click to "Refresh" button. + +#### Remote Connection +```json +{ +"mcpServers": { + "context7": { + "type": "streamable", + "url": "https://mcp.context7.com/mcp", + "headers": { + "CONTEXT7_API_KEY": "YOUR_API_KEY" + } + } +} +} +``` + + + From 84620bd48380b1cac66b9b25180987116e2ce2fe Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=9F=B3=E5=B2=B3=E5=B3=B0?= <132282304+syf2211@users.noreply.github.com> Date: Fri, 3 Jul 2026 16:33:46 +0800 Subject: [PATCH 03/18] fix(cli): align find-docs skill with context7-cli rule guidance (#2863) Fixes #2860 - Use npx ctx7@latest as the canonical CLI invocation in find-docs SKILL.md - Add official library naming guidance matching rules/context7-cli.md - De-emphasize global npm install as the primary workflow - Add regression tests to keep skill and rule guidance aligned Co-authored-by: syf2211 --- .../find-docs-skill-alignment.test.ts | 35 ++++++++++++++++ skills/find-docs/SKILL.md | 41 ++++++++++--------- 2 files changed, 57 insertions(+), 19 deletions(-) create mode 100644 packages/cli/src/__tests__/find-docs-skill-alignment.test.ts diff --git a/packages/cli/src/__tests__/find-docs-skill-alignment.test.ts b/packages/cli/src/__tests__/find-docs-skill-alignment.test.ts new file mode 100644 index 00000000..5bd725df --- /dev/null +++ b/packages/cli/src/__tests__/find-docs-skill-alignment.test.ts @@ -0,0 +1,35 @@ +import { describe, test, expect } from "vitest"; +import { readFile } from "fs/promises"; +import { join, dirname } from "path"; +import { fileURLToPath } from "url"; + +const repoRoot = join(dirname(fileURLToPath(import.meta.url)), "../../../.."); +const skillPath = join(repoRoot, "skills/find-docs/SKILL.md"); +const rulePath = join(repoRoot, "rules/context7-cli.md"); + +describe("find-docs skill aligns with context7-cli rule", () => { + test("uses npx ctx7@latest as the canonical invocation style", async () => { + const skill = await readFile(skillPath, "utf-8"); + expect(skill).toContain("npx ctx7@latest library"); + expect(skill).toContain("npx ctx7@latest docs"); + expect(skill).not.toMatch(/^ctx7 library/m); + expect(skill).not.toContain("ctx7 library nextjs"); + }); + + test("documents official library naming guidance", async () => { + const skill = await readFile(skillPath, "utf-8"); + const rule = await readFile(rulePath, "utf-8"); + + expect(skill).toContain('"Next.js" not "nextjs"'); + expect(rule).toContain('"Next.js" not "nextjs"'); + expect(skill).toContain('library "Next.js"'); + }); + + test("does not recommend global install as the primary workflow", async () => { + const skill = await readFile(skillPath, "utf-8"); + const npxIndex = skill.indexOf("npx ctx7@latest"); + const globalInstallIndex = skill.indexOf("npm install -g ctx7@latest"); + expect(npxIndex).toBeGreaterThanOrEqual(0); + expect(globalInstallIndex).toBeGreaterThan(npxIndex); + }); +}); diff --git a/skills/find-docs/SKILL.md b/skills/find-docs/SKILL.md index 99e5c6e1..9125d077 100644 --- a/skills/find-docs/SKILL.md +++ b/skills/find-docs/SKILL.md @@ -21,16 +21,17 @@ description: >- Retrieve current documentation and code examples for any library using the Context7 CLI. -Make sure the CLI is up to date before running commands: +Run commands with `npx ctx7@latest` so setup always uses the latest CLI without a global install: ```bash -npm install -g ctx7@latest +npx ctx7@latest library "" +npx ctx7@latest docs "" ``` -Or run directly without installing: +Optionally install globally if you prefer a bare `ctx7` command: ```bash -npx ctx7@latest +npm install -g ctx7@latest ``` ## Workflow @@ -39,13 +40,13 @@ Two-step process: resolve the library name to an ID, then query docs with that I ```bash # Step 1: Resolve library ID -ctx7 library +npx ctx7@latest library "" # Step 2: Query documentation -ctx7 docs +npx ctx7@latest docs "" ``` -You MUST call `ctx7 library` first to obtain a valid library ID UNLESS the user explicitly provides a library ID in the format `/org/project` or `/org/project/version`. +You MUST call `library` first to obtain a valid library ID UNLESS the user explicitly provides a library ID in the format `/org/project` or `/org/project/version`. IMPORTANT: Do not run these commands more than 3 times per question. If you cannot find what you need after 3 attempts, use the best result you have. @@ -54,11 +55,13 @@ IMPORTANT: Do not run these commands more than 3 times per question. If you cann Resolves a package/product name to a Context7-compatible library ID and returns matching libraries. ```bash -ctx7 library react "How to clean up useEffect with async operations" -ctx7 library nextjs "How to set up app router with middleware" -ctx7 library prisma "How to define one-to-many relations with cascade delete" +npx ctx7@latest library React "How to clean up useEffect with async operations" +npx ctx7@latest library "Next.js" "How to set up app router with middleware" +npx ctx7@latest library Prisma "How to define one-to-many relations with cascade delete" ``` +Use the official library name with proper punctuation (e.g., "Next.js" not "nextjs", "Customer.io" not "customerio", "Three.js" not "threejs"). If results look wrong, try alternate spellings such as `next.js` before changing the query. + Always pass a `query` argument — it is required and directly affects result ranking. Use the user's intent to form the query, which helps disambiguate when multiple libraries share a similar name. Do not include any sensitive or confidential information such as API keys, passwords, credentials, personal data, or proprietary code in your query. ### Result fields @@ -92,22 +95,22 @@ If the user mentions a specific version, use a version-specific library ID: ```bash # General (latest indexed) -ctx7 docs /vercel/next.js "How to set up app router" +npx ctx7@latest docs /vercel/next.js "How to set up app router" # Version-specific -ctx7 docs /vercel/next.js/v14.3.0-canary.87 "How to set up app router" +npx ctx7@latest docs /vercel/next.js/v14.3.0-canary.87 "How to set up app router" ``` -The available versions are listed in the `ctx7 library` output. Use the closest match to what the user specified. +The available versions are listed in the `library` command output. Use the closest match to what the user specified. ## Step 2: Query Documentation Retrieves up-to-date documentation and code examples for the resolved library. ```bash -ctx7 docs /facebook/react "How to clean up useEffect with async operations" -ctx7 docs /vercel/next.js "How to add authentication middleware to app router" -ctx7 docs /prisma/prisma "How to define one-to-many relations with cascade delete" +npx ctx7@latest docs /facebook/react "How to clean up useEffect with async operations" +npx ctx7@latest docs /vercel/next.js "How to add authentication middleware to app router" +npx ctx7@latest docs /prisma/prisma "How to define one-to-many relations with cascade delete" ``` ### Writing good queries @@ -134,14 +137,14 @@ Works without authentication. For higher rate limits: export CONTEXT7_API_KEY=your_key # Option B: OAuth login -ctx7 login +npx ctx7@latest login ``` ## Error Handling If a command fails with a quota error ("Monthly quota reached" or "quota exceeded"): 1. Inform the user their Context7 quota is exhausted -2. Suggest they authenticate for higher limits: `ctx7 login` +2. Suggest they authenticate for higher limits: `npx ctx7@latest login` 3. If they cannot or choose not to authenticate, answer from training knowledge and clearly note it may be outdated Do not silently fall back to training data — always tell the user why Context7 was not used. @@ -149,6 +152,6 @@ Do not silently fall back to training data — always tell the user why Context7 ## Common Mistakes - Library IDs require a `/` prefix — `/facebook/react` not `facebook/react` -- Always run `ctx7 library` first — `ctx7 docs react "hooks"` will fail without a valid ID +- Always run `npx ctx7@latest library` first — `npx ctx7@latest docs react "hooks"` will fail without a valid ID - Use descriptive queries, not single words — `"React useEffect cleanup function"` not `"hooks"` - Do not include sensitive information (API keys, passwords, credentials) in queries From 41878ecd18c08f77e6b8aca3b0ac7e1a51cf6604 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=9F=B3=E5=B2=B3=E5=B3=B0?= <132282304+syf2211@users.noreply.github.com> Date: Mon, 6 Jul 2026 15:09:48 +0800 Subject: [PATCH 04/18] fix(mcp): skip loopback and IPv6 private IPs in getClientIp (#2875) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * fix(mcp): skip loopback and IPv6 private IPs in getClientIp Extract getClientIp into lib/client-ip.ts and extend the private/local IP filter to cover 127.0.0.0/8, 169.254.0.0/16, ::1, fe80::/10, and fc00::/7 when walking X-Forwarded-For. Proxies that prepend loopback or health-check addresses no longer pollute mcp-client-ip analytics. Fixes #2874 * fix(mcp): tighten private IP detection and add changeset Anchor the fe80::/10 and fc00::/7 regexes to full 4-digit first hextets so abbreviated hextets like fe8::1 or fc::1 are no longer misclassified as private. Match IPv6 loopback in any textual form (0::1, 0:0:0:0:0:0:0:1), add CGNAT (100.64.0.0/10) to the skip list, and add a patch changeset. --------- Co-authored-by: syf2211 Co-authored-by: Fahreddin Özcan --- .changeset/loud-camels-visit.md | 5 ++ packages/mcp/src/index.ts | 31 +--------- packages/mcp/src/lib/client-ip.ts | 78 +++++++++++++++++++++++ packages/mcp/test/client-ip.test.ts | 96 +++++++++++++++++++++++++++++ 4 files changed, 180 insertions(+), 30 deletions(-) create mode 100644 .changeset/loud-camels-visit.md create mode 100644 packages/mcp/src/lib/client-ip.ts create mode 100644 packages/mcp/test/client-ip.test.ts diff --git a/.changeset/loud-camels-visit.md b/.changeset/loud-camels-visit.md new file mode 100644 index 00000000..0332b200 --- /dev/null +++ b/.changeset/loud-camels-visit.md @@ -0,0 +1,5 @@ +--- +"@upstash/context7-mcp": patch +--- + +Skip loopback (`127.0.0.0/8`), link-local (`169.254.0.0/16`), CGNAT (`100.64.0.0/10`), IPv6 loopback (`::1`), IPv6 link-local (`fe80::/10`), and IPv6 unique-local (`fc00::/7`) addresses when extracting the client IP from `X-Forwarded-For`, so proxy-internal hops no longer pollute the reported client IP. diff --git a/packages/mcp/src/index.ts b/packages/mcp/src/index.ts index 6f56fa92..17098155 100644 --- a/packages/mcp/src/index.ts +++ b/packages/mcp/src/index.ts @@ -27,6 +27,7 @@ import { OPENAI_APPS_CHALLENGE_TOKEN, } from "./lib/constants.js"; import { maybeElicitAuthSignIn } from "./lib/auth/auth-prompt.js"; +import { getClientIp } from "./lib/client-ip.js"; /** Default HTTP server port */ const DEFAULT_PORT = 3000; @@ -108,36 +109,6 @@ function getClientContext(): ClientContext { }; } -/** - * Extract client IP address from request headers. - * Handles X-Forwarded-For header for proxied requests. - */ -function getClientIp(req: express.Request): string | undefined { - const forwardedFor = req.headers["x-forwarded-for"] || req.headers["X-Forwarded-For"]; - - if (forwardedFor) { - const ips = Array.isArray(forwardedFor) ? forwardedFor[0] : forwardedFor; - const ipList = ips.split(",").map((ip) => ip.trim()); - - for (const ip of ipList) { - const plainIp = ip.replace(/^::ffff:/, ""); - if ( - !plainIp.startsWith("10.") && - !plainIp.startsWith("192.168.") && - !/^172\.(1[6-9]|2[0-9]|3[0-1])\./.test(plainIp) - ) { - return plainIp; - } - } - return ipList[0].replace(/^::ffff:/, ""); - } - - if (req.socket?.remoteAddress) { - return req.socket.remoteAddress.replace(/^::ffff:/, ""); - } - return undefined; -} - function createMcpServer() { const server = new McpServer( { diff --git a/packages/mcp/src/lib/client-ip.ts b/packages/mcp/src/lib/client-ip.ts new file mode 100644 index 00000000..5c8ab2d4 --- /dev/null +++ b/packages/mcp/src/lib/client-ip.ts @@ -0,0 +1,78 @@ +import type express from "express"; + +function stripIpv4MappedPrefix(ip: string): string { + return ip.replace(/^::ffff:/i, ""); +} + +/** + * Returns true for RFC1918, CGNAT, loopback, link-local, and IPv6 private ranges. + */ +export function isPrivateOrLocalIp(ip: string): boolean { + const plainIp = stripIpv4MappedPrefix(ip).toLowerCase(); + + if (plainIp.includes(".")) { + return ( + plainIp.startsWith("10.") || + plainIp.startsWith("192.168.") || + /^172\.(1[6-9]|2[0-9]|3[0-1])\./.test(plainIp) || + /^100\.(6[4-9]|[7-9][0-9]|1[01][0-9]|12[0-7])\./.test(plainIp) || + plainIp.startsWith("127.") || + plainIp.startsWith("169.254.") + ); + } + + // ::1 loopback in any textual form (e.g. "0::1", "0:0:0:0:0:0:0:1") + if (/^[0:]+1$/.test(plainIp)) { + return true; + } + + // First hextets in fe80::/10 and fc00::/7 start with a non-zero digit, so a + // valid textual form always spells out all 4 digits. + + // fe80::/10 link-local + if (/^fe[89ab][0-9a-f]:/.test(plainIp)) { + return true; + } + + // fc00::/7 unique local + if (/^f[cd][0-9a-f]{2}:/.test(plainIp)) { + return true; + } + + return false; +} + +function pickClientIpFromForwardedList(ipList: string[]): string | undefined { + for (const ip of ipList) { + const plainIp = stripIpv4MappedPrefix(ip); + if (!isPrivateOrLocalIp(plainIp)) { + return plainIp; + } + } + + if (ipList.length === 0) { + return undefined; + } + + return stripIpv4MappedPrefix(ipList[0]); +} + +/** + * Extract client IP address from request headers. + * Handles X-Forwarded-For header for proxied requests. + */ +export function getClientIp(req: express.Request): string | undefined { + const forwardedFor = req.headers["x-forwarded-for"] || req.headers["X-Forwarded-For"]; + + if (forwardedFor) { + const ips = Array.isArray(forwardedFor) ? forwardedFor[0] : forwardedFor; + const ipList = ips.split(",").map((ip) => ip.trim()); + return pickClientIpFromForwardedList(ipList); + } + + if (req.socket?.remoteAddress) { + return stripIpv4MappedPrefix(req.socket.remoteAddress); + } + + return undefined; +} diff --git a/packages/mcp/test/client-ip.test.ts b/packages/mcp/test/client-ip.test.ts new file mode 100644 index 00000000..6b415297 --- /dev/null +++ b/packages/mcp/test/client-ip.test.ts @@ -0,0 +1,96 @@ +import { describe, expect, test } from "vitest"; +import type express from "express"; +import { getClientIp, isPrivateOrLocalIp } from "../src/lib/client-ip.js"; + +describe("isPrivateOrLocalIp", () => { + test.each([ + "10.0.0.1", + "192.168.1.1", + "172.16.0.1", + "127.0.0.1", + "169.254.1.1", + "100.64.0.1", + "100.127.255.255", + "::1", + "0::1", + "0:0:0:0:0:0:0:1", + "fe80::1", + "FE80::1", + "febf::1", + "fc00::1", + "fd12::1", + "fdff::1", + "::ffff:127.0.0.1", + ])("treats %s as private or local", (ip) => { + expect(isPrivateOrLocalIp(ip)).toBe(true); + }); + + test.each([ + "8.8.8.8", + "203.0.113.10", + "100.63.255.255", + "100.128.0.1", + "2001:db8::1", + "1::1", + "::11", + "::ffff:8.8.8.8", + // abbreviated first hextets that look like fe80::/10 or fc00::/7 but are not + "fe8::1", + "fc::1", + "fd0::1", + // fec0::/10 (deprecated site-local) is outside fe80::/10 + "fec0::1", + ])("treats %s as public", (ip) => { + expect(isPrivateOrLocalIp(ip)).toBe(false); + }); +}); + +describe("getClientIp", () => { + function makeRequest(headers: Record): express.Request { + return { + headers, + socket: undefined, + } as express.Request; + } + + test("skips loopback and link-local entries in X-Forwarded-For", () => { + const req = makeRequest({ + "x-forwarded-for": "127.0.0.1, 8.8.8.8", + }); + + expect(getClientIp(req)).toBe("8.8.8.8"); + }); + + test("skips RFC1918 and returns the first public forwarded IP", () => { + const req = makeRequest({ + "x-forwarded-for": "10.0.0.1, 192.168.0.2, 203.0.113.10", + }); + + expect(getClientIp(req)).toBe("203.0.113.10"); + }); + + test("skips IPv6 loopback and private ranges in X-Forwarded-For", () => { + const req = makeRequest({ + "x-forwarded-for": "::1, fe80::1, fc00::1, 2001:db8::5", + }); + + expect(getClientIp(req)).toBe("2001:db8::5"); + }); + + test("falls back to the first forwarded IP when all entries are private", () => { + const req = makeRequest({ + "x-forwarded-for": "127.0.0.1, 10.0.0.1", + }); + + expect(getClientIp(req)).toBe("127.0.0.1"); + }); + + test("uses socket remote address when X-Forwarded-For is absent", () => { + const req = { + headers: {}, + socket: { remoteAddress: "::ffff:203.0.113.10" }, + } as express.Request; + + expect(getClientIp(req)).toBe("203.0.113.10"); + }); +}); From 68a6c63f3c5c77c2e888ccbe627d1800666f7429 Mon Sep 17 00:00:00 2001 From: OrbisAI Security Date: Mon, 6 Jul 2026 13:29:20 +0530 Subject: [PATCH 05/18] fix: documentation contains hardcoded api key exampl... in api-guide.mdx (#2841) --- docs/api-guide.mdx | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/docs/api-guide.mdx b/docs/api-guide.mdx index f6f32aa6..1be3de0b 100644 --- a/docs/api-guide.mdx +++ b/docs/api-guide.mdx @@ -59,9 +59,10 @@ You can pin a specific version with either `/owner/repo/` or `/owner/re ### Complete Workflow Example ```python +import os import requests -headers = {"Authorization": "Bearer CONTEXT7_API_KEY"} +headers = {"Authorization": f"Bearer {os.environ['CONTEXT7_API_KEY']}"} # Step 1: Search for the library search_response = requests.get( From dc967fa330a7c23d267e5461ee631643231b0af2 Mon Sep 17 00:00:00 2001 From: Enes Gules <101020733+enesgules@users.noreply.github.com> Date: Mon, 6 Jul 2026 15:09:28 +0300 Subject: [PATCH 06/18] docs: document what Context7 indexes (parsed file types and source-code fallback) (#2881) * docs: document parsed file types and source-code fallback (#2862) Co-Authored-By: Claude Fable 5 * docs: document Generate docs option for private repos Co-Authored-By: Claude Fable 5 --------- Co-authored-by: Claude Fable 5 --- docs/adding-libraries.mdx | 8 ++++ docs/howto/private-sources.mdx | 3 ++ docs/library-owners.mdx | 2 + docs/openapi.json | 88 +++++++++++++++++++++++++++++++++- 4 files changed, 99 insertions(+), 2 deletions(-) diff --git a/docs/adding-libraries.mdx b/docs/adding-libraries.mdx index 3ee7c6a9..95204909 100644 --- a/docs/adding-libraries.mdx +++ b/docs/adding-libraries.mdx @@ -30,6 +30,14 @@ The fastest way to add a library is through the web interface: This page is for **public** libraries. To add internal or private documentation, see the [Private Sources](/howto/private-sources) guide (requires a Pro or Enterprise plan). +## What Gets Indexed + +Context7 parses documentation files — `.md`, `.mdx`, `.markdown`, `.rst`, `.txt`, and `.ipynb` — and extracts the code examples and explanations they contain. Raw source code files (`.py`, `.ts`, `.go`, and so on) are not indexed when documentation is present; a library's docs are expected to show the important usage examples. + +If a repository contains little or no documentation content, Context7 falls back to generating examples from the source code itself. For public repositories this fallback is automatic — there is no setting to turn it on or off. For [private repositories](/howto/private-sources), generating docs from source code is opt-in: check **Generate docs** when adding the source, or pass the `generateDocs` flag via the [API](/api-guide). + +To control which folders and files are scanned, set included folders when submitting, or commit a `context7.json` file to the repository (see [Library Owners](/library-owners)). + ## Maintain the Library? If you own or maintain the library, you can take control of how it appears in Context7 — configure parsing with `context7.json`, manage versions through a web admin panel, and get higher refresh limits. diff --git a/docs/howto/private-sources.mdx b/docs/howto/private-sources.mdx index 4cf6bc78..ba6f89ab 100644 --- a/docs/howto/private-sources.mdx +++ b/docs/howto/private-sources.mdx @@ -27,6 +27,9 @@ Add private sources to Context7 to make your internal documentation available to Authorize Context7 to access your source (if required). + + For repositories with little or no written documentation, check **Generate docs** to have Context7 generate documentation from the source code. Also available as the `generateDocs` flag in the [API](/api-guide). + Submit the source for parsing. diff --git a/docs/library-owners.mdx b/docs/library-owners.mdx index 456a988b..b6d94675 100644 --- a/docs/library-owners.mdx +++ b/docs/library-owners.mdx @@ -27,6 +27,8 @@ If you're the library owner, you can claim your library on Context7 to unlock a For more control over how Context7 parses and presents your library, you can add a `context7.json` file to the root of your repository. This file works similarly to `robots.txt` and tells Context7 how to handle your project. +`context7.json` controls *where* Context7 looks, not *what kind* of files it reads — see [What Gets Indexed](/adding-libraries#what-gets-indexed) for the parsed file types and the source-code fallback for repositories without documentation. + ### Configuration Fields Here's an example `context7.json` file with all available options: diff --git a/docs/openapi.json b/docs/openapi.json index 1fa290b9..68f1f101 100644 --- a/docs/openapi.json +++ b/docs/openapi.json @@ -458,7 +458,11 @@ "/vercel/next.js" ], "repoFilters": { - "minStars": 100 + "minStars": 100, + "allowedLicenses": [ + "MIT", + "Apache-2.0" + ] } }, "select": { @@ -587,6 +591,39 @@ } } }, + "allowPermissiveLicenses": { + "summary": "Restrict public repos to permissive SPDX licenses", + "value": { + "libraryFilters": { + "quality": { + "repoFilters": { + "allowedLicenses": { + "add": [ + "MIT", + "Apache-2.0", + "BSD-3-Clause", + "ISC" + ] + } + } + } + } + } + }, + "clearLicenseRestriction": { + "summary": "Remove all license restrictions", + "value": { + "libraryFilters": { + "quality": { + "repoFilters": { + "allowedLicenses": { + "clear": true + } + } + } + } + } + }, "allowDomain": { "summary": "Allow libraries from a specific domain (select mode)", "value": { @@ -891,6 +928,10 @@ "skipVersionFiltering": { "type": "boolean", "description": "Skip filtering out version-specific documentation pages" + }, + "generateDocs": { + "type": "boolean", + "description": "Generate documentation from the repository source code. Applies to private repository submissions." } } }, @@ -1998,6 +2039,10 @@ "skipVersionFiltering": { "type": "boolean", "description": "Skip filtering out version-specific documentation pages" + }, + "generateDocs": { + "type": "boolean", + "description": "Generate documentation from the repository source code. Applies to private repository submissions." } } }, @@ -2122,10 +2167,18 @@ "type": "integer", "nullable": true, "description": "Minimum GitHub stars required" + }, + "allowedLicenses": { + "type": "array", + "items": { + "type": "string" + }, + "description": "SPDX license identifiers (e.g. 'MIT', 'Apache-2.0') that are allowed. Empty array means no license restriction. Applies to public repos only; non-repo source types pass through." } }, "required": [ - "minStars" + "minStars", + "allowedLicenses" ] }, "websiteFilters": { @@ -2223,6 +2276,34 @@ } } }, + "LicenseListOperation": { + "type": "object", + "description": "Incremental add/remove operation on a list of SPDX license identifiers. Use 'clear' to remove all entries at once.", + "properties": { + "add": { + "type": "array", + "items": { + "type": "string", + "pattern": "^[A-Za-z0-9.+\\-_]+$", + "maxLength": 64 + }, + "description": "SPDX license identifiers to add (e.g. 'MIT', 'Apache-2.0', 'BSD-3-Clause')" + }, + "remove": { + "type": "array", + "items": { + "type": "string", + "pattern": "^[A-Za-z0-9.+\\-_]+$", + "maxLength": 64 + }, + "description": "SPDX license identifiers to remove" + }, + "clear": { + "type": "boolean", + "description": "Set to true to remove all entries. Cannot be used together with 'add' or 'remove'." + } + } + }, "PatchPoliciesRequest": { "type": "object", "description": "Incremental policy update. All fields are optional — only provided fields are modified. At least one of 'sourceTypes' or 'libraryFilters' must be provided.", @@ -2314,6 +2395,9 @@ "nullable": true, "minimum": 0, "description": "Minimum stars threshold (null to clear)" + }, + "allowedLicenses": { + "$ref": "#/components/schemas/LicenseListOperation" } } }, From 33229cb3323b8c0859e52016c767095259ba732f Mon Sep 17 00:00:00 2001 From: Enes Gules <101020733+enesgules@users.noreply.github.com> Date: Mon, 6 Jul 2026 15:12:06 +0300 Subject: [PATCH 07/18] docs: enhance query descriptions for clarity and specificity (#2868) * docs: enhance query descriptions for clarity and specificity * update all propmts/skills * format * address pr review --- .changeset/plenty-wasps-retire.md | 8 ++++++++ docs/agentic-tools/ai-sdk/tools/query-docs.mdx | 2 +- packages/cli/src/commands/docs.ts | 5 ++++- packages/cli/src/setup/templates.ts | 10 +++++----- packages/mcp/src/index.ts | 4 ++-- packages/pi/lib/prompts.ts | 2 +- packages/pi/skills/context7-docs/SKILL.md | 2 +- packages/tools-ai-sdk/src/tools/query-docs.ts | 2 +- plugins/claude/context7/agents/docs-researcher.md | 5 +++-- plugins/claude/context7/commands/docs.md | 2 +- .../claude/context7/skills/context7-mcp/SKILL.md | 7 +++++-- .../codex/context7/skills/context7-mcp/SKILL.md | 7 +++++-- plugins/context7-power/POWER.md | 9 ++++++--- .../context7/agents/docs-researcher.agent.md | 5 +++-- plugins/copilot/context7/commands/docs.md | 2 +- .../copilot/context7/skills/context7-mcp/SKILL.md | 7 +++++-- plugins/cursor/context7/agents/docs-researcher.md | 5 +++-- .../cursor/context7/skills/context7-mcp/SKILL.md | 7 +++++-- rules/context7-cli.md | 6 +++--- rules/context7-mcp.md | 4 ++-- skills/context7-cli/references/docs.md | 9 +++++---- skills/context7-mcp/SKILL.md | 7 +++++-- skills/find-docs/SKILL.md | 14 ++++++++------ 23 files changed, 83 insertions(+), 48 deletions(-) create mode 100644 .changeset/plenty-wasps-retire.md diff --git a/.changeset/plenty-wasps-retire.md b/.changeset/plenty-wasps-retire.md new file mode 100644 index 00000000..ec779e0a --- /dev/null +++ b/.changeset/plenty-wasps-retire.md @@ -0,0 +1,8 @@ +--- +"@upstash/context7-tools-ai-sdk": patch +"ctx7": patch +"@upstash/context7-mcp": patch +"@upstash/context7-pi": patch +--- + +Clarify the `query-docs` query description so it asks for a single concept per query. When a question spans multiple distinct topics, callers are now told to make a separate query per concept instead of combining them (unless the question is about how the concepts interact), which avoids diluted, shallow results. Applied consistently across the MCP server, CLI, pi, and AI SDK tools. diff --git a/docs/agentic-tools/ai-sdk/tools/query-docs.mdx b/docs/agentic-tools/ai-sdk/tools/query-docs.mdx index 84525a4f..046315ee 100644 --- a/docs/agentic-tools/ai-sdk/tools/query-docs.mdx +++ b/docs/agentic-tools/ai-sdk/tools/query-docs.mdx @@ -63,7 +63,7 @@ The tool accepts the following inputs from the AI model: - The question or task you need help with. Be specific and include relevant details. Good: "How to set up authentication with JWT in Express.js" or "React useEffect cleanup function examples". Bad: "auth" or "hooks". + The question or task you need help with, scoped to a single concept. Be specific and include relevant details, but keep each query to one topic — if the user's question spans multiple distinct concepts, make a separate call per concept instead of combining them, unless the question is about how the concepts interact. Good: "How to set up authentication with JWT in Express.js" or "React useEffect cleanup function examples". Bad (too vague): "auth" or "hooks". Bad (too broad): "routing and auth and caching in Next.js". ### Output Format diff --git a/packages/cli/src/commands/docs.ts b/packages/cli/src/commands/docs.ts index a7f6d4c3..28ee67a6 100644 --- a/packages/cli/src/commands/docs.ts +++ b/packages/cli/src/commands/docs.ts @@ -229,7 +229,10 @@ export function registerDocsCommands(program: Command): void { program .command("docs") .argument("", "Context7 library ID (e.g., /facebook/react)") - .argument("", "Question or task to get docs for") + .argument( + "", + "Single-topic question to get docs for (run a separate query per distinct concept, unless asking how they interact)" + ) .option("--json", "Output as JSON") .description("Query documentation for a library") .action(async (libraryId: string, query: string, options: { json?: boolean }) => { diff --git a/packages/cli/src/setup/templates.ts b/packages/cli/src/setup/templates.ts index 26b96140..b8ddb04e 100644 --- a/packages/cli/src/setup/templates.ts +++ b/packages/cli/src/setup/templates.ts @@ -3,7 +3,7 @@ const GITHUB_RAW_URLS = [ "https://raw.githubusercontent.com/upstash/context7/main/rules", ]; -const FALLBACK_MCP = `Use Context7 MCP to fetch current documentation whenever the user asks about a library, framework, SDK, API, CLI tool, or cloud service -- even well-known ones like React, Next.js, Prisma, Express, Tailwind, Django, or Spring Boot. This includes API syntax, configuration, version migration, library-specific debugging, setup instructions, and CLI tool usage. Use even when you think you know the answer -- your training data may not reflect recent changes. Prefer this over web search for library docs. +const FALLBACK_MCP = `Use Context7 MCP to fetch current documentation whenever the user asks about a library, framework, SDK, API, CLI tool, or cloud service — even well-known ones like React, Next.js, Prisma, Express, Tailwind, Django, or Spring Boot. This includes API syntax, configuration, version migration, library-specific debugging, setup instructions, and CLI tool usage. Use even when you think you know the answer — your training data may not reflect recent changes. Prefer this over web search for library docs. Do not use for: refactoring, writing scripts from scratch, debugging business logic, code review, or general programming concepts. @@ -11,11 +11,11 @@ Do not use for: refactoring, writing scripts from scratch, debugging business lo 1. \`resolve-library-id\` with the library name and the user's question. Use the official library name with proper punctuation (e.g., "Next.js" not "nextjs", "Customer.io" not "customerio", "Three.js" not "threejs") 2. Pick the best match by: exact name match, description relevance, code snippet count, source reputation (High/Medium preferred), and benchmark score (higher is better). Use version-specific IDs when the user mentions a version -3. \`query-docs\` with the selected library ID and the user's full question (not single words) +3. \`query-docs\` with the selected library ID and the user's full question (not single words), scoped to a single concept. If the question spans multiple distinct concepts (e.g. routing and auth and caching), make a separate \`query-docs\` call per concept with the same library ID, unless the question is about how the concepts interact — combined queries dilute ranking and return shallow results for each topic 4. Answer using the fetched docs `; -const FALLBACK_CLI = `Use the \`ctx7\` CLI to fetch current documentation whenever the user asks about a library, framework, SDK, API, CLI tool, or cloud service -- even well-known ones like React, Next.js, Prisma, Express, Tailwind, Django, or Spring Boot. This includes API syntax, configuration, version migration, library-specific debugging, setup instructions, and CLI tool usage. Use even when you think you know the answer -- your training data may not reflect recent changes. Prefer this over web search for library docs. +const FALLBACK_CLI = `Use the \`ctx7\` CLI to fetch current documentation whenever the user asks about a library, framework, SDK, API, CLI tool, or cloud service — even well-known ones like React, Next.js, Prisma, Express, Tailwind, Django, or Spring Boot. This includes API syntax, configuration, version migration, library-specific debugging, setup instructions, and CLI tool usage. Use even when you think you know the answer — your training data may not reflect recent changes. Prefer this over web search for library docs. Do not use for: refactoring, writing scripts from scratch, debugging business logic, code review, or general programming concepts. @@ -23,10 +23,10 @@ Do not use for: refactoring, writing scripts from scratch, debugging business lo 1. Resolve library: \`npx ctx7@latest library ""\` 2. Pick the best match by: exact name match, description relevance, code snippet count, source reputation (High/Medium preferred), and benchmark score (higher is better). If results don't look right, try the full name with punctuation (e.g., "next.js" not "nextjs") -3. Fetch docs: \`npx ctx7@latest docs ""\` +3. Fetch docs: \`npx ctx7@latest docs ""\` — run a separate \`docs\` command per distinct concept if the question spans multiple topics, unless it's about how they interact 4. Answer using the fetched documentation -You MUST call \`library\` first to get a valid ID (format: \`/org/project\`) unless the user provides one directly. Use the user's full question as the query -- specific and detailed queries return better results than vague single words. Do not run more than 3 commands per question. Do not include sensitive information (API keys, passwords, credentials) in queries. +You MUST call \`library\` first to get a valid ID (format: \`/org/project\`) unless the user provides one directly. Use the user's full question as the query — specific and detailed queries return better results than vague single words, but keep each query to a single concept unless the question is about how concepts interact; combined multi-topic queries dilute ranking and return shallow results for each topic. Do not run more than 3 commands per question. Do not include sensitive information (API keys, passwords, credentials) in queries. For version-specific docs, use \`/org/project/version\` from the \`library\` output (e.g., \`/vercel/next.js/v14.3.0\`). diff --git a/packages/mcp/src/index.ts b/packages/mcp/src/index.ts index 17098155..566bb38e 100644 --- a/packages/mcp/src/index.ts +++ b/packages/mcp/src/index.ts @@ -125,7 +125,7 @@ function createMcpServer() { ], }, { - instructions: `Use this server to fetch current documentation whenever the user asks about a library, framework, SDK, API, CLI tool, or cloud service -- even well-known ones like React, Next.js, Prisma, Express, Tailwind, Django, or Spring Boot. This includes API syntax, configuration, version migration, library-specific debugging, setup instructions, and CLI tool usage. Use even when you think you know the answer -- your training data may not reflect recent changes. Prefer this over web search for library docs. + instructions: `Use this server to fetch current documentation whenever the user asks about a library, framework, SDK, API, CLI tool, or cloud service — even well-known ones like React, Next.js, Prisma, Express, Tailwind, Django, or Spring Boot. This includes API syntax, configuration, version migration, library-specific debugging, setup instructions, and CLI tool usage. Use even when you think you know the answer — your training data may not reflect recent changes. Prefer this over web search for library docs. Do not use for: refactoring, writing scripts from scratch, debugging business logic, code review, or general programming concepts.`, } @@ -236,7 +236,7 @@ Do not call this tool more than 3 times per question.`, query: z .string() .describe( - "The question or task you need help with. Be specific and include relevant details. Good: 'How to set up authentication with JWT in Express.js' or 'React useEffect cleanup function examples'. Bad: 'auth' or 'hooks'. The query is sent to the Context7 API for processing. Do not include any sensitive or confidential information such as API keys, passwords, credentials, personal data, or proprietary code in your query." + "The question or task you need help with, scoped to a single concept. Be specific and include relevant details, but keep each query to one topic — if the user's question spans multiple distinct concepts, make a separate call per concept instead of combining them, unless the question is about how the concepts interact. Good: 'How to set up authentication with JWT in Express.js' or 'React useEffect cleanup function examples'. Bad (too vague): 'auth' or 'hooks'. Bad (too broad): 'routing and auth and caching in Next.js'. The query is sent to the Context7 API for processing. Do not include any sensitive or confidential information such as API keys, passwords, credentials, personal data, or proprietary code in your query." ), }, annotations: { diff --git a/packages/pi/lib/prompts.ts b/packages/pi/lib/prompts.ts index e6b5525f..a4d1ba33 100644 --- a/packages/pi/lib/prompts.ts +++ b/packages/pi/lib/prompts.ts @@ -57,4 +57,4 @@ export const QUERY_DOCS_LIBRARY_ID_DESCRIPTION = "Exact Context7-compatible library ID (e.g., '/mongodb/docs', '/vercel/next.js', '/supabase/supabase', '/vercel/next.js/v14.3.0-canary.87') retrieved from 'resolve-library-id' or directly from user query in the format '/org/project' or '/org/project/version'."; export const QUERY_DOCS_QUERY_DESCRIPTION = - "The question or task you need help with. Be specific and include relevant details. Good: 'How to set up authentication with JWT in Express.js' or 'React useEffect cleanup function examples'. Bad: 'auth' or 'hooks'. The query is sent to the Context7 API for processing. Do not include any sensitive or confidential information such as API keys, passwords, credentials, personal data, or proprietary code in your query."; + "The question or task you need help with, scoped to a single concept. Be specific and include relevant details, but keep each query to one topic — if the user's question spans multiple distinct concepts, make a separate call per concept instead of combining them, unless the question is about how the concepts interact. Good: 'How to set up authentication with JWT in Express.js' or 'React useEffect cleanup function examples'. Bad (too vague): 'auth' or 'hooks'. Bad (too broad): 'routing and auth and caching in Next.js'. The query is sent to the Context7 API for processing. Do not include any sensitive or confidential information such as API keys, passwords, credentials, personal data, or proprietary code in your query."; diff --git a/packages/pi/skills/context7-docs/SKILL.md b/packages/pi/skills/context7-docs/SKILL.md index bacbd905..1556e311 100644 --- a/packages/pi/skills/context7-docs/SKILL.md +++ b/packages/pi/skills/context7-docs/SKILL.md @@ -33,7 +33,7 @@ Reach for these tools whenever a question involves a specific library, framework ## Workflow 1. **Resolve the library ID.** Call `resolve-library-id` with the library name and the user's question. The tool returns matching libraries with their Context7 IDs (`/org/project` format), descriptions, snippet counts, and quality scores. Pick the best match — prioritize official sources, name match, and high benchmark scores. -2. **Query the docs.** Call `query-docs` with the chosen library ID and the user's question. The tool returns documentation snippets and code examples. +2. **Query the docs.** Call `query-docs` with the chosen library ID and the user's question, scoped to a single concept — if the question spans multiple distinct concepts, make a separate call per concept with the same library ID, unless the question is about how the concepts interact. The tool returns documentation snippets and code examples. 3. **Answer.** Cite the library ID you used and quote code examples verbatim when relevant. If the user supplies a library ID in `/org/project` or `/org/project/version` format directly, skip step 1 and call `query-docs` immediately. diff --git a/packages/tools-ai-sdk/src/tools/query-docs.ts b/packages/tools-ai-sdk/src/tools/query-docs.ts index 8427c1bf..d07de22b 100644 --- a/packages/tools-ai-sdk/src/tools/query-docs.ts +++ b/packages/tools-ai-sdk/src/tools/query-docs.ts @@ -45,7 +45,7 @@ export function queryDocs(config: Context7ToolsConfig = {}) { query: z .string() .describe( - "The question or task you need help with. Be specific and include relevant details. Good: 'How to set up authentication with JWT in Express.js' or 'React useEffect cleanup function examples'. Bad: 'auth' or 'hooks'. IMPORTANT: Do not include any sensitive or confidential information such as API keys, passwords, credentials, or personal data in your query." + "The question or task you need help with, scoped to a single concept. Be specific and include relevant details, but keep each query to one topic — if the user's question spans multiple distinct concepts, make a separate call per concept instead of combining them, unless the question is about how the concepts interact. Good: 'How to set up authentication with JWT in Express.js' or 'React useEffect cleanup function examples'. Bad (too vague): 'auth' or 'hooks'. Bad (too broad): 'routing and auth and caching in Next.js'. IMPORTANT: Do not include any sensitive or confidential information such as API keys, passwords, credentials, or personal data in your query." ), }), execute: async ({ libraryId, query }: { libraryId: string; query: string }) => { diff --git a/plugins/claude/context7/agents/docs-researcher.md b/plugins/claude/context7/agents/docs-researcher.md index ec7e8aa0..ebd408a6 100644 --- a/plugins/claude/context7/agents/docs-researcher.md +++ b/plugins/claude/context7/agents/docs-researcher.md @@ -25,7 +25,7 @@ When given a question about a library or framework, fetch the relevant documenta 4. **Fetch documentation**: Call `query-docs` with: - `libraryId`: The selected Context7 library ID (e.g., `/vercel/next.js`) - - `query`: The user's specific question for targeted results + - `query`: The user's specific question for targeted results, scoped to a single concept 5. **Return a focused answer**: Summarize the relevant documentation with: - Direct answer to the question @@ -34,7 +34,8 @@ When given a question about a library or framework, fetch the relevant documenta ## Guidelines -- Pass the user's full question as the query parameter for better relevance +- Pass the user's full question as the query parameter for better relevance, but keep each query to a single concept +- If the question spans multiple distinct concepts (e.g. routing and auth and caching), make a separate `query-docs` call per concept with the same library ID, unless the question is about how the concepts interact — combined queries dilute ranking and return shallow results for each topic - When the user mentions a version (e.g., "Next.js 15"), use version-specific library IDs if available - If `resolve-library-id` returns multiple matches, prefer official/primary packages over community forks - Keep responses concise - the goal is to answer the question, not dump entire documentation diff --git a/plugins/claude/context7/commands/docs.md b/plugins/claude/context7/commands/docs.md index 8a2df781..1e6415d1 100644 --- a/plugins/claude/context7/commands/docs.md +++ b/plugins/claude/context7/commands/docs.md @@ -14,7 +14,7 @@ Fetches up-to-date documentation and code examples for a library. ``` - **library**: The library name, or a Context7 ID starting with `/` -- **query**: What you're looking for (optional but recommended) +- **query**: What you're looking for (optional but recommended; run the command once per distinct concept, unless asking how they interact) ## Examples diff --git a/plugins/claude/context7/skills/context7-mcp/SKILL.md b/plugins/claude/context7/skills/context7-mcp/SKILL.md index 234659d9..245b0800 100644 --- a/plugins/claude/context7/skills/context7-mcp/SKILL.md +++ b/plugins/claude/context7/skills/context7-mcp/SKILL.md @@ -36,7 +36,9 @@ From the resolution results, choose based on: Call `query-docs` with: - `libraryId`: The selected Context7 library ID (e.g., `/vercel/next.js`) -- `query`: The user's specific question +- `query`: The user's specific question, scoped to a single concept + +If the user's question spans multiple distinct concepts (e.g. routing and auth and caching), make a separate `query-docs` call per concept with the same library ID, unless the question is about how the concepts interact — combined queries dilute ranking and return shallow results for each topic. ### Step 4: Use the Documentation @@ -48,6 +50,7 @@ Incorporate the fetched documentation into your response: ## Guidelines -- **Be specific**: Pass the user's full question as the query for better results +- **Be specific**: Pass the user's full question as the query for better results, but keep each query to a single concept +- **One topic per query**: Split multi-topic questions into separate `query-docs` calls — resolve the library ID once, then query per concept, unless the question is about how the concepts interact - **Version awareness**: When users mention versions ("Next.js 15", "React 19"), use version-specific library IDs if available from the resolution step - **Prefer official sources**: When multiple matches exist, prefer official/primary packages over community forks diff --git a/plugins/codex/context7/skills/context7-mcp/SKILL.md b/plugins/codex/context7/skills/context7-mcp/SKILL.md index 234659d9..245b0800 100644 --- a/plugins/codex/context7/skills/context7-mcp/SKILL.md +++ b/plugins/codex/context7/skills/context7-mcp/SKILL.md @@ -36,7 +36,9 @@ From the resolution results, choose based on: Call `query-docs` with: - `libraryId`: The selected Context7 library ID (e.g., `/vercel/next.js`) -- `query`: The user's specific question +- `query`: The user's specific question, scoped to a single concept + +If the user's question spans multiple distinct concepts (e.g. routing and auth and caching), make a separate `query-docs` call per concept with the same library ID, unless the question is about how the concepts interact — combined queries dilute ranking and return shallow results for each topic. ### Step 4: Use the Documentation @@ -48,6 +50,7 @@ Incorporate the fetched documentation into your response: ## Guidelines -- **Be specific**: Pass the user's full question as the query for better results +- **Be specific**: Pass the user's full question as the query for better results, but keep each query to a single concept +- **One topic per query**: Split multi-topic questions into separate `query-docs` calls — resolve the library ID once, then query per concept, unless the question is about how the concepts interact - **Version awareness**: When users mention versions ("Next.js 15", "React 19"), use version-specific library IDs if available from the resolution step - **Prefer official sources**: When multiple matches exist, prefer official/primary packages over community forks diff --git a/plugins/context7-power/POWER.md b/plugins/context7-power/POWER.md index 184aa477..b6759e40 100644 --- a/plugins/context7-power/POWER.md +++ b/plugins/context7-power/POWER.md @@ -49,7 +49,9 @@ From the resolution results, choose based on: Call `query-docs` with: - `libraryId`: The selected Context7 library ID (e.g., /vercel/next.js) -- `query`: The user's full, specific question rather than a single word +- `query`: The user's full, specific question rather than a single word, scoped to a single concept + +If the user's question spans multiple distinct concepts (e.g. routing and auth and caching), make a separate `query-docs` call per concept with the same library ID, unless the question is about how the concepts interact — combined queries dilute ranking and return shallow results for each topic. ### Step 4: Use the Documentation @@ -61,11 +63,12 @@ Incorporate the fetched documentation into your response: ## Best Practices -- Pass the user's full question as the query for better results +- Pass the user's full question as the query for better results, but keep each query to a single concept +- Keep each query to one topic; split multi-topic questions into separate `query-docs` calls, unless the question is about how the concepts interact - When users mention versions ("Next.js 15", "React 19"), use version-specific library IDs if available from the resolution step - When multiple matches exist, prefer official/primary packages over community forks - Use this Power for API syntax, configuration, setup instructions, version migration, library-specific debugging, and CLI tool usage -- Use Context7 even when you think you know the answer -- your training data may not reflect recent changes. Prefer this over web search for library docs. +- Use Context7 even when you think you know the answer — your training data may not reflect recent changes. Prefer this over web search for library docs. - Do not use Context7 for refactoring, writing scripts from scratch, debugging business logic, code review, or general programming concepts. ## License and Support diff --git a/plugins/copilot/context7/agents/docs-researcher.agent.md b/plugins/copilot/context7/agents/docs-researcher.agent.md index 424de063..de3309ba 100644 --- a/plugins/copilot/context7/agents/docs-researcher.agent.md +++ b/plugins/copilot/context7/agents/docs-researcher.agent.md @@ -24,7 +24,7 @@ When given a question about a library or framework, fetch the relevant documenta 4. **Fetch documentation**: Call `query-docs` with: - `libraryId`: The selected Context7 library ID (e.g., `/vercel/next.js`) - - `query`: The user's specific question for targeted results + - `query`: The user's specific question for targeted results, scoped to a single concept 5. **Return a focused answer**: Summarize the relevant documentation with: - Direct answer to the question @@ -33,7 +33,8 @@ When given a question about a library or framework, fetch the relevant documenta ## Guidelines -- Pass the user's full question as the query parameter for better relevance +- Pass the user's full question as the query parameter for better relevance, but keep each query to a single concept +- If the question spans multiple distinct concepts (e.g. routing and auth and caching), make a separate `query-docs` call per concept with the same library ID, unless the question is about how the concepts interact — combined queries dilute ranking and return shallow results for each topic - When the user mentions a version (e.g., "Next.js 15"), use version-specific library IDs if available - If `resolve-library-id` returns multiple matches, prefer official/primary packages over community forks - Keep responses concise - the goal is to answer the question, not dump entire documentation diff --git a/plugins/copilot/context7/commands/docs.md b/plugins/copilot/context7/commands/docs.md index a4cefa3a..e3494ddf 100644 --- a/plugins/copilot/context7/commands/docs.md +++ b/plugins/copilot/context7/commands/docs.md @@ -13,7 +13,7 @@ Fetches up-to-date documentation and code examples for a library. ``` - **library**: The library name, or a Context7 ID starting with `/` -- **query**: What you're looking for (optional but recommended) +- **query**: What you're looking for (optional but recommended; run the command once per distinct concept, unless asking how they interact) ## Examples diff --git a/plugins/copilot/context7/skills/context7-mcp/SKILL.md b/plugins/copilot/context7/skills/context7-mcp/SKILL.md index 234659d9..245b0800 100644 --- a/plugins/copilot/context7/skills/context7-mcp/SKILL.md +++ b/plugins/copilot/context7/skills/context7-mcp/SKILL.md @@ -36,7 +36,9 @@ From the resolution results, choose based on: Call `query-docs` with: - `libraryId`: The selected Context7 library ID (e.g., `/vercel/next.js`) -- `query`: The user's specific question +- `query`: The user's specific question, scoped to a single concept + +If the user's question spans multiple distinct concepts (e.g. routing and auth and caching), make a separate `query-docs` call per concept with the same library ID, unless the question is about how the concepts interact — combined queries dilute ranking and return shallow results for each topic. ### Step 4: Use the Documentation @@ -48,6 +50,7 @@ Incorporate the fetched documentation into your response: ## Guidelines -- **Be specific**: Pass the user's full question as the query for better results +- **Be specific**: Pass the user's full question as the query for better results, but keep each query to a single concept +- **One topic per query**: Split multi-topic questions into separate `query-docs` calls — resolve the library ID once, then query per concept, unless the question is about how the concepts interact - **Version awareness**: When users mention versions ("Next.js 15", "React 19"), use version-specific library IDs if available from the resolution step - **Prefer official sources**: When multiple matches exist, prefer official/primary packages over community forks diff --git a/plugins/cursor/context7/agents/docs-researcher.md b/plugins/cursor/context7/agents/docs-researcher.md index 424de063..de3309ba 100644 --- a/plugins/cursor/context7/agents/docs-researcher.md +++ b/plugins/cursor/context7/agents/docs-researcher.md @@ -24,7 +24,7 @@ When given a question about a library or framework, fetch the relevant documenta 4. **Fetch documentation**: Call `query-docs` with: - `libraryId`: The selected Context7 library ID (e.g., `/vercel/next.js`) - - `query`: The user's specific question for targeted results + - `query`: The user's specific question for targeted results, scoped to a single concept 5. **Return a focused answer**: Summarize the relevant documentation with: - Direct answer to the question @@ -33,7 +33,8 @@ When given a question about a library or framework, fetch the relevant documenta ## Guidelines -- Pass the user's full question as the query parameter for better relevance +- Pass the user's full question as the query parameter for better relevance, but keep each query to a single concept +- If the question spans multiple distinct concepts (e.g. routing and auth and caching), make a separate `query-docs` call per concept with the same library ID, unless the question is about how the concepts interact — combined queries dilute ranking and return shallow results for each topic - When the user mentions a version (e.g., "Next.js 15"), use version-specific library IDs if available - If `resolve-library-id` returns multiple matches, prefer official/primary packages over community forks - Keep responses concise - the goal is to answer the question, not dump entire documentation diff --git a/plugins/cursor/context7/skills/context7-mcp/SKILL.md b/plugins/cursor/context7/skills/context7-mcp/SKILL.md index 234659d9..245b0800 100644 --- a/plugins/cursor/context7/skills/context7-mcp/SKILL.md +++ b/plugins/cursor/context7/skills/context7-mcp/SKILL.md @@ -36,7 +36,9 @@ From the resolution results, choose based on: Call `query-docs` with: - `libraryId`: The selected Context7 library ID (e.g., `/vercel/next.js`) -- `query`: The user's specific question +- `query`: The user's specific question, scoped to a single concept + +If the user's question spans multiple distinct concepts (e.g. routing and auth and caching), make a separate `query-docs` call per concept with the same library ID, unless the question is about how the concepts interact — combined queries dilute ranking and return shallow results for each topic. ### Step 4: Use the Documentation @@ -48,6 +50,7 @@ Incorporate the fetched documentation into your response: ## Guidelines -- **Be specific**: Pass the user's full question as the query for better results +- **Be specific**: Pass the user's full question as the query for better results, but keep each query to a single concept +- **One topic per query**: Split multi-topic questions into separate `query-docs` calls — resolve the library ID once, then query per concept, unless the question is about how the concepts interact - **Version awareness**: When users mention versions ("Next.js 15", "React 19"), use version-specific library IDs if available from the resolution step - **Prefer official sources**: When multiple matches exist, prefer official/primary packages over community forks diff --git a/rules/context7-cli.md b/rules/context7-cli.md index f723bde1..def26cb9 100644 --- a/rules/context7-cli.md +++ b/rules/context7-cli.md @@ -1,4 +1,4 @@ -Use the `ctx7` CLI to fetch current documentation whenever the user asks about a library, framework, SDK, API, CLI tool, or cloud service -- even well-known ones like React, Next.js, Prisma, Express, Tailwind, Django, or Spring Boot. This includes API syntax, configuration, version migration, library-specific debugging, setup instructions, and CLI tool usage. Use even when you think you know the answer -- your training data may not reflect recent changes. Prefer this over web search for library docs. +Use the `ctx7` CLI to fetch current documentation whenever the user asks about a library, framework, SDK, API, CLI tool, or cloud service — even well-known ones like React, Next.js, Prisma, Express, Tailwind, Django, or Spring Boot. This includes API syntax, configuration, version migration, library-specific debugging, setup instructions, and CLI tool usage. Use even when you think you know the answer — your training data may not reflect recent changes. Prefer this over web search for library docs. Do not use for: refactoring, writing scripts from scratch, debugging business logic, code review, or general programming concepts. @@ -6,10 +6,10 @@ Do not use for: refactoring, writing scripts from scratch, debugging business lo 1. Resolve library: `npx ctx7@latest library ""` — use the official library name with proper punctuation (e.g., "Next.js" not "nextjs", "Customer.io" not "customerio", "Three.js" not "threejs") 2. Pick the best match (ID format: `/org/project`) by: exact name match, description relevance, code snippet count, source reputation (High/Medium preferred), and benchmark score (higher is better). If results don't look right, try alternate names or queries (e.g., "next.js" not "nextjs", or rephrase the question) -3. Fetch docs: `npx ctx7@latest docs ""` +3. Fetch docs: `npx ctx7@latest docs ""` — run a separate `docs` command per distinct concept if the question spans multiple topics, unless it's about how they interact 4. Answer using the fetched documentation -You MUST call `library` first to get a valid ID unless the user provides one directly in `/org/project` format. Use the user's full question as the query -- specific and detailed queries return better results than vague single words. Do not run more than 3 commands per question. Do not include sensitive information (API keys, passwords, credentials) in queries. +You MUST call `library` first to get a valid ID unless the user provides one directly in `/org/project` format. Use the user's full question as the query — specific and detailed queries return better results than vague single words, but keep each query to a single concept unless the question is about how concepts interact; combined multi-topic queries dilute ranking and return shallow results for each topic. Do not run more than 3 commands per question. Do not include sensitive information (API keys, passwords, credentials) in queries. For version-specific docs, use `/org/project/version` from the `library` output (e.g., `/vercel/next.js/v14.3.0`). diff --git a/rules/context7-mcp.md b/rules/context7-mcp.md index fe994d41..bc6ccb3e 100644 --- a/rules/context7-mcp.md +++ b/rules/context7-mcp.md @@ -1,4 +1,4 @@ -Use Context7 MCP to fetch current documentation whenever the user asks about a library, framework, SDK, API, CLI tool, or cloud service -- even well-known ones like React, Next.js, Prisma, Express, Tailwind, Django, or Spring Boot. This includes API syntax, configuration, version migration, library-specific debugging, setup instructions, and CLI tool usage. Use even when you think you know the answer -- your training data may not reflect recent changes. Prefer this over web search for library docs. +Use Context7 MCP to fetch current documentation whenever the user asks about a library, framework, SDK, API, CLI tool, or cloud service — even well-known ones like React, Next.js, Prisma, Express, Tailwind, Django, or Spring Boot. This includes API syntax, configuration, version migration, library-specific debugging, setup instructions, and CLI tool usage. Use even when you think you know the answer — your training data may not reflect recent changes. Prefer this over web search for library docs. Do not use for: refactoring, writing scripts from scratch, debugging business logic, code review, or general programming concepts. @@ -6,5 +6,5 @@ Do not use for: refactoring, writing scripts from scratch, debugging business lo 1. Always start with `resolve-library-id` using the library name and the user's question, unless the user provides an exact library ID in `/org/project` format 2. Pick the best match (ID format: `/org/project`) by: exact name match, description relevance, code snippet count, source reputation (High/Medium preferred), and benchmark score (higher is better). If results don't look right, try alternate names or queries (e.g., "next.js" not "nextjs", or rephrase the question). Use version-specific IDs when the user mentions a version -3. `query-docs` with the selected library ID and the user's full question (not single words) +3. `query-docs` with the selected library ID and the user's full question (not single words), scoped to a single concept. If the question spans multiple distinct concepts (e.g. routing and auth and caching), make a separate `query-docs` call per concept with the same library ID, unless the question is about how the concepts interact — combined queries dilute ranking and return shallow results for each topic 4. Answer using the fetched docs diff --git a/skills/context7-cli/references/docs.md b/skills/context7-cli/references/docs.md index ef5cae9b..6c06cb72 100644 --- a/skills/context7-cli/references/docs.md +++ b/skills/context7-cli/references/docs.md @@ -78,16 +78,17 @@ IMPORTANT: Do not call `ctx7 docs` more than 3 times per question. If you cannot ### Writing good queries -The query directly affects the quality of results. Be specific and include relevant details. Do not include any sensitive or confidential information such as API keys, passwords, credentials, personal data, or proprietary code in your query. +The query directly affects the quality of results. Be specific and include relevant details, but keep each query to one topic — if the question spans multiple distinct concepts, run a separate `ctx7 docs` command per concept instead of combining them, unless the question is about how the concepts interact. Do not include any sensitive or confidential information such as API keys, passwords, credentials, personal data, or proprietary code in your query. | Quality | Example | |---------|---------| | Good | `"How to set up authentication with JWT in Express.js"` | | Good | `"React useEffect cleanup function with async operations"` | -| Bad | `"auth"` | -| Bad | `"hooks"` | +| Bad (too vague) | `"auth"` | +| Bad (too vague) | `"hooks"` | +| Bad (too broad) | `"routing and auth and caching in Next.js"` | -Use the user's full question as the query when possible — vague one-word queries return generic results. +Use the user's full question as the query when possible — vague one-word queries return generic results, and multi-topic queries dilute ranking and return shallow results for each topic. The output contains two types of content: **code snippets** (titled, with language-tagged blocks) and **info snippets** (prose explanations with breadcrumb context). diff --git a/skills/context7-mcp/SKILL.md b/skills/context7-mcp/SKILL.md index 234659d9..245b0800 100644 --- a/skills/context7-mcp/SKILL.md +++ b/skills/context7-mcp/SKILL.md @@ -36,7 +36,9 @@ From the resolution results, choose based on: Call `query-docs` with: - `libraryId`: The selected Context7 library ID (e.g., `/vercel/next.js`) -- `query`: The user's specific question +- `query`: The user's specific question, scoped to a single concept + +If the user's question spans multiple distinct concepts (e.g. routing and auth and caching), make a separate `query-docs` call per concept with the same library ID, unless the question is about how the concepts interact — combined queries dilute ranking and return shallow results for each topic. ### Step 4: Use the Documentation @@ -48,6 +50,7 @@ Incorporate the fetched documentation into your response: ## Guidelines -- **Be specific**: Pass the user's full question as the query for better results +- **Be specific**: Pass the user's full question as the query for better results, but keep each query to a single concept +- **One topic per query**: Split multi-topic questions into separate `query-docs` calls — resolve the library ID once, then query per concept, unless the question is about how the concepts interact - **Version awareness**: When users mention versions ("Next.js 15", "React 19"), use version-specific library IDs if available from the resolution step - **Prefer official sources**: When multiple matches exist, prefer official/primary packages over community forks diff --git a/skills/find-docs/SKILL.md b/skills/find-docs/SKILL.md index 9125d077..da5f683c 100644 --- a/skills/find-docs/SKILL.md +++ b/skills/find-docs/SKILL.md @@ -3,7 +3,7 @@ name: find-docs description: >- Retrieves up-to-date documentation, API references, and code examples for any developer technology. Use this skill whenever the user asks about a specific - library, framework, SDK, CLI tool, or cloud service -- even for well-known ones + library, framework, SDK, CLI tool, or cloud service — even for well-known ones like React, Next.js, Prisma, Express, Tailwind, Django, or Spring Boot. Your training data may not reflect recent API changes or version updates. @@ -11,7 +11,7 @@ description: >- issues, "how do I" questions mentioning a library name, debugging that involves library-specific behavior, setup instructions, and CLI tool usage. - Use even when you think you know the answer -- do not rely on training data + Use even when you think you know the answer — do not rely on training data for API details, signatures, or configuration options as they are frequently outdated. Always verify against current docs. Prefer this over web search for library documentation and API details. @@ -115,16 +115,17 @@ npx ctx7@latest docs /prisma/prisma "How to define one-to-many relations with ca ### Writing good queries -The query directly affects the quality of results. Be specific and include relevant details. Do not include any sensitive or confidential information such as API keys, passwords, credentials, personal data, or proprietary code in your query. +The query directly affects the quality of results. Be specific and include relevant details, but keep each query to one topic — if the question spans multiple distinct concepts, run a separate `docs` command per concept instead of combining them, unless the question is about how the concepts interact. Do not include any sensitive or confidential information such as API keys, passwords, credentials, personal data, or proprietary code in your query. | Quality | Example | |---------|---------| | Good | `"How to set up authentication with JWT in Express.js"` | | Good | `"React useEffect cleanup function with async operations"` | -| Bad | `"auth"` | -| Bad | `"hooks"` | +| Bad (too vague) | `"auth"` | +| Bad (too vague) | `"hooks"` | +| Bad (too broad) | `"routing and auth and caching in Next.js"` | -Use the user's full question as the query when possible, vague one-word queries return generic results. +Use the user's full question as the query when possible — vague one-word queries return generic results, and multi-topic queries dilute ranking and return shallow results for each topic. The output contains two types of content: **code snippets** (titled, with language-tagged blocks) and **info snippets** (prose explanations with breadcrumb context). @@ -154,4 +155,5 @@ Do not silently fall back to training data — always tell the user why Context7 - Library IDs require a `/` prefix — `/facebook/react` not `facebook/react` - Always run `npx ctx7@latest library` first — `npx ctx7@latest docs react "hooks"` will fail without a valid ID - Use descriptive queries, not single words — `"React useEffect cleanup function"` not `"hooks"` +- One topic per query — split `"routing and auth and caching"` into a separate `docs` command per concept, unless the question is about how they interact - Do not include sensitive information (API keys, passwords, credentials) in queries From 98baa58d3625e2529e000f1c9f658fff25081bbb Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Mon, 6 Jul 2026 15:31:33 +0300 Subject: [PATCH 08/18] chore(release): version packages (#2878) --- .changeset/loud-camels-visit.md | 5 ----- .changeset/plenty-wasps-retire.md | 8 -------- packages/cli/CHANGELOG.md | 6 ++++++ packages/cli/package.json | 2 +- packages/mcp/CHANGELOG.md | 7 +++++++ packages/mcp/package.json | 2 +- packages/pi/CHANGELOG.md | 6 ++++++ packages/pi/package.json | 2 +- packages/tools-ai-sdk/CHANGELOG.md | 6 ++++++ packages/tools-ai-sdk/package.json | 2 +- 10 files changed, 29 insertions(+), 17 deletions(-) delete mode 100644 .changeset/loud-camels-visit.md delete mode 100644 .changeset/plenty-wasps-retire.md diff --git a/.changeset/loud-camels-visit.md b/.changeset/loud-camels-visit.md deleted file mode 100644 index 0332b200..00000000 --- a/.changeset/loud-camels-visit.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -"@upstash/context7-mcp": patch ---- - -Skip loopback (`127.0.0.0/8`), link-local (`169.254.0.0/16`), CGNAT (`100.64.0.0/10`), IPv6 loopback (`::1`), IPv6 link-local (`fe80::/10`), and IPv6 unique-local (`fc00::/7`) addresses when extracting the client IP from `X-Forwarded-For`, so proxy-internal hops no longer pollute the reported client IP. diff --git a/.changeset/plenty-wasps-retire.md b/.changeset/plenty-wasps-retire.md deleted file mode 100644 index ec779e0a..00000000 --- a/.changeset/plenty-wasps-retire.md +++ /dev/null @@ -1,8 +0,0 @@ ---- -"@upstash/context7-tools-ai-sdk": patch -"ctx7": patch -"@upstash/context7-mcp": patch -"@upstash/context7-pi": patch ---- - -Clarify the `query-docs` query description so it asks for a single concept per query. When a question spans multiple distinct topics, callers are now told to make a separate query per concept instead of combining them (unless the question is about how the concepts interact), which avoids diluted, shallow results. Applied consistently across the MCP server, CLI, pi, and AI SDK tools. diff --git a/packages/cli/CHANGELOG.md b/packages/cli/CHANGELOG.md index 2e9978d9..45fbe3af 100644 --- a/packages/cli/CHANGELOG.md +++ b/packages/cli/CHANGELOG.md @@ -1,5 +1,11 @@ # Changelog +## 0.5.4 + +### Patch Changes + +- 33229cb: Clarify the `query-docs` query description so it asks for a single concept per query. When a question spans multiple distinct topics, callers are now told to make a separate query per concept instead of combining them (unless the question is about how the concepts interact), which avoids diluted, shallow results. Applied consistently across the MCP server, CLI, pi, and AI SDK tools. + ## 0.5.3 ### Patch Changes diff --git a/packages/cli/package.json b/packages/cli/package.json index 24dc59b8..18023cac 100644 --- a/packages/cli/package.json +++ b/packages/cli/package.json @@ -1,6 +1,6 @@ { "name": "ctx7", - "version": "0.5.3", + "version": "0.5.4", "description": "Context7 CLI - Fetch documentation context and configure Context7", "type": "module", "bin": { diff --git a/packages/mcp/CHANGELOG.md b/packages/mcp/CHANGELOG.md index 0dbd6fd6..cd3b15c9 100644 --- a/packages/mcp/CHANGELOG.md +++ b/packages/mcp/CHANGELOG.md @@ -1,5 +1,12 @@ # @upstash/context7-mcp +## 3.2.3 + +### Patch Changes + +- 41878ec: Skip loopback (`127.0.0.0/8`), link-local (`169.254.0.0/16`), CGNAT (`100.64.0.0/10`), IPv6 loopback (`::1`), IPv6 link-local (`fe80::/10`), and IPv6 unique-local (`fc00::/7`) addresses when extracting the client IP from `X-Forwarded-For`, so proxy-internal hops no longer pollute the reported client IP. +- 33229cb: Clarify the `query-docs` query description so it asks for a single concept per query. When a question spans multiple distinct topics, callers are now told to make a separate query per concept instead of combining them (unless the question is about how the concepts interact), which avoids diluted, shallow results. Applied consistently across the MCP server, CLI, pi, and AI SDK tools. + ## 3.2.2 ### Patch Changes diff --git a/packages/mcp/package.json b/packages/mcp/package.json index 1dfa279b..37044f11 100644 --- a/packages/mcp/package.json +++ b/packages/mcp/package.json @@ -1,6 +1,6 @@ { "name": "@upstash/context7-mcp", - "version": "3.2.2", + "version": "3.2.3", "mcpName": "io.github.upstash/context7", "description": "MCP server for Context7", "scripts": { diff --git a/packages/pi/CHANGELOG.md b/packages/pi/CHANGELOG.md index d0ed308f..f57bc6b2 100644 --- a/packages/pi/CHANGELOG.md +++ b/packages/pi/CHANGELOG.md @@ -1,5 +1,11 @@ # @upstash/context7-pi +## 0.1.1 + +### Patch Changes + +- 33229cb: Clarify the `query-docs` query description so it asks for a single concept per query. When a question spans multiple distinct topics, callers are now told to make a separate query per concept instead of combining them (unless the question is about how the concepts interact), which avoids diluted, shallow results. Applied consistently across the MCP server, CLI, pi, and AI SDK tools. + ## 0.1.0 ### Minor Changes diff --git a/packages/pi/package.json b/packages/pi/package.json index 2cd5eaa1..d9dd189b 100644 --- a/packages/pi/package.json +++ b/packages/pi/package.json @@ -1,6 +1,6 @@ { "name": "@upstash/context7-pi", - "version": "0.1.0", + "version": "0.1.1", "description": "Official Context7 extension for pi.dev — adds resolve-library-id and query-docs tools to the pi coding agent", "type": "module", "pi": { diff --git a/packages/tools-ai-sdk/CHANGELOG.md b/packages/tools-ai-sdk/CHANGELOG.md index 85fd3ada..388d50cc 100644 --- a/packages/tools-ai-sdk/CHANGELOG.md +++ b/packages/tools-ai-sdk/CHANGELOG.md @@ -1,5 +1,11 @@ # @upstash/context7-tools-ai-sdk +## 0.2.4 + +### Patch Changes + +- 33229cb: Clarify the `query-docs` query description so it asks for a single concept per query. When a question spans multiple distinct topics, callers are now told to make a separate query per concept instead of combining them (unless the question is about how the concepts interact), which avoids diluted, shallow results. Applied consistently across the MCP server, CLI, pi, and AI SDK tools. + ## 0.2.3 ### Patch Changes diff --git a/packages/tools-ai-sdk/package.json b/packages/tools-ai-sdk/package.json index 9e716161..7a21c6ea 100644 --- a/packages/tools-ai-sdk/package.json +++ b/packages/tools-ai-sdk/package.json @@ -1,6 +1,6 @@ { "name": "@upstash/context7-tools-ai-sdk", - "version": "0.2.3", + "version": "0.2.4", "description": "Context7 tools for Vercel AI SDK", "type": "module", "main": "./dist/index.cjs", From 7366cca8d279cb47f42a413f876d1625fffe46e7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fahreddin=20=C3=96zcan?= <88107904+fahreddinozcan@users.noreply.github.com> Date: Tue, 7 Jul 2026 11:26:40 +0300 Subject: [PATCH 09/18] docs(enterprise): Confluence integration page (#2879) * docs(enterprise): add Confluence integration page Document connecting Confluence (Cloud and self-hosted Data Center) and indexing a space from Add. Includes screenshots and a nav entry under Enterprise > Integrations. * docs(enterprise): wider Confluence settings screenshot with mock site URL --- docs/docs.json | 3 +- docs/enterprise/integrations/confluence.mdx | 82 ++++++++++++++++++ .../integrations/confluence-add.png | Bin 0 -> 150245 bytes .../integrations/confluence-settings.png | Bin 0 -> 102444 bytes .../integrations/confluence-source.png | Bin 0 -> 66431 bytes 5 files changed, 84 insertions(+), 1 deletion(-) create mode 100644 docs/enterprise/integrations/confluence.mdx create mode 100644 docs/images/enterprise/integrations/confluence-add.png create mode 100644 docs/images/enterprise/integrations/confluence-settings.png create mode 100644 docs/images/enterprise/integrations/confluence-source.png diff --git a/docs/docs.json b/docs/docs.json index bf57e396..f63cc06d 100644 --- a/docs/docs.json +++ b/docs/docs.json @@ -76,7 +76,8 @@ { "group": "Integrations", "pages": [ - "enterprise/integrations/github" + "enterprise/integrations/github", + "enterprise/integrations/confluence" ] }, { diff --git a/docs/enterprise/integrations/confluence.mdx b/docs/enterprise/integrations/confluence.mdx new file mode 100644 index 00000000..69c974da --- /dev/null +++ b/docs/enterprise/integrations/confluence.mdx @@ -0,0 +1,82 @@ +--- +title: "Confluence Integration" +sidebarTitle: "Confluence" +description: "Index Confluence spaces from Atlassian Cloud or a self-hosted Data Center instance" +--- + +Context7 can index the pages of a Confluence space and serve them like any other library. It works with **Atlassian Cloud** and with self-hosted **Data Center / Server**. + +An admin connects Confluence once under **Settings → Integrations** using an API token. After that, anyone who can add libraries picks a space and pages from **Add → Confluence**. There is no OAuth app to register, which keeps the setup self-contained on your own infrastructure. + + +Confluence pages are behind authentication, so Context7 reaches them with the token you configure. The token needs read access to the spaces you want to index. + + +## Connect Confluence + +Open **Settings → Integrations → Confluence**, choose your deployment, fill in the fields, and use **Test connection** to confirm before saving. + + + ![Confluence integration settings with the Data Center deployment selected](/images/enterprise/integrations/confluence-settings.png) + + + + + | Field | Value | + | ----- | ----- | + | Deployment | Cloud | + | Site URL | `https://your-company.atlassian.net` | + | Email | The account email that owns the token | + | API Token | Create one at [id.atlassian.com](https://id.atlassian.com/manage-profile/security/api-tokens) | + + Cloud uses the Confluence v2 REST API and authenticates with the email and API token together. + + + | Field | Value | + | ----- | ----- | + | Deployment | Data Center | + | Site URL | `https://confluence.your-company.com` (include the context path if your install uses one, for example `/confluence`) | + | Email | Leave blank | + | Personal Access Token | Create one in Confluence under your profile, **Personal Access Tokens** | + + Data Center uses the v1 REST API and authenticates with a Personal Access Token. Personal Access Tokens require Confluence 7.9 or later. If your instance uses basic auth instead, put the username in the Email field and the password in the token field. + + + + +Point Context7 at a service account rather than a personal login, so indexing does not depend on one person's access. + + +## Index a space + +Go to **Add** and choose **Confluence**. + + + ![The Add Libraries source picker with a Confluence tile](/images/enterprise/integrations/confluence-source.png) + + +Pick a space, then choose which pages to index. The page tree mirrors the space hierarchy, so selecting a parent selects its children. Give the project a title and description if you want to override the auto-detected ones, then choose **Start Parsing**. + + + ![Selecting a Confluence space and pages, with the page tree and Start Parsing button](/images/enterprise/integrations/confluence-add.png) + + + + + Choose the space from the dropdown. Context7 lists every space the configured token can read. + + + Tick individual pages, or use **Select all** to index the whole space. Use the search box to filter a large space. + + + Context7 fetches the pages, converts them to Markdown (code blocks, tables, and callouts are preserved), and indexes them. The project appears under your libraries when it finishes. + + + + +**Select all** indexes the whole space, so a later refresh also picks up pages added since. Selecting a specific subset pins the project to exactly those pages. + + +## Refresh and delete + +A Confluence project behaves like any other library. **Refresh** re-indexes the space using the stored selection and the current admin token, so rotating the token in Settings updates future refreshes without editing the project. **Delete** removes the project and its indexed content. diff --git a/docs/images/enterprise/integrations/confluence-add.png b/docs/images/enterprise/integrations/confluence-add.png new file mode 100644 index 0000000000000000000000000000000000000000..bc1a596033c211ed599b0d0bef4fc9dce6ddb985 GIT binary patch literal 150245 zcmd?Rhc{ep_dcE{iAV^dM^7O-LG&O}h~ACfJENEA2|);=jfpN{^wB$`Cfew|ml)mX zW|YDAj9j80S9cKKtx)UDw_x;i}5ALu`l+Sc$$9HX~M`*Ic zndYfUZ9~JWvX=^Th6`7Q55#whJf zOLP_m%5segMa_nH`m%c>kc|Pj@b8Zadr=V_^~DTqX~}(6Q(j(HR#v4}1h2{-?a4e3 zy{wXdtD;R%d8*!nXn1iY<-M}Dy1KSPg<4%%BR%=OdEis)raPmfKQ*m0GpRQ-%`sko zqWN8K4qy1eH?0P+$F7sX>B4muUQTgd)`kbh=XyUo#>e}|wF9!F(yJPaikW|n#|7T_ z@0nWAyi!ueLBrQC0uK(0y9SVb-FadnfC) zMO70m6PS)6T3@mo4v}VPjga10EO)0~&rMB%KvG;RcP#rEj+aUrDgK=1{kNd&-9Z8@ zr2V~J&3Z-S9j){IQ)P<_!>to3vx)i)t$29#>MeCNNupCz+Gmo{%E~;&#h#v+-%tGa zCsTy1I0u$vWo5NKuOmmloyo~iwElf!iEPBx;EP(BRuFo=ndeJEYpSXEJj-8-tR zs?zxHWv^YcgrvmBCw%=HAJ07}1e~>BS$kZ&{(Gw>j3h|GIO}6Er3fdBuzc@=JA7}XM?<*Damq#WG{ z!A;DyANma2{8{-vKM03Ip_t`9!t{eo@U3(G{EG_{;`AQrD1{JR(dPV|ID+z0iRNz% zKU`Q_L7VR`X8ygVV`NcL(T|hbprGsaboTnz*7o}L@vf~uvm0P+q(#+tp&2PDX^A|K zXQropPEV#MC)xg9la8I2m-iu$kgzaF-4LIeno~bT9YR<=e!)loEoSHXG1AqwT*HIC z6cHT!#TZZBZQKT1wQ~mH6u=xss|@3yO+4ytCn! zdI}K<4Y5>1gXahY<)4);N^2YFWz_Z~22mQCI^C%Vy_lL9chHv5?I5D-W^jFDDxGdb z^7V%Lx(45Of4%wr)u*uB+}BmZu_>`hP*;e=C5V?oGs%3rDVeJ9)Wy@TUQ7A|V8C4JH?^esHiAt&6hv9;#%#`cRuHDKNeD;wtmgxf&w`|J=HWR zw!1Be*N^P!M~-O;Y_BZaTUx^YZ04FHAKAS8M@|N^wN-2D!j0k$lhv);i6{|a0fiw! zsWnS``@(+@l_Og!AZlE(u#l^?_xxHYy*C!4LruN5ww7)Ewk9hpKE9&j-+hFLiZ{GX z=424HrMaRa5MrbC6TCeRy38bw%}CLYfm&OF(Mv1;+l4n{y3zRfINqr@U_(&3NiauX z37qz2#=SL*b&e2c>|UnbzxLyPo4U2S^KJe5e6PLaU~bd+Ehi5NcdZ-L6q8d^qM~Z- zH~;K-Rwy+!4ZXe1vIzN#T_AXLwBjGNb-N$gukHTxgT%j{0{+?8ZdgZqn4JH(_J#2y z5nfJ(`fW7B_BQ%|hpfog>t`08ODp-0U5-bL2c-HX!jR#HbF+UlSPQtTPsx}~r_G4_ zduH_$!H2BJ$1nff&ifE&XZM8W(>gnIm(x=` z@A?Om{jEm-{Q0ZS&8l0U{QSdB^jGZgT1N^0eoxijZv?`CKo4JkFf)vS@;U((671mc z*O2eulvY($m6xj%5D+9>w?F-IR9;c>Z@#5^O%y=rdI&!}ro1^bJ^9yU*9gtb3kd@V z58S|n2ZvSIzxMv@B6yqU!R=dren)0&RqpWQC7~)Hi*|cezWz@!6v%J3D^1u znulfRwO;-C?tMsE6D=<8>Q7+24|)9WZU|-ny$n_KgZqCLaM4RY{qv)aNRY{&A4{G8 zca^2vL4Wq$(nfmo@5B24`ib@NUf43TurNG#UOdXz*kRlWpyYVwFge)S3HoCVM^h@w zo75B(uiw0($L5J1of9Pttq1WLj25;-VK>(v*rIviH9sKE8(4t=)vma9~lA9ls<%f%v~Eu^W9CW5%;hW_Ud;S;W{1{Hb1Kb z83hb&r`9-*jQ95||7#*IA9I%mFZAX}Md#V^7DYn$lz{cEqpgN_LkoC#ct45hNf|HO z+y1RU?i;`A+}5aiueP?61VY=nQl+FsL{LfA85)lGq@+usP7DkTyEIZp zzV_zkS$_;&BSc6Nlu~0uLqTCNX}w;$bl`Q>W+s)}ocQ+nl z^r?9ao^F%tl>PFO!cFEV>BChjR{K_V<5eUO&aF6M<3Mh1Zl&|}&jXU^$+CE{7H%GP zzV1EnAr*IOYU-a-vWRgB(_<-gT?DQ|OqRn+rIceClpi;j`0J z8a9Rf0KCu5)iuF2E-6WO6}Ggvm^a%-Mo#{D?z_BlVjLIeikQK`_wj_?al-$Yz!|@M zkF51g3|B2Ur8>0l2YRj|xAemV+z^P00s-s(R0(p9A^6cg29vK@r@qExxLarK_fsB1 zK)1hy&zdUfA@3{hb$MM%su_6X3jr5n1rW}WkrCM1qzl&XU}{a~ak{uKW;cXz9Io%R ziMr$QRE4)hugY$$NViZetD{{u`Wb;%U))Xar64@Q)hmxnoM;jnfTn?gS9(=%(pq1I z^|&XLCkxmoF6ry*&t$MF5!}AZWtKq9Al`H`jARNt`ZjKTS`ORw-}?rEXqjd?%#~Z7 zRp!e^(>KwR#zG)0uX=ExLaJvrT`{e%LhEa5DTIEhNcl-Q?HHiZpann9LVYpi^ymA1 zAY=4QjqoD_&`hx6H@T6Vtj~{!yBal?u5vzi^pVpI7Zs_)A}&SP z&EetUou2r+7qSZXoPiRaPTYB$F$%Kdtryl>T2!4gg#ab6ZKu~6~FRDIzQF&^Gj_cW)fpgGT)W-^1oaGF)}jdWQBzoK8++jbanG` zSP%-B6_MLYc-bY(r!0aRh~3zktQJFtIlxS^y%qoPIK3G44(Xl?iefl zQSNr@i~v{UYG0^CMMcHXSv~7tEr5kK5qdLUBL}y?&ze!SJJ`Ct-Z5islpcA$cmoTb zEp2svIyGvke&BNwD{CBh2!B-YroXT6V)4Q&_u@3ylwmd^U`ygb$;G*a8g_H;d~9NY z%_sPOk0EV?7yz(Z4W8ikntCy&Vt)do;k+F~@symFQ0BRK&7-FMWqEbuk2m$P3*t?m z016}FkDDyhxI96u=bnF|mz*t8DVeIUO1{wSxL8PWYCJnokP%HDa=6-`K^3Qoy%ow$ z7)}-}B(guJ#LjsI%E=rZA46{LrSD_yN=8R1Mp}VfXg|3q{RUMU5n$=RH{YNlb^1<@ z%GW4hem9=gABz?a!7GWwLz+SFY1F~H{6979Zh{l8(}{Xvw)05ajRN-ZU^iV|UDE>& z?qpF+4wf|IxIQCFRakf#CCpBo;-ApKT4c202BPkJnLwrbdT}JCc?AG6`oodKLz!QXYED;J3O&fVrDj4)i`AwU1YMs7M6n5A^41}xw= zlc%=)oipU=(YpDUz@zTm=|X)hqs)!B+n2o>Dpr=35DPm(YOZ(35a?$HuA?JcUC0{} zx4p#=;ZhfQvyv8ba&4S}QD;ai2eG}PB!Si5bQpy-rk6&>5}~A&ezaAbCa!d@AadT~ zk4<(&Sao}fTcJK3t_`FFxM$TE{pY6Ni;plc+}xdMnAijVjF`|oK3}yjp-mJz-rv7i z$_?*SPMTf1h%|rU;3SA?I)CBZv%M^@;pcLHLP(6EaGCvcR&*B2b7J` zbQhPhkxSf&^T~(cTfD|~XN$4sf!sL#Cim%HT_RecQAs5Qh4YP0rpP9<-E;{l6&|+ZamB^bJS-+mqTcBhQ~dx6s$C zwFxg;36_lxz_zQ%JUl<&Z6YTp*Eo7M*2m7qX4CeHMClCuW#RJVux`!xDLlY*dXzn9 zx#y)&fn|g8Tz#`*a-$n|{&A-Y&!u$|mtXr?CIInR4h56DlqP-ti*j}py&M@@fiyc? zb}=0XkGcW}Y~t$N!sWt=iHYroH03^kO7wTv)^dsN0mb|ad0=!@_>|+**cD`Awc}jQ z`mTqUSB98>4%H>CnCr=>C4u9(PJe9s7rSM{wxOXi1!%GKSdb5PJ3T#}=i=2%yPWLo zx1P3NOAx0W_Mv$34W4LB=cuh7tXL^oC>~T{)z=wC10#AuI{*Hk8w!&jp`Rim`Te$b zcS{oDotiJ@!JkzQH`a{rHY8WdKhlNkRTa-`MXmX(^kT$M|4?AAY~V!TrE) zq#AuVAelu}VRp)|D@e(qIe0ev5l;P|;8^T;4@8TV~g1oe_B2u0l?vVFLM4V%XpzukaI!vT{F}Y_ie^%J}h30|Ub}V ztN!!`o9QC*cUTLp?yl6uLE)0;`9R!HSHf?5`5bZG${B+C3Lmt9)E2OX zt|2<_dL3DityBKaMOis|2^4sKK_UZ5`n2>|27~sh!2pOnpimmGQ`mazzXYRJK=)nv zB9KqmZ{ghq92&d3;AL`k$(e(0u zF$%t_0Gg4 z{e%uJcgs|Xgo6jB#inz3o}Qi=ewdJ{hr2scCOfI3p>NDsq=gJsX}g6}gzT-Ro6TVI zN-2U1P3VPtqEE#1>Q>~48?5^5&~OCeqLg&CFgGT$Np`@f!m5Ap?CtOzkc!)KxEkJv zg(X!@H4GS*^WGnaaufDAy9vtg?INx|0Qe{QA_AYuXL1CoAqfG&r>ltE=2I$;|4RsF zlenJWZnExOkGs2yLg7Yun`x=w+^QkMLNcK_l#-EQeDsOzCiTAUT>UXK zH4=#&Ig4Zxwwl}{MVuem4wXZ4b92>G(*cTjJpoX*E^n_s?f_oB?K0-CiVpYgd()P zh7D)*2B{54Sz@yO&u#9^iUkSw_xCRZT$%SJR}s)XU}d$Q=uhj6W{~jy^&?+{wVl^6 zg2%pY2*AwL`}xos?Bg#Imm?$#_WposZ9S08&ilrg{WSo~02VV~M5)Fac(ho!vTzQj|I_(YA->qV2yiFbZ z|1t^d`jOzpP{7ajmVeN;uDVrrb#>VWD#y|b)u-CsWvd?CKjdwEcht2MMJMz%!2NPo z)SKI&bg^&3*nYOQ`(qd*<8zBoLr-(O^VEoSz6J#a0k@Y}`jb0re2K@nsVD(Ii@wxq zX#>8Io1dS*v9S@ik-|`$&4O?umqBl^vlt=eT|%rCjM(O5)SiODU_*pr)W%%u|I!bu z5ETGLKy|JVzU7WS<64`k2(1uUi}lM_=a`+-xtaxv#On%n+B;M6!NKiENflDK6LO}E z?|LTU@Ag_oR3rng5X$>zZA^;mgty1-rkR% z6)-W+DCN2R>t`v4mi)6bS*FIoRmD7v=VE5-ja$U(4V;>_IhigtHa4UqqU1hGl=$U# z76=ZnPy$Mh`^VmwA=JR>3}6xJ^Be~HFP{rMe*EZBqdKfdp8fwA-C{}F+4*f>X66If z(PgqQ@9?6uhb(LE#KJqbqjkRFZ?hDD<_n&#j)%Gfp~@uY?tESi2C~Rg#h#->QEU@F zqs{Dze1+a6C5{MxeLl-NqhUwAM}NX`?rzE^Sv;$f4;F#_%%HZ4UJI9^q@b|zPk(n{ z3!jmC(Bix}@*r?~|GU)5YGd>sTVuY(Kcx4f zOlTD|#5@Y_O7Hbe{SQT$joo7@^TIl|*DUy*&s~rxK2`dV_5BfqZU9hllv1h(B(B;p zX$?{*>*iT1B-;xm9-tBzrMaRo5(Z7jYrekcO03Oj^8F?v_HxTQ{g1ZxR)C@-AdZ@s@QpmX-!VH@IPny> zKH42Wp^@Kq9KWDdcOZxt6*V6HZEsJZSt+>^0Md%_1U&yI7$4mha$0CY=+yum6T2hP zOKerGRkIZv8`~7P(6lj<15kBnP6p84ne|<`@Yo#X+xF(;Qry~^DQRAkov8*3-ZhGH zn6G4i^xS|wp3l64wyAGmAn<4jAHb3NKiB}kda{gNpuyA?I!U$rRe*LSfg&* z5qLJVo!y@yet6CmwQ*JF|{Ax2M~(s$|xChced;m z`)eJY$tHxale_wCV2dC!aF|z$^~u+gN-s=r(r)9$_~M6)txEW7ik#TN9#)pgZG2%On&Rz=>M&74|ypjvQ8E30O30yH# z9VV~m1vt^{++0wj=&nfwq9(IY4nkXiz5w0QIoB|0P+_X3(U)2H<8tXxy|okmYgj zjj9Xlt6rWRZSMCVd3$6EXRqBTNy}JYU!O4c9dmyww-9sUiV>T`iZP$0(y_TEQTq&oAUZ);R4NwM)hYTpk?$keJZc zAFA|rg9H7grB?gHDXD-I93Zc;{OF{^7>ER3D)35{cy@Ml6dP9P$!N-NKqibz49}Cx zyAQa(JU=q&^aM+uEnd)!HVA59ns1RSqGr>h-Le_ChIa<@1&oj;t+mJG{H59pXa zTLAO3vaXedF~x;s9*2Ma?7tDRhTWa978$=m&X{mdw~pbymQPAz;&`sLm#!>XxKZ>c z06-0W9*|;H80hKgDRr*QS2OQ8IXSU&T3%l6h-CC$Yzb(mkUTiB)b+80FqH3oVH7O~ zZ;i(ZH*0eo(>+@ss(_j@opS${iEuCA0{|2TYz9e9EjqRxEG40PY5Z3U_@<4ha&`Nc z$VG(+Q-Q4fcXyn0sI<)bUWE~RZjDRi`5X@p4oWn5%B?3tAh3kOFedLKK-;Qpc_t?2 zV{#QRKQD zp7TB2KiM~z(HiNYkcp&+CB$VrNh#vId%KnZB{1{?DBDk{)M3G^Q)}tMGsHUaIeiwF zES?i*A4AgKrenRIOJcaIp1J9PurLIm8R`6*ao_;_dj5V2des`xKBXEf&D}46fs8oJ+ z&tV==ztaHq52ip}B?+WNelQ6-en2u1aFGO8^%^6D@ch|=?`|Vlhd@M9(y{y38>=ut z8{F*72(TL+86U@-XFQ2!5Nylq{{W~9T}bywK%DIc9>tm(B3M8Gy|d)hmUy=GPdlpE z1}Gy~iKk1a)P#mM1JALzaPm%2v5x7aM!8f4x&ZIyt;-`MZ;jfAL3s#A^TG61dBo@Y z9i5%nzAMDxdOHcno6V_0C~9ND?*d{v0JI3I?6p%E0$N(6=X{Se9q$ABX2z4tgTasI z8X6i^=|FD)5V{4#ak&}(52af3*7|1uMj)Fek!kuz7llM_Co9#hAolR3oy{2#JBUQ` zXb%_ixnLqsZ94|8S959Kxg)`ZingJw>xCUeAv{n7$f z<=r4aI43{MRN6L}jU{_6_%?q+0eI1I*eS59oZHb%{&ONXOQ=vm`mb@;!V^Hp;@H-Z z6UtRgd161}_vf{#?>@>GEr!hiLqpx$KmEPyvY7=P3v@ z@kR2~{b;hxN(zzmS4T_>eo(90)YJq}PUnFWUzV+BXL*hYAF>JgyScO1xb>^_s(jGq zD$i-?$;`~nQ*TYr%y@0io=z+TKxuAsH8z0&2`68`N;yq3%PT`Nhdj2j3`nI?xMwas zqqZL=3~h@5pyj(8Sn9j*p=Lgy^I2PBZw;VrOZZ^U06x6Rt;6=Yc=ApUTe$A0Rw9vC|swL+Z2BQ}!CVQ;!nFWk;m0TfOI&%Z%MgMdrP%m*x1HIk z!I9kMU%wg=2>%Nlt&oGJ!yVPf;o;%bJgLy6FQ22}n)&Jg*WuJIa$io*0W_{=_YJcX zm_m1Vx1in4i6UK%N6N4we*WQs4DrB?VOUoe5)f#~ytLukXwTljK6wQNLXzf$m>5-< zD`oey5^ET0ZOvGuL>~!sIQSWKk>#kgRQa0x1m06yYF?wr+ay5ZBpA-;!D`B%(>Wdd z!RjX7j~=&C2ATXO#c7cUc3b~oBB{3ffcBz{jEJZx{>@wUb-rx1c+Pvj2M!`E)uf%ZwO2#jto!`U zR<^gfpmvTsJ0X_%Q@XkpIVz%FPbzgkkKYKrt5N*LASzYT+dzyyEwxaaQ2o6t47|C+ znEuZPN=luN2NDDjRkN3V?wZ-|U7^e=@vaK;a&qYs9z9b6xmA+>_;+_EVJX)?-=iZZ zCk^0x$ipKj_;Um~Qvx{RKbE=qxO0y43iY23`&V<|9{dbunVOZk%&u8eLpzl8D|bhyIwuC! zv;2KM(?on;i&Z;KO%_=e_GlGwOg!Y}RY{BI7z<(yT*bp<15M}5H(G9)W_7Zc-d^#g z;P{pmMsjh8_1m~F>0?ll2#4sa7&!EnNCiMs6Kp0cjDlqd90PNe>1WDaE;iy>6{QNa za*cKaE;zLdie}}R!LzlFQKlKw$Fw%WUoAoP@0J?f8?UA&s;i&7cpP@kad{xRsH&{j zFv^AvoWK3Ix2}Rmb9iK!*>tMG{(LajoK6sIbrNfg7g*Ka(J?-PRQSiaQy<}HYi8E? zoltI9&GC8kODptL)hneBmPyaRLj^uji5aGFSxXY( zGsKL1XH@KlDQOUvvMTp3+-Uwnrc1n)Ck6u)e}YT<9Y#hB1_QJ$htX@G*1fD7=a@Vd z8;^~71@VsG;)WL&@@|m7-^JOi#0%e)3@8(&_o>-rhypdQMRqO{*0#N&F*`d~h#zLt z4&(#DolAV6B0J6&g%lR1Twjd#!mTeMNtb&12!ccjk~}s~_^Qm0PVn<=JNZ#7D;J`t z)Pm_6N4eYD;F(i=&4fc>xa_67=4dfme|gz#C2LN+MqzR~a8Id#9cE+wQl&dpLG~?N zY?B5fT@X&WHV9X5IeG7lE3E&mCqLRO2 z26}tH;zqDbP#!7@irzHQW0>$fUlD(8Kzql5`n5%=HnlFz*Fe_X`n9PCvlGOlGMy`+ zv?JikHM!%hU$d17Ifd)wyUv{viFB#8KWu?Dq!1=zcqoIbf$BWYhPCrMi;7#yGDYvEyBHM!I=nGmp8E53pv!MTW3- zPM!NwOG`p%@#JFNJD*@zrE2D5HHA>#zP>)KOE)~w<<^q-XQ9H|z*(=oX;`KeaPf4> z*KcmE?xTZ=AB~15S8e5893CDD!;Lu^fGi9|0>8MUkr(DIUIfNHs)6=rV!ec9ankdOf7`YhWDP5V#~Ngr!rVe#6a zo(;4b3w>;0ICuRz;OqudQl;NFV%GXU8i@odi|JK5K7Q3>c?#qb-VnnW(lkRuPR%{1 z(aO5`c#R=rXk4oM!AV(d?c`0}Pz)yB$Oz~KQ1&>C{MR!7@Cc$2s6rgi zY({^y4wbE!scUEuGfgs4)5Ryp{X#EqG2MHB?CG0(#a^i1cXcVz5EmD>jozO2*nH#! zj6z~}=NKrxb+x}c2uY6xU*Il28@T|pmtn-)@oI7L@th~;pkj6IJeg9z5_O;beU~uI zu7*2_AiyUc5;ouWQucV?#U*aHs|G|=u)}nZ z?LsBv`NNrX_e#5&rc%%OEFM{avM6f%dunUrU0tK$%l2dt7jJmfq%5R7rDEBh2!&Kt zIgA~|@e2A~&%6!g2@OdXV`s2K+%s#R98Y>u3J)b7f_v8=eyZ zDeQ8|`DmQWzRi{m7Z)|sDlm8>W-%e|{W4Lm5eoHEjiNmmLGgfw$W@f(CMI=nu@7TSVp<6bQn0+JuCJ7#iG1xWl@TvLsB6KsJNJ!7ByQ zXfe-ms+ZEzt>NafJVv$mNCSq(`V27|Q-bnFLlxT^vcwFUN5_B`H2%G`6?M7t!QVH# zy{`}MT__}zL7V;!m{eO4p)siNG__^}XBALs&Xp!ID_L1}M8owd3=u?4M0CP}3~CZ_ zT~7cxLs_?C!#4kzR*0v2!{K6+vOHfwc7{03ZUS!nBc@NUTCz59H=n%I(n^_Ld^$7s zwCy0&8ef#{w5L1IWu&d2c>2~zxspCLH7F?_Xbtq>kYy63>MWvM$bM6Ew?3(;Y6pXo zjzPNs_^u8E10~FJ!hTTIGomf(PWbwlk*Pmz<8kr@~oS~87B ze_uJEQ-YvV^$Sk9!n1$;*i$eih4OTl{p{=%enD)cRhUHdYYd?!Cgy?W@vTg~SW$i8 zRO2|EN&KKt#gHrHqCufw7N~OFtsKyWWsd$LyB8J=#o2fKdwcAUTo zgD6ldgnfK$#XIH+Ua0r^soqTvwEo^GH-C5~Pl?Yo+2Fg=YfDD|*7I<2Sq0+ERo66K z=U-^heZQ|gRIre_|Gt==qVrpBSOTiewzYAJ-!kjcHOd{kXeuN9<)#YVv9uz({+Qt4 zF!vHu_)#$Q2ABSU7j#FW0kaOqG+0zyu6jAnm}!>UA0NQt9HZ;70bV4BmPO1hdQZK^ zyO(97&Ukf2nw7$$CC-oH?S)3lP_o>Hjm`u8Xc=Qxc0266KLE7NJc}MBm|oU6&2c5g zqEg6iDx{V<&pUJnjeWuF3>#)@7aEzjJyw~dB-`%sg6mZ?OGwO><{IN&?UOUA$@2<{ z>CLsFw?l7f7u7n?(|a&JtBoNF-<`z3>zdQ ze2>w*Wd|7U6beJg?I^`ylW+u8e~P6@vHbABWpLOScyMrASiVxiyvOOzoqd@LOTno6 zwWc@=H?oQXqT|+afy1~oA|0LXcPU1PUYqGFg@{)R7 znnFkY)wfRh`^<8BHC8|Qbv3FzJw3Jr*|;2M>cADrp&whuW`wqvJ1dHg@ z`u#_AarN9Zj4w0+EWxe22THiaG(N1$60ljnT~X5kbYtJojHYP`e(afF>JjwpW)d`P zT;!G8AGLSj_bf_RCAPrA#2+Q|jgIq;l_29q~msDF-%?1JD176P+! zT3l^e6<%?JzNSH{?53m+tp}cpM<_aP68!T|xoIKZn5Cfq z`DtevAD_I71#e8svrtQiv6=(^dU03hh4gOn=85t*)F2Q#;5~D?Th0|b_D;e!1^kI07ww#;8rS-gpGXAO*T**0`F2qi?<@j%BM^5sQYY|D{*H*KI1+L14Y#WI z`iqBdYNdg@j8zRktA2j?Eb^*5`V>jB(8WLvYwRY0`jUlWH57hL4z+KRsvKBWU{fPU z?FaYfzBI>7bd>?KnH;~iAFw{IlRaKT8Kd4CPbL6jqD8zax%wTMDzb92ErqMs!QyiD zQ9IL0YJ8Kla0PFbGEEB@GRbE@$XlmKsBprRJ-kX^yjjR z5-FW+h;!p5PQ}bn+G#kIUvznO7p}AG=<8Bek4F+eaQ(7`%?KP-H@Ub5B8IzS*Bf}H zv=p{}&+sNLDRYt12UOA9o4!$vddpGo|GAjs&Ye=9xv>(ZhG;ud<+=jh3bUk}Dr8lP z=NA*u`F9PIcjONqc}E%WcT+IFJK5)8;gM~$Ki581f4%z6YvHm_ze=rw`wkO`%dpY6 zQ>bn>?d&`obcHp#lOZGJbCPNCDninf{;9?5w|#ncLJ6q}B8LM~%>40p-!@f(!<2KD z`%?rBdAL}rYYVSTs`&q@+nlfVUM^U<>Qb4hu$Qf(ZIuxX`AD((Ci7-_aA@@1d_!5K zR2I1;2{cJ}LRQwJt8^*r-V^-0opE^L{yiv*i}rMB!Ju8nXPSL|EL)=PCK;%@gII$S z9{qBgmKgi#1gKoMit3SQCbLG>)+pq?Ou%&aa_4x75j)NJ&r(8H=@~eP31-nFbX9ErSi1I+O z7U?x<^3R^SS+QGI`6Hj``d@ya#3!aHPP~~=<$2O_39!95_XoJ)H%T+3<~w}!Fo%?k zVz~~Qz=EWr66276UWJB@7I3pe&hA}&KRv7lPpj&j8r&JmxsqgOVbLAJm*JkNB+S>< zFMpqhB<=jdU|3<6|06k$6mY<+4 zd4$2s`fPQh;r%)4jJ&E>jTb}KIl_I$GB9FOE zNa-}`CGWC0{#rQ5;w`d-qRk-@>Yeg zZAk#c71C-NN;r4doey+NA-@2!%V+vW*9mwFIoCvvYq_nTRe632%Xrt}ZXG$wL_bRR z*7YcFp|ngdBXTweBB9prcrXN%kYZAL^=Yy`AXBu!H=;R7xu8eZFH0&(a|sC}9uIvr zP%oJCKPO4hRP&87<|$<6)kxuo5-uLwYg0#kwdA+>VROfZ!vDC+wN9(emQnH@Y;dYnZJBv^EP_hjS;zx=w^%;xYg(ubWiEBjIBUdC6tmsQTR${4R;F&LKVtN^!hFZCt3){2}=} z$JsP1lOK-#c#U4%Z!+&F(SV?U9Rh`7{YfMWAnA#6g0|x?c{WGiY4S)DDZtXiTnylC z>H%#ZWz%Cu72y;*0m&bAml@x^RqA2JhDS$g%4hZ-mc)Ht>W#ds>q0~;s8+&^-rk<} zTz|f3_ng#oDRpVjZiu5w-|D3J@MhX$RIYD5y$G%c#2l>T$*10GJ)n^y|L)mN(;fcS zA0Ka42-JBV69{@k!xs))+T-f-Ok)gYyf)@Fe%zo_vSBTNPzJnnG%8-|@RmT$j5(;0t+hUuDV+NL{fj}v@%BiTm+>*YNC_?y!Pa#3x{Ct=uJTTEgb!?Nn-|bv>t6zF0up zV@JoGD@O&q2?qrrrpxW`GP!;6kun(y@)kXlc$tyitA>AH$j(8o=R@KLzll#}%PY6u z&pO3uJ?MM}7ea3tXq2l>ZIDb)ld6DTA#af6OTFGH(u7kz1Ei=bVA8#@b5>j$(e1*w z-8dA)9l8Brlgd}_*7+5;(>ZDm?_yONo5(PucOIvI4Klg}VC_HjY7~9m+;H21I+FmEaAn}>O#!NxE#n`A*U%lcxhW+!3uzm^GF*@GBT)Y zY~2;id*1=La7FAcqvY^RXRV<~_j%wBkzA$M}afH+d}Nq?tqt;nntdh3vJA%-fFd zg+#B)M*+T>LOcl2A`cfB48|z#`j(x9tYTim=98Mr6uG$9);CW&umV1IS51KUj*H?} z3j}V15;^p^3H7GDedo()Ii_4Zucp(}afY4&*0AwN{AE6|KTN&Q5s|Y>o5=|kWbrLT zS5*adnMzB{hIjPo*$9Vey2cbS7M;UrHa5!mhUD*bML${iZjhgCSu&JcCn_37yaPJ& znxnlxI;np|BcCJccO;>FHn()ty=+x@olT(5m<=S!H7RK? z^8?J22I?lHGGr{M-ztoax&2x+aXRBAs`~<%OVWR5MVO$_xeoP+S2k~q0C_RT=zo?> z{9sM;lsfi%AZ>f)%inLREqYocNjn=k7USX#eJ!o674DV#BRle&FY4W9s64*T`=3LZ zNz_XaZ@$d?_ZjW?{2Vq{kqQJ|eE{GXVali1zJZsR&%FszQGF65&vhIwzFNr*K6scj z^`%mbK#9(lJ<=(JvvoG-*j@=KA)17;31wc4i5#wM&VGXy^H6K}!XVVI0la?eN5FpF z%JUK^q}+9p-v?+2^{dGYq8qNhX@jS22ON6pCG$(zwSxNPLHc;lzDpDr3!WR1!O{X> zX%(h)t5~`fESA_SNC>jL@uvX6-l)N+JxhfrqEib~^ylIvw7`jq6>1NKxy9U@$Zn<- zHw`-ml<)AQj*Rs`WPbtl7W$%XFsEKFI}UmEoAzV*_L}WkGWyp;In_R=)HqG0nyZWH zdybK5r>c`p$4a*;ReZUN^g3SmpMZQg{(>`>n#xu(Cw*fq56UeG%>Jtdpl>(350y4o zGm3w;{~!-2@|HddFY2PTGB>BQYV;CSiFu)IJVi#|e3OklGbAr=u?Z^zb9{XmUZ|iY z=3cg>UFJI7KLQt{$a8tEwz46XKJuz@G!TX0qoMsQ+0i1UN6*{aUzS<3d69e>2hSAF zg_RH+@cf>_YbS;zxxmH*@jHKgCZWz@whr3?QFjfsQfC#>9ML<{(cp%?)tO8E>+M%9CS40-W%v|4!F!U zHtIxOS?AX$uo@%prceLqb$LWK$%mQQe$hL}zsX_gy5Dvx^+ZY2Jf9CMsoLP^zf#|A z3HCEE06J5CezSl!LTn5+$ou4(5ec+S)cbz0oP7HH89ZOE)i-_I+tHANyFmbcXlVaj z;z@npmV_?t0W5rfzwGSSM?fi8Q(SF!P>>XQqQ_nRm^vb)FPO@&5JrK_WIlAtQ@1>f ztxP$GJ|urRn#Wus=I@f9oB}h%=z6$KHtp z9qwXibk;HXW5(X6)3kIwMWw!Uj-VN5fqKesJQ8!<`2LR-th8?5R-K9C*Id=gjKh;O z>pj_R!ad{V#dbP1sTNZxF<4vgbjWxQIXcp?Lj_m7t3HTS^v;)-Ro9n~K^iZq?ld#M zkEaWZC0$a3KEBKJc<}oY6}+U*Up;QwqRuIdW5n!|<(oubOnTy`!MI2XbMrLN(B=G?mt0uV6uEH4trZ<(C{c6UGVU z(LPdf0aWp!Qn`x77(G36$O`N=zSveEiF=&Q?;cqTcqiJPtAD1m#{P>D_uWk$t{{~E zrbZ3$0=6D^J?s(to|Dv7-k6+E8u++t6oa1fSel($&tsF*N!U^a6#tBX8`?bjk8BN3 zem<@GM*;+@*=&6XU@)L}B25~rM9Q9xQnIr*$v;~YBLd|2wC4euV6?p153@q!(So=m z-bTUuZsvw^lq>p8XQ<%s_=z|LV_n(sX+K^xj;_1`^UXC1V)i5kLa%{l`(@YoDY90F zGJ+l?skNmXJN1+xNTKS~cHi;E&+pn9IGK?LI{M)$!bK3MI&(Y4aCf)dL8q=pAatEo zl-&hguyPQ`T?dSmc+dfFie}r&UH?SJ(T&+y-FYa?40K2|lmg7BDC!?3DPUGgv&QGQ zR#psu>}>BcWzKaECU{fYSiIUCt62b8t3%$mi2*JFx6kT!k>}zTjI8+KR*2m^iLVaq-Gyr3jk1I zH(IF+u-%pN{O5AjHN8B zjJ!W-al&9h3 ze3GZb^Cr3wGJ)i`QG?%2F?Q^SWY?B5|LVzIz22h^f1Rc73&23{RoKJ?+{gvBczNVL z=g!PUDB-VebcK^>HitSQ&gQ|@o*~0$*hN)~yodTF4(6`Z(!b)qQ@^Pj5z78A-vgrG~GjRZRrmE@rO+2X!H+e%rM_0}DxD|y>x9whe z0^?xw*0R@uJg@STOM>!=| z#wx+n;*P;g@$Z5g9=c7xD20h2u4385Oyl6A z^!JZd_hY8v&CZ888Kg+aRTKm#n{9kAQ};=UAd0luv$3hcFBj5gSvB3yZ0$(rLx+zP ze^^TI(x4M6LElos7MCe4a7`Fl?%`7M>3yixKsdmjTpce z}hV{0lju!6NsQtPdp7Rrjn(3wu zD7Wj?aah<4L=Yz{nwy(bt%^%Xb&1Nzh)Kh3SnbMmeVfVMXP?p1X1Hv6Y@e}0Lt78# zcMQywS=L4~blPa~-B*%{8%~Z-#lNqc$WNNIA?|Q?^!8=}X2q_&E&7&s$9h(f9*a(4 zrc=jII=zgo;V(Q<7{xO}6d!y!DJFR+Yg)H4YA5}6a#weaG9CRYoPHHOuq#4hW`<(s z4i^|*tm!NgA|fMDQ+-HkN7j=`Sa3?k9N-^N#!I5Yvei+1Vk-2+|Lzx?LKHxqCC@G^ z@GaV_@r{;{kK`4!{VXJqW!JtIzK>^;7_z(nG79c<1ungB5Trr z6nz{N{-P_S<5_X5F60XU$h3R8CQSAv-LQLPgH^0bo<{5sFm!i!aOiaTPq52D#1(L) zcR*_u5i4nGnzhvJ-QJr%qWWnoH(r7eLrrEe<}mQ(4}JpKOIDqWnadT};O0+);>-o( zSalK4nUIL^we{JMgb12R_;l|M@7NIIuflj6t9n;wM`sSRQFU#&Zm@>{0NMnl#R`8% zuxNA7^wNf}eWJwFfe-lF#B6&FE;WuqmGJkmN9i?BxYqPXZljsG6~Yn93N|0CD5itw zHkDj*HPH1%^4%{#2F;hi#;1BTQ)Gx(HDw|9a?e8elJwK$jwbRV?sT=czahaF`liER zzVEN6ve@|QWB+0ePz@R*ntnI4$9bUX;_l*9$c}7b7qua<)brcxE01TCc5* zvx`}K^D0gatL$Z!?q@qkKAc!r_1Y*N7Q3v z5&fL2?97ORy3b|Z5iFPno6;Id4lK208`c!g+3=nrVrAgc2G3`^RGf_Oz}f%;YCE8M zfV5wwN5P@PS07Ia|Cc}dZ!Cv2H;$LKPSh3|RDtIC_@p9l%55&Z##oBgSss49A8en| zF5N$})O$N-wW_H0w)fdDWLd&xNLht)nELwrODv|i!9kTEVt#coFf>%$H<*3YX`BV7 z6=VoE0I(Wjlwb~E@pzxVjQ3L8cu|Lisi8~j>j~DaYztB$;cr&cm2zw*2YyC6Zo73R z6qPB1FX-q$d~KF`a-lz}C`zdU=iomm(E-zp>a3D%#0l$b?CycUcnz-Dt_c}(s57{* z({kqTdF-4!rC(4#*4!VCL+t%-{dDV~CT;S($jxMNU|Na3jTc7zbgFE)=qB1aICn!dpidr;=z_iu&bT>5dT+&T9yXC4ZBgl73OpDM^xoVj7tc7fzQ=u~V~SbrvNIln$x zrO-S4N3KNR1G1*V$LDmr4lrWa*?*K=AI%G*V4O5fn|I#dL`>yETo(5Wn{aSCNYiTK zlm-dQ=X2!;5e^(-_;FOixJ7QU^~-r6uzfsB_5-&eZ^NI_drA-1)Fu)&7e;9H(y} z5RLaNWyWBG!@N%K{sDeHN4bi2rlSZ-V?rb!I3n7GKp&7z)C?~dic~vy??e3^N2Zw| z8X9Hoyzu4Ph=4Vj_*a2XSVg`iLJ*9%V8G8JocML2C6Nhz^tl?i4a{f+60 z@%Z%^9Gf4CiPXzwukQE-cHO^rRk9QqrE{ zhqb7Mdhb#RDoA|H#;JQlp8$19&tVeMF>(T|jD?!#Y(DCQ^0UL#I7=jM4A^<<8VEHb z)!TmVDe(}4?6G6R%eoI6WVRbkZR(rQkD19(-S&)yikc^D#i|OzG3bxTMTJ7KL|i`P zGDC;ey2F3F00|3vEW`d6{`?=r>LE+3H>`$#g{o(i30s&+9JYWi^4X#T>;{SZiug+R zZsy53F=l!b9;b4*a)of^YZx8B$ zF<;JloDoQ&f(jYh;El47KnkQZ0}|9ZD9F6_E6M=EXmg(Tv+nS=gZ=nuVZrBkOxMtX zx?=2+br7=t2=YfxXBGqnS=lOvb=GLAv?tSWYK9AqA*?)3SXMA+c|0K}%6PeIeB6S4r>z~2NQQGG!ZVi>i2(h! z;-9C1Jv3}ya@nVlFgfLA&Bg4T^rUk;=W~reY56!I6KxUC>xL2v`HfghUUtW0hrc;F zFGC#=1Ghnk$i#drK*P#dy;gNLX>m+t7tICr)fEn?aA;5Uh4-@9u#`vw>P8be5NXof z291fNj0~h`T9R}c@NOG?4if9zStq8n7HUqWI0UM4gi9(+)n2o<@J+KZ2;dZBkadSAGfn=iE0GX`5IhM zLk9{4^L!FQ=J659E7i@ERztvGtT|av3Dl~P;080lt!>yXEZB@f87-UZJ~sm1(f;p*3Mwr?8Foh0nKu%9j)6+8I`JME~7X#Q0y3~v0C4Laok2CzdtBsT^7f7K2 zgtWm^F3X|WT1*u?$EZ1Hu10^Fi_8K|`N445BRrX&pXzqfiEmjlo}zuk6|E3+TJ^-X0a zEv8A(nMDe2V>~_K^TDFhhod%kO0@DLJXh$8s#&ooK)<g2O?XbiWAX<_$*v;}HdFbF-<@QKyLu zymq?^&5z(-QDKprcdl5LqlztE!uX_PFlNr`>Yxz81ZV?N;Z>Z8|2 zc-HHk+Kdci#!JjYB73ie4D45~S)%5O&HKTt8UfnPsu7_4Jio#MQ|fy$*FE7Uv~n?2 z4SaLC*j%DM*sO#kZXeJXzuSg!}yTLo{r~5M?V8}7Mxt#*Bx3$(X>IR(o9}RR-EH*U2fJ0SQVpGMMFp_vDoJoN)M_OXBe$+i9k2m? ziD6ZwD+hXOz^JF&B1E&LsX1rBY9mCXwL8~+_0RJ0c4&|EiJiVActohv7ucw=o?X^9 z7&9tYn^JB4Oxy372L62Mh^<`A*SCCC;5WA|2(u?>ePNVRZJu(z?b#sw6!)#;NM>HQ z>+?``KpZgK329~I>aZyIZ`46+NIzbEeP&GH;+?Hn)_#l~6vcT)U$Q@+&_8{8Pme0; zjrnka@kTlPyv7;`UnZ(DtZrYHz0MFfX1412mHD6``9Q0j498Ji_bB`%0TXs*XHI`@1Nx7lt|jSW9yRpVxd|(m$V; zVD=_N`T;3tAt~1+Xq7tL_|NdjIj^QPM#aO?1B6O@$F>4c!0M$m6BO$`4X(HgZx8MF zY-}$S>yS9~a>gajKKLV1ecr0jgW)+b!Tz$q@3&$q$C(P4{L?Q<@WGw*>EiAe3Bg>y zL|4p0fSF1g`kUTC3gFj+O`I9v5vm(#VT(yKM9O<~4Grp+y0%Tj!!1X=gVYAIhaG1} zi57MxbMwG;GME5&d#N+Iw0T{qh(Y-&7FLT3?b|}Dqweqyj2sRJV*UpGt9<=P@~Tyi zkBW`UUqyZ#9v+OBTB2uC!b0vHEKjPq2d->eKx{)8X8>!lsildy`>Wx1P?a^S^iB12 z3{9+{ht=5l&X%J^QQoolRUEo)l1D|vWNZ4QGpm=Cmodk2(bgr^D`PK~ zAFTE#$vy6$$urs8!^=5d@5qyAv^j0GF6%5tp%HX-N@(zXal*e>_r&^ zO8nLCfP-KGGz2TEfa0N&q3zaI3>fTY9a6?hH@?$!X|&!^$j;Z^+?Pdh zXqoHNCvcB`}t?=$OrWD_jL9l~&HbAP@LbKVUpV2OidD6dm8=4xeh!?j;)JQg|$ zF*r7}s;O~lvG<+2kB2PuXuC6%uH^%6o+s8xEbHq@X7V}iUs)!diIo}86GI!OZU()r zw(Iu>obb%1BBQfNL8VPCCr4*OHhrLmNpPMq;)&dtMs?)#(z{?`@eH-aKjq?bNIMTZ ziPNawqxZ?l&~`LB*!8ftoQA2MphHnM3k-vspgwR|Sx;yQq# z1YR#0X@Zm9czOWX0fTJ&h<5>&x1x6bLZE&3O)^4NU@0O>nBt5 z+kE=;lTnG)ih>!xoClaLy{u=YX>2+_$*Db_8*9WCQF2XJVO3{yMwj}8uA zYgl+?6%`E}kBl@n-U4Ed&$WIqN+BbAzC9gI_DkSCM^E2|!FYltpb?9$>uTc;)cr!N zS7hGp6j#Q^q6s6+fuqXGAKw+2$5Y`IWe-le0*G5S?S7ZWz`nn zVKmL81OMX};0r`?xr$}5-qFx3_M9&o{h$ykCRSY*Pe6iWZ2%aqr-wEr>Ft)?O#weE z?*1d>7LD)g^FEm;Q13nVnsxR+C3Tb^%vI4^e9QnB*mq(HaAt& z#oxSS6ml;lT?VeCewd{z)!ZkD-+;=z=))f&>?F75?DaVBR%74q=!ua}VOep!?9VgL zV@2F%YCA!hxS!0B2oBiCyK3SC-?Wv0#&$DT%J_0!6H#61eW zanrl#o{4&R(lcOZ4!*>{Jbzk?TVQpRdmDH+QPE0aR?gf`7hB%|+s2k4(gZ-dJ3z|q z+1ADbpJo;NfQg9-JA_Ky)fls;#aw*H>F=w2Z=St2@eqhv-oCKj^1J{z+McnL4yGp= zoC8oPOtZ2gDeLF-4F>9B08Un}g>}1h4yjgPK3C2GOoVuNc>Jn+QPnr^{3Exz7WVjy z?lrD&jjEK*Kk`%ycD>OEY8+`PF>EQGXU?msoS$!L-}DarI9iUp@lFot3Djj}lhSKJ zB}{3arahAW>-pM_E$~V_yLpf{tjf*x$%LgL(hl(T*i?hKJO!(?ocCd)>66ub5QF5D z!Swm6O1E=H<@zsM~$QW&tFRiRgP?6 zZS%Onp#1ku1pgXA&HhsJR{{4w-vFo{j{mnCtAbDP@7Mo$%>IAA6}$`u;{WXe0F3&- z+j`dop_-f1**Vt|*x1rcL(^DMTBelwheEbMUKhxcF*tytE_wwT9A&Ci1j2E+Nr|eV zhsm~YwsS{1^RnRxzcx`Va(hAEb5gCX?4jCBlg}uZJcfgRZI_coBc9zdF*M9kE3oa! zB?FRGVG6N(qZQMi#lsPFrDdE}s*GyD%4MuX^kLeny@Gp8yRgObpu6EC}SN@$rB{1{^|xNDAlPJu3gO;o4u6 zKwFUcPHwR)#(oxf+bCu8ZMV*~GaG>6g7H#~iY%{c?-vqD9jQ@5)u4P{Nc~cgck#ff z)SxNmU$1M+XAy)2X=&-0^U2|?Ec!mJ8ojw(K4+zDcv`**kmLpeAFW)S(BOn>$GW#- zK41ZyH?dR5jsh#&*RNlPX^2@$2X=;k85fsV7IsyRv7Mh^`q$mPG+b5Pz#44rlob9< zUEKLmaVfxjoAAMd!1#(I*ZsC7KzaeHVPmPY56OD}S_NNYiWdsM%kOd6IrH@_EycQj zQLFsu4MfuG^JhKE7U_$N;q{yxAe;iALA!0#eo+z5QV&gI%az~0)0raP12zqafa3fD z;26@HEM*UVnYWPFpFOcL>62GrRLXsMy=aBb$*Bx%e8fZ+vX!(nHK~8_yDZvDDuw}V zplpCHo(yZ6C|j>wWJ3e6E2^xly12=3dU`^@SLr%ghBBF*o85)mfFjDElC?U!3gfQ5 z(t43gCvekD60ycXoivB_49p(Oql$Y|sWfUFF|O}j;|!MxZrr%Ic>~yV`yH=_h0Oz` zj+&YVSaARv-W8>fzCc2c2)LmRL_g~L#nQIQ@nwUIv=dW15l70(x|J<37~uZL&aXpq z{E;0e6ZKScdwF)OL&axZ2bY#)5#KJ!$!B)b!Ud>e?89xdMU}yZsjPfYoUkvCvE{(w zS_(0k+=%}&={An#4Vd)wMsOM)W0irE#+-d+j6i@}_J}%>T@Wn<>L4MwTozWkAD6>m zImMo+q*dkrlt1tJrK0}+uTlx@Xj8k&8*45q`!?mqa(U&BOf^Zm295Lw8-DpIqo?od z*ca|er>UO(Erz86ObmDV^R0r;!+-2<)_w4Qnj?L2hdd!6WPEeFqJs|D$aiQIZs%21 z*v~I6!uY6*Hu_Rje7dy)(ot?5>G9*midlsFBmF&>sE>8v0A5WZK>*;ZI9lyTn^-l> zyk=)lmyDq!JA$5<`ulgRuXw-+p5fHo!#pN;t2ZYlrJyMJw3+i;ffm>04p0JrTE6>C zg3Y95s0(nvRd7ViP*l)jnVRePi`j1JfW39DZE?+R3iv!spZ-xmW-$3Q;Vf>9S4qgL zATvsWwm!dTFdOFR7ghtpRA}KfhpjhpaKJ7FLtA=SCt&mgIr@7S$VHGCtOdndwMd~_ z5JfSPyzu!KWp0i1OlM`B30F_FHB2RBKV9_C( zrj?{#rmEbnt~%;fLxPfKmG;NJy&Z3@u)fx|9vApr4phc6l1@2xuxAX{DYN=SJ->#h z^lv{RI%tTM zv0muBU=>nP+orsU;QD*hU)$C}#XT=gO8NsJ+dhEb79-5$ydENRa5TUEAMxWb|vsrQ}RtV4G#8qKzJG0X(13AUf6Eq7KPI;Ps%Q;{P=j-cQ-4!hZl&F zo;-6>^M=}-4gh_T>(tl;W;Qk+KPHQhjxGS5AE*HQ$IGFX zo8-H}9`BNr=u_7@_*s8R%xHYjb9yTWsBYiK}L^3f>9bu3;U9*I`}x7zlR&rntV0c(F=byUpudPEsMHFP-DM_xZD2N2)}q*K(~;Qi)A5Fa-551dK~ z{nGA&;_#o46{EQP39O zE_JLN&-Um|apdK;Dz)96oV*k?NnQ8jJ=$L!RVbf!Fv2`enHnh&-AIrvxuC@59X_~s zS4JYv9o~ZF5+T;3Qq1}ketArPduN{R z1m|b_B)?PDa8{;(-G*<9NEmyxoAc4UfktXWbNlI5b&$t^v24dZ0kRt(s?DM1!g<)M zuPC;(st^0HQ7KI8XHmT3QbG6d2DeJ#wWvVO@?)3o6+XSJoz-o*m9`IGW0m1Mu4QUl zzFN(kJ4mJib6kh%OLV11y{6sMwm=Ea8gXaKLpQsz?zO$`)}Mq@ZipXwlg9l&BjYUW z#>MR2bLZ>FeiF&g(&n7)waa{j97pEPZDtQ8c{(%=$4sN`f7`(7rVeIkp(9n2Bnw*z zqqu2HyCXjIxM(LcY78Ylsa8b}n^!PZ{e;pzVkA%+KHSfndnVh$_|A=yth^-QdanJ0 z|BB1?tKy=K`$cQAy-z<%olv!Y;svD$i5u0Ty5A^xE(kZ*PQmZ zfjHlMuFg;_JpMh`3D+%sXY^=z(j^!RI3lJk8hJJjl~YX#z7$??tuE95f{8N3|BdA==f(C~-%-*7tR@3>aTwR~IaXe}h^MxgXjnHwa>g4vI z8Qr2{PAa1yDH*}ZRvtGpmJe|3h-vByES1T~KEQ^G3+UzCp2Petl)n0%!o=JSaxt|) z%|Lgm{)15kX>5Gl9&VHywx+y~XKQPlEsu=hR5ca5R?dIk{{3brhc#z@b9e#>YSI^R zO1E~v{yvU%$LxUlW6{1c4SsaO)udypvbRv$`6kUUyVP09cIVaVvspQT4esdUt;LKk zRA+|Xr<`&~=C85WOdJ^7*>KML8fQAAvL4XtgW!Yyqo!|KCZ3jmTgr14ri?&ct|LZj z76pZnaQTpTuc>*&%EokK=&|iDE^e}TYyFm24?y|*kEXYQR&n0S-81@6XHye0e+E}X zOiWxJve=VQ;Cv$AFE`6y@I}kv2lHO!3eWC}hF#F)^Wu;t(KuK|{$w3zgXzg7Lgk z99|Qjr3g<5QTb_QV5GH9=jGcjnqUVz>dv$gnS0qy(_*|7xv=SV*LLU4#)_fKLi+ca zMWSG5qkg2BB|n+PI;`|8K`gKrH#$PGqhE)YJZD<3-PZz3pS8{Ee6Eqx$%&U+f_I_{ z9{-|F3Q-=BN%#*R9e~jHm}u|XJJiUtu=8dQm>K|jh5C!HCNl>(F3wI8595M^e@!s0 ztXvY}aNs84Qd4VTe|g>4PcWIIZH1#Xc7wi61wj^lNpl zhcM(tmUJb88**vGM-Jz2m`|-m9sG+fnCL)r33l%kJg!MgS{Hug$ICMx=-b4krKJN7 zy8L;#xq&6;;=)4n3PS&t1Tw8|v`MH;t!Qi2Zg>)XFnFD)xo1mU=^9IJxid2mh=;GG z=sX8+sM8A$vuO@p*+(B>ZF#&U03!3keMUr*qFJKvp?f~aK{x(YUc5R`1$NuFLsFu< z+qQ%&_v`U{@k;gPq2~560Ofsr;_J<~9`AP%fp^4o=6cD1u22bg1~tX>j{<#T18eJ~ z$!S~s;~^;}%lkUCk(u|kvNlj{YzI|0rLedoU5$EAcrg{h66F_0XL=OqXGNQRzRZyy zN<^N2y#Cs054!+9TI z**Bs!uCHNQ=Hdv3>F{&JprEQS+u0!4Z;JW)w%aitVhL*xahNSGE^2$Xv$>LL#hGug z!|l4J$z)1%27e-Y$0QN+v!=*Ay!jZpS=JJ4VANOA$?ul-q5@hz%~d?a(RJT=aS;eS z2voLGPER6F)+q*Bm-`3ea`Fd`89$UiBYI|^Ur>cmzv)DO>PN{xQDNTK+vS&gy}XK| z_?c!`0PoAcWx&!dqF*)c<5*=H@dK792qQ4K$*%(dI5T~|?VGZg8~$T0H$^kR_F|+|cr5cYhaXWDwm4^<_53SU&|d5VZnnn0vm+ATl09URM~by-x@S z;O4=x8m<9F=(VBH8bE%FAyXx^vR97KO9ZI;KpwyQe*VfftlwrhZEKU-Aor@J~ zsh2~87#H+mMev6GD&C$D!B}Onw+E|R$Tfn8^NT6=9l9>btW4Y$)1O-XSjcr8p5_vG z@h9r1+j26u|Lw;nU|`HX+}>ZeIeI6ggHx9Wbxq-PFc!Vhh-;=|rCy_4jsW6AMM~8( zKwt$4Xv!gn-SPZ`bXp+zARcPsot$@(r2W;qU1}iNPD3a%nS8oZFTPhK#OU(;VtA|S zq&>vT!<27r0J*f7ZuZ8i7uZdRHA6iBQAvX{_Y#oX?&BEw6c%)>uM7LselP zhC7pCoG^uE-tBbo87doDAqL)G_9%l zXE)*{?n6V&PX{+}1~;+R>|`N@yKpl}x0K0q84+Zh;Tr?`QMHw_@`KHf2E)nkIgmA} z~2?!%XiMvIk$X`m_j&08C+PqL`YRM`*VWq`|G&%#H** zq0%XM^JVVr?H)R9?_`jYVl0;0CmTL!16r7vxa9XA-}6gQNBg_oot@mSy3BPauloly+aEKsCD2grF`3GCJGXgaj=E~ zm|S-PcDU?F$2bJ+v_^tI;48JXG>J(jMn{9B$^IN8vo!AA3j3{raJlf0)$$7rw@+^G z4u)*UTzC#CD+B(xPL*p`j{dW>%RhR6|H6F8SPX`03U~RE+M8c1RB}@e?;md46r*%p z#8lj!W=1buQdkX_mNo4>&R3CyO9F01Uuv`#+qZ1hL-L5O1(zy?cUo@GbK4wCU>+umdL_Z z*ryI=EORym%a4SZc)2BIt+zB}%#628Q4C_X6}5jxGaQx(=B>bFzSy^uy8c7L)HiWM z=Va{A%e1U~ck*b+^h_X@QR)4-x<~o%zCE%q8NUoY6jTV-d zqd~}-=0&i67HS^TE6g5mGcr=J z06!jBmm?^}7pK;8D{yHCfh7Vkt^$5&q2HW0e`LX!t3brgbj2xNB`LZ4bG@K&{j{*p zl9j@uU8r9fN9$uRSXU_P+yHSA1^qoVq^$8AkS48$3s7*ftL+(FJ*2T(&8bYHn}VI; z{+Ym>T)JIw~1gS_m`B35On-qm{^2iDSiMXV#l*XHDM&_A9P!b z67YU#vWd+aw|!YKI?fVoehdlXSl_cvu|(7diaj8YjXqte4&P-zFOqr}kO%qkYJE?& zq5E-=xn!$&kf?;S)e*E$a9VB2^h;sm?5zPd;waa@p*=m4)y&(C0*k(=8LwX(K3 zlJy~C@BA~90`yhC!n|`D+2$xdjwOdnDr`J9mX#~)#Zx5u4(dW<7i{wR@CsNpKrJAt z*=rmYNrSulmsxvJk+BCXCv+Tq43e9i?y#UUiyX{kFY$@u81Fton<1`C@orwVUMmio zugfZ8;iK#U4bCb5*y@=5b|smnHf+pHISI|6mF2s=yVno%uNk>s=Ig_YXz+gTLEIpUCfrS#CKr>v8}R0QA({uu2x4}+8x5FZB&D_t+n!`7aMh7jmk zSS*0O;!1vR#wuReb5-|vR~77GE9?cLCvg(KRX<5h3@n(jt$tR>6f{K}g`wIC^ysZY z9jYUDhuPJ7wY7HfJau8CWX(u$ND|C!?;;3}u;r)bWTvg~i&epO&~aJQCx7t0M;t;< zVQOJC_&Xy65&xn0X2z0nqKvOiQ2|K*EGTA>d-myXH#PA*_)+;`90&~gH{|m(B%1h^ zhVK9CXM63#{{Xyy->Pf>#{j$&8|DSIKO6gkCEomxY7Kn%AM%v@Z{*YNz-|XxD*L(2481d)v zfRupvk`z?QSBWHlk)w9I(>okFbI+1gc@Z5mk@L{&1dR08bh|;rTRl>5eoarchwH*}=*+bYw;mDG<1$N>MZ0sblIDr7i1JREtRSZ?&s ziLKqpcwUqA914Z9);x!Bv2wg-<&)UZ8SlUJKWuPTLFTCv0>s{{y}QTFvZGQ=gllbT zM0MPyY@`grsI2^V)%V#e_#HPrALPYgcG9~kKE;|j2QrZ{RoUy@9CyN#tv@5R>lS1TP7-em+1E1#sr}MGwDKn}(n%VM zae3V|?o$`_@zKLW1P{9HE-k~2zXjRhjtNP{ij>G9LUtT%8`x?U-sAg;mK@|2{cb zHa;=inu8fxxOs#xa%2+yZ9gZnR!ffq@+Lalo5!ZcrKa2+KE=b&Ku&X#rnJl$nOk+O zI2c>t1qB``W3In%>z@aQ%A#B%W*WZY_nt8NO1?bw7Sq52P09ycJ0v!{0MoOO}VuV4*6o z8@f#c+IRXA9^$Vzk_6M&5-jtJ`^g@{DvtlHjSiJ#x#d3_#{`I?1k-34OL)X@-E=4i z0jdY8#uh1%=f{vzhQ9~Op_1{1FaN8upZK(o{NRujP%sx<#pBM=h3McK0EDKvzR6N5hpsOuCk>S}6jIuJ(kf5{@U6Bc&pn;L3s$@m;^%aFmx|K2bE z`@*ejJ+?r~FQw0e5S8T>g?sH9#>R`lT-azQSG`R0>hOGqgdp|HX6NSK%fw4cOLn%3 zI@sG=AMNKTRRsEEMBV^Eknv_*G<@t{wl-g?G4t((E|9b!H~RMD-{_LQEYQo{Qdj(@-m%_Odil; z4BjPtaWA*rc4xN0K*W!%b9}r)sAEXn7ig~&`R#TG+8&!`nZ7^^ZomWthK4xPKP2$l z?Sg=t!kF@dWm7Yk1=1O?&stOY_5QX81x4b^YHChSzU8i%JR zfzjiGodf2XW%kz~JG%T6M$^zRH9j6mN}8>V97@vrfYQhUK*u`D!3ma!{jYyzRA26* z3XY`iW9n@U~)Az{JC!k)?N(=|sGc{NP-`Q8DwdOUg>>)Z`#2TbEmon$ z7Nb|0-y_q_&FMD7mLSoC?)mfl@4ZGjUVBT-$7Z<`RIg4m;o%IA$z4-FWORE4K&&>` zr`<1jSXp~AJ;v=fbet}vfZ1|G!tMtuN^pGUQJWAE5rTIBr;!WxO7}j`kMS#HMkrc zJT5=a&! zX3}qGvdwu1k!tN)ceoi_(uaJ@)ke$n@;a>8FPN-?Xvb$laca@gSC0ELtE^m{V&B04-eJlqscvN*j3cTj-<;#2>DgFN7TsW53UH#gZ`blfp*cih-ua#`|V$CeG;loKHiEX*8sXT?aF zx4S=Gtz>2G8VXJ)`Th*F^#oBsXcQvC)czJPU!mJ|aHmT1wrSYCi3+RB?nxKeaDa4o zH{fB#pv}=AF%x7Oc4-k2Eb6Km+Bad?w=Caavn0B$TBDQneFEc!gGhANU^6<{L4>U8 z+zvxOKrk0Y^;!Ct8jm&3jj&ioN_x*?T+hN;9>nsvWd{Lrk$~~b#UgSd{`t>}GVk5v_>J^FWl-=s%v5;h)R za+vT*cPCPq(7&7wxW_f;Uv7DHzaoZ@0bkzu-3nXD1oo~X;~#pI!t`FD6CP_3Qi0Oa z={T^~{6|52J7I^)^`qanzuTFqu<9Jjz~w_+4GiZOKnl{NZH&(Ya>u#BNTUEzd8qBk zw!jB(GwM245y8$_h)Y|tmzbC@EA+Ax?=fw(dtO}L2Lr>}08T`ItRcXWDu%T2W->E2xvlO?&77V&ROn=>!e`h2#kLbXNHSY)$aBmusk zm|s83xmkib{18+l)8Xo`GcVXc>V0TWO~fau^2->miV-m}PTB$k5DE-E+l>W}wzfP} zO(D_!+#Mv7%HIIk(N@jg(98#{v6GR%qHjn%u16tQS(h8_pM;PEHE&T!u@;&6jD7^3Q^rA zze4*d*E2p4-mb=x=(ek8X_?#mB!cNwL&|g9Zuxiv@9{W#D|0d)U0fV2wQ%NJlO0af z6V1_(@BEM_HAk&VoJ;@gfmO|!XT%N0Q}zRZNS~In3)Wn?4qSf zp%D)$BICoA>Y%mI=db>WDuCQB9l9xQ1x5M^!blSTMszg{A*`eM=S*|TRF zTvn^26+tVnfK`!55UHpo?lB+&R!Brhj6tzP+f9h#CK-<_9X%Uc zs(LN#HH300GPb5YMXjW)$4KAF%KQg|&<2bF!84v{Quh1xLJZ zwgNYN7EuvUWjM4rp17~*J35xyir(E^S+L`IIXm0*YJ-kyni2Jj1lJMf-HN62faB$LKWc{M)Yv5%F?bk*2sfb5uuv4(29SM@-CqM7cwm)w2bw;q-gQHcS;Dj=*( zDr7mlBl2Jk`tD4$8yV^mpSesqH$3e+ZtevlV%@iUGYo_ugwr`4v=gYyvbdBxho)#8 zB^cL~s3cZ!T4>U`M3{cPE)~le>9$?#>2`AB)Kn~pb=4Qr`1=MHhS=tQxx^*LJTQ?H z$hY?-eoUs;s4Epy5*8^ZgZ)K?MJs3dgCX`8V3ts6IHTjeF_oiMmLrZ%0z{qQHCI$< z_+3Y^OKu4yWnTsSk}qJJdjA<)b93|g?Ij=>A?&Jw^H{WYjAw{!RRiW4J49LkeSN(X zN;;m~@@+(?z z%t|FkH6kUCSZQHqhR1k3y=Z;#Y*cil5#??V0m&_!Cq^0Gf)H<54F4Kg!{+`*D7q=Su9^4Um0TQ8`&}Pa+B)4SFcOYs= zziQ8lk|`%0&O2$E1bnXx<=hUMOkC_Y-mI&k)qk4*?9wQD1F8Fpb$EF^$+grS&#^w5 zth9zj;r@o3yYZtg&l8XH85iLu3A0;RH9Iv9Mgfe}&mUz>n6CU=KbCg$U6rWU_;W6pogS*f(gAwlUE&vOd z9a9(LwD#7%x*Oqg6V@Lb#E&t2)ODx5DirX?TOBN>ie^@pwDU`bCkyCG)d}Ew;pL^J zrLGr~GR9EYMA2wrngn29U6G^-Nc`C|mS%i4?A=r6=0YQLt}WrI1&SeGZrELk??JJE zjash6DA^M7`y|7v`nSApw9GI9ubGCbQRd=8MJ$ovPYn&pDtkaYi0gMEQBs+$gu@;e=8AR=j=6z#>y~m>wplO}AD`PS-gMRO z?A}<_%d+cx`zThr)5VU(uB!BOFR>cQu)C7(e?Ue0WvmKF+=F>;mG3TAlOLBWWJp_1 z7c2EDE%9oa4I@78jxSi5OLjKnu7$y=u^m&I%L}7HWy}hwAuw*<&w_Q5$)kqODBRQq zryMAah2`sqb)4j+JORXhE>PkqTnxX&-00}?wcmhb+EK>w*(~n((6;KN-7>tLwNW$pCX*x0HLK+R zA@4ndnry?iK|2ZpDgsJnz8499QNpv=sfm6Wc$~{)^e^lh`*ospxhk6-18Ys?@Bb4v~IK z(O)||KdvPU=bMxpOB#ayS^yO*ub_;*`+6V{9uxiD-XI$=H~z=6-fx#Uwq-7l$ z-jWU($SAYkPp?+$Q)@gXkkzd~jWko`0A-%lZKrZ3+MmauOkMOvBpV`DVilVyiGFs%`uKYU5&}hjqDet9CaHT0I6Z#G}*d#q{2A7I6hje2MUUntf zwN~?6D zgF#fWH|b+P)>&%jqXb+2Xx%@+Z-ew*f6G1D$YwEdW|yWEFp1mIU0`cfLr%s)X+m zX~n1wO07g!Xo9+J8hF5UumRY2AHFRlej%OZhAvOy*QI63KTOrBa5g+?g7Amej-z2d&SvWMu zot}LUN*~ZS7VYn6Xt;6`=SuMv0zG=Zy6vQsH*#wLqN%Tg-yz5JfB-P!ccs*Br#s*Z z08zEn%IxgXQSAnrWGI@eS9ps*-8hu4HEM0V*hHgLymAJ|qNk8_ux;=BR8-^vQn#7` zNVcvnbF!sMdbYRGwRTBilRM znA;Vu@BdM?jP%)F*Nay)s+yE32yR~p4(njGMOSPU#6 zzqfymzccBBi})>b!Jp6;iW@HYe6eonDrgND6l7+XzjBg$9(TKY5NoEl#+zrnnPaat z9j$%)bS#MD!z3>U0Na>*en@?){T>Ol$Oay-eAQuPs*&1Smkf$~^W|iTe@_~*(#E03}uP-0UzxWq2D5Zy6SdjGI zw;31(f&s3xRy;sB4x6q9;ZgY%DM1wfHPPt4N}^N7ksJo<%t`N%725zb*bS%Fc|(q5 zVD^by9v&YXLR=5HIkE`xA6>fB=4$FYFDN(l5xbzmtlYXbddQnD>4+`Y+iLxGo|=nB(vNocQ^wFL5fTy1GV+9POm*wE+|kaB-GOWI#dr@$y64 zRZpSc*^*;?29rfsGdi|Kp)1?Cxd*JG(2`-sIC0o&c2kg=Bw=&pb0Z9XWUr_grm1VV z#&GG9RnT z^QWE(_h@{!>!Q8$A~Nm~27nrUrHDJ>=;Pxo_xJ)k_DexSly+)q;;#gXEV}q=ckC+J zB$WCsQW)fY{rtG+*Y>x#^Z$ukVF=1$A}%W36^+L-+p&9ASmJrxEQYR|_UZZjfCBlx zY#mYWxZOI`_+!!zzA(*yL8MwZeaUHt1JEkX%+gM>3R%?K^P!8pde(2Z><-5(MrQq~ zPr4{^iBbvWT@AWkRR&Ubx*nK*$tdw%KnE$o<&zD)niiYrvs7PqQww%@l%{vDw~2NXRX5>Y0VHydjEi~82vm`6p|_b zok^A12--6l8bBm`i7b>Pd-V4pD*%MY-5F@gw0nNqfmYVVVZpsyg^UyJpvu$VTHBLM zk#KG>Coc32z7*x)@E!hWJKOrvxDp!S7SO4Ccu1;*D6~I>Oyv8~lGL6Gt@TL7Fsmge z0tP0#30zlF9dL&HYwVO^BP=(F5>qQ2=_|kU2CCfa6cMvF{WV%p%%%5J4*#M* zVID)GpwXp!C9=3aioy-Wr^V~NQfaGRVe~Av3_Z!u9qCba1Sz~N{317WHScqHBalGp z02wvXP8%J7d7a2UjQJb8Y4!(Im)^Y|_hSS^b3KKiRd*zY``o#v<`qhUB7<=gzG!)Q zd8_y_U|s3Zb~w zkAMtj`%8z5%cI+&XABnX!l8`aa0uF|3uL9{bz3JTYCzmNq$WvLRDugCC@6&S($p1L zo)o30-)YL2HWGuV#a_PcXaS<85noD6jbl2vr9eV(S<4UV6n{~l7@8(3Voe&NtGZ`b8$ZzUrqhxd!3z$(Z-8Xi)p3KQ6+}_(MDZvC8c#H*53Ar;Z+9ZDSwn9*^XEF%13zI z^Jo079K=sVlJGOn=f%t$~X9n+4803FuJpU%jCo>eu%( z=xB^lDB|l|xZ<;C&$7Bx)mWtJj+4t3t?hVgUy(#J_>Wc2DqEik)1v<#>zLpIjK$wv zKupX?{xr9ei~pX~QjG=!v##0nC`37`B?1E5jbI8Bw4E8-#N+RUuevg!iFQM~{8kmt zQw_O=dn}MO=P`ll@ltWdv%EK-uD!bn^5=Fhe0?31m1Qj~QW>VIV5s@`T7EmLItLS= zDl_2ZhOIC;1iI==Q{+7d&^u1mBLO(|_DhF)x%67SC)i%h$q2u|!{)P73^`u;46^qtAQd16N<#Uuoymt9c8YF}&|y`Lf&PBc0O6I1 zYAiYsUIJ4w4s87BetGIk^tD|hhXC}zN6CQ0mCE$mJZ1C*iNaVD&!pYrcBJXGHr$mq z8d(2Ei&Je$BUF-oP4!=d$K2+(^vK8rPE%;LL=c1;C@vr4KFbUHm-6xfc-r~|uXNG1 zKs@tUt(+1SSlRlXWOoLKPiNra;rA|9$nCC5xcutfwa3^H2S3cl22aN*rjlVB6C1wf zF6*7H8|$g;f%|F82e%&9dPbQBjDbo0Zs`&p$D^`A2lx_-xB?Dz-p1S7CL|?Y)5X1L zI0njmo+H2dtm=1|ywkAz+V$1U{LtFlKb8gnRC98u5<*@H18m_Wl5?PjsC%=HUh+R9 zZaX}muCNEL47PDG0_v40$pA&VTerRq`&^k>I?N~zm9HVND#Ndpf1^Ybw!@RE7V9Vo zYZIlmv+n|rNL!2$9~8mfB~x(qiNWNKsI^a!56pDJs{#42!QB*=hPP>q!|z zM>m5ubtf=il6gm6_$0yol0aeI!dSkMuo&`(zM##o-b-|RrA(@^v6pOj9WfF^CQ=JC z#VG~si*k1C=a_wMzCF?=TTMV)+vqscj$6qqC7A9>aa=`3ED`~PW78GoC}?lm34YpR z?RvX=@%NbRBJtwy*(j^z4}IpXqx@&j2Jbw4bvVoeAdH&p5KH;V7q4FjsiHVud}NuQ z--YvyFGV#5sY&(8FGkBzm0v*k@`;l>`|ikld@vQnuwZ-f|iX&BvpC9A@VAJi=FQ_Hzxc2UoQhFP}l%zl)2x z;yh#s%uH7(voPU3xW5(xf9GTM>(%UzniQ;#3Koxd%O)u6N~+nrgdBHTBH%VXEKe*F z=3hEqLl9X~sX%N+t&Q|?3c>O?ebAodgk1H;Ot0YQuj(2}C{ z^YKF*FEA5#%@_bdP48HqC|BWq@)Y`5fh_4yo>*y5c)SGYLwsHP&fPoA0(bx$0$Qlr?H(4-mBWrBg95er*YoMuY zdADu*=g*(%EVL-yLPLXj_C(-=`4{`=cvdL=Yh_|TA@GD_p|g-3)~mfrT;}&9teAA1 zPZqQ%U|V6viK4U9#;m;eu&P45VprqME2RATxQjETg20oHmnu_Qlx6I&OI^Z=yh&o?Hm`3_Hv z`?Nmw?*RFz+rIz0I8LzN8rk_QO#Tu@-ajN;i`1RNCzFo@dC$N2Si95TXD+z4tA~KY zwgcDLG#rS=$2d65**CjtWyPM0mOi`nEL#LKcTV8WX9#Qdj@WIn3TM9~zQ8gTT4_$T z>Yr&+(DBg?>ZQWg&<(WSfnh%-NI(r;!+*`zyn|cAcBhT2ri#I%)^ksM>lDsg`Ol5s zm6fDf1VHAJH7Z>a` z`BFu}iEfm@xJT}98h(|JUFz2>@n6^hq$rWlTrSIzN^1-tu8&>ySY~UE;Dxzq6{c4B zVG5{m7*;XgIf8+(YMQv^^mIf1^G4vJ(f9KlJ2WKnTf@8VSNR`pkX_i&#r7B{wC`Ns ziJ`gn9esQd6|a)!)>bb~WF4=yot+7RTmHy8+}}Ui_@ajMni8dOWM$pAa|~zTO?bNe zMDFE+(t2H8o!ZeX9DPs-X=!biAYdUq$hB^8&tAB2A?Hj-9PGH;XbQ^WkR)IjS-&+= z*>fS1j>FW-T8-ZsX*q$h-x=0YJKDfGqi{!FGV;%M`M9`l|rV zZs>13+z3MyNP28OdnMg~@|yaVbeUC1yu?u~!-`WaWu)9ablYn{o6rpz*P6eWXe8w5 zFmv&%PB9=Q8XUZS&lk93k2fNjBo-oT)(f-(JoF2yp<_RL7TCp$AO|L0sM9HamLB7g zY$CP3^YQFG2iZSjb%!4jipd9sfSqk1i{73q zkX>ZE|NXCDK|w+DO7XP^E%sc!NR{L*I*!DjAo3JDeEd0nFR({4UFtaCaCcw|3o5y5 z*h&6&qV%xcH*2iZv3mT`3caSzpw{SQr}G0Yn)j zkQ96KNwMv~8>!=YXC3IH?ae}V5ziIb&P0A+ffDz{NJN$?^H92cI75S|G_l;IWT~{X zvy}C**YemJFexLT9 z{`3kf1XE3H=q~uho zq{u(dr7PwfZ|~Eg{Z=*Z$p?}KHhARIHEKLv!Wno1@z_>zaVDckhWBa`Tizh_!!z)( zc`v>4n@>wii;^Trq5Y>#NuxgV8H~W)eSF9>6iDn$mh|38Z49NE1o2H$`XgM0*!q)= zq{poSt}^+hwe8nax$R*K%YoM!7-0LyHL-{9)kpI0mLcc1+R)_u_JcYYtldTDF=9RD z!uli%zmuaSniaNdKlQbWEw(RYZz+(h=4+Uw>3k1O%t|rIDe%$D+HT7_p6@Tszt+Q< z=DYBlVq=KExzaRHhkU&$`O%gb zKPlP2CQXtK=P_yCM}@$;YhB5kh4^#@U!Xl8!H+>Yuhe&*vZGHI`ARJJq)_>WD#+-3 zLvU!sNV&P6^3HO9bhKr-6c%M}v{*19)A;i`B`0X%y4%Dm;qhxdV`l~DlwD%~9>iQo zz>@2ezP?65&DvLD*)d)_4w$l>4AI@!mxi*O_t>UzpML<99c7T<7BRd>EkQiPBvkeI zSOw5j$DVPX@~t>DBWJ20R;%~J5QP%H`_rStjt|;;q)1KK#j{40A9{zse7Ob?D~vcB z4$!p6@48Ljtweo8z)T=;;I+XH z`48qT5oi!Atk(UET}*olgDU4jNJL?%{N$8QIWTh8-N}c2+Zk|LX375QZs8teesR`f zD|>)VzrsL9&MRO3ip3oLbG&LS4l z8N^R=)UFb-8_bB0yt#)elpPGYMj(TgWk-@3MZ1AVFk4u6peo^u$_}u+-b6ld4%B;u ze0|V=hN9!@72Lyd7>4hsk=|9O3cI0|Wsu%k?7|2;=?7NeeB>$fuDG|y>UC9ZS%pM* zhj6MQ^R%+Md!!C`e#?YvkNl_?wFfcc_GX~OwHr4qh9Y6o94cwzhrxRw1XRUTPZ-Hb ztd3O&kn2!M2_W((rgE^B#Wh^}PI2oCAACDl?>&qvCdzrTY^(GDzI6JX1fZX+ZgpgKmcOoDyu2Usrz6_hP7-UOLZ(z z$D>5s+L4%PWR2V&<%* zyJDI~*SG^+a;mDHO7v}QZ`05^=U?fyv+-2~qTh2<0$)|Sx}$`+xUrvgs<3aB=XTT9iwJQ5zMK&spKk`qlt;Y0x>4gXY!yxeEg835 zVgW0vN85w=!RBG4Co_D5JnHpL{`zC<@BB~t0nqD;W}zvftlG$G@@rI4A`mdd@U55f zD&M=;tnfiWl!nK!LR))de%^BEb6WY`G?L(6*n0;f{9`XLQP2ft51>27W3W2 zh~25YL*RyP^i^$zx-W$ER-b_R-;CKF&yN;nFQmR4wC@Yx6Eyp0(_HamROvY1MIq?M zNQEs)bRw?ir;;T%US8_jq2KP1@<=T-l0xB!}X|NgUY zL>a^haV`H}zX~n5_4oh%U!MW`F#h|s@ZVbA$-kT;|GDvIe$5p+{wplZ4Yd#(`)4su zonl0dm%PT+)ZgvJVvzOVRf>Klom(ld-C3O~kC`z($x{Jq@jc$yL+I|~w+i}S{=uCA zkFBTlJlCK*I*PV$lk@rG#ht2`P8UHhY;&h*!WPWoluJ#Vf?uwL}Zv*#+&x7GsjR@Ke zW*e3EO6QLW=Vsq;dyrR@#~Bsq_}|+!9YY<;O_fTin055SRKTdYo)`04fLH3aYVeYe z=#^FQRh5%#p7|joK>2q@8S_aZ3QAw1w6$Xxty5U}*1t`f^X^<9xqb11*?7O>%R+|y z{F3eHJb#jR&*b^@^BMm$F)u#%7xw^hcTM&Odm-K?>&+zIiGoed<@_Vl$ zxVR|kp0q0|#%Hmhd@!vCmiPYWd%u3I-Dxp#zy2X6K8F6D)&0BGrH7jxV}!DC(602R zv@<=Q%q(JVV?%++Gd6HBP*^UBxkFc3>v>yh;_s$)v2Vo>v^e^j%e5Dm%=G`<_dw*m zc0mw&qEgn`y591Db?L5U_UlgeP>cVnOMlNY#C6#+q?y9~OQ@6gfpBQtJ;p_YzhiOY zEWW>orhyflnsYH#G>|UVoDS6X5Q=bS=hH@PuJT$_2l3ojaWd^Fa0Ge0*Fy$&OT8N#pob ztRwxiS9oUHTUZ3s7VF>fPdkBKrBp%{HsH>zqrKFMt)ULs>SvaaV5(8cx&jt3S9dFw z-kRoUFY~;7X>^xAZ6JG3CXCHAg4svFZf;qc_irN?uPpsMJ!N1=M>}_zk`kV>10U9T z#MafA#wO(GFT3|*s`$@}*y%j=!S%jdBos&{rrQ18r&Z~ZZyV6-{Ko~^S0hsN*8y|( zGZikDsdq)Q(=sR=fe_VA_jiF9S;SV#zd$NKzM-Z&=Vy3IU1CuxoHB3? z6q^6MNqtC%$foD)#gUs}@332urOWV;O7iUAPD0)bjA~8NS1y00`4#y0y?JHX{%%8H z;`0AbChmW0p8meYsqvG}v%f!8B4B_0{c&*zll}MSe`h=YzxQB#+4yr9EbV^`I(5DR zT_EnKe7Mc2fAq4}5X{M4zZ>^4{b?x(*7{lAa>|7gbkUt42**{QEkaQB1O zBSj^pj`sF;pl9}He&0}O&9+1Uw^3X|0s!m$0|N5HPo10qbq$TrfC3s0FTC{ME%{S# zL0wZ5kURBeYupJ0ok(v^spzktoHUi~?d_N|$rtr|T5D0L-Mr4f=A~*gHZG2Vk&%&s z0dP5SoxODVvi5C<>IY|7Pw8mwC&$HQqTeMA^FNlWFZ=IOUvC5+i3dj`++4eWN&Hem)`rcqQmVVEEeOQ&9eIF3sKYd!|I@=QG zw^ej%`fz8l=SO|mn~8m@tADpr_x0fWmmhb{ju$GNoI*WYTU(Cvgx%eYTYryam3P9% z3+@{l;;*Y2!O@)h0=hPgjaPv(^5UZP-(zoVas7igz@MCr2?FN5!baebTbMFrT2Fu%fZhqe2#3a^NhJ}SaY~4@z@9JyL|Ni~wN4U1WzD@P{ zlUIEbhye@u-;#!>9dwsr&o$hYJXNQosrg-xmNt#{@B8~RM<>)bQJ;LRF5uhx?`(#G z+6M4kYRBEEfE}uv7Yh8Nw0P=Nw~3rwh}<8@)XB>`^)xj&z3G1T_gVjs{IZ6bQ%5(t zQRchgEB?DGvri^>G5+>62xDeuX28n2g^Kd5|L(1FHD_mMM_r@%>o5+U1=EXfE<3|} z|Ni}l56f0MELy{&!^6VBCIwsdq2d30?&`_se*UNj8=&1q@b}s@0Bii#s4Qqxp)_9o z`pjV9^y$-vA_jjK`Pmw<);8YsG;(rs?T)cW#KS{BA0LC=@69UjjWso+ip{*PjJhG92R6Vsh5wxy z-lt$g_tq=BPlJMo3dk3G`wERr-Lz~leDzrd9JhR;5G8>5n^Zah?hfPU&x2NSnBIki zlsirMHod>fV^mSL!p+T%n~#SK%T_u~6x6JX;+|J{Ecc`Q_UvZXYc^;uT`C^8-#A&5 zX-*A8L*MN=g^7_0drbEkn1>VnIYxT=7jRL7A+d-g0o!X=Zd|`|LmzXjaC$H}$ZWs{ zgT-R))Z2q%&&0>aV``G86A}_c+!rjYt+DPq3M{yf0z|P4!L`8mR7_I)-lLR5)V4%Y}EgwuD^!8&JWnh0?N{7MZ`~qMVvv`IPDbm#mlR`Ii=^Pzk{u2mnOQR<=nYW9JOP89Y z4z{VOsk2iV9CgRO4E#)4nE=CgmlVS><6*;!`3e*K4>a%jh& zWM=-XJSjhZB{ZIGYGH#`gGH<8g_OdM5AWjc?I z(g7{jxknS|!}S^!zgL!p-FR?!N|BH70f&S{FCKZNMbN3Dmh!YXPK}R#nb)Xdb*_!< z@wx!0yRb`H{QAUYU*a?&N}7@ZJ#-TCu4~{{`u_cUXA~79uej$*3~61SJ-|Z5*W!2p zeykn9)6G_9QUlF5EN`z4p99zGn$o-l%gLD4Gr(X^W|u+PE2J9_b~M7Tpte>VwF2$2 zeBiF6Z-TypG#`q{;>c7@MS5?6$t)9{NMDBXf!?f33?nb9`etc3JMo+*GM6?P!1NQ?Zl&lPC}gUA9WAxS z<{%^ul`o(yI~XK#QRL%8?n+kZ=fuQ=NxzNxxw)r>((JarZ~T{fzlp6^HO|l4?XC>j z59hfWC;*d~>)K4OH`t3Eq$TdpM(vWhp@KWEMuvvDVYcB!saWp9+WtRx<Pu zb<4fCLjg9XxpHPJ^_si{p1_6_D zmbL6SK1iK)58H%8lE~GoS7%$J^n5z{qKV5{@CqvQ=1(eL$EiBfgx8b_M$wK0h?AQy^9IYq_| zF}S@Mc6PKUPB&ok{_`P<9u?sU?Zz2m ztv{Kxr=w}qS30vkQA2V5e5z!Cp@y@v@<+Cd&SPZ?JF>|#=26)FoP;S9;H@YcCh1|9)~YyaOuQcL_xoGe(rTf zMq%r2780ngbS0MumoFRqS$SSJWL9bSg7~-CDNUCg%+k_QyYmCYkV(S&G8Z}n+X(K_ z{lh~D>|kEk1W**A4;GS{JfeUjCd}Vj|J4Ba5J|W?~yzF;|8gC8-lcZF>LV*JAIXjM;6-Q?sYRt`o9VSap40j*)Bg*Hit_0|3dD={z}5(6uZ7N=5;rU4 z(}wDllLVFr)TGK;$cw;ZKCyjLzji7xdAXV1R#v8_X_^{~FXb!00}_ES6%*v`GL~CC zKSQXvxwx)-4VTxv1Lia53DU=Z`Yna>9nN_rXVh-o`UWWF3P4u@7F#%)QXiOy^{QE# z2~gpwsLT|bjpf#Z0x!f3Ynr^As4g5OJmp_%YngXfPb6~?#chnx}>nQb*22|gI3&t=c#K+giAd<>!u_7Ptzat$h0f$u| z;m_k2Mjp7Bsek$jQTdUTQAhmgzPxNZq}{~zt0xd2%P8!;-%{{lB25oXALa`=+;fM* ze^dZ8p0Fvb0X&%A+;fEm;Hp;pz8~Osdd{fR2k>^Mh`0j>Y(b{kZRh@v&OGRiZQrapneu1ePimF0u!FW zrPmHuSs2}0l+RrtEecmuW!rQgZX^trn}kN{LA+$VaYD%Hm|0o4=)vzA=Y_@jwbAnQ zfL2xBHODA`=C_)s zv9coraN5<5h4VLVj4M}_NeX;$od4%3$PFM0>ok4+c8BzgJgr3^Ojf&F@2yY7b|xiC z(?D-dBm&ylrHOWw=8}**`55%i=jlB0%E^3Oi1%Nssi?9Y;HY_}1#BZATiPq7%*>fP;_E8@6FNG)LoPjubuUh9@FicXh_W$a=}Fi$UhQGO8N_RVSNZSw63b-*}b(<$JBt~ z-#*xhJ>vdR)};UoEOfwXeCODxF!bMd98Jx@2N$IBydmLRmNvll)WxhTNpO^A15G}b zp_Q;WzBqCRs5Wi24&`$S3YH@)l_?!W>M}GNnO0>-cp;X0T8q4oAG_igy2eHU|I?rJ zina58bg+V6+%Dz;RQ-4E88rLB*4wzZ9fecsHy>ThgCct|o#b(}&Ur1&$8=`5Lbc zN!J-!ef^PNpYP=R+D;&Mf#pHJZl=s%ObDK@Qc8XFDrlnb-_#-9#6`nMzFLOs*Y^(& zbYLBk5QLEszGkaZxsBL7>Y4k)_M?tFnk75Z??Qv6Z^FzD>*97;*pH@vNBFY<+qc_N zy_W<`wYt4VlleHV;g(K8QEgr)7Uytf^$E*(!-nA@4U_12M_+OgmC08LzrE4@F2nc( z0Nal4_IYD{!==0VdSrU=OO@%5ebSxn_+A1Qw&#WEZ`igiYlC_1oH z<$atsu~EW3A!+(vpqXSx+mgmB{|;*l){> zKP?knC%*DP>c-ug;voUMv3R3Q>Q%r(p_(d6&&D=cYORLwZU5|CvsO`CTRV`YhR_A+ z0UcIJ(#}9h$&&$}pqu7Aj~*4h!)h*$j3vhD%!7R_=DV}RMYRMQRX#^Sfv|{e{UHRR z5v?b8(!+$}L0X5wZVm)<{>H29?0!GqojD8o{Uz-@y0|s^lhTr+KYvb(j`7&LXC~sSi_}zw;#yQm*@o5mniE`%WtFihF-zis^S<;F9t+h|M;_mhF}6bG0>&nTN5V8TFV!&Tn`j&V(&E5!yTQxp+{wnG_jS} zW_t@E=%iq?#;GZERwJ+qF=sZW(1DHbK%P{Hq;cP?K)&aaA+#for`%xJA!AZFp}g>i zZAgCdPP^AA2%%2Te#bF=m+P1=rsJSyd6L)e1(L#qwMie)Yw>SYRZ7Y#yRnffq0(}N z=^U1-r8&iiz)rRwx-Y?_6Xn|Z-oGrx~-@Bz*mk4;G2p>La;PnjyK}8*F0G&f}%>8pkIA{r1nPR*HYHUg@X{IE>>p z$<+sA{suapg+Us+>>W6<%g!BP^xPb3$CLF@iW$4L+V(euol*|YgiDr|tCH&MKbxX_ zM`z(-Y%4Hu&nMjwu<0Gl(dtsJIcb9x3_Slrun%%!t%ele1hTV*>wdx~X5kIjGRzUA zc(Q@nJ6*4Ce3eudc4{;!=cH1UYPk!}q(H87{y*5c6EoZmg7} zzsLP?xECVL1u5 zo>;s$Q5LRk&*K^VJFdhabKarm-_mDn#)1#m(9yLQEK0s$f*@h!WVXmgwc z-RyM|7HJ!7CpH_0y`8)4bfzi+q~VtCD6%UNZ@}hb^FP0|2(^jHnJSDCQgU%>yL`1~Ux_!-VCnlJl$Cyum)iU97bHuGbmNIZpa;ZN6qZ< zRa@tLm6gH0X{6jxM72{HeGaBP8p$_I+5i^RW3%z+Pi2K6*}Z0vx+_t?vv)b@4z?Uk zL^7|G{hFK*lRDm%7+?ZgPoQw0I7 zT$q%Y1a+Uxzyaq#_vej9YRRzlT^X*uBalorBXzWQK6PEqUI9E9#XDuCtO1#schSV3 zrL-hsCBRtgpQ_tvVRkmIa``5ixZ`gb9<22CcVlQx88%ha6ObalWy7a=xWJSe5R&%x zPGPv&+4P=f;Yn{9xRDWS%9PGFVpnWWGLKeO;*3d!L!#tdomTqDJCE~hJ0AbaTfTYoE&0T z4){)E*OYsY*%A3h}U8O#eFJuBWYVc!88)yIrg#?!^-hju*nUiVmqp9W)>k zb$-A#)Rkj*=>1e|Ib8wroibFu#tlxn_!OgG9Kq;Sf!keoVm`T0u|z&wdo zPNsrJ7(l?)KLUb5AprsHJ{N!gT1xwSdXRu}{G(-XytNHUTdnN4I9>Wj@_B^V!LmpK z7?_UcK}khM#LDpgb_X9urHtdD_8;3Timh}Ida(I#N9M;=Z-aS_Z#zcXJ~{OphRvKU zdhF*ooAlCdZcYqMjWo&>m+L?PdX)BtfGk=20Cb?ksvQ)7$mj9;LzAOXlRXKG)BBPV z-YJp+NVXdQ$_nlh02~|X#09Y>YNH}(0KuGE&m-5*O?r}QLeKLk-40hAXsL_F*F~jDoe+E3(3x=AQ=Y&&TA|WTeF?ozn1T|-vePd(raV#E=5OQb<_UVY>mhA zjIrDHTpN;e0^GA8;L!E%62v4F@Bl9&q&q3y=YCBBhKTaL%`T~uRAbc8DX1U*(fTe~rEF64cx6M2PNQtp|VpvWpal>OUEYi}?&8my99E;B)NLY-T9pafYw#ADZGo`7S}xu>M4m?Z4H zK7M5+gvLZyHx4dC;>w}U`0-<@pjro^ySPCZ7U;K|K$d&nQUb_6FuUxLh+Nxe&*rb| z1I;#l%kXJ7lrMK956=S;=-eg-QO6?IS1un55Xk%wfIFOuA`-AAt|;A_b==S_hiZW_ z2Owo!{(jyB>4_Ud$#+aU*IZCjP#vrE!{mHvrJ!LO1DL&dIYR&+=D$L+ii?ZWWfQ-; z|9JT}WHituG8VJoq)jaKbzHyxgE|Z#fBknq5ppbJn=xAZ!+xOU5PbD0E|M}c;X}|9d5IOE> z>vl7+I~?v>K&-#YH~MmBHmm=abYL%!JhMJRI`Ng-ZjE`x>pz#{rh7(HP9XUh6b~!j zz)u^V3q*h|t7!6nhs)+R(J8_KIH0MM)BJh)NH)KfxhOkW9Z@n_ysV<0ynNhB%I_gHzLqaq zM&lNFf`jEFZaVYP_f?nxboupjjMuN%Zf&FecGoaDN_r58RF?>BXY+%(yh<@hrx?_$ zDH`N!nn@(yfAC<-?rZn|LEc+NWx2iI!WN3C7=UgO>>vaKQBq7$x;sU>TN*`FL_w60 zR767HA*4GDl}UfZ)oD*W=KIM}^C)iL&Uq?X5ltQ>Bmo^nLln2Y4bb_pFmhR;xW_5_3T|4+*2TiFT!>y|hV=gP1)VegZk#x-w z9s#lOxlS|LCa2DviadFSq>y=IHMnDXW+u<6hb4DmD%Itkr_(uH9o*PRw43mO?dVu- zO;*2MFh4)<7w+n2(NDY9l5XfcehUu@rbSf8rC6C*LJ0e}d-=?mQT4^SmVP#FoBqh7 z8ChC1cT_HS$9RVqk2ELoGBQfongQ=8oj9KAqxRk-l*%xG`oJmlL;zGE=7Y zUNNFQuiG>>{^qpYNV0tY*g5CPrjqV=Ce0~fKgQW@Z~g)?*QT4j@skVL(k`v7wW6SPPS^8R$v`xyBiXV2=dH)XOzWr11p@@b0q~O1l zgNk=kQ^}6$4cc?r?~(~x+x|is{e~R3m3qCs5i0em7Q%wUbJnTlf%S=7A=Wt19G@$5 z;NkV_3pyM5&YTWTRikOcHA8-!KHPPBMu#b1($hLVrCxs_??uTU!6KIbyUx2Z7$#?$ zHPHKNGHR**N;ke-8>aDlziIXPd`dw>k!`Grd%tsd6V7ru*t>)+x+7iQv9!|@XK52Jk5WZ zSGoQ%*M_SE#xkG3 zlb#HmXwtr?#=UCgMB?@LJRR)3g{Y1;a3u7d_-A$R-sYJ+wG}%=NVr>^V`i?^U>9g; z$kU7pGS2;y8FAj!JF!bqgkhDPui+edTHZVIb*cri7>BL}J^NvQc&Xm|<~Feq4!^+H zuLEDl1%&QouDLLIq=MDY7xdI4fPHaJlu=3KaNAt@=z&CLz1pZl|C z~6N*-ptI5b<)w%5g1-GCIKMC zU>J`YHdVJ845_u%Uoxy_-{LYk*jF81$+wzw_o1VM0~)|RAXU@S#vH*6AB|dDcd5Ue zw6y&C`{FRc>+j?NE6#qh{0azI7!zsZH$VXl#!^5!Z0Y#`Sh49;z(t3PfkAg}?DxN$ zqhhz>mdzYqdGkGoA_@XCM)MZ!W`^{l3TjZB*pKF>qp=NC#aMrxWaTpX1e>cO9Auze zh;L%>uoL0vq=AWp|h}b#`{{eXZy#8=anVS>`B! zWX{s~*A(w~Y$a)`SOxg`W!pau`1tx_XfI6F^89j?qZrbGyF1t$)vA^Qb)P`=VLuxR z{$DtWBGv(eSuUHAIQqD-9M5_H7ifj0g_Y{s^%|w;A3xrbi=oSGiAUYE(UA8vPRd?`wSiQ81 zJY|D&D{Ap6MT@M{j72F zcI+46GX%-Q{KdUl{4l?OfRbkh8+OF6U)+3rYCrqYRSiXctuUyCo6HN7y!r3uQ+8o< zGRzWg;JAc|q?>fCY_m~FU0xVWV6P@ArGwi69~iw_Mc;<-`wH1<&Z|zRO0khF6$Uz1 zS7sk>-bU>>KMT*o^n5Y_%In68Mn>I5{4yHXC4$jB1>Uug0R{5IWcb>}8&MT=5;g{-h#eAiQ%jC9TF|&k*mtTKk=%KcXN;C zgpkHGGZ0OdhNN=87~r zqc>LXFB`W;8_IE7fzmZR(V`Vm;1_N+DI=#+kLlaDVy=%|vN63A-K8XptMq}Io6Kre zGw!}Q?RP>+uG{KaO5L-)CxYLsuin^+_qWfxn1p!gC{t|oO=9wp&Wa(IobLp(=JOJM zYS2H*Hr_74Kp@1&=OfST%HrtmUAx%7QJXPsU}0gADTwKls>Ozj%(*A!mWE(s(`Myw zafJ+Bqo7GD6G;QRZ^ohai5wNM7pZ>+YR-*;S)q4ND>vdtjqza2No=7!knt|J9sHHs z*J2>GC9bu0Y26M)_qe6D&^NDMsR!;B z3%qpqH||xW9|QX#K#W6)S5yFiTsQeAt0ozv>_qbcq!GonZ`K*rsj;!ZwgJOpAeqBn z&P!d`%a{i1)5dFSX^~WO7u?T;iqG{a&jCfz{!n5lrxD+8&}3WpnTgSp2Yi>iR_OJE z1z6Z($}DQ>&kCHQlDRA|dreu30^)TlTH1k&QU>SUM3xkVyuH0;j9aEC<8CcNiO+sE zev53e?0EWi(-7A-Oo4*jnY>8-_nNe{c}1VLd5i;@LTviW^O%0^N#{OQ9sj4m3jn6N zkL&9~ECk~RUZC}VTD-0<`~Y!vq*(S?WWa;|2>%#mFGg`r@`{QI*@c5tRBymyMZ3>A zZ>2H&TimwWFMNkeEbG$pa;&h4$Nh)Lk6e)M%+| zI@Ko;Q2<&B0NzjZTY7tYgSK-&ihFJGk0O{l1!jW{qzcM6ZR%;7c zui9gc$`&t~5BdjsRVcm%{w@ z)vG!z4EvFK?`z-eIFfKu4>HxIy)-mdi^J(b@&6d2bdXhH zxO$oD`B~DtJ61tyy}v|UtsaO_I3S9GirF6F(CsM4Z+O}=1q?f8ldSlt@QM9eRqwBt z#DNvKI^X+l(1E0!Y2Fa0@bBvFy&zBLG8ysV!=KID$einalk7jHeknI@%L?d;nE3&F zTLHdgy0$K+`*mMm9lNP4sm^Kk=dsGc*!@2Cf!|}c?LHj$IjRlg1*HG#oeVai4DD7U zONG{*1shANyWK)Ui@$z->rNo()D0_vg@1x=l#3gtUgTI0x0KjNX-2sAUrdgV`T{9{ zML@!^=Rvmbbia_We7auHJl#Pkr{#p*?$0 z?MAqt%U_zn31{^HmbbDz>g)_Q0%EXn55}tY4}zDa{BRSlq&z3$j{u2F^1UHv%lCNs zq#{J9d?CNH3aDcSv_r07U*nbon}AQt?AHlmac*vIxv;%_X31h6LFuqp3ra{BP1N{u zX)ir}u5R`5-WMDvPTcf%?9RxEkGiSqygZHasL~{7{E1M5GA;n6Wz61r@Bk_ktx~^| zW*e2>_3DWBlGD@`uRcC>%q$xYT&aDWoaJ3IAh4J8M~Li^;E2y=KxYgd(zMafWcQ90 zA8|JPlS6PfGjFzocX)*7f%tTDy2-nXe?TF?gkJBIfG1r5ue~*BW047215D*9bRr_` zYIk)(wuh(!#pNM({f}p5emR1_I6SiV`^!VUP{~H_rsw*&Q_;hVmOaKiMCJ{+w2vP@ zCI;7bF&5(Dul7lj#=h+4s|!q(LN)xkSSHri=+G78y5lkO@2)z=(b62imY#0(3zzwP znG}&CD#C17UyV~0Fr&zAj}7}Ph;rvn{Ocg5DqJ>I`!0bgANc`|N^8pB`t4T6=UQP9 zrqv1p5f>R#q-&(IjCXp80WUaGY%d=XlSi9HrKnmB&cMxsEWVAbeHt$Ns}(pfaH@$A zDt~VcY8~1NUq*+XvVh)q&Z>iQ8>tE#O|GsTuih{7cZ8fAGCgzOdtnPzgSkzeUlDXg zjImd6oByWv_Vz1nmQo3-xxqS2k~zJh_NotlyMawDc6I)%`K5zUV2Jy~^<$ybz_!Bf zPA^rnZq`D}6TfmPfBgF)#V`uY({%HWmx7o9ZftAJw7Oa3-xmkjAbp`>kGBwiKw9{v zBuA~JwJm$s?PGDTJ6=*g4}+Ma%)!VGPb`=<{JKS9IQ!zgh%7O_f<01aCHbb}ID(501?9hgQ2BskVNkbTu|;_ZzXu;Y3{NuOoWE2>o+L@zCG zo7Ki8Z)OY9=}?h1v*zs@t{>K#y;&8+br2giu%mZ1b%NC3+}X2+h-BDg@hy{RGZ4=% zXcRqWdU_ON@hotbaSuZhn7(A5$i#jpEQYGWzF0M?=%k-vhey*ysoDyeO&hq{>ly)b z5b?Kf-~NpbPDtZ;F5RPJ7UMh4`XwKq)XZmY6}p^ZCK-uAjkTkOF-J>ipsJI zS&t|B4GhOvWmmTww0+-XYUbhP)i`J?!s)wRpBYAPCBcdC8npnDQ+| z;8fG!MY1HtHi9LyD;Va(wrgQ~m)m*^-@0S%A7V#OPE3I1GM(VOYyc$$IwDF63e0>Z zx8$HTpO`Smom6;>>w2exT&S%IZr?|<3)F)k$`o~=>&?tLw12-f!os#~+mzP6;rc(U zynzxL+$3Yph5FQrD2PxDk*+|CcL!80B2r#iNwig4=&(=q>%eX}w}ysq$Oz%zZkDtl z25R?y7mpzO7p~jaKD0`_^#se^7hbioYp!p^|1&lCKTvG?Ut&?gQDhrLf#$4h(w=ey* zQ6M;tqgE+8aSt@!xVw?8Su)?$VwnwsAjx^5ih5`7LH1iymR3Shdq4LgYI>=e(bh2JhMVCVrei zo4Wpd*IXwOHx#^NFeFGMx1^<|bEVXEkj_RMNI|FX-MeRQVL{3g0v3qE!1+8`8r}67 zu)l(FkJ9>PxWs^6V@egtX$sD;-- zuVcTzfb%x|TjCp424ru+9A-CSSr{0I?&a`<&W%RZ>p-XOQDSwUKI()3S0u%-xkg`H zG3=3gL`usomFy>XP`pr~oz8ssPR&~8bc57jHU$e zb&%)5*!+V{W~$4bg%?8YM>5OG$^d78gs`@#E*`rPtkXYyl}cd$s6O2_JWOhY+{rG5 zJf4>{5B%-{Uh(W`$GbOg!q3k6=PyM}Tpw&DWFn|A;6hfxMx+1E61220r1W0;ed>mQwn9#>7&KXOSQJ{(_*{j7r6J*H0er#UWPPtJjG zu_VxUD^rr>{-r70pc%*>t5X>&>xiLz&fFgl#h|B81v>H^x9y^(-nZ{V&RI@QTV!&) zcrL4fIsiaKP5jG>qr;P)I}L*n;Hyg<*RfB=7p4cdsN=mz$)N9WecH-aX&(5 za{lsV*{5<|M{pS8b0$hq=;+_@j-N3@p(glrdL-QIs$%9#QpGm_U*##s`%zXxp@lCj zpfiv=+aAPYJAn-p*8&M@8G7JYi@P9=cvc|e5PWp6c9gc15=+LTUn7*~I|o$s_9M+;@1VDFt% z&eO4K&D#ynJVpCPhyj7p;-JU09=NWwt(UW;FG@IIV$^w6X&g?$4q-MSm2y_ta_tV2 zB5rMvAY+DMGF*ITYJA-6lgkTw?io<(0bnU8Dz*SkoO;l?lv|d zrYuiA={YnKnXf+Sw~0G8FU`13KdUf=(?Z+#(}zbDXzYodSc|KXWK@SFuQBRCI``qO z%!!jHKbAN#0cWPR(N|#OSAzy%zaI809$1;_U0|T1v^4dhLk65JHQ&E|Q}7JcSD|g! z@4$T|zPIgcZBeLXJ`RHLUD4Thhaf%$7clOZu81|#^N8`X6$)Zg+4lJ9)5h~}gBlW1 zaf>kIE*D}Lq20J`<;6Sm)R!|Sy4VAsn>R;o}Y`AaL>&9>Pzp1-50 z(%%R8q+b~DGs%39a%pUlcuA&u;Ui#QO%|4UQ%#yhkGHeZ9~_M9&p}@MIZ`C=b@R#2 zgCBaS*tZn#x}ijH0-Y3ucX#=9(Mn|`bamE9e9o-1lC=B;q+k)LPdjg)L&zrjjbymJ zckE%?k#uVfNGqXgCgoHg$*CYx>ia@l4B~8j-n_9GsADXxmb$*{8+FtgVlnaa%(k8X zbn-Yua|K93qCM(-ES@#erVWrQkuge4nG*yw`W8p?^9>qVwc?(K%BWU{?kh;|aQaoz zNG%IeaiQu*S62&eS<)&34O{=)eHW;V10OV|)UXqpdZXJ`N;wabc%=ehCFUIWQh)Hv z)7_19u(u+0jP%Kdg*M;YrTK}msFqbe)qv8_u`#N6X84y?3Tf-TE9YdIR8#^GfE(Yd~}~YUh<7vkYM+o zwvnC3wljyA7AQnhwoSs_0FgJnIFSK`e+ZguFFQlSCD+hh2QU5w)A342x!j&l4`vbV zTP*P;!a}Mr3qdb@eeWbv1A#W4iVB>cZd5yS@+8BzpbMH$`kQ4LhatF&X6HeTupm*Z zp`juBQd*;4nen60S=A6sHT1UmZX$X`LZ#*xvn+4KE?(|SbNcjYStp_K6iRPOpMLo+ zkOXB5^w}>h21;BsPQROgdD4`xYk{Zk_` zfkqc|qnX8y)pq5V(duN~|G@&d_6jBuczvh5&g#Q$htE5HWS|e_wuzTbMURM5yxF61 zg^P&yE>CX56US7nB&>{Z3sCXnKJ=UMP0cNwqBCNlh8G!YH%TXjzrJ|8OwD23tyJ=P zrE$(UfA(}z33CtI7w-Vkht5@y2u(~*5|S3+%-K(6BVM&cs{+CBscCWZZ4U4}3pww5 zVG+(2u#2a9B~R78KHP(EA;*eYAz)dEX0_@+mh4QQ5vEkq zV%DUWAO8GWYEl!m8Lp}r=`GBAK42#kr;;suFrG5JysW9(wd^soa84%87ov26EZ*9o3EH#QYwzS%DMnncN&Vpfs1XveRfrv zJN+Zzbb>glrIX5~a5_r%IP~(;Z#F4;t{g{gAy_(ohhHus_d!Vf+Q>%t8j^o!Xjz5@ z5_`|$Vk*2Bj!mXI_Qu=4?Ck6$3e_9^^0u~_lSwBapA`WOLigL?uCrmAEybgglILp_AwK*F*l#YX4JppF-q;sBm6zSaC; zqKa6lN}kCVKd%fHTKb1&Bu*$H5kX+>u}sVo<0h{y-V40^%PM+MM#HYD%00HVpR`s5 z18aN3Tby#2572Qb>ui6mz`UVvSDMV->dEl|87!~#XRs$LSgd!cZ0`B=9U!MldyTi5 zo??7wlQ74u!@UN>(`aRf1FUk_qi9$a`<4wEXC_ZMy4g@%QOWzI%J$|a8JDzE<6k?Z zD$p(}j7)Ccyve+KKub}ig(PV3%G+Dx^&sMx{WZ=Y+fv*6ET!INmC$mgHmWLpzVAM7 z2EC}PTal5h-!^_4)COHy6<1PxiRj6cH>W%IFPC-FYb|HOGJSz4^SPrLxOd5YeD~)@N zYQ#L(v>4C$3immRn>M9U1^$bb&-~* zV`0WlR-MW#t`v&XS^q8t&=wc_i^mM{){7FjtdtGRe+^{SruN3Zwdj-WCO1soeQh{n z7~wH4UKnu(qz8-HPbJrUO9C`XPUF1IYAfx={*UO^EmDZ;DX6gAlEo zt%x6%KGNx2q>@WVN%7%LgYns-^X5PrMc-Y84-6;lI0O#cezi2H5+B+hXH7p~Dbo~k zen~y5j31K?lZ@X_(8~-^CsmuQ0YaK*idy8Rbc@ytX1A_|K^QZdMfR+gD&xfj7t}(tOlmi-oG#KoC(f%RFhM* zMxo;uZqu2S)=rW{0|rZ!c8t$-QTC#aNif)Bs2KC)$rD+pShU~BdFga7#Z0pLBjr?W zaea`?-hs@NC-L!{>g&TkTjVnlIbYWv(P$eb-7`;5uu!fJB_f7pk7SiLHa0F)!_4i~ zV4-aO;F@Oz?G`j%8BsXHxB2LC&#~9WU&g%~B@;8} zb*+Z&GPJE1i-G7z&g`=9g}~xI$)dM{f)&;`Enxa&r#EmV1#O-kY^>BjO0kE=c%V~9 zTN~=pIw$gM6uto&i6zO{Z5;Mls4W)Eu#PRW(b3UQO7_#ZFg;AAGfRs<&Xz1H=jLdn z>x4HzYN=*FUlRsaw!#>=IzAPHx&V3aVLa7f``&I~Nczg>cLA#w8S5MB`gwV}4H+cp z`TMLOZAAu&jel|RD_V83LhHx+3-;wde@ZwgWajMSD)rWB-mBr7xTq&%u2Om%U~n=h z7-C|T=-q?^F5b3)e*tWA4C=ja+^0WYTFq@566nnIce!oUX%-3ODhms#WD~_f5|^Ne z2#88B8d+(I5b{5AHi0W>GQtr+>u1^`Ainnge$ z9!5&69%t3^mJkP;LHFl9!_B=2Er0!2Xj6e3Uqu@YqE|#gOmgYx85b2WGGrQbzCEY$ z3*Y@X%lduTW*Ll1TjJI7^Cq%UlHy0w2KEKUt`KvhgBJ`Dh*A$Gi*B1ldY_q@X=pDG zVC!wo)~%X{fl|n6ViXpxUzva)o2A%}=z-Rc+2l_%)EYejI%Rg2I}eAy$SZ;xUrEv|#k(aj-Hl;*{2WI;EG1@V2CA$b#Jtj%0 z{;Y@3>w<}zv7=(jSQZD1V)CwHN|(mN+T396Nn zr_(>e<}vr646{-tHS~9NX>!tz#Z0jJR`)>GqFbNKnaJ?ZaC36hX@ZMJe~_Nxjo|?K z5k99S%r_ga4irOoA+2f=NToGJ3=jTU!2JKqCDw-HZP_;I`U1tZQ^D_F5<&HkQ|@#RkcPP9&7c=|~-n?)ITI z2!ZF1;2WzgLw-eEPXKzgrRcrs?%UtY#Yb%&G$^opvrkJ9d0t|oDR#{}$C-fczRV10 zePvx^YON@V__piW)khmMXh2s2HW+b7kdO2voF>p$=|JGKXV0DN(oj7B^#fZ{le zDxzLV*rrn$DA;>EpKKs0MZLE`7F`zT;uo1 z{2Jl8{wr%FYcTj%eamGo>CgmIg)j$|Y^Dav0hb{J;`xbgWX0;c3FVTQv)%Wdw3@+| z=g)S_m|SX6qp>45E2g(0KpSxUAk|HCI)W5Vb0jDkW>2H2ZJOMCi;jT4wO*rhp7>(e|^xz&y=zWobTZANAcJk)Y*N+$x-~UOvea*oh$0yUznS z^l|mN^s=5gBaq-5p45_fLXY(IFjI`5l8=SE@~%@KkwBu0q)vHR^M9I?ydGM_5n(8k z_E;t@nocS+M(=|D{{H6VUSFgT&o4SS;*6K1`y!u--~HoGbtX904k-vWNx}ye;$6FS zYq*iwiO6FIgQjz;Ir3D57YU$=;6@%uvfaWcCQx)w7Hr<#w5Vmbr#(@_b^hWCCThZa z=%}bHP~*j_mOtDT(yC;f8G%fQ6jwXackD4|k>D&mDA+*6tKEIAoO)&8ZQpYcff6SA z7I?oP?;b*DX2pYOhstd=OO(0Vz2Ukny(JH7K*OwAl4M9c#jyXr%2PsqLv7h|UXsGS zCtFI;$Y7w{-`Xm#v@~qu9Lq3+z{*J(c^}!pYDB;G_V>)U5MWuWohpVKGTA67ymd=`)R;n{rnH}=Au$cNimbT#6 z4SZ!cX>WyBuaj1|9c7sOBwg~vyUZ+AnydjyDJiQg8tcK%##ixvzP`W?fjI*dVjuc8 z<2of2B{=X%`eKo;WHw6Ck{EYSMPv*eFxI1!TsYIE(T^`mpd z#;ZW^^iiGeuPv^uOo+dpcsv;gv&5k}Cq9K#eAvEhq?m{TxDoDcD%23BivH`!*5AsyrwBu{$Fi}$ja^E=o}0nvrNQpfZ0&KySO4<*gSi(7z+3pL zl7xf?=iyo{ZEbArk&b*m;D#I=9Pp%z@5;e=0S;6kM?`-7DDNrUFv5{4TK@2*Djs&I znGHh_X691qiETE;mb5}9VQbIz{yHj4(<7%pOplE{LzCj}epgsn*etO^L|$GVc5^EB zkE4~-{r)ov@ghbnLFf09Y-Mz@KYtNkF_Dq`@r$Xcef<0y^o(%71(M^vu6znFVCTbS68gOOa|@(2>CdTa-G)9beZkN`fCC=@!)+_Y*4oS)k6#Pd)~oaHz48nH!2%w^ zFub5mngc>jE>_lxm~&*s3Y3WIU>gub?!W&Ix|CgrUqbU{6XpX~5QzDnfLe|D@Yb#1 zXg2Ec!V?0&9`ksxenFxae7rc-uURd%t^mn658fB{CmCikvJ`MFtp_C=yAIZtog7Wa zE?t^J*i!rryaL2o18=f*>dg+K*uj|OGBA89)O>I;Xy7yeP>bSwX0+o76;&;;1s4|= zE*91O=~?#|kCd=^$#;LNnB*-go_paG>#Y_&-GyNniqnbdY1j@XJ8_}qL@*z~iNAI0 z@wCNjkjNXs%~_}1XAt(E#zmL5i3$tXS>o)tek^$MxwERO>f^_gBw~OrOFBg6AF>js zTOP;M!6Y`9W!ikdgHdgXL&5a!-Jj^bE*mzz&lTSv$JyeIZ0vQAEfR=+gO@Q_xro$& zxyO&J&IwrDaV8uUq|TEB$RP(`kZ{l62fu)YfR$^lmFTJY7Khk?Os%eruBNTMvIELSdT!6f0ivY1w^;9zcrBH(vawkDgqNS=*@V?gr{WoeV}I~Sdpiyl z|9k|iSTK)C@G|TTz_%Bmr{2;5>!RM*-v<)WTihUcu{(C|v~&{c*SEAx*+=*Xa#zZ2 ziIdyCZSYKlyaPBW_zqT~0V9bRxB(tgv8tD;@O=St_{WjqVP35g>cOSx-w!VPK&J%< zKrT*VU%Ge@RlJS(cnC;@%T1l*0sVV#Y!7Mnlkwm$?AEjQAu}k7T^-F?SgxFHk7Zy{ zbd*vk`<$#WR^y&07sunQfH~$L(D^;`%Kb6 zbWV-~yaWU7h*4NoV(jzzKB9IRXq`l*HCX&%fx#-(Nq>BN{4`nK zKujz=`i!)}Hrr_~pK0C=UjVQ|te_x%0E^hQ=Tu&s&G3AR?ibN2)a+nZv@lSZ`V;uv z_ki4eddBAITeoKzM};~P2Xp}zX!r5BrIUODflT{`7u}7U`Hg`}-BuacV3rJ!^|nKWT_Q$V7UT0I=&JA~ zM|ddEI}96I71u`W-X(JsLY^yELq8^1n~z^cxxG zo|XicKk7KwyezHo=SsaF<4;DhU-oI|+^H;bwl15f*uN6@{3Pc_Y@WFIGLVoFe`4k& z-OlAsN%p3{e)9&WH5u)FvxU!3rgMkStGmog-0jA2-Y}mV-hgc5y)x6GNCKVnU0J-Q0S@i|5|G?t!;6U0gxh8+Z>;=pV5ky09o9rL!oIyuH5su!%_6 zFp@hk8?7^$fL!_kRjXhWQ(lqZxm#U%N$ECF6WmY+qy#|;fARuFaNgt+37D| zzWBxmQapRE;7MH*;~g^&=$@eX6&FVVeQ8nt`~|bT83-P-UTlm$PjnjEiVqVcReYtV zV}z|@@87$}k^zP)m`osPVRif|b44N=-JdM$|oL2spG2Im- z&GzRXrn1i3r12&Mh%3um{N$&sumCZw-D%P28#vb91W)qLooC&;9$9wN0}0TJVEX5X zWo$`}eI(tT%+=<_w~|4j+p@*q9D$?H3b|A}F#{u?`WP}JoB9|TV#IfN=i7=s)OLB0 zAyK5Js`Os}Mg7AG9Nj?i0xpDlsvk^N%K*$$Bye9?mi{>aJ~2mS+y`(j&^M~7SeVqB zjUf@DOA4=&}Aw8>0 zudh*X+pUe`;BUk`bfjoCETsCP&=_{RY;>UE#Qry%)R22H>XRsmqf^k!^Xw(G9P7vW zBFaQs)in$FZ~|1qz@@meT!N;ezHD23aL^OZx@Dd znR&__;NKIG z2HXMz7o)}(d*p@CV@rsV3hW3Oi14>Ubf^)J6zc`X<2|EFB@tL_p6F+~H#IeZ4a$5( zj-vHbZTjY&0|MPc&x;6u36xNKPw?v=I4iI<*Rc5_Ze-=CGG2{cmYE?=5*8uIFWfO{ zjf;?>i*3en4qm*9%E~#gy}kXsy?^J9Biv6iLur&=SPv2IRfyel0OeUt-q zquz8;2|X4WN`5GM$Wcu}EzHiM{;S=B@e`KXk&83v8{UmL$DJeW;)320L!S4`8 zc6D`?_sgo9ERZ#rd=S$3)~e{*=E_C{`_AKp$-Tpc-=q7tEed?$B#RH;n;rXnY0fUH zz_VLO$TM${_wT#Zvm?E|QF7l>eHT}G!8O4oO1UH*mgSxoH8nL^1bQ=lyNZCSvU$IL zJ>eQ6T6gpQ{g0(|Zw#5b>mtijE~`jO-*;^Mncy)tW*W^NrNV@$}6x&kw5>NpAuvB-jgNCG{__%h@Zs2lN4Pw9*=S-1xVj>#EHDSmQMYZox}*E*zs} z>SiU6pvo}m$#AAnzH2+t^Sm|LG3TiCT<4Bx1e*B)Mrp-{( z?|oair3?e#zSZSy`4Y%!eH;kVSJ)PRU6{YnCIE_GbdT?%(fMqP5$Z17DZb+KW%t%X zWC2NvI86@d|NO5y9MTs~D<~*H{Z)T|Vd{v}D|K1}IU5FWch*|og4>alxm263-*)y{|J-E311 z8`MkKF0?0?ZnaG0398e(?lv0vr4@V=2aIricMPHFL;(^=AQR}+hUS+S--!f6AflSt zAAPTzK;w|80B>u1wq=@jUp*+ijcjJld{;DPqjoBp<`Jdub-3yDGhf5!4erd$6qOYf z@k=8>u8GQ`xG+g4kXJIzU^K6rW0SU1w|BF?+QHt`fbITWdZL10D225B!nF@*yjD!c z|9p!q@(cGOuhsh=_0DNP@&TTS@7J><#O5|#!C{;me}P|97cJ57Eoy2?N4CHDd|mRO zk)Y*ZO5FaXG}q4kj&WR))EwY{*0N7x=0Y@fr(7s5_}W8@r-OQgAogHN0bdT;LR2S_%KqyXQCai1QrlzLOefnXV z^dBrBZ|;UcG99lW$E=se%pH%u4J|JnXxai_I$<1P9T|5K)m}Lv>g0+Uc>oHF21r|h zZ^0Y5XqV00i#7qF{2Y9(WIhX!N&BKik95Zb@0`NtuUo!ic!GdZtJOI;Xz*{oo`RyW zS0H>eG(|?*=kQ{cu$^@P?(EZ}Gz=L&@Zp_|4VnkXvBGT~sBg%84$&!7Fo@dP5>gsk@N|p|p#Nofw3M*AkO2E3 zeJ2p-@|GrqZu^PxPD`t+t0QC(>^k->GX1!~LbeSh{Vdnp`H}?iV-}!CJd&z#7xkv> zhi5!!D-r@BVJ5CO(TU@-s==iGwpFnO7)M-Qf)9Pkm?vblV7gZL{3Fe*L2*cIjL4bOr{kAJ zp+?wbtX0?|K!URXXYW;~H6dc>rW+t-aGaxM*E2dTNSUt?nkY+kSmVSYvXu0Jk0-PL zcE)PgocI{pl?EHgB~&dkGddvb_ZI{1My}2E<-W8>O|3%>qXvIv^ScPmP7%?Bse}Xwl3^M0S=zLR{{;5ydC+u%bSK*zXze-39PL*!ny0fn) zqLfftk=ibl>lxf_PLZv_Y_z)$M~7_q(Pufbj+XFkhaVIi=Blhx!T?YS)t=9Xp6+gd zw{O3v5n8d|Xj5<_4>acJ3Hg5yA?{;*qCL^T6%k)gFBSk0TQ=4al7hx3(i>&&+K05pu#O<9yQP{*Rx3V0zZt+S=Kv-kr~W_Cq~(V2q29@L9mo6pws&G%`kz-hqNudtClu z>cQ!FKk6Y|SIe+b&fJKriS%%j8vR|ZKEz%tg}Wf1zm`P>R3c%*PFD#wa|m^A>=G9) zw;hQL7tFHrJupa}qF4Jw^cWF)-ixyKrF`}K$Jx5fH0#NRPFd;#Y%a!BL)=PKZwgN2 zSplj#uCrbAe|bAAzx{I3Vc#-(T`brhUcdZov7eVsc2T!AOl%gLe_-{rt+7yF9BbEd zp!RiR0PnuQB4d;=P6i$MiLdXSN|cHJh^|HUCh#4md82Oi`bUSKGi>^Ib+4cH2jL zdX5sX)NI)OD)=H{?SWMi6BLlaGj$4|yFi#3zr8kJKjg_$(LB|`gYy{loK;L=;Nr3a zHc?@cYSQ5ZK_;Nc|LN0g)F+yOhL={m+G7V88;`(Y5AGPy9rG@e$Xc zE;r#dqD-_``dY}hjliY4&pF$oM+3qbavIJQA>p8uR#l0M{Hwg#PCTy0aYZ*5K%f9N z0L?N|He^bq5nh4y`!=rbOtncQHU-Sg35a$(Rdt}88yf#KBRnWnvg^nxE|dys=mFLU z88B4QnCblUkFG%3{lc{$?YwadC@`t%x+$>bO|3328wRskPYk3pO{lH^{Z`_mcf%~m zl3MAvdVL7}%H@Tt>++t?8;~61XRApet6cdFn!F9OR2u*O)h6O&+nUTs?ylut(>orK z0Qj$c;D!SX*gGRXPi2v8UJGqmS8}xCcCQUK{4dsj_~`#Nx7ZQ-A6;FHUm7y?ke}BT zT~*hxMlXK#>J=Di1qIhkOh&m#QMlfho0}VUF38z{-rY?J38_UN!pu8teoM2*NI(oEVT_-|Zwzi?d_wK{BM1pIptWeDG$u4TlRhSJz9lfVPOb-iiF63#C4gX9kz^MW}U`OE$y(N-|fW|x6U+;MqCL>|x;=eL!2PJ7eM?tysH+PJI~SC&`kY)P z;w0&G0gW!Scl9*(z*kiG_trI6Ga3Wm2S*CylUiIl)@w8U z;x~jBRbRmz5cpz59G+{-h>Hc8lGXvl4R~a>vaU50G+UUr*Pk9}VZQ}(M?l8XL@70LBDu35U*EAUR; zsegE#eL@8U1W+2;p@)*C_x15%NMvPVs+l56DDp>E(JI7EG0{B7j%fg32lSJVij0SM zb#f!=nwp2asKDB$bjgCo$7LaQP864NIqlrJGlkaY=Utl6KqCb!J!&AzhNokM9_}KE z8;l?XW18*zB@eDcV5W2;9%GhtE^qF`A0f9)bb<7jbj1O0nU~=X6hv-xwtZm75J)=A z(bc{@u%oyM`tfh#ik)VMIR_5-cB1~nLP~iZl|L9S*@>N}-;o-GAc{hn-3Q%b9SCk^ zDL4LRWMn{0Jqnfp@JoV{2K;Fy{96aH+%6s)9k*=0w)y-no)9Io%j8tAnND3|9J57- z1E%)H+zWUdh8?1C?W%aF52A*0L;)C|gqKGDKp3bpCH^%1`bz1o<{p=0qNkE8ug2QS zz?VS$+0f{y$?_0f@^2=fp?>lFdCgbi30XT}#`|N`60W0}WB4N=o0xQJ9~`H3@2U5{ z@%mltV?=&wWV4SD_97Y0e@P{e2peA*1<6mR0%3w9x=2|tXYJooRv?HlCq7wPP2;L3 ztP+AWgl`K~7E_0ex+BC880!OZ2%_{>p{AkH8;1$hq~`VOg<$uj8u%7hu^qa2Vx^zG z;usrSZ45n0oW1(-Yt*EH;;)swLg}ct0VWZpLN~pBgRm}#<*tnzdcRuk(g@MfX0{qW zJ+}>a$F&H*J=QhUegn>Vpl_YRZ z{$j$T`Ta#EXy_rm%=63WS%4~PS8gXK&%iWfsAB(4w@gBEFfno_^ufJU*EUUlI7Yxi zH3ev6@8QGojbLyh3m!qc`{aap2-cj5pU-h2 zWi41-`x15=lG_~q7yn!UQjy(7*89F0_lU*#2M5#D22QUg&z?~?ub+K5Yj5YTNNT7d zIo`Z;L-+d8YeVYi)m_IosoooExkKGWAiKRXuNXQ6(66;HL%1|-1wpt6dCbIL#U7F98Rdd+PKPX#YG zf^2y(2bI&uV(Lm9f%9iykZ=7F`S67lB0v^rRIghH(9o_$n9jUD=3WrkK8>QrGry-Q zQrg&rIFP?^yABYH7w4SkOTpv6V=i@#XQoLL@blb`b2)q1(;6M9&E7zyHHBNoETu>9 ze7|eFuibg6*f}mX)+5N__YSpZLN%^qT}M_qcokZq7rETYD@c$QF=zR!OHPS4a0F3| zX0`_PHDsAP`MG$%9n=Z-#?uyzT{!-a%Wt1|l{ToWe%g0p8~n<$GO!##$1O*^j~!>_4pYWk-GSHMUh4diUAsjX5$SBi#x#MTz4NZ{&(_sJ_)(?@eC z^iGWE0dOC81Obhnp8n_EzJUS3n`01)PafcZE2<-ZxN~R^6sQQL&R_=`V;O%G@6DKW zC2nq1mw!vU3E!#W@gByRT#jrNbIYE`(dqLR+1*Ig5j)UZLjv~=rUrJTVCw;fM6=j8 zdJRY~aU{}9HyDy7^mZRmHZ2@X$j@5?pl2hK_stR>0TU1a-0|nOsOcW>x^-9-Uu@kk zpqLmwI{}&?^7|J7T(r#*vDvD&AdqiYo2ee`i$8sGcN4JiOjS&2R6Ryqa%yYxw|L38 z{HI#z?rb23g!jT?u2Dka56E_21Uld<97@|q+W0h%{lvogyi2zMr5$h5_+p%*l2WbP zz`y{bR3x22>Z}omk-hyQCMdPtgxapd>iCup(=WRmw+TRJ@U35Ye;7c~8C%>)Nl3|a zt~^%X@T3;)wocjGBvihbsnMO;a^=dE)%ka;wgLjh5JY@7Z2o*-ePVKx8k{h&6xS!N z6SjJ_msMnBXpFKNQ^D=@G=R@W3KXRvQO;yp-xDRi`{)ilt%fzO3=kk!#kdxQMUBPh zX~MwapcLK;Ly{oMYHL7(=A#9xuixVy3IMy3m+pTEW@7)B5mlP;5_U2H2k1Hk&m7 zwdX>GP2MD0Ux0la2VYw<{a(7;>zNQ1cI@ySC;tT+5uQ9^)s2jdh-GmwC6-0uZygRw zD#rhkdOpo)|83C7NZbet3Q9L@HV2b;wR0QaGg(0TUqM8j{CQLbtrFyp?jnw(_8q@c z^rTjT4T&=iB?^_lAxe`UQBQ=TY?^>7Azq7SOkfoKryX1bXn=AwNpGHXHZ(MVZ*mHc zFjja0?Efz&IENTEUO6#`zq%SyYv2YVEFn=i!fAg0;vH~D)D~MBKb#wFNoCFxFb=(_ zRRTuVAJ5mVJHNe~FVlG)_Wa`_+IoTXWsm$h57-$%u;D!Jp~llt(x0)y7K+Fb*_?DioR!xp`Wl4VPNbAz}50wVqA zCetI>MKqmX8QDqz2sM1-YAzw{XKAAopBRUE(B4VG#YJh z`LL&(n;JAlO}H2t86n3Ad9&l_nrt0xCBB zJw1izt*_;Ws;UonAX2CmC#&meoAhpgJq6*oWZfx(oqB|AN8dNJ2Sz|#Gc!{M z=nu~B-}YZ}b92ke{2`cy1FYks>jCiG>iR*u-R31;OduLTDh>OhJx*=-+e<%D*fz2R z_g!#xE3$k~e$%`0{sCxs0-gH{*dHh*FdDS=njv!li^Lxza$)mqp`+2SMRYp27hZnl z{eyM}zdZu$L6{25k)M}$UQrPiZRbN2o6 zA^7RG0&p>Ucs(Jx9Nmd>WQ}C^AXh=UA^e+Sz0r{Piy_|~vnRoGY&vjC{J`x4BklHO z++{ZE+00SKnJVOIR%pX@Ki5K0l9iP>V?Qo9&Ceb|@^Gh!XSczvNe%2S9Jx|~yb$^5 z=fq!Wx$mca$KgltIN$%PgZ#?*!mr`Qf7NdPb%~pVB>xq!xEK4s;ROPcn|9{I@{Ejt z%H&bxI=@}qw)KEs_#-%X$kZV~>!6(4+A8-c28MrwoYF(s>5wr%+V~o&$3MCw{`;1l zVVSXr@e{7HdrqmSszQ`h0Bx<1_DI5~ z{^bEnC@J;10xHNa|Ac|hF3UaEVL&Mpir7Z(R0b;atzr**JEVymg2AiLJDy-Z-&%qI z>YRN$ncrl?lRHb*jXrw}dFW@;WPck<)U<;+5m;&1l(*{y3Q_Ut>F81I0BJ}0P) zNZ!l>hYG@OP%F=Yfpc(cLpiWNcbZWQKs%BN#K7U z2fb1WiVSTyq%#{rlq@G0H=%hxRF7k^(STd6FkJf54M7B}oXatWmQ_XynltgsP!kXf z8ShogqS5a78^Q&KGG=CGG!F2qIc5DM`OVmR_B)foa7|84CH%pS!7Vt}hKUhlV7Ex45bi7at{@^Sh)gB)sY8SI1Yo?}r|6ZZY*Yzv zSEiXTHDNR2zNfucLEhqL;1KL*X&D)Py_2y1(6)G0+7yUN>Kb#9R>Y5jr*MK&9AdK| z?v^|mckqaJSQ6{(^wTGhcfLOZlDKjca_bi%&fCJPCOg7+sIL$_QNrf119CL*n5t75 z+4C493`WMZU=Df+iy<7&x9?kCAaYAEk$(D`2SOQ8ww-eKo*oMjG=F!mAtM&qt1e&% z+bJ*z)!fi9`)*B8U|xOe>XY_#z0sYP!2N0iAmr|Fmx<%d&BySGj1qt-ke%;LK|+?c zmp<5_J*5CZkLP6x!=j9P5`w_r78Mm0*!$qifGt#`3smiR|K(mNaU%BrxYn31EE@~b z+`G^L=8MECx`4Y}g<;MNks9${0Hvg_5>e`Le=FU<$BZyk>f@fCQCGFdSu!t0iR!4J zYr)|x$e&Lvz7ENV9-d#y4&o7j+`x29x>KM>?g1RTPFgQvK`oJWAWVg0trqXLe-wi5 z#J#48VRFk~7{j`}7wk&1v*q#j{fX3;18t|PnKG~wLqVaS6nxYTybfXk^%O41{&jxW zy;v8w`WROq^A+emP%Q)e>$p%Fh**@i=YKjVL*-4eSk*;bK3gmm6b9F0C3xQ z9yV581)&o=K*m?RJQe!ae5XvPliq@@>PW3FW$%^5yA2kr-!TLLM7qC$o)w%N3mus- zt2Lyey?IE3zLXo-vP)XC=~A5CNF_u_$EP>F)KQUn4=ExH?pxu4nnWb$^G!C zTw^PkPfk8Q>8hjCFot3k zx<%0ps+rnj#er8rCS_#gqVm>n>ZKotPg2K`On ziOsW#8|}ED5^SG+{*nl%SI2IQ2)SXxX02EbFfV<&Zd%urUPOo5U)nOG9J_o^4RqD{ z6Uvu9JLmhC|rew+DHrS9&DToXT6MX0ELEiz<=`0643W7;lU=D$kK&O5F z%!x#=Mi!iZ+s@~E2yA39N;K>)D7GL3Jr&+sBzSj1WRhB+&}A?AGThUVoG(~VW&@hP z-g!)V`6q;tKhvTi?1FU>57@qGClTz1n>cOswgW|dGYc`ocg4^C+@;w6YU_`>1TdfM z8S2K&r&r;JLC>PnJU=L7HA%+rB>JLa7k7n>7FB%t6Pk@AHF6;a0F@c3{qO)=P8)wY z9M`A#-Tn2?Fu!Tbi4|I;An&O*j~oiYaFK7622v#dVgU%RU6cU=$jhqb3#zMs9s;Tu z66_cU9w+RCgEAip-74MwhqBmqbr9|&>K`CDvxm%ua{4Sb-3>RN@P_^zAW)r%9bMqp z5L2GA?H33@@H`VYb^Ds4DNJYcISa#6pAyp2(+1uC z&gCKMc95oxyLW=vA;ot8ka)0v9KkO$rLHNw3ccRbvRoSV;A?%WYr(D?z_jj|F)o-$ zj`4{@otc#rIaiAGlNNg{6%8Y(knI}Y*8?3b0da4|dSeIQrkyEnlg}>~nL%E_Q$)CS zOF+tX%{)f$CbR%tGck!l|Gf3?oXtOwsgd5aKh9ars@Hh+e8}HAKafYjQ)T2%q54n# zU7peqB*0TwbsG8$RPlgY-R?@x1^fO~a8)VpYXW10S37LDFRK@h=UVA0ncXV@Izv9L zKZ=aJm_tE+a6r%I+068`-NT0vp>|X_zPnLlsp}R~u6AQe=*haeV(*8|ZslzT`Q+Z{ z;Xf0+vFnEUFNz)&uS%JoxOQCyn_bP1jf z{SzcD3!usDHT5}P@2o4YN8)+-z#a&RWn*jcBEmB+P#R_~TiQ-`x>@EC~xFn)bB_)O6! z>zq)&*quf`{j^77N=}ExrWPRKg`0U-V(|hRfF7}kku|@`Ha4TV?3FU0(*wRGVjBlU zA*36nXawv_yG~o7?bOs%`;i_f@|#5Tm+YO`-acrHgwc$1>MS$;iICFLGmS0zKRn0U zvr4x_5!&pbzZBNgne?&P=8!h(+%Q15B*{hw z2F{4>szRKmxx1=p2ZG@kBZvoN)QDOAdKr+rcbXTV8O;O~(_jQ^*+LwnA8;Um-$Qy2 zWSxCDI^ap=JQZUPfi6z#AvCDsjyZw`4Eqhq_t^JQM0X2DQ_Mh@+L@5f_=DWJ7wC}q zgVFQQA$)mI5RSXWT3gf+6>>A1#oeGvm}m_nCGAxVZV8iR$=MyFE8`2*EejBB?e421 z!vYlnK5VHh6mpINvc5;qZi?rjLQn+iRO@~i{F*6f#AV{DRD%*krl5siYXBdb@)!%p z33S~l;NlXh08_TmgIlXR;fiEoki0|d^@BJAbmZ_};j8%F{OY+7C2?Y?Y^&d?0CuFf z`h1oJ4~0CK(%Mpj-*OLey?<;L48Y=XgCNKZ+mt<^lNNv-7S?9b7Z(fUU;eMZ0@Ux? zG9kA_9xHvdqiz>NfpNLSKmn-`F?mGJv^6sW&UNjS_@u|k(7g(pKM_6~YB2023$FX2 z#}M8@&9C}zFd1#|q@ksFz?KsXP!I6kecPoHRk*4yv zy#`8MVUj26bJvlme?rLt?)I!UB(htfDU-h=UKlTiMhT&yr-`YK_OALc66t1lG%ok{ z5bJ;*st_@deE`rSNPFm6w5tQK6{?#cLs_fZAv5h6@uKd%fh0ihttUPL6r=0-^+9Vq zazhNRcVlJ&EePo#hXP`jWcU@};CKKMdGYj&=PVs|B^%+zL3ykgk_j;RpDJ4I(MzfN zn*O?5B}7NXxX|1L*+dYwCo*zm^hd$Zw+; zY47O;?b=1yZ^(m9w*`pEFJlmLwL1=W6Kxwg6W^c>w=u5&U(lNb04O!U z4D*009*(0~rL6<7pK%QFLpr_8{HKsKNQD?7CB4*vGgHrL;Ib^YHD zt@y*}8^GOWV9cb@ZqVQ&$XQ+j-pjq7Nzw}3hg z5{TTi#^2tAzf8AVQ+JsG?mx887sE4x>jw^T;LE4Iw?JVKJaohN@8JEUU~tt+`exi= zTH#7J83nLMls!~+02T-M5Gfa(y?=$x;C}O%SAow~690w0X*gjpnBV&moJT7q+4oH0uR|J1 zvhV;mZ93czl>zwgQ3!l7@|UxE2viCtRZ09;gY9AZe_nvB$A8x0Kl|Z7=i)#1;s0B?fp=U_*J=XH-4|xc0FR(1=%?~l8+RkePvG|F~5?1Zhn5s!iDQM zZXCY}MF|G*VA4K)3JieqsfW8e!sgkO5`Fmy|E0U)N3`$U@t9BL+gZ{83RKWNM1M+J zJdF%)8OqtCod^_g=w{$FOf;dQ(uF4R74k&@I#;S2ukyp?RHQ;`{Rx^m3JSb{WB?EF zvfh>pva;7CesKt(gr>Kj2VS@7|6de}|3MlDCidP1LqkhsuWyp=|K6Z=ECmHf3G&ag zXCx$^WE=ea^^d_Fz~e%G`oD!!@;|sB{}1X+&Gw2%z<2m{_-?|`p;xh@&u$M@w{4hU zOiU~=eO+BX1$5ZHBJl_b$LUniipg~#)nC7U>&6W^pQ}HCv|)4YS-|ZfulQvTQB;W| zgP_5~TYLAHc?k;cZ*3hEwSbN9o|{|jxgRg2=wDT>4c%)(&6O8qf0VmbI5s_o;`Hpy zwA!JDp9!ZxctPNb7hy_Mq!Nf1CNwA zw#;hq*e*}^-n76d+SfKh_tbRm?VCK~r%ySV*iPkrj_K>`{r>&ZRigVPumZ@fywU{9 zlwq zF?e1TJKG=B`X>Bhp8en<@1t?&<>g_8Ma%}qo=^3c+3SEUhT#zH*3D=6e=RZ62@)$e z71H|V&CHB_xYm(~d#Qiy0E=#>3}Bb7!^2a;a(CAn<^MIdjX6TuaH$tXmA~LDZt488 z@xbxQp-fW+cNjbl{o|J{)Cj+r+!QOYLxE=*et8tJz5{K%1l3=aA)CjfN=*c|*<4+>9a%ORgsl*F*jx@L|#g*;NFnb1bfi07u;^z{5L z$i7N+wElehvo`CflElAn2anb3Qdu2%d+2pkS$GW#XfWgp&f3oZdM$8&zeoD2Y3tn& z;&lR62G&>RCQWwvixjLHEO7~sxagsM z;c4I#D)_F%`F{;!hjE7rJ{y9a*-Y*;Ke^$ns#l$sqe(>{QS8%2qd8IwgQ-nW3+NNE=5< zt8-UO-krC!@;z3uo|&5E%pd>Aq|%x2!Zvb|IvP)7*6nJ3iDr z(|0#Dv5xTHSb(@ctrnwy*`>XtgVLFopPwW(J&=uEN_#UgpCcqMMGl$C4S@DVk-oe` z8L2i8?ZydvJ+9Zl@};}P9K6JA{$fjBe!jNm)j>~BPfwHF?c3b%6*7=-|A{d^en8&J zPVHH}VM>jMPbM5mT*)6b7gS^})}be158UOH#SE0%jy?9n3JXu}*b#gRV0%Re_A?aD zu@%$u4eFQw$oaVSr%{F<+S~LLY|I#YVV6uMjyZn5r7Xu%d;9iHQ?w$kz$3Y^(57!x zcgfw|`5x`g4I>QM_V$-C4=i>mW}>9ivDA4au;ycWy87!gEZ?T;9R-D{a(MR59s7?J zT9(~!uk9WKwy6$jWP66clRL#KB4W36Zzbw?uHTtlAw`Zufr*SvRLn%BA|* zIgKsPI5U`Y>5^A7AdICYo_y-lk;Pez^-7Q;UnMF_4LmL=-omq-pPyUfda&3){n5z? z+Rb!zV?zrI%3v4jYl#}+N%t)h#>(P!Qxo$xs41xS_K|C|Zy1S$omocv+tFVr-gtM` z-p9wEQbtS4b#F+1zE<>h^lf*`it{@q@9%-(5|MONcee|Blc<{0humEE#sZk26og&G zSp(pm{%puojXT}mmuH6$kV3iWJ{vl*jh8c7Mvy8gwQ~2Zse;|I^}rKe5w#VVgmlHR z(=aDQe_(#~kKh*Vp&UW+Zh*gr zQ+3=Mskh`RZ$W7tjk(d#Da&kiiZ*6jR)D#<*SDhFbaRu|wzmF-Dn)awyRXqwK$NLR zM(M%VpWJ0o>u$Gf!p0pE>uIi0XKuL+G9CLmx>x3Rv?Pz2Or1=lwcQtF#r`~g%6#Ka z@;o=zwTlg($(S_*GjL(%qekg@VMiZ9Q{RbqS@a0Yah6j+-9sIjk`ornba7U1wAZ$Y zgh0s;m~EoH%@?iAnBRkiDW!4ElQAO%)=`SROd(C8{&t2BCznm$nhG|*22<3(ppfl9 zGg$y)Kj$vYnK+h+k|No8-tMKp z%Lueypf!+!b`CK1)3l_!>T#2=1bM8Pg=0w{OGsW{%`G-u`pq_O>bQvQu9;f+Dn-J3 zK5-*m(P>zFJ`}h_I*qfT!<5aq7g%$1P=XroPqL0H{X%^qHoQ`pLJXl8lNz9gUo2Ml z0wK4j95U26WO(Nn@t&SO7BF!PvZF0MRhe@d^ZJAP+wA#+JS|r5ixgz)?(C-kcgF$1m2(DY%^YoeJ_HL_r+|vqR5*bit}y? z*bAc9%42pW^Z+mRMvJZ+y3DKY)tyTvi<*}&U)B#P7B(^ncTnE^(=ZIZ=cByPmwvrB zyXO=lg9K}x3B{2NTe%ljv84pUR{(>fFy*x-Df z`m#Z*M)E40(LvuoMCDxWy{5Wdnuqc{S$)I^9I<;_=;5X8V#ZY$ z>vtuimWs<}r{DJ$^^Ym?Tem1P*oD?{X0LT_hwj=XWnoh0-d_7nM5INXGZIQHDx`+j zZQ&17`D$ipX(^4t3%PD+MqPccrU13?(fKHXMd`!)H+us89fesNjgevb=RC>PsqI#= z%8U%J?4Zk0dI9|W%J{zCPDi~MIeC%J1M6ZIS$xcMr`?F9OZn>#=N&d^+4?Cpa~XdG zTQ$bMX;$V7cV0-|1?OA@196qB^N%Z3j&^qzFUD`WaWqtzRysQ&DY`y#ni%%uyw!BU z;vlAE{;rB@wHDgLlG+-jF&JGyRxd0P?DU%WLoiOx+Tp!z!mV0^fqZLEjahZ?M-XgL zuLusBuHLd!-k({p)=Q5y%t=U4H$T9CNAR?=jA%!ZL=NT4WzA~R~ z)u(9Rah%qzuDk-WRDDe#ha*ZZN8RK)3DSTWf5ZinQ~&D@V0!# zR7LaZ2qRnYG~ukf&-H=8LLhA5ra~!n*YNk8by`X)g>OBIfIZ%&-A2T(T90W(L9lfu zGbn)aw)~L(;`XtxU|y7R5Ad_iy{E%@Y+WSZhi$BPlDJdb%51&_-g8~brQqgATawZ_ zix&R-k`6y^H>ytVdi(aMAa0@O*eUaa0ra$OD)s9pX5|iEEApLPZ5Wj?HFa}4Jn|_h z2yw~mZIXot*S`n10PWG6zUKD)arcS<#Wadkq0Ra-eiPzdcj*yw=<>lPPzxk!TIv=_ zhQ|5SC=8gL6-g74v#q2Z(}^;R&0KC^|`Z)ACM1b->P4b*fR>Sxd_S>!uR?I9UH6ZOOIueiYGpw4W_0 zXVkejlRfS}p|!6tfn(JYb200*u-p;WCYg|wljyUG9$w8i7X*pL=Qv|sO~Tm0w6e_Q zIO~~+hOx#NBCe|zFO2)yNx>g9;#XHJO{8S+XNXSx7yvQ^sce>R@Ty(=F`O&aRZ@?@c+3`K0?uGVNQppcagYVCGS>>Eu z>dd-eb(E?9&v@6jM+<+uv05JdqWzlB`+~&vSV!yS6169oqAxbz*4MUty}wY4@3)qZ zOt~88x%{L|%G7uDO;VE9#)Hy{2gHLJ?AL;07GBKp*3z+Cq5Xw(v99Z-cM@wur@D^8 z+_%+E%A$yrIx8bPrD+^R#%TDNJuAF-`ysE$)o+U(6Y}$wnJK|%O5=U6dr}}Lv1}>x zt@@TbQnDbCA6Gga8=c*9b*ojKYBt!Zb7C#;{YEoTo`Rt+Ux0p6`9yPU5qmy65@)7~ ziBqw^MB0%eCPIL|zAn#C^Bogf&%4FyLZd}80^?VEZp{OV>)m=Elh{zYF(wc;)lOWe zEfH6)mydZ})$xpoSt=O&X@W=DW{)+_tY^G={np&0vy;3Q^Jv#pSMm;n)%KSnJ_i-c zCi{038G5nBl)0$Lk%OK^*KYK-NbBpoHJ|G-DR-G6J05)NT>*(a>iV-GR&{ddR6GAw z@bVuh(%-yy;5X7rJX;9A>*<8ode}`7CUPNeLCah`b>y~6%S7{x3BW56tcJYPTBBQM z6#qV6nDxTdMgH{2jltOR5=dnrHzu!5de>$H^6FQ(;0LqiiC}yE8TXsz&V=Rl_4cYi z^7-CjQ#zX26my<_`AkOoXWgyGxqn%S#>Evz(IO&VMkXgVEV<{ZJ9s_$CZJd{`#h#u zom;hiujDZXvw6gNmmax(S;1!hbclt7xc+K&b2L8nzQY}-FBoj;aZFl3!Bd7iJ#b^B*V=}dP-hDXrca*^74=&&~hh; zJE~n(GSj#ZRPEQol?GkC95>E+s(RW5>x)F7)}x8LgdhmEWaljqx^wAu(cv`DbwBJn zqhz)G2~~B-0Q*X=FV8_w%T14{oKC4&t*VL_%5Ls1@HYckrmHDtG*$uaZE;A&>*!9S z<&~#Q^IFl;Q@DRJjw%*EPzkjwKdv9Q9Bzw#dj=qxB#pyiu7VN`TAHCj9i3D2Pqi3X zi8<58?lQQeJRA8lJhu4QmGs06x5F__ygnjz!v{0O8COw%Vs7A-yK1G#c>6lt45nzk zR;~GScF}iXBe_$`dGWM}dj(4|7KWBI*-k2d&fOQt*fO~7qE6PSQjx|~>VIFBR6Dca0;Y^&6E2;{8qeZs5d-NfPe zLpD0$HRAu%#N3tWCmP6>5OJNJe>13~OH4Ie$TtJi$Zkv{pPl22rB1hpp?#{}EVSA` zdSUzJd7gZhjLrT-Msh{t-I_8F>5za%u&$Q79w$s> z_ohFu%LsSSSK8u_#hO@Kv$Ai<70oMITTQvU6kgxR9!hRO;l-q&$B#Z4{*`}v*;4?`~Y+m&eJn)_`98NBe>pxoG$(DqFjo|fmX|> zB3g`N>e*dcuiq@mKc4ttRsX=oMri2$)Bfr3O^OxY6pS_cq92QP(#_XJm7^)0Jjc`} z`m;imd=B)f4!-fhl(1{#{#6RE@EPoKMXJs=fBg|_tCGc_ zFzM2vDmuy3^eh|KwnNO{FW6bE+G3OA{5A^NqHJDN3exl%#&#dGGHX&PJUA0ts|&=@Ta& zI6CTRIJL;NhsV&<0>9)!6BWxcZeM0*O9`KL7%^a_(8OcnXZ_39W$PVI%=WAY_1;YP z@!L&<>cuR^K(;j{Gq6URHKNxi<~M{<^q(9(5~&GcNDnP4mUYp;xjH_+3Xb#TN2v3T zro=NBWz$f#(bc=VIuflTgWq5ShMqi;!2OI9yWXwiQ&oEutuwv}<`P~q1Bk%}YIQaa zqHim|s3DvuNv$v?3GWwcf z-bO9qqLZD2gGyI-U+-`FQF0-JL`vrzl=A>FlospcR#&fnGxk`_x>!4q^Ko5Lg^(+S z_TjuvE!BTd>FjCYy_<2UQS!%j`YyU&uKMf&(tMTiym4zerCBn(-4@6MeRD(PN`Xlpy_*;SC& z)#Xn~opIcDuVo-z`3qVIwaRn0yJ`1`Q|C0*v!LZBV=y=_l^}Z(7sko_(bIF&b9~FT z%KG*BqJthBLiU+@zbghYsw^|l$Dh;mWYoNF+*sFS5WbFXc*ZVcw# zcP;m%^mknEqY|#;g(90R_|ekjHP8uyg6b&2efdev*ipvd9R%vw{ zKCULNSmiu5sw>=8I>1nIEGeUr(QCuD4HnH|CePZ*qq_h#Z&9*bW>R7mu(Pc(8B^Y? zD`{zNcQClI4Fpjtb=4{tmR4HJpAg}6)qI%^;E|K3FX7PGQuxhk$Ez0PF{y4L$>oML!f9 znq%EZ3>*gw%2p2;#+EaC)1}P)ohkSk^@P6dyck1EI%H*&)?Ak{9mtz9fwlm6jN$Gb4x!B44q4JH%hKW0|O5Ru2!Y{Q+Fy2P7(1Bj$ zzCvQp-!q?hkX;t^F6g%HtHxLA2c+O=m8+z+CL}9TYUDIsp<_hfkyi zivmwprq=`J*G6JjZpwBouF9|zS+@Efp^p2ojOUa-~T zHRCS7Cn(z3+WXPMc^0_S3NsJ-)6QW?ySomJ$Be-8M&lLmPYT&dV_37k!LGMx(m=`T zj^}EXEZF;31@jySVu?p27=V3?C@mMX28>B-yO8IiB}LV}hW;Yiwhs)JIDgyGqGn{V zp4qIB7JtO7yH7Gd^nkLWEZWXZ>__m01v!J|#U(*rvLN``o=WUrb>ArywDe;|<%3rqRRx37CqO5?(Azkcd^8 z&7piAG{=s#hKit3$g$t=`a7|EF(ILmhWWnIxfmipcCkZg?BdvG6QE zVi{MFi>-`zZH|@qtZlrx1nmaG6VSVPPMyBmw&QJ_?6bdXrvb`NN>Z-pIJ3H)B|n}1 znQ%$>-8pY6VSwM>)2{FALWrloIedW3!`sr*IOb}dI)w0{Pxcctrh5xZlM0oOv_hu7 zT-?O$+#7GLxy5IVsbv+X3?g)iU@dFLXI<4mu+1Ez{V0QbVBAZkCe!bHh`Eh)*$5}!Rcc;v3~Zr$>y z?^~2y9nLXl`@341)e^iH;W*g1sKqNKw&vX^U%jLfBrl3ts(x8I>$cuCyFE%Gg5dq- zxajqs!0=UO7^H(aSPCAnm7-n^UMi09dZJxY@BJSAYZ`ujzOQp9#+{~*jahVOe;1i@ zswopu`+{pSNx%D4+u?kO^1`Sj!~f5=fN@VI{$Me`NnOh)R8HJWYcBhK)I}fsPh-gl z+e0Hzi?siIIx9Dyk^z!`fr@jw!dsc)gHGN!bIi9B%cqx>3318EwaN?42aODRdV5Q3 z$*KZM=2?a*O?4zO^7#k{-!J^UBbDonP_AaOxPp0K_)xxm&pvb=Gh`8K(Qu}eoyCI_ z(08!aX^@if2n!d3;3}!`Bxgu+@Q77QT>cTv@{U1HmfoSvV>&H3`_+al_V*nvGyQq? zRU`GFlrT9x4Z>MgO=*g4=z^DGGk^dzQ%~X9lSWeXEzeiHz30PuBsBD6)sAfxT2t^| zk0zcSfb#4D_8xSxAX%Wk-DrknCz>x@4(2AgogSbU{q#~B|lR%xpkYi1x)Pu;iKdu&X9r$FUmT9`R^+E5>= zKx3G3oBowF@Tq1{r*ql!*4)e4_sYH|#qYOA@(6Sxi3?^vHClOgsIw1>K73%=%M{N~ z3KINO;!UcVr(@1nV@Lw=_Hnr3n$k0Bww3XrQ&fC^*ENfLmzw!Rtn4UA1C)!G<|QUB z!d=l)$zlLFtV$no?@e8ZUu?1{SZOR=@UdTh_ChLXS%E_RG3BJ`9hRa%C|zzURN388|J9VI_0Ja)Qctc<&Bce=Q=hv zHy3*V`};uAzwxl`bt;tFj7U3L%ExJ7lb$N@(6IiGTu+&|Va#0zG+5M_qntx5AjOzN zgHHKkfBR}V!A4Dm>FHbN++##Z6uZ4BWxh4s50mM2?5*c)_kN4g8-cvyXG-TKCMt%n zLu-U)lo^xe+EQ&RbIP46H^Gl50m2nden*Gu*igr@-+AlC%2s|(zT8Xnp=B*L>M?EE znIfw55&>aJi8+f6f>s&Jb-N5yQH~1QmH^` zjw@?ctTX()%yuPso%ElEmED-2E~?qzI#j>9V}D$yx}*jpHHkKX_vJ!e#DSWZJ2q0q z^!^5A6asN)q6NrTwwg~(J*00B5`%K>H+pSY*jdq^rf{I-^~?mJHs<6PG`0ek?6jr(L(y&`4}Nag+ay{=1~DQ+2{R8h&>S z3_4q1-r#`(tGEX#Dajiu@!zxPK|I&?0N!pOHmhW6V9?5N%gMUnXJ%$sn2=EF(%AhN zJ?Xg{qg@ZoHHp#PBhQ<3LxBOquK^lv$|0(Ii}@W3nft;>X=`6XXMM%YF&cZl*9fYN z%Pzzl=ALxP_8qE4W29~|;?r9E4ZKi0L;s3?Vbmf_rr{m6QW7$`asG(1vMu%2n+@%z zuR1bl*V&uoTc2}tj}hjRYimJJN{(K;YsB9YL)Vh=IB%X6PJn)T;5$6>Gyz~cBIbUk z?3l*M8xbsN`Zwo z$7)64Nm^h`Ab~Bq<@3A(5lcZ7cs7Z>^Ii}Hp~m?ojD?NeC&mLu^cP1*-z8HB5VE7p zy_nne{{f0!1rs=2e*xX33Mo<+={GEw5v(0+Gvt$--WA?&fBsZK0nn&jOG{AkuynPK zO;5|rd@m~pw=$IYU+;W!Oh@J_Y8z0a5IjU(68W7vjrTPC|Nor|jBrDXsC-2#s{cjY zv_2D&Sb1~{kc*|aj)+KOlvZi-!QyZp~})7ST)uj`Nj$btWo7~G^RA~I9odOPAb zpyBKrdHwcHjf<2lF1o4!%LYGo^S@Uzmo4Bc*x&zBHpR8)^01q!ctbLI?q&4zbIT z1o!w52y>b>gL3fhM;R02vefR5)M-biT-s9q&t|=Pl?wjV{JfQt^mQ~4 z)lynA($(EQjaF3lW8j$uwI(z)XaS50t91O=?S25##5a+F_wRw8H3fgrt6-~S(bG?n zLv(pITiYo)0WV5@>0u=tE-(ebZ0x7xTe>lBnxfzG`mUx)zSxJ3T3` z{QgnEZTP&Q>z)~Wu_f47rdDtX+<8au)kCq1mn&}lqO?s;_NYfBh%41U*sQm`vVytz zy>b=zXC=H3$g|dSO}@W={BkMwWc=8_1mv7{NoU|sA09_E&o-sRS0USZ)1#~ZgMEyd zO1~*Jxw*T;u+*cz`F@Vy|*?$$lvPz#0B zTLoVAn;diRt~Qv(#TmlxV{f45@^5^$vvJ5wBk+;cl$$y_MT4xtWX-;9!7-;bgCh;w z2e@o~TdL1OP?)JJlmiactub2U2iw|wfi>0J)$7x4jf(Mouyfhi@32a5AEs>ip)~Nd zQqqc4_FuW8Loapa6v4*Gwcz5|VDC50iNmqy1m9Y$ds^=Qvt~@Y%!ysaw6xfhQJN_tj;4 z6U*ULNikJTjX7WkS>Tr57<;k9c}Q#H?jSlYSyI2g5K_J}Ezi_2Gd1f(qKNfVkp2qIBqd_3gBBkJq5_5L&$r=X#GioN5yut`j@_;S8-f& zUpZ^wnP{{5mj@#}%&WVGC%h&C#%RZxovp2{3-k4c$;mgN%oMdO9V0d^FRHo<*+gws zMA8_!<-+`iN|zKLpyd1cZmw8J94%*YvlbD z8s%5pxR?eEav%~cGqpqkV=82&pdkk=SotayVMqqr%|;8CL9A^KOZ#*gb?BDKt(f=k zK|XS?572t%achSOsp4wjE@qq~%c8VuHt3Gra;R_}gpt$QgEg`~3!xN{z_>e1YskDh z=t=gOCac^?dDguee5PxGyXJr{#^Zy382y7r|6QC(cTdr|g>$-cpy&A91WegCB? zY8_@s7Q{i)GYe;VH&&=d_=#DC@-oI4kL~WGDX(cX8n6Bzqe@?ySN*!bj}|GU(-G>d zymef-Z(VGVfKu*U?5wvHH1I2ya6FJ*b?5#?*|{@-FJEqXo&(i3QsD-jlPM2{ACvNV zRU9jh+tbwrybyoyDGb-hXBEgqpkD#>`(|J{mMelfN-rRQ(pO{8AqgA-qj0Xnv9Cn= zs|y6CdnNT>7DEfeq$dkb8yRDy`%dX3WTdQ2cUwwzm4H~G)nTbasQxSz=3(;Hxc7O} z=F78y>aFK>x15A?7K2L2$&gkK2g07NFogm*1FxC~cD^GOoKVDXUf8BdAb#cA4hH>H zl7@*)GW!Gso8lD9sY{+S{ru}5z`VR^-H6xN=jj<6$~)(^EQNbblYewMD=QN4!JdDK z#YRiddR#|$&!pD(mAN;Rm12R_0;IWUs3I;s+wPa&)!LeMXMjmatwdFLU5h#I5STLI zq_w`1wtYfls<7%d5x@AjI^i;9C(s*I_FEB^CH;OTl8>&9j+``n;UUOSIj-TCw3IVD zlgspL?$5?&H~&TWP+4|aZ>1Y6l3wN+h4ORe12Jqg!tnFIe9gil-*tW2I57W%(iL#G zQarDIiw{k!cx`k%W?A@pgD%Ahea`?U0V*Wgk3E$3z3#_ba;3RP&$AN z^pRcu8myd|c|+XSlYiEwIIOarZv_8voo(A;Zjr_QY$PSY1N!~70aKJx&Jc%HTP3#9 z=h*U2Ii2y@+;?{31jX zbeYtiP9ut`XU`jqADm~YG+omJ+9xc8!^$s!Mk?B$>lo2rNNBe3FlaeV={U5q8pgOq zY`B-Iv`rB=+_gid=%{iYAf45bVJMJ=d{ut5w|_}-&}~8hleBPBj4Xm)F~2^*Mz@Pd z$;fbJxZLvbT&rgj#j^#aV`Z9cMIeJWrC7i_`RnO!bSiEfj^Lm<9M+LnKS`lVD@=Xg zB1)^y*13*n!1+X60Rond?HVH}aNknb+EzSqvOj<@pJDxQ8}A(0BLC@+Jn`#hT!@g9DQ(o>ZYqrg6Rxv(Vb#ozc>EUeHWcWIGg~UBJ!x ztW*6ZMSGcy9PBmgu*$HkLl$5YCUSd+@pv%paozb)tC($#Dipdb@lDgCzrWl24AT$hsNp{{aGBM|6J+0v-_i7S8r|qyNUT@ zV;D;fomYKjcCc!T?`q9hv9)Ub{pwFxCVx#JKXb&R`cfI#G6RUrGtXC~B&2w?VFwd^ zs-7+0s39v2^zh9dagQM7l(3~rsC;TUk`ErqM2Mr8&Gjvop1ss|c;sZdL04rcby-^E z&gT;Q{j9GKr4>|;)HBQW+194q@El-<0k1-x5~9wf;+CRp{=f^?0^#(f7QfhLh4bgw zYh^?>;XOTJ>qnvadSa}_{o z?G0cL1%LxfVWhbuO~e_6YtH0l`}O77mjMJzJ2CG$j1wTYrr5!COGh<`Wl`k)ti#_I?0#ZWHq!#zFR_Mk4@7^X)IjmIw z(Qrmc)xoqQ9^kZ%`7!kBs{ZV(a)caXMj@TC-lLwySM1m1E~e9Gdi{f>sP~CIozIsX z(cDJED6`dYdOxFlmBp2t5WTd@aQ7u`}WJ z22GN?XFFnS3QS z1h6)T29&|s!p-~5{brWJS81AkAVUL47s`w4$Na6Lg|Qmd=g+d>WlxMxyp`!cNF`#| z6qzb70~|RoxE;2S9?EDG1m9CKxA6uoY5f>JBJ+Py_m*){ePI_Uihzm&qKGs~NrQ9? zh?IbIhje$RfP#pCbb~ZAba#p5&<#U3L&=as-i`nFy}$eMe!2H|@A)(XQ|Fw$pZ)B$ z*0Y`;CD1*W@t^6x?lemUolIT$oG;rLqhPGppaLLsKD^FuM=l*@y+Cq(-mL#8dCJUh zTNXe|e?)+>dHr_q4W7ub!+ybnx6v@)Ms9&iWzB+1m&l*fk@9kdxyw4BE#quz^lCg@ z@NwIY>j&<1zgGt7Ba^spxuMB{T_C#vyQJ3Oh$n5W0>~^XEXRr5JtvQ~_j&7fvCfk7 zdr|mY9&+SM9PjD4FkR#7ytGuSgpcBBcJ?Zx|TxM4@g zcfeyCIZjG*a!`^t&R#q7fbJ3Y+qTQIVd)8*08eUir8hJ5=O(9s%WW_(abz))BaWqE zwVd;E7hVC}d6`>genxDRy?fqxvcl8(=|lP^5X5&E>H`-&X%RH{Gxe4ouV`??{pt?W zf!peG{`~p4UzK}L9Zg-`J44)+GH;+v>p%j*Mqw)bp`wMlva;zc~Kt_AjN-V_3^Itv9sm-ikoNxXU6<$1nLISbQo zI98AE`VF*8t7axX;AVOM0XG-K_aHs(aQj>79bMhS(fRrL?U{UoE`EwRH1$pT)W=zk zjhCZ7xe~=`Y#IB_U&rl=Ep2QmS=;b{;ir`#7oR-r&C_mxd`1r#I*fBo%BQne zOjbn_Z}f{ac-`ph`d(_{fXfVqt_g9k$c45(1Ih43qoum{Y7#Inv%B`YK4Kj?x>@3E zEUBziTt76Q?-3LgcaMBDbdcUW=zU!?a@1((A@X#XsmWfmr0z4wv-qec``xU)HZ%an zi5y`pKJTQsayUniZQOQ{`;b>R)$Ahs28{{^8>P!{F21GB&OYLUde&9oYM9kzM7e#l zurr6@O>%m5b5Oy|QDNk|%*LS{9h2Db`=QmOt4)pVjRO|hsGU_!?1XDhET2tMP+}r! zIp|?x8n=5Rc|JoZ5oJTPOpV;u6q-HU`s=kIAh~~m@Oqy`@4)e5z*}3#?yr^SHy!an zVd34?2eE|O+zraOGv5_Rt=*P}*>ior(6}p+$!L66_%OmhzIHE8Y9CkIfH-|?zfR<%N)ljUp>BxjB_xKac z;kYPFI;(a28)ws?acx&w;p5c@TtBS`p4vcC6b*X^WD6Sv5%8W1ca`+Ydk!iK6`$YCLKd9ML*&h@V15a6#k)`f&?S(#CGV8`%Rld z#J1H-RNS6Hp=1wTbMP+FKNKxmfL4$IEC`UGXhR$LC>oSsZN3T*fkGKzbi^HR7AMB_YmfM{URGyIbMqS&SW(If{*xCr}hm1!)a4si; zx-E9&q-hfnS(tgNezkxx_QI~uj#zgFa>%7r#|TABOVU#(rfrLD=H6{Gb9yPKk%fHw zUM?V9?&BRRCsd}5j3rpJq-0>ws%U8yJ&z$H`$oR=OUq8f{mXnor$ipERg&KLmG!yo zR{tG@D2>C%_+W+VRgK=rnIz(@VRO}kopi4CwaO_@%eW|MA&1L9WigkHIw7AK85v0Z zuG45lL~gz#9bHs!5sc5+c%p2dIquH1aOi0axnzO<@x%x@eXV%+Nyo-)jMLZt@oD)-{ZRbu%&B9rU>H#Ju1}+gl z=h{%l`MIsNcOXgtZ*T7s_7I#_E5`Q-Mzn#yCkI5&$fDzuoz8}?Y1DPbQGbGQ$v>it z2jSFsTJ=^E;or+kA3n6vF(JcQi)!#YC zQoee7jI7t%dn(d0!WM|5m*T;XiJy_-6X$w{pxO`esPDTvxLZICe7rqt|3Omr#kUQE zVP_%HH1~m_q=Kvv`yai@6wvqx2DY!9PF_v5?%R6KT?$E;Ya8h=l9R$o1=);FX4|n& zEY>$9zkUtYmVb`-f|}h*)+#hmh#-aP`p%s-6B7)ShwDOYW+@rb3uDWi&E;icBCgHf zTduzbVWWG^*iD7}mX9rIN}CkTM170rQrKI3{6$4mtLAt2aG>qf4xf~jqZ=9;T%RD| zNwoeY_u68)Q>RYW(T-JV%Es50V1pb*VzykzwZ=*~WY%vMvd&Ld7Gz7eyk@4xHvdL_ zSn&ENSLDNQt_rFN(9kx>a6{4U<3f~k>%H8&Tk|Lytx%Obj9^+bb;Dx)EjY~J!VI8s ztykaFK@uv`;eFP@pR%kZ2;bjF1wBC#q%ki2a8*ujZrAcVKCe9zAaKKw78p#% zW&zBU{N3&)st?-pv(|k*1LX~Uh{It8^YnN#HPfKElFmF*zU)K_=7a>!smQfQWWr*q z_)P?0VTSy4?B*1v=44_L%#2=hcEbveAT3Jt`W)+NF5u(hGG0C?!sl_BFqflC38K~G z@8QEt#3Kk0uFj!RQ;5sIs%k1J1A-<=)??;HdFAqEfS=!d0e{9T!jm^J3;7z@gt5(> zrTX%=9<>$Y8|8~u&AWF4iyJ$Snl7T2m*cOmKIAktOHLMPl_9oGlK9>x*4UTLt$j$e zMPR(zT@9fM#*uovv9!c)`X#_*l9m4dcQYUb-4LSxs%87=!MJRFIgouD#?gg|5SK&3U8d@ z@!mNXV}-m~Z|fLQ1;4($o16WgZpG_$tSq1F1FUK;kN)p#$vlN#yCQ??G3i?r)mXve z{h8C)8Ul&)ZK_9~!Q$&54s7wNw}I~2_qYT`akW5M*?ZV9A> zpM0Mg$M%mdtxg_Wsaec9ET6G+;idn~zD28BF+wO`e6HH6SpPx9BZ^6_dk&}Yt2m0r zjmROT?}qhDDZoLg9fu#Py?0F?Br{(++ zrciqw2RB*l&IsIZI`-5;gaFTKR23A8tcaLjXmV=kBPS=?TGE)AGU{m$DyR-F58Q7? z&4d_90&fjQ#$FS%g_{Kuu)ts@m*mJ+yX=ccNI_{FPz9{Qbf4U8!nQK>@I`H>YxTJG zvXqP~IlcWY#$^+E0y3{#DTG=?6KIlu};shs2SZmefW;TA9Fdz0%^QOar1TVm$Yi$i9WfE zwLI%i$^9z@p=9}RU3u3yCVki5lLnmBk9X>ISXdCjPyg{wwxDlwYtkQzg|qc5eZM;A zmHKhHurN5cU8M~H3HcL`{XpE{FF`KlKLLMIsCN)+*_%gvAD+Z*q^4@pfhcL=cQ#0G zq*gmQIx6I%dy~X>)^PN_pvq}K7vA!cKKaX>B?q;SvQTh+9Z~afx6yv{anjD$P**jE zXHQAoPJM8jPtrFIot&;uXBd;}G;`)nM;AmEbK%WPh?(PlZu&&I?MazuRY%bgt29=Z z#}wCwn-;;e6#s z$wQNc&EYRz9b{2zZ(@$@M|eon;k;cFCU&i+N$;nL0X)nf3@jyY&#^GTe>l>BP4}^ z=cR&=ZG*5Vd<aZ6cgXjxt!C6&RsyVG-_NnW-W&Nn}e5eV=_Eu+)&?zi2Gp{U9Ar)bKPF|R) zV43vBp`0GlC#6tf69%vN7kL7GYWTewFmUcaiozaSQ`gTs4$mHUn>#H+#WR7?Hqs~8 zp(?^XspF?y^W2wdt#l_ernPVSkn{FZ)_$y8O%!NlpM|Kqu+|h0Y_5NI>+>*ZE4COA?RfT!_*+QW<0lIP=?YwEsi}98z`ODk+ew)7u+- z9P+^x&Rim`T@Om;I>Kn>y#Vbw(FT^+OT_c!5j&=J49CVWZwNe5P z<-On@8Rd@+cWv^_}w@?4CpY#8Z`}Y66UrfY_X0KsoRq)^FU1S1AN0t8mlrP>+s$6SpDk`dK4o^)D zS%XpvZv2P;M*HW`$S*Cnn1OBm{q3WpgCcB{Y#&L`LfF7wdq8RiJ~FGLqVZ8rjW+PV zd)g`?zl>v~9Nh>YKd?(jI_aVZivOm11rWPbUL0Crq@Qm2S6fR-M@M67WQ3_*7;Lhy zuZ4x19S8ds_k``6|M?*SEswM|o;8rzOsJ@Jw$|p|{HeoZQ=3~`1j#=)mzFaAoASI=fo*KBX}LKC1qC=N zs&o0Ngt!Kt1-bKUKHq`f`HZ2gZIH#zco>u2dVR-Vx<_34)({DVqtWP99(um%L6Ntw zA`5>!3XxQ)Nt6!+yB(sUT(kBnV>1(OE-n=6qN|f`=$|7JkZw_eJF$X~e}#S*C{}35 zBY*x$EWbTV8?AmIzX3Wxp{7Q|m8btgH`?brw6rX3qocCRkx|R9V&lx^!7XehdT*p` z;Sl*q>fr}%gMXKS4NaOF|7kiUdJav;`z%GL=OC_q7<*it8E_XxM2aud()#aZ2Cc}W zBe32ACn$OrCi|rKZQyk?z^6uCEvBKq{{6f67XMy{hOY5WB?eg4y`#a$vbz1wx7tpN z2q**53GO3j7pH#-6&e~Q8xN28TZ3QsXt~B!2ZmoKfSpN5eR0p{h=`K^#vR+DN3wX7 zr4wGE?j?w?<_O1$j|;yN`P&Xg{`(?KL4qjGB=o0Xy{X-VU?*OJ0U38EutD^{0Q};w ziqtFr5b`v0LJoWiG@Botw5Tmx`^o=(b08lzJ2wee-dns!i`FbG|1&Z_Zy+oYav4=Q z5>5|6hvm0U;b!``**F+%*aML%w@c2yU!0xI+i#OO96TT%@`;M%;^yxCoEI!9rBREiWAG5^ zq^+g(*w%I_QgJS+thv}0o_qWi19hJ8AUY3+g6sXiYw)XuR~1i3O9?sSr?+W*7ocq5 zzaLVC8DBxY(wA8Ix7A9zd-$2r^?j~;{`4qQKb#!M0aMi^-A{|A&B+6mL;&0O`TObd zCUE@AbzzJLeKugFZ3bXhDKPuU+vE;m9P{=hX#5I{@^yVyn8OEEbye$J*O2uyTChlV zhgr6Nzv8ICKeht&=d_tGmDhVpD_3_gAuuZ>$Vo>)P7c8g5Er{(z!>Nmn5nmDdh~;s z!}n;)AXnmdm>@n9lkqTaRMzVuLI(H8$}l=Q{zcq_EC8f$E;OZw(f^ z*;hDqtXb-*64E@Ca$1F(n?nMl+o@gwfyCwI)qhj%JaQDX&282v9kAPD8k&lFYD!U# zX9h*6(X;EOhQq_dW>jlUU_c<38K>Vc{>|sl-@hX*I7}^k-hH>mc-S6A%8=ZG5sqoBRn8*Tx1mU#R+!|U^AP^hp86L10Hxc*4d9?o3tE~G0tnUfu zp7ag&E23AdGe621yp=wpwR$Y4h}!FjE!T!bTX*T3HSR7p3(1OHl8yL(@PkovYHz_7rkr3&*%%0?~>A1iVWUoyE~4 zhXy%13JZPqFEg?y=lg^?^8iFY0M|*jT%eER@m@Hu1DJygZ9{t#$qxd9$+GH7Kj8tCP*Nlw{ZD*FzZq z!t{p0(jNKo=5y;nyuPAdTC@*8k3d6qHZRDg8Te^ggkQ3~&OfaC9{Nxjhk}8T8B$R6 z80WzQ?1&c}wgGwZ@w+j3BT5_`@;$9UgLrv)34m$W{VBbVKLKCm-V+5|ej2@6G%^wu zcyZGER?JWdYzo8I0fd>DH$sCqI0!pFI1K&vjg-fsyr#y*!Ws;*+z))-AFmj;>aL%$ z(hK1_sl(2ry5v%x;p5M&3Cs9@=|OZVR5nD!VW;pL<(8D_12i%+5DS1@YN~3FzK2ME zAjW@6=vGV-5bPTrY1`{PH#gT#l?fz9pkHQEa&ivNj~7DKS(@J;B6HsNd>-@A7ZI2% z>V-rmr_!KDDh7)6F|$|nALl_JigF({e)?55slhaf@yvaqWQt%ty-bYEMMaP}e%50) z$B)kGJP0P%=v_fwW!<&qWroSbp}+TC>V8&~7iMc<20bF#TUxSk)0^&UOtG$0>LDV2 z@q)U6l8}^M2u^Q;%Il|#`G99FEFOxDedt(W1ugKox?DAWgpKRwwx0=i=6kIaR6dfF zWXZ}}(%Nd^V`a02Wp0mT@lA)5ljCbLMa9qM#}RL`H+%l*?DO{lML8uamm=rvpm+E8QJ@_*AR&3c+@M=}`oL}_>k<;% zVoqR^lcqQSCgPd8!B3|X9*o<$%lBxAR1P_N5S>dp)zDBko#42+m<<^%qGjXeV%9$2 z+9QLna@4K4KM*3+bzR%>z}|V!j8DRRv&<19SJVlUoGvJCD9dUlW?*CxMlH^*NJeOc z-7JqrnDr$#tRf2vCtNNydV{zMj1A7Z6~CfTCCz7cnkAlA$jWN6$ZuvHzGK$;kjO2L(RLn{Wn^d* zxEOwN02>sJd#!mgTpftx<4+|S7DuVaT{TAf-C~_3Z7uKK^n&lD*QX`HY&2j(GGTK~NQ=jc5zP zXQuAX<^PjLgGSDRE`nmdWw3lbRQ%#prj^sAvv3d7*j0M5%4nOm30<>F3B~8wR}1!< zYo@8f9+&x-4D<;$cuaK&fKV}Q*ubCYw}dF?$$mEH(i;)4s=yCMU0{KEKEaUd?BI~d zWhZLwojGx5Isxa63j-_8EM>3@?RuKcg~)~bnGoua9piQ_q<}xi!V6XJa`I#m~q9tw;f+GK!?n@ zWqvCbx6?$Y4Vauz|0l;M6E*#=RwmlVU(`i7pUyo3YYt<)kD|KvXtT0!T*c)0_})yl z#Ik%r#~!@OX!Dz*lG!SyR#OfIhIAs0`ds;^B2Vj7R8h*fpSsIY< zR%+fkGsLGsv-28Fm$E`Vv8&xWO>(G6<4+fE`#Z*ZkduNqzl=dfl9Kcc{1Y3!mfYxR z8bf%gYpjg_T>qGR$ZoaG%ulmuCPpt;TX=(0L)u;NySEdKJP{!#={`Ejy5qydR!})q zR@z1L1i<~aeTP%XO`a%2CC1?ZjsP?OFKl>Ass7bTEKE|R+u;@O~HM=blCUUFzJ zR#|D?r9f?yzLeB?`o*+z-F-W)2L79!%|@qU+v4-;Y1^VX%*OI6?TM0cWdlY)kQK!F zWaPEx=9c^VB3^gPOQ%j(y2g&D%E}_$Y<9n|A(hq0@LuE(*7}Tgc6MUcz06QD2;7>Z zY+}nP4A;(X54W?uuEl<#yYXr53usN`{$$6#Eql z>D8Xw6%h-AeNyrM-}3Y8u%ADsU{?|j?+xx-kyNIpddEMNj!$9uWhfV*&&?){EJ z$aR)rau$#Hd2S-dbWt*Qq0V*ADp!M>t-=dIV?gR!E>qkr^B_6a{)$THm>3+GsI%1X zJj7BTLkar=J1SMxSi10>?g2fw(IVIQQq#3bB~Nudul7xc6>%{!llQ3XtAmSuwV3#x zywivUuMK}m@=^QYsPj0FUT44!JOXiUy!(aIr~%)EBdvVGoBrxlqrtue4tNyfQYq^G<6P1-0(rwl*_eg#aS>}qJrsfuPiy;k=u>21Ce3pd-A|;# zr3$@r#U$(w2d*t}76~noV{;mB4n3iwX^JY34NcCT$M@>_5j8dM4o_7pbDs%W!G~I| zFS;MqK5$H+W{e5VyO%{5k@M{Ns%%s(s9C{~WvOXs!%ysSdCQ{wChMJP(fZB@D^^Q_ zN@>N2WM0i`nPU>l_$>4b*SvJWmvtG&ZIkoP$w?h;RJCSZYU85*)*Ii3jW8v;WE`1^ z^0V{l0qSFSFCOB55*NnsH6|eTJ6-U50(V4+5!T6GoVY3HObfG_EHtcf z?C*tL6Rk*2C2PZZy}W6pO?1Hb@UUo+SD&6l;>%Q5E;z*Wfq~BD;*#6h=;-ILJhlau zt5?Y$CCWS5pQa~aec8NP9i2B=+3?qhK3K4+(X?NiGWhMoid!4hVlqeE_pi>xFHU5N z;(7(G_AVEP*p&a;aFX-Y-b_7FhU-BT+uw%+`CqLQjJ8gl@M%2TC!~sq->AhaSj@~T z`cmsdNM-a=WTay)vst7}zAc@UrHILSU;d^!K~XPrv`z8^jDks7Vy?_(qVa2-Q%|_v z!fafR3`X=gBxvak?bYhRm6t0hXRgai#&hi5nJSlVV!U`knEuO?2>=M)ys@<7gGZD0 zU1|{1xX1H3ozT%XINS_*MD#>)m|-IRVYSN&Kg8WJ{XN6U&=S>uaCGaV+2?Ih$@dal zkn|a!O%CUuc7;RdUC{5MQ=FZ+0V|-?yD&2tgu`^sQpkW?nxuSLeI^W@DK;5?zAmfRScR4KLv%&YZ?3A zlUE-F!6YL#Pe6Bav6KttDM|L`!r)1DSYYzO( zWRK-v#<5)_Pb8>u`%xC7C z%~uv{Z+{wYqot54Bg;(BGSWwwS%)33F;5XiYJYMmyV{svWMM^QsoEAnI#Yry@6O-k z!zPqov|_XSWbpAX*xS-pyE#)$K8CZhn6Hy_Q2$EdwhE^XLF`0_CL7oKUfX1tNoXdz zy84q&Sux-#FFZM9jl8QUnoOECb@l~(R6#-srHDcRM?bkVnps~OT^*FZl)FZhyOI!c zulx;@tX}P^qxAC8ywRE?r%R{xv}k|I5yA6S3!G@;92VNBQDzPALsn3=~0r z79U@eg5&8gMa<}tZ@PDGG*2UYlqQ|Mi64bInAGt0ioxF{gzrv`s+P_xp1;3;Q;mtn z)5wzDfACn@si(xzisMhp6RUMgKHrgNe9cLyztdOfV|>#7CR8+TYUAR}%80ziu@bOa zms__mNosyqpJ1W?yEds~wnvk@Ye^~l6Or*1Bq>0<=uX((zP`>|-4bn?o<>g9Y8bRh;iCEwx|X_3PZ6?#soh}o8eTFD{)NKr~4tuWRqbSh$e;heOYFvVEH z&b1Zw#bhCkL%%r=H<}^o;OMB-Ct$jJ*vJpnAR>awN{30x`51%k=pI>aL_D%g8L1=f zShNln$oOYQ02BeSEp%@G2`&kr-D?-ZH`(o~N+7?QU;joT-15&Xr>-wYJVwO`y z{6i0HLdcRXykSS+#+S=!6*K;d&fGhc=~aXJG9cYlR5! zl4Z&!5^XVXN7+x(4ZGD=Jj&xOe{2`578JE-re{g!jLxP2Ci%#xP z20{HP$3{R-8lNU*m~Vw$t$(ugW;#zX-S1PgRX*N>#pM3a!H?guBu+Zmqf> znkW~`d(Msa#UC*_!HwzDK_DkXM+6eHePDp-^gHmj8|A&xn%rai-zj(_NW*zp&UTxAjJhYBF}&v||1p zTWjlX7~g2i_b5NzCHxr|fy^9{!6_I1UPT6^4A=}%{Zj)Yvjs5T_5*q)uKP7#}hR!@$GCMC-MgNfk zIk#Y0V2trzfb3rVej9+Nrmv#TJ|^e&2(Vam50(D4haVv8bcN*$mSV)Qs^%SxDZmai z=b>;oDZfFDe#cohbpr?DrJ{U^msJPqRiu@C9KBEU{SW(uVv)}8=We?Dh3Cc`2uFNa z7%PfQ>gTMbIBGb^My_LTn4IqCNC~UzXbcU*%H?uqn_e?;>IxZSJ!MW?GpDEb$e%li z+U?zW!}glL6I!FA`$0z=nNx3EhL8W;@|4fQzs&}>gMnFy@&3dqyYTRJ;)`dbnJgb& z)$=q{psv!Z46>VxMb%PcCl6f6B8@+Cy*xcU#Koz)dE1gORc+N^5^4}~oZK%bmz9~d zD@^f$ML94!*kVKJ-56zq5F5xAAb~8RjR?2-I2Cm+JJ+}?R_Uo!#j4nezEd)rg=3qD zAV$VrifMT%?%jO~0|7m5$Ek0MmQ&UGw73ciB3@1w>n(DYZwbB{@>{NdQ$r-|hG};| z(I3tweor-MF_b+geKLLW>o-Fv{?Ps`DVJO7rzUJ1KUPpojfQr<(7H>d!GXbJQ-nHl zRqBxV3T6MbTFn3{%kk@E5p1ZM1IU0nlQsi-y5FTJNHC1(J`hI3<&~HPY3~!+Axi+2!HQ_R?4&ggl4G@UBhJ&IaU|c*rG^M_|xMt;Xt6jojajZ*v zjR3F8C#B;SZevJ|@n&Or$u4x9Jxk7;>R{PjnznGV8HYRxe{y#x$6w~-g?8K^gJ7&H z@~^)SSwB7j8He9+j-|%ULotJ{f}d~|{E;miTo;pFE9cX{JFnfxWk;af=rq*SeS13R zE9-?y>ONs|a-F&IlT%}3uSp8cLixuV!l_mfK)tQ1%?y?K{=FRD61eYv%8EY)Azs_t z8dgM^@9N&uh>J)&a*3f!ntzD+TO|Am&aE@NZA?e-UdXx>3RT)m>Q3i|&lmXE5MQQo zHM9+gU@|Ff*}8pwGUdRIz|}88aO%hD=s`upAS^1qHtJUgKjLCV?HJ~Vo9-2@hygrE z5j|Cf0H!RhFR{G1TKP0rZNqWYd`&%8IxzTs$DcE|pZd4>b1R0)TdX$Kb>8>FA{UiB zlj9<)0LHk!NcWvY?Epe0ig$BCBDKa|QO)#y?Ey zWr@h~!`y4E)5-I^zE>pQyh8eEk4};1jn+PIZ3O;PS-isBn#TdVuAv#J1WJpBvD4Rc z-VpTa3^QXD=Xw;$LEeb+1>OC)9qGA;$b;kE{AG*hL=LI_+yY_?%1uv-b^ZO@s!cK@ z_|hCT^tAGJFxzY~c^aO=h0<5?^B%tAI3~FcnIO>2vca2O3jwTKOk|ptj>hW>_?6b@ zl_MlQBmI_RAWdZaIHa_sS?GF?+WN6Q@9!Oqw>r_$X-my!#?;TS4U&YnAlr6h24S>>Y$GA5t^EU!2 z)8e$SUJMaB0xgNRjNe>MM4F@%0Q4`_8@&}~=o~9-{9ZABe)W>m@B|uip^>yOVR{DrPN$;+(2Uq%4 zX}RxEvZY7!)XDu44xxL4bGok3o+)EKz3W$Y8WrWm6XzwRH4zb)cVbg}2Vqs7+kKER zhZBaHM{~0}0D`kklQA=ypz8YZIO2z(>*~)x!70B0-}zsSzyxCA>t#obKpQejH(Aie zR5I1@-zY|L*#|CWNzM?DKCW;lkD33@;P~-Ku4aCCP0ZTsI+fQXsc{wEW~S#U(Uye; zgl;@K9$@bJmm3QdUdUj@VRoBsq{t{m2bEr z#0Wk^p$g{udiaY147!qUw%4e-3=w_Py7DEb&q@Y0R27BuuNZ73-t=B8_;bN*3JSj= z4B(YG&^46d{EG_(i)fNB3^OO?_d^R97$*zQWWH9EUnvoZwNu@_i=Oi)KX_#q-UKku zI8{-F&Yb5iM<03Xma^%#;<8m#(Gk;!tYufqwjHqblh4MZPS2U51c(64D)AM=kwg5d zDBh*VhPkIU8t#RE8{$7>ccDEFp!q!2Y!XdO4pJy#z5UGL{&6mrmx|l;J(RR^sVpUc zGy@=nn(whh8Y+<+7Uz53+8zP1IC@`>!CjPc?(gloi!72);^FUZ^XVJ3vU<)yal!TI z1wcwIDJ?%bYhXpR0&YZAAv!t)ToJOFyDHGehB8G$=)jeg1@R5avKBrn6lP8u3i zkI-shm)$Hr#ox=xdELZ};fCNu;Nti2eMpR3DUDDuL)_|*Zy}-T5pm3{i~`;U>GgVm zyA%Ma$oxXcErtHMc@6ql3QVp@V>QfxK=G&`>g^Rk%&De7KzY=?_pK1h)k9*0w1yrx)G6|WvD zWxGKOSo9aee@j5nL&W2EV3O4(S9+0Dv50?c4oN~-7C4FSD`sa66duQ|&*76l8DHC> zS!XGddn)yU9(m5;4LmzEc8k@5;J=9!xY9iUZI)CHrUZqDdg zBAUXI!!i~Q@U5rMeb+tmJWYO9%yVN*^pQyy+<`%V)kMTy#3Nk47B%8rPi@iJ>8Hww zwzXBP_p6U9Twi_kNV6pY7ZB|&9i|~(qepu^fxb^hkX`+XJdBkLaQWdxBBC5TMDw-2 zVRO?o$?k{aH`ee*(Hk8G>P)Q$qRyd^b31g_32hu&e6)EGo)>7thCyc}L3hNEa{F1?aN?8|+ z8^^lg`N_+tQ8U$M3wva)Es885$y%@YBa!<4v|ZT^@5^A%I9^ccyxJ z?*~3Nq_6TF3;(VVlXg#U-&C22(K@6uC`fqIS)lm}jZDC?doOy{cy%IdJA!o9&O_Sy zOWGb_-eK%sKmYUzTmmGw|13L;Ws#IDiIBWX4T zauG`bbzPfX#lwoX7wNOuiZ$ZBuwHpm*)oCtfg&3M+U7}~zvo{r>C50P6|=+A7Ob69 zXZL&>$@kCCrXY`^9N=MAIqP2}5=M;c^2%*SJ>evne42@L0h!an6-+#La92QVIV zaK}IIhOtZw)VYi)Cif0REdGtmqKO#oqt{D9Aq^qZ=Cf5kq3`;<+-z#J_QC(gTK$C@ z04G;iZFaH#IBaA8r8QWh)jUqT^}ay0wWUQ1vbL_CjL)6&!nrdfOVT=d7pD6~?2wRf zHP`X&$DjYyH-s-XcBnL>VsICHWN)f~0|PWOvogDOV%cF8=(|zC+M+U*NAMM><|{#2 zZsonXoR-{|U1v-uhz_ELZM;RL)P3rQzB%O4TjSW7#RxsBqvn<)=hg`@(3}LMzg6Ga z15lF`ZLi!Z^$zSEz9d<PD>hgG#GMZsN?KTid}$3n z*;kI%^*yc<8c61UV>)}*j)mKJHrO(#YaepYhCD4TDi<&)YA!@CDGcpu*IWy52bZ2a zNlVkif4X6u>U-m7Cly7Lo)Pt%sw zj^j{ZfH;5pRM#Yr;2UT@rT(jyl)?`%%m}4;74#kcurKZu~l z6ZAd$HfIv_<*RHVec4!URRKOGF8hmF@%G=Uc~eTLyuq{vPgHzvCBINnbv?hwnbgf^ zvqFQa&Q&9MKNaRA9=j$C(Q*43u&C@)L&ykj9;*EgR=03zamj%a+3Dv0i-*!3DmffRF@)uZjNZkgSxM z+q``EFVZB3r*yju6|zBYb_+?#u>|A<1W%q!kBn&P>3Qz_eL3z?`GJX$9cF?PtA2p_VVpn__H&bXcfmw!qV~L$&x8s!uNyC$Tv=>#7f$QxJUpa(DqWrkTh0G& z5~zVqFB$sCcB|;1Jop^nnn*CVTzY@Bwtlxt3HdUvs;V@WH`5ZpW;^n%spg?(t%{1v zp!nWnYHFPDZ*TfvnfdEXe85F#OZO2E3j6za6NXcD8(DuT@b0!RpX|*{4{L)RcX91H zKZ)58COkE z#on}ysFMb2-zu#!GPk)4;M76R=lu5WL=|I;UV&zfSN-)m9OQ$=$5jB|2KueN+2-SI z6Ino^Ue&LpU0A~@Wf#51U3k2aZ4F9HQOf%~ZUIlo$s>8)r8c$!2u<^(_M}t0p5*0H zX08bBKwC+f?8Dr8ynZR!suYvoF&0V?m6c_n1%VB`m5fNnBPW_x#1s64tc*pa*Hl(^ zPeUF10Iw5940rVm`V!RNVB8ZIw*5m+?)+XHbz6#8&$6EI1DSxv4t1R-uvm?^D$6qp zVUPo9_D<5D4`lrUR(k<}089H$td?k z=?$||m&IeM!LpuY%wfQ$Nby#K^loV?=}@~FX3wVy`i@moMMfHRhV6FfzPioLc->OC z?^jd5l=vlW|4wD>5B=ye(>cvf_oaj^wbx9oZGTxzd)yq(Ik0d@<+B>jiHCCs#yX!J zP+Yo?BUynVu;KJpUQL98wa#x4+g?ANnyVJr_b~um0dT2j>>I4{wgRXx_H$k0?beBt zzQ;B5FHr+QRRv5WwP7!WOaY15`KNO_)dcZF69iU$KNNt8;8Zg}u!DGWf6tskPGN*Z z$h3_{cDVsT^L*fsIj3oj$WJ!mo(xJ};g`~xq|#T&L&xoH#F5!2X@VqSue5Z(x4yRW znie65Hg2}p?qdlK<;DdD!%^Atp)4(yfUu(3Rrpfj$*H5_+?S)S>vc3FDxEma(@(&c z8jM3hFa0w)1D7SO91^eZB>u@)PtR7~My_gA4WB(YNKy)a4)vq_WcrX$Ce3%*TxNP& zfh~IEg@A8nAjWoWzUXi~Formw3O31!6FThmp?Z)?C!aW9ffWNbj7)XNq}^nmxaWkL zdKS^a5idj>WTd5oQ*qop?n#CdF=C5=U9_rXdzzkJlwz;XU3GNgd%D9sQ9|dls416%=$TivCxa`ekAEh9oXU z<&KM}B`o3K>2Y`vQ%@pImD_%}OhtO+DjbTb$)0-Z-LQ~QSZ`mxG2x%gtc@rzD-ABnQC%U%O*&A*r5~Sa5?JWA22HxA3cJ0{rvc<8*@?EfdeEB&v1+wzJ$H9cjC=R^9ov5a6z6)U7eePpd%pVP z;%u%ad%ib)%*w95D9hr59Fmc7&H4>-ayBM^?R;+M`v+@ltVt^sw|As=GoLP)4wquf z(lzoLCbDpu5PfI(RV@#-cBHzFn4z2Ln`7^pKyo{fM6Bf;H;@-jc751xKCFtc_sm^) z7Y(0x=HrNO8$#*q?d>`0=fY^~g{Y>L>HI_(df_v3ZoUdqnN!U&Mr1Fa*nG5?iWd@a zizjU^{rjzSuf}2*d0z&}ShA<*YFyTqkx^YF%8D1|36pJ*a(1%)yO!+vx0i(OWtlF0{8TvLYUaTV4C{anImBJR+>>ez}^g0#ukO z8WqE}ey0N^EoXh@=nrMj+qJyxv+m!Xb;=`9P;*rC<7f3LDQNqiUWTpJ*? zvpa=_eUFTkN5hMfadzg&UXbqWQvjnaeLXcTT~!FJEOAtdpm#0iFZ8Fm9~fDf@}ba} zN$8sXIS_ndVt9F7B%GhJ(yQUxx&Yl5uZdRrso6i-Hz66&*Yo0<_9YUM;wOPJDC0IT z;Ep|9Fg)tc8;Xl<0RjIaMeqaq5IZhzge*$~a_CxU3qr>=8n^{rHR1EGiP+ykVQ(dq z-<~-qfD}ys{xs&obIcIF_uvI3HG+)KH050r0Bd4n2~=ZatGKv8v4f~+o4;rqsGA}j z9&JUV5p?`X{P*~9@;o%Y=5#F4DJYCI72p`X-V8vveeWJ-kH@oTq@)C7Daw;GC# zgE+bJr1j4Oprs$u=@S$bGN~;tR{P&~A*|$Hh6D%a$;elRf&!k;+@SaaSph8<``;IU z?#xyH^LF!X8)$g4g4i1jTZ@-*v2vWk`t)R}s)AAXO zh=rm1e=7h=e+LMni16@0uLx)`-Au<1P#%$pttlmyV7f;Z@V@Q#hM^g>0<@t7S{Tzx z%}cEkmhpeE_ufHK?ccW`ih=<|K|zTsNwN|pgQz3{MRHbh&LFW-E+8twCP@~N*yIdN zlq4A>=bUrSFuU=7fA77jnO9R&HT7nurvJEgt8M!9IiIxm+H0*Hpo1m*WZQXVW&FnV zn=}i*#SlC~l-tSipXTN^^ww{%vqd$GEF=!<6c5bR%#>d}X+X^Pbz+QhT z;~wXp-~U?YjUy+Q8JK0&)ch3v81X}%> zFere=R#bqFqe{nWckS%t!NOvF0^ZLp&x7C=7E&9*x#Q0K%nb2OLelHEf0CZ(SGCpg z0|f{ziWy);E|9QJjBfn-lPXortkfj^cjT?^6MF8!hI`S6bb#zUzxI_hcwkv?!!Kgu zs^54xyYRCEv)1@FHFJP?7HZHL&Ecf{_fL!ZzWvYweSxyFBY~VS0s;GalMj8dN_*5L zczULxVZ66+nabTyV5&tFCuE&vz*ts~I;lc_x)1z`x(XlS-}A4L?wBzA+Kr0vE$@TftH|D>xL5)&oTY_}KOFdDX=apb}*wry!>p{@|=a1Q% zDtqUtb-Xa5DrT2YS>*rT<14bqH*jIrTiiXx6g=RBxLy43>;f0o=l@TWC*qM};XVAT zRUu`4N1k%^sWAD+t2-*I1KG=4DO-VASs;z=WW7x?pOS4*3y}VwpZCPTCO8qZOU*gL z>fq~ae~DQ7J&r_9Z2XaDvy2UFZ~y0KmFExLyw9&exB{Hc;vYYbN+K;NxD28^ZNXLw zm7hS%N5`Fta1@wcs{&`W_ADy~TXT<;vz9Hq=ymsMFOOu)Jh_f41PGd~_=s^oMbqrs z(qN=L-)kK14E4!(*N@g+EMfj>JJ)s}lV3m_PyYe3BFOgfD(}97HgA}eTW9isi^Tpq z^X@Ap*KMyUZ4%?_QISDzI;$3URL~2HfU!F`I`$r@38($22YMqjiO8Aq!fyGO)jg81 zgahvb3|;U{^Xzq`=5WLVrVO3q@>;U_YoF=BBA^6sCcDzp6$E^e~baI@oLA>gXP!4C#%wJrdbc) zP8qFkTK{}ZuJi*3Y+bOvPzYy-g+tRY^#rqNeNNK04#tB}vsuUw^>v`cX*1k@pe(Mq z{(*&6d~g3SfRaZG2ik)V{`vFcY#wOmf#NT{AaTYEaZ*;2D&;Nicc;**K|kAieIXtC zY(bQerkVdEuKZ*(K-db-XCYI6hxJPVACKlU5o~0uP+`)%O}ap4VrmM;tDGtyKYlvs z-+wGmevJuPE4+T{F8@l4^7hT2+y2=pl8rl289yv3c z0(2;G$A^H@`cv`>IH$#HH({1wJ3YutD=JLzvb$uUPJ(xknxD;e(Ti52WSyUWq zaS72c!gS34{J9B&?&Ve$b@j-Q@O#)dzJ3L9dZ?wMva-Iuo?{gsPG$`oC?b(+?#wsCN{EPv z@Tjbu`&NWunIzottIG?Drbt;?`M%VZvc<{!qNOe|u-z)(G?d70*QyV>At@)QswTg* zJV`_nd!3N9Xa5ml&T~~|>sN2w+}z$heX3yhr2-*B-zlx%#3Ae^YhnP5T;718A-+R? zEhukCMneOVmDyPmV#*stB$jANo1ZY|G?Aad;H#NHA=oW5E&1CcmyF=_9(O%jr(mvB z)e?2FsgF(LO3xVeMC9G?NRSFVjec8z%KAyg-+w$dcD-K~?RW`nwDb-2MKXkQB4IyC zp$`ZP3-$K)si(iDG_G41C19=Leod0Hr-9R7VP=I`IZScAlq5{!-lk2CwA3d*KfiOL zRe*}xmcG;1loaz$Bo~6g`Gz@dz9ZnMd)(x{sr!-U8%7GxAO7Ok=XD}_s=h*Tp*Csq zw3yQv=ZzYG_F1t5+*eN}uN(09LL>}D!vs75Fszst&3fuCExeDBn<2I5UQ2y+0EY@# zZpBO7(?B#WzfNpv=PQ6B(l$!Dr%Pc`m*%3DO|2rwZ1d}52FHmOWo@JamleSGQ%OlqW_*8!UF9q3!~ zl@gM8t&IMe`iar6-DT^wshfIJZCSMKADC;2*VWTyXZO=N%M%LqYPoNV_3969H^}K{ zhiTiVH}d7LkY7Xpq)SsTd%~?w6%_b*FXOPHyMdW77y%o;&8jFB^_~8_@LV?Z2B~Ev zr7=hz%he9%!TyKEMJdFuVtNO?B=jQlN9j=z!3eMQQrhz{!Z2tGocd@+R?R-AnL?ch zw7CLDdqI}RyTZ;I{02uC6dy1AmW|<_oPmm?rG23{hN@k{^!;cxKdifQ*L|;3!Zz3# zeI@!>mq&jgpJzDrkKS-fUYFyjs|=3&VHkpZsBpHaO*qAL)%VF2hpD-2@P2WNo}CHR zb72I_91(e0G|^+NaJ0IHrc&*uiiS=4V39*h0Sj3qDcSbdoT!L4%;Q<7kn>G%r|n*|C{DjDKR#euIA>H)zPCjka^5A< z_?lIg_wW8Uss%ZZQs3cg3NAJ;^m%!S8_f`BvY&VsjxNpJxCzJ80A zgf?6rSr0R3cpW!*UKtxyIBkr%p0(YRsqZpAOaB@L5lu7bCiF$v-}ZYwwT-kW=E-%L zb?^3 z$Y*!C_~3vnJ)&kt&+yhQ;@=+nWP^&@Z2U!ST|~7Zy;{N;TI;snd%_%vsIMX6*$&;k zP~cJw4@&^hw;0ZF#HM+Coqz73;sGmt7LDoA*l?kOa}Ljy_7Hbn+2RpSOg$!Q!Ur3JIiH|tbwXB~4!>Je+YEnR#YA;77s zp`{Tz7^dorHai^|Msg0@j}|`vLKEG_&aqHc$mx41)6{GE7zLwCyVFQ%bh57&{}QaB-gq=O zE{2RGA-N@$wlhW@;24hQ;D}4xe*_+2oSnO);vkcIYQvP0hg3Ho&O2FT3v0ypkP~)2 zjlrd~IfBDWGf+1@92?D)S@s5`t-LRgE6cB^X zCTPmU2rr+E9IQ4Wxf}JAwGo|j*^}Ke6p}2$?`Bzm%w@%Zdu;IKew7^@zN(wV%~68N z7eD&L1RSzzTHdf-OvJZ&(opG$*y9k7@E;I#u)*)oHLVBD;5CXqk|NHz)J2QD=yg;= zY{RXkI`!2xf=iqv3j1i#GF*HhzBBh#O#W^J_J+-iVLFKpuYbH%%ep5UmvpSR(-?Qe ztXYn?sO|A%AqG!S){6gN#(OT|Popne|N43`was~l;uNG^Q_JmQ&A2Pj9~jW3xMyJ3 zxYhI3U%>bG7BideqJkT1%gv3}u4Zkj0=Me`wj|C}BEQN+2`Kt~%~N>$`i=^mKH&Z& zFT<~hUB_Rs?*Xvp&+OQUczh;8L5X)fZaq={Pew44@P_YC9rlM#17EV2lqN@vO!LfH)(o_E(s3p0&yVbM< z{{%jMzA9k{U^(MkR>lWLd3zrm0-AEE3GG=xio@{S{yXjN*WlR#{)!X}tTc@suVrS6 zkR!01d!?wzkl+kVYyUeuBf~>sAI;*HKK~QK?#eeAtoJ6`QqIva3*ugA5E=5-=0$~d zo12Y@Vy;X|2^`me`#${PULlmEGw(^uaoq|@P>&=x*cp6!Ie}KfBLR_Wf z_h=MxD8qoy+f=@vZdp%Hm!eJwPE>G2M^+g58kqca5?TErDnUapOiLTZZCgMY2Ue4# z4!wf9^>V?wU1kEdnQxaHZvm z?tMOG_jO!*yQL`&^iis5ckc~|^yv$u&1UhhTtSl2Gxl^fE9Y7c*;b_5^v`e%-v|i_ znR#|`upB0d>noBlvp5CI6iZtYjr;F&TwI!2m`YX>)w>(MK`v$c<$y?czYvotiwNJn zgk$wwQGbx+4|<8@mkoPUW_G}BE;Ye#zf&DANj?AwkQy8O_qtv5hb!v4sH}}t`e;G$ zqn1;1;cBz*x2Jgp+8JS``SG(IypP}0c9VHSc#_XOeBZ~*XV4<@vGbIbm{=L!kn15& z8mUlIX79J^yS_%YIk|aSK@&*%d{PGMF9!YwHY`dVlN(DPhll0J1)d_A??}k;8z0_! zho%MGG1WQy8!$i3G)lYCgt3y9dIKkAE_|zU@o4^cQ|+R+f=AyiQp9NW$gM@fa=;D{ z*l8L)Reg3U`1)IH=72;a-TW@Lo${zvt~u3JB!8@wbjUf$xvec3N3hLzaSAu!4T(t& zfS%tR>C!f*-Z)LZ33;?`p?fOANqIZ`tVp&&Ziz4{_tiqmlXbS3@}1}Wf*#PwUU@N* zvI|DYeJKOIuN0E7GN_wG5&;&IYW5aP#jZd0cV5Vb#wY!3d|*!S(vorWnWhHe9_BPy z7!2th(Lo0q*a2Jz{j~!0+T88eId|WDx-!5l`8&Zrwdpc*ii+XO7im68 z(HZ~f5-kaA%bGjsytESe9-Y_;DlkPpvwiX`%Fl8Vc@%fZ2X;7tlJEqTz98!4Ktsnp zl29g^m+-TyA%b^EI6C~zcIYrtPSEKIK20PCyE-F(&|LZ^;o{1*#2C(P5ytwrRyolY zTC{AKv}HZXr$59xH9gY6chhXt-qA52Z*HmE2KCex8BOsu-R~23%Uji(o<85Mfb4l? zTUiTel~(lDPQXbh<=lMTv_#3zE8;-aM(b-xaDM&YhfBj0z!Ce+`Hk8qxvbZhyE_>^ zQ)C=1WPGb=VaXm*FqmaxP5A_f8I);S9*!0!r`mA#Z4btwMWx1@Qw%Rj^Y|k#hY{ zMNBsT=K-^(Mh?R&S{rVC!)T$9P)0T??a`W__aw!T_5QKf-#Lt444KxvX)jJLtk1mt z-TQHJlP>*57v^b<{X~aR-oU%Vq%TgqESiG9UUjftb?0_#+Dc^S7q^DUgk0#|T{fPi zthaU)%VA8OE{leE?!{p5ZN zMKg?NUikpwasWA}eZ@oLM$R&7FVLwT-`I36czb5<%S9I%m(vC2z8-)Hx~JmG{WbR; z6Z#*_eXo`L&&++7W!eZd#?8(NZmsigMyP{y^J7WL1-sMCf|H1kkXVs5ML ztVXb*B(A>vpAjmr%xArM(JzmKNd4*>KV3navav8IVGFraux8=%C;uoxPP|=?dc`H` zkp81|XoZ?s`qQVS*8AnheY;CL&wmuf4EuOQMvfz;*}}qV%rR~re_lfo=<7D6pzB=i zQR(W*n&HB@W@@s`A`63mZf}aj=mLuLEviX3sW;sJ{+<@Hnx1DayW_g5# zS+;Agy9~=P0*uXHVBXPe-aavr?$SXaY`hT`i+F2h!e_Hq3C?qnTqT9`zXF1PVHES- zhZ1jlLVJjDT^JvWA7P&dnBmIC=2AJ+vp4+mZd9YSwOs5b?Zt}@-_Zx90?RAt_NLT$ zVt=LcgJg`vQ?mmtts8?Rw{Lc-^7jB5!uNvkJs9Eues4PKF%qcJSYvVBZ19ztj?SP^ zBfd8!IYam}t=w6bR7Q&p{SPLPU7Y>6^I+@oe=TZN|erZeJofaHKc(*z!@3vdB9$!H16Y$X7$u{>9J%7^*I||h* zHX7!p6$4d}?QMs0R18>F8@T7`y#1pi9?D_2cS%ulOKB=}D)C9@g!&f3=cxKl3K`x%LqlfhDA0hKjpn2@ABhx?EMn%^rmnK; zD{H<^1!oXt_O$u|Y!>lMOilCep{bh0(N(#nYMVBK+)nkWvTY9Tb23*lZ>}p zVoprjyAS6YO<#!lxZfZKtU0Nb{BwQ-E$aI{Uh| zfJ&sceg58Hh56?5K~>0$mJQv1{lSIk(|ofu9%F6H%1`j*KUl!OHpg~9J70A3dJJEC zP=ab}dhM{BOE6kUTI|@{8t)@h+zraYEoB`l5e> zMfF41gTY``ZpmqDQzh0mfe?#r3+q=Mv53PaVWH#CWoU=wM>aQ4wj#BUwjC?9PNrv- zhmR+e;j>!a z{ZgAPRgk{GWsi`*1RgW4&#dM4^Ty_zUeH?S2!6MPy<7b(--z8 zpC%K_W!PMFnf)&B%;?EpWJ0X#JLc(+Q&OOh05HmVh7F-od?ej6R5oeu zIMUfc;)hF5fPd}U*SreWPiE4`} zLTqi7-@juY?nvYXhks?YmbZR2e!zwLDP%O$^BIGr&16Nc7BSs#%me%J%^r+(%&VNr z&hR@;6?+<9Ncrg*?HrZGPKsbZP6|2#0?BAC#J-m%e?hlG%w5~A(wZ@(`?&I1JP`mO?!uc=-|F= zYM*Hu89{4}M1VRX37rT2DUiPGYkp^XT~|D9WWoBsO%NOcNhRgOfKfzJa@Ml(51Vru z=nd0;>cLenyC($gL`YcM{|VyK8pIDQT{llMD>O>1hk;b`-1bOsn2{T}vm>}v*Dm8P z>fH-UYEdbhVCoi-;ksVHWnPz-+W4tk8(}|JDdZ&CJ~ls}!owOgwhEmydRogOEl$0s ziU}Q1ErC(WZup}uEo&ekciBzv)nn7h%SHNs>nlR9x~%1&3dF`nZdUYabu_<^9^vcz z>)w3NS3L|BitNvGPyZb3!n4uvvj3p#&`aBUX!Pm$u{(6$b!&M+d=3hPTA4SHI%vImdL%4quaDxi4al>%H?K-g+ZrIVynN+aM^Xh8VRG0xembP2BL`^v z3!SA4mc1h_3ti_z(-r}F4VFhfRQq7;1TP+L?zyWKi{+N8+dad&uo2kU(F})LY20^l zYWQX;c<_#%;_DzKzh~9=ABabm^AZeHZ=j zh_6IBhy6h_Jz_&4t%YN2X=8iSW$bIc!tQysq~mM+$plTEV+QZmI_T?UqG)^zDAgL` zj(VsAnk3RA&wGB*uj|mQM}2w0@{+ytPVVf8?Wvf*;V29)a7jisD+{~Fjm*sfjssgf z#oplulj$*O-MQ8GZbS}|bi^LfF=Rz?bsDx5AD-ayOBG^!egI!_A_$27OmL zUjDb8YZLaQK+2vC zC_Lb*z;Fb%zn(YTdNVBwO+Lja-_+GiD_HV0iPtznk-OA2XspqGPkQd4HREPp+n zEcY$5=gtx4rb97`GZwd$2~sDDSu^%OhYkUPl1lJNjp63zExCn#Hv++lnT0uyxfc|~ zkuLQy9F}o^>n&hXjn4Wq;Y0x@)$gDDPfe;vH@7(Vy}b{>FSCJ|wkyc2qpCQSkqHVV zqzj8sa|0rI$u^5|^iLo8M)}`h0;-m|ohU#%x_``upu+|myuvGY{GRJt$QDdZ#=RK_ zp^nswqPb@6lcNrgR_~9Q-6KON1cgsI7e^ro|6>(VI$!;|tqRh7RodaK-(U$Eq z3RiJmgCwjgd1%SZHn)r%et3JLrLA>=2pOd2 zps%A0+(h6%;~#W3`fVq9ph14d2wp2ylk;It(gO1OnaZPas3*fhY-mfE+cS!pEphc{bZf&x8yj- zpEU75bf5c^PIj_IS72b2tS7+lDDwCjBak6K28Z$?rR!7dR+Onlk*XL~F~E;!)#6zK zpred2gU=_1;UyySl1iW;1O4L%PRlnz9-&9Zz{cdnEq@q2N@~*)R|H>+rEynd!zO1M z@oM%&k{$B~ygb}P|3Bn?{eO>JpW)X1-~ZzO-|rgu?*9v&)&I-ydTe5RV&Vs8 z*TMo<;L00}r|D_Q$*E~ZW@bj*+&nyFm%ZL!4FW4TG}`CL@L>_~;eb4f{&wbk>~RhV zgd&DC%jU)wtc=VL*qDMu@hdN8CL|=p#eqA&c4OYJqf!r8*MTqD*w`j?FqgTV1+ijZ z66q1tQb|aN3-UOdvi^%dCt8FKdT@?}?lK0iihMx|L`O(mp?S|Vt@YaXZ?{QElx4Nf zzQqIcE%z9#AT5BRPRRi2KG$O!PVmlbsl0_m2u~Z)BU*smuWtWq@vP5W2iu#wJltIR zh6cZlTQ?~&&sRs}9tOZi&G%cez*ox1$PnJH1*dC+>sF+!85wXb=*9%vd7Fr)23g`W zCL%V57ss7$P+R-VK0hD6ID6ff6f22{C=4QG+9W4Q>#ux^XFFsiX7tAJ;07iKImZ4rM}U5CHnpd@7m=AZJkPACue6+kmu#) z-6SDye{ja-!?^^XGlvGy(6t8qGN|vzb7IM|z{U>0MApgI^S@p5dpfU`yM@R zijA?Nz|!>|SfR@vfxe0KB4&@T6v51_r_-YBW0RApbGNZdTj*W#c`x-~#u2L(x(;|G zzWwfffYZ|DlpKbmgY}Z$C4Rq#{wgLe!AgP#1$cIhSjbo)*|6(a@fcy@VAxWRA&%>_Sd(uFrY(A?KA9$SVbif<+r*9{xY!O zOG>=4bPl8*k6yuj={u11A1nZeIRkT9tcTbCuNq%_;$Y3nftP#_KloYyC9-1iJ%iyn z3cOU5QBd%sG%Z`S3%GHPrVj95z#9oL38{{yCDnw^*|j}n;o5VSFz{X%L583vCuyYt za)?aehXUg>YwZ#V#~GU$3yT|WZ;Pp$^)w)Ojz^ui*DxYE4pTe(N-ZwQ#>py<*_@|t_PHk^5+r!62Khj3hC<%c}KJM+f+{rmSO>Mq2O_!O776K z_!BdX28_D3t&QXM5D_%`prH>S6Bb>h>rdTY>}jn0+3?yMpX!yea-mJ_1~?}$GBO&p zg}Y35_o~St78DLzmk0F{fWyCj`7-d-z_WaNYsnlzsuXz-n_iY&I23tb7$1j+A&7T# zrm3x!&S@_)u!3zL9vQ0;9GOcnhE zea|2932Ak5-)@tVrk=w*SF39}GmhB3UEi4#p z_mIRQY&dCad)wqbj5(g{&X{JFr&V-!btM}cei+l&W_Fw0RtAl0dgxuzsp%0h zh|!VRlkFFEDX*0#X+^<|cXXBgdmc^pJc_M?1{+9!AekNA-|>9*%xfV%S=5s`iJAGq zUj684iOcLY6z$XJ&jb(p91UAy;C&e|_9%5~|5xSh3qW2w364m*(a#RHqg6ikWm1 zf0{D0qU7Hm8=kDPB{xtSLsiLY3=Q9WQKA@3xea@uHb0ts&}NtE6wP$ zS=jD_k%Bn03bHKo2M8o5RU)5AWzEePNVzXAEYKLbE+h$OWM(cJ?U<_hF1GNQrg*Z1Q`U@^S3Od#hys$NAn?q*OF*ruzNZO{uJmB*Zy9!leRBxJW%Sxqof z;WUYpen^w!dJrZDjmKJ8{I*tOT;xKJ1z=whLctw|h%OMVwHF`#lkG}YD~MXwYq8&C=8Ntm0bS5#Cu zE5EI26FOGG0Z@9yZLG>Pqih5=GY&`O+RWmqX15SsLMbu~wExisj9 z1>E6pt*`GLde;v&LMOcyd&Ns>cyh74i;bv^n8(JS^d^#I6IS~Qw*7jwLR2;<2}WbN zTx1Cj60`2>Bf}yigE{xISA|kSd;a{%v92zG6=3G1+TTD_ul;T%R`_84b!aa0;oFqP z@&p>HcWZ-TTJB!4u_=K}OiWtGZPM~|gcVW>$E~% zc9O;+BqXvd-riy8H2BBcyOEjS(F`$*u#~cJUovWRSv`_7@j5%UMMfc3@}P8H^y{^; zwc)f~#jQA;)ZX$gw6L%UW7Z-hraU=~aeZP_%_ekew~mxfcMj=pzMKeaB=+QB_nsKC z`&*?50oUE|#HrsVdsRME(0w>^s~D);((Ut$v#0&^RA7f*zFASo{CWm)G^(v|#dViw z6+Jt0xV?@HZ$u>~I#(aqPft%1MxJcVR&u9B%L1>#Yzrb-GD&1+j5@{D4i^ax`X`mX;QG zXEo?(z`@Ucdt3OV|MllE4THm;MEu3BN&>`DZo})ug-P0o(|$Jh<96)P;3d$uwAq9X zqaD(;(a$*y>uu(?uWRFElrBWPsrD9LkM@a-h!}BS^ef&ZmXJ?7+kM-`AsiU{lGX{8 zt%W3tGO`A!y0_TNK;+5-!mwDFeZ3MtIWnrYrw`%PmY!eh!MOrPRYxE z=wxEnC_7616YE90_7%0)V6xg_}F{wRB{?1S8nI>uQvDR(q0OE z-+EJ9O&?{C78YwB9w`N9PW?HkmVC8p(0$B$7L+++cBZB!K&V zm`4>1{ejU$c6MK$nrRH3xVh+$dG3w?fz{pI{-@dNv4ew>X#RpGj|=_P&1E0^kU7Y^ zDjZ=U|J~x`(9qN@GauMlC@pI%4T%X mAapWvZN}ByX_bqCPxgqTHm8(FKDAWz1 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 Gg8v6?nn4Nx literal 0 HcmV?d00001 diff --git a/docs/images/enterprise/integrations/confluence-source.png b/docs/images/enterprise/integrations/confluence-source.png new file mode 100644 index 0000000000000000000000000000000000000000..14b6061cb1f03e9541b15d245e5430877dd79b5c GIT binary patch literal 66431 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 =qV!DRYBuhISJy^&;b}VjRrG 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 E0Tk?#mjD0& literal 0 HcmV?d00001 From 503abf87743abf6bb2fa6de3228ce81dc43c9953 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fahreddin=20=C3=96zcan?= <88107904+fahreddinozcan@users.noreply.github.com> Date: Tue, 7 Jul 2026 13:30:15 +0300 Subject: [PATCH 10/18] ci(triage): trigger triage agent when a library-report issue opens (#2880) On issues.opened for 'Library Report' titles, forward the issue number to the triage service (context7app), which runs the read-only agent and comments its findings. Requires repo secrets TRIAGE_WEBHOOK_URL and TRIAGE_WEBHOOK_SECRET. --- .github/workflows/triage-library-report.yml | 40 +++++++++++++++++++++ 1 file changed, 40 insertions(+) create mode 100644 .github/workflows/triage-library-report.yml diff --git a/.github/workflows/triage-library-report.yml b/.github/workflows/triage-library-report.yml new file mode 100644 index 00000000..f19a44a9 --- /dev/null +++ b/.github/workflows/triage-library-report.yml @@ -0,0 +1,40 @@ +name: Triage library report + +# When a "Library Report" issue is opened, forward it to the triage service so the agent can +# analyze it and post its findings as a comment. +# +# Cross-repo note: this issue lives here (upstash/context7) but the triage agent + its secrets +# (Redis/Vector/model creds + a token that can comment on this repo) live in the context7app +# deployment. A GitHub Action here cannot run the agent, so it only forwards the issue number to +# the app's endpoint with a shared secret; the app runs the read-only agent and posts the comment. +# +# Required repo secrets (Settings → Secrets and variables → Actions): +# TRIAGE_WEBHOOK_URL https:///api/triage/analyze +# TRIAGE_WEBHOOK_SECRET same value as TRIAGE_WEBHOOK_SECRET in the context7app environment + +on: + issues: + types: [opened] + +permissions: {} # no GITHUB_TOKEN needed — the app comments with its own token + +jobs: + triage: + if: contains(github.event.issue.title, 'Library Report') + runs-on: ubuntu-latest + steps: + - name: Forward to triage service + env: + TRIAGE_WEBHOOK_URL: ${{ secrets.TRIAGE_WEBHOOK_URL }} + TRIAGE_WEBHOOK_SECRET: ${{ secrets.TRIAGE_WEBHOOK_SECRET }} + ISSUE_NUMBER: ${{ github.event.issue.number }} + run: | + if [ -z "$TRIAGE_WEBHOOK_URL" ]; then + echo "TRIAGE_WEBHOOK_URL not configured; skipping triage." + exit 0 + fi + echo "Triaging issue #$ISSUE_NUMBER" + curl -fsS --max-time 180 -X POST "$TRIAGE_WEBHOOK_URL" \ + -H "Authorization: Bearer $TRIAGE_WEBHOOK_SECRET" \ + -H "Content-Type: application/json" \ + -d "{\"issueNumber\": $ISSUE_NUMBER}" From ea82d5585aca02f871f6567dd207d5b616504889 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fahreddin=20=C3=96zcan?= <88107904+fahreddinozcan@users.noreply.github.com> Date: Wed, 8 Jul 2026 13:29:34 +0300 Subject: [PATCH 11/18] docs(enterprise): document programmatic library import/export API (#2887) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * docs(enterprise): document programmatic library import/export API - Add POST /import-libraries endpoint reference (openapi-enterprise.json + page) - Register it under API Reference → Parse in the nav - Add an Automating with the API section to the Library Import feature doc, covering the cloud license-key export and the on-prem JSON import * docs: update export endpoint to /api/v1/enterprise/export, plain language Match the renamed cloud export path, move the license key into the request body, and reword the automation section without em dashes. * docs(enterprise): export uses Authorization header; import requires an API key * docs(enterprise): document the force query param on import --- docs/docs.json | 1 + .../enterprise/api/parse/import-libraries.mdx | 5 + docs/enterprise/library-import.mdx | 55 ++++++ docs/openapi-enterprise.json | 187 ++++++++++++++++++ 4 files changed, 248 insertions(+) create mode 100644 docs/enterprise/api/parse/import-libraries.mdx diff --git a/docs/docs.json b/docs/docs.json index f63cc06d..46566198 100644 --- a/docs/docs.json +++ b/docs/docs.json @@ -120,6 +120,7 @@ "enterprise/api/parse/parse-a-git-repository", "enterprise/api/parse/parse-an-openapi-spec-by-url", "enterprise/api/parse/upload-an-openapi-spec-file", + "enterprise/api/parse/import-libraries", "enterprise/api/parse/parse-a-website", "enterprise/api/parse/refresh-a-library", "enterprise/api/parse/get-parse-status" diff --git a/docs/enterprise/api/parse/import-libraries.mdx b/docs/enterprise/api/parse/import-libraries.mdx new file mode 100644 index 00000000..c51bbe98 --- /dev/null +++ b/docs/enterprise/api/parse/import-libraries.mdx @@ -0,0 +1,5 @@ +--- +title: "Import a library bundle" +description: "Import pre-parsed libraries into an airgapped on-premise install, as a JSON body or a Context7 Cloud export file" +openapi: "openapi-enterprise.json POST /import-libraries" +--- diff --git a/docs/enterprise/library-import.mdx b/docs/enterprise/library-import.mdx index 7d68a389..0c4169fe 100644 --- a/docs/enterprise/library-import.mdx +++ b/docs/enterprise/library-import.mdx @@ -121,6 +121,61 @@ Because your install didn't parse these libraries from source, it can't refresh Re-importing a library you already have does nothing unless **Overwrite existing libraries** is checked. The import skips libraries that already exist and tells you which ones it skipped. +## Automating with the API + +Besides the dashboard flow, both sides expose an API so you can script imports. For example, you can sync a fixed set of libraries into on-premise on a schedule from a bridge host that can reach both networks. + + + + + +Call the cloud export endpoint with your **enterprise license key** in the `Authorization` header. It returns one library's full content (every code and info snippet, without embeddings), already shaped for the import endpoint. + +```bash +curl -X POST https://context7.com/api/v1/enterprise/export \ + -H "Authorization: Bearer YOUR_LICENSE_KEY" \ + -H "Content-Type: application/json" \ + -d '{"library":"vercel/next.js"}' +``` + +Only public libraries can be exported this way. + + + + + +Post that JSON to your install's [import endpoint](/enterprise/api/parse/import-libraries), authenticated with a [personal API key](/enterprise/api/authentication#creating-an-api-key). The body is `{ "libraries": [...], "force": false }`, which is exactly the export response shape. + +```bash +curl -X POST https://your-instance.example.com/api/import-libraries \ + -H "Authorization: Bearer YOUR_API_KEY" \ + -H "Content-Type: application/json" \ + --data @library.json +``` + + + + + +From a host that can reach both networks, such as a bridge or import gateway, the two calls chain directly: + +```bash +curl -sf -X POST https://context7.com/api/v1/enterprise/export \ + -H "Authorization: Bearer YOUR_LICENSE_KEY" \ + -H "Content-Type: application/json" \ + -d '{"library":"vercel/next.js"}' \ +| curl -X POST https://your-instance.example.com/api/import-libraries \ + -H "Authorization: Bearer YOUR_API_KEY" \ + -H "Content-Type: application/json" \ + --data-binary @- +``` + +For a strictly airgapped install, save the export response to a file, transfer it the same way you would the `.zip`, then import it. The import endpoint also accepts the dashboard `.zip` bundle as a `multipart/form-data` upload (field `bundleFile`). See the [endpoint reference](/enterprise/api/parse/import-libraries) for details. + + +The import endpoint is available only on offline-license installs, the same gate as the dashboard flow. A library that already exists is skipped unless you overwrite it with `force`, either as a `?force=true` query param (handy when piping the export straight through) or a `"force": true` field in a JSON body. The response lists what it queued and skipped. + + ## Limits - Up to 50 libraries per export. diff --git a/docs/openapi-enterprise.json b/docs/openapi-enterprise.json index d2a6293e..0c1d116f 100644 --- a/docs/openapi-enterprise.json +++ b/docs/openapi-enterprise.json @@ -309,6 +309,69 @@ ] } }, + "/import-libraries": { + "post": { + "summary": "Import a library bundle", + "description": "Import pre-parsed libraries into an airgapped on-premise install. Accepts either a Context7 Cloud export `.zip` (`multipart/form-data`) or a JSON body (`application/json`) for programmatic clients. Requires a personal API key (or an admin session). Each library is queued as its own job and its snippets are re-embedded locally with this install's configured provider. Available only on installs running an **offline (airgapped) license**.", + "operationId": "importLibraries", + "tags": ["Parse"], + "parameters": [ + { + "name": "force", + "in": "query", + "required": false, + "schema": { "type": "boolean", "default": false }, + "description": "Overwrite libraries that already exist. Handy when posting a piped export body, which carries no `force` field. Without it, existing libraries are skipped." + } + ], + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ImportLibrariesRequest" + } + }, + "multipart/form-data": { + "schema": { + "type": "object", + "required": ["bundleFile"], + "properties": { + "bundleFile": { + "type": "string", + "format": "binary", + "description": "A Context7 Cloud `context7-libraries.zip` export (up to 100 MB)" + }, + "force": { + "type": "boolean", + "description": "Overwrite libraries that already exist on this install", + "default": false + } + } + } + } + } + }, + "responses": { + "202": { + "$ref": "#/components/responses/LibrariesImported" + }, + "400": { + "$ref": "#/components/responses/BadRequestError" + }, + "401": { + "$ref": "#/components/responses/UnauthorizedError" + }, + "403": { + "$ref": "#/components/responses/ForbiddenError" + }, + "500": { + "$ref": "#/components/responses/InternalServerError" + } + }, + "security": [{ "bearerAuth": [] }] + } + }, "/parse-website": { "post": { "summary": "Parse a website", @@ -581,6 +644,111 @@ }, "required": ["message", "project", "queueId"] }, + "ImportLibrariesRequest": { + "type": "object", + "required": ["libraries"], + "properties": { + "libraries": { + "type": "array", + "description": "The libraries to import. Each carries its full snippet content; embeddings are recomputed on this install.", + "items": { + "$ref": "#/components/schemas/ImportLibrary" + } + }, + "force": { + "type": "boolean", + "description": "Overwrite libraries that already exist on this install", + "default": false + } + } + }, + "ImportLibrary": { + "type": "object", + "required": ["project", "codeSnippets", "infoSnippets"], + "properties": { + "project": { + "type": "string", + "description": "Library identifier, e.g. `/your-org/your-repo`", + "example": "/vercel/next.js" + }, + "title": { "type": "string" }, + "description": { "type": "string" }, + "type": { + "type": "string", + "description": "Source type of the library (e.g. `repo`, `website`, `openapi`)" + }, + "language": { "type": "string", "example": "English" }, + "branch": { "type": "string" }, + "docsRepoUrl": { "type": "string" }, + "docsSiteUrl": { "type": "string" }, + "totalTokens": { "type": "integer" }, + "codeSnippets": { + "type": "array", + "items": { + "type": "object", + "properties": { + "id": { "type": "string" }, + "title": { "type": "string" }, + "description": { "type": "string" }, + "language": { "type": "string" }, + "codeList": { + "type": "array", + "items": { + "type": "object", + "properties": { + "language": { "type": "string" }, + "code": { "type": "string" } + } + } + }, + "tokens": { "type": "integer" } + } + } + }, + "infoSnippets": { + "type": "array", + "items": { + "type": "object", + "properties": { + "id": { "type": "string" }, + "content": { "type": "string" }, + "breadcrumb": { "type": "string" }, + "tokens": { "type": "integer" } + } + } + } + } + }, + "LibrariesImportedResponse": { + "type": "object", + "properties": { + "message": { + "type": "string", + "example": "Queued 2 libraries for import" + }, + "queued": { + "type": "array", + "description": "Library identifiers queued for import", + "items": { "type": "string" }, + "example": ["/vercel/next.js", "/facebook/react"] + }, + "skipped": { + "type": "array", + "description": "Libraries that were not imported, with a reason", + "items": { + "type": "object", + "properties": { + "project": { "type": "string" }, + "reason": { + "type": "string", + "example": "already exists" + } + } + } + } + }, + "required": ["message", "queued", "skipped"] + }, "ParseRepoRequest": { "type": "object", "required": ["repoUrl"], @@ -684,6 +852,25 @@ } } }, + "LibrariesImported": { + "description": "Libraries accepted and queued for import", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/LibrariesImportedResponse" + } + } + } + }, + "ForbiddenError": { + "description": "Forbidden - the action is not permitted for this install or user", + "content": { + "application/json": { + "schema": { "$ref": "#/components/schemas/Error" }, + "example": { "error": "Library import is available only with an offline license." } + } + } + }, "BadRequestError": { "description": "Bad Request - invalid or missing parameters", "content": { From c61a56543d4c0c4e8f1265d3b661d41579251e2b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fahreddin=20=C3=96zcan?= <88107904+fahreddinozcan@users.noreply.github.com> Date: Thu, 9 Jul 2026 12:50:14 +0300 Subject: [PATCH 12/18] chore(deps): combined dependabot updates (Node 20 compatible) (#2891) --- .changeset/bump-jose-6-2-3.md | 5 + .github/workflows/canary-release.yml | 2 +- .github/workflows/ecr-deploy.yml | 2 +- .github/workflows/mcp-registry.yml | 2 +- .github/workflows/release.yml | 2 +- .github/workflows/test.yml | 4 +- package.json | 2 +- packages/cli/package.json | 4 +- packages/mcp/package.json | 4 +- packages/pi/package.json | 2 +- packages/sdk/package.json | 2 +- packages/tools-ai-sdk/package.json | 2 +- pnpm-lock.yaml | 320 +++++++++++++-------------- 13 files changed, 174 insertions(+), 179 deletions(-) create mode 100644 .changeset/bump-jose-6-2-3.md diff --git a/.changeset/bump-jose-6-2-3.md b/.changeset/bump-jose-6-2-3.md new file mode 100644 index 00000000..4abefa7b --- /dev/null +++ b/.changeset/bump-jose-6-2-3.md @@ -0,0 +1,5 @@ +--- +"@upstash/context7-mcp": patch +--- + +Bump jose from 6.1.3 to 6.2.3. diff --git a/.github/workflows/canary-release.yml b/.github/workflows/canary-release.yml index daa173a2..b11fe8d7 100644 --- a/.github/workflows/canary-release.yml +++ b/.github/workflows/canary-release.yml @@ -16,7 +16,7 @@ jobs: contents: read steps: - name: Checkout Repo - uses: actions/checkout@v6 + uses: actions/checkout@v7 with: ref: ${{ inputs.branch || github.ref }} diff --git a/.github/workflows/ecr-deploy.yml b/.github/workflows/ecr-deploy.yml index 4a58bb62..6e849389 100644 --- a/.github/workflows/ecr-deploy.yml +++ b/.github/workflows/ecr-deploy.yml @@ -14,7 +14,7 @@ jobs: steps: - name: Checkout code - uses: actions/checkout@v6 + uses: actions/checkout@v7 - name: Configure AWS credentials uses: aws-actions/configure-aws-credentials@v6 diff --git a/.github/workflows/mcp-registry.yml b/.github/workflows/mcp-registry.yml index 9ec0446c..b5adecf4 100644 --- a/.github/workflows/mcp-registry.yml +++ b/.github/workflows/mcp-registry.yml @@ -17,7 +17,7 @@ jobs: contents: read steps: - name: Checkout Repo - uses: actions/checkout@v6 + uses: actions/checkout@v7 - name: Setup Node uses: actions/setup-node@v6 diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index a38555dc..dd7e22e8 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -16,7 +16,7 @@ jobs: pull-requests: write steps: - name: Checkout Repo - uses: actions/checkout@v6 + uses: actions/checkout@v7 - name: Setup Node uses: actions/setup-node@v6 diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 19680955..3100beaf 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -23,7 +23,7 @@ jobs: test: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v6 + - uses: actions/checkout@v7 - name: Setup Node uses: actions/setup-node@v6 @@ -42,7 +42,7 @@ jobs: echo "STORE_PATH=$(pnpm store path)" >> $GITHUB_OUTPUT - name: Cache pnpm dependencies - uses: actions/cache@v5 + uses: actions/cache@v6 with: path: ${{ steps.pnpm-cache.outputs.STORE_PATH }} key: ${{ runner.os }}-pnpm-store-${{ hashFiles('**/pnpm-lock.yaml') }} diff --git a/package.json b/package.json index edcba4f5..9781189a 100644 --- a/package.json +++ b/package.json @@ -49,7 +49,7 @@ "@typescript-eslint/parser": "^8.28.0", "eslint": "^9.34.0", "eslint-config-prettier": "^10.1.1", - "eslint-plugin-prettier": "^5.2.5", + "eslint-plugin-prettier": "^5.5.6", "prettier": "^3.6.2", "typescript": "^5.8.2", "typescript-eslint": "^8.28.0" diff --git a/packages/cli/package.json b/packages/cli/package.json index 18023cac..232f9525 100644 --- a/packages/cli/package.json +++ b/packages/cli/package.json @@ -37,12 +37,12 @@ "@typescript-eslint/eslint-plugin": "^8.28.0", "@typescript-eslint/parser": "^8.28.0", "eslint": "^9.34.0", - "eslint-plugin-prettier": "^5.2.5", + "eslint-plugin-prettier": "^5.5.6", "prettier": "^3.6.2", "tsup": "^8.5.0", "typescript": "^5.8.2", "typescript-eslint": "^8.28.0", - "vitest": "^4.0.13" + "vitest": "^4.1.9" }, "keywords": [ "context7", diff --git a/packages/mcp/package.json b/packages/mcp/package.json index 37044f11..112c4d58 100644 --- a/packages/mcp/package.json +++ b/packages/mcp/package.json @@ -50,13 +50,13 @@ "@upstash/redis": "^1.38.0", "commander": "^13.1.0", "express": "^5.1.0", - "jose": "^6.1.3", + "jose": "^6.2.3", "undici": "^6.26.0", "zod": "^4.4.3" }, "devDependencies": { "@types/node": "^25.0.3", "typescript": "^5.8.2", - "vitest": "^4.0.13" + "vitest": "^4.1.9" } } diff --git a/packages/pi/package.json b/packages/pi/package.json index d9dd189b..91dae485 100644 --- a/packages/pi/package.json +++ b/packages/pi/package.json @@ -64,6 +64,6 @@ "dotenv": "^17.4.2", "typebox": "^1.1.38", "typescript": "^5.9.3", - "vitest": "^4.0.14" + "vitest": "^4.1.9" } } diff --git a/packages/sdk/package.json b/packages/sdk/package.json index d5703037..5b6cdbd9 100644 --- a/packages/sdk/package.json +++ b/packages/sdk/package.json @@ -51,6 +51,6 @@ "dotenv": "^17.4.2", "tsup": "^8.5.1", "typescript": "^5.8.2", - "vitest": "^4.0.13" + "vitest": "^4.1.9" } } diff --git a/packages/tools-ai-sdk/package.json b/packages/tools-ai-sdk/package.json index 7a21c6ea..125d62a8 100644 --- a/packages/tools-ai-sdk/package.json +++ b/packages/tools-ai-sdk/package.json @@ -42,7 +42,7 @@ "dotenv": "^17.4.2", "tsup": "^8.5.1", "typescript": "^5.8.2", - "vitest": "^4.0.13" + "vitest": "^4.1.9" }, "repository": { "type": "git", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index bc119bb8..4845a553 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -34,8 +34,8 @@ importers: specifier: ^10.1.1 version: 10.1.8(eslint@9.39.4(jiti@2.7.0)) eslint-plugin-prettier: - specifier: ^5.2.5 - version: 5.5.4(eslint-config-prettier@10.1.8(eslint@9.39.4(jiti@2.7.0)))(eslint@9.39.4(jiti@2.7.0))(prettier@3.6.2) + specifier: ^5.5.6 + version: 5.5.6(eslint-config-prettier@10.1.8(eslint@9.39.4(jiti@2.7.0)))(eslint@9.39.4(jiti@2.7.0))(prettier@3.6.2) prettier: specifier: ^3.6.2 version: 3.6.2 @@ -89,8 +89,8 @@ importers: specifier: ^9.34.0 version: 9.39.4(jiti@2.7.0) eslint-plugin-prettier: - specifier: ^5.2.5 - version: 5.5.4(eslint-config-prettier@10.1.8(eslint@9.39.4(jiti@2.7.0)))(eslint@9.39.4(jiti@2.7.0))(prettier@3.6.2) + specifier: ^5.5.6 + version: 5.5.6(eslint-config-prettier@10.1.8(eslint@9.39.4(jiti@2.7.0)))(eslint@9.39.4(jiti@2.7.0))(prettier@3.6.2) prettier: specifier: ^3.6.2 version: 3.6.2 @@ -104,8 +104,8 @@ importers: specifier: ^8.28.0 version: 8.47.0(eslint@9.39.4(jiti@2.7.0))(typescript@5.9.3) vitest: - specifier: ^4.0.13 - version: 4.0.14(@opentelemetry/api@1.9.0)(@types/node@22.19.7)(jiti@2.7.0)(tsx@4.21.0)(yaml@2.9.0) + specifier: ^4.1.9 + version: 4.1.9(@opentelemetry/api@1.9.0)(@types/node@22.19.7)(vite@7.2.4(@types/node@22.19.7)(jiti@2.7.0)(tsx@4.21.0)(yaml@2.9.0)) packages/mcp: dependencies: @@ -125,8 +125,8 @@ importers: specifier: ^5.1.0 version: 5.1.0 jose: - specifier: ^6.1.3 - version: 6.1.3 + specifier: ^6.2.3 + version: 6.2.3 undici: specifier: ^6.26.0 version: 6.26.0 @@ -141,8 +141,8 @@ importers: specifier: ^5.8.2 version: 5.9.3 vitest: - specifier: ^4.0.13 - version: 4.0.14(@opentelemetry/api@1.9.0)(@types/node@25.0.3)(jiti@2.7.0)(tsx@4.21.0)(yaml@2.9.0) + specifier: ^4.1.9 + version: 4.1.9(@opentelemetry/api@1.9.0)(@types/node@25.0.3)(vite@7.2.4(@types/node@25.0.3)(jiti@2.7.0)(tsx@4.21.0)(yaml@2.9.0)) packages/pi: devDependencies: @@ -162,8 +162,8 @@ importers: specifier: ^5.9.3 version: 5.9.3 vitest: - specifier: ^4.0.14 - version: 4.0.14(@opentelemetry/api@1.9.0)(@types/node@25.9.1)(jiti@2.7.0)(tsx@4.21.0)(yaml@2.9.0) + specifier: ^4.1.9 + version: 4.1.9(@opentelemetry/api@1.9.0)(@types/node@25.9.1)(vite@7.2.4(@types/node@25.9.1)(jiti@2.7.0)(tsx@4.21.0)(yaml@2.9.0)) packages/sdk: devDependencies: @@ -180,8 +180,8 @@ importers: specifier: ^5.8.2 version: 5.9.3 vitest: - specifier: ^4.0.13 - version: 4.0.14(@opentelemetry/api@1.9.0)(@types/node@25.0.3)(jiti@2.7.0)(tsx@4.21.0)(yaml@2.9.0) + specifier: ^4.1.9 + version: 4.1.9(@opentelemetry/api@1.9.0)(@types/node@25.0.3)(vite@7.2.4(@types/node@25.0.3)(jiti@2.7.0)(tsx@4.21.0)(yaml@2.9.0)) packages/tools-ai-sdk: devDependencies: @@ -207,8 +207,8 @@ importers: specifier: ^5.8.2 version: 5.9.3 vitest: - specifier: ^4.0.13 - version: 4.0.14(@opentelemetry/api@1.9.0)(@types/node@25.0.3)(jiti@2.7.0)(tsx@4.21.0)(yaml@2.9.0) + specifier: ^4.1.9 + version: 4.1.9(@opentelemetry/api@1.9.0)(@types/node@25.0.3)(vite@7.2.4(@types/node@25.0.3)(jiti@2.7.0)(tsx@4.21.0)(yaml@2.9.0)) zod: specifier: ^4.4.3 version: 4.4.3 @@ -1077,9 +1077,9 @@ packages: resolution: {integrity: sha512-3giAOQvZiH5F9bMlMiv8+GSPMeqg0dbaeo58/0SlA9sxSqZhnUtxzX9/2FzyhS9sWQf5S0GJE0AKBrFqjpeYcg==} engines: {node: '>=8.0.0'} - '@pkgr/core@0.2.9': - resolution: {integrity: sha512-QNqXyfVS2wm9hweSYD2O7F0G06uurj9kZ96TRQE5Y9hU7+tgdZwIkbAKc5Ocy1HxEY2kuDQa6cQ1WRs/O5LFKA==} - engines: {node: ^12.20.0 || ^14.18.0 || >=16.0.0} + '@pkgr/core@0.3.6': + resolution: {integrity: sha512-SEeaJLb3qBNF/OaXnaR1NmmBbFYk1zC0ZH/52fATcRPLFg/p791YrcyFFy44Bo9sLaGuSuLp5Q6axbb/O+v/RA==} + engines: {node: ^14.18.0 || >=16.0.0} '@protobufjs/aspromise@1.1.2': resolution: {integrity: sha512-j+gKExEuLmKwvz3OgROXtrJ2UG2x8Ch2YZUxahh+s1F2HZ+wAceUNLkvy6zKCPVRkU++ZWQrdxsUeQXmcg4uoQ==} @@ -1431,34 +1431,34 @@ packages: resolution: {integrity: sha512-Fw28YZpRnA3cAHHDlkt7xQHiJ0fcL+NRcIqsocZQUSmbzeIKRpwttJjik5ZGanXP+vlA4SbTg+AbA3bP363l+w==} engines: {node: '>= 20'} - '@vitest/expect@4.0.14': - resolution: {integrity: sha512-RHk63V3zvRiYOWAV0rGEBRO820ce17hz7cI2kDmEdfQsBjT2luEKB5tCOc91u1oSQoUOZkSv3ZyzkdkSLD7lKw==} + '@vitest/expect@4.1.9': + resolution: {integrity: sha512-vl/rYsUKcBr3SnQn166+XR5ZQcgMx3DQhFWdfli/cWpLnLUmbxZvyrJZotLFUryib+LtArYMSTJ5RbQ57ZqrlA==} - '@vitest/mocker@4.0.14': - resolution: {integrity: sha512-RzS5NujlCzeRPF1MK7MXLiEFpkIXeMdQ+rN3Kk3tDI9j0mtbr7Nmuq67tpkOJQpgyClbOltCXMjLZicJHsH5Cg==} + '@vitest/mocker@4.1.9': + resolution: {integrity: sha512-EVkXzBjrPGM+cK8/ANWgBrkUCfJfb38/EfTSO8h7pWvKkyPkpWxvR7BkD2MyItMF62C97zAEoqdpUixwR/e+Rw==} peerDependencies: msw: ^2.4.9 - vite: ^6.0.0 || ^7.0.0-0 + vite: ^6.0.0 || ^7.0.0 || ^8.0.0 peerDependenciesMeta: msw: optional: true vite: optional: true - '@vitest/pretty-format@4.0.14': - resolution: {integrity: sha512-SOYPgujB6TITcJxgd3wmsLl+wZv+fy3av2PpiPpsWPZ6J1ySUYfScfpIt2Yv56ShJXR2MOA6q2KjKHN4EpdyRQ==} + '@vitest/pretty-format@4.1.9': + resolution: {integrity: sha512-s0iufns3iIFitdgm+YR7g1whCAaGtXz459VS9/PqyKDEEFgYIhsHOQmXgIgDuYCt7DeQmiZT0Qe2OA2p4ZPu5A==} - '@vitest/runner@4.0.14': - resolution: {integrity: sha512-BsAIk3FAqxICqREbX8SetIteT8PiaUL/tgJjmhxJhCsigmzzH8xeadtp7LRnTpCVzvf0ib9BgAfKJHuhNllKLw==} + '@vitest/runner@4.1.9': + resolution: {integrity: sha512-KXLMDtc7oe70+3mJfGrPUWPesswH+3sTxAMAMl8DG7I8IUQT4XW718dY5ID3vPUcmlu27CcKfY4P3h3I29SLJg==} - '@vitest/snapshot@4.0.14': - resolution: {integrity: sha512-aQVBfT1PMzDSA16Y3Fp45a0q8nKexx6N5Amw3MX55BeTeZpoC08fGqEZqVmPcqN0ueZsuUQ9rriPMhZ3Mu19Ag==} + '@vitest/snapshot@4.1.9': + resolution: {integrity: sha512-Jc7RKGNBo8Z28WYIm0Niej4xdSPByRf6mU58VpHQkd6Zh05rlnA+twjbK5HyeIGHxrzsc3mJgS43uM0CZKzaIA==} - '@vitest/spy@4.0.14': - resolution: {integrity: sha512-JmAZT1UtZooO0tpY3GRyiC/8W7dCs05UOq9rfsUUgEZEdq+DuHLmWhPsrTt0TiW7WYeL/hXpaE07AZ2RCk44hg==} + '@vitest/spy@4.1.9': + resolution: {integrity: sha512-fHpsS6mIi+PiEW+vcRVOMkX1oSaPKne3VOclSFICPcGOmfKgXPU5iAah+wcNcj2xPrCCmfq99IDGf+EojhhvhA==} - '@vitest/utils@4.0.14': - resolution: {integrity: sha512-hLqXZKAWNg8pI+SQXyXxWCTOpA3MvsqcbVeNgSi8x/CSN2wi26dSzn1wrOhmCmFjEvN9p8/kLFRHa6PI8jHazw==} + '@vitest/utils@4.1.9': + resolution: {integrity: sha512-A51o8ymO5PpqlWNnBP9ZHPXDIpuMtTLlGSjN7la4US+LJzoUMyhwjA5QXlm39JexgwHKW4Xjs8Z2d3dLCXOeuA==} accepts@2.0.0: resolution: {integrity: sha512-5cvg6CtKwfgdmVqY1WIiXKc3Q1bkRqGLi+2W/6ao+6Y7gu/RCwRuAhGEzh5B4KlszSuTLgZYuqFqo5bImjNKng==} @@ -1629,8 +1629,8 @@ packages: resolution: {integrity: sha512-8WB3Jcas3swSvjIeA2yvCJ+Miyz5l1ZmB6HFb9R1317dt9LCQoswg/BGrmAmkWVEszSrrg4RwmO46qIm2OEnSA==} engines: {node: '>=16'} - chai@6.2.1: - resolution: {integrity: sha512-p4Z49OGG5W/WBCPSS/dH3jQ73kD6tiMmUM+bckNK6Jr5JHMG3k9bg/BvKR8lKmtVBKmOiuVaV2ws8s9oSbwysg==} + chai@6.2.2: + resolution: {integrity: sha512-NUPRluOfOiTKBKvWPtSD4PhFvWCqOi0BGStNWs57X9js7XGTprSmFoz5F0tWhR4WPjNeR9jXqdC7/UpSJTnlRg==} engines: {node: '>=18'} chalk@4.1.2: @@ -1709,6 +1709,9 @@ packages: resolution: {integrity: sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==} engines: {node: '>= 0.6'} + convert-source-map@2.0.0: + resolution: {integrity: sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==} + cookie-signature@1.2.2: resolution: {integrity: sha512-D76uU73ulSXrD1UXF4KE2TMxVVwhsnCgfAyTg9k8P6KGZjlXKrOLe4dJQKI3Bxi5wjesZoFXJWElNWBjPZMbhg==} engines: {node: '>=6.6.0'} @@ -1805,8 +1808,8 @@ packages: resolution: {integrity: sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==} engines: {node: '>= 0.4'} - es-module-lexer@1.7.0: - resolution: {integrity: sha512-jEQoCwk8hyb2AZziIOLhDqpm5+2ww5uIE6lkO/6jcOCusfk6LhMHpXXfBLXTZ7Ydyt0j4VoUQv6uGNYbdW+kBA==} + es-module-lexer@2.3.0: + resolution: {integrity: sha512-KLdwQm2NvGLDkQDCGvmiQrhkd0JbMzXthwQAUgWjQuQdBLFa3eiBP5arXZyA+f8x+x7OXgud6bq2rxjGtHV2tw==} es-object-atoms@1.1.1: resolution: {integrity: sha512-FGgH2h8zKNim9ljj7dankFPcICIK9Cp5bm+c2gQSYePhpaG5+esrLODihIorn+Pe6FGJzWhXQotPv73jTaldXA==} @@ -1835,8 +1838,8 @@ packages: peerDependencies: eslint: '>=7.0.0' - eslint-plugin-prettier@5.5.4: - resolution: {integrity: sha512-swNtI95SToIz05YINMA6Ox5R057IMAmWZ26GqPxusAp1TZzj+IdY9tXNWWD3vkF/wEqydCONcwjTFpxybBqZsg==} + eslint-plugin-prettier@5.5.6: + resolution: {integrity: sha512-ifetmTcxWfz+4qRW3pH/ujdTq2jQIj59AxJMIN26K5avYgU8dxycUETQonWiW+wPrYXA0j3Try0l1CnwVQtDqQ==} engines: {node: ^14.18.0 || >=16.0.0} peerDependencies: '@types/eslint': '>=8.0.0' @@ -1911,8 +1914,8 @@ packages: resolution: {integrity: sha512-CRT1WTyuQoD771GW56XEZFQ/ZoSfWid1alKGDYMmkt2yl8UXrVR4pspqWNEcqKvVIzg6PAltWjxcSSPrboA4iA==} engines: {node: '>=18.0.0'} - expect-type@1.2.2: - resolution: {integrity: sha512-JhFGDVJ7tmDJItKhYgJCGLOWjuK9vPxiXoUFLwLDc99NlmklilbiQJwoctZtt13+xMw91MCk/REan6MWHqDjyA==} + expect-type@1.4.0: + resolution: {integrity: sha512-KfYbmpRm0VbLjEvVa9yGwCi9GI34xvi7A/HXYWQO65CSD2u3MczUJSuwXKFIxlGsgBQizV9q5J9NHj4VG0n+pA==} engines: {node: '>=12.0.0'} express-rate-limit@8.5.2: @@ -2235,8 +2238,8 @@ packages: resolution: {integrity: sha512-AC/7JofJvZGrrneWNaEnJeOLUx+JlGt7tNa0wZiRPT4MY1wmfKjt2+6O2p2uz2+skll8OZZmJMNqeke7kKbNgQ==} hasBin: true - jose@6.1.3: - resolution: {integrity: sha512-0TpaTfihd4QMNwrz/ob2Bp7X04yuxJkjRGi4aKmOqwhov54i6u79oCv7T+C7lo70MKH6BesI3vscD1yb/yzKXQ==} + jose@6.2.3: + resolution: {integrity: sha512-YYVDInQKFJfR/xa3ojUTl8c2KoTwiL1R5Wg9YCydwH0x0B9grbzlg5HC7mMjCtUJjbQ/YnGEZIhI5tCgfTb4Hw==} joycon@3.1.1: resolution: {integrity: sha512-34wB/Y7MW7bzjKRjUKTa46I2Z7eV62Rkhva+KkopW7Qvv/OSWBqvkSY7vusOPrNuZcUG3tApvdVgNB8POj3SPw==} @@ -2593,8 +2596,8 @@ packages: resolution: {integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==} engines: {node: '>= 0.8.0'} - prettier-linter-helpers@1.0.0: - resolution: {integrity: sha512-GbK2cP9nraSSUF9N2XwUwqfzlAFlMNYYl+ShE/V+H8a9uNl/oUqB1w2EL54Jh0OlyRSd8RfWYJ3coVS4TROP2w==} + prettier-linter-helpers@1.0.1: + resolution: {integrity: sha512-SxToR7P8Y2lWmv/kTzVLC1t/GDI2WGjMwNhLLE9qtH8Q13C+aEmuRlzDst4Up4s0Wc8sF2M+J57iB3cMLqftfg==} engines: {node: '>=6.0.0'} prettier@2.8.8: @@ -2785,8 +2788,8 @@ packages: resolution: {integrity: sha512-DvEy55V3DB7uknRo+4iOGT5fP1slR8wQohVdknigZPMpMstaKJQWhwiYBACJE3Ul2pTnATihhBYnRhZQHGBiRw==} engines: {node: '>= 0.8'} - std-env@3.10.0: - resolution: {integrity: sha512-5GS12FdOZNliM5mAOxFRg7Ir0pWz8MdpYm6AY6VPkGpbA7ZzmbzNcBJQ0GPvvyWgcY7QAhCgf9Uy89I03faLkg==} + std-env@4.1.0: + resolution: {integrity: sha512-Rq7ybcX2RuC55r9oaPVEW7/xu3tj8u4GeBYHBWCychFtzMIr86A7e3PPEBPT37sHStKX3+TiX/Fr/ACmJLVlLQ==} stdin-discarder@0.3.2: resolution: {integrity: sha512-eCPu1qRxPVkl5605OTWF8Wz40b4Mf45NY5LQmVPQ599knfs5QhASUm9GbJ5BDMDOXgrnh0wyEdvzmL//YMlw0A==} @@ -2832,8 +2835,8 @@ packages: resolution: {integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==} engines: {node: '>=8'} - synckit@0.11.11: - resolution: {integrity: sha512-MeQTA1r0litLUf0Rp/iisCaL8761lKAZHaimlbGK4j0HysC4PLfqygQj9srcs0m2RdtDYnF8UuYyKpbjHYp7Jw==} + synckit@0.11.13: + resolution: {integrity: sha512-eNRKgb3z66Yp3D2CixVujOUvXLFUTij/zVnV8KRyvFdQwpz7I5DS8UfRkTeLzb64u+dkzDSdelE24izu+zSSUg==} engines: {node: ^14.18.0 || >=16.0.0} term-size@2.2.1: @@ -2853,12 +2856,16 @@ packages: tinyexec@0.3.2: resolution: {integrity: sha512-KQQR9yN7R5+OSwaK0XQoj22pwHoTlgYqmUscPYoknOoWCWfj/5/ABTMRi69FrKU5ffPVh5QcFikpWJI/P1ocHA==} + tinyexec@1.2.4: + resolution: {integrity: sha512-SHf/r48b7vOrjve9PxJo3MN5v5yuyjHvdUcrQffT3WXMUfnGmHDVbC4k3sHJaJTgZCwpUplIaAo5ANtMyp3YHg==} + engines: {node: '>=18'} + tinyglobby@0.2.15: resolution: {integrity: sha512-j2Zq4NyQYG5XMST4cbs02Ak8iJUdxRM0XI5QyxXuZOzKOINmWurp3smXu3y5wDcJrptwpSjgXHzIQxR0omXljQ==} engines: {node: '>=12.0.0'} - tinyrainbow@3.0.3: - resolution: {integrity: sha512-PSkbLUoxOFRzJYjjxHJt9xro7D+iilgMX/C9lawzVuYiIdcihh9DXmVibBe8lmcFrRi/VzlPjBxbN7rH24q8/Q==} + tinyrainbow@3.1.0: + resolution: {integrity: sha512-Bf+ILmBgretUrdJxzXM0SgXLZ3XfiaUuOj/IKQHuTXip+05Xn+uyEYdVg0kYDipTBcLrCVyUzAPz7QmArb0mmw==} engines: {node: '>=14.0.0'} to-regex-range@5.0.1: @@ -3017,20 +3024,23 @@ packages: yaml: optional: true - vitest@4.0.14: - resolution: {integrity: sha512-d9B2J9Cm9dN9+6nxMnnNJKJCtcyKfnHj15N6YNJfaFHRLua/d3sRKU9RuKmO9mB0XdFtUizlxfz/VPbd3OxGhw==} + vitest@4.1.9: + resolution: {integrity: sha512-nE3/LEyc0z87uHYLZebqCUOaJr2hdtuPp7BQ4BosVFnfltxgAvMG08NyrSGlPpOUWvR27c5flSmYFTNr78L9GQ==} engines: {node: ^20.0.0 || ^22.0.0 || >=24.0.0} hasBin: true peerDependencies: '@edge-runtime/vm': '*' '@opentelemetry/api': ^1.9.0 '@types/node': ^20.0.0 || ^22.0.0 || >=24.0.0 - '@vitest/browser-playwright': 4.0.14 - '@vitest/browser-preview': 4.0.14 - '@vitest/browser-webdriverio': 4.0.14 - '@vitest/ui': 4.0.14 + '@vitest/browser-playwright': 4.1.9 + '@vitest/browser-preview': 4.1.9 + '@vitest/browser-webdriverio': 4.1.9 + '@vitest/coverage-istanbul': 4.1.9 + '@vitest/coverage-v8': 4.1.9 + '@vitest/ui': 4.1.9 happy-dom: '*' jsdom: '*' + vite: ^6.0.0 || ^7.0.0 || ^8.0.0 peerDependenciesMeta: '@edge-runtime/vm': optional: true @@ -3044,6 +3054,10 @@ packages: optional: true '@vitest/browser-webdriverio': optional: true + '@vitest/coverage-istanbul': + optional: true + '@vitest/coverage-v8': + optional: true '@vitest/ui': optional: true happy-dom: @@ -4080,7 +4094,7 @@ snapshots: express: 5.2.1 express-rate-limit: 8.5.2(express@5.2.1) hono: 4.12.23 - jose: 6.1.3 + jose: 6.2.3 json-schema-typed: 8.0.2 pkce-challenge: 5.0.0 raw-body: 3.0.2 @@ -4105,7 +4119,7 @@ snapshots: '@opentelemetry/api@1.9.0': {} - '@pkgr/core@0.2.9': {} + '@pkgr/core@0.3.6': {} '@protobufjs/aspromise@1.1.2': {} @@ -4455,60 +4469,62 @@ snapshots: '@vercel/oidc@3.1.0': {} - '@vitest/expect@4.0.14': + '@vitest/expect@4.1.9': dependencies: '@standard-schema/spec': 1.1.0 '@types/chai': 5.2.3 - '@vitest/spy': 4.0.14 - '@vitest/utils': 4.0.14 - chai: 6.2.1 - tinyrainbow: 3.0.3 + '@vitest/spy': 4.1.9 + '@vitest/utils': 4.1.9 + chai: 6.2.2 + tinyrainbow: 3.1.0 - '@vitest/mocker@4.0.14(vite@7.2.4(@types/node@22.19.7)(jiti@2.7.0)(tsx@4.21.0)(yaml@2.9.0))': + '@vitest/mocker@4.1.9(vite@7.2.4(@types/node@22.19.7)(jiti@2.7.0)(tsx@4.21.0)(yaml@2.9.0))': dependencies: - '@vitest/spy': 4.0.14 + '@vitest/spy': 4.1.9 estree-walker: 3.0.3 magic-string: 0.30.21 optionalDependencies: vite: 7.2.4(@types/node@22.19.7)(jiti@2.7.0)(tsx@4.21.0)(yaml@2.9.0) - '@vitest/mocker@4.0.14(vite@7.2.4(@types/node@25.0.3)(jiti@2.7.0)(tsx@4.21.0)(yaml@2.9.0))': + '@vitest/mocker@4.1.9(vite@7.2.4(@types/node@25.0.3)(jiti@2.7.0)(tsx@4.21.0)(yaml@2.9.0))': dependencies: - '@vitest/spy': 4.0.14 + '@vitest/spy': 4.1.9 estree-walker: 3.0.3 magic-string: 0.30.21 optionalDependencies: vite: 7.2.4(@types/node@25.0.3)(jiti@2.7.0)(tsx@4.21.0)(yaml@2.9.0) - '@vitest/mocker@4.0.14(vite@7.2.4(@types/node@25.9.1)(jiti@2.7.0)(tsx@4.21.0)(yaml@2.9.0))': + '@vitest/mocker@4.1.9(vite@7.2.4(@types/node@25.9.1)(jiti@2.7.0)(tsx@4.21.0)(yaml@2.9.0))': dependencies: - '@vitest/spy': 4.0.14 + '@vitest/spy': 4.1.9 estree-walker: 3.0.3 magic-string: 0.30.21 optionalDependencies: vite: 7.2.4(@types/node@25.9.1)(jiti@2.7.0)(tsx@4.21.0)(yaml@2.9.0) - '@vitest/pretty-format@4.0.14': + '@vitest/pretty-format@4.1.9': dependencies: - tinyrainbow: 3.0.3 + tinyrainbow: 3.1.0 - '@vitest/runner@4.0.14': + '@vitest/runner@4.1.9': dependencies: - '@vitest/utils': 4.0.14 + '@vitest/utils': 4.1.9 pathe: 2.0.3 - '@vitest/snapshot@4.0.14': + '@vitest/snapshot@4.1.9': dependencies: - '@vitest/pretty-format': 4.0.14 + '@vitest/pretty-format': 4.1.9 + '@vitest/utils': 4.1.9 magic-string: 0.30.21 pathe: 2.0.3 - '@vitest/spy@4.0.14': {} + '@vitest/spy@4.1.9': {} - '@vitest/utils@4.0.14': + '@vitest/utils@4.1.9': dependencies: - '@vitest/pretty-format': 4.0.14 - tinyrainbow: 3.0.3 + '@vitest/pretty-format': 4.1.9 + convert-source-map: 2.0.0 + tinyrainbow: 3.1.0 accepts@2.0.0: dependencies: @@ -4680,7 +4696,7 @@ snapshots: camelcase@8.0.0: {} - chai@6.2.1: {} + chai@6.2.2: {} chalk@4.1.2: dependencies: @@ -4731,6 +4747,8 @@ snapshots: content-type@1.0.5: {} + convert-source-map@2.0.0: {} + cookie-signature@1.2.2: {} cookie@0.7.2: {} @@ -4802,7 +4820,7 @@ snapshots: es-errors@1.3.0: {} - es-module-lexer@1.7.0: {} + es-module-lexer@2.3.0: {} es-object-atoms@1.1.1: dependencies: @@ -4874,12 +4892,12 @@ snapshots: dependencies: eslint: 9.39.4(jiti@2.7.0) - eslint-plugin-prettier@5.5.4(eslint-config-prettier@10.1.8(eslint@9.39.4(jiti@2.7.0)))(eslint@9.39.4(jiti@2.7.0))(prettier@3.6.2): + eslint-plugin-prettier@5.5.6(eslint-config-prettier@10.1.8(eslint@9.39.4(jiti@2.7.0)))(eslint@9.39.4(jiti@2.7.0))(prettier@3.6.2): dependencies: eslint: 9.39.4(jiti@2.7.0) prettier: 3.6.2 - prettier-linter-helpers: 1.0.0 - synckit: 0.11.11 + prettier-linter-helpers: 1.0.1 + synckit: 0.11.13 optionalDependencies: eslint-config-prettier: 10.1.8(eslint@9.39.4(jiti@2.7.0)) @@ -4965,7 +4983,7 @@ snapshots: dependencies: eventsource-parser: 3.0.6 - expect-type@1.2.2: {} + expect-type@1.4.0: {} express-rate-limit@8.5.2(express@5.2.1): dependencies: @@ -5345,7 +5363,7 @@ snapshots: jiti@2.7.0: {} - jose@6.1.3: {} + jose@6.2.3: {} joycon@3.1.1: {} @@ -5649,7 +5667,7 @@ snapshots: prelude-ls@1.2.1: {} - prettier-linter-helpers@1.0.0: + prettier-linter-helpers@1.0.1: dependencies: fast-diff: 1.3.0 @@ -5871,7 +5889,7 @@ snapshots: statuses@2.0.2: {} - std-env@3.10.0: {} + std-env@4.1.0: {} stdin-discarder@0.3.2: {} @@ -5920,9 +5938,9 @@ snapshots: dependencies: has-flag: 4.0.0 - synckit@0.11.11: + synckit@0.11.13: dependencies: - '@pkgr/core': 0.2.9 + '@pkgr/core': 0.3.6 term-size@2.2.1: {} @@ -5938,12 +5956,14 @@ snapshots: tinyexec@0.3.2: {} + tinyexec@1.2.4: {} + tinyglobby@0.2.15: dependencies: fdir: 6.5.0(picomatch@4.0.3) picomatch: 4.0.3 - tinyrainbow@3.0.3: {} + tinyrainbow@3.1.0: {} to-regex-range@5.0.1: dependencies: @@ -6095,119 +6115,89 @@ snapshots: tsx: 4.21.0 yaml: 2.9.0 - vitest@4.0.14(@opentelemetry/api@1.9.0)(@types/node@22.19.7)(jiti@2.7.0)(tsx@4.21.0)(yaml@2.9.0): - dependencies: - '@vitest/expect': 4.0.14 - '@vitest/mocker': 4.0.14(vite@7.2.4(@types/node@22.19.7)(jiti@2.7.0)(tsx@4.21.0)(yaml@2.9.0)) - '@vitest/pretty-format': 4.0.14 - '@vitest/runner': 4.0.14 - '@vitest/snapshot': 4.0.14 - '@vitest/spy': 4.0.14 - '@vitest/utils': 4.0.14 - es-module-lexer: 1.7.0 - expect-type: 1.2.2 + vitest@4.1.9(@opentelemetry/api@1.9.0)(@types/node@22.19.7)(vite@7.2.4(@types/node@22.19.7)(jiti@2.7.0)(tsx@4.21.0)(yaml@2.9.0)): + dependencies: + '@vitest/expect': 4.1.9 + '@vitest/mocker': 4.1.9(vite@7.2.4(@types/node@22.19.7)(jiti@2.7.0)(tsx@4.21.0)(yaml@2.9.0)) + '@vitest/pretty-format': 4.1.9 + '@vitest/runner': 4.1.9 + '@vitest/snapshot': 4.1.9 + '@vitest/spy': 4.1.9 + '@vitest/utils': 4.1.9 + es-module-lexer: 2.3.0 + expect-type: 1.4.0 magic-string: 0.30.21 obug: 2.1.1 pathe: 2.0.3 picomatch: 4.0.3 - std-env: 3.10.0 + std-env: 4.1.0 tinybench: 2.9.0 - tinyexec: 0.3.2 + tinyexec: 1.2.4 tinyglobby: 0.2.15 - tinyrainbow: 3.0.3 + tinyrainbow: 3.1.0 vite: 7.2.4(@types/node@22.19.7)(jiti@2.7.0)(tsx@4.21.0)(yaml@2.9.0) why-is-node-running: 2.3.0 optionalDependencies: '@opentelemetry/api': 1.9.0 '@types/node': 22.19.7 transitivePeerDependencies: - - jiti - - less - - lightningcss - msw - - sass - - sass-embedded - - stylus - - sugarss - - terser - - tsx - - yaml - vitest@4.0.14(@opentelemetry/api@1.9.0)(@types/node@25.0.3)(jiti@2.7.0)(tsx@4.21.0)(yaml@2.9.0): - dependencies: - '@vitest/expect': 4.0.14 - '@vitest/mocker': 4.0.14(vite@7.2.4(@types/node@25.0.3)(jiti@2.7.0)(tsx@4.21.0)(yaml@2.9.0)) - '@vitest/pretty-format': 4.0.14 - '@vitest/runner': 4.0.14 - '@vitest/snapshot': 4.0.14 - '@vitest/spy': 4.0.14 - '@vitest/utils': 4.0.14 - es-module-lexer: 1.7.0 - expect-type: 1.2.2 + vitest@4.1.9(@opentelemetry/api@1.9.0)(@types/node@25.0.3)(vite@7.2.4(@types/node@25.0.3)(jiti@2.7.0)(tsx@4.21.0)(yaml@2.9.0)): + dependencies: + '@vitest/expect': 4.1.9 + '@vitest/mocker': 4.1.9(vite@7.2.4(@types/node@25.0.3)(jiti@2.7.0)(tsx@4.21.0)(yaml@2.9.0)) + '@vitest/pretty-format': 4.1.9 + '@vitest/runner': 4.1.9 + '@vitest/snapshot': 4.1.9 + '@vitest/spy': 4.1.9 + '@vitest/utils': 4.1.9 + es-module-lexer: 2.3.0 + expect-type: 1.4.0 magic-string: 0.30.21 obug: 2.1.1 pathe: 2.0.3 picomatch: 4.0.3 - std-env: 3.10.0 + std-env: 4.1.0 tinybench: 2.9.0 - tinyexec: 0.3.2 + tinyexec: 1.2.4 tinyglobby: 0.2.15 - tinyrainbow: 3.0.3 + tinyrainbow: 3.1.0 vite: 7.2.4(@types/node@25.0.3)(jiti@2.7.0)(tsx@4.21.0)(yaml@2.9.0) why-is-node-running: 2.3.0 optionalDependencies: '@opentelemetry/api': 1.9.0 '@types/node': 25.0.3 transitivePeerDependencies: - - jiti - - less - - lightningcss - msw - - sass - - sass-embedded - - stylus - - sugarss - - terser - - tsx - - yaml - vitest@4.0.14(@opentelemetry/api@1.9.0)(@types/node@25.9.1)(jiti@2.7.0)(tsx@4.21.0)(yaml@2.9.0): - dependencies: - '@vitest/expect': 4.0.14 - '@vitest/mocker': 4.0.14(vite@7.2.4(@types/node@25.9.1)(jiti@2.7.0)(tsx@4.21.0)(yaml@2.9.0)) - '@vitest/pretty-format': 4.0.14 - '@vitest/runner': 4.0.14 - '@vitest/snapshot': 4.0.14 - '@vitest/spy': 4.0.14 - '@vitest/utils': 4.0.14 - es-module-lexer: 1.7.0 - expect-type: 1.2.2 + vitest@4.1.9(@opentelemetry/api@1.9.0)(@types/node@25.9.1)(vite@7.2.4(@types/node@25.9.1)(jiti@2.7.0)(tsx@4.21.0)(yaml@2.9.0)): + dependencies: + '@vitest/expect': 4.1.9 + '@vitest/mocker': 4.1.9(vite@7.2.4(@types/node@25.9.1)(jiti@2.7.0)(tsx@4.21.0)(yaml@2.9.0)) + '@vitest/pretty-format': 4.1.9 + '@vitest/runner': 4.1.9 + '@vitest/snapshot': 4.1.9 + '@vitest/spy': 4.1.9 + '@vitest/utils': 4.1.9 + es-module-lexer: 2.3.0 + expect-type: 1.4.0 magic-string: 0.30.21 obug: 2.1.1 pathe: 2.0.3 picomatch: 4.0.3 - std-env: 3.10.0 + std-env: 4.1.0 tinybench: 2.9.0 - tinyexec: 0.3.2 + tinyexec: 1.2.4 tinyglobby: 0.2.15 - tinyrainbow: 3.0.3 + tinyrainbow: 3.1.0 vite: 7.2.4(@types/node@25.9.1)(jiti@2.7.0)(tsx@4.21.0)(yaml@2.9.0) why-is-node-running: 2.3.0 optionalDependencies: '@opentelemetry/api': 1.9.0 '@types/node': 25.9.1 transitivePeerDependencies: - - jiti - - less - - lightningcss - msw - - sass - - sass-embedded - - stylus - - sugarss - - terser - - tsx - - yaml web-streams-polyfill@3.3.3: {} From a9d7c77f5e4c93c1c875b109d6d057487f2dc437 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fahreddin=20=C3=96zcan?= <88107904+fahreddinozcan@users.noreply.github.com> Date: Fri, 10 Jul 2026 17:41:14 +0300 Subject: [PATCH 13/18] docs(enterprise): GitOps multi-source manifest + Confluence URL/whole-space (#2896) - Document the manifest 'type' field routing entries to Confluence, website, llms.txt, and OpenAPI parsers (bare entries stay git) - Add the per-type field table and the no-secrets/strict-validation notes - Confluence: document the space URL field, 'index entire space' scope, and paginated page browsing; cross-link GitOps confluence entries --- docs/enterprise/gitops.mdx | 54 +++++++++++++++------ docs/enterprise/integrations/confluence.mdx | 12 +++-- 2 files changed, 45 insertions(+), 21 deletions(-) diff --git a/docs/enterprise/gitops.mdx b/docs/enterprise/gitops.mdx index 1f91fc3d..64d147fd 100644 --- a/docs/enterprise/gitops.mdx +++ b/docs/enterprise/gitops.mdx @@ -4,7 +4,7 @@ sidebarTitle: "GitOps" description: "Manage the list of indexed repositories declaratively from a Git repo and reconcile your on-premise instance to match it" --- -GitOps lets you keep the list of repositories Context7 indexes in a Git repository, instead of adding them one by one in the dashboard. Context7 reads a manifest file from that repo and reconciles its own state to match: it indexes anything new, re-indexes anything whose settings changed, and (optionally) removes anything you have deleted from the manifest. +GitOps lets you keep the list of sources Context7 indexes in a Git repository, instead of adding them one by one in the dashboard. Alongside Git repositories, a source can be a Confluence space, a website, an llms.txt index, or an OpenAPI specification. Context7 reads a manifest file from that repo and reconciles its own state to match: it indexes anything new, re-indexes anything whose settings changed, and (optionally) removes anything you have deleted from the manifest. The point is to keep your configuration in code. After a disaster, or when standing up a second environment, you point a fresh instance at the manifest repository and the entire index rebuilds itself with no manual clicks. @@ -24,10 +24,10 @@ If you set up the GitHub App **before** GitOps was available, it is not subscrib You commit a manifest file (by default `repos.yaml`) to a Git repository. Context7 clones that repository using the same Git credentials you already configured under **Settings → Integrations** (a GitHub App or a personal access token), reads the manifest, and compares it against the repositories it currently has indexed. -For each repository in the manifest, Context7 decides what to do: +For each source in the manifest, Context7 decides what to do: - **Add** it if it is in the manifest but not yet indexed. -- **Re-index** it if its manifest entry changed, for example a different branch or new folder filters, or if its last indexing run did not finish. +- **Re-index** it if its manifest entry changed, for example a different branch, new folder filters, or a changed page limit, or if its last indexing run did not finish. - **Leave it untouched** if it already matches. Running a sync with no changes is a safe no-op. When pruning is enabled, repositories that you remove from the manifest are also deleted from the instance. Pruning only ever removes repositories that GitOps itself added; repositories you add by hand in the dashboard are never touched. @@ -38,33 +38,55 @@ GitOps is the source of truth only for the repositories listed in the manifest. ## The manifest file -The manifest is a YAML file with a list of repositories under `repos`. An optional `defaults` block applies to every entry unless an entry overrides it. +The manifest is a YAML file with a list of sources under `repos`. An optional `defaults` block applies to every entry unless an entry overrides it. + +An entry's `type` selects which parser handles it. Omit `type` and the entry is treated as a Git repository, so manifests written before multi-source support keep working unchanged. ```yaml repos.yaml defaults: indexSourceCode: false branch: "" # empty means the repository's default branch repos: + # Git repository (the default when type is omitted) - url: https://github.com/acme/payments branch: main folders: [docs] excludeFolders: [node_modules] - - url: https://github.com/acme/billing - indexSourceCode: true + + # Confluence space (uses the connection from Settings → Integrations) + - url: https://acme.atlassian.net/wiki + type: confluence + spaceKey: TEAM + + # llms.txt index + - url: https://docs.acme.com/llms.txt + type: llmstxt + + # Website crawl + - url: https://docs.acme.com/ + type: website + maxPages: 200 + + # OpenAPI specification + - url: https://petstore.swagger.io/v3/openapi.json + type: openapi ``` -Each entry accepts the same options as the **Add Repository** form in the dashboard: +Every entry needs a `url` (or `repoUrl`). The remaining fields depend on `type`: + +| `type` | Fields | +| ------ | ------ | +| `git` (default) | `branch`, `folders`, `excludeFolders`, `excludeFiles`, `indexSourceCode` — the same options as the **Add Repository** form. | +| `confluence` | `spaceKey` (required), `spaceId` (Cloud only, resolved automatically from the key when omitted), `spaceName`, `title`, `description`. The whole space is indexed. | +| `website` | `maxPages`, `maxDepth`, `excludePatterns`, `title`, `description`. | +| `llmstxt` | `maxPages`, `title`, `description`. The URL must point to an `llms.txt`, `llms-full.txt`, or `llms-small.txt` file. | +| `openapi` | `title`, `description`. | -| Field | Description | -| ----- | ----------- | -| `url` (or `repoUrl`) | The Git repository to index. Required. | -| `branch` | Branch to index. Leave blank to use the repository's default branch. | -| `folders` | Only index these folders. Omit to index the whole repository. | -| `excludeFolders` | Folders to skip. | -| `excludeFiles` | File patterns to skip, for example `["*.test.md"]`. | -| `indexSourceCode` | Whether to also generate documentation from source code. Defaults to `false`. | + +Confluence entries reuse the site URL and API token you set under **Settings → Integrations → Confluence**, so no credentials go in the manifest. Website, llms.txt, and OpenAPI sources are fetched over public HTTP and need no credentials. Configure Confluence before adding Confluence entries, or the sync reports those entries as failed. + -If the manifest cannot be parsed, the whole sync is rejected and nothing changes, so a malformed file can never partially apply or wipe your index. +The manifest is validated strictly: an unknown `type`, a field that does not belong to the entry's type (a common source of silent mistakes), or a missing required field rejects the **whole** sync. Nothing changes until the file parses cleanly, so a malformed manifest can never partially apply or wipe your index. ## Configuring in the dashboard diff --git a/docs/enterprise/integrations/confluence.mdx b/docs/enterprise/integrations/confluence.mdx index 69c974da..f8edeb9d 100644 --- a/docs/enterprise/integrations/confluence.mdx +++ b/docs/enterprise/integrations/confluence.mdx @@ -55,7 +55,7 @@ Go to **Add** and choose **Confluence**. ![The Add Libraries source picker with a Confluence tile](/images/enterprise/integrations/confluence-source.png) -Pick a space, then choose which pages to index. The page tree mirrors the space hierarchy, so selecting a parent selects its children. Give the project a title and description if you want to override the auto-detected ones, then choose **Start Parsing**. +Pick a space, then index the whole space or choose specific pages. Give the project a title and description if you want to override the auto-detected ones, then choose **Start Parsing**. ![Selecting a Confluence space and pages, with the page tree and Start Parsing button](/images/enterprise/integrations/confluence-add.png) @@ -63,10 +63,10 @@ Pick a space, then choose which pages to index. The page tree mirrors the space - Choose the space from the dropdown. Context7 lists every space the configured token can read. + Choose the space from the dropdown, or paste a space URL (for example `https://your-site.atlassian.net/wiki/spaces/TEAM`) into **Space URL** to select it directly — handy when the account can read many spaces. - - Tick individual pages, or use **Select all** to index the whole space. Use the search box to filter a large space. + + Leave **Index the entire space** on to index everything, which is the fastest path and the right choice for large spaces. Turn it off to pick individual pages: the page tree mirrors the space hierarchy, so selecting a parent selects its children. Very large spaces load their pages in batches — use **Load more pages** to fetch the rest, and the search box to filter. Context7 fetches the pages, converts them to Markdown (code blocks, tables, and callouts are preserved), and indexes them. The project appears under your libraries when it finishes. @@ -74,9 +74,11 @@ Pick a space, then choose which pages to index. The page tree mirrors the space -**Select all** indexes the whole space, so a later refresh also picks up pages added since. Selecting a specific subset pins the project to exactly those pages. +Indexing the entire space means a later refresh also picks up pages added since. Selecting a specific subset pins the project to exactly those pages. +You can also index Confluence spaces declaratively with [GitOps](/enterprise/gitops) — add a `type: confluence` entry with a `spaceKey` to your manifest, and it reuses this same connection. + ## Refresh and delete A Confluence project behaves like any other library. **Refresh** re-indexes the space using the stored selection and the current admin token, so rotating the token in Settings updates future refreshes without editing the project. **Delete** removes the project and its indexed content. From 26dcfcee92a8a9091aa1470a6b58fca54252521e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fahreddin=20=C3=96zcan?= <88107904+fahreddinozcan@users.noreply.github.com> Date: Mon, 13 Jul 2026 13:19:30 +0300 Subject: [PATCH 14/18] docs(enterprise): add on-premise changelog page (#2904) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Adds enterprise/changelog to the On-Premise nav and the changelog page (Mintlify components), backfilled for v1.0.0–v1.2.3. --- docs/docs.json | 1 + docs/enterprise/changelog.mdx | 81 +++++++++++++++++++++++++++++++++++ 2 files changed, 82 insertions(+) create mode 100644 docs/enterprise/changelog.mdx diff --git a/docs/docs.json b/docs/docs.json index 46566198..7c1f29bc 100644 --- a/docs/docs.json +++ b/docs/docs.json @@ -73,6 +73,7 @@ "group": "On-Premise", "pages": [ "enterprise/on-premise", + "enterprise/changelog", { "group": "Integrations", "pages": [ diff --git a/docs/enterprise/changelog.mdx b/docs/enterprise/changelog.mdx new file mode 100644 index 00000000..a3ac731f --- /dev/null +++ b/docs/enterprise/changelog.mdx @@ -0,0 +1,81 @@ +--- +title: "Changelog" +description: "Release notes for the Context7 On-Premise image." +--- + + + +### Added + +- Improved the relevance of responses from the MCP server and API through new reranking capabilities. +- Added support for GitOps-based routing for Confluence and other on-premise data parsers. + + + + + +### Changed + +- Improved compatibility with OpenID Connect (OIDC) providers adhering to RFC 9207. + +### Security + +- Enhanced the security of the enterprise OpenID Connect (OIDC) Single Sign-On (SSO) flow. + + + + + +### Added + +- Added a REST API for programmatic library import. + + + + + +### Added + +- Added support for ingesting content from Confluence Cloud and Data Center. +- Added full end-to-end integration with GitHub Enterprise Server. +- Added support for ingesting content from llms.txt files. + +### Fixed + +- Improved parsing robustness by preventing process hangs and cleaning up orphaned staging data. + + + + + +### Fixed + +- Fixed the path used for GitHub Apps on GitHub Enterprise Server. + + + + + +### Fixed + +- Fixed the GitHub App client to correctly target the on-premise GitHub Enterprise Server API. + + + + + +### Added + +- GitOps declarative repository management: define the repositories to index in a Git manifest (`repos.yaml`) and have Context7 reconcile them on startup, on a schedule, on manual trigger, and on GitHub push webhooks. Supports per-repo branch, folder, and file filters, plus pruning of repositories removed from the manifest. +- Generic OIDC single sign-on for the on-premise dashboard. +- Configure a GitHub Enterprise Server host from the dashboard so the GitHub App and tokens target your own server instead of github.com. + + + + + +### Added + +- Initial tracked release of the Context7 On-Premise image. + + From 0470ef166354d3ffcd8f286d131ff87e7bfc5bdb Mon Sep 17 00:00:00 2001 From: Igor Costa Date: Tue, 14 Jul 2026 01:37:39 +1200 Subject: [PATCH 15/18] docs: add Autohand Code MCP setup (#2894) Co-authored-by: enesgules --- packages/mcp/README.md | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/packages/mcp/README.md b/packages/mcp/README.md index 3c53ca53..c807e888 100644 --- a/packages/mcp/README.md +++ b/packages/mcp/README.md @@ -1366,6 +1366,25 @@ See the [Emdash repository](https://github.com/generalaction/emdash) for more in +
+Install in Autohand Code + +Use the [Autohand Code CLI](https://github.com/autohandai/code-cli/) to add the local Context7 server: + +```sh +autohand mcp add context7 npx -y @upstash/context7-mcp --api-key YOUR_API_KEY +``` + +Add `--scope project` before `context7` to save the server in the current project's `.autohand` configuration instead of your user configuration. + +For basic usage without an API key, you can connect to the remote server instead: + +```sh +autohand mcp add --transport http context7 https://mcp.context7.com/mcp +``` + +
+ ## 🔨 Available Tools Context7 MCP provides the following tools that LLMs can use: From eb7ac502f6e83692363375d3088d550afa298a60 Mon Sep 17 00:00:00 2001 From: Enes Gules <101020733+enesgules@users.noreply.github.com> Date: Mon, 13 Jul 2026 16:43:37 +0300 Subject: [PATCH 16/18] docs: add Manus to MCP clients list (#2905) --- docs/images/clients/manus/connector.png | Bin 0 -> 99162 bytes docs/images/clients/manus/custom-mcp.png | Bin 0 -> 61241 bytes docs/resources/all-clients.mdx | 32 +++++++++++++++++++++++ 3 files changed, 32 insertions(+) create mode 100644 docs/images/clients/manus/connector.png create mode 100644 docs/images/clients/manus/custom-mcp.png diff --git a/docs/images/clients/manus/connector.png b/docs/images/clients/manus/connector.png new file mode 100644 index 0000000000000000000000000000000000000000..7dba06eccf0649eac967aa800d0c338dec891653 GIT binary patch literal 99162 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
M$b7bud*%8Cx!Vvy=rJu7*vFNtS$iOJ`ZkMy5L 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 Y?(FYl^}M;i3jAky*7V1W|JVorAERC6^Z)<= literal 0 HcmV?d00001 diff --git a/docs/images/clients/manus/custom-mcp.png b/docs/images/clients/manus/custom-mcp.png new file mode 100644 index 0000000000000000000000000000000000000000..8681b10fe0ce6b5ad030579b0d0c64e46b3d4530 GIT binary patch literal 61241 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 q43=(Z{hiZC>l||I|G#f@M>3Hr + + +Manus includes a built-in Context7 connector: + +1. Navigate `Settings` > `Connectors`. +2. In the `Apps` tab, search for `Context7`. +3. Click `Context7` to enable it. + + + Context7 connector in Manus + + +Alternatively, add it as a custom MCP connection with your API key: + +1. Navigate `Settings` > `Connectors` > `Custom MCP`. +2. Fill in the configuration: + +| Field | Value | +| ------------------ | ------------------------------ | +| **Server Name** | `Context7` | +| **Transport Type** | `HTTP` | +| **Server URL** | `https://mcp.context7.com/mcp` | +| **Custom headers** | `CONTEXT7_API_KEY`: `YOUR_API_KEY` | + +3. Click `Save`. + + + Context7 custom MCP configuration in Manus + + + + Factory's droid supports MCP servers through its CLI. See [Factory MCP docs](https://docs.factory.ai/cli/configuration/mcp) for more info. From e1b47937db6a6f6d60ac6c0062ffc281a443a4f1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fahreddin=20=C3=96zcan?= <88107904+fahreddinozcan@users.noreply.github.com> Date: Fri, 17 Jul 2026 11:38:45 +0300 Subject: [PATCH 17/18] CTX7-1839: Surface the real error when a CLI OAuth request fails (#2915) --- .changeset/surface-cli-auth-errors.md | 5 + packages/cli/src/__tests__/auth-utils.test.ts | 67 ++++++++- packages/cli/src/utils/auth.ts | 127 +++++++++++++----- packages/sdk/vitest.config.ts | 2 + 4 files changed, 166 insertions(+), 35 deletions(-) create mode 100644 .changeset/surface-cli-auth-errors.md diff --git a/.changeset/surface-cli-auth-errors.md b/.changeset/surface-cli-auth-errors.md new file mode 100644 index 00000000..dabce34e --- /dev/null +++ b/.changeset/surface-cli-auth-errors.md @@ -0,0 +1,5 @@ +--- +"ctx7": patch +--- + +Surface the underlying network error when an OAuth request fails. Connection failures now report the cause (TLS interception, DNS, firewall, timeout) with a hint, and non-JSON error responses report the HTTP status and body excerpt instead of a generic message. diff --git a/packages/cli/src/__tests__/auth-utils.test.ts b/packages/cli/src/__tests__/auth-utils.test.ts index 65140847..84276029 100644 --- a/packages/cli/src/__tests__/auth-utils.test.ts +++ b/packages/cli/src/__tests__/auth-utils.test.ts @@ -299,12 +299,38 @@ describe("getValidAccessToken", () => { "fetch", vi.fn().mockResolvedValue({ ok: false, - json: () => Promise.resolve({ error: "invalid_grant" }), + status: 400, + url: "https://test.context7.com/api/oauth/token", + text: () => Promise.resolve(JSON.stringify({ error: "invalid_grant" })), }) ); expect(await getValidAccessToken()).toBeNull(); }); + + // An expired refresh token is indistinguishable from being logged out, so the + // caller reports "not logged in" rather than surfacing a network error here. + test("returns null when the refresh connection fails", async () => { + const tokens: TokenData = { + access_token: "expired-tok", + token_type: "bearer", + expires_at: Date.now() - 1000, + refresh_token: "refresh-tok", + }; + + mfs.existsSync.mockReturnValue(true); + mfs.readFileSync.mockReturnValue(JSON.stringify(tokens)); + vi.stubGlobal( + "fetch", + vi + .fn() + .mockRejectedValue( + Object.assign(new TypeError("fetch failed"), { cause: { code: "ENOTFOUND" } }) + ) + ); + + expect(await getValidAccessToken()).toBeNull(); + }); }); describe("startDeviceAuthorization", () => { @@ -354,12 +380,45 @@ describe("startDeviceAuthorization", () => { "fetch", vi.fn().mockResolvedValue({ ok: false, - json: () => - Promise.resolve({ error: "invalid_request", error_description: "bad client_id" }), + status: 400, + url: "https://t/api/oauth/device/code", + text: () => + Promise.resolve( + JSON.stringify({ error: "invalid_request", error_description: "bad client_id" }) + ), }) ); await expect(startDeviceAuthorization("https://t", "bogus")).rejects.toThrow("bad client_id"); }); + + test("reports status and body excerpt when the response is not JSON", async () => { + vi.stubGlobal( + "fetch", + vi.fn().mockResolvedValue({ + ok: false, + status: 403, + url: "https://t/api/oauth/device/code", + text: () => Promise.resolve("Blocked by proxy"), + }) + ); + await expect(startDeviceAuthorization("https://t", "c")).rejects.toThrow( + /HTTP 403.*Blocked by proxy/s + ); + }); + + test("surfaces the underlying cause when the connection fails", async () => { + const failure = Object.assign(new TypeError("fetch failed"), { + cause: { + code: "UNABLE_TO_VERIFY_LEAF_SIGNATURE", + message: "unable to verify leaf signature", + }, + }); + vi.stubGlobal("fetch", vi.fn().mockRejectedValue(failure)); + + await expect(startDeviceAuthorization("https://t", "c")).rejects.toThrow( + /UNABLE_TO_VERIFY_LEAF_SIGNATURE.*NODE_EXTRA_CA_CERTS/s + ); + }); }); describe("pollDeviceToken", () => { @@ -412,7 +471,7 @@ describe("pollDeviceToken", () => { vi.stubGlobal("fetch", vi.fn().mockRejectedValue(new Error("ECONNREFUSED"))); const result = await pollDeviceToken("https://t", "c", "dc"); expect(result.status).toBe("transient"); - expect(result.errorMessage).toBe("ECONNREFUSED"); + expect(result.errorMessage).toContain("ECONNREFUSED"); }); test("throws on unknown 4xx error code", async () => { diff --git a/packages/cli/src/utils/auth.ts b/packages/cli/src/utils/auth.ts index fecd1b20..99769399 100644 --- a/packages/cli/src/utils/auth.ts +++ b/packages/cli/src/utils/auth.ts @@ -85,22 +85,15 @@ export function isTokenExpired(tokens: TokenData): boolean { } async function refreshAccessToken(refreshToken: string): Promise { - const response = await fetch(`${getBaseUrl()}/api/oauth/token`, { - method: "POST", - headers: { "Content-Type": "application/x-www-form-urlencoded" }, - body: new URLSearchParams({ + return oauthRequest( + `${getBaseUrl()}/api/oauth/token`, + new URLSearchParams({ grant_type: "refresh_token", client_id: CLI_CLIENT_ID, refresh_token: refreshToken, - }).toString(), - }); - - if (!response.ok) { - const err = (await response.json().catch(() => ({}))) as TokenErrorResponse; - throw new Error(err.error_description || err.error || "Failed to refresh token"); - } - - return (await response.json()) as TokenData; + }), + "Failed to refresh token" + ); } /** @@ -147,6 +140,86 @@ export interface DeviceAuthorizationResponse { const DEVICE_CODE_GRANT = "urn:ietf:params:oauth:grant-type:device_code"; +async function describeErrorResponse(response: Response, fallback: string): Promise { + const body = await response.text().catch(() => ""); + + try { + const err = JSON.parse(body) as TokenErrorResponse; + const message = err.error_description || err.error; + if (message) return message; + } catch { + // An interceptor's HTML, not an OAuth error object. + } + + const excerpt = body.replace(/\s+/g, " ").trim().slice(0, 200); + const detail = `HTTP ${response.status} from ${response.url}`; + return excerpt ? `${fallback} (${detail}): ${excerpt}` : `${fallback} (${detail})`; +} + +const TLS_HINT = + "The TLS certificate could not be verified, which usually means a proxy is inspecting HTTPS traffic. Point NODE_EXTRA_CA_CERTS at your organization's root CA."; +const DNS_HINT = "DNS lookup failed. Check your network or VPN connection."; +const BLOCKED_HINT = + "The connection was refused or reset, which usually means a firewall or proxy is blocking it."; +const TIMEOUT_HINT = "The connection timed out. A proxy or firewall may be dropping the request."; +const DEFAULT_HINT = + "If you are behind a corporate proxy, note that Node does not use HTTPS_PROXY automatically."; + +const CONNECTION_HINTS: Record = { + UNABLE_TO_VERIFY_LEAF_SIGNATURE: TLS_HINT, + SELF_SIGNED_CERT_IN_CHAIN: TLS_HINT, + DEPTH_ZERO_SELF_SIGNED_CERT: TLS_HINT, + CERT_HAS_EXPIRED: TLS_HINT, + ENOTFOUND: DNS_HINT, + EAI_AGAIN: DNS_HINT, + ECONNREFUSED: BLOCKED_HINT, + ECONNRESET: BLOCKED_HINT, + EHOSTUNREACH: BLOCKED_HINT, + ENETUNREACH: BLOCKED_HINT, + UND_ERR_CONNECT_TIMEOUT: TIMEOUT_HINT, + ETIMEDOUT: TIMEOUT_HINT, +}; + +function getErrorCause(error: unknown): { code?: string; message?: string } { + if (typeof error !== "object" || error === null || !("cause" in error)) return {}; + const cause = (error as { cause: unknown }).cause; + if (typeof cause !== "object" || cause === null) return {}; + + const { code, message } = cause as { code?: unknown; message?: unknown }; + return { + code: typeof code === "string" ? code : undefined, + message: typeof message === "string" ? message : undefined, + }; +} + +function describeConnectionError(error: unknown, url: string): string { + const { code, message } = getErrorCause(error); + const detail = message || (error instanceof Error ? error.message : String(error)); + const hint = (code && CONNECTION_HINTS[code]) || DEFAULT_HINT; + + return `Could not reach ${url}: ${detail}${code ? ` (${code})` : ""}\n${hint}`; +} + +async function postForm(url: string, params: URLSearchParams): Promise { + try { + return await fetch(url, { + method: "POST", + headers: { "Content-Type": "application/x-www-form-urlencoded" }, + body: params.toString(), + }); + } catch (error) { + throw new Error(describeConnectionError(error, url)); + } +} + +async function oauthRequest(url: string, params: URLSearchParams, fallback: string): Promise { + const response = await postForm(url, params); + if (!response.ok) { + throw new Error(await describeErrorResponse(response, fallback)); + } + return (await response.json()) as T; +} + /** RFC 8628 §3.2 default poll interval when the server omits `interval`. */ export const DEFAULT_DEVICE_POLL_INTERVAL_SECONDS = 5; @@ -165,18 +238,11 @@ export async function startDeviceAuthorization( // ignore } - const response = await fetch(`${baseUrl}/api/oauth/device/code`, { - method: "POST", - headers: { "Content-Type": "application/x-www-form-urlencoded" }, - body: params.toString(), - }); - - if (!response.ok) { - const err = (await response.json().catch(() => ({}))) as TokenErrorResponse; - throw new Error(err.error_description || err.error || "Failed to start device authorization"); - } - - return (await response.json()) as DeviceAuthorizationResponse; + return oauthRequest( + `${baseUrl}/api/oauth/device/code`, + params, + "Failed to start device authorization" + ); } export interface PollDeviceTokenResult { @@ -192,15 +258,14 @@ export async function pollDeviceToken( ): Promise { let response: Response; try { - response = await fetch(`${baseUrl}/api/oauth/device/token`, { - method: "POST", - headers: { "Content-Type": "application/x-www-form-urlencoded" }, - body: new URLSearchParams({ + response = await postForm( + `${baseUrl}/api/oauth/device/token`, + new URLSearchParams({ grant_type: DEVICE_CODE_GRANT, device_code: deviceCode, client_id: clientId, - }).toString(), - }); + }) + ); } catch (error) { // Network blip — keep polling. return { diff --git a/packages/sdk/vitest.config.ts b/packages/sdk/vitest.config.ts index 18a0a187..a79e8829 100644 --- a/packages/sdk/vitest.config.ts +++ b/packages/sdk/vitest.config.ts @@ -10,6 +10,8 @@ export default defineConfig({ environment: "node", include: ["src/**/*.test.ts"], env: process.env, + // These tests call the live API, so the 5s default fails on latency alone. + testTimeout: 30_000, }, resolve: { alias: { From 4124503867b802a16e7697a838a2bfce0820328d Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Fri, 17 Jul 2026 11:41:03 +0300 Subject: [PATCH 18/18] chore(release): version packages (#2892) Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> --- .changeset/bump-jose-6-2-3.md | 5 ----- .changeset/surface-cli-auth-errors.md | 5 ----- packages/cli/CHANGELOG.md | 6 ++++++ packages/cli/package.json | 2 +- packages/mcp/CHANGELOG.md | 6 ++++++ packages/mcp/package.json | 2 +- 6 files changed, 14 insertions(+), 12 deletions(-) delete mode 100644 .changeset/bump-jose-6-2-3.md delete mode 100644 .changeset/surface-cli-auth-errors.md diff --git a/.changeset/bump-jose-6-2-3.md b/.changeset/bump-jose-6-2-3.md deleted file mode 100644 index 4abefa7b..00000000 --- a/.changeset/bump-jose-6-2-3.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -"@upstash/context7-mcp": patch ---- - -Bump jose from 6.1.3 to 6.2.3. diff --git a/.changeset/surface-cli-auth-errors.md b/.changeset/surface-cli-auth-errors.md deleted file mode 100644 index dabce34e..00000000 --- a/.changeset/surface-cli-auth-errors.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -"ctx7": patch ---- - -Surface the underlying network error when an OAuth request fails. Connection failures now report the cause (TLS interception, DNS, firewall, timeout) with a hint, and non-JSON error responses report the HTTP status and body excerpt instead of a generic message. diff --git a/packages/cli/CHANGELOG.md b/packages/cli/CHANGELOG.md index 45fbe3af..ea17ac4c 100644 --- a/packages/cli/CHANGELOG.md +++ b/packages/cli/CHANGELOG.md @@ -1,5 +1,11 @@ # Changelog +## 0.5.5 + +### Patch Changes + +- e1b4793: Surface the underlying network error when an OAuth request fails. Connection failures now report the cause (TLS interception, DNS, firewall, timeout) with a hint, and non-JSON error responses report the HTTP status and body excerpt instead of a generic message. + ## 0.5.4 ### Patch Changes diff --git a/packages/cli/package.json b/packages/cli/package.json index 232f9525..43a21f60 100644 --- a/packages/cli/package.json +++ b/packages/cli/package.json @@ -1,6 +1,6 @@ { "name": "ctx7", - "version": "0.5.4", + "version": "0.5.5", "description": "Context7 CLI - Fetch documentation context and configure Context7", "type": "module", "bin": { diff --git a/packages/mcp/CHANGELOG.md b/packages/mcp/CHANGELOG.md index cd3b15c9..da315052 100644 --- a/packages/mcp/CHANGELOG.md +++ b/packages/mcp/CHANGELOG.md @@ -1,5 +1,11 @@ # @upstash/context7-mcp +## 3.2.4 + +### Patch Changes + +- c61a565: Bump jose from 6.1.3 to 6.2.3. + ## 3.2.3 ### Patch Changes diff --git a/packages/mcp/package.json b/packages/mcp/package.json index 112c4d58..9519768d 100644 --- a/packages/mcp/package.json +++ b/packages/mcp/package.json @@ -1,6 +1,6 @@ { "name": "@upstash/context7-mcp", - "version": "3.2.3", + "version": "3.2.4", "mcpName": "io.github.upstash/context7", "description": "MCP server for Context7", "scripts": {