@shuji-bonji/pdf-reader-mcp 0.3.0 → 0.5.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +31 -0
- package/README.ja.md +34 -5
- package/README.md +35 -6
- package/dist/constants.d.ts +1 -1
- package/dist/constants.js +1 -1
- package/dist/schemas/tier1.d.ts +35 -0
- package/dist/schemas/tier1.d.ts.map +1 -1
- package/dist/schemas/tier1.js +41 -0
- package/dist/schemas/tier1.js.map +1 -1
- package/dist/services/pdfjs-service.d.ts +17 -2
- package/dist/services/pdfjs-service.d.ts.map +1 -1
- package/dist/services/pdfjs-service.js +63 -10
- package/dist/services/pdfjs-service.js.map +1 -1
- package/dist/tools/tier1/read-text.d.ts.map +1 -1
- package/dist/tools/tier1/read-text.js +13 -4
- package/dist/tools/tier1/read-text.js.map +1 -1
- package/dist/tools/tier1/read-url.d.ts.map +1 -1
- package/dist/tools/tier1/read-url.js +10 -2
- package/dist/tools/tier1/read-url.js.map +1 -1
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -5,6 +5,35 @@ All notable changes to this project will be documented in this file.
|
|
|
5
5
|
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
|
|
6
6
|
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
|
7
7
|
|
|
8
|
+
## [0.5.0] - 2026-05-07
|
|
9
|
+
|
|
10
|
+
### Added
|
|
11
|
+
|
|
12
|
+
- **`compact_whitespace` parameter on `read_text` and `read_url`** (Issue #4): opt-in whitespace normalization that collapses runs of `\s` plus U+3000 (fullwidth space) to a single ASCII space, and trims every line. Designed for Japanese form-style PDFs (帳票・様式) where U+3000 is used as visual indentation, inflating token consumption without adding information.
|
|
13
|
+
- Default `false` keeps the existing extraction byte-for-byte (regression-tested).
|
|
14
|
+
- Combines orthogonally with `split_columns`: inter-column `\n\n` separators survive the compaction.
|
|
15
|
+
- Per-cell CJK kerning ("消 費 税" → "消費税") is intentionally NOT touched here — that requires CJK-aware logic and remains the responsibility of `extract_tables`'s `compactCellText`.
|
|
16
|
+
- Empirically reduces character count by ~40% on 国税庁 form PDFs (e.g. `jimu-unei/hojin/090401-2/pdf/01.pdf`) while preserving all content.
|
|
17
|
+
- **E2E tests** in `tests/e2e/02-tier1-text.test.ts`: 3 new cases (RT-CW-1..3) covering the regression guard, the line-trim + run-collapse invariants, and orthogonal combination with `split_columns`.
|
|
18
|
+
|
|
19
|
+
### Changed
|
|
20
|
+
|
|
21
|
+
- **`read_text` / `read_url` tool descriptions**: documented the new `compact_whitespace` parameter and added "Japanese form template" usage example.
|
|
22
|
+
|
|
23
|
+
## [0.4.0] - 2026-05-07
|
|
24
|
+
|
|
25
|
+
### Added
|
|
26
|
+
|
|
27
|
+
- **`split_columns` parameter on `read_text` and `read_url`** (Issue #3): opt-in column-aware reordering for **untagged** multi-column PDFs. When `split_columns: 2` (or `3`) is passed, text items are first bucketed by X-coordinate into N equal-width columns, then each bucket is Y-sorted independently and concatenated left-to-right with a blank-line separator. Designed for older 新旧対照表 PDFs and similar two-column documents that lack a structure tree (Tagged PDFs with proper `<Table>` markup should use `extract_tables` instead).
|
|
28
|
+
- `splitColumns: 1` (default / undefined) is unchanged — existing single-column Y-sort behaviour is preserved as a regression-tested baseline.
|
|
29
|
+
- `extractText` / `extractTextFromDoc` now accept an `ExtractTextOptions` object with `splitColumns?: number`. Internally, line-grouping logic is factored out into `itemsToText` so the column path reuses the same Y-sort.
|
|
30
|
+
- **Test fixture `tests/fixtures/two-column.pdf`**: 1-page A4 untagged PDF with `LEFT-1..4` and `RIGHT-1..4` placed at paired Y-coordinates so plain Y-sort interleaves them — the regression target for `split_columns`.
|
|
31
|
+
- **E2E tests** in `tests/e2e/02-tier1-text.test.ts`: 4 new cases (RT-SC-1..4) covering the failure mode without `split_columns`, the success mode with `split_columns: 2`, the `split_columns: 1` regression guard, and a sanity check that `split_columns: 2` on a single-column PDF preserves all content.
|
|
32
|
+
|
|
33
|
+
### Changed
|
|
34
|
+
|
|
35
|
+
- **`read_text` / `read_url` tool descriptions**: documented the new `split_columns` parameter with guidance to prefer `extract_tables` for Tagged PDFs.
|
|
36
|
+
|
|
8
37
|
## [0.3.0] - 2026-05-06
|
|
9
38
|
|
|
10
39
|
### Added
|
|
@@ -91,6 +120,8 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
|
91
120
|
- Y-coordinate-based text extraction preserving natural reading order
|
|
92
121
|
- Unit tests for core utilities and pdfjs-service
|
|
93
122
|
|
|
123
|
+
[0.5.0]: https://github.com/shuji-bonji/pdf-reader-mcp/compare/v0.4.0...v0.5.0
|
|
124
|
+
[0.4.0]: https://github.com/shuji-bonji/pdf-reader-mcp/compare/v0.3.0...v0.4.0
|
|
94
125
|
[0.3.0]: https://github.com/shuji-bonji/pdf-reader-mcp/compare/v0.2.3...v0.3.0
|
|
95
126
|
[0.2.3]: https://github.com/shuji-bonji/pdf-reader-mcp/compare/v0.2.2...v0.2.3
|
|
96
127
|
[0.2.2]: https://github.com/shuji-bonji/pdf-reader-mcp/compare/v0.2.1...v0.2.2
|
package/README.ja.md
CHANGED
|
@@ -20,7 +20,7 @@ PDF 内部構造解析に特化した MCP (Model Context Protocol) サーバー
|
|
|
20
20
|
| ---------------- | ----------------------------------------------------- |
|
|
21
21
|
| `get_page_count` | ページ数の軽量取得 |
|
|
22
22
|
| `get_metadata` | メタデータ抽出(タイトル、著者、PDF版、タグ有無等) |
|
|
23
|
-
| `read_text` | テキスト抽出(Y
|
|
23
|
+
| `read_text` | テキスト抽出(Y座標ベースの読み順保持。`split_columns: 2 \| 3` で **タグなし** 多カラム PDF、`compact_whitespace` で 帳票 の U+3000 連続空白を畳み込み) |
|
|
24
24
|
| `search_text` | 全文検索(前後コンテキスト付き) |
|
|
25
25
|
| `read_images` | 画像抽出(base64、メタデータ付き) |
|
|
26
26
|
| `read_url` | URLからリモートPDFを取得して処理 |
|
|
@@ -160,15 +160,44 @@ extract_tables({ file_path: "/path/to/kaisei-tsutatsu.pdf", pages: "1" })
|
|
|
160
160
|
| …第2条第 16 項《定義》… | …第2条第 15 項《定義》… |
|
|
161
161
|
```
|
|
162
162
|
|
|
163
|
-
タグ無し PDF では空結果と note
|
|
163
|
+
タグ無し PDF では空結果と note を返し、下記の column-aware 抽出への
|
|
164
164
|
フォールバックを推奨します。
|
|
165
165
|
|
|
166
|
+
### タグなし多カラム PDF をカラム単位で読む
|
|
167
|
+
|
|
168
|
+
```
|
|
169
|
+
read_text({ file_path: "/path/to/older-shinkyu.pdf", split_columns: 2 })
|
|
170
|
+
→ // 通常の Y ソートだとカラムが交互連結:
|
|
171
|
+
// "改正後セル1 改正前セル1\n 改正後セル2 改正前セル2..."
|
|
172
|
+
//
|
|
173
|
+
// split_columns: 2 では左カラム → 空行 → 右カラムの順:
|
|
174
|
+
// "改正後セル1\n改正後セル2\n…\n\n改正前セル1\n改正前セル2\n…"
|
|
175
|
+
```
|
|
176
|
+
|
|
177
|
+
**タグなし** 多カラム PDF (古い 新旧対照表など) で `split_columns: 2 \| 3` を指定。
|
|
178
|
+
タグ付き PDF (`<Table>` 構造あり) では `extract_tables` の方が表構造を保持できます。
|
|
179
|
+
|
|
180
|
+
### 連続する全角空白を畳み込む(日本語帳票・様式向け)
|
|
181
|
+
|
|
182
|
+
```
|
|
183
|
+
read_text({ file_path: "/path/to/form.pdf", compact_whitespace: true })
|
|
184
|
+
→ // 元 PDF が U+3000 で視覚的インデントを表現している場合:
|
|
185
|
+
// " ( ) 自 年 月 日 法 有 ( 年 月 日) 有 有"
|
|
186
|
+
//
|
|
187
|
+
// compact_whitespace: true で:
|
|
188
|
+
// "( ) 自 年 月 日 法 有 ( 年 月 日) 有 有"
|
|
189
|
+
//
|
|
190
|
+
// 国税庁の帳票 PDF で文字数が約 40% 削減できる実例あり。
|
|
191
|
+
```
|
|
192
|
+
|
|
193
|
+
`compact_whitespace` は `split_columns` と直交して併用可能です。
|
|
194
|
+
|
|
166
195
|
## 技術スタック
|
|
167
196
|
|
|
168
197
|
- **TypeScript** + MCP TypeScript SDK
|
|
169
198
|
- **pdfjs-dist** (Mozilla) — テキスト/画像抽出、タグツリー、注釈
|
|
170
199
|
- **pdf-lib** — 低レベルオブジェクト構造解析
|
|
171
|
-
- **Vitest** — Unit + E2E テスト(
|
|
200
|
+
- **Vitest** — Unit + E2E テスト(171 tests)
|
|
172
201
|
- **Biome** — lint + format
|
|
173
202
|
- **Zod** — 入力バリデーション
|
|
174
203
|
|
|
@@ -176,7 +205,7 @@ extract_tables({ file_path: "/path/to/kaisei-tsutatsu.pdf", pages: "1" })
|
|
|
176
205
|
|
|
177
206
|
```bash
|
|
178
207
|
npm test # 全テスト実行(Unit: 39 tests)
|
|
179
|
-
npm run test:e2e # E2E のみ(
|
|
208
|
+
npm run test:e2e # E2E のみ(132 tests)
|
|
180
209
|
npm run test:watch # ウォッチモード
|
|
181
210
|
```
|
|
182
211
|
|
|
@@ -206,7 +235,7 @@ pdf-reader-mcp/
|
|
|
206
235
|
│ └── error-handler.ts # エラーハンドリング
|
|
207
236
|
└── tests/
|
|
208
237
|
├── tier1/ # Unit tests
|
|
209
|
-
└── e2e/ # E2E tests (9 suites,
|
|
238
|
+
└── e2e/ # E2E tests (9 suites, 132 tests)
|
|
210
239
|
```
|
|
211
240
|
|
|
212
241
|
## pdf-spec-mcp との連携
|
package/README.md
CHANGED
|
@@ -20,7 +20,7 @@ While typical PDF MCP servers are thin wrappers for text extraction, this projec
|
|
|
20
20
|
| ---------------- | -------------------------------------------------------- |
|
|
21
21
|
| `get_page_count` | Lightweight page count retrieval |
|
|
22
22
|
| `get_metadata` | Full metadata extraction (title, author, PDF version...) |
|
|
23
|
-
| `read_text` | Text extraction with Y-coordinate reading order
|
|
23
|
+
| `read_text` | Text extraction with Y-coordinate reading order (opt-in `split_columns: 2 \| 3` for untagged multi-column PDFs, `compact_whitespace` for Japanese forms) |
|
|
24
24
|
| `search_text` | Full-text search with surrounding context |
|
|
25
25
|
| `read_images` | Image extraction as base64 with metadata |
|
|
26
26
|
| `read_url` | Fetch and process remote PDFs from URLs |
|
|
@@ -160,15 +160,44 @@ extract_tables({ file_path: "/path/to/kaisei-tsutatsu.pdf", pages: "1" })
|
|
|
160
160
|
| …第2条第 16 項《定義》… | …第2条第 15 項《定義》… |
|
|
161
161
|
```
|
|
162
162
|
|
|
163
|
-
Untagged PDFs return an empty result with a `note` recommending
|
|
164
|
-
fallback
|
|
163
|
+
Untagged PDFs return an empty result with a `note` recommending the
|
|
164
|
+
column-aware fallback below.
|
|
165
|
+
|
|
166
|
+
### Read Untagged Multi-Column PDF
|
|
167
|
+
|
|
168
|
+
```
|
|
169
|
+
read_text({ file_path: "/path/to/older-shinkyu.pdf", split_columns: 2 })
|
|
170
|
+
→ // Plain Y-sort would interleave columns:
|
|
171
|
+
// "改正後セル1 改正前セル1\n 改正後セル2 改正前セル2..."
|
|
172
|
+
//
|
|
173
|
+
// With split_columns: 2 the left column is emitted first, then the right:
|
|
174
|
+
// "改正後セル1\n改正後セル2\n…\n\n改正前セル1\n改正前セル2\n…"
|
|
175
|
+
```
|
|
176
|
+
|
|
177
|
+
Use `split_columns: 2 | 3` for **untagged** multi-column PDFs. For Tagged
|
|
178
|
+
PDFs with proper `<Table>` markup, `extract_tables` (above) is preferred.
|
|
179
|
+
|
|
180
|
+
### Compact Whitespace (Japanese Forms)
|
|
181
|
+
|
|
182
|
+
```
|
|
183
|
+
read_text({ file_path: "/path/to/form.pdf", compact_whitespace: true })
|
|
184
|
+
→ // Original PDF uses U+3000 fullwidth space as visual indentation:
|
|
185
|
+
// " ( ) 自 年 月 日 法 有 ( 年 月 日) 有 有"
|
|
186
|
+
//
|
|
187
|
+
// With compact_whitespace: true:
|
|
188
|
+
// "( ) 自 年 月 日 法 有 ( 年 月 日) 有 有"
|
|
189
|
+
//
|
|
190
|
+
// Empirically reduces character count by ~40% on form PDFs.
|
|
191
|
+
```
|
|
192
|
+
|
|
193
|
+
`compact_whitespace` is orthogonal to `split_columns` — both can be combined.
|
|
165
194
|
|
|
166
195
|
## Tech Stack
|
|
167
196
|
|
|
168
197
|
- **TypeScript** + MCP TypeScript SDK
|
|
169
198
|
- **pdfjs-dist** (Mozilla) — text/image extraction, tag tree, annotations
|
|
170
199
|
- **pdf-lib** — low-level object structure analysis
|
|
171
|
-
- **Vitest** — unit + E2E testing (
|
|
200
|
+
- **Vitest** — unit + E2E testing (171 tests)
|
|
172
201
|
- **Biome** — linting + formatting
|
|
173
202
|
- **Zod** — input validation
|
|
174
203
|
|
|
@@ -176,7 +205,7 @@ fallback (see roadmap Issue #3).
|
|
|
176
205
|
|
|
177
206
|
```bash
|
|
178
207
|
npm test # Run all tests (unit: 39 tests)
|
|
179
|
-
npm run test:e2e # E2E tests only (
|
|
208
|
+
npm run test:e2e # E2E tests only (132 tests)
|
|
180
209
|
npm run test:watch # Watch mode
|
|
181
210
|
```
|
|
182
211
|
|
|
@@ -206,7 +235,7 @@ pdf-reader-mcp/
|
|
|
206
235
|
│ └── error-handler.ts # Error handling
|
|
207
236
|
└── tests/
|
|
208
237
|
├── tier1/ # Unit tests
|
|
209
|
-
└── e2e/ # E2E tests (9 suites,
|
|
238
|
+
└── e2e/ # E2E tests (9 suites, 132 tests)
|
|
210
239
|
```
|
|
211
240
|
|
|
212
241
|
## Pairing with pdf-spec-mcp
|
package/dist/constants.d.ts
CHANGED
|
@@ -13,7 +13,7 @@ export declare const MAX_SEARCH_RESULTS = 100;
|
|
|
13
13
|
export declare const DEFAULT_SEARCH_CONTEXT = 80;
|
|
14
14
|
/** Server info */
|
|
15
15
|
export declare const SERVER_NAME = "pdf-reader-mcp";
|
|
16
|
-
export declare const SERVER_VERSION = "0.
|
|
16
|
+
export declare const SERVER_VERSION = "0.5.0";
|
|
17
17
|
/** Response format enum */
|
|
18
18
|
export declare enum ResponseFormat {
|
|
19
19
|
MARKDOWN = "markdown",
|
package/dist/constants.js
CHANGED
|
@@ -13,7 +13,7 @@ export const MAX_SEARCH_RESULTS = 100;
|
|
|
13
13
|
export const DEFAULT_SEARCH_CONTEXT = 80;
|
|
14
14
|
/** Server info */
|
|
15
15
|
export const SERVER_NAME = 'pdf-reader-mcp';
|
|
16
|
-
export const SERVER_VERSION = '0.
|
|
16
|
+
export const SERVER_VERSION = '0.5.0';
|
|
17
17
|
/** Response format enum */
|
|
18
18
|
export var ResponseFormat;
|
|
19
19
|
(function (ResponseFormat) {
|
package/dist/schemas/tier1.d.ts
CHANGED
|
@@ -21,19 +21,48 @@ export declare const GetMetadataSchema: z.ZodObject<{
|
|
|
21
21
|
file_path: string;
|
|
22
22
|
response_format?: import("../constants.js").ResponseFormat | undefined;
|
|
23
23
|
}>;
|
|
24
|
+
/**
|
|
25
|
+
* `split_columns` — Issue #3: column-aware extraction for untagged
|
|
26
|
+
* multi-column PDFs.
|
|
27
|
+
*
|
|
28
|
+
* Acts as an opt-in override for the default reading-order strategy. When
|
|
29
|
+
* `>= 2`, items are bucketed by X-coordinate into N equal-width columns and
|
|
30
|
+
* the buckets are concatenated left-to-right. `1` (default) preserves the
|
|
31
|
+
* existing Y-sort behaviour. Tagged PDFs with proper `<Table>` markup should
|
|
32
|
+
* use `extract_tables` instead — `split_columns` is for untagged cases.
|
|
33
|
+
*/
|
|
34
|
+
export declare const SplitColumnsSchema: z.ZodOptional<z.ZodNumber>;
|
|
35
|
+
/**
|
|
36
|
+
* `compact_whitespace` — Issue #4: collapse runs of ASCII / fullwidth
|
|
37
|
+
* whitespace down to a single ASCII space, and trim each line.
|
|
38
|
+
*
|
|
39
|
+
* Default `false` keeps the existing extraction byte-for-byte. When set to
|
|
40
|
+
* `true`, every run of `\s` plus ` ` is replaced with one ASCII space
|
|
41
|
+
* and trailing/leading whitespace is removed line by line. This typically
|
|
42
|
+
* cuts 20–40% of token consumption for Japanese form-style PDFs without
|
|
43
|
+
* losing any content. Inter-column blank-line separators (from
|
|
44
|
+
* `split_columns`) are preserved.
|
|
45
|
+
*/
|
|
46
|
+
export declare const CompactWhitespaceSchema: z.ZodOptional<z.ZodBoolean>;
|
|
24
47
|
/** read_text */
|
|
25
48
|
export declare const ReadTextSchema: z.ZodObject<{
|
|
26
49
|
file_path: z.ZodString;
|
|
27
50
|
pages: z.ZodOptional<z.ZodString>;
|
|
28
51
|
response_format: z.ZodDefault<z.ZodNativeEnum<typeof import("../constants.js").ResponseFormat>>;
|
|
52
|
+
split_columns: z.ZodOptional<z.ZodNumber>;
|
|
53
|
+
compact_whitespace: z.ZodOptional<z.ZodBoolean>;
|
|
29
54
|
}, "strict", z.ZodTypeAny, {
|
|
30
55
|
file_path: string;
|
|
31
56
|
response_format: import("../constants.js").ResponseFormat;
|
|
32
57
|
pages?: string | undefined;
|
|
58
|
+
split_columns?: number | undefined;
|
|
59
|
+
compact_whitespace?: boolean | undefined;
|
|
33
60
|
}, {
|
|
34
61
|
file_path: string;
|
|
35
62
|
response_format?: import("../constants.js").ResponseFormat | undefined;
|
|
36
63
|
pages?: string | undefined;
|
|
64
|
+
split_columns?: number | undefined;
|
|
65
|
+
compact_whitespace?: boolean | undefined;
|
|
37
66
|
}>;
|
|
38
67
|
/** search_text */
|
|
39
68
|
export declare const SearchTextSchema: z.ZodObject<{
|
|
@@ -74,14 +103,20 @@ export declare const ReadUrlSchema: z.ZodObject<{
|
|
|
74
103
|
url: z.ZodString;
|
|
75
104
|
pages: z.ZodOptional<z.ZodString>;
|
|
76
105
|
response_format: z.ZodDefault<z.ZodNativeEnum<typeof import("../constants.js").ResponseFormat>>;
|
|
106
|
+
split_columns: z.ZodOptional<z.ZodNumber>;
|
|
107
|
+
compact_whitespace: z.ZodOptional<z.ZodBoolean>;
|
|
77
108
|
}, "strict", z.ZodTypeAny, {
|
|
78
109
|
response_format: import("../constants.js").ResponseFormat;
|
|
79
110
|
url: string;
|
|
80
111
|
pages?: string | undefined;
|
|
112
|
+
split_columns?: number | undefined;
|
|
113
|
+
compact_whitespace?: boolean | undefined;
|
|
81
114
|
}, {
|
|
82
115
|
url: string;
|
|
83
116
|
response_format?: import("../constants.js").ResponseFormat | undefined;
|
|
84
117
|
pages?: string | undefined;
|
|
118
|
+
split_columns?: number | undefined;
|
|
119
|
+
compact_whitespace?: boolean | undefined;
|
|
85
120
|
}>;
|
|
86
121
|
/** summarize */
|
|
87
122
|
export declare const SummarizeSchema: z.ZodObject<{
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tier1.d.ts","sourceRoot":"","sources":["../../src/schemas/tier1.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAIxB,qBAAqB;AACrB,eAAO,MAAM,kBAAkB;;;;;;EAIpB,CAAC;AAEZ,mBAAmB;AACnB,eAAO,MAAM,iBAAiB;;;;;;;;;EAKnB,CAAC;AAEZ,gBAAgB;AAChB,eAAO,MAAM,cAAc
|
|
1
|
+
{"version":3,"file":"tier1.d.ts","sourceRoot":"","sources":["../../src/schemas/tier1.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAIxB,qBAAqB;AACrB,eAAO,MAAM,kBAAkB;;;;;;EAIpB,CAAC;AAEZ,mBAAmB;AACnB,eAAO,MAAM,iBAAiB;;;;;;;;;EAKnB,CAAC;AAEZ;;;;;;;;;GASG;AACH,eAAO,MAAM,kBAAkB,4BAW5B,CAAC;AAEJ;;;;;;;;;;GAUG;AACH,eAAO,MAAM,uBAAuB,6BAOjC,CAAC;AAEJ,gBAAgB;AAChB,eAAO,MAAM,cAAc;;;;;;;;;;;;;;;;;;EAQhB,CAAC;AAEZ,kBAAkB;AAClB,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;;;;;;;;;EAyBlB,CAAC;AAEZ,kBAAkB;AAClB,eAAO,MAAM,gBAAgB;;;;;;;;;EAKlB,CAAC;AAEZ,eAAe;AACf,eAAO,MAAM,aAAa;;;;;;;;;;;;;;;;;;EAQf,CAAC;AAEZ,gBAAgB;AAChB,eAAO,MAAM,eAAe;;;;;;;;;EAKjB,CAAC;AAGZ,MAAM,MAAM,iBAAiB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kBAAkB,CAAC,CAAC;AACnE,MAAM,MAAM,gBAAgB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,iBAAiB,CAAC,CAAC;AACjE,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,cAAc,CAAC,CAAC;AAC3D,MAAM,MAAM,eAAe,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,gBAAgB,CAAC,CAAC;AAC/D,MAAM,MAAM,eAAe,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,gBAAgB,CAAC,CAAC;AAC/D,MAAM,MAAM,YAAY,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,aAAa,CAAC,CAAC;AACzD,MAAM,MAAM,cAAc,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,eAAe,CAAC,CAAC"}
|
package/dist/schemas/tier1.js
CHANGED
|
@@ -17,12 +17,51 @@ export const GetMetadataSchema = z
|
|
|
17
17
|
response_format: ResponseFormatSchema,
|
|
18
18
|
})
|
|
19
19
|
.strict();
|
|
20
|
+
/**
|
|
21
|
+
* `split_columns` — Issue #3: column-aware extraction for untagged
|
|
22
|
+
* multi-column PDFs.
|
|
23
|
+
*
|
|
24
|
+
* Acts as an opt-in override for the default reading-order strategy. When
|
|
25
|
+
* `>= 2`, items are bucketed by X-coordinate into N equal-width columns and
|
|
26
|
+
* the buckets are concatenated left-to-right. `1` (default) preserves the
|
|
27
|
+
* existing Y-sort behaviour. Tagged PDFs with proper `<Table>` markup should
|
|
28
|
+
* use `extract_tables` instead — `split_columns` is for untagged cases.
|
|
29
|
+
*/
|
|
30
|
+
export const SplitColumnsSchema = z
|
|
31
|
+
.number()
|
|
32
|
+
.int()
|
|
33
|
+
.min(1)
|
|
34
|
+
.max(3)
|
|
35
|
+
.optional()
|
|
36
|
+
.describe('Number of columns to use when reordering text. 1 (default) = existing Y-sort. ' +
|
|
37
|
+
'2 or 3 = bucket by X-coordinate left-to-right. Use for untagged 新旧対照表 / ' +
|
|
38
|
+
'two-column PDFs where Y-sort would interleave columns. Tagged PDFs with proper ' +
|
|
39
|
+
'<Table> markup should use extract_tables instead.');
|
|
40
|
+
/**
|
|
41
|
+
* `compact_whitespace` — Issue #4: collapse runs of ASCII / fullwidth
|
|
42
|
+
* whitespace down to a single ASCII space, and trim each line.
|
|
43
|
+
*
|
|
44
|
+
* Default `false` keeps the existing extraction byte-for-byte. When set to
|
|
45
|
+
* `true`, every run of `\s` plus ` ` is replaced with one ASCII space
|
|
46
|
+
* and trailing/leading whitespace is removed line by line. This typically
|
|
47
|
+
* cuts 20–40% of token consumption for Japanese form-style PDFs without
|
|
48
|
+
* losing any content. Inter-column blank-line separators (from
|
|
49
|
+
* `split_columns`) are preserved.
|
|
50
|
+
*/
|
|
51
|
+
export const CompactWhitespaceSchema = z
|
|
52
|
+
.boolean()
|
|
53
|
+
.optional()
|
|
54
|
+
.describe('When true, collapse runs of whitespace (incl. fullwidth space U+3000) ' +
|
|
55
|
+
'to a single ASCII space and trim each line. Reduces token consumption ' +
|
|
56
|
+
'on Japanese form-style PDFs. Default: false (no whitespace normalization).');
|
|
20
57
|
/** read_text */
|
|
21
58
|
export const ReadTextSchema = z
|
|
22
59
|
.object({
|
|
23
60
|
file_path: FilePathSchema,
|
|
24
61
|
pages: PagesSchema,
|
|
25
62
|
response_format: ResponseFormatSchema,
|
|
63
|
+
split_columns: SplitColumnsSchema,
|
|
64
|
+
compact_whitespace: CompactWhitespaceSchema,
|
|
26
65
|
})
|
|
27
66
|
.strict();
|
|
28
67
|
/** search_text */
|
|
@@ -65,6 +104,8 @@ export const ReadUrlSchema = z
|
|
|
65
104
|
url: UrlSchema,
|
|
66
105
|
pages: PagesSchema,
|
|
67
106
|
response_format: ResponseFormatSchema,
|
|
107
|
+
split_columns: SplitColumnsSchema,
|
|
108
|
+
compact_whitespace: CompactWhitespaceSchema,
|
|
68
109
|
})
|
|
69
110
|
.strict();
|
|
70
111
|
/** summarize */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tier1.js","sourceRoot":"","sources":["../../src/schemas/tier1.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,sBAAsB,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AAC7E,OAAO,EAAE,cAAc,EAAE,WAAW,EAAE,oBAAoB,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAE3F,qBAAqB;AACrB,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC;KAChC,MAAM,CAAC;IACN,SAAS,EAAE,cAAc;CAC1B,CAAC;KACD,MAAM,EAAE,CAAC;AAEZ,mBAAmB;AACnB,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC;KAC/B,MAAM,CAAC;IACN,SAAS,EAAE,cAAc;IACzB,eAAe,EAAE,oBAAoB;CACtC,CAAC;KACD,MAAM,EAAE,CAAC;AAEZ,gBAAgB;AAChB,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC;KAC5B,MAAM,CAAC;IACN,SAAS,EAAE,cAAc;IACzB,KAAK,EAAE,WAAW;IAClB,eAAe,EAAE,oBAAoB;
|
|
1
|
+
{"version":3,"file":"tier1.js","sourceRoot":"","sources":["../../src/schemas/tier1.ts"],"names":[],"mappings":"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"}
|
|
@@ -22,15 +22,30 @@ export declare function getMetadata(filePath: string): Promise<PdfMetadata>;
|
|
|
22
22
|
* Does NOT destroy the document — caller is responsible for lifecycle.
|
|
23
23
|
*/
|
|
24
24
|
export declare function getMetadataFromDoc(doc: PDFDocumentProxy, filePath: string): Promise<PdfMetadata>;
|
|
25
|
+
/**
|
|
26
|
+
* Options for text extraction.
|
|
27
|
+
*
|
|
28
|
+
* - `splitColumns` controls Issue #3 column-aware reordering. When `>= 2`,
|
|
29
|
+
* text items are bucketed into N equal-width columns by X-coordinate and
|
|
30
|
+
* concatenated left-to-right. `1` (default / undefined) preserves the
|
|
31
|
+
* existing single-column Y-sort behaviour.
|
|
32
|
+
* - `compactWhitespace` controls Issue #4 whitespace normalization. When
|
|
33
|
+
* `true`, runs of `\s` plus U+3000 collapse to one ASCII space and each
|
|
34
|
+
* line is trimmed. Default `false` preserves original spacing.
|
|
35
|
+
*/
|
|
36
|
+
export interface ExtractTextOptions {
|
|
37
|
+
splitColumns?: number;
|
|
38
|
+
compactWhitespace?: boolean;
|
|
39
|
+
}
|
|
25
40
|
/**
|
|
26
41
|
* Extract text from a pre-loaded PDFDocumentProxy.
|
|
27
42
|
* Does NOT destroy the document — caller is responsible for lifecycle.
|
|
28
43
|
*/
|
|
29
|
-
export declare function extractTextFromDoc(doc: PDFDocumentProxy, pages?: string): Promise<PageText[]>;
|
|
44
|
+
export declare function extractTextFromDoc(doc: PDFDocumentProxy, pages?: string, options?: ExtractTextOptions): Promise<PageText[]>;
|
|
30
45
|
/**
|
|
31
46
|
* Extract text from specified pages (1-based).
|
|
32
47
|
*/
|
|
33
|
-
export declare function extractText(filePath: string, pages?: string): Promise<PageText[]>;
|
|
48
|
+
export declare function extractText(filePath: string, pages?: string, options?: ExtractTextOptions): Promise<PageText[]>;
|
|
34
49
|
/**
|
|
35
50
|
* Search for text across all pages.
|
|
36
51
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pdfjs-service.d.ts","sourceRoot":"","sources":["../../src/services/pdfjs-service.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAGL,KAAK,gBAAgB,EAEtB,MAAM,iCAAiC,CAAC;AAGzC,OAAO,KAAK,EAEV,mBAAmB,EAGnB,qBAAqB,EACrB,QAAQ,EACR,WAAW,EACX,WAAW,EAGX,sBAAsB,EAEtB,YAAY,EACb,MAAM,aAAa,CAAC;AAWrB;;GAEG;AACH,wBAAsB,YAAY,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAI9E;AAED;;GAEG;AACH,wBAAsB,oBAAoB,CAAC,IAAI,EAAE,UAAU,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAGtF;AAED;;GAEG;AACH,wBAAsB,WAAW,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC,CAOxE;AAED;;;GAGG;AACH,wBAAsB,kBAAkB,CACtC,GAAG,EAAE,gBAAgB,EACrB,QAAQ,EAAE,MAAM,GACf,OAAO,CAAC,WAAW,CAAC,CA6BtB;AAED;;;GAGG;AACH,wBAAsB,kBAAkB,CACtC,GAAG,EAAE,gBAAgB,EACrB,KAAK,CAAC,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"pdfjs-service.d.ts","sourceRoot":"","sources":["../../src/services/pdfjs-service.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAGL,KAAK,gBAAgB,EAEtB,MAAM,iCAAiC,CAAC;AAGzC,OAAO,KAAK,EAEV,mBAAmB,EAGnB,qBAAqB,EACrB,QAAQ,EACR,WAAW,EACX,WAAW,EAGX,sBAAsB,EAEtB,YAAY,EACb,MAAM,aAAa,CAAC;AAWrB;;GAEG;AACH,wBAAsB,YAAY,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAI9E;AAED;;GAEG;AACH,wBAAsB,oBAAoB,CAAC,IAAI,EAAE,UAAU,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAGtF;AAED;;GAEG;AACH,wBAAsB,WAAW,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC,CAOxE;AAED;;;GAGG;AACH,wBAAsB,kBAAkB,CACtC,GAAG,EAAE,gBAAgB,EACrB,QAAQ,EAAE,MAAM,GACf,OAAO,CAAC,WAAW,CAAC,CA6BtB;AAED;;;;;;;;;;GAUG;AACH,MAAM,WAAW,kBAAkB;IACjC,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,iBAAiB,CAAC,EAAE,OAAO,CAAC;CAC7B;AAED;;;GAGG;AACH,wBAAsB,kBAAkB,CACtC,GAAG,EAAE,gBAAgB,EACrB,KAAK,CAAC,EAAE,MAAM,EACd,OAAO,GAAE,kBAAuB,GAC/B,OAAO,CAAC,QAAQ,EAAE,CAAC,CAarB;AAED;;GAEG;AACH,wBAAsB,WAAW,CAC/B,QAAQ,EAAE,MAAM,EAChB,KAAK,CAAC,EAAE,MAAM,EACd,OAAO,GAAE,kBAAuB,GAC/B,OAAO,CAAC,QAAQ,EAAE,CAAC,CAQrB;AAED;;GAEG;AACH,wBAAsB,UAAU,CAC9B,QAAQ,EAAE,MAAM,EAChB,KAAK,EAAE,MAAM,EACb,YAAY,GAAE,MAA+B,EAC7C,KAAK,CAAC,EAAE,MAAM,GACb,OAAO,CAAC,WAAW,EAAE,CAAC,CAsDxB;AAED;;;GAGG;AACH,wBAAsB,kBAAkB,CAAC,GAAG,EAAE,gBAAgB,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAmB/F;AAED;;GAEG;AACH,wBAAsB,WAAW,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAQnF;AAED;;;GAGG;AACH,wBAAsB,aAAa,CACjC,QAAQ,EAAE,MAAM,EAChB,KAAK,CAAC,EAAE,MAAM,GACb,OAAO,CAAC,qBAAqB,CAAC,CAoEhC;AA8JD;;;GAGG;AACH,wBAAsB,kBAAkB,CAAC,GAAG,EAAE,gBAAgB,GAAG,OAAO,CAAC,YAAY,CAAC,CAmErF;AAED;;GAEG;AACH,wBAAsB,WAAW,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC,CAOzE;AAID;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAsB,oBAAoB,CACxC,GAAG,EAAE,gBAAgB,EACrB,KAAK,CAAC,EAAE,MAAM,GACb,OAAO,CAAC,sBAAsB,CAAC,CA8CjC;AAED,wBAAsB,aAAa,CACjC,QAAQ,EAAE,MAAM,EAChB,KAAK,CAAC,EAAE,MAAM,GACb,OAAO,CAAC,sBAAsB,CAAC,CAOjC;AA2KD;;GAEG;AACH,wBAAsB,kBAAkB,CACtC,QAAQ,EAAE,MAAM,EAChB,KAAK,CAAC,EAAE,MAAM,GACb,OAAO,CAAC,mBAAmB,CAAC,CAmG9B"}
|
|
@@ -75,12 +75,12 @@ export async function getMetadataFromDoc(doc, filePath) {
|
|
|
75
75
|
* Extract text from a pre-loaded PDFDocumentProxy.
|
|
76
76
|
* Does NOT destroy the document — caller is responsible for lifecycle.
|
|
77
77
|
*/
|
|
78
|
-
export async function extractTextFromDoc(doc, pages) {
|
|
78
|
+
export async function extractTextFromDoc(doc, pages, options = {}) {
|
|
79
79
|
const pageNumbers = resolvePageNumbers(pages, doc.numPages);
|
|
80
80
|
// 全ページを並列に処理(pdfjs-dist は並列ページアクセスが安全)
|
|
81
81
|
const results = await Promise.all(pageNumbers.map(async (pageNum) => {
|
|
82
82
|
const page = await doc.getPage(pageNum);
|
|
83
|
-
const text = await extractPageText(page);
|
|
83
|
+
const text = await extractPageText(page, options);
|
|
84
84
|
return { page: pageNum, text };
|
|
85
85
|
}));
|
|
86
86
|
return results;
|
|
@@ -88,10 +88,10 @@ export async function extractTextFromDoc(doc, pages) {
|
|
|
88
88
|
/**
|
|
89
89
|
* Extract text from specified pages (1-based).
|
|
90
90
|
*/
|
|
91
|
-
export async function extractText(filePath, pages) {
|
|
91
|
+
export async function extractText(filePath, pages, options = {}) {
|
|
92
92
|
const doc = await loadDocument(filePath);
|
|
93
93
|
try {
|
|
94
|
-
return await extractTextFromDoc(doc, pages);
|
|
94
|
+
return await extractTextFromDoc(doc, pages, options);
|
|
95
95
|
}
|
|
96
96
|
finally {
|
|
97
97
|
await doc.destroy();
|
|
@@ -237,14 +237,51 @@ export async function extractImages(filePath, pages) {
|
|
|
237
237
|
// ─── Internal helpers ────────────────────────────────────────
|
|
238
238
|
/**
|
|
239
239
|
* Extract text from a single page with Y-coordinate-based line ordering.
|
|
240
|
+
*
|
|
241
|
+
* Issue #3 (v0.4.0): when `options.splitColumns >= 2`, text items are first
|
|
242
|
+
* partitioned into N equal-width X buckets, and each bucket is reordered
|
|
243
|
+
* independently. The result is `bucket[0] (leftmost) → bucket[N-1]
|
|
244
|
+
* (rightmost)`, with `\n\n` separators between buckets so a downstream LLM
|
|
245
|
+
* can tell columns apart. Use this for **untagged** multi-column PDFs
|
|
246
|
+
* (typical of older 新旧対照表 PDFs); Tagged PDFs with proper `<Table>`
|
|
247
|
+
* markup should use `extract_tables` instead.
|
|
240
248
|
*/
|
|
241
|
-
async function extractPageText(page) {
|
|
249
|
+
async function extractPageText(page, options = {}) {
|
|
242
250
|
const content = await page.getTextContent();
|
|
243
251
|
const items = content.items.filter((item) => 'str' in item && item.str !== undefined);
|
|
252
|
+
if (items.length === 0)
|
|
253
|
+
return '';
|
|
254
|
+
const splitColumns = options.splitColumns ?? 1;
|
|
255
|
+
if (splitColumns >= 2) {
|
|
256
|
+
// pdfjs-dist returns each page's `view` as [x1, y1, x2, y2] in user space.
|
|
257
|
+
// For most documents the X range starts at 0, so x2 = page width.
|
|
258
|
+
const view = page.view;
|
|
259
|
+
const pageWidth = view[2] - view[0];
|
|
260
|
+
const colWidth = pageWidth / splitColumns;
|
|
261
|
+
const buckets = Array.from({ length: splitColumns }, () => []);
|
|
262
|
+
for (const item of items) {
|
|
263
|
+
const x = item.transform[4] - view[0];
|
|
264
|
+
const colIdx = Math.min(Math.max(0, Math.floor(x / colWidth)), splitColumns - 1);
|
|
265
|
+
buckets[colIdx].push(item);
|
|
266
|
+
}
|
|
267
|
+
const columnTexts = buckets.map((bucket) => itemsToText(bucket, options));
|
|
268
|
+
return columnTexts.filter((s) => s.length > 0).join('\n\n');
|
|
269
|
+
}
|
|
270
|
+
return itemsToText(items, options);
|
|
271
|
+
}
|
|
272
|
+
/**
|
|
273
|
+
* Reorder a flat list of TextItems by Y descending, then X ascending,
|
|
274
|
+
* grouping into lines by Y proximity. Extracted from `extractPageText` so
|
|
275
|
+
* the column-aware path can reuse the same line-grouping logic per bucket.
|
|
276
|
+
*
|
|
277
|
+
* If `options.compactWhitespace` is true, the assembled text passes through
|
|
278
|
+
* `compactRuns` as a final step.
|
|
279
|
+
*/
|
|
280
|
+
function itemsToText(items, options = {}) {
|
|
244
281
|
if (items.length === 0)
|
|
245
282
|
return '';
|
|
246
283
|
// Sort by Y descending (top to bottom), then X ascending (left to right)
|
|
247
|
-
items.sort((a, b) => {
|
|
284
|
+
const sorted = [...items].sort((a, b) => {
|
|
248
285
|
const ay = a.transform[5];
|
|
249
286
|
const by = b.transform[5];
|
|
250
287
|
const yDiff = by - ay;
|
|
@@ -255,11 +292,10 @@ async function extractPageText(page) {
|
|
|
255
292
|
// Group into lines based on Y-coordinate proximity
|
|
256
293
|
const lines = [];
|
|
257
294
|
let currentLine = [];
|
|
258
|
-
let lastY =
|
|
259
|
-
for (const item of
|
|
295
|
+
let lastY = sorted[0].transform[5];
|
|
296
|
+
for (const item of sorted) {
|
|
260
297
|
const y = item.transform[5];
|
|
261
298
|
if (Math.abs(y - lastY) > 2) {
|
|
262
|
-
// New line
|
|
263
299
|
if (currentLine.length > 0) {
|
|
264
300
|
lines.push(currentLine.join(' '));
|
|
265
301
|
currentLine = [];
|
|
@@ -271,7 +307,24 @@ async function extractPageText(page) {
|
|
|
271
307
|
if (currentLine.length > 0) {
|
|
272
308
|
lines.push(currentLine.join(' '));
|
|
273
309
|
}
|
|
274
|
-
|
|
310
|
+
const text = lines.join('\n');
|
|
311
|
+
return options.compactWhitespace ? compactRuns(text) : text;
|
|
312
|
+
}
|
|
313
|
+
/**
|
|
314
|
+
* Issue #4: collapse whitespace runs (incl. fullwidth U+3000) to one ASCII
|
|
315
|
+
* space, trim each line, and drop lines that become empty after trimming.
|
|
316
|
+
*
|
|
317
|
+
* Newlines are preserved so paragraph / line structure stays readable.
|
|
318
|
+
* Per-cell kerning whitespace ("消 費 税" → "消費税") is intentionally NOT
|
|
319
|
+
* touched here — that requires CJK-aware logic and lives in
|
|
320
|
+
* `extract_tables`'s `compactCellText`.
|
|
321
|
+
*/
|
|
322
|
+
function compactRuns(text) {
|
|
323
|
+
return text
|
|
324
|
+
.split('\n')
|
|
325
|
+
.map((line) => line.replace(/[\s ]+/g, ' ').trim())
|
|
326
|
+
.filter((line) => line.length > 0)
|
|
327
|
+
.join('\n');
|
|
275
328
|
}
|
|
276
329
|
/**
|
|
277
330
|
* Get MarkInfo dictionary from the catalog.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pdfjs-service.js","sourceRoot":"","sources":["../../src/services/pdfjs-service.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"pdfjs-service.js","sourceRoot":"","sources":["../../src/services/pdfjs-service.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EACL,WAAW,EACX,GAAG,GAGJ,MAAM,iCAAiC,CAAC;AAEzC,OAAO,EAAE,sBAAsB,EAAE,MAAM,iBAAiB,CAAC;AAgBzD,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AACvF,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAEvD;;;;GAIG;AACH,MAAM,eAAe,GAAG,CAAC,CAAC,CAAC,wBAAwB;AAEnD;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,YAAY,CAAC,QAAgB;IACjD,MAAM,IAAI,GAAG,MAAM,WAAW,CAAC,QAAQ,CAAC,CAAC;IACzC,MAAM,GAAG,GAAG,MAAM,WAAW,CAAC,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE,SAAS,EAAE,eAAe,EAAE,CAAC,CAAC,OAAO,CAAC;IAClG,OAAO,GAAG,CAAC;AACb,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,oBAAoB,CAAC,IAAgB;IACzD,MAAM,GAAG,GAAG,MAAM,WAAW,CAAC,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE,SAAS,EAAE,eAAe,EAAE,CAAC,CAAC,OAAO,CAAC;IAClG,OAAO,GAAG,CAAC;AACb,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,WAAW,CAAC,QAAgB;IAChD,MAAM,GAAG,GAAG,MAAM,YAAY,CAAC,QAAQ,CAAC,CAAC;IACzC,IAAI,CAAC;QACH,OAAO,MAAM,kBAAkB,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC;IACjD,CAAC;YAAS,CAAC;QACT,MAAM,GAAG,CAAC,OAAO,EAAE,CAAC;IACtB,CAAC;AACH,CAAC;AAED;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,kBAAkB,CACtC,GAAqB,EACrB,QAAgB;IAEhB,MAAM,QAAQ,GAAG,MAAM,WAAW,CAAC,QAAQ,CAAC,CAAC;IAC7C,MAAM,IAAI,GAAG,MAAM,GAAG,CAAC,WAAW,EAAE,CAAC;IACrC,MAAM,IAAI,GAAG,IAAI,CAAC,IAA+B,CAAC;IAElD,kBAAkB;IAClB,MAAM,QAAQ,GAAG,MAAM,WAAW,CAAC,GAAG,CAAC,CAAC;IACxC,MAAM,QAAQ,GAAG,QAAQ,EAAE,MAAM,KAAK,IAAI,CAAC;IAE3C,yDAAyD;IACzD,MAAM,aAAa,GAAG,MAAM,eAAe,CAAC,GAAG,CAAC,CAAC;IAEjD,OAAO;QACL,KAAK,EAAE,cAAc,CAAC,IAAI,CAAC,KAAK,CAAC;QACjC,MAAM,EAAE,cAAc,CAAC,IAAI,CAAC,MAAM,CAAC;QACnC,OAAO,EAAE,cAAc,CAAC,IAAI,CAAC,OAAO,CAAC;QACrC,QAAQ,EAAE,cAAc,CAAC,IAAI,CAAC,QAAQ,CAAC;QACvC,OAAO,EAAE,cAAc,CAAC,IAAI,CAAC,OAAO,CAAC;QACrC,QAAQ,EAAE,cAAc,CAAC,IAAI,CAAC,QAAQ,CAAC;QACvC,YAAY,EAAE,cAAc,CAAC,IAAI,CAAC,YAAY,CAAC;QAC/C,gBAAgB,EAAE,cAAc,CAAC,IAAI,CAAC,OAAO,CAAC;QAC9C,SAAS,EAAE,GAAG,CAAC,QAAQ;QACvB,UAAU,EAAE,cAAc,CAAC,IAAI,CAAC,gBAAgB,CAAC;QACjD,YAAY,EAAE,IAAI,CAAC,YAAY,KAAK,IAAI;QACxC,WAAW,EAAE,MAAM,gBAAgB,CAAC,QAAQ,CAAC;QAC7C,QAAQ;QACR,aAAa;QACb,QAAQ;KACT,CAAC;AACJ,CAAC;AAkBD;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,kBAAkB,CACtC,GAAqB,EACrB,KAAc,EACd,UAA8B,EAAE;IAEhC,MAAM,WAAW,GAAG,kBAAkB,CAAC,KAAK,EAAE,GAAG,CAAC,QAAQ,CAAC,CAAC;IAE5D,uCAAuC;IACvC,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,GAAG,CAC/B,WAAW,CAAC,GAAG,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE;QAChC,MAAM,IAAI,GAAG,MAAM,GAAG,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;QACxC,MAAM,IAAI,GAAG,MAAM,eAAe,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;QAClD,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;IACjC,CAAC,CAAC,CACH,CAAC;IAEF,OAAO,OAAO,CAAC;AACjB,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,WAAW,CAC/B,QAAgB,EAChB,KAAc,EACd,UAA8B,EAAE;IAEhC,MAAM,GAAG,GAAG,MAAM,YAAY,CAAC,QAAQ,CAAC,CAAC;IAEzC,IAAI,CAAC;QACH,OAAO,MAAM,kBAAkB,CAAC,GAAG,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC;IACvD,CAAC;YAAS,CAAC;QACT,MAAM,GAAG,CAAC,OAAO,EAAE,CAAC;IACtB,CAAC;AACH,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,UAAU,CAC9B,QAAgB,EAChB,KAAa,EACb,eAAuB,sBAAsB,EAC7C,KAAc;IAEd,MAAM,GAAG,GAAG,MAAM,YAAY,CAAC,QAAQ,CAAC,CAAC;IACzC,MAAM,UAAU,GAAG,KAAK,CAAC,WAAW,EAAE,CAAC;IAEvC,IAAI,CAAC;QACH,MAAM,WAAW,GAAG,kBAAkB,CAAC,KAAK,EAAE,GAAG,CAAC,QAAQ,CAAC,CAAC;QAE5D,kBAAkB;QAClB,MAAM,SAAS,GAAG,MAAM,OAAO,CAAC,GAAG,CACjC,WAAW,CAAC,GAAG,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE;YAChC,MAAM,IAAI,GAAG,MAAM,GAAG,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;YACxC,MAAM,QAAQ,GAAG,MAAM,eAAe,CAAC,IAAI,CAAC,CAAC;YAC7C,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,CAAC;QAC/B,CAAC,CAAC,CACH,CAAC;QAEF,kCAAkC;QAClC,MAAM,OAAO,GAAkB,EAAE,CAAC;QAClC,KAAK,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,IAAI,SAAS,EAAE,CAAC;YAC9C,MAAM,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YAEnC,KAAK,IAAI,OAAO,GAAG,CAAC,EAAE,OAAO,GAAG,KAAK,CAAC,MAAM,EAAE,OAAO,EAAE,EAAE,CAAC;gBACxD,MAAM,IAAI,GAAG,KAAK,CAAC,OAAO,CAAC,CAAC;gBAC5B,MAAM,SAAS,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;gBACrC,IAAI,WAAW,GAAG,CAAC,CAAC;gBAEpB,OAAO,IAAI,EAAE,CAAC;oBACZ,MAAM,GAAG,GAAG,SAAS,CAAC,OAAO,CAAC,UAAU,EAAE,WAAW,CAAC,CAAC;oBACvD,IAAI,GAAG,KAAK,CAAC,CAAC;wBAAE,MAAM;oBAEtB,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE,GAAG,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC;oBACtD,MAAM,aAAa,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,GAAG,YAAY,CAAC,EAAE,GAAG,CAAC,CAAC;oBACvE,MAAM,YAAY,GAAG,IAAI,CAAC,KAAK,CAC7B,GAAG,GAAG,KAAK,CAAC,MAAM,EAClB,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,GAAG,KAAK,CAAC,MAAM,GAAG,YAAY,CAAC,CACzD,CAAC;oBAEF,OAAO,CAAC,IAAI,CAAC;wBACX,IAAI,EAAE,OAAO;wBACb,SAAS,EAAE,OAAO;wBAClB,IAAI,EAAE,SAAS;wBACf,aAAa;wBACb,YAAY;qBACb,CAAC,CAAC;oBAEH,WAAW,GAAG,GAAG,GAAG,KAAK,CAAC,MAAM,CAAC;gBACnC,CAAC;YACH,CAAC;QACH,CAAC;QAED,OAAO,OAAO,CAAC;IACjB,CAAC;YAAS,CAAC;QACT,MAAM,GAAG,CAAC,OAAO,EAAE,CAAC;IACtB,CAAC;AACH,CAAC;AAED;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,kBAAkB,CAAC,GAAqB,EAAE,KAAc;IAC5E,MAAM,WAAW,GAAG,kBAAkB,CAAC,KAAK,EAAE,GAAG,CAAC,QAAQ,CAAC,CAAC;IAE5D,6BAA6B;IAC7B,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,GAAG,CAC9B,WAAW,CAAC,GAAG,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE;QAChC,MAAM,IAAI,GAAG,MAAM,GAAG,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;QACxC,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,eAAe,EAAE,CAAC;QAC5C,IAAI,KAAK,GAAG,CAAC,CAAC;QACd,KAAK,MAAM,EAAE,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;YAChC,IAAI,EAAE,KAAK,GAAG,CAAC,iBAAiB,IAAI,EAAE,KAAK,GAAG,CAAC,uBAAuB,EAAE,CAAC;gBACvE,KAAK,EAAE,CAAC;YACV,CAAC;QACH,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC,CAAC,CACH,CAAC;IAEF,OAAO,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;AAC/C,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,WAAW,CAAC,QAAgB,EAAE,KAAc;IAChE,MAAM,GAAG,GAAG,MAAM,YAAY,CAAC,QAAQ,CAAC,CAAC;IAEzC,IAAI,CAAC;QACH,OAAO,MAAM,kBAAkB,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;IAC9C,CAAC;YAAS,CAAC;QACT,MAAM,GAAG,CAAC,OAAO,EAAE,CAAC;IACtB,CAAC;AACH,CAAC;AAED;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,aAAa,CACjC,QAAgB,EAChB,KAAc;IAEd,MAAM,GAAG,GAAG,MAAM,YAAY,CAAC,QAAQ,CAAC,CAAC;IAEzC,IAAI,CAAC;QACH,MAAM,WAAW,GAAG,kBAAkB,CAAC,KAAK,EAAE,GAAG,CAAC,QAAQ,CAAC,CAAC;QAE5D,iBAAiB;QACjB,MAAM,WAAW,GAAG,MAAM,OAAO,CAAC,GAAG,CACnC,WAAW,CAAC,GAAG,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE;YAChC,MAAM,IAAI,GAAG,MAAM,GAAG,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;YACxC,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,eAAe,EAAE,CAAC;YAE5C,MAAM,UAAU,GAAqB,EAAE,CAAC;YACxC,IAAI,YAAY,GAAG,CAAC,CAAC;YACrB,IAAI,UAAU,GAAG,CAAC,CAAC;YAEnB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;gBAC/C,MAAM,EAAE,GAAG,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;gBAC7B,IAAI,EAAE,KAAK,GAAG,CAAC,iBAAiB,EAAE,CAAC;oBACjC,YAAY,EAAE,CAAC;oBACf,IAAI,CAAC;wBACH,MAAM,OAAO,GAAG,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAW,CAAC;wBACjD,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;wBACvB,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO,CAKxB,CAAC;wBAET,IAAI,OAAO,EAAE,IAAI,EAAE,CAAC;4BAClB,MAAM,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;4BAC5D,MAAM,UAAU,GACd,OAAO,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,WAAW,CAAC;4BAEzE,UAAU,CAAC,IAAI,CAAC;gCACd,IAAI,EAAE,OAAO;gCACb,KAAK,EAAE,UAAU;gCACjB,KAAK,EAAE,OAAO,CAAC,KAAK;gCACpB,MAAM,EAAE,OAAO,CAAC,MAAM;gCACtB,UAAU;gCACV,gBAAgB,EAAE,CAAC;gCACnB,UAAU,EAAE,MAAM;6BACnB,CAAC,CAAC;wBACL,CAAC;oBACH,CAAC;oBAAC,MAAM,CAAC;wBACP,mDAAmD;oBACrD,CAAC;oBACD,UAAU,EAAE,CAAC;gBACf,CAAC;YACH,CAAC;YACD,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,CAAC;QACtC,CAAC,CAAC,CACH,CAAC;QAEF,aAAa;QACb,MAAM,MAAM,GAAG,WAAW,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC;QACxD,MAAM,aAAa,GAAG,WAAW,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC,YAAY,EAAE,CAAC,CAAC,CAAC;QAE9E,OAAO;YACL,MAAM;YACN,aAAa;YACb,cAAc,EAAE,MAAM,CAAC,MAAM;YAC7B,YAAY,EAAE,aAAa,GAAG,MAAM,CAAC,MAAM;SAC5C,CAAC;IACJ,CAAC;YAAS,CAAC;QACT,MAAM,GAAG,CAAC,OAAO,EAAE,CAAC;IACtB,CAAC;AACH,CAAC;AAED,gEAAgE;AAEhE;;;;;;;;;;GAUG;AACH,KAAK,UAAU,eAAe,CAC5B,IAAkB,EAClB,UAA8B,EAAE;IAEhC,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;IAC5C,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,MAAM,CAChC,CAAC,IAAI,EAAoB,EAAE,CAAC,KAAK,IAAI,IAAI,IAAI,IAAI,CAAC,GAAG,KAAK,SAAS,CACpE,CAAC;IAEF,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,EAAE,CAAC;IAElC,MAAM,YAAY,GAAG,OAAO,CAAC,YAAY,IAAI,CAAC,CAAC;IAE/C,IAAI,YAAY,IAAI,CAAC,EAAE,CAAC;QACtB,2EAA2E;QAC3E,kEAAkE;QAClE,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;QACvB,MAAM,SAAS,GAAG,IAAI,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;QACpC,MAAM,QAAQ,GAAG,SAAS,GAAG,YAAY,CAAC;QAE1C,MAAM,OAAO,GAAiB,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,YAAY,EAAE,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC;QAC7E,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YACzB,MAAM,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;YACtC,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,QAAQ,CAAC,CAAC,EAAE,YAAY,GAAG,CAAC,CAAC,CAAC;YACjF,OAAO,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC7B,CAAC;QAED,MAAM,WAAW,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,WAAW,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;QAC1E,OAAO,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAC9D,CAAC;IAED,OAAO,WAAW,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;AACrC,CAAC;AAED;;;;;;;GAOG;AACH,SAAS,WAAW,CAAC,KAAiB,EAAE,UAA8B,EAAE;IACtE,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,EAAE,CAAC;IAElC,yEAAyE;IACzE,MAAM,MAAM,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;QACtC,MAAM,EAAE,GAAG,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;QAC1B,MAAM,EAAE,GAAG,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;QAC1B,MAAM,KAAK,GAAG,EAAE,GAAG,EAAE,CAAC;QACtB,IAAI,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC;YAAE,OAAO,KAAK,CAAC,CAAC,kBAAkB;QACzD,OAAO,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,uBAAuB;IACjE,CAAC,CAAC,CAAC;IAEH,mDAAmD;IACnD,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,IAAI,WAAW,GAAa,EAAE,CAAC;IAC/B,IAAI,KAAK,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;IAEnC,KAAK,MAAM,IAAI,IAAI,MAAM,EAAE,CAAC;QAC1B,MAAM,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;QAC5B,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC;YAC5B,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAC3B,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;gBAClC,WAAW,GAAG,EAAE,CAAC;YACnB,CAAC;QACH,CAAC;QACD,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAC3B,KAAK,GAAG,CAAC,CAAC;IACZ,CAAC;IAED,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC3B,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;IACpC,CAAC;IAED,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC9B,OAAO,OAAO,CAAC,iBAAiB,CAAC,CAAC,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;AAC9D,CAAC;AAED;;;;;;;;GAQG;AACH,SAAS,WAAW,CAAC,IAAY;IAC/B,OAAO,IAAI;SACR,KAAK,CAAC,IAAI,CAAC;SACX,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC;SAClD,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;SACjC,IAAI,CAAC,IAAI,CAAC,CAAC;AAChB,CAAC;AAED;;GAEG;AACH,KAAK,UAAU,WAAW,CAAC,GAAqB;IAC9C,IAAI,CAAC;QACH,MAAM,QAAQ,GAAG,MAAM,GAAG,CAAC,WAAW,EAAE,CAAC;QACzC,OAAO,QAAQ,CAAC;IAClB,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED;;;;;;;GAOG;AACH,KAAK,UAAU,eAAe,CAAC,GAAqB;IAClD,IAAI,CAAC;QACH,wCAAwC;QACxC,MAAM,YAAY,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC;QAC/C,MAAM,WAAW,GAAG,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,YAAY,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;QAE1E,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,GAAG,CAC/B,WAAW,CAAC,GAAG,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE;YAChC,MAAM,IAAI,GAAG,MAAM,GAAG,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;YACxC,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;YAChD,OAAO,WAAW,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,OAAO,KAAK,QAAQ,IAAI,KAAK,CAAC,SAAS,KAAK,KAAK,CAAC,CAAC;QAC9F,CAAC,CAAC,CACH,CAAC;QAEF,OAAO,OAAO,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC;IAC1C,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC;AAED,SAAS,cAAc,CAAC,KAAc;IACpC,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC;QAAE,OAAO,KAAK,CAAC;IAChE,OAAO,IAAI,CAAC;AACd,CAAC;AAED,4DAA4D;AAE5D;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,kBAAkB,CAAC,GAAqB;IAC5D,kBAAkB;IAClB,MAAM,QAAQ,GAAG,MAAM,WAAW,CAAC,GAAG,CAAC,CAAC;IACxC,MAAM,QAAQ,GAAG,QAAQ,EAAE,MAAM,KAAK,IAAI,CAAC;IAE3C,IAAI,CAAC,QAAQ,EAAE,CAAC;QACd,OAAO;YACL,QAAQ,EAAE,KAAK;YACf,OAAO,EAAE,IAAI;YACb,QAAQ,EAAE,CAAC;YACX,aAAa,EAAE,CAAC;YAChB,UAAU,EAAE,EAAE;SACf,CAAC;IACJ,CAAC;IAED,kBAAkB;IAClB,MAAM,WAAW,GAAG,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,GAAG,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;IAC1E,MAAM,WAAW,GAAG,MAAM,OAAO,CAAC,GAAG,CACnC,WAAW,CAAC,GAAG,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE;QAChC,MAAM,IAAI,GAAG,MAAM,GAAG,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;QACxC,IAAI,CAAC;YACH,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,aAAa,EAAE,CAAC;YACxC,IAAI,IAAI,EAAE,CAAC;gBACT,MAAM,eAAe,GAA2B,EAAE,CAAC;gBACnD,MAAM,IAAI,GAAG,YAAY,CAAC,IAAI,EAAE,eAAe,EAAE,CAAC,CAAC,CAAC;gBACpD,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,eAAe,EAAE,CAAC;YAC/C,CAAC;QACH,CAAC;QAAC,MAAM,CAAC;YACP,yCAAyC;QAC3C,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC,CAAC,CACH,CAAC;IAEF,aAAa;IACb,MAAM,UAAU,GAA2B,EAAE,CAAC;IAC9C,IAAI,aAAa,GAAG,CAAC,CAAC;IACtB,IAAI,QAAQ,GAAG,CAAC,CAAC;IACjB,MAAM,YAAY,GAAc,EAAE,CAAC;IAEnC,KAAK,MAAM,MAAM,IAAI,WAAW,EAAE,CAAC;QACjC,IAAI,CAAC,MAAM;YAAE,SAAS;QACtB,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QAC/B,aAAa,IAAI,gBAAgB,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QAC/C,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC;QACxD,yBAAyB;QACzB,KAAK,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,UAAU,CAAC,EAAE,CAAC;YAC9D,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,KAAK,CAAC;QACrD,CAAC;IACH,CAAC;IAED,MAAM,OAAO,GACX,YAAY,CAAC,MAAM,GAAG,CAAC;QACrB,CAAC,CAAC,EAAE,IAAI,EAAE,gBAAgB,EAAE,QAAQ,EAAE,YAAY,EAAE,YAAY,EAAE,CAAC,EAAE;QACrE,CAAC,CAAC,IAAI,CAAC;IAEX,IAAI,OAAO,EAAE,CAAC;QACZ,QAAQ,IAAI,CAAC,CAAC,CAAC,6BAA6B;IAC9C,CAAC;IAED,OAAO;QACL,QAAQ;QACR,OAAO;QACP,QAAQ;QACR,aAAa;QACb,UAAU;KACX,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,WAAW,CAAC,QAAgB;IAChD,MAAM,GAAG,GAAG,MAAM,YAAY,CAAC,QAAQ,CAAC,CAAC;IACzC,IAAI,CAAC;QACH,OAAO,MAAM,kBAAkB,CAAC,GAAG,CAAC,CAAC;IACvC,CAAC;YAAS,CAAC;QACT,MAAM,GAAG,CAAC,OAAO,EAAE,CAAC;IACtB,CAAC;AACH,CAAC;AAED,8EAA8E;AAE9E;;;;;;;;;;;;;;;;;;GAkBG;AACH,MAAM,CAAC,KAAK,UAAU,oBAAoB,CACxC,GAAqB,EACrB,KAAc;IAEd,MAAM,QAAQ,GAAG,MAAM,WAAW,CAAC,GAAG,CAAC,CAAC;IACxC,MAAM,QAAQ,GAAG,QAAQ,EAAE,MAAM,KAAK,IAAI,CAAC;IAE3C,IAAI,CAAC,QAAQ,EAAE,CAAC;QACd,OAAO;YACL,QAAQ,EAAE,KAAK;YACf,MAAM,EAAE,EAAE;YACV,WAAW,EAAE,CAAC;YACd,YAAY,EAAE,CAAC;YACf,IAAI,EACF,0EAA0E;gBAC1E,iEAAiE;gBACjE,8DAA8D;SACjE,CAAC;IACJ,CAAC;IAED,MAAM,WAAW,GAAG,kBAAkB,CAAC,KAAK,EAAE,GAAG,CAAC,QAAQ,CAAC,CAAC;IAE5D,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,GAAG,CAC/B,WAAW,CAAC,GAAG,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE;QAChC,MAAM,IAAI,GAAG,MAAM,GAAG,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;QACxC,IAAI,CAAC;YACH,MAAM,CAAC,IAAI,EAAE,WAAW,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;gBAC5C,IAAI,CAAC,aAAa,EAAE;gBACpB,IAAI,CAAC,cAAc,CAAC,EAAE,oBAAoB,EAAE,IAAI,EAAE,CAAC;aACpD,CAAC,CAAC;YACH,IAAI,CAAC,IAAI;gBAAE,OAAO,EAAsB,CAAC;YAEzC,MAAM,QAAQ,GAAG,gBAAgB,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;YACrD,MAAM,MAAM,GAAqB,EAAE,CAAC;YACpC,aAAa,CAAC,IAA6B,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAC;YACxE,OAAO,MAAM,CAAC;QAChB,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,EAAsB,CAAC;QAChC,CAAC;IACH,CAAC,CAAC,CACH,CAAC;IAEF,MAAM,MAAM,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC;IAC9B,OAAO;QACL,QAAQ,EAAE,IAAI;QACd,MAAM;QACN,WAAW,EAAE,MAAM,CAAC,MAAM;QAC1B,YAAY,EAAE,WAAW,CAAC,MAAM;KACjC,CAAC;AACJ,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,aAAa,CACjC,QAAgB,EAChB,KAAc;IAEd,MAAM,GAAG,GAAG,MAAM,YAAY,CAAC,QAAQ,CAAC,CAAC;IACzC,IAAI,CAAC;QACH,OAAO,MAAM,oBAAoB,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;IAChD,CAAC;YAAS,CAAC;QACT,MAAM,GAAG,CAAC,OAAO,EAAE,CAAC;IACtB,CAAC;AACH,CAAC;AAqBD;;;;;;;;GAQG;AACH,SAAS,gBAAgB,CAAC,KAA4B;IACpD,MAAM,GAAG,GAAG,IAAI,GAAG,EAAoB,CAAC;IACxC,MAAM,KAAK,GAAiD,EAAE,CAAC;IAE/D,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,MAAM,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC;QACpB,IAAI,CAAC,KAAK,oBAAoB,IAAI,CAAC,KAAK,yBAAyB,EAAE,CAAC;YAClE,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,KAAK,UAAU,CAAC;YAC3C,MAAM,EAAE,GAAG,IAAI,CAAC,EAAE,IAAI,IAAI,CAAC;YAC3B,KAAK,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,UAAU,EAAE,CAAC,CAAC;YAC/B,SAAS;QACX,CAAC;QACD,IAAI,CAAC,KAAK,kBAAkB,EAAE,CAAC;YAC7B,KAAK,CAAC,GAAG,EAAE,CAAC;YACZ,SAAS;QACX,CAAC;QACD,IAAI,CAAC,KAAK,SAAS;YAAE,SAAS,CAAC,iBAAiB;QAChD,YAAY;QACZ,IAAI,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC;YAAE,SAAS;QAC9C,MAAM,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,IAAI,EAAE,CAAC,CAAC;QACjD,IAAI,CAAC,GAAG;YAAE,SAAS;QACnB,KAAK,MAAM,KAAK,IAAI,KAAK,EAAE,CAAC;YAC1B,IAAI,KAAK,CAAC,EAAE,EAAE,CAAC;gBACb,MAAM,GAAG,GAAG,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;gBAC9B,IAAI,GAAG;oBAAE,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;;oBAClB,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;YAChC,CAAC;QACH,CAAC;IACH,CAAC;IAED,MAAM,GAAG,GAAG,IAAI,GAAG,EAAkB,CAAC;IACtC,KAAK,MAAM,CAAC,EAAE,EAAE,KAAK,CAAC,IAAI,GAAG;QAAE,GAAG,CAAC,GAAG,CAAC,EAAE,EAAE,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;IAC3D,OAAO,GAAG,CAAC;AACb,CAAC;AAED,mFAAmF;AACnF,SAAS,aAAa,CACpB,IAAgB,EAChB,OAAe,EACf,QAA6B,EAC7B,GAAqB;IAErB,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS;QAAE,OAAO;IAEpC,IAAI,IAAI,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;QAC1B,MAAM,UAAU,GAAe,EAAE,CAAC;QAClC,MAAM,QAAQ,GAAe,EAAE,CAAC;QAChC,MAAM,UAAU,GAAe,EAAE,CAAC;QAElC,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,QAAQ,IAAI,EAAE,EAAE,CAAC;YACxC,IAAI,KAAK,CAAC,IAAI,KAAK,SAAS;gBAAE,SAAS;YACvC,IAAI,KAAK,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;gBAC3B,0BAA0B,CAAC,KAAK,EAAE,QAAQ,EAAE,UAAU,CAAC,CAAC;YAC1D,CAAC;iBAAM,IAAI,KAAK,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;gBAClC,0BAA0B,CAAC,KAAK,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC;YACxD,CAAC;iBAAM,IAAI,KAAK,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;gBAClC,0BAA0B,CAAC,KAAK,EAAE,QAAQ,EAAE,UAAU,CAAC,CAAC;YAC1D,CAAC;iBAAM,IAAI,KAAK,CAAC,IAAI,KAAK,IAAI,EAAE,CAAC;gBAC/B,0EAA0E;gBAC1E,MAAM,GAAG,GAAG,cAAc,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;gBAC5C,IAAI,GAAG;oBAAE,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YAC9B,CAAC;QACH,CAAC;QAED,8DAA8D;QAC9D,iEAAiE;QACjE,GAAG,CAAC,IAAI,CAAC;YACP,IAAI,EAAE,OAAO;YACb,KAAK,EAAE,GAAG,CAAC,MAAM,GAAG,CAAC;YACrB,UAAU;YACV,QAAQ;YACR,UAAU;SACX,CAAC,CAAC;QACH,OAAO,CAAC,8DAA8D;QACtE,sEAAsE;IACxE,CAAC;IAED,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,QAAQ,IAAI,EAAE,EAAE,CAAC;QACxC,aAAa,CAAC,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,GAAG,CAAC,CAAC;IAC/C,CAAC;AACH,CAAC;AAED,SAAS,0BAA0B,CACjC,OAAmB,EACnB,QAA6B,EAC7B,GAAe;IAEf,KAAK,MAAM,KAAK,IAAI,OAAO,CAAC,QAAQ,IAAI,EAAE,EAAE,CAAC;QAC3C,IAAI,KAAK,CAAC,IAAI,KAAK,SAAS;YAAE,SAAS;QACvC,IAAI,KAAK,CAAC,IAAI,KAAK,IAAI,EAAE,CAAC;YACxB,MAAM,GAAG,GAAG,cAAc,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;YAC5C,IAAI,GAAG;gBAAE,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACzB,CAAC;IACH,CAAC;AACH,CAAC;AAED,SAAS,cAAc,CAAC,EAAc,EAAE,QAA6B;IACnE,MAAM,KAAK,GAAgB,EAAE,CAAC;IAC9B,KAAK,MAAM,KAAK,IAAI,EAAE,CAAC,QAAQ,IAAI,EAAE,EAAE,CAAC;QACtC,IAAI,KAAK,CAAC,IAAI,KAAK,SAAS;YAAE,SAAS;QACvC,IAAI,KAAK,CAAC,IAAI,KAAK,IAAI,IAAI,KAAK,CAAC,IAAI,KAAK,IAAI,EAAE,CAAC;YAC/C,MAAM,IAAI,GAAG,eAAe,CAAC,gBAAgB,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC,CAAC;YAChE,KAAK,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,CAAC,IAAI,KAAK,IAAI,EAAE,CAAC,CAAC;QACtD,CAAC;IACH,CAAC;IACD,OAAO,KAAK,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC;AAC/C,CAAC;AAED,SAAS,gBAAgB,CAAC,IAAgB,EAAE,QAA6B;IACvE,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;QAC5B,OAAO,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IACtD,CAAC;IACD,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,QAAQ,IAAI,EAAE,EAAE,CAAC;QACxC,KAAK,CAAC,IAAI,CAAC,gBAAgB,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC,CAAC;IAChD,CAAC;IACD,OAAO,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AACzB,CAAC;AAED;;;;;;;;GAQG;AACH,SAAS,eAAe,CAAC,CAAS;IAChC,IAAI,CAAC,CAAC;QAAE,OAAO,EAAE,CAAC;IAClB,sEAAsE;IACtE,IAAI,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,SAAS,EAAE,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC;IACzC,yEAAyE;IACzE,yEAAyE;IACzE,MAAM,GAAG,GAAG,iDAAiD,CAAC;IAC9D,MAAM,UAAU,GAAG,IAAI,MAAM,CAAC,MAAM,GAAG,SAAS,GAAG,EAAE,EAAE,GAAG,CAAC,CAAC;IAC5D,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,UAAU,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC;IACtD,4CAA4C;IAC5C,OAAO,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;AACrD,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,kBAAkB,CACtC,QAAgB,EAChB,KAAc;IAEd,MAAM,GAAG,GAAG,MAAM,YAAY,CAAC,QAAQ,CAAC,CAAC;IAEzC,IAAI,CAAC;QACH,MAAM,WAAW,GAAG,kBAAkB,CAAC,KAAK,EAAE,GAAG,CAAC,QAAQ,CAAC,CAAC;QAE5D,MAAM,cAAc,GAAG,IAAI,GAAG,CAAC;YAC7B,MAAM;YACN,UAAU;YACV,MAAM;YACN,QAAQ;YACR,QAAQ;YACR,SAAS;YACT,UAAU;YACV,WAAW;YACX,WAAW;YACX,UAAU;YACV,WAAW;YACX,OAAO;YACP,OAAO;YACP,KAAK;YACL,OAAO;YACP,QAAQ;SACT,CAAC,CAAC;QAEH,oBAAoB;QACpB,MAAM,WAAW,GAAG,MAAM,OAAO,CAAC,GAAG,CACnC,WAAW,CAAC,GAAG,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE;YAChC,MAAM,IAAI,GAAG,MAAM,GAAG,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;YACxC,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;YAE3C,MAAM,eAAe,GAAqB,EAAE,CAAC;YAC7C,MAAM,aAAa,GAA2B,EAAE,CAAC;YACjD,IAAI,YAAY,GAAG,KAAK,CAAC;YACzB,IAAI,YAAY,GAAG,KAAK,CAAC;YACzB,IAAI,aAAa,GAAG,KAAK,CAAC;YAE1B,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;gBAC3B,MAAM,OAAO,GAAW,KAAK,CAAC,OAAO,IAAI,SAAS,CAAC;gBAEnD,aAAa,CAAC,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;gBAE3D,IAAI,OAAO,KAAK,MAAM;oBAAE,YAAY,GAAG,IAAI,CAAC;gBAC5C,IAAI,OAAO,KAAK,QAAQ;oBAAE,YAAY,GAAG,IAAI,CAAC;gBAC9C,IAAI,cAAc,CAAC,GAAG,CAAC,OAAO,CAAC;oBAAE,aAAa,GAAG,IAAI,CAAC;gBAEtD,eAAe,CAAC,IAAI,CAAC;oBACnB,OAAO;oBACP,IAAI,EAAE,OAAO;oBACb,IAAI,EAAE,KAAK,CAAC,IAAI,IAAI,IAAI;oBACxB,QAAQ,EAAE,cAAc,CAAC,KAAK,CAAC,WAAW,EAAE,GAAG,CAAC,IAAI,cAAc,CAAC,KAAK,CAAC,QAAQ,CAAC;oBAClF,MAAM,EAAE,cAAc,CAAC,KAAK,CAAC,QAAQ,EAAE,GAAG,CAAC,IAAI,IAAI;oBACnD,gBAAgB,EAAE,cAAc,CAAC,KAAK,CAAC,gBAAgB,CAAC,IAAI,IAAI;oBAChE,aAAa,EAAE,KAAK,CAAC,aAAa,KAAK,IAAI;iBAC5C,CAAC,CAAC;YACL,CAAC;YAED,OAAO;gBACL,OAAO;gBACP,WAAW,EAAE,eAAe;gBAC5B,SAAS,EAAE,aAAa;gBACxB,QAAQ,EAAE,YAAY;gBACtB,QAAQ,EAAE,YAAY;gBACtB,SAAS,EAAE,aAAa;aACzB,CAAC;QACJ,CAAC,CAAC,CACH,CAAC;QAEF,aAAa;QACb,MAAM,WAAW,GAAqB,EAAE,CAAC;QACzC,MAAM,SAAS,GAA2B,EAAE,CAAC;QAC7C,MAAM,MAAM,GAA2B,EAAE,CAAC;QAC1C,IAAI,QAAQ,GAAG,KAAK,CAAC;QACrB,IAAI,QAAQ,GAAG,KAAK,CAAC;QACrB,IAAI,SAAS,GAAG,KAAK,CAAC;QAEtB,KAAK,MAAM,MAAM,IAAI,WAAW,EAAE,CAAC;YACjC,WAAW,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,WAAW,CAAC,CAAC;YACxC,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC;YACnD,QAAQ,GAAG,QAAQ,IAAI,MAAM,CAAC,QAAQ,CAAC;YACvC,QAAQ,GAAG,QAAQ,IAAI,MAAM,CAAC,QAAQ,CAAC;YACvC,SAAS,GAAG,SAAS,IAAI,MAAM,CAAC,SAAS,CAAC;YAC1C,KAAK,MAAM,CAAC,OAAO,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,SAAS,CAAC,EAAE,CAAC;gBAChE,SAAS,CAAC,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,GAAG,KAAK,CAAC;YACzD,CAAC;QACH,CAAC;QAED,OAAO;YACL,gBAAgB,EAAE,WAAW,CAAC,MAAM;YACpC,SAAS;YACT,MAAM;YACN,WAAW;YACX,QAAQ;YACR,QAAQ;YACR,SAAS;SACV,CAAC;IACJ,CAAC;YAAS,CAAC;QACT,MAAM,GAAG,CAAC,OAAO,EAAE,CAAC;IACtB,CAAC;AACH,CAAC;AAcD,SAAS,YAAY,CACnB,IAAwB,EACxB,UAAkC,EAClC,KAAa;IAEb,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,IAAI,SAAS,CAAC;IACpC,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;IAE/C,MAAM,QAAQ,GAAc,EAAE,CAAC;IAC/B,IAAI,YAAY,GAAG,CAAC,CAAC;IAErB,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;QAClB,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YAClC,IAAI,MAAM,IAAI,KAAK,EAAE,CAAC;gBACpB,QAAQ,CAAC,IAAI,CAAC,YAAY,CAAC,KAA2B,EAAE,UAAU,EAAE,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC;YAClF,CAAC;iBAAM,CAAC;gBACN,YAAY,EAAE,CAAC;YACjB,CAAC;QACH,CAAC;IACH,CAAC;IAED,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,YAAY,EAAE,CAAC;AAC1C,CAAC;AAED,SAAS,gBAAgB,CAAC,IAAa;IACrC,IAAI,KAAK,GAAG,CAAC,CAAC;IACd,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;QAClC,KAAK,IAAI,gBAAgB,CAAC,KAAK,CAAC,CAAC;IACnC,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,SAAS,WAAW,CAAC,IAAa;IAChC,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,CAAC,CAAC;IACzC,IAAI,GAAG,GAAG,CAAC,CAAC;IACZ,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;QAClC,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC;IAC1C,CAAC;IACD,OAAO,GAAG,GAAG,CAAC,CAAC;AACjB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"read-text.d.ts","sourceRoot":"","sources":["../../../src/tools/tier1/read-text.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAOzE,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,
|
|
1
|
+
{"version":3,"file":"read-text.d.ts","sourceRoot":"","sources":["../../../src/tools/tier1/read-text.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAOzE,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CA6DxD"}
|
|
@@ -13,18 +13,24 @@ export function registerReadText(server) {
|
|
|
13
13
|
|
|
14
14
|
Text is extracted page by page, sorted by vertical position (top to bottom) then horizontal position (left to right), providing natural reading order.
|
|
15
15
|
|
|
16
|
+
For **untagged** multi-column PDFs (e.g. older 新旧対照表 PDFs that lack a structure tree), pass \`split_columns: 2\` or \`3\` to bucket items by X-coordinate left-to-right. Tagged PDFs with proper \`<Table>\` markup should use the \`extract_tables\` tool instead.
|
|
17
|
+
|
|
18
|
+
For Japanese form-style PDFs (帳票・様式) where U+3000 fullwidth spaces are used as visual indentation, pass \`compact_whitespace: true\` to collapse runs of whitespace to a single ASCII space. Cuts 20–40% of token consumption without losing content.
|
|
19
|
+
|
|
16
20
|
Args:
|
|
17
21
|
- file_path (string): Absolute path to a local PDF file
|
|
18
22
|
- pages (string, optional): Page range to extract. Format: "1-5", "3", or "1,3,5-7". Omit for all pages.
|
|
19
23
|
- response_format ('markdown' | 'json'): Output format (default: 'markdown')
|
|
24
|
+
- split_columns (1 | 2 | 3, optional): Column-aware reordering for untagged multi-column PDFs. Default 1 = existing Y-sort.
|
|
25
|
+
- compact_whitespace (boolean, optional): Collapse whitespace runs (incl. U+3000) to one ASCII space and trim each line. Default false.
|
|
20
26
|
|
|
21
27
|
Returns:
|
|
22
|
-
Extracted text organized by page number.
|
|
28
|
+
Extracted text organized by page number. With \`split_columns >= 2\`, columns are separated by a blank line so a downstream LLM can tell them apart.
|
|
23
29
|
|
|
24
30
|
Examples:
|
|
25
31
|
- Extract all text: { file_path: "/path/to/doc.pdf" }
|
|
26
|
-
-
|
|
27
|
-
-
|
|
32
|
+
- Untagged 新旧対照表: { file_path: "/path/to/older-shinkyu.pdf", split_columns: 2 }
|
|
33
|
+
- Japanese form template: { file_path: "/path/to/form.pdf", compact_whitespace: true }`,
|
|
28
34
|
inputSchema: ReadTextSchema,
|
|
29
35
|
annotations: {
|
|
30
36
|
readOnlyHint: true,
|
|
@@ -34,7 +40,10 @@ Examples:
|
|
|
34
40
|
},
|
|
35
41
|
}, async (params) => {
|
|
36
42
|
try {
|
|
37
|
-
const pages = await extractText(params.file_path, params.pages
|
|
43
|
+
const pages = await extractText(params.file_path, params.pages, {
|
|
44
|
+
splitColumns: params.split_columns,
|
|
45
|
+
compactWhitespace: params.compact_whitespace,
|
|
46
|
+
});
|
|
38
47
|
let text;
|
|
39
48
|
if (params.response_format === ResponseFormat.JSON) {
|
|
40
49
|
text = JSON.stringify(pages, null, 2);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"read-text.js","sourceRoot":"","sources":["../../../src/tools/tier1/read-text.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACpD,OAAO,EAAsB,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAC5E,OAAO,EAAE,WAAW,EAAE,MAAM,iCAAiC,CAAC;AAC9D,OAAO,EAAE,WAAW,EAAE,MAAM,8BAA8B,CAAC;AAC3D,OAAO,EAAE,uBAAuB,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAErF,MAAM,UAAU,gBAAgB,CAAC,MAAiB;IAChD,MAAM,CAAC,YAAY,CACjB,WAAW,EACX;QACE,KAAK,EAAE,eAAe;QACtB,WAAW,EAAE
|
|
1
|
+
{"version":3,"file":"read-text.js","sourceRoot":"","sources":["../../../src/tools/tier1/read-text.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACpD,OAAO,EAAsB,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAC5E,OAAO,EAAE,WAAW,EAAE,MAAM,iCAAiC,CAAC;AAC9D,OAAO,EAAE,WAAW,EAAE,MAAM,8BAA8B,CAAC;AAC3D,OAAO,EAAE,uBAAuB,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAErF,MAAM,UAAU,gBAAgB,CAAC,MAAiB;IAChD,MAAM,CAAC,YAAY,CACjB,WAAW,EACX;QACE,KAAK,EAAE,eAAe;QACtB,WAAW,EAAE;;;;;;;;;;;;;;;;;;;;;yFAqBsE;QACnF,WAAW,EAAE,cAAc;QAC3B,WAAW,EAAE;YACX,YAAY,EAAE,IAAI;YAClB,eAAe,EAAE,KAAK;YACtB,cAAc,EAAE,IAAI;YACpB,aAAa,EAAE,KAAK;SACrB;KACF,EACD,KAAK,EAAE,MAAqB,EAAE,EAAE;QAC9B,IAAI,CAAC;YACH,MAAM,KAAK,GAAG,MAAM,WAAW,CAAC,MAAM,CAAC,SAAS,EAAE,MAAM,CAAC,KAAK,EAAE;gBAC9D,YAAY,EAAE,MAAM,CAAC,aAAa;gBAClC,iBAAiB,EAAE,MAAM,CAAC,kBAAkB;aAC7C,CAAC,CAAC;YAEH,IAAI,IAAY,CAAC;YACjB,IAAI,MAAM,CAAC,eAAe,KAAK,cAAc,CAAC,IAAI,EAAE,CAAC;gBACnD,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;YACxC,CAAC;iBAAM,CAAC;gBACN,IAAI,GAAG,uBAAuB,CAAC,KAAK,CAAC,CAAC;YACxC,CAAC;YAED,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,GAAG,gBAAgB,CAAC,IAAI,CAAC,CAAC;YAEnD,OAAO;gBACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC;aACtD,CAAC;QACJ,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO;gBACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,WAAW,CAAC,KAAK,CAAC,EAAE,CAAC;aAC/D,CAAC;QACJ,CAAC;IACH,CAAC,CACF,CAAC;AACJ,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"read-url.d.ts","sourceRoot":"","sources":["../../../src/tools/tier1/read-url.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAQzE,wBAAgB,eAAe,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,
|
|
1
|
+
{"version":3,"file":"read-url.d.ts","sourceRoot":"","sources":["../../../src/tools/tier1/read-url.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAQzE,wBAAgB,eAAe,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CAiEvD"}
|
|
@@ -14,17 +14,22 @@ export function registerReadUrl(server) {
|
|
|
14
14
|
|
|
15
15
|
Downloads the PDF from the specified URL, then extracts text with Y-coordinate-based reading order. Supports HTTP and HTTPS. Maximum file size: 50MB. Timeout: 30 seconds.
|
|
16
16
|
|
|
17
|
+
Like \`read_text\`, accepts \`split_columns: 2 | 3\` for **untagged** multi-column PDFs and \`compact_whitespace: true\` to collapse U+3000 / ASCII whitespace runs. Tagged PDFs should use \`extract_tables\` instead.
|
|
18
|
+
|
|
17
19
|
Args:
|
|
18
20
|
- url (string): URL pointing to a PDF file (HTTP or HTTPS)
|
|
19
21
|
- pages (string, optional): Page range to extract. Format: "1-5", "3", or "1,3,5-7". Omit for all pages.
|
|
20
22
|
- response_format ('markdown' | 'json'): Output format (default: 'markdown')
|
|
23
|
+
- split_columns (1 | 2 | 3, optional): Column-aware reordering. Default 1 = existing Y-sort.
|
|
24
|
+
- compact_whitespace (boolean, optional): Collapse whitespace runs (incl. U+3000) to one ASCII space. Default false.
|
|
21
25
|
|
|
22
26
|
Returns:
|
|
23
27
|
Extracted text organized by page number, same format as read_text.
|
|
24
28
|
|
|
25
29
|
Examples:
|
|
26
30
|
- Read remote PDF: { url: "https://example.com/document.pdf" }
|
|
27
|
-
-
|
|
31
|
+
- Untagged 2-column PDF: { url: "https://...", split_columns: 2 }
|
|
32
|
+
- Japanese form: { url: "https://...", compact_whitespace: true }`,
|
|
28
33
|
inputSchema: ReadUrlSchema,
|
|
29
34
|
annotations: {
|
|
30
35
|
readOnlyHint: true,
|
|
@@ -37,7 +42,10 @@ Examples:
|
|
|
37
42
|
const data = await fetchPdfFromUrl(params.url);
|
|
38
43
|
const doc = await loadDocumentFromData(data);
|
|
39
44
|
try {
|
|
40
|
-
const results = await extractTextFromDoc(doc, params.pages
|
|
45
|
+
const results = await extractTextFromDoc(doc, params.pages, {
|
|
46
|
+
splitColumns: params.split_columns,
|
|
47
|
+
compactWhitespace: params.compact_whitespace,
|
|
48
|
+
});
|
|
41
49
|
let text;
|
|
42
50
|
if (params.response_format === ResponseFormat.JSON) {
|
|
43
51
|
text = JSON.stringify(results, null, 2);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"read-url.js","sourceRoot":"","sources":["../../../src/tools/tier1/read-url.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACpD,OAAO,EAAqB,aAAa,EAAE,MAAM,wBAAwB,CAAC;AAC1E,OAAO,EAAE,kBAAkB,EAAE,oBAAoB,EAAE,MAAM,iCAAiC,CAAC;AAC3F,OAAO,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAC;AAChE,OAAO,EAAE,WAAW,EAAE,MAAM,8BAA8B,CAAC;AAC3D,OAAO,EAAE,uBAAuB,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAErF,MAAM,UAAU,eAAe,CAAC,MAAiB;IAC/C,MAAM,CAAC,YAAY,CACjB,UAAU,EACV;QACE,KAAK,EAAE,mBAAmB;QAC1B,WAAW,EAAE
|
|
1
|
+
{"version":3,"file":"read-url.js","sourceRoot":"","sources":["../../../src/tools/tier1/read-url.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACpD,OAAO,EAAqB,aAAa,EAAE,MAAM,wBAAwB,CAAC;AAC1E,OAAO,EAAE,kBAAkB,EAAE,oBAAoB,EAAE,MAAM,iCAAiC,CAAC;AAC3F,OAAO,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAC;AAChE,OAAO,EAAE,WAAW,EAAE,MAAM,8BAA8B,CAAC;AAC3D,OAAO,EAAE,uBAAuB,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAErF,MAAM,UAAU,eAAe,CAAC,MAAiB;IAC/C,MAAM,CAAC,YAAY,CACjB,UAAU,EACV;QACE,KAAK,EAAE,mBAAmB;QAC1B,WAAW,EAAE;;;;;;;;;;;;;;;;;;;oEAmBiD;QAC9D,WAAW,EAAE,aAAa;QAC1B,WAAW,EAAE;YACX,YAAY,EAAE,IAAI;YAClB,eAAe,EAAE,KAAK;YACtB,cAAc,EAAE,KAAK;YACrB,aAAa,EAAE,IAAI;SACpB;KACF,EACD,KAAK,EAAE,MAAoB,EAAE,EAAE;QAC7B,IAAI,CAAC;YACH,MAAM,IAAI,GAAG,MAAM,eAAe,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;YAC/C,MAAM,GAAG,GAAG,MAAM,oBAAoB,CAAC,IAAI,CAAC,CAAC;YAE7C,IAAI,CAAC;gBACH,MAAM,OAAO,GAAG,MAAM,kBAAkB,CAAC,GAAG,EAAE,MAAM,CAAC,KAAK,EAAE;oBAC1D,YAAY,EAAE,MAAM,CAAC,aAAa;oBAClC,iBAAiB,EAAE,MAAM,CAAC,kBAAkB;iBAC7C,CAAC,CAAC;gBAEH,IAAI,IAAY,CAAC;gBACjB,IAAI,MAAM,CAAC,eAAe,KAAK,cAAc,CAAC,IAAI,EAAE,CAAC;oBACnD,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;gBAC1C,CAAC;qBAAM,CAAC;oBACN,IAAI,GAAG,uBAAuB,CAAC,OAAO,CAAC,CAAC;gBAC1C,CAAC;gBAED,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,GAAG,gBAAgB,CAAC,IAAI,CAAC,CAAC;gBACnD,OAAO;oBACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC;iBACtD,CAAC;YACJ,CAAC;oBAAS,CAAC;gBACT,MAAM,GAAG,CAAC,OAAO,EAAE,CAAC;YACtB,CAAC;QACH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO;gBACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,WAAW,CAAC,KAAK,CAAC,EAAE,CAAC;aAC/D,CAAC;QACJ,CAAC;IACH,CAAC,CACF,CAAC;AACJ,CAAC"}
|