diff --git a/examples/doc-field-extraction-omni/.gitignore b/examples/doc-field-extraction-omni/.gitignore index 80cbdd6bb..f02a35250 100644 --- a/examples/doc-field-extraction-omni/.gitignore +++ b/examples/doc-field-extraction-omni/.gitignore @@ -1,3 +1,5 @@ data/ +runs/ __pycache__/ .venv/ +.ruff_cache/ diff --git a/examples/doc-field-extraction-omni/README.md b/examples/doc-field-extraction-omni/README.md index 85cad0dab..ff69ea5ec 100644 --- a/examples/doc-field-extraction-omni/README.md +++ b/examples/doc-field-extraction-omni/README.md @@ -1,87 +1,264 @@ # Read documents into your own schema -Replay the recorded extraction comparison on 700 Omni business documents and -100 CORD receipts without an API key, installed dependencies, or model calls: +## What this shows -```bash -python3 fetch.py -python3 score.py +SIE serves Qwen3.8 27B FP8, which reads a business document image into that +document's own JSON schema. The documents, schemas and gold JSON come from the +[OmniAI OCR Benchmark](https://huggingface.co/datasets/getomni-ai/ocr-benchmark): +bank checks, shipping invoices, inspection forms, statements and the like. +Omni's own JSON accuracy grades every reply. + +The recipe puts the schema text in the system message. SIE applies +`response_format` only as a decoding grammar, so a schema sent only there +shapes the output but the model never reads its field descriptions. The +previous version of this example did exactly that, and on the same documents +it scored 75.64 against 91.03 for this recipe. + +The example reruns the published study against any SIE endpoint, grades the +replies with a port of Omni's grader, and reproduces the published numbers +offline with no key, no GPU and no model call. +[superlinked.com/doc-field-extraction](https://superlinked.com/doc-field-extraction) +reports the result. + +## Measured results + +Mean Omni JSON accuracy × 100, over every document in the set. Unparsed, +capped and failed replies stay in the denominator and score 0. + +| Model | Pilot, 100 documents | Confirmation, 546 fresh documents | +| --- | --- | --- | +| SIE Qwen3.8 27B, this recipe | 90.15 | **91.03** (95% CI 89.75 to 92.20) | +| GPT-6 Luna | 89.05 | 90.11 | +| GPT-6 Sol | 93.66 | 94.70 | +| Claude Sonnet 5.5 | 90.01 | 90.44 | +| Claude Haiku 4.5 | 64.82 | 66.00 | +| SIE Qwen3.8 27B, schema only in `response_format` | 76.14 | 75.64 | + +- **Pre-registered test:** SIE against GPT-6 Luna, non-inferiority at a + 3-point margin, one-sided alpha 0.025, format-stratified paired bootstrap + with 10,000 resamples. The difference is +0.92 points with a lower 95% bound + of -0.51, so non-inferiority holds. Superiority is not shown. With Luna's one + capped reply rerun at 8,192 output tokens, the difference is +0.74 (lower + bound -0.69). +- **GPT-6 Sol** scored higher, by 3.67 points. +- **Replies:** SIE parsed 546 of 546, with none capped. Documents with every + gold field right: SIE 219, Luna 229, Sol 255, Sonnet 5.5 266, Haiku 4.5 62. +- **Cost** at list prices on the same 546 documents: USD 13.57 per 1,000 + documents for SIE on the measured profile, 0.61 for GPT-6 Luna. + +Both runs were pre-registered with the recipe frozen, and the confirmation's +546 documents do not overlap the pilot's 100. The rival numbers are their +recorded replies, paired on the same documents. + +**Evidence**, on the public HuggingFace dataset +[superlinked/sie-task-evidence](https://huggingface.co/datasets/superlinked/sie-task-evidence), +each folder at an immutable revision: + +- [`doc-field-extraction-native/2026-10-07`](https://huggingface.co/datasets/superlinked/sie-task-evidence/tree/f10e813f2206348e31da363da2bc90b06086d7d9/doc-field-extraction-native/2026-10-07) + (manifest sha256 `69823e6d88f3a5dccd0602427be28b65e0fd9641ac02c17b6cf76256389fbad9`): + the SIE replies, the readable request bodies, the per-document scores, the + bootstrap, cost and serving logs. Its + [README](https://huggingface.co/datasets/superlinked/sie-task-evidence/blob/f10e813f2206348e31da363da2bc90b06086d7d9/doc-field-extraction-native/2026-10-07/README.md) + and [confirmation README](https://huggingface.co/datasets/superlinked/sie-task-evidence/blob/f10e813f2206348e31da363da2bc90b06086d7d9/doc-field-extraction-native/2026-10-07/confirm/README.md) + give every number above. +- [`doc-field-extraction-omni/2026-10-01`](https://huggingface.co/datasets/superlinked/sie-task-evidence/tree/61e751a5f7f374cacd84ccace621f71e8a498404/doc-field-extraction-omni/2026-10-01): + the earlier study that recorded the rival replies. +- [`doc-field-extraction-native-rerun/2026-10-07`](https://huggingface.co/datasets/superlinked/sie-task-evidence/tree/d61c5f2525f257ede1e280aa5bae5b55f5987b24/doc-field-extraction-native-rerun/2026-10-07): + the portable rerun kit this example is adapted from. + +## The recipe + +`build_body` in `run.py` makes one request per document: + +- **Model:** `Qwen/Qwen3.8-27B-FP8:h100-256k-batch-no-spec`, the measured id. + `--model` sends another. +- **System message:** `SYSTEM + "\n\nJSON schema:\n" + json.dumps(schema, indent=2)`, + where `SYSTEM` is "Extract data from the document image into the JSON + schema. Copy values as they appear on the document. Use null for a field + the document does not contain. Return only the JSON." +- **User message:** one `image_url` with a base64 data URL. The media type + (PNG or JPEG) comes from the image bytes, not the file name. +- **`response_format`:** `json_schema`, `strict: true`, name `fields`. The + schema is converted the same way for every model in the study: every + property is required and every leaf may be null. Types, properties, items, + descriptions and string enums are kept; other keywords such as `format` or + `minimum` are dropped. `$ref` is rejected; inline the referenced schema. +- **Sampling:** `temperature` 0, `presence_penalty` 0, + `max_completion_tokens` 8192. +- **Thinking:** off. The request carries no thinking flag, and the measured + profile serves the model with thinking off. +- **Failures:** a request that gets no HTTP response is resent at most twice, + as in the study. Anything else is not resent. An error, a reply with no + content and a reply that hits the output cap all score 0. + +## Measured on + +These are the conditions of the published numbers, not requirements for +running the example. + +- **Image:** `ghcr.io/superlinked/sie-server@sha256:a745dfd0859d5397d4d025c79fd0b656b6df369abda1d988897cbc3fb1272961` + (`v0.9.0-cuda13-sglang-cu130`). +- **Overlay:** the `sie_server` package and model catalog from public SIE + revision [`6cccc04d`](https://github.com/superlinked/sie/tree/6cccc04de9c6b78d3217854ad2377de36c0ffbd2), + copied over the image because no release then shipped the profile. +- **Checkpoint:** `Qwen/Qwen3.8-27B-FP8` at `017b9c7af6b5689d5dd426a76e0bc077eb5ca20a`. +- **Profile:** `h100-256k-batch-no-spec`: SGLang with FA3, xgrammar, BF16 KV + cache and no speculation, up to 16 running requests, a 32,768-token output + limit and up to 3,211,264 pixels for a single image. +- **Hardware and load:** one H100 80GB, 8 requests in flight over loopback. +- **Tokens and latency:** on the confirmation set, inputs averaged 3,710 + tokens and outputs 731. Latency was p50 10.4 s and p95 43.5 s, measured + inside the GPU container with no gateway. + +## Run it + +The offline steps need only the Python standard library. Sending needs +`sie-sdk` 0.9.0 or newer, which `uv run` installs from this folder's +`pyproject.toml`; `pip install 'sie-sdk>=0.9.0'` also works. Downloads go to +`data/` (about 200 MB for the confirmation set and 50 MB for the pilot), and +runs to `runs//`. + +### Reproduce the published numbers offline + +```sh +python3 fetch.py --set confirm +python3 score.py --set confirm --published # mean 91.03; 546 of 546 documents identical +python3 run.py --set confirm --dry-run # bodies sha256 8e796736..., the published value ``` -The fetch pins an immutable public [evidence packet](https://huggingface.co/datasets/superlinked/sie-task-evidence/tree/61e751a5f7f374cacd84ccace621f71e8a498404/doc-field-extraction-omni/2026-10-01) -and verifies its manifest, every file hash, and every file size. The replay -requires all 800 inputs for each of the five models and checks the full and -fresh scopes against the recorded aggregates. The fresh scope excludes the -30 pilot documents: 676 business documents and 94 receipts. - -On the October 1, 2026 recording, SIE Qwen3.8 27B FP8 improved mean business -document JSON accuracy over Haiku 4.5: 75.26% versus 65.71% across 700 documents; -75.05% versus 65.78% on the fresh 676. The registered paired superiority gate -passes on both scopes. Sonnet 5.5, GPT-6 Luna and GPT-6 Sol scored higher on the -business documents; the packet retains all of their results. Luna also had a -lower token-list cost. - -`counts.jsonl` contains the 4,000 selected-form score, count, token and response -hash records. `summary.json` retains the aggregate scores for both Claude -schema forms, the recorded 10,000-sample bootstrap and eligibility decisions. -Unparsed and capped replies remain in the denominators. This replay verifies -saved counts; raw model replies are not included, so it does not independently -regrade them or rerun the bootstrap. Omni's mean JSON-diff accuracy and CORD's -mean normalized field accuracy are separate metrics, not whole-document success. - -The historical preregistered SIE $0.72/$0.72 token pair and current default -Cloud rate projection are separately identified in the packet. The measured -self-hosted profile differs from that default SKU; neither projection is its -billed Cloud cost or a GPU ownership estimate. - -## Try your own document - -The exact measured profile is -`Qwen/Qwen3.8-27B-FP8:h100-256k-batch-no-spec`, on an H100, with public server -source [`6cccc04de9c6b78d3217854ad2377de36c0ffbd2`](https://github.com/superlinked/sie/tree/6cccc04de9c6b78d3217854ad2377de36c0ffbd2). -In a checkout of that source with the GPU dependencies configured, start it: - -```bash +`fetch.py` downloads the pinned Omni rows and images and the published +replies, and checks every file against its sha256. `score.py --published` +regrades the published replies and compares each document's score, parse +flag, gold field count and diff counts with the published `omni_scores.json`. +`run.py --dry-run` rebuilds every request body and hashes it in the published +canonical form; `runs/confirm/bodies.show.jsonl` is then byte-identical to the +published readable bodies. + +The pilot works the same way and scores 90.15. One pilot page was re-encoded +to JPEG by the study, and only Pillow 12.2.0 is known to reproduce its bytes, +so use `uv run`, which installs that version: + +```sh +uv run fetch.py --set pilot +uv run score.py --set pilot --published +uv run run.py --set pilot --dry-run +``` + +### Rerun against your own SIE server + +Serve the measured profile from a checkout of this repository with GPU +dependencies, then send the confirmation set: + +```sh mise run serve -- -p 8080 -d cuda:0 \ -m 'Qwen/Qwen3.8-27B-FP8:h100-256k-batch-no-spec' \ --preload 'Qwen/Qwen3.8-27B-FP8:h100-256k-batch-no-spec' +uv run run.py --set confirm --base-url http://127.0.0.1:8080 ``` -Write a schema for your own PNG or JPEG, for example: +### Rerun against SIE Cloud or another remote endpoint + +Put the key in `SIE_API_KEY`, or name another variable with `--api-key-env`, +and pass a model id the deployment serves: + +```sh +export SIE_API_KEY=... +uv run run.py --set confirm --base-url https://api.superlinked.com \ + --model '' +``` + +- **Profile size:** Qwen3.8 27B's bare route has an 8,192-token window and a + 4,096-token output limit, which is too small for this recipe. Use a profile + with a larger window. +- **Another model or profile** makes a new measurement, not a rerun of the + published one. `--concurrency` (default 8) changes latency, not the requests. +- **Readiness:** an unscored text-only request goes first; + `--no-readiness` skips it. `--no-wait-for-capacity` fails at once instead + of waiting while the endpoint provisions capacity. + +A rerun on other hardware or software can differ from the published replies; +the published replies are the reference. Each run writes: + +| File | Contents | +| --- | --- | +| `dry_run.json` | The hash check of the request bodies | +| `bodies.show.jsonl` | The readable request bodies | +| `outcomes.jsonl` | Every raw reply and error | +| `replies.jsonl` | One grader row per document | +| `scores.json` | Per-document scores | +| `summary.json` | Mean, parse and cap counts, tokens and latency | + +To grade replies from anywhere else, write one `{"id", "text"}` row per +document (add `"error"` for a failed one) and run +`python3 score.py --set confirm --replies replies.jsonl`. + +### Read your own document + +Write a schema for a PNG or JPEG, for example: ```json { "type": "object", "properties": { - "document_number": {"type": "string"}, - "total": {"type": "number"} + "document_number": {"type": "string", "description": "The number printed after 'Invoice No.'"}, + "total": {"type": "number", "description": "The amount due, including tax"} } } ``` -Inspect the request offline, then send one call to that running server using -the public `sie_sdk.SIEClient`: +Inspect the request offline, then send it: + +```sh +python3 run.py --image form.png --schema fields.json --dry-run +uv run run.py --image form.png --schema fields.json --base-url http://127.0.0.1:8080 +``` + +A new document is a trial, not part of the measured study. + +### Check the send path without a GPU -```bash -python3 run.py --image form.png --schema fields.json --show -uv run --no-project --with 'sie-sdk>=0.7.3,<0.8' python run.py \ - --image form.png --schema fields.json --endpoint http://127.0.0.1:8080 +`replay_server.py` stands in for `/v1/chat/completions`. It checks every body +that `SIEClient` puts on the wire against the published readable body and +answers with the published reply: + +```sh +python3 replay_server.py --set confirm --port 8099 & +uv run run.py --set confirm --base-url http://127.0.0.1:8099 --out runs/replay-confirm +curl -s http://127.0.0.1:8099/replay-stats # body_matches_published: 546 ``` -The trial uses the study's common strict-schema conversion: every property is -required, leaf values may be null, and unsupported source-schema constraints -are omitted. Referenced property schemas must be inlined; `$ref` is rejected. -String enums retain their non-null choices while the nullable branch allows null. -It sends temperature 0, presence penalty 0, a 4,096-token cap, -one image and the exact profile. A new document call is a trial, not a replay -of the frozen benchmark. The endpoint may be a remote self-hosted server; -`SIE_API_KEY` supplies its credential when required. +The replayed run scores 91.03, and its `replies.jsonl` is byte-identical to +the published one. + +## Scoring + +`score.py` computes, per document, the score of the grader the study ran: + +1. **Null fill.** A key that the document's Omni schema declares, but that the + JSON leaves out, is added with the value null, in the gold and in every + reply alike. Strict-schema APIs return null for an absent field while + others drop the key. Nothing else is changed. +2. **Omni JSON accuracy.** 1 minus (additions + deletions + modifications) + divided by the gold field count, floored at 0 and rounded to 4 decimals. + The diff is json-diff with `sort: true`, and case is kept. +3. **Failures.** A reply that is not a JSON object or array, or a row marked + as an error, scores 0. + +The original grader is JavaScript. `score.py` reimplements it in the Python +standard library, reproducing JavaScript number parsing, key order, equality +and sort order wherever they change a score. On the published replies it +matches every per-document record of both sets. ## Source licenses -[OmniAI OCR Benchmark](https://huggingface.co/datasets/getomni-ai/ocr-benchmark) -is MIT licensed at revision `4ed0d95271ca00107726230f7a0944ed9e90d897`. -[CORD](https://huggingface.co/datasets/naver-clova-ix/cord-v2), by NAVER Clova, -is [CC BY 4.0](https://creativecommons.org/licenses/by/4.0/). -The original CORD repository revision was not recorded; the packet preserves -each frozen image hash. The count packet includes no source images or raw replies. +- **Documents, schemas and gold:** [OmniAI OCR Benchmark](https://huggingface.co/datasets/getomni-ai/ocr-benchmark), + MIT, at revision `4ed0d95271ca00107726230f7a0944ed9e90d897`. Its names and + businesses are the benchmark's synthetic content. +- **Grader:** `score.py` ports OmniAI's + [benchmark](https://github.com/getomni-ai/benchmark) `src/evaluation/json.ts` + (MIT) and [json-diff](https://github.com/andreyvit/json-diff) 1.0.6 (MIT, + Copyright (c) 2015 Andrey Tarantsov) to Python. Their license notice is + reproduced at the top of `score.py`. +- **Set lists:** `sets/*.image_manifest.json` are the published image + manifests, unchanged; `pins.json` holds every pinned revision, size and hash. +- **Replies:** model outputs, published in the evidence packet. diff --git a/examples/doc-field-extraction-omni/fetch.py b/examples/doc-field-extraction-omni/fetch.py old mode 100644 new mode 100755 index f382b808a..41156e8cb --- a/examples/doc-field-extraction-omni/fetch.py +++ b/examples/doc-field-extraction-omni/fetch.py @@ -1,77 +1,224 @@ -"""Fetch the immutable, public document-field count evidence; no credentials.""" -# ruff: noqa: INP001 - Standalone example scripts are not a Python package. +#!/usr/bin/env python3 +"""Download the pinned Omni documents and the published replies of one set, checking every hash. + + python3 fetch.py --set confirm + python3 fetch.py --set pilot + +Standard library only, except that the pilot needs Pillow for one re-encoded page (see below). No token, +no account, no API key: both datasets are public and are read anonymously at pinned revisions, never `main`. + +Everything lands in data/ (or --cache): + + data/omni/metadata.jsonl the Omni rows: each document's JSON schema and gold JSON + data/omni/images/ the set's page images, each checked against sets/.image_manifest.json + data/packet//... the published replies, per-document scores and readable request bodies + +run.py and score.py call the same functions, so they also download whatever is missing. + +Pilot document omni-407 is a PNG over 5 MB as base64, so the study re-encoded it once to JPEG quality 90 and +sent the re-encoded bytes. Pillow 12.2.0 reproduces those bytes exactly; other Pillow or libjpeg builds may not, +and the fetch stops if the hash differs. The confirmation set has no such page. +""" from __future__ import annotations import argparse import hashlib +import io import json +import os import tempfile +import time import urllib.request +from concurrent.futures import ThreadPoolExecutor from pathlib import Path +from typing import Any -REVISION = "61e751a5f7f374cacd84ccace621f71e8a498404" -PREFIX = "doc-field-extraction-omni/2026-10-01" -BASE = f"https://huggingface.co/datasets/superlinked/sie-task-evidence/resolve/{REVISION}/{PREFIX}" -MANIFEST_SHA256 = "bc4dbde435a57bb243e664ab15fd626e17a7179a177bdb448221bef257c96f95" -FILES = frozenset({"README.md", "summary.json", "counts.jsonl", "inputs.jsonl"}) HERE = Path(__file__).resolve().parent +DATA = HERE / "data" +PINS = json.loads((HERE / "pins.json").read_text(encoding="utf-8")) +SETS = ("pilot", "confirm") +# A sanity bound on one page image; the largest pinned source is 4.3 MB, and every file is also hash-checked. +MAX_IMAGE_BYTES = 16 * 1024 * 1024 +PUBLISHED = { + "pilot": { + "replies": "pilot/grader/A1.jsonl", + "scores": "pilot/grader/omni_scores.json", + "show": "pilot/requests/A1.bodies.show.jsonl", + }, + "confirm": { + "replies": "confirm/grader/A1.jsonl", + "scores": "confirm/grader/omni_scores.json", + "show": "confirm/requests/A1.confirm.bodies.show.jsonl", + "bodies_sha256": "confirm/requests/A1.confirm.bodies.jsonl.sha256", + }, +} + + +def http_get(url: str, max_bytes: int | None = None, attempts: int = 5) -> bytes: + """GET a pinned public file, retrying transient failures.""" + request = urllib.request.Request(url, headers={"User-Agent": "sie-doc-field-extraction-omni/1.0"}) + for attempt in range(attempts): + try: + with urllib.request.urlopen(request, timeout=120) as response: # pinned HTTPS origins + data = response.read() if max_bytes is None else response.read(max_bytes + 1) + except OSError: + if attempt == attempts - 1: + raise + time.sleep(2 + 3 * attempt) + continue + if max_bytes is not None and len(data) > max_bytes: + raise SystemExit(f"{url}: larger than its pinned size") + return data + raise AssertionError("unreachable") + + +def sha256(data: bytes) -> str: + return hashlib.sha256(data).hexdigest() + + +def write_atomic(path: Path, data: bytes) -> None: + """Write a whole file or nothing, so an interrupted or concurrent run never leaves a truncated cache entry.""" + handle, name = tempfile.mkstemp(dir=path.parent, prefix=f".{path.name}.", suffix=".part") + partial = Path(name) + try: + with os.fdopen(handle, "wb") as out: + out.write(data) + partial.replace(path) + except BaseException: + partial.unlink(missing_ok=True) + raise -def read_public_file(name: str, max_bytes: int) -> bytes: - """Read a size-bounded file from the pinned public HTTPS location.""" - with urllib.request.urlopen(f"{BASE}/{name}", timeout=60) as response: # noqa: S310 - Pinned HTTPS origin. - data = response.read(max_bytes + 1) - if len(data) > max_bytes: - raise ValueError(f"Evidence exceeds its declared size: {name}") +def cached_pinned(url: str, path: Path, size: int, digest: str) -> bytes: + """Return a pinned file, downloading it once into the cache and checking its size and sha256.""" + if path.exists(): + data = path.read_bytes() + if len(data) == size and sha256(data) == digest: + return data + data = http_get(url, max_bytes=size) + if len(data) != size or sha256(data) != digest: + raise SystemExit(f"{url}: size or sha256 does not match the pin") + path.parent.mkdir(parents=True, exist_ok=True) + write_atomic(path, data) return data -def load_manifest(data: bytes) -> dict: - """Authenticate the immutable manifest before accepting its flat file list.""" - if hashlib.sha256(data).hexdigest() != MANIFEST_SHA256: - raise ValueError("Evidence manifest hash mismatch") - manifest = json.loads(data) - if set(manifest["files"]) != FILES: - raise ValueError("Evidence manifest has an unexpected file set") - return manifest - - -def verify_file(name: str, data: bytes, expected: dict) -> None: - """Require the declared byte size and SHA-256 for an allowed file.""" - if name not in FILES: - raise ValueError(f"Unexpected evidence file: {name}") - if len(data) != expected["bytes"]: - raise ValueError(f"Evidence size mismatch: {name}") - if hashlib.sha256(data).hexdigest() != expected["sha256"]: - raise ValueError(f"Evidence hash mismatch: {name}") - - -def fetch(output: Path) -> None: - """Download and verify the whole packet before replacing local files.""" - manifest_bytes = read_public_file("manifest.json", 64 * 1024) - manifest = load_manifest(manifest_bytes) - output.parent.mkdir(parents=True, exist_ok=True) - # Verify the entire download before replacing any existing local evidence. - with tempfile.TemporaryDirectory(prefix="dfe-evidence-", dir=output.parent) as temporary: - staging = Path(temporary) - for name, expected in manifest["files"].items(): - data = read_public_file(name, expected["bytes"]) - verify_file(name, data, expected) - (staging / name).write_bytes(data) - (staging / "manifest.json").write_bytes(manifest_bytes) - output.mkdir(parents=True, exist_ok=True) - for name in sorted(FILES | {"manifest.json"}): - (staging / name).replace(output / name) - print(json.dumps({"revision": REVISION, "files": len(FILES) + 1, "verified": True})) +def load_omni_rows(cache: Path) -> dict[str, dict[str, Any]]: + """The pinned Omni metadata rows, keyed as omni-.""" + pin = PINS["omni"]["metadata"] + data = cached_pinned( + f"{PINS['omni']['base_url']}/{pin['path']}", cache / "omni" / pin["path"], pin["bytes"], pin["sha256"] + ) + rows = {} + for line in data.decode("utf-8").splitlines(): + if line.strip(): + row = json.loads(line) + rows[f"omni-{row['id']}"] = row + return rows + + +def load_set(name: str) -> list[dict[str, Any]]: + """The published image manifest of a set, verified against its pin, in request order.""" + spec = PINS["sets"][name] + data = (HERE / spec["image_manifest"]).read_bytes() + if sha256(data) != spec["image_manifest_sha256"]: + raise SystemExit(f"{spec['image_manifest']}: sha256 does not match the published manifest") + rows = json.loads(data) + for row in rows: + row.setdefault("slot", "study") + study = sorted(row["id"] for row in rows if row["slot"] == "study") + if len(study) != spec["study_documents"] or sha256("\n".join(study).encode()) != spec["study_ids_sha256"]: + raise SystemExit(f"{name}: study id list does not match its pinned hash") + return rows + + +def study_ids(name: str) -> list[str]: + """The scored documents of a set; the pilot also has six unscored display rows.""" + return [row["id"] for row in load_set(name) if row["slot"] == "study"] + + +def derive_image(doc_id: str, source: bytes, spec: dict[str, Any]) -> bytes: + """Re-encode a page the study re-encoded (pilot omni-407 only).""" + try: + from PIL import Image # optional: only the pilot needs it + except ImportError as exc: + raise SystemExit(f"{doc_id} is a re-encoded page; install Pillow ({spec['reproduced_with']} matched)") from exc + out = io.BytesIO() + Image.open(io.BytesIO(source)).convert("RGB").save(out, "JPEG", quality=90) + return out.getvalue() + + +def prepare_images(set_name: str, cache: Path) -> dict[str, Path]: + """Download every image of a set once, check it against the published manifest, return id -> file.""" + rows = load_set(set_name) + omni = load_omni_rows(cache) + derived = PINS["sets"][set_name]["derived_images"] + folder = cache / "omni" / "images" + folder.mkdir(parents=True, exist_ok=True) + + def one(row: dict[str, Any]) -> tuple[str, Path]: + doc_id = row["id"] + name = omni[doc_id]["file_name"] + spec = derived.get(doc_id) + if spec is None and name.split("/")[-1] != row["image_file"]: + raise SystemExit(f"{doc_id}: Omni file {name} is not the manifest's {row['image_file']}") + if spec is not None and name != spec["source_file"]: + raise SystemExit(f"{doc_id}: Omni file {name} is not the pinned source {spec['source_file']}") + source_sha = spec["source_sha256"] if spec else row["image_sha256"] + path = folder / name.split("/")[-1] + data = path.read_bytes() if path.exists() else b"" + if sha256(data) != source_sha: + data = http_get(f"{PINS['omni']['base_url']}/{name}", max_bytes=MAX_IMAGE_BYTES) + if sha256(data) != source_sha: + raise SystemExit(f"{doc_id}: downloaded {name} does not match its pinned sha256") + write_atomic(path, data) + if spec is not None: + image = derive_image(doc_id, data, spec) + if sha256(image) != row["image_sha256"]: + raise SystemExit( + f"{doc_id}: the JPEG q90 re-encode gives {sha256(image)}, not the published " + f"{row['image_sha256']}. The study used {spec['reproduced_with']}; other Pillow or libjpeg " + "builds can encode differently." + ) + path = cache / "omni" / "derived" / row["image_file"] + path.parent.mkdir(parents=True, exist_ok=True) + write_atomic(path, image) + return doc_id, path + + with ThreadPoolExecutor(8) as pool: + return dict(pool.map(one, rows)) + + +def fetch_published(set_name: str, cache: Path) -> dict[str, Path]: + """The published replies, per-document scores and readable bodies of a set, verified against their pins.""" + paths = {} + for role, rel in PUBLISHED[set_name].items(): + pin = PINS["packet"]["files"][rel] + path = cache / "packet" / rel + data = cached_pinned(f"{PINS['packet']['base_url']}/{rel}", path, pin["bytes"], pin["sha256"]) + if role == "bodies_sha256" and data.decode().split()[0] != PINS["sets"][set_name]["bodies_sha256"]: + raise SystemExit(f"{rel} does not hold the pinned bodies sha256") + paths[role] = path + return paths def main() -> None: - """Fetch the pinned packet into the requested local directory.""" - parser = argparse.ArgumentParser(description=__doc__) - parser.add_argument("--output", type=Path, default=HERE / "data") + """Fetch and verify one set.""" + parser = argparse.ArgumentParser(description=__doc__, formatter_class=argparse.RawDescriptionHelpFormatter) + parser.add_argument("--set", choices=SETS, required=True) + parser.add_argument("--cache", type=Path, default=DATA, help="download folder (default data/)") args = parser.parse_args() - fetch(args.output) + images = prepare_images(args.set, args.cache) + published = fetch_published(args.set, args.cache) + report = { + "set": args.set, + "omni_revision": PINS["omni"]["revision"], + "evidence_revision": PINS["packet"]["revision"], + "images_verified": len(images), + "published_files_verified": sorted(published), + } + print(json.dumps(report, indent=1)) if __name__ == "__main__": diff --git a/examples/doc-field-extraction-omni/pins.json b/examples/doc-field-extraction-omni/pins.json new file mode 100644 index 000000000..21fef6657 --- /dev/null +++ b/examples/doc-field-extraction-omni/pins.json @@ -0,0 +1,92 @@ +{ + "omni": { + "repo": "getomni-ai/ocr-benchmark", + "revision": "4ed0d95271ca00107726230f7a0944ed9e90d897", + "license": "MIT", + "base_url": "https://huggingface.co/datasets/getomni-ai/ocr-benchmark/resolve/4ed0d95271ca00107726230f7a0944ed9e90d897/test", + "metadata": { + "path": "metadata.jsonl", + "bytes": 8370297, + "sha256": "dad8fc254b20fcef351ccfc36add27fc01e2f426944a30f288769ead82e9814b" + } + }, + "packet": { + "repo": "superlinked/sie-task-evidence", + "revision": "f10e813f2206348e31da363da2bc90b06086d7d9", + "folder": "doc-field-extraction-native/2026-10-07", + "base_url": "https://huggingface.co/datasets/superlinked/sie-task-evidence/resolve/f10e813f2206348e31da363da2bc90b06086d7d9/doc-field-extraction-native/2026-10-07", + "manifest_sha256": "69823e6d88f3a5dccd0602427be28b65e0fd9641ac02c17b6cf76256389fbad9", + "files": { + "pilot/grader/A1.jsonl": { + "bytes": 230555, + "sha256": "01bcac420272ffa2097b349e43feafcd7e37e745afb15329515390fc65a6252d" + }, + "pilot/grader/omni_scores.json": { + "bytes": 17760, + "sha256": "3cbf515ac15125cfcca56b1d2c4fcb3c3c482b34c4cc73e93ec9f56bfbb97884" + }, + "pilot/requests/A1.bodies.show.jsonl": { + "bytes": 745123, + "sha256": "5366928b6b6a910c2d19ea4bfdc4e4d77220a207344a3ece59abe0261c38c040" + }, + "pilot/requests/image_manifest.json": { + "bytes": 34028, + "sha256": "99724cbeaef2f9b27330e375c2a7c095b572588a6f15ea445333747e1c9c14ca" + }, + "confirm/grader/A1.jsonl": { + "bytes": 1138350, + "sha256": "3cb6dd985c57ab3e67ce707b9fd108fcd35983b5691f52e41742896f5582e809" + }, + "confirm/grader/omni_scores.json": { + "bytes": 97585, + "sha256": "c4033d5117cfe606f95d4e8a98cb22a465d51a9b67c288e2d0489e2dcb19f03e" + }, + "confirm/requests/A1.confirm.bodies.jsonl.sha256": { + "bytes": 65, + "sha256": "814f56f27140a65fd415313825454716f93b8a3ff4ca9c4cc30d7cec8ebea607" + }, + "confirm/requests/A1.confirm.bodies.show.jsonl": { + "bytes": 3941564, + "sha256": "5626ab61415798aac7c1ac3e1f1ff7cd973671ba4be39ba9984119430c35bfe6" + }, + "confirm/requests/image_manifest.json": { + "bytes": 153198, + "sha256": "c4fbbc931614139167500544c217798acb2bfb5314d669cd0153eeec28bf5e58" + } + } + }, + "sets": { + "pilot": { + "image_manifest": "sets/pilot.image_manifest.json", + "image_manifest_sha256": "99724cbeaef2f9b27330e375c2a7c095b572588a6f15ea445333747e1c9c14ca", + "study_documents": 100, + "study_ids_sha256": "6577f0740b076a4c9c21d07743aed14babaaf5c7dfa01446ea376bafc8059b5d", + "bodies_rows": 106, + "bodies_sha256": "d364ac860a1790772baaa9c343a6bddd6aac055bf06dc45c095d2bd75240396a", + "bodies_sha256_note": "sha256 of the pilot bodies file as sent (100 study rows then 6 unscored display rows); the file itself is not published", + "bodies_show_sha256": "5366928b6b6a910c2d19ea4bfdc4e4d77220a207344a3ece59abe0261c38c040", + "published_mean": 90.15, + "derived_images": { + "omni-407": { + "source_file": "images/407.png", + "source_sha256": "34662c3b94518452d8ce47e41e9949ddc8052575037326d9d36db3875fda5474", + "transform": "Pillow: Image.open(src).convert('RGB').save(out, 'JPEG', quality=90)", + "why": "the source PNG is over 5 MB as base64, so the study re-encoded it once and every arm received the re-encoded bytes", + "reproduced_with": "Pillow 12.2.0" + } + } + }, + "confirm": { + "image_manifest": "sets/confirm.image_manifest.json", + "image_manifest_sha256": "c4fbbc931614139167500544c217798acb2bfb5314d669cd0153eeec28bf5e58", + "study_documents": 546, + "study_ids_sha256": "be62dac0164637c6fcae7fc532a63f417b406e11c5f1a60ae4488e8a9d0bef79", + "bodies_rows": 546, + "bodies_sha256": "8e796736eac72b18e0815a6c62e265c29e154768ced92006140aad50802010d8", + "bodies_sha256_note": "published in confirm/requests/A1.confirm.bodies.jsonl.sha256; the bodies file itself is not published", + "bodies_show_sha256": "5626ab61415798aac7c1ac3e1f1ff7cd973671ba4be39ba9984119430c35bfe6", + "published_mean": 91.03, + "derived_images": {} + } + } +} diff --git a/examples/doc-field-extraction-omni/pyproject.toml b/examples/doc-field-extraction-omni/pyproject.toml new file mode 100644 index 000000000..5d959c336 --- /dev/null +++ b/examples/doc-field-extraction-omni/pyproject.toml @@ -0,0 +1,22 @@ +[project] +name = "superlinked-sie-doc-field-extraction-omni-example" +version = "0.1.0" +description = "Read Omni OCR Benchmark documents into their own JSON schema with SIE, and grade the replies with Omni's JSON accuracy" +requires-python = ">=3.12,<3.13" +dependencies = [ + "sie-sdk>=0.9.0", + # The published pilot re-encoded one page; Pillow 12.2.0 reproduces its bytes exactly. + "pillow==12.2.0", +] + +[tool.uv] +package = false + +[dependency-groups] +dev = [ + "ruff>=0.14", +] + +[tool.ruff] +line-length = 120 +target-version = "py312" diff --git a/examples/doc-field-extraction-omni/replay_server.py b/examples/doc-field-extraction-omni/replay_server.py new file mode 100755 index 000000000..b279a8eda --- /dev/null +++ b/examples/doc-field-extraction-omni/replay_server.py @@ -0,0 +1,133 @@ +#!/usr/bin/env python3 +"""Check the send path offline: a local stand-in for /v1/chat/completions that answers with the published replies. + + python3 replay_server.py --set confirm --port 8099 + uv run run.py --set confirm --base-url http://127.0.0.1:8099 --out runs/replay-confirm + curl -s http://127.0.0.1:8099/replay-stats + +No model runs. For every request, the server takes the body that sie_sdk.SIEClient put on the wire, replaces the +image with its sha256 and compares the result with the published readable body of that document. It then answers +with the document's published reply; a published capped row is answered with finish_reason "length". Scoring the +replayed run must give the published mean, and /replay-stats must show every body matching. +""" + +from __future__ import annotations + +import argparse +import base64 +import json +import threading +from http.server import BaseHTTPRequestHandler, ThreadingHTTPServer +from pathlib import Path +from typing import Any + +from fetch import DATA, SETS, fetch_published, sha256 +from score import read_rows + + +def load(set_name: str, cache: Path) -> tuple[dict[str, dict], dict[str, dict]]: + """The published readable bodies keyed by image sha256, and the published grader rows.""" + published = fetch_published(set_name, cache) + show = {} + for line in published["show"].read_text(encoding="utf-8").splitlines(): + row = json.loads(line) + if row["slot"] == "study": + if row["image_sha256"] in show: + raise SystemExit("Two study rows share an image") + show[row["image_sha256"]] = row + return show, read_rows(published["replies"]) + + +def main() -> None: + parser = argparse.ArgumentParser(description=__doc__, formatter_class=argparse.RawDescriptionHelpFormatter) + parser.add_argument("--set", choices=SETS, required=True) + parser.add_argument("--port", type=int, default=8099) + parser.add_argument("--cache", type=Path, default=DATA, help="download folder (default data/)") + args = parser.parse_args() + show, replies = load(args.set, args.cache) + stats: dict[str, Any] = { + "requests": 0, + "readiness": 0, + "study": 0, + "body_matches_published": 0, + "body_differs": [], + "unknown_image": 0, + "other_paths": [], + } + lock = threading.Lock() + + class Handler(BaseHTTPRequestHandler): + def log_message(self, *_: object) -> None: + pass + + def reply(self, code: int, payload: dict) -> None: + data = json.dumps(payload).encode() + self.send_response(code) + self.send_header("Content-Type", "application/json") + self.send_header("Content-Length", str(len(data))) + self.end_headers() + self.wfile.write(data) + + def do_GET(self) -> None: + if self.path == "/replay-stats": + with lock: + self.reply(200, stats) + return + with lock: + stats["other_paths"].append(f"GET {self.path}") + self.reply(404, {"error": "not found"}) + + def do_POST(self) -> None: + body = json.loads(self.rfile.read(int(self.headers.get("Content-Length", 0)))) + if self.path != "/v1/chat/completions": + with lock: + stats["other_paths"].append(f"POST {self.path}") + self.reply(404, {"error": "not found"}) + return + with lock: + stats["requests"] += 1 + user = body["messages"][-1]["content"] + if isinstance(user, str): # the text-only readiness request + with lock: + stats["readiness"] += 1 + content, finish = json.dumps({"ok": True}), "stop" + else: + url = user[0]["image_url"]["url"] + prefix, encoded = url.split(",", 1) + digest = sha256(base64.b64decode(encoded)) + row = show.get(digest) + if row is None: + with lock: + stats["unknown_image"] += 1 + self.reply(400, {"error": "image not in the published set"}) + return + user[0]["image_url"]["url"] = f"{prefix}," + same = json.dumps(body, sort_keys=True) == json.dumps(row["body"], sort_keys=True) + with lock: + stats["study"] += 1 + if same: + stats["body_matches_published"] += 1 + else: + stats["body_differs"].append(row["id"]) + published = replies[row["id"]] + content = published.get("text") or "" + finish = "length" if published.get("error") == "capped" else "stop" + self.reply( + 200, + { + "id": "replay", + "object": "chat.completion", + "model": body["model"], + "choices": [ + {"index": 0, "finish_reason": finish, "message": {"role": "assistant", "content": content}} + ], + }, + ) + + server = ThreadingHTTPServer(("127.0.0.1", args.port), Handler) + print(f"Replaying {len(show)} published {args.set} replies on http://127.0.0.1:{args.port}", flush=True) + server.serve_forever() + + +if __name__ == "__main__": + main() diff --git a/examples/doc-field-extraction-omni/run.py b/examples/doc-field-extraction-omni/run.py old mode 100644 new mode 100755 index 93be19d3c..65efa1aa9 --- a/examples/doc-field-extraction-omni/run.py +++ b/examples/doc-field-extraction-omni/run.py @@ -1,25 +1,55 @@ -"""Read one document with the exact measured SIE profile, or show the request offline.""" -# ruff: noqa: INP001 - Standalone example scripts are not a Python package. +#!/usr/bin/env python3 +"""Read document images into their own JSON schema with SIE: one document, or a whole published set. + + python3 run.py --image form.png --schema fields.json --dry-run + uv run run.py --image form.png --schema fields.json --base-url http://127.0.0.1:8080 + + python3 run.py --set confirm --dry-run + uv run run.py --set confirm --base-url http://127.0.0.1:8080 + +--dry-run needs only the Python standard library and sends nothing. For one document it prints the request +with the image replaced by its sha256. For a set it rebuilds every request of the published study from the +pinned Omni rows and images and checks the bodies against the published sha256. + +A send uses sie_sdk.SIEClient (sie-sdk 0.9.0 or newer) against any SIE endpoint: a local server, a remote +self-hosted one, or SIE Cloud. SIE_API_KEY (or the variable named by --api-key-env) supplies the key when the +endpoint needs one. A set run writes one grader row per study document to runs//replies.jsonl and scores +it with score.py over the whole set. A request that fails, returns no content or hits the output cap becomes an +error row, which scores 0. +""" from __future__ import annotations import argparse import base64 import hashlib +import importlib.metadata import json import os +import threading +import time +from concurrent.futures import ThreadPoolExecutor, as_completed from pathlib import Path from typing import Any +import score +from fetch import DATA, HERE, PINS, SETS, load_omni_rows, load_set, prepare_images, sha256 + MODEL = "Qwen/Qwen3.8-27B-FP8:h100-256k-batch-no-spec" +MAX_COMPLETION_TOKENS = 8192 SYSTEM = ( "Extract data from the document image into the JSON schema. Copy values as they appear on the document. " "Use null for a field the document does not contain. Return only the JSON." ) +# The manifest rows, the verified image files and the Omni rows of one set. +SetInputs = tuple[list[dict[str, Any]], dict[str, Path], dict[str, dict[str, Any]]] + + +# ---- the recipe --------------------------------------------------------------------------------------------------- def strict_schema(schema: dict[str, Any]) -> dict[str, Any]: - """The study's shared schema conversion: required keys, nullable leaves.""" + """The study's shared schema conversion: every property required, every leaf nullable.""" if "$ref" in schema: raise ValueError("Schema references are unsupported; inline the referenced property schema") kind = schema.get("type") @@ -54,7 +84,7 @@ def strict_schema(schema: dict[str, Any]) -> dict[str, Any]: def media_type(data: bytes) -> str: - """Identify the supported image format from its signature.""" + """Identify the supported image format from its signature, not the file name.""" if data.startswith(b"\x89PNG\r\n\x1a\n"): return "image/png" if data.startswith(b"\xff\xd8\xff"): @@ -62,20 +92,25 @@ def media_type(data: bytes) -> str: raise ValueError("Use a PNG or JPEG document image") -def build_body(image: bytes, schema: dict[str, Any], *, show: bool = False) -> dict[str, Any]: - """Build the study's one-image request, optionally replacing bytes with their hash.""" +def build_body(image: bytes, schema: dict[str, Any], model: str = MODEL, *, show: bool = False) -> dict[str, Any]: + """The measured one-image request, optionally with the image bytes replaced by their sha256. + + The schema text, descriptions included, goes into the system message. SIE applies response_format only as a + decoding grammar, so without it the model never reads the field descriptions. + """ if schema.get("type") != "object": raise ValueError("The document schema must have an object root") mime = media_type(image) - encoded = f"" if show else base64.b64encode(image).decode() + encoded = f"" if show else base64.b64encode(image).decode() return { + "model": model, "messages": [ - {"role": "system", "content": SYSTEM}, + {"role": "system", "content": SYSTEM + "\n\nJSON schema:\n" + json.dumps(schema, indent=2)}, {"role": "user", "content": [{"type": "image_url", "image_url": {"url": f"data:{mime};base64,{encoded}"}}]}, ], "temperature": 0, "presence_penalty": 0, - "max_completion_tokens": 4096, + "max_completion_tokens": MAX_COMPLETION_TOKENS, "response_format": { "type": "json_schema", "json_schema": {"name": "fields", "schema": strict_schema(schema), "strict": True}, @@ -83,28 +118,343 @@ def build_body(image: bytes, schema: dict[str, Any], *, show: bool = False) -> d } +def readiness_body(model: str) -> dict[str, Any]: + """The study's text-only readiness request; it is not scored.""" + return { + "model": model, + "messages": [ + {"role": "system", "content": "Return only the JSON."}, + {"role": "user", "content": "Readiness check (not a study document). Set ok to true."}, + ], + "temperature": 0, + "presence_penalty": 0, + "max_completion_tokens": MAX_COMPLETION_TOKENS, + "response_format": { + "type": "json_schema", + "json_schema": { + "name": "ready", + "strict": True, + "schema": { + "type": "object", + "properties": {"ok": {"type": "boolean"}}, + "required": ["ok"], + "additionalProperties": False, + }, + }, + }, + } + + +# ---- the published sets ------------------------------------------------------------------------------------------- + + +def body_line(slot: str, doc_id: str, image_sha256: str, body: dict[str, Any]) -> bytes: + """One line of the published bodies file, the canonical form its sha256 is taken over.""" + return (json.dumps({"slot": slot, "id": doc_id, "image_sha256": image_sha256, "body": body}) + "\n").encode() + + +def build_set(set_name: str, model: str, out: Path, cache: Path, *, write_bodies: bool) -> tuple[dict, SetInputs]: + """Build every body of a set in published order, write the readable form and hash both forms.""" + rows = load_set(set_name) + images = prepare_images(set_name, cache) + omni = load_omni_rows(cache) + full_hash, show_hash = hashlib.sha256(), hashlib.sha256() + full_file = (out / "bodies.jsonl").open("wb") if write_bodies else None + try: + with (out / "bodies.show.jsonl").open("wb") as show_file: + for row in rows: + image = images[row["id"]].read_bytes() + digest = sha256(image) + if digest != row["image_sha256"]: + raise SystemExit(f"{row['id']}: image sha256 {digest} is not the published {row['image_sha256']}") + schema = json.loads(omni[row["id"]]["json_schema"]) + line = body_line(row["slot"], row["id"], digest, build_body(image, schema, model)) + full_hash.update(line) + if full_file: + full_file.write(line) + show = body_line(row["slot"], row["id"], digest, build_body(image, schema, model, show=True)) + show_hash.update(show) + show_file.write(show) + finally: + if full_file: + full_file.close() + spec = PINS["sets"][set_name] + comparable = model == MODEL + check = { + "set": set_name, + "model": model, + "rows": len(rows), + "study_rows": sum(1 for row in rows if row["slot"] == "study"), + "images_verified_against_published_manifest": len(rows), + "bodies_sha256": full_hash.hexdigest(), + "expected_bodies_sha256": spec["bodies_sha256"], + "bodies_match": full_hash.hexdigest() == spec["bodies_sha256"] if comparable else None, + "show_sha256": show_hash.hexdigest(), + "expected_show_sha256": spec["bodies_show_sha256"], + "show_match": show_hash.hexdigest() == spec["bodies_show_sha256"] if comparable else None, + "note": None if comparable else "the model differs from the measured id, so the hashes are not comparable", + } + return check, (rows, images, omni) + + +# ---- sending ------------------------------------------------------------------------------------------------------ + + +class Sender: + """One SIEClient per worker thread. Only a failure with no HTTP response is resent, at most twice.""" + + def __init__(self, base_url: str, api_key: str | None, read_timeout_s: float, *, wait_for_capacity: bool) -> None: + try: + version = importlib.metadata.version("sie-sdk") + except importlib.metadata.PackageNotFoundError as exc: + raise SystemExit("Sending needs sie-sdk>=0.9.0: use `uv run`, or pip install 'sie-sdk>=0.9.0'") from exc + if tuple(int(part) for part in version.split(".")[:2]) < (0, 9): + raise SystemExit(f"sie-sdk {version} is installed; sending needs sie-sdk>=0.9.0 (per-call read timeout)") + from sie_sdk import SIEClient, SIEConnectionError # optional: dry runs need only the stdlib + + self.sdk_version = version + self._make = lambda: SIEClient(base_url, api_key=api_key) + self._transport_error = SIEConnectionError + self._wait = wait_for_capacity + self._read_timeout = read_timeout_s + self._local = threading.local() + self._clients: list[Any] = [] + self._lock = threading.Lock() + + def client(self) -> Any: + if not hasattr(self._local, "client"): + self._local.client = self._make() + with self._lock: + self._clients.append(self._local.client) + return self._local.client + + def send(self, slot: str, doc_id: str, body: dict[str, Any]) -> dict[str, Any]: + params = {key: value for key, value in body.items() if key not in ("model", "messages")} + attempts: list[dict[str, Any]] = [] + response = None + for _ in range(3): + started_unix, started = time.time(), time.perf_counter() + error, resend = None, False + try: + response = dict( + self.client().chat_completions( + body["model"], + body["messages"], + **params, + max_oom_retries=0, + wait_for_capacity=self._wait, + read_timeout_s=self._read_timeout, + ) + ) + except self._transport_error as exc: + error, resend = f"transport: {exc!r}"[:600], True + except Exception as exc: # noqa: BLE001 - kept as a scored-zero row, never resent + error = f"{type(exc).__name__}: {exc}"[:600] + attempts.append({"t_start_unix": started_unix, "latency_s": time.perf_counter() - started, "error": error}) + if not resend: + break + return { + "slot": slot, + "id": doc_id, + "attempts": attempts, + "latency_s": attempts[-1]["latency_s"], + "error": attempts[-1]["error"], + "response": response, + } + + def close(self) -> None: + for client in self._clients: + client.close() + + +def grader_row(doc_id: str, record: dict[str, Any] | None) -> dict[str, Any]: + """The published row rule: an error, no content or a capped reply becomes an error row (score 0).""" + text, error = None, None + if record is None: + error = "unattempted" + elif record["error"]: + error = record["error"] + else: + try: + choice = record["response"]["choices"][0] + finish = choice.get("finish_reason") + text = (choice.get("message") or {}).get("content") + except (KeyError, IndexError, TypeError): + finish, error = None, "malformed response" + if error is None and finish in ("length", "max_tokens"): + error = "capped" + elif error is None and text is None: + error = "no content" + row: dict[str, Any] = {"id": doc_id, "text": text if not error else (text or "")} + if error: + row["error"] = error + return row + + +def percentile(values: list[float], q: float) -> float | None: + if not values: + return None + ordered = sorted(values) + k = (len(ordered) - 1) * q + lo, hi = int(k), min(int(k) + 1, len(ordered) - 1) + return ordered[lo] + (ordered[hi] - ordered[lo]) * (k - lo) + + +def run_set(args: argparse.Namespace, sender: Sender, inputs: SetInputs) -> None: + """Send every study document of the set, write the grader rows and score them over the whole set.""" + out: Path = args.out + rows, images, omni = inputs + study = [row for row in rows if row["slot"] == "study"] + results: dict[str, dict[str, Any]] = {} + lock = threading.Lock() + with (out / "outcomes.jsonl").open("w", encoding="utf-8") as events: + + def record(outcome: dict[str, Any]) -> None: + with lock: + events.write(json.dumps(outcome, ensure_ascii=False) + "\n") + events.flush() + + if not args.no_readiness: + ready = sender.send("readiness", "readiness-1", readiness_body(args.model)) + record(ready) + if ready["error"]: + raise SystemExit(f"The readiness request failed: {ready['error']}") + + def one(row: dict[str, Any]) -> dict[str, Any]: + schema = json.loads(omni[row["id"]]["json_schema"]) + return sender.send("study", row["id"], build_body(images[row["id"]].read_bytes(), schema, args.model)) + + started = time.time() + with ThreadPoolExecutor(args.concurrency) as pool: + futures = [pool.submit(one, row) for row in study] + for n, future in enumerate(as_completed(futures), 1): + outcome = future.result() + results[outcome["id"]] = outcome + record(outcome) + if n % 25 == 0 or outcome["error"]: + status = f"error: {outcome['error']}" if outcome["error"] else "ok" + print(f"{n}/{len(study)} {outcome['id']} {status}", flush=True) + wall = time.time() - started + + ids = [row["id"] for row in study] + replies = [grader_row(doc_id, results.get(doc_id)) for doc_id in ids] + with (out / "replies.jsonl").open("w", encoding="utf-8") as handle: + handle.writelines(json.dumps(reply) + "\n" for reply in replies) + per, summary = score.score_set(args.set, score.read_rows(out / "replies.jsonl"), args.cache) + (out / "scores.json").write_text(json.dumps({"rerun": per}, indent=1) + "\n", encoding="utf-8") + ok = [results[doc_id] for doc_id in ids if doc_id in results and not results[doc_id]["error"]] + usage = [outcome["response"].get("usage") or {} for outcome in ok] + finish: dict[str, int] = {} + for outcome in ok: + reason = str((outcome["response"].get("choices") or [{}])[0].get("finish_reason")) + finish[reason] = finish.get(reason, 0) + 1 + latencies = [outcome["latency_s"] for outcome in ok] + report = { + "set": args.set, + "model": args.model, + "measured_model": MODEL, + "sdk": sender.sdk_version, + "concurrency": args.concurrency, + "documents": len(ids), + "omni_mean_failure_inclusive": summary["mean"], + "published_mean": PINS["sets"][args.set]["published_mean"], + "parsed": summary["parsed"], + "error_rows": sum(1 for reply in replies if reply.get("error")), + "capped": sum(1 for reply in replies if reply.get("error") == "capped"), + "transport_resends": sum(len(outcome["attempts"]) - 1 for outcome in results.values()), + "finish_reasons": finish, + "prompt_tokens": sum(u.get("prompt_tokens") or 0 for u in usage), + "completion_tokens": sum(u.get("completion_tokens") or 0 for u in usage), + "latency_p50_s": percentile(latencies, 0.5), + "latency_p95_s": percentile(latencies, 0.95), + "wall_s": wall, + } + (out / "summary.json").write_text(json.dumps(report, indent=1) + "\n", encoding="utf-8") + print(json.dumps(report, indent=1)) + + +def run_document(args: argparse.Namespace) -> None: + """Show or send one document with its own schema.""" + schema = json.loads(args.schema.read_text(encoding="utf-8")) + image = args.image.read_bytes() + if args.dry_run: + print(json.dumps(build_body(image, schema, args.model, show=True), indent=2)) + return + sender = Sender(args.base_url, api_key(args), args.read_timeout, wait_for_capacity=args.wait_for_capacity) + try: + outcome = sender.send("document", args.image.name, build_body(image, schema, args.model)) + finally: + sender.close() + row = grader_row(args.image.name, outcome) + if row.get("error") == "capped": + raise SystemExit("The output limit was reached; this is not a complete extraction") + if row.get("error"): + raise SystemExit(f"The request failed: {row['error']}") + try: + parsed = json.loads(row["text"]) + except json.JSONDecodeError as exc: + raise SystemExit(f"The reply is not JSON: {row['text'][:500]!r}") from exc + print(json.dumps(parsed, indent=2, ensure_ascii=False)) + + +def api_key(args: argparse.Namespace) -> str | None: + return os.environ.get(args.api_key_env) if args.api_key_env else None + + def main() -> None: - """Inspect a request offline or send one optional document trial.""" - parser = argparse.ArgumentParser(description=__doc__) - parser.add_argument("--image", type=Path, required=True) - parser.add_argument("--schema", type=Path, required=True) - parser.add_argument("--endpoint", default="http://127.0.0.1:8080") + parser = argparse.ArgumentParser(description=__doc__, formatter_class=argparse.RawDescriptionHelpFormatter) + target = parser.add_mutually_exclusive_group(required=True) + target.add_argument("--set", choices=SETS, help="rerun a published set: pilot (100) or confirm (546)") + target.add_argument("--image", type=Path, help="one PNG or JPEG document image") + parser.add_argument("--schema", type=Path, help="the JSON schema to fill from --image") + parser.add_argument( + "--base-url", help="SIE endpoint, for example http://127.0.0.1:8080 or https://api.superlinked.com" + ) parser.add_argument( - "--show", action="store_true", help="Print the request with image bytes replaced by a hash; no SDK or network" + "--api-key-env", default="SIE_API_KEY", help="environment variable that holds the API key (default SIE_API_KEY)" ) + parser.add_argument("--model", default=MODEL, help=f"model id to request (measured: {MODEL})") + parser.add_argument("--dry-run", action="store_true", help="build the requests offline and send nothing") + parser.add_argument("--out", type=Path, help="run folder for --set (default runs/)") + parser.add_argument("--concurrency", type=int, default=8, help="requests in flight for --set (measured: 8)") + parser.add_argument("--write-bodies", action="store_true", help="with --set, also write the full bodies (large)") + parser.add_argument("--cache", type=Path, default=DATA, help="download folder (default data/)") + parser.add_argument("--read-timeout", type=float, default=1900.0, help="seconds to wait for one reply") + parser.add_argument( + "--no-wait-for-capacity", + dest="wait_for_capacity", + action="store_false", + help="fail instead of waiting while the endpoint provisions capacity", + ) + parser.add_argument("--no-readiness", action="store_true", help="skip the unscored text-only readiness request") args = parser.parse_args() - body = build_body(args.image.read_bytes(), json.loads(args.schema.read_text(encoding="utf-8")), show=args.show) - if args.show: - print(json.dumps({"model": MODEL, **body}, indent=2)) + if args.image and not args.schema: + parser.error("--image needs --schema") + if not args.dry_run and not args.base_url: + parser.error("--base-url is required unless --dry-run") + if args.image: + run_document(args) return - from sie_sdk import SIEClient # noqa: PLC0415 - Optional dependency; offline modes need only the standard library. - with SIEClient(args.endpoint, api_key=os.environ.get("SIE_API_KEY"), read_timeout_s=300) as client: - result = client.chat_completions(MODEL, **body, max_oom_retries=0, wait_for_capacity=False) - choice = result["choices"][0] - if choice.get("finish_reason") in {"length", "max_tokens"}: - raise SystemExit("The output limit was reached; this is not a complete extraction") - print(json.dumps(json.loads(choice["message"]["content"]), indent=2, ensure_ascii=False)) + args.out = args.out or HERE / "runs" / args.set + args.out.mkdir(parents=True, exist_ok=True) + if not args.dry_run and any((args.out / name).exists() for name in ("outcomes.jsonl", "replies.jsonl")): + raise SystemExit(f"{args.out} already holds a run; pass a new --out folder") + sender = None + if not args.dry_run: # fail on a missing or old SDK before any download + sender = Sender(args.base_url, api_key(args), args.read_timeout, wait_for_capacity=args.wait_for_capacity) + try: + check, inputs = build_set(args.set, args.model, args.out, args.cache, write_bodies=args.write_bodies) + (args.out / "dry_run.json").write_text(json.dumps(check, indent=1) + "\n", encoding="utf-8") + print(json.dumps(check, indent=1), flush=True) + if args.dry_run: + if check["bodies_match"] is False or check["show_match"] is False: + raise SystemExit(1) + return + run_set(args, sender, inputs) + finally: + if sender: + sender.close() if __name__ == "__main__": diff --git a/examples/doc-field-extraction-omni/score.py b/examples/doc-field-extraction-omni/score.py old mode 100644 new mode 100755 index 414aacbf8..5f4404a5e --- a/examples/doc-field-extraction-omni/score.py +++ b/examples/doc-field-extraction-omni/score.py @@ -1,109 +1,582 @@ -"""Replay document-level count evidence without making model calls.""" -# ruff: noqa: INP001 - Standalone example scripts are not a Python package. +#!/usr/bin/env python3 +"""Grade document-field-extraction replies with Omni's JSON accuracy. Python standard library only. + + python3 score.py --set confirm --published # regrade the published replies + python3 score.py --set confirm --replies runs/confirm/replies.jsonl # grade your own run + +What it computes, per document, is the score of the grader the published study ran: + + 1. Null fill, applied to the gold and to every reply alike: a key that the document's Omni JSON schema + declares but the JSON leaves out is added with the value null. Strict-schema APIs return null for an + absent field while others drop the key; nothing else is changed. + 2. Omni's calculateJsonAccuracy with ignoreCases false: 1 - (additions + deletions + modifications) / total + gold fields, floored at 0 and rounded with JavaScript's toFixed(4). The diff is json-diff 1.0.6 with + {sort: true}; its array alignment uses Python's difflib.SequenceMatcher, which json-diff's difflib port + follows line for line. + 3. A reply that is not a JSON object or array, or a row that carries an "error", scores 0. + +The mean is taken over every document in the set (100 pilot or 546 confirmation). A document with no row, an +error row, a capped reply or an unparsable reply counts as 0 in that denominator. + +The original grader is JavaScript. This file reimplements it, reproducing JavaScript value semantics wherever +they change a score: number parsing (integers beyond 2**53 become doubles), object key order, strict equality +and the default Array.prototype.sort string order. On the published replies it gives every per-document record +of the published omni_scores.json exactly. +""" + +# The diff and accuracy code below is a Python port of two MIT-licensed projects: +# +# OmniAI OCR benchmark, src/evaluation/json.ts https://github.com/getomni-ai/benchmark +# json-diff 1.0.6, lib/index.js https://github.com/andreyvit/json-diff +# Copyright (c) 2015 Andrey Tarantsov +# +# Both are distributed under the MIT License: +# +# Permission is hereby granted, free of charge, to any person obtaining a copy of this software and +# associated documentation files (the "Software"), to deal in the Software without restriction, including +# without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the +# following conditions: +# +# The above copyright notice and this permission notice shall be included in all copies or substantial +# portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT +# LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO +# EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER +# IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE +# USE OR OTHER DEALINGS IN THE SOFTWARE. from __future__ import annotations import argparse +import difflib import json import math +import re +import sys +from decimal import ROUND_HALF_UP, Decimal from pathlib import Path +from typing import Any -from fetch import HERE, load_manifest, verify_file - -ARMS = ("sie-qwen3.8-27b", "claude-haiku-4-5", "claude-sonnet-5-5", "gpt-6-luna", "gpt-6-sol") -FULL_DOCUMENTS = 800 -FRESH_DOCUMENTS = 770 - - -def load_evidence(root: Path) -> tuple[dict, list[dict]]: - """Verify every declared file before using the published counts.""" - manifest = load_manifest((root / "manifest.json").read_bytes()) - verified = {} - for name, expected in manifest["files"].items(): - data = (root / name).read_bytes() - verify_file(name, data, expected) - verified[name] = data - summary = json.loads(verified["summary.json"]) - rows = [json.loads(line) for line in verified["counts.jsonl"].splitlines()] - identities = {(row["arm"], row["document_id"]) for row in rows} - if len(identities) != len(rows): - raise ValueError("Duplicate arm/document pair") - inputs = [json.loads(line) for line in verified["inputs.jsonl"].splitlines()] - documents = {row["document_id"]: row for row in inputs} - if len(documents) != FULL_DOCUMENTS or len(inputs) != FULL_DOCUMENTS: - raise ValueError("Expected exactly 800 distinct input documents") - expected_identities = {(arm, document_id) for arm in ARMS for document_id in documents} - if identities != expected_identities: - raise ValueError("Count evidence must cover every input once for each of the five arms") - if set(summary["selected_claude_forms"]) != set(ARMS): - raise ValueError("Summary must preserve all five model arms") - for row in rows: - document = documents[row["document_id"]] - if (row["corpus"], row["fresh"]) != (document["corpus"], document["fresh"]): - raise ValueError(f"Count/input identity mismatch: {row['document_id']}") - return summary, rows - - -def aggregate(rows: list[dict], arm: str, fresh: bool) -> dict: - """Average one complete model scope while retaining every failed reply.""" - selected = [row for row in rows if row["arm"] == arm and (not fresh or row["fresh"])] - expected_n = FRESH_DOCUMENTS if fresh else FULL_DOCUMENTS - if len(selected) != expected_n: - raise ValueError(f"Incomplete scope for {arm}: {len(selected)} of {expected_n}") - omni = [row for row in selected if row["corpus"] == "omni"] - cord = [row for row in selected if row["corpus"] == "cord"] - return { - "documents": len(selected), - "omni_documents": len(omni), - "cord_documents": len(cord), - "omni_json_accuracy": sum(row["omni_accuracy"] for row in omni) / len(omni), - "cord_normalized_field_accuracy": sum(row["normalized_field_accuracy"] for row in cord) / len(cord), - "unparsed": sum(not row["parsed"] for row in selected), - "output_limits": sum(row["hit_limit"] for row in selected), - "transport_errors": sum(row["error"] for row in selected), - "fully_correct_omni": sum(row["fully_right"] for row in omni) / len(omni), - "mean_omni_tokens_in": sum(row["tokens_in"] for row in omni) / len(omni), - "mean_omni_tokens_out": sum(row["tokens_out"] for row in omni) / len(omni), - } +from fetch import DATA, PINS, SETS, fetch_published, load_omni_rows, study_ids + +# ---- JavaScript value semantics -------------------------------------------------------------------------------- + +UNDEF = object() # JavaScript undefined +SAFE = 2**53 +# Names that the JavaScript `in` operator finds on Object.prototype. The original code tests membership with +# `in`, so these keys would behave differently there; they never occur in the Omni data and are refused here. +PROTO = { + "constructor", + "__defineGetter__", + "__defineSetter__", + "hasOwnProperty", + "__lookupGetter__", + "__lookupSetter__", + "isPrototypeOf", + "propertyIsEnumerable", + "toString", + "valueOf", + "__proto__", + "toLocaleString", +} +INDEX = re.compile(r"(0|[1-9][0-9]*)\Z") + + +class Unsupported(Exception): + """An input whose JavaScript behaviour this port does not reproduce.""" + + +def _no_constant(name: str) -> Any: + raise ValueError(f"{name} is not JSON") + + +def _int(text: str) -> int | float: + value = int(text) + return value if -SAFE <= value <= SAFE else float(text) + + +def js_parse(text: Any) -> Any: + """JSON.parse: numbers become doubles, NaN and Infinity literals are rejected.""" + if text is None: + text = "null" + if not isinstance(text, str): + raise TypeError("not a string") + return json.loads(text, parse_int=_int, parse_constant=_no_constant) + + +def jtype(value: Any) -> str: + if value is None: + return "null" + if value is UNDEF: + return "undefined" + if isinstance(value, bool): + return "boolean" + if isinstance(value, (int, float)): + return "number" + if isinstance(value, str): + return "string" + if isinstance(value, list): + return "array" + if isinstance(value, dict): + return "object" + raise TypeError(type(value)) + + +def truthy(value: Any) -> bool: + if value is None or value is UNDEF or value is False: + return False + if isinstance(value, (int, float)) and not isinstance(value, bool): + return value != 0 and not math.isnan(value) + if isinstance(value, str): + return value != "" + return True + + +def js_keys(obj: dict) -> list[str]: + """Object.keys order: array-index keys ascending, then the rest in insertion order.""" + index = sorted((k for k in obj if INDEX.match(k) and int(k) < 2**32 - 1), key=int) + seen = set(index) + return index + [k for k in obj if k not in seen] + + +def js_in(key: str, obj: dict) -> bool: + if key in obj: + return True + if key in PROTO: + raise Unsupported(f"key {key!r} is inherited in JavaScript") + return False + + +def number_to_string(x: float) -> str: + """Number.prototype.toString() for a double (shortest round-trip digits, ECMAScript layout).""" + if math.isnan(x): + return "NaN" + if math.isinf(x): + return "Infinity" if x > 0 else "-Infinity" + if x == 0: + return "0" + if x < 0: + return "-" + number_to_string(-x) + _, digit_tuple, exponent = Decimal(repr(float(x))).as_tuple() + digits = "".join(map(str, digit_tuple)) + stripped = digits.rstrip("0") + exponent += len(digits) - len(stripped) + digits = stripped.lstrip("0") + k = len(digits) + n = k + exponent # x = 0.digits * 10**n + if k <= n <= 21: + return digits + "0" * (n - k) + if 0 < n <= 21: + return digits[:n] + "." + digits[n:] + if -6 < n <= 0: + return "0." + "0" * (-n) + digits + e = n - 1 + sign = "+" if e >= 0 else "-" + return (digits if k == 1 else digits[0] + "." + digits[1:]) + "e" + sign + str(abs(e)) + + +def to_string(value: Any) -> str: + """String(value) for the scalars the default sort compares.""" + if isinstance(value, str): + return value + if value is None: + return "null" + if isinstance(value, bool): + return "true" if value else "false" + return number_to_string(float(value)) + + +def sort_key(value: Any) -> bytes: + """Array.prototype.sort() with no comparator compares String(x) by UTF-16 code units.""" + return to_string(value).encode("utf-16-be", "surrogatepass") + + +def same_key(value: Any) -> tuple: + """An element key whose equality is JavaScript strict equality on these scalars.""" + t = jtype(value) + return (t, float(value)) if t == "number" else (t, value) + + +# ---- json-diff 1.0.6, lib/index.js (MIT), the paths taken with options {sort: true} ----------------------------- + + +def is_scalar(value: Any) -> bool: + return not isinstance(value, (dict, list)) + + +def object_diff(a: dict, b: dict) -> tuple[float, Any, bool]: + result: dict[str, Any] = {} + score: float = 0 + equal = True + for key in js_keys(a): + if not js_in(key, b): + result[f"{key}__deleted"] = a[key] + score -= 30 + equal = False + for key in js_keys(b): + if not js_in(key, a): + result[f"{key}__added"] = b[key] + score -= 30 + equal = False + for key in js_keys(a): + if key in b: + score += 20 + c_score, c_result, c_equal = diff(a[key], b[key]) + if not c_equal: + result[key] = c_result + equal = False + score += min(20, max(-10, c_score / 5)) + if equal: + return 100 * max(len(a), 0.5), UNDEF, True + return max(0, score), result, False -def replay(root: Path) -> dict: - """Recompute both scopes and require every aggregate to match the recording.""" - summary, rows = load_evidence(root) - results = {scope: {arm: aggregate(rows, arm, scope == "fresh") for arm in ARMS} for scope in ("full", "fresh")} - mapping = { - "omni_documents": "omni_n", - "cord_documents": "cord_n", - "omni_json_accuracy": "omni_accuracy", - "cord_normalized_field_accuracy": "cord_normalized_field_accuracy", - "unparsed": "unparsed", - "output_limits": "output_cap_rows", - "transport_errors": "transport_errors", - "fully_correct_omni": "omni_fully_right", - "mean_omni_tokens_in": "tokens_in_mean_omni", - "mean_omni_tokens_out": "tokens_out_mean_omni", +def find_matching_object(item: Any, index: int, fuzzy: dict[str, Any]) -> tuple[float, str] | None: + best = None # (score, key, index distance) + for key, entry in fuzzy.items(): + if key == "__next": + continue + distance = abs(entry["index"] - index) + if jtype(item) == jtype(entry["item"]): + score = diff(item, entry["item"])[0] + if best is None or score > best[0] or (score == best[0] and distance < best[2]): + best = (score, key, distance) + return None if best is None else (best[0], best[1]) + + +def scalarize(array: list, originals: dict[str, Any], fuzzy: dict[str, Any] | None = None) -> list: + matches: dict[int, str] = {} + if fuzzy is not None: + key_scores: dict[str, tuple[float, int]] = {} + for index, item in enumerate(array): + if is_scalar(item): + continue + best = find_matching_object(item, index, fuzzy) + if best and (best[1] not in key_scores or best[0] > key_scores[best[1]][0]): + key_scores[best[1]] = (best[0], index) + for key, (_, index) in key_scores.items(): + matches[index] = key + out = [] + for index, item in enumerate(array): + if is_scalar(item): + if isinstance(item, str) and (item in PROTO or item == "__next" or item.startswith("__$!SCALAR")): + raise Unsupported(f"array string {item!r} collides with json-diff's internal keys") + out.append(item) + else: + key = matches.get(index) + if key is None: + key = f"__$!SCALAR{originals['__next']}" + originals["__next"] += 1 + originals[key] = {"item": item, "index": index} + out.append(key) + return out + + +def scalarized(item: Any, originals: dict[str, Any]) -> bool: + return isinstance(item, str) and item in originals + + +def descalarize(item: Any, originals: dict[str, Any]) -> Any: + return originals[item]["item"] if scalarized(item, originals) else item + + +def array_diff(a: list, b: list) -> tuple[float, Any, bool]: + originals1: dict[str, Any] = {"__next": 1} + seq1 = scalarize(a, originals1) + originals2: dict[str, Any] = {"__next": originals1["__next"]} + seq2 = scalarize(b, originals2, originals1) + seq1.sort(key=sort_key) + seq2.sort(key=sort_key) + matcher = difflib.SequenceMatcher(None, [same_key(x) for x in seq1], [same_key(x) for x in seq2], autojunk=True) + opcodes = matcher.get_opcodes() + result: list = [] + score: float = 0 + equal = True + for op, i1, i2, j1, j2 in opcodes: + if op != "equal": + equal = False + if op == "equal": + for i in range(i1, i2): + item = seq1[i] + if scalarized(item, originals1): + if not scalarized(item, originals2): + raise Unsupported("json-diff internal error path") + _, c_result, c_equal = diff(descalarize(item, originals1), descalarize(item, originals2)) + if not c_equal: + result.append(["~", c_result]) + equal = False + else: + result.append([" "]) + else: + result.append([" "]) + score += 10 + elif op == "delete": + for i in range(i1, i2): + result.append(["-", descalarize(seq1[i], originals1)]) + score -= 5 + elif op == "insert": + for j in range(j1, j2): + result.append(["+", descalarize(seq2[j], originals2)]) + score -= 5 + elif op == "replace": + for i in range(i1, i2): + result.append(["-", descalarize(seq1[i], originals1)]) + score -= 5 + for j in range(j1, j2): + result.append(["+", descalarize(seq2[j], originals2)]) + score -= 5 + if equal or not opcodes: + return 100, UNDEF, True + return max(0, score), result, False + + +def diff(a: Any, b: Any) -> tuple[float, Any, bool]: + ta, tb = jtype(a), jtype(b) + if ta == tb == "object": + return object_diff(a, b) + if ta == tb == "array": + return array_diff(a, b) + if ta == tb and a == b: + return 100, UNDEF, True + return 0, {"__old": a, "__new": b}, False + + +# ---- OmniAI benchmark, src/evaluation/json.ts (MIT) ------------------------------------------------------------ + + +def count_total_fields(obj: Any) -> int: + count = 0 + + def walk(current: Any) -> None: + nonlocal count + if not truthy(current) or not isinstance(current, (dict, list)): + return + if isinstance(current, list): + for item in current: + if isinstance(item, (dict, list)): + walk(item) + else: + count += 1 + else: + for key in js_keys(current): + if "__" in key: + continue + value = current[key] + if value is None or isinstance(value, (str, int, float)): # bool is an int in Python + count += 1 + elif isinstance(value, (dict, list)): + walk(value) + + walk(obj) + return count + + +def count_changes(diff_result: Any) -> dict[str, int]: + changes = {"additions": 0, "deletions": 0, "modifications": 0, "total": 0} + + def walk(obj: Any) -> None: + if not isinstance(obj, (dict, list)): + return + pairs = ( + ((k, obj[k]) for k in js_keys(obj)) if isinstance(obj, dict) else ((str(i), v) for i, v in enumerate(obj)) + ) + for key, value in pairs: + if isinstance(value, list): + for item in value: + if not isinstance(item, list) or len(item) != 2: + continue + operation, element = item + if not isinstance(element, (dict, list)): + if operation == "+": + changes["additions"] += 1 + elif operation == "-": + changes["deletions"] += 1 + elif operation == "+": + changes["additions"] += count_total_fields(element) + elif operation == "-": + changes["deletions"] += count_total_fields(element) + elif operation == "~": + walk(element) + elif key.endswith("__deleted"): + changes["deletions"] += count_total_fields(value) if isinstance(value, (dict, list)) else 1 + elif key.endswith("__added"): + changes["additions"] += count_total_fields(value) if isinstance(value, (dict, list)) else 1 + elif isinstance(value, dict): + if "__old" in value and "__new" in value: + if value["__old"] is None and value["__new"] is not None: + changes["modifications"] += count_total_fields(value["__new"]) or 1 + else: + changes["modifications"] += count_total_fields(value["__old"]) or 1 + else: + walk(value) + + walk(diff_result) + changes["total"] = changes["additions"] + changes["deletions"] + changes["modifications"] + return changes + + +def to_fixed4(x: float) -> float: + """Number(x.toFixed(4)): the nearest 4-decimal value to the exact double, ties to the larger.""" + if math.isnan(x): + return x + return float(Decimal(x).quantize(Decimal("0.0001"), rounding=ROUND_HALF_UP)) + + +def json_accuracy(actual: Any, predicted: Any) -> dict[str, Any]: + result = diff(actual, predicted)[1] + total_fields = count_total_fields(actual) + if result is UNDEF: + return { + "score": 1, + "stats": {"additions": 0, "deletions": 0, "modifications": 0, "total": 0}, + "totalFields": total_fields, + } + changes = count_changes(result) + if total_fields == 0: + raw = float("nan") if changes["total"] == 0 else 0.0 + else: + raw = max(0, 1 - changes["total"] / total_fields) + return {"score": to_fixed4(raw), "stats": changes, "totalFields": total_fields} + + +# ---- the study's null fill and row rules ----------------------------------------------------------------------- + + +def schema_type(schema: Any) -> Any: + t = schema.get("type") if isinstance(schema, dict) else None + if isinstance(t, list): + t = next((x for x in t if x != "null"), None) + return t + + +def fill_nulls(value: Any, schema: Any) -> Any: + if not truthy(schema) or value is None or value is UNDEF: + return value + t = schema_type(schema) + if t == "object" and isinstance(value, dict): + out = dict(value) + props = schema.get("properties") + if props is None: + props = {} + if not isinstance(props, dict): + raise Unsupported("schema properties is not an object") + for key in js_keys(props): + out[key] = fill_nulls(out[key], props[key]) if js_in(key, out) else None + return out + if t == "array" and isinstance(value, list) and truthy(schema.get("items", UNDEF)): + return [fill_nulls(v, schema["items"]) for v in value] + return value + + +def score_document(row: dict[str, Any] | None, omni_row: dict[str, Any]) -> dict[str, Any]: + """One document's grader record. A missing row scores 0 like an error row.""" + schema = js_parse(omni_row["json_schema"]) + gold = fill_nulls(js_parse(omni_row["true_json_output"]), schema) + if row is None: + return {"score": 0, "parsed": False, "error": "no row", "totalFields": count_total_fields(gold)} + parsed = None + if not truthy(row.get("error")): + try: + parsed = js_parse(row.get("text")) + except (ValueError, TypeError): + parsed = None + if not isinstance(parsed, (dict, list)): + error = row.get("error") + return { + "score": 0, + "parsed": False, + "error": "not JSON" if error is None else error, + "totalFields": count_total_fields(gold), + } + r = json_accuracy(gold, fill_nulls(parsed, schema)) + return {"score": r["score"], "parsed": True, "totalFields": r["totalFields"], "stats": r["stats"]} + + +def read_rows(path: Path) -> dict[str, dict[str, Any]]: + """Grader rows {"id", "text", optional "error"}; a later row replaces an earlier error row for the same id.""" + rows: dict[str, dict[str, Any]] = {} + for line in path.read_text(encoding="utf-8").split("\n"): # split on newline only, as the original did + if not line.strip(): + continue + row = json.loads(line) + prev = rows.get(row["id"]) + if prev is None or truthy(prev.get("error")): + rows[row["id"]] = row + return rows + + +def score_set(set_name: str, rows: dict[str, dict[str, Any]], cache: Path) -> tuple[dict[str, dict], dict]: + omni = load_omni_rows(cache) + ids = study_ids(set_name) + per = {i: score_document(rows.get(i), omni[i]) for i in ids} + scores = [per[i]["score"] for i in ids] + summary = { + "set": set_name, + "documents": len(ids), + "mean": round(100 * sum(scores) / len(ids), 2), + "mean_exact": 100 * sum(scores) / len(ids), + "parsed": sum(1 for i in ids if per[i]["parsed"]), + "rows_missing": sum(1 for i in ids if i not in rows), + "rows_with_error": sum(1 for i in ids if i in rows and truthy(rows[i].get("error"))), + "documents_scoring_1": sum(1 for s in scores if s == 1), + "rows_outside_set_ignored": len(set(rows) - set(ids)), } - for scope, arms in results.items(): - for arm, result in arms.items(): - recorded = summary["scopes"][scope]["summary"][arm] - for computed_key, recorded_key in mapping.items(): - if not math.isclose(result[computed_key], recorded[recorded_key], rel_tol=0, abs_tol=1e-12): - raise ValueError(f"Count replay mismatch: {scope}/{arm}/{computed_key}") + return per, summary + + +def compare(per: dict[str, dict], expected: dict[str, dict]) -> dict[str, Any]: + """Compare per-document records with a published omni_scores.json arm.""" + keys = ("score", "parsed", "totalFields", "stats") + diffs = [i for i in per if i not in expected or any(per[i].get(k) != expected[i].get(k) for k in keys)] return { - "count_replay": results, - "verified": True, - "registered_bootstrap": summary["bootstrap"], - "registered_decisions": summary["eligible_on_both_scopes"], - "current_price_projection": summary["current_price_projection"], + "documents_compared": len(per), + "identical": len(per) - len(diffs), + "different": diffs[:20], + "expected_only": sorted(set(expected) - set(per))[:20], } def main() -> None: - """Print the verified count replay and its saved decision metadata.""" - parser = argparse.ArgumentParser(description=__doc__) - parser.add_argument("--evidence", type=Path, default=HERE / "data") + """Grade a set of replies and, when given published scores, compare every document.""" + parser = argparse.ArgumentParser(description=__doc__, formatter_class=argparse.RawDescriptionHelpFormatter) + parser.add_argument("--set", choices=SETS, required=True) + source = parser.add_mutually_exclusive_group(required=True) + source.add_argument("--replies", type=Path, help="grader rows, one JSON object per line") + source.add_argument( + "--published", action="store_true", help="regrade the published replies and compare with the published scores" + ) + parser.add_argument("--expect", type=Path, help="an omni_scores.json to compare per-document records with") + parser.add_argument("--expect-arm", default="A1") + parser.add_argument("--arm", default="A1", help="arm name used in --out") + parser.add_argument("--out", type=Path, help="write per-document records in omni_scores.json form") + parser.add_argument("--cache", type=Path, default=DATA, help="download folder (default data/)") args = parser.parse_args() - print(json.dumps(replay(args.evidence), indent=2)) + + expected = None + if args.published: + published = fetch_published(args.set, args.cache) + replies = published["replies"] + expected = json.loads(published["scores"].read_text(encoding="utf-8"))["A1"] + else: + replies = args.replies + if args.expect: + expected = json.loads(args.expect.read_text(encoding="utf-8"))[args.expect_arm] + try: + per, summary = score_set(args.set, read_rows(replies), args.cache) + except Unsupported as exc: + raise SystemExit(f"unsupported input: {exc}") from exc + report: dict[str, Any] = {"summary": summary} + if expected is not None: + report["per_document_check"] = compare(per, expected) + report["published_mean"] = PINS["sets"][args.set]["published_mean"] + if args.out: + args.out.write_text(json.dumps({args.arm: per}, indent=1) + "\n", encoding="utf-8") + print(json.dumps(report, indent=1)) + check = report.get("per_document_check") + if check and (check["different"] or check["expected_only"]): + sys.exit(1) if __name__ == "__main__": diff --git a/examples/doc-field-extraction-omni/sets/confirm.image_manifest.json b/examples/doc-field-extraction-omni/sets/confirm.image_manifest.json new file mode 100644 index 000000000..36cf9748c --- /dev/null +++ b/examples/doc-field-extraction-omni/sets/confirm.image_manifest.json @@ -0,0 +1,4370 @@ +[ + { + "id": "omni-102", + "image_file": "102.jpg", + "image_sha256": "7a4e0fc66cea123983bdb7b20bbea8dff6e99d932257209f43e14349c6d8c2d0", + "sets_json_sha256": "7a4e0fc66cea123983bdb7b20bbea8dff6e99d932257209f43e14349c6d8c2d0", + "qualified": true, + "format": "BANK_CHECK" + }, + { + "id": "omni-103", + "image_file": "103.png", + "image_sha256": "c5849007120571c4531f83b0e90286fcc459c2fa020b52eddcb14e0ac58f738c", + "sets_json_sha256": "c5849007120571c4531f83b0e90286fcc459c2fa020b52eddcb14e0ac58f738c", + "qualified": true, + "format": "SHIPPING_INVOICE" + }, + { + "id": "omni-104", + "image_file": "104.png", + "image_sha256": "ba963179bc1916e6f2e1493053994417987def679ff5b1e245fc8b3ff1627f2e", + "sets_json_sha256": "ba963179bc1916e6f2e1493053994417987def679ff5b1e245fc8b3ff1627f2e", + "qualified": true, + "format": "REAL_ESTATE" + }, + { + "id": "omni-107", + "image_file": "107.png", + "image_sha256": "94b26bf3384ee441bd305e796eeac48370db19596f9671f55eea42385e52c95a", + "sets_json_sha256": "94b26bf3384ee441bd305e796eeac48370db19596f9671f55eea42385e52c95a", + "qualified": true, + "format": "SHIPPING_INVOICE" + }, + { + "id": "omni-110", + "image_file": "110.png", + "image_sha256": "02a64035fbda622da2d58a0af4098958310852706d433087783e0cf9345b5ae9", + "sets_json_sha256": "02a64035fbda622da2d58a0af4098958310852706d433087783e0cf9345b5ae9", + "qualified": true, + "format": "REAL_ESTATE" + }, + { + "id": "omni-111", + "image_file": "111.png", + "image_sha256": "d81858f4b916e2a661278914c69dbc42ee900a73a88d969a1d68c6e4f4c7e192", + "sets_json_sha256": "d81858f4b916e2a661278914c69dbc42ee900a73a88d969a1d68c6e4f4c7e192", + "qualified": true, + "format": "PAY_IN_SHEET" + }, + { + "id": "omni-113", + "image_file": "113.png", + "image_sha256": "b5d6e088b626b21a4b2a8c25e595af7c2fe95c963dc25839bedb651e168066f4", + "sets_json_sha256": "b5d6e088b626b21a4b2a8c25e595af7c2fe95c963dc25839bedb651e168066f4", + "qualified": true, + "format": "DELIVERY_NOTE" + }, + { + "id": "omni-114", + "image_file": "114.png", + "image_sha256": "6688710dba5dacc9400d8323c2cd7782fd38a3dbbd83aa0604aabd155dd1bb81", + "sets_json_sha256": "6688710dba5dacc9400d8323c2cd7782fd38a3dbbd83aa0604aabd155dd1bb81", + "qualified": true, + "format": "PETITION_FORM" + }, + { + "id": "omni-115", + "image_file": "115.png", + "image_sha256": "1638ae448e63099748d8ea3127ea5803a5354c64631062898c35857e26c0bafa", + "sets_json_sha256": "1638ae448e63099748d8ea3127ea5803a5354c64631062898c35857e26c0bafa", + "qualified": true, + "format": "BANK_CHECK" + }, + { + "id": "omni-119", + "image_file": "119.png", + "image_sha256": "ba41005fbbfd3a6c1487c7d9e66ba62484b10dde15a4563a2aef5e9ff3dc1590", + "sets_json_sha256": "ba41005fbbfd3a6c1487c7d9e66ba62484b10dde15a4563a2aef5e9ff3dc1590", + "qualified": true, + "format": "DELIVERY_NOTE" + }, + { + "id": "omni-12", + "image_file": "12.jpg", + "image_sha256": "768b4b122ef6daed0ae4fa10a2c2b77366e4e89d5bc1b30bdfee4774905f1c09", + "sets_json_sha256": "768b4b122ef6daed0ae4fa10a2c2b77366e4e89d5bc1b30bdfee4774905f1c09", + "qualified": true, + "format": "SHIPPING_INVOICE" + }, + { + "id": "omni-120", + "image_file": "120.png", + "image_sha256": "dd25c0cc4ad083acb0132cbfd7d153e2d680e93c70f39ff7a4df0115a4ff54ac", + "sets_json_sha256": "dd25c0cc4ad083acb0132cbfd7d153e2d680e93c70f39ff7a4df0115a4ff54ac", + "qualified": true, + "format": "COMMERCIAL_LEASE_AGREEMENT" + }, + { + "id": "omni-121", + "image_file": "121.png", + "image_sha256": "a9faf986f1ae851391b96e04eb35cf333e78ea583ff71c5afc8d60ec112ab09c", + "sets_json_sha256": "a9faf986f1ae851391b96e04eb35cf333e78ea583ff71c5afc8d60ec112ab09c", + "qualified": true, + "format": "SHIPPING_INVOICE" + }, + { + "id": "omni-122", + "image_file": "122.png", + "image_sha256": "fb035c6ad5469ed0515cf35af750a648d205e5945ebf0c498161c4dcf6067577", + "sets_json_sha256": "fb035c6ad5469ed0515cf35af750a648d205e5945ebf0c498161c4dcf6067577", + "qualified": true, + "format": "REAL_ESTATE" + }, + { + "id": "omni-123", + "image_file": "123.png", + "image_sha256": "2187b618df6912a599fab2eebad204ac5e981187a64c0f61962443559ed8c6d2", + "sets_json_sha256": "2187b618df6912a599fab2eebad204ac5e981187a64c0f61962443559ed8c6d2", + "qualified": true, + "format": "PETITION_FORM" + }, + { + "id": "omni-124", + "image_file": "124.png", + "image_sha256": "3e7db432070b8487d36d7a617b45ba42ff8e6cd1a7e4e176261ad30323382b30", + "sets_json_sha256": "3e7db432070b8487d36d7a617b45ba42ff8e6cd1a7e4e176261ad30323382b30", + "qualified": true, + "format": "PROXY_VOTING" + }, + { + "id": "omni-126", + "image_file": "126.png", + "image_sha256": "5c65781298f4eb14faa0b7a745237799832e70400f8b0c512c06ceb2dbee45f9", + "sets_json_sha256": "5c65781298f4eb14faa0b7a745237799832e70400f8b0c512c06ceb2dbee45f9", + "qualified": true, + "format": "REAL_ESTATE" + }, + { + "id": "omni-127", + "image_file": "127.png", + "image_sha256": "c767295a63d06fe4fcc3a13ffedbeadbb17c146f4c10b957091b9b2718e0e87b", + "sets_json_sha256": "c767295a63d06fe4fcc3a13ffedbeadbb17c146f4c10b957091b9b2718e0e87b", + "qualified": true, + "format": "PROXY_VOTING" + }, + { + "id": "omni-128", + "image_file": "128.png", + "image_sha256": "396382a80b2e87e5892070c0138ef19be5251aa35323f7269cd13cdc6d36a289", + "sets_json_sha256": "396382a80b2e87e5892070c0138ef19be5251aa35323f7269cd13cdc6d36a289", + "qualified": true, + "format": "CREDIT_CARD_STATEMENT" + }, + { + "id": "omni-129", + "image_file": "129.png", + "image_sha256": "517c563ff8e452869cec733c420567fc95c34320385361e119ed87f40a09a033", + "sets_json_sha256": "517c563ff8e452869cec733c420567fc95c34320385361e119ed87f40a09a033", + "qualified": true, + "format": "COMMERCIAL_LEASE_AGREEMENT" + }, + { + "id": "omni-130", + "image_file": "130.png", + "image_sha256": "c219e5a293a20ae458fe6461448c974bf42f015ad93f5bfcef84e69c91d07ab5", + "sets_json_sha256": "c219e5a293a20ae458fe6461448c974bf42f015ad93f5bfcef84e69c91d07ab5", + "qualified": true, + "format": "PAY_IN_SHEET" + }, + { + "id": "omni-131", + "image_file": "131.png", + "image_sha256": "0f61ab757498fcf0163815b5c8b77cb2b3820a4625998c3bbd008debe97e7619", + "sets_json_sha256": "0f61ab757498fcf0163815b5c8b77cb2b3820a4625998c3bbd008debe97e7619", + "qualified": true, + "format": "PATIENT_INTAKE" + }, + { + "id": "omni-132", + "image_file": "132.png", + "image_sha256": "3416857efa9d91039a695c13e744002aca416ff71f66d66ca72a4ac25dec3c63", + "sets_json_sha256": "3416857efa9d91039a695c13e744002aca416ff71f66d66ca72a4ac25dec3c63", + "qualified": true, + "format": "PROXY_VOTING" + }, + { + "id": "omni-133", + "image_file": "133.png", + "image_sha256": "e1ec11f1f76922e784e279a451528339de7feb3f8ac02b32357543bb304092bd", + "sets_json_sha256": "e1ec11f1f76922e784e279a451528339de7feb3f8ac02b32357543bb304092bd", + "qualified": true, + "format": "REAL_ESTATE" + }, + { + "id": "omni-134", + "image_file": "134.jpeg", + "image_sha256": "61e5325ac0d03f77abab79cfbae93991d914a78d2c5241712dc5f4c57e63ca90", + "sets_json_sha256": "61e5325ac0d03f77abab79cfbae93991d914a78d2c5241712dc5f4c57e63ca90", + "qualified": true, + "format": "PHOTO_RECEIPT" + }, + { + "id": "omni-137", + "image_file": "137.png", + "image_sha256": "58bc9d213a7d4d677c15f463f03780e6e51033ea89f46d1e33362adba0c46606", + "sets_json_sha256": "58bc9d213a7d4d677c15f463f03780e6e51033ea89f46d1e33362adba0c46606", + "qualified": true, + "format": "PATIENT_INTAKE" + }, + { + "id": "omni-139", + "image_file": "139.png", + "image_sha256": "8be8b2f27e462d487b0659d419b30f8692e51c61771f8da5ff792b7cce8a7496", + "sets_json_sha256": "8be8b2f27e462d487b0659d419b30f8692e51c61771f8da5ff792b7cce8a7496", + "qualified": true, + "format": "EQUIPMENT_INSPECTION" + }, + { + "id": "omni-143", + "image_file": "143.png", + "image_sha256": "bb5d695d0b62f6d6f47e0b30bafb1cef2197529ee9722c4ab03eb57857f2bc64", + "sets_json_sha256": "bb5d695d0b62f6d6f47e0b30bafb1cef2197529ee9722c4ab03eb57857f2bc64", + "qualified": true, + "format": "BANK_CHECK" + }, + { + "id": "omni-145", + "image_file": "145.png", + "image_sha256": "9ee14183c68cbf70a544c531ae6611a42d61376f729f592a0e1e8f213b214223", + "sets_json_sha256": "9ee14183c68cbf70a544c531ae6611a42d61376f729f592a0e1e8f213b214223", + "qualified": true, + "format": "FORM_1040" + }, + { + "id": "omni-146", + "image_file": "146.png", + "image_sha256": "c99eba1269bdabaa2f7891aa517c8d4e66131ef655fa6cae5d5d40304a614c9b", + "sets_json_sha256": "c99eba1269bdabaa2f7891aa517c8d4e66131ef655fa6cae5d5d40304a614c9b", + "qualified": true, + "format": "COMMERCIAL_LEASE_AGREEMENT" + }, + { + "id": "omni-150", + "image_file": "150.png", + "image_sha256": "7690707eb86a1bd80954ecfb427684b182499ec57d24cb97d29c5ec3577684d0", + "sets_json_sha256": "7690707eb86a1bd80954ecfb427684b182499ec57d24cb97d29c5ec3577684d0", + "qualified": true, + "format": "FORM_1040" + }, + { + "id": "omni-152", + "image_file": "152.png", + "image_sha256": "f4d4e430819300b1df9ea77073c3e7a57f0658f8d992e3bff6a0e1807c7119b1", + "sets_json_sha256": "f4d4e430819300b1df9ea77073c3e7a57f0658f8d992e3bff6a0e1807c7119b1", + "qualified": true, + "format": "BANK_CHECK" + }, + { + "id": "omni-153", + "image_file": "153.png", + "image_sha256": "6d30bafd743de22865ed0a779cb0f3dc38db3337bf3a464df0c4b0932fdccdd6", + "sets_json_sha256": "6d30bafd743de22865ed0a779cb0f3dc38db3337bf3a464df0c4b0932fdccdd6", + "qualified": true, + "format": "PAY_IN_SHEET" + }, + { + "id": "omni-154", + "image_file": "154.png", + "image_sha256": "bf95d12c8594e16c4351c95ec88beb17a569c2eb50019923649e74d4d8132f2e", + "sets_json_sha256": "bf95d12c8594e16c4351c95ec88beb17a569c2eb50019923649e74d4d8132f2e", + "qualified": true, + "format": "PETITION_FORM" + }, + { + "id": "omni-157", + "image_file": "157.png", + "image_sha256": "dfb931ab0752c6929f3fe2a1c738cfec0e0950d106883b107d68eca5f867a13b", + "sets_json_sha256": "dfb931ab0752c6929f3fe2a1c738cfec0e0950d106883b107d68eca5f867a13b", + "qualified": true, + "format": "DELIVERY_NOTE" + }, + { + "id": "omni-159", + "image_file": "159.png", + "image_sha256": "79cc1ff408d113da3d33e3158dc93ab43848f733e7a7662f0a97a46503341450", + "sets_json_sha256": "79cc1ff408d113da3d33e3158dc93ab43848f733e7a7662f0a97a46503341450", + "qualified": true, + "format": "BANK_CHECK" + }, + { + "id": "omni-160", + "image_file": "160.png", + "image_sha256": "be08dfed9c99d501bbbed2be68b1991f289dfba2913f66886ca9780b5797d601", + "sets_json_sha256": "be08dfed9c99d501bbbed2be68b1991f289dfba2913f66886ca9780b5797d601", + "qualified": true, + "format": "DELIVERY_NOTE" + }, + { + "id": "omni-165", + "image_file": "165.png", + "image_sha256": "4420af9cc1c9927b6944900c41ca066351efc35c40b55ab9ae85652e4f7ebce5", + "sets_json_sha256": "4420af9cc1c9927b6944900c41ca066351efc35c40b55ab9ae85652e4f7ebce5", + "qualified": true, + "format": "BANK_CHECK" + }, + { + "id": "omni-166", + "image_file": "166.png", + "image_sha256": "5d33c7074f2bf2fb472660f759ca0402288713f8c350806dd27e3c8658afc86d", + "sets_json_sha256": "5d33c7074f2bf2fb472660f759ca0402288713f8c350806dd27e3c8658afc86d", + "qualified": true, + "format": "COMMERCIAL_LEASE_AGREEMENT" + }, + { + "id": "omni-167", + "image_file": "167.png", + "image_sha256": "a757c60ae57709575a7e697b5e7ef101f76e095687655c0dc14145ec7e2df9ea", + "sets_json_sha256": "a757c60ae57709575a7e697b5e7ef101f76e095687655c0dc14145ec7e2df9ea", + "qualified": true, + "format": "ACCOUNT_STATEMENT" + }, + { + "id": "omni-168", + "image_file": "168.png", + "image_sha256": "1a648e44d94628fdf43724d0f5562e52d4600f63502d436f5961456722a99842", + "sets_json_sha256": "1a648e44d94628fdf43724d0f5562e52d4600f63502d436f5961456722a99842", + "qualified": true, + "format": "CREDIT_CARD_STATEMENT" + }, + { + "id": "omni-17", + "image_file": "17.jpg", + "image_sha256": "04fd82cfebb7e343c0a3cf91a996b962fb20d2f2dd1087213c7b0a863399648c", + "sets_json_sha256": "04fd82cfebb7e343c0a3cf91a996b962fb20d2f2dd1087213c7b0a863399648c", + "qualified": true, + "format": "BANK_CHECK" + }, + { + "id": "omni-170", + "image_file": "170.png", + "image_sha256": "d18582f8325ea956e2ae9beb5fb684fc4778f2ccc5dc63fc3dc6f7bec39be9ee", + "sets_json_sha256": "d18582f8325ea956e2ae9beb5fb684fc4778f2ccc5dc63fc3dc6f7bec39be9ee", + "qualified": true, + "format": "DELIVERY_NOTE" + }, + { + "id": "omni-173", + "image_file": "173.png", + "image_sha256": "b7999991c7cd343d589551b55710a315a7e1596fb924945e54dc23277c36db08", + "sets_json_sha256": "b7999991c7cd343d589551b55710a315a7e1596fb924945e54dc23277c36db08", + "qualified": true, + "format": "FORM_1040" + }, + { + "id": "omni-175", + "image_file": "175.png", + "image_sha256": "60c6ef53166bfae86bdf82ed1f99cf9460d29a5795dd01bfe837fa412b62ce8f", + "sets_json_sha256": "60c6ef53166bfae86bdf82ed1f99cf9460d29a5795dd01bfe837fa412b62ce8f", + "qualified": true, + "format": "FORM_1040" + }, + { + "id": "omni-176", + "image_file": "176.png", + "image_sha256": "380d564d6e341bcc7b4a0536e2490815d4548b256ff152047ea28291d3034aed", + "sets_json_sha256": "380d564d6e341bcc7b4a0536e2490815d4548b256ff152047ea28291d3034aed", + "qualified": true, + "format": "DELIVERY_NOTE" + }, + { + "id": "omni-177", + "image_file": "177.png", + "image_sha256": "094d21e58a310eee7af019e497485c89a4ec8eff2afe0e9aa8ab6bee3c9820c3", + "sets_json_sha256": "094d21e58a310eee7af019e497485c89a4ec8eff2afe0e9aa8ab6bee3c9820c3", + "qualified": true, + "format": "PAY_IN_SHEET" + }, + { + "id": "omni-179", + "image_file": "179.png", + "image_sha256": "4aa9f12f6e34f39887ed50d5edf21b9cab417509b4a000dbcff36d38b8da664c", + "sets_json_sha256": "4aa9f12f6e34f39887ed50d5edf21b9cab417509b4a000dbcff36d38b8da664c", + "qualified": true, + "format": "COMMERCIAL_LEASE_AGREEMENT" + }, + { + "id": "omni-180", + "image_file": "180.png", + "image_sha256": "e14de3a7fef29551861ba8400316aa7ced2d895d89d746708a9c76e1915f3621", + "sets_json_sha256": "e14de3a7fef29551861ba8400316aa7ced2d895d89d746708a9c76e1915f3621", + "qualified": true, + "format": "ACCOUNT_STATEMENT" + }, + { + "id": "omni-182", + "image_file": "182.png", + "image_sha256": "0ee2cff60b655c60def2d1d7b5b3d15e1d91c7beba1b8055c498b9f086f03d7b", + "sets_json_sha256": "0ee2cff60b655c60def2d1d7b5b3d15e1d91c7beba1b8055c498b9f086f03d7b", + "qualified": true, + "format": "PETITION_FORM" + }, + { + "id": "omni-183", + "image_file": "183.png", + "image_sha256": "0e60c3518041a5efbecd99faef27469b438911d7bd55aae4ad98695f7cd635b8", + "sets_json_sha256": "0e60c3518041a5efbecd99faef27469b438911d7bd55aae4ad98695f7cd635b8", + "qualified": true, + "format": "COMMERCIAL_LEASE_AGREEMENT" + }, + { + "id": "omni-186", + "image_file": "186.png", + "image_sha256": "0c55d24c7d1cc5ed521cdc88161f961c83e709622fb492d89bf8318c700198ae", + "sets_json_sha256": "0c55d24c7d1cc5ed521cdc88161f961c83e709622fb492d89bf8318c700198ae", + "qualified": true, + "format": "EQUIPMENT_INSPECTION" + }, + { + "id": "omni-187", + "image_file": "187.png", + "image_sha256": "3bad7cb9c479e57171ba3aebcc8e8cfb6db2f67e73e50886862f948fcb37ad0f", + "sets_json_sha256": "3bad7cb9c479e57171ba3aebcc8e8cfb6db2f67e73e50886862f948fcb37ad0f", + "qualified": true, + "format": "PROXY_VOTING" + }, + { + "id": "omni-19", + "image_file": "19.jpg", + "image_sha256": "664d3a80abc8e67fedb1e0fd79ad4fda15f1e2911927e1310928237e9bde9f54", + "sets_json_sha256": "664d3a80abc8e67fedb1e0fd79ad4fda15f1e2911927e1310928237e9bde9f54", + "qualified": true, + "format": "PHOTO_RECEIPT" + }, + { + "id": "omni-191", + "image_file": "191.png", + "image_sha256": "dfe79314a5e60bcc4ab74fa1bd9d828a3952b30788a82c2e005ad1da538e5c08", + "sets_json_sha256": "dfe79314a5e60bcc4ab74fa1bd9d828a3952b30788a82c2e005ad1da538e5c08", + "qualified": true, + "format": "EQUIPMENT_INSPECTION" + }, + { + "id": "omni-192", + "image_file": "192.png", + "image_sha256": "f3e9ea5c96287954e1c3791ea486a475d0f528b758bac134d7423ec30412cd10", + "sets_json_sha256": "f3e9ea5c96287954e1c3791ea486a475d0f528b758bac134d7423ec30412cd10", + "qualified": true, + "format": "PROXY_VOTING" + }, + { + "id": "omni-193", + "image_file": "193.png", + "image_sha256": "4d5dc70844052910f83ce38309c807f876ece48930aaea845bfc5d15bdaa1ea7", + "sets_json_sha256": "4d5dc70844052910f83ce38309c807f876ece48930aaea845bfc5d15bdaa1ea7", + "qualified": true, + "format": "PATIENT_INTAKE" + }, + { + "id": "omni-197", + "image_file": "197.png", + "image_sha256": "c046d89c33e133286ce208e3a5650dc5739cf1ccd2f6a23b2e9708c20d6c0f0c", + "sets_json_sha256": "c046d89c33e133286ce208e3a5650dc5739cf1ccd2f6a23b2e9708c20d6c0f0c", + "qualified": true, + "format": "SHIPPING_INVOICE" + }, + { + "id": "omni-199", + "image_file": "199.png", + "image_sha256": "274ea9de8a068b1acbcdcd836254bc30b1193c4cb7392d3510aafabb10897038", + "sets_json_sha256": "274ea9de8a068b1acbcdcd836254bc30b1193c4cb7392d3510aafabb10897038", + "qualified": true, + "format": "PAY_IN_SHEET" + }, + { + "id": "omni-201", + "image_file": "201.png", + "image_sha256": "0ba8f5f58ccc8a3facd17f2b809498326e26e830d12c665768e7c8fd68008fb0", + "sets_json_sha256": "0ba8f5f58ccc8a3facd17f2b809498326e26e830d12c665768e7c8fd68008fb0", + "qualified": true, + "format": "BANK_CHECK" + }, + { + "id": "omni-203", + "image_file": "203.png", + "image_sha256": "46e642e187b0e006f63a5f445ee993a91a51f8bd07ac3e52777a06696ab62a47", + "sets_json_sha256": "46e642e187b0e006f63a5f445ee993a91a51f8bd07ac3e52777a06696ab62a47", + "qualified": true, + "format": "FORM_1040" + }, + { + "id": "omni-204", + "image_file": "204.png", + "image_sha256": "ea2158cc39bdf4c4f1e8f1a0adc90ed36a94ea537f4e4299fbd03d58295c1cc9", + "sets_json_sha256": "ea2158cc39bdf4c4f1e8f1a0adc90ed36a94ea537f4e4299fbd03d58295c1cc9", + "qualified": true, + "format": "ACCOUNT_STATEMENT" + }, + { + "id": "omni-206", + "image_file": "206.png", + "image_sha256": "41815dec668e2e6a149a09b73c9b0e5242c3156d6ffa6b2f192f52018df729f7", + "sets_json_sha256": "41815dec668e2e6a149a09b73c9b0e5242c3156d6ffa6b2f192f52018df729f7", + "qualified": true, + "format": "CREDIT_CARD_STATEMENT" + }, + { + "id": "omni-211", + "image_file": "211.png", + "image_sha256": "0527670ae54c929771378f78856d2e558a50907bf506fd6240042657951c2617", + "sets_json_sha256": "0527670ae54c929771378f78856d2e558a50907bf506fd6240042657951c2617", + "qualified": true, + "format": "PROXY_VOTING" + }, + { + "id": "omni-212", + "image_file": "212.png", + "image_sha256": "6dc73bc8e4c4b687a32c06bc4d379f6002f1ce4e5f8708577f9f288dfffb8361", + "sets_json_sha256": "6dc73bc8e4c4b687a32c06bc4d379f6002f1ce4e5f8708577f9f288dfffb8361", + "qualified": true, + "format": "COMMERCIAL_LEASE_AGREEMENT" + }, + { + "id": "omni-214", + "image_file": "214.png", + "image_sha256": "2e8efa6f20d88f6c1657188f2b1344342d4d5760f0293fdef08ebbeffe3a0f61", + "sets_json_sha256": "2e8efa6f20d88f6c1657188f2b1344342d4d5760f0293fdef08ebbeffe3a0f61", + "qualified": true, + "format": "ACCOUNT_STATEMENT" + }, + { + "id": "omni-215", + "image_file": "215.png", + "image_sha256": "6b77bd4e0ffb2badb193cff251c914a71ca2f789ee1e27d03d8a96431db55882", + "sets_json_sha256": "6b77bd4e0ffb2badb193cff251c914a71ca2f789ee1e27d03d8a96431db55882", + "qualified": true, + "format": "REAL_ESTATE" + }, + { + "id": "omni-217", + "image_file": "217.png", + "image_sha256": "064543d1751e3b412f54d0505d5ed7ae92193a9dbb2e30528fd088cbca203bef", + "sets_json_sha256": "064543d1751e3b412f54d0505d5ed7ae92193a9dbb2e30528fd088cbca203bef", + "qualified": true, + "format": "PROXY_VOTING" + }, + { + "id": "omni-219", + "image_file": "219.png", + "image_sha256": "4042f638d980bac0da1bc43ca0831862afafead1fa13c19b00b12f0cecccc189", + "sets_json_sha256": "4042f638d980bac0da1bc43ca0831862afafead1fa13c19b00b12f0cecccc189", + "qualified": true, + "format": "SHIPPING_INVOICE" + }, + { + "id": "omni-223", + "image_file": "223.png", + "image_sha256": "a309bbdb804f3cacc14253aeff80828285293eb5d6ababe583fc943a6a62e9e2", + "sets_json_sha256": "a309bbdb804f3cacc14253aeff80828285293eb5d6ababe583fc943a6a62e9e2", + "qualified": true, + "format": "PATIENT_INTAKE" + }, + { + "id": "omni-224", + "image_file": "224.png", + "image_sha256": "715039d7eebe5af1c9b6664fd25d0331934e63acde3f56ae11942694b80ad687", + "sets_json_sha256": "715039d7eebe5af1c9b6664fd25d0331934e63acde3f56ae11942694b80ad687", + "qualified": true, + "format": "COMMERCIAL_LEASE_AGREEMENT" + }, + { + "id": "omni-225", + "image_file": "225.png", + "image_sha256": "254114ec5fce38dbe0a36dd8e8cafbb85e4d6c8cb49a61d2632807132f7bb298", + "sets_json_sha256": "254114ec5fce38dbe0a36dd8e8cafbb85e4d6c8cb49a61d2632807132f7bb298", + "qualified": true, + "format": "SHIPPING_INVOICE" + }, + { + "id": "omni-228", + "image_file": "228.png", + "image_sha256": "4c00eb1b57165f4d995f8e9abc450e77e27732dba05878e73cec89f7a3c0980e", + "sets_json_sha256": "4c00eb1b57165f4d995f8e9abc450e77e27732dba05878e73cec89f7a3c0980e", + "qualified": true, + "format": "PATIENT_INTAKE" + }, + { + "id": "omni-230", + "image_file": "230.png", + "image_sha256": "3b8e980800114ab859b20005c6b69c061449189193db7ce78729dbb92dfb8e74", + "sets_json_sha256": "3b8e980800114ab859b20005c6b69c061449189193db7ce78729dbb92dfb8e74", + "qualified": true, + "format": "EQUIPMENT_INSPECTION" + }, + { + "id": "omni-233", + "image_file": "233.png", + "image_sha256": "832c16710386dd1b5f5dcdca7be9b8d1122d03741e08f71a314a2acea602b4d0", + "sets_json_sha256": "832c16710386dd1b5f5dcdca7be9b8d1122d03741e08f71a314a2acea602b4d0", + "qualified": true, + "format": "CREDIT_CARD_STATEMENT" + }, + { + "id": "omni-234", + "image_file": "234.png", + "image_sha256": "9dd8e452719b1b3c98668bc81c83aea8d8bda5572e4de7f3444693b968c5b843", + "sets_json_sha256": "9dd8e452719b1b3c98668bc81c83aea8d8bda5572e4de7f3444693b968c5b843", + "qualified": true, + "format": "ACCOUNT_STATEMENT" + }, + { + "id": "omni-237", + "image_file": "237.png", + "image_sha256": "ef039c6e0a03a08cc05ecad443d2907bea7dfa5755417cd554b2b37fddb116fd", + "sets_json_sha256": "ef039c6e0a03a08cc05ecad443d2907bea7dfa5755417cd554b2b37fddb116fd", + "qualified": true, + "format": "REAL_ESTATE" + }, + { + "id": "omni-238", + "image_file": "238.png", + "image_sha256": "07d37c613e82b53d723ca8e5fa525d62fc81a7cfe3c67828d1d9a4ed4f4700c3", + "sets_json_sha256": "07d37c613e82b53d723ca8e5fa525d62fc81a7cfe3c67828d1d9a4ed4f4700c3", + "qualified": true, + "format": "EQUIPMENT_INSPECTION" + }, + { + "id": "omni-239", + "image_file": "239.png", + "image_sha256": "6f821b5dd0844fad80fb8df71fd11263e7ebdddfd19774ec89199aef7c3bbda8", + "sets_json_sha256": "6f821b5dd0844fad80fb8df71fd11263e7ebdddfd19774ec89199aef7c3bbda8", + "qualified": true, + "format": "PROXY_VOTING" + }, + { + "id": "omni-240", + "image_file": "240.png", + "image_sha256": "5effa522eb31ff3956e7ea4f1db42091118b019c65c2d1c3645a5a080ecd7a42", + "sets_json_sha256": "5effa522eb31ff3956e7ea4f1db42091118b019c65c2d1c3645a5a080ecd7a42", + "qualified": true, + "format": "PROXY_VOTING" + }, + { + "id": "omni-242", + "image_file": "242.png", + "image_sha256": "b1f621a65a7b0d55c2fbf939ca73ebfe45af6d4207c18d9704e959ed4c12a43f", + "sets_json_sha256": "b1f621a65a7b0d55c2fbf939ca73ebfe45af6d4207c18d9704e959ed4c12a43f", + "qualified": true, + "format": "EQUIPMENT_INSPECTION" + }, + { + "id": "omni-244", + "image_file": "244.png", + "image_sha256": "78039ba4cddeb06225f163a93197841d4c386e7810bf402f419c1a7847633cca", + "sets_json_sha256": "78039ba4cddeb06225f163a93197841d4c386e7810bf402f419c1a7847633cca", + "qualified": true, + "format": "SHIPPING_INVOICE" + }, + { + "id": "omni-250", + "image_file": "250.png", + "image_sha256": "84d4ef1314b2a7e057543670ee116f55634f6f166ef4ece7193fde45bf3518f2", + "sets_json_sha256": "84d4ef1314b2a7e057543670ee116f55634f6f166ef4ece7193fde45bf3518f2", + "qualified": true, + "format": "REAL_ESTATE" + }, + { + "id": "omni-252", + "image_file": "252.png", + "image_sha256": "8c44b4291500e143ef1ccf91a4006374e21c6c96430bf636f574f31823a319ac", + "sets_json_sha256": "8c44b4291500e143ef1ccf91a4006374e21c6c96430bf636f574f31823a319ac", + "qualified": true, + "format": "BANK_CHECK" + }, + { + "id": "omni-253", + "image_file": "253.png", + "image_sha256": "e817420e1ad180d2dd2c3a0fc14467570cf389222fc92a1dd6719789ace11123", + "sets_json_sha256": "e817420e1ad180d2dd2c3a0fc14467570cf389222fc92a1dd6719789ace11123", + "qualified": true, + "format": "CREDIT_CARD_STATEMENT" + }, + { + "id": "omni-254", + "image_file": "254.png", + "image_sha256": "3650a618123efa02733d3bdb6c26983f38d380ec475107a34f035d9008c0280b", + "sets_json_sha256": "3650a618123efa02733d3bdb6c26983f38d380ec475107a34f035d9008c0280b", + "qualified": true, + "format": "SHIPPING_INVOICE" + }, + { + "id": "omni-259", + "image_file": "259.png", + "image_sha256": "54d1e10a5167711fc726e02a84326f29d5ab5c2ac813c1ac7fd7d3a90e825c55", + "sets_json_sha256": "54d1e10a5167711fc726e02a84326f29d5ab5c2ac813c1ac7fd7d3a90e825c55", + "qualified": true, + "format": "PATIENT_INTAKE" + }, + { + "id": "omni-261", + "image_file": "261.png", + "image_sha256": "c391a2b45aa942856091830be0e08bd1505d96117549552ec4f879d0b47cc842", + "sets_json_sha256": "c391a2b45aa942856091830be0e08bd1505d96117549552ec4f879d0b47cc842", + "qualified": true, + "format": "PROXY_VOTING" + }, + { + "id": "omni-263", + "image_file": "263.png", + "image_sha256": "74b055330a17b097170bfd4b6618092e4123c257641f91fee0c117c898ef3126", + "sets_json_sha256": "74b055330a17b097170bfd4b6618092e4123c257641f91fee0c117c898ef3126", + "qualified": true, + "format": "PAY_IN_SHEET" + }, + { + "id": "omni-268", + "image_file": "268.png", + "image_sha256": "88cd44ccb95f3bf1d32b87e5ab46eeaafcdfbedad3f0352895ff9836e9fdb130", + "sets_json_sha256": "88cd44ccb95f3bf1d32b87e5ab46eeaafcdfbedad3f0352895ff9836e9fdb130", + "qualified": true, + "format": "CREDIT_CARD_STATEMENT" + }, + { + "id": "omni-269", + "image_file": "269.png", + "image_sha256": "4e0434a8a67d5295bd5ceba885b71e6f31c638d2730ec6058e0bc0552a97733e", + "sets_json_sha256": "4e0434a8a67d5295bd5ceba885b71e6f31c638d2730ec6058e0bc0552a97733e", + "qualified": true, + "format": "PROXY_VOTING" + }, + { + "id": "omni-270", + "image_file": "270.png", + "image_sha256": "73a14e333ec1ed272db0b1259e670f19d12f704b1726adc775cea4fe48516e09", + "sets_json_sha256": "73a14e333ec1ed272db0b1259e670f19d12f704b1726adc775cea4fe48516e09", + "qualified": true, + "format": "EQUIPMENT_INSPECTION" + }, + { + "id": "omni-274", + "image_file": "274.png", + "image_sha256": "44e3817384082abab0fa128e006c2ce9b4bd8ca5732f92a677735f5590fd1c79", + "sets_json_sha256": "44e3817384082abab0fa128e006c2ce9b4bd8ca5732f92a677735f5590fd1c79", + "qualified": true, + "format": "FORM_1040" + }, + { + "id": "omni-276", + "image_file": "276.png", + "image_sha256": "701caa2b15cb3554ff3151a992bd51843cf128c6783d61c2cf1b921e29cccf96", + "sets_json_sha256": "701caa2b15cb3554ff3151a992bd51843cf128c6783d61c2cf1b921e29cccf96", + "qualified": true, + "format": "FORM_1040" + }, + { + "id": "omni-279", + "image_file": "279.png", + "image_sha256": "a45b7b859248a8aeebfd40b460ed08f084457f0c22d13e384675f9fa5baa3749", + "sets_json_sha256": "a45b7b859248a8aeebfd40b460ed08f084457f0c22d13e384675f9fa5baa3749", + "qualified": true, + "format": "COMMERCIAL_LEASE_AGREEMENT" + }, + { + "id": "omni-281", + "image_file": "281.png", + "image_sha256": "aef7e852c18268dafe5a5b5f25e7dc901f066576bb17c6ff3ca73adcd82855eb", + "sets_json_sha256": "aef7e852c18268dafe5a5b5f25e7dc901f066576bb17c6ff3ca73adcd82855eb", + "qualified": true, + "format": "COMMERCIAL_LEASE_AGREEMENT" + }, + { + "id": "omni-283", + "image_file": "283.png", + "image_sha256": "9e1c57263b292818900322e678b27a839f7c39310aa8b7b09bded7ee7172b8d7", + "sets_json_sha256": "9e1c57263b292818900322e678b27a839f7c39310aa8b7b09bded7ee7172b8d7", + "qualified": true, + "format": "FORM_1040" + }, + { + "id": "omni-284", + "image_file": "284.png", + "image_sha256": "dd79d620d38f5937498167b5b018c3c04054aacfc966e2e55ac673ec0d768491", + "sets_json_sha256": "dd79d620d38f5937498167b5b018c3c04054aacfc966e2e55ac673ec0d768491", + "qualified": true, + "format": "DELIVERY_NOTE" + }, + { + "id": "omni-288", + "image_file": "288.png", + "image_sha256": "252191903f6acb2b06213b4fa623b0b286c25bda590a55e904166294d388767d", + "sets_json_sha256": "252191903f6acb2b06213b4fa623b0b286c25bda590a55e904166294d388767d", + "qualified": true, + "format": "FORM_1040" + }, + { + "id": "omni-289", + "image_file": "289.png", + "image_sha256": "c6fa6df35c548731caebcc353aff9cef87cae84c0febdb5e692d9b3bf7747988", + "sets_json_sha256": "c6fa6df35c548731caebcc353aff9cef87cae84c0febdb5e692d9b3bf7747988", + "qualified": true, + "format": "BANK_CHECK" + }, + { + "id": "omni-290", + "image_file": "290.png", + "image_sha256": "1d5d99cfe26e12d470f37a5031bd4bf78b9470772372335a42380b6654b44b46", + "sets_json_sha256": "1d5d99cfe26e12d470f37a5031bd4bf78b9470772372335a42380b6654b44b46", + "qualified": true, + "format": "COMMERCIAL_LEASE_AGREEMENT" + }, + { + "id": "omni-291", + "image_file": "291.png", + "image_sha256": "bb5abfe5ed5c176e0835edc9c5be4501a8af722c63f8092cbaa369e91fcb2e82", + "sets_json_sha256": "bb5abfe5ed5c176e0835edc9c5be4501a8af722c63f8092cbaa369e91fcb2e82", + "qualified": true, + "format": "ACCOUNT_STATEMENT" + }, + { + "id": "omni-294", + "image_file": "294.png", + "image_sha256": "3d98aa5df7c3e1971e7a1d998b5bbd278be3fed78ce31fe48157016840406b9a", + "sets_json_sha256": "3d98aa5df7c3e1971e7a1d998b5bbd278be3fed78ce31fe48157016840406b9a", + "qualified": true, + "format": "PETITION_FORM" + }, + { + "id": "omni-296", + "image_file": "296.png", + "image_sha256": "b8db7f80af272117a8f0c7884e9c12f1d7de5fd7b4f793f934d677299871a729", + "sets_json_sha256": "b8db7f80af272117a8f0c7884e9c12f1d7de5fd7b4f793f934d677299871a729", + "qualified": true, + "format": "EQUIPMENT_INSPECTION" + }, + { + "id": "omni-297", + "image_file": "297.png", + "image_sha256": "4d83a24ee08f47e475ce9657b03dd01889eb5bbea79e599f95ea9caf88c03b76", + "sets_json_sha256": "4d83a24ee08f47e475ce9657b03dd01889eb5bbea79e599f95ea9caf88c03b76", + "qualified": true, + "format": "PROXY_VOTING" + }, + { + "id": "omni-298", + "image_file": "298.png", + "image_sha256": "382cd657332fe54384b1dc43580bdf88b271775dfc6e21c21d85b64ed8c39ecf", + "sets_json_sha256": "382cd657332fe54384b1dc43580bdf88b271775dfc6e21c21d85b64ed8c39ecf", + "qualified": true, + "format": "PAY_IN_SHEET" + }, + { + "id": "omni-299", + "image_file": "299.png", + "image_sha256": "e4d4830f0e58e63bab05d47a946822c59d11c9e8db9f345622e911399a9cfa79", + "sets_json_sha256": "e4d4830f0e58e63bab05d47a946822c59d11c9e8db9f345622e911399a9cfa79", + "qualified": true, + "format": "EQUIPMENT_INSPECTION" + }, + { + "id": "omni-300", + "image_file": "300.png", + "image_sha256": "12ef20e8b155876e48498b02e2e9b2e40e3cc8059c4b907bf4a6384adf188a54", + "sets_json_sha256": "12ef20e8b155876e48498b02e2e9b2e40e3cc8059c4b907bf4a6384adf188a54", + "qualified": true, + "format": "SHIPPING_INVOICE" + }, + { + "id": "omni-301", + "image_file": "301.png", + "image_sha256": "c886c31fb163d0423df7b2475e861161e00a41c3ec434b8dec665253b1b6ff3d", + "sets_json_sha256": "c886c31fb163d0423df7b2475e861161e00a41c3ec434b8dec665253b1b6ff3d", + "qualified": true, + "format": "COMMERCIAL_LEASE_AGREEMENT" + }, + { + "id": "omni-302", + "image_file": "302.png", + "image_sha256": "0f9654d496576404dfcd850cc14dff2eed0c37ac0830943648ab9407502de748", + "sets_json_sha256": "0f9654d496576404dfcd850cc14dff2eed0c37ac0830943648ab9407502de748", + "qualified": true, + "format": "ACCOUNT_STATEMENT" + }, + { + "id": "omni-304", + "image_file": "304.png", + "image_sha256": "d058fb5fa9e35868fcc3db5bc979ff56114ad7ec5a218e3b87eff8fb5ff8260a", + "sets_json_sha256": "d058fb5fa9e35868fcc3db5bc979ff56114ad7ec5a218e3b87eff8fb5ff8260a", + "qualified": true, + "format": "COMMERCIAL_LEASE_AGREEMENT" + }, + { + "id": "omni-305", + "image_file": "305.png", + "image_sha256": "b8ad33e442cae2d3a35c4f016d11857b905aa5dab80571cbceb07391c16670ee", + "sets_json_sha256": "b8ad33e442cae2d3a35c4f016d11857b905aa5dab80571cbceb07391c16670ee", + "qualified": true, + "format": "PROXY_VOTING" + }, + { + "id": "omni-306", + "image_file": "306.png", + "image_sha256": "8826361a66f4786b34939a4efb91c6367bf12462b27fc7867364f69fb55d711b", + "sets_json_sha256": "8826361a66f4786b34939a4efb91c6367bf12462b27fc7867364f69fb55d711b", + "qualified": true, + "format": "REAL_ESTATE" + }, + { + "id": "omni-308", + "image_file": "308.png", + "image_sha256": "37f6ca1984e71a6b30d51773f003a08beffc225ac64c591b602748349ebf663f", + "sets_json_sha256": "37f6ca1984e71a6b30d51773f003a08beffc225ac64c591b602748349ebf663f", + "qualified": true, + "format": "PAY_IN_SHEET" + }, + { + "id": "omni-309", + "image_file": "309.png", + "image_sha256": "3329021ec8785ae6614e4ab42f963dfc9b78a2bae8c89981c908d3167d7a03d0", + "sets_json_sha256": "3329021ec8785ae6614e4ab42f963dfc9b78a2bae8c89981c908d3167d7a03d0", + "qualified": true, + "format": "REAL_ESTATE" + }, + { + "id": "omni-311", + "image_file": "311.png", + "image_sha256": "0c58c6948429c47a9c1c04ed255759dad4280bd4cc19f9893c24ae0b1cad11b9", + "sets_json_sha256": "0c58c6948429c47a9c1c04ed255759dad4280bd4cc19f9893c24ae0b1cad11b9", + "qualified": true, + "format": "COMMERCIAL_LEASE_AGREEMENT" + }, + { + "id": "omni-313", + "image_file": "313.png", + "image_sha256": "96f6c24f54a0d1366cecbdbd1355e111cb636189cefb0d7d09d0d8a04dc0be78", + "sets_json_sha256": "96f6c24f54a0d1366cecbdbd1355e111cb636189cefb0d7d09d0d8a04dc0be78", + "qualified": true, + "format": "PAY_IN_SHEET" + }, + { + "id": "omni-314", + "image_file": "314.png", + "image_sha256": "c77c763e35eb69c85fd377cac2ef611f05bed581083fbe031d5932057bad2601", + "sets_json_sha256": "c77c763e35eb69c85fd377cac2ef611f05bed581083fbe031d5932057bad2601", + "qualified": true, + "format": "DELIVERY_NOTE" + }, + { + "id": "omni-315", + "image_file": "315.png", + "image_sha256": "bb8e469f1c5e4ca78062d908787ca7c393754eec6de16e6b4fd1a84775e3a2f3", + "sets_json_sha256": "bb8e469f1c5e4ca78062d908787ca7c393754eec6de16e6b4fd1a84775e3a2f3", + "qualified": true, + "format": "PAY_IN_SHEET" + }, + { + "id": "omni-318", + "image_file": "318.png", + "image_sha256": "c5079b7456b20c540331afe4911ade2929a80dffcb2be7708b5e6baf18a24995", + "sets_json_sha256": "c5079b7456b20c540331afe4911ade2929a80dffcb2be7708b5e6baf18a24995", + "qualified": true, + "format": "REAL_ESTATE" + }, + { + "id": "omni-319", + "image_file": "319.png", + "image_sha256": "b9159a34a5a6152eaa5bcbc2352247bb467008f81715dc9166ef085d3e268416", + "sets_json_sha256": "b9159a34a5a6152eaa5bcbc2352247bb467008f81715dc9166ef085d3e268416", + "qualified": true, + "format": "FORM_1040" + }, + { + "id": "omni-32", + "image_file": "32.jpg", + "image_sha256": "689aa40121764205cd5aaadc346677651f8827285b72becb415da7c2fa8efa7d", + "sets_json_sha256": "689aa40121764205cd5aaadc346677651f8827285b72becb415da7c2fa8efa7d", + "qualified": true, + "format": "REAL_ESTATE" + }, + { + "id": "omni-320", + "image_file": "320.png", + "image_sha256": "2cb71cd4f830f39b72d9fbea62ba5dabfd223b62d9ffb2c3d4f42055de878cb9", + "sets_json_sha256": "2cb71cd4f830f39b72d9fbea62ba5dabfd223b62d9ffb2c3d4f42055de878cb9", + "qualified": true, + "format": "PATIENT_INTAKE" + }, + { + "id": "omni-322", + "image_file": "322.png", + "image_sha256": "9fc6dc9c7696c9adfe2fd4179cc32a234cb2a71dc869df3588b1f1d466abb8ad", + "sets_json_sha256": "9fc6dc9c7696c9adfe2fd4179cc32a234cb2a71dc869df3588b1f1d466abb8ad", + "qualified": true, + "format": "BANK_CHECK" + }, + { + "id": "omni-324", + "image_file": "324.png", + "image_sha256": "5fcd22420565ebd620959df19ff2798312af39e4a9dc05df6de9f2d2e32949bc", + "sets_json_sha256": "5fcd22420565ebd620959df19ff2798312af39e4a9dc05df6de9f2d2e32949bc", + "qualified": true, + "format": "CREDIT_CARD_STATEMENT" + }, + { + "id": "omni-326", + "image_file": "326.png", + "image_sha256": "32cfc937a0ce7b960d1e07f05179d793be084e42d23c01dae81ad9591edfd7dd", + "sets_json_sha256": "32cfc937a0ce7b960d1e07f05179d793be084e42d23c01dae81ad9591edfd7dd", + "qualified": true, + "format": "DELIVERY_NOTE" + }, + { + "id": "omni-327", + "image_file": "327.png", + "image_sha256": "a2a604c71227d010e969145d3ecc7e3655c58000c07ff3521afc46e1df0bb7d6", + "sets_json_sha256": "a2a604c71227d010e969145d3ecc7e3655c58000c07ff3521afc46e1df0bb7d6", + "qualified": true, + "format": "CREDIT_CARD_STATEMENT" + }, + { + "id": "omni-330", + "image_file": "330.png", + "image_sha256": "bb05358b6914ad38a802d4b4fdbb4ef4b064360d251a0661f9b9f170f6edb370", + "sets_json_sha256": "bb05358b6914ad38a802d4b4fdbb4ef4b064360d251a0661f9b9f170f6edb370", + "qualified": true, + "format": "COMMERCIAL_LEASE_AGREEMENT" + }, + { + "id": "omni-332", + "image_file": "332.png", + "image_sha256": "ece2ec05d5c4cf3dd665ce7a482b6c7f3e46cc97b27fc1623c946a4a92866686", + "sets_json_sha256": "ece2ec05d5c4cf3dd665ce7a482b6c7f3e46cc97b27fc1623c946a4a92866686", + "qualified": true, + "format": "SHIPPING_INVOICE" + }, + { + "id": "omni-334", + "image_file": "334.png", + "image_sha256": "22b66d3074d98a6bc3bddf243ca45250b964d7f4f3bcace842c4922599693c09", + "sets_json_sha256": "22b66d3074d98a6bc3bddf243ca45250b964d7f4f3bcace842c4922599693c09", + "qualified": true, + "format": "ACCOUNT_STATEMENT" + }, + { + "id": "omni-335", + "image_file": "335.png", + "image_sha256": "b3979b7361b9ed43a444590f565dba1d797af9be4e4efa8c0cf9cf67e6cdac21", + "sets_json_sha256": "b3979b7361b9ed43a444590f565dba1d797af9be4e4efa8c0cf9cf67e6cdac21", + "qualified": true, + "format": "CREDIT_CARD_STATEMENT" + }, + { + "id": "omni-339", + "image_file": "339.png", + "image_sha256": "b13b2f38bf332da4cefd37498038e00a72411d5635da2fa0c71afe9959187900", + "sets_json_sha256": "b13b2f38bf332da4cefd37498038e00a72411d5635da2fa0c71afe9959187900", + "qualified": true, + "format": "PETITION_FORM" + }, + { + "id": "omni-340", + "image_file": "340.png", + "image_sha256": "35fc12e1a679aa6eb022cc8bb799374b3a462e924baebb22ed8b16eb06461288", + "sets_json_sha256": "35fc12e1a679aa6eb022cc8bb799374b3a462e924baebb22ed8b16eb06461288", + "qualified": true, + "format": "CREDIT_CARD_STATEMENT" + }, + { + "id": "omni-341", + "image_file": "341.png", + "image_sha256": "900853a52e47a4c52f1f30904c04fdc716527bc6a91879718673693e8ce8372b", + "sets_json_sha256": "900853a52e47a4c52f1f30904c04fdc716527bc6a91879718673693e8ce8372b", + "qualified": true, + "format": "REAL_ESTATE" + }, + { + "id": "omni-342", + "image_file": "342.png", + "image_sha256": "7ffa315618bf109bd27f23df8f357835865bfa20574d435dab37cfad8f57ef6f", + "sets_json_sha256": "7ffa315618bf109bd27f23df8f357835865bfa20574d435dab37cfad8f57ef6f", + "qualified": true, + "format": "DELIVERY_NOTE" + }, + { + "id": "omni-343", + "image_file": "343.png", + "image_sha256": "23e3e46b87ebc1de568e90be7764734c07de8c24f173a254f9193e29906ca1a9", + "sets_json_sha256": "23e3e46b87ebc1de568e90be7764734c07de8c24f173a254f9193e29906ca1a9", + "qualified": true, + "format": "FORM_1040" + }, + { + "id": "omni-344", + "image_file": "344.png", + "image_sha256": "c32377c1a3c07c5ad7b60154754d383916c3e06fd3ac70052fb30f52ecbd2e90", + "sets_json_sha256": "c32377c1a3c07c5ad7b60154754d383916c3e06fd3ac70052fb30f52ecbd2e90", + "qualified": true, + "format": "FORM_1040" + }, + { + "id": "omni-345", + "image_file": "345.png", + "image_sha256": "3e0255b3eda463e6965ebebf6f109e7ac712a585b5b252e25082e6fc94bd432b", + "sets_json_sha256": "3e0255b3eda463e6965ebebf6f109e7ac712a585b5b252e25082e6fc94bd432b", + "qualified": true, + "format": "CREDIT_CARD_STATEMENT" + }, + { + "id": "omni-348", + "image_file": "348.png", + "image_sha256": "fa73d5a3ab530398ef986bcada4de40665d6c9c77198375d45daf6c9c3faf440", + "sets_json_sha256": "fa73d5a3ab530398ef986bcada4de40665d6c9c77198375d45daf6c9c3faf440", + "qualified": true, + "format": "PETITION_FORM" + }, + { + "id": "omni-349", + "image_file": "349.png", + "image_sha256": "854b9916b19e34c4a917fe1312cc9b5663c993022f742be38f76d8983722a40d", + "sets_json_sha256": "854b9916b19e34c4a917fe1312cc9b5663c993022f742be38f76d8983722a40d", + "qualified": true, + "format": "CREDIT_CARD_STATEMENT" + }, + { + "id": "omni-350", + "image_file": "350.png", + "image_sha256": "e21ff378d9791f4efc0473b19ee8a00a780ca3bd4f6d669fe7135aee0f65ac28", + "sets_json_sha256": "e21ff378d9791f4efc0473b19ee8a00a780ca3bd4f6d669fe7135aee0f65ac28", + "qualified": true, + "format": "REAL_ESTATE" + }, + { + "id": "omni-351", + "image_file": "351.png", + "image_sha256": "585fae894d0d09c7a7f94f50fc7e74192fba873acb41435bb8427cab20efb5c5", + "sets_json_sha256": "585fae894d0d09c7a7f94f50fc7e74192fba873acb41435bb8427cab20efb5c5", + "qualified": true, + "format": "REAL_ESTATE" + }, + { + "id": "omni-352", + "image_file": "352.png", + "image_sha256": "937cc11508c0fe45041eaf1728fc78b528fa3b9bf2072541383f29c4316ae269", + "sets_json_sha256": "937cc11508c0fe45041eaf1728fc78b528fa3b9bf2072541383f29c4316ae269", + "qualified": true, + "format": "CREDIT_CARD_STATEMENT" + }, + { + "id": "omni-354", + "image_file": "354.png", + "image_sha256": "9ad02a7a56884d0b6d7c4310ce56eef60562792d365ff20b6e181d88e7cae25e", + "sets_json_sha256": "9ad02a7a56884d0b6d7c4310ce56eef60562792d365ff20b6e181d88e7cae25e", + "qualified": true, + "format": "PROXY_VOTING" + }, + { + "id": "omni-357", + "image_file": "357.png", + "image_sha256": "e1e18b0a8350e93f4c050f015749c111cd5e0db58f1d39fd33cb1438ad00c314", + "sets_json_sha256": "e1e18b0a8350e93f4c050f015749c111cd5e0db58f1d39fd33cb1438ad00c314", + "qualified": true, + "format": "REAL_ESTATE" + }, + { + "id": "omni-358", + "image_file": "358.png", + "image_sha256": "2affd06c1bc7e803da246477eeadbe4394162cd34d78196eaa13457616e185b0", + "sets_json_sha256": "2affd06c1bc7e803da246477eeadbe4394162cd34d78196eaa13457616e185b0", + "qualified": true, + "format": "PROXY_VOTING" + }, + { + "id": "omni-359", + "image_file": "359.png", + "image_sha256": "91aef465b250f2c0905957c264d94b239ce4029210248d563056d8da25584265", + "sets_json_sha256": "91aef465b250f2c0905957c264d94b239ce4029210248d563056d8da25584265", + "qualified": true, + "format": "EQUIPMENT_INSPECTION" + }, + { + "id": "omni-360", + "image_file": "360.png", + "image_sha256": "e28b65de0b9df8564feb541f9065d68ab3560d304ae510cf49b87f97440ffaaa", + "sets_json_sha256": "e28b65de0b9df8564feb541f9065d68ab3560d304ae510cf49b87f97440ffaaa", + "qualified": true, + "format": "COMMERCIAL_LEASE_AGREEMENT" + }, + { + "id": "omni-361", + "image_file": "361.png", + "image_sha256": "b1ab5c7330fc6af20e5eb880a080eb11a26850f039218260d7e0755aed6473f9", + "sets_json_sha256": "b1ab5c7330fc6af20e5eb880a080eb11a26850f039218260d7e0755aed6473f9", + "qualified": true, + "format": "SHIPPING_INVOICE" + }, + { + "id": "omni-362", + "image_file": "362.png", + "image_sha256": "9b95091b49a08189ea5db8f406d1c538064b545bbb0338601c73e1e15a34cece", + "sets_json_sha256": "9b95091b49a08189ea5db8f406d1c538064b545bbb0338601c73e1e15a34cece", + "qualified": true, + "format": "EQUIPMENT_INSPECTION" + }, + { + "id": "omni-363", + "image_file": "363.png", + "image_sha256": "d71ac8e0648233288c76e3c8697e679c47ee763062e27916fa1f84a78f31e2ab", + "sets_json_sha256": "d71ac8e0648233288c76e3c8697e679c47ee763062e27916fa1f84a78f31e2ab", + "qualified": true, + "format": "REAL_ESTATE" + }, + { + "id": "omni-364", + "image_file": "364.png", + "image_sha256": "a1cd629f61c6414c6204e3c3065f64ca77c8256a36a4883d0d036c1eb0de13a6", + "sets_json_sha256": "a1cd629f61c6414c6204e3c3065f64ca77c8256a36a4883d0d036c1eb0de13a6", + "qualified": true, + "format": "COMMERCIAL_LEASE_AGREEMENT" + }, + { + "id": "omni-365", + "image_file": "365.png", + "image_sha256": "c2e41b6eb316af16336fa4e43673f8c4159235595919eab244dd2a6b5a8d1c53", + "sets_json_sha256": "c2e41b6eb316af16336fa4e43673f8c4159235595919eab244dd2a6b5a8d1c53", + "qualified": true, + "format": "FORM_1040" + }, + { + "id": "omni-366", + "image_file": "366.png", + "image_sha256": "33085cfa0e9e1a062f86574333769b7d17126fe009c827cd2ebd6cbb82f3656f", + "sets_json_sha256": "33085cfa0e9e1a062f86574333769b7d17126fe009c827cd2ebd6cbb82f3656f", + "qualified": true, + "format": "ACCOUNT_STATEMENT" + }, + { + "id": "omni-368", + "image_file": "368.png", + "image_sha256": "e0d359c7cbf1fd0351c4127dfd517bee11651816d310ed1cd1cee1dc00208534", + "sets_json_sha256": "e0d359c7cbf1fd0351c4127dfd517bee11651816d310ed1cd1cee1dc00208534", + "qualified": true, + "format": "PETITION_FORM" + }, + { + "id": "omni-371", + "image_file": "371.jpg", + "image_sha256": "956aba832b672ebe88d82de49224c3084dc2df5fede411c0237744be04dc0226", + "sets_json_sha256": "956aba832b672ebe88d82de49224c3084dc2df5fede411c0237744be04dc0226", + "qualified": true, + "format": "PATIENT_INTAKE" + }, + { + "id": "omni-372", + "image_file": "372.png", + "image_sha256": "a65046c23441063e5db97bbdbe7c6f328334b536b82bef89598daeb69aa9a1c6", + "sets_json_sha256": "a65046c23441063e5db97bbdbe7c6f328334b536b82bef89598daeb69aa9a1c6", + "qualified": true, + "format": "PAY_IN_SHEET" + }, + { + "id": "omni-375", + "image_file": "375.png", + "image_sha256": "121e438ac77a4feda15825d59bb7a498c14f53f8dab44d49c5858cf1e9363496", + "sets_json_sha256": "121e438ac77a4feda15825d59bb7a498c14f53f8dab44d49c5858cf1e9363496", + "qualified": true, + "format": "PAY_IN_SHEET" + }, + { + "id": "omni-376", + "image_file": "376.png", + "image_sha256": "c934e4de9e22efa81574000491dfaba9778a55c48e747bc27f05905e2dd55d82", + "sets_json_sha256": "c934e4de9e22efa81574000491dfaba9778a55c48e747bc27f05905e2dd55d82", + "qualified": true, + "format": "REAL_ESTATE" + }, + { + "id": "omni-377", + "image_file": "377.png", + "image_sha256": "2127d9f136cc5ccaff487b622526fa6ef965d1c881793a33aef9b42b2d461509", + "sets_json_sha256": "2127d9f136cc5ccaff487b622526fa6ef965d1c881793a33aef9b42b2d461509", + "qualified": true, + "format": "BANK_CHECK" + }, + { + "id": "omni-378", + "image_file": "378.png", + "image_sha256": "741e12156b9f596de3b45c651fb941d255142cbed35ac5d4eb24867486e4be41", + "sets_json_sha256": "741e12156b9f596de3b45c651fb941d255142cbed35ac5d4eb24867486e4be41", + "qualified": true, + "format": "PAY_IN_SHEET" + }, + { + "id": "omni-38", + "image_file": "38.jpg", + "image_sha256": "83c25d02497ae0a27e697fa82eaa67de8cd28dce2fa050d11d30cd49fee64872", + "sets_json_sha256": "83c25d02497ae0a27e697fa82eaa67de8cd28dce2fa050d11d30cd49fee64872", + "qualified": true, + "format": "ACCOUNT_STATEMENT" + }, + { + "id": "omni-380", + "image_file": "380.png", + "image_sha256": "b2efc881377dfb05db19ee2d6a762dc855445bd593ba15dd7fd745692d6fe937", + "sets_json_sha256": "b2efc881377dfb05db19ee2d6a762dc855445bd593ba15dd7fd745692d6fe937", + "qualified": true, + "format": "REAL_ESTATE" + }, + { + "id": "omni-381", + "image_file": "381.png", + "image_sha256": "c3376266d2311743b2516bb39c62bfd3b2dcaa30dc8b56e044798ab17802517c", + "sets_json_sha256": "c3376266d2311743b2516bb39c62bfd3b2dcaa30dc8b56e044798ab17802517c", + "qualified": true, + "format": "PROXY_VOTING" + }, + { + "id": "omni-383", + "image_file": "383.png", + "image_sha256": "40f8a0b736d2974783f4db029f6b84f17ae5de7889de3bac7b01326fcf04bd6e", + "sets_json_sha256": "40f8a0b736d2974783f4db029f6b84f17ae5de7889de3bac7b01326fcf04bd6e", + "qualified": true, + "format": "PAY_IN_SHEET" + }, + { + "id": "omni-386", + "image_file": "386.png", + "image_sha256": "88bacfa2eaff2cc4c61a9e9a8f6df9c6639d7d988b7a4afdf0a735130cf538af", + "sets_json_sha256": "88bacfa2eaff2cc4c61a9e9a8f6df9c6639d7d988b7a4afdf0a735130cf538af", + "qualified": true, + "format": "PATIENT_INTAKE" + }, + { + "id": "omni-387", + "image_file": "387.png", + "image_sha256": "9f0aacd17011ea3aa0c34bc3ed1951f5409538471bf98995fff86b6c5c9eb8c1", + "sets_json_sha256": "9f0aacd17011ea3aa0c34bc3ed1951f5409538471bf98995fff86b6c5c9eb8c1", + "qualified": true, + "format": "ACCOUNT_STATEMENT" + }, + { + "id": "omni-389", + "image_file": "389.png", + "image_sha256": "22ba8ddd7ccf8a84934ca85c4abd298556c76fa2367b723a3a6b15882fab899f", + "sets_json_sha256": "22ba8ddd7ccf8a84934ca85c4abd298556c76fa2367b723a3a6b15882fab899f", + "qualified": true, + "format": "PETITION_FORM" + }, + { + "id": "omni-390", + "image_file": "390.png", + "image_sha256": "17e0f9f2afa8d6539693d23feb3f6601716c3a598fbdd03d6d8bbc7c369f3491", + "sets_json_sha256": "17e0f9f2afa8d6539693d23feb3f6601716c3a598fbdd03d6d8bbc7c369f3491", + "qualified": true, + "format": "PATIENT_INTAKE" + }, + { + "id": "omni-392", + "image_file": "392.png", + "image_sha256": "597a28cb540793894d9f0943970c7e5a69380471ab286ecc15deaf7f23f91c9c", + "sets_json_sha256": "597a28cb540793894d9f0943970c7e5a69380471ab286ecc15deaf7f23f91c9c", + "qualified": true, + "format": "SHIPPING_INVOICE" + }, + { + "id": "omni-398", + "image_file": "398.png", + "image_sha256": "94f489b6e65ccc14b1162908fdd054875dd33ef00e097ef5bef5d2a7d4a78cd7", + "sets_json_sha256": "94f489b6e65ccc14b1162908fdd054875dd33ef00e097ef5bef5d2a7d4a78cd7", + "qualified": true, + "format": "ACCOUNT_STATEMENT" + }, + { + "id": "omni-40", + "image_file": "40.png", + "image_sha256": "0aa6485e15e7b93651a00f8b47c5003fb9649c9dd4aae1402dd118158f729104", + "sets_json_sha256": "0aa6485e15e7b93651a00f8b47c5003fb9649c9dd4aae1402dd118158f729104", + "qualified": true, + "format": "SCANNED_FORM" + }, + { + "id": "omni-400", + "image_file": "400.png", + "image_sha256": "4d4fc7dcd73d230b3e47d3943ff22584246f400bdd0f6cd7f64ab5daa69dff8c", + "sets_json_sha256": "4d4fc7dcd73d230b3e47d3943ff22584246f400bdd0f6cd7f64ab5daa69dff8c", + "qualified": true, + "format": "PETITION_FORM" + }, + { + "id": "omni-401", + "image_file": "401.png", + "image_sha256": "8aa24c0a9e649579ffa933a7f41ea7c7a8c521ad75370890fa94bef5995eda65", + "sets_json_sha256": "8aa24c0a9e649579ffa933a7f41ea7c7a8c521ad75370890fa94bef5995eda65", + "qualified": true, + "format": "COMMERCIAL_LEASE_AGREEMENT" + }, + { + "id": "omni-402", + "image_file": "402.png", + "image_sha256": "485465dc7a23146dcea97019102fe48fdc3e792d1e3beac6113fe63a51707f51", + "sets_json_sha256": "485465dc7a23146dcea97019102fe48fdc3e792d1e3beac6113fe63a51707f51", + "qualified": true, + "format": "PATIENT_INTAKE" + }, + { + "id": "omni-403", + "image_file": "403.png", + "image_sha256": "8580696831afd0eed94021b30de66517d6a485c67834223849b0dcbe79dfab2d", + "sets_json_sha256": "8580696831afd0eed94021b30de66517d6a485c67834223849b0dcbe79dfab2d", + "qualified": true, + "format": "PATIENT_INTAKE" + }, + { + "id": "omni-404", + "image_file": "404.png", + "image_sha256": "1f67b74154869ffc56842ac8426b141d1279af5c3fb8647c2baab11ff51dc49d", + "sets_json_sha256": "1f67b74154869ffc56842ac8426b141d1279af5c3fb8647c2baab11ff51dc49d", + "qualified": true, + "format": "BANK_CHECK" + }, + { + "id": "omni-405", + "image_file": "405.png", + "image_sha256": "2a23d42f7b0a4621398bb71885784f13cfeb0aea316d9a65cec487a6839f2a08", + "sets_json_sha256": "2a23d42f7b0a4621398bb71885784f13cfeb0aea316d9a65cec487a6839f2a08", + "qualified": true, + "format": "CREDIT_CARD_STATEMENT" + }, + { + "id": "omni-410", + "image_file": "410.png", + "image_sha256": "43782aec576c65298251c92ae62f63b9a51372ca3edca7cd6a236f74a9a4eb11", + "sets_json_sha256": "43782aec576c65298251c92ae62f63b9a51372ca3edca7cd6a236f74a9a4eb11", + "qualified": true, + "format": "CREDIT_CARD_STATEMENT" + }, + { + "id": "omni-414", + "image_file": "414.png", + "image_sha256": "277ce4711b10a114412bd9332cbae1386dc960c5fc82e57e71c019464aa092cf", + "sets_json_sha256": "277ce4711b10a114412bd9332cbae1386dc960c5fc82e57e71c019464aa092cf", + "qualified": true, + "format": "DELIVERY_NOTE" + }, + { + "id": "omni-417", + "image_file": "417.png", + "image_sha256": "9eaca06f340c6503763eef4a5674ecc28e1fd5f9a35f97649e17422d3e33c5be", + "sets_json_sha256": "9eaca06f340c6503763eef4a5674ecc28e1fd5f9a35f97649e17422d3e33c5be", + "qualified": true, + "format": "CREDIT_CARD_STATEMENT" + }, + { + "id": "omni-420", + "image_file": "420.png", + "image_sha256": "91f797dcf28aad96c9b49013a8793589c6332bde0c1e4ec38d9ae3f53db4e6c8", + "sets_json_sha256": "91f797dcf28aad96c9b49013a8793589c6332bde0c1e4ec38d9ae3f53db4e6c8", + "qualified": true, + "format": "BANK_CHECK" + }, + { + "id": "omni-421", + "image_file": "421.png", + "image_sha256": "b2e24173ec747dedcc8da12620c8cc9d466264921a1479e3ed9fdee637f93882", + "sets_json_sha256": "b2e24173ec747dedcc8da12620c8cc9d466264921a1479e3ed9fdee637f93882", + "qualified": true, + "format": "DELIVERY_NOTE" + }, + { + "id": "omni-423", + "image_file": "423.png", + "image_sha256": "992598f1222e721b2115aeafb33a6d034f352eee2cdf673e2c20f5785edde8f5", + "sets_json_sha256": "992598f1222e721b2115aeafb33a6d034f352eee2cdf673e2c20f5785edde8f5", + "qualified": true, + "format": "DELIVERY_NOTE" + }, + { + "id": "omni-424", + "image_file": "424.png", + "image_sha256": "e6b95dc5d058d62c6d1d396741a5aec5130e55c1aa4233a707e877a513130e7e", + "sets_json_sha256": "e6b95dc5d058d62c6d1d396741a5aec5130e55c1aa4233a707e877a513130e7e", + "qualified": true, + "format": "CREDIT_CARD_STATEMENT" + }, + { + "id": "omni-426", + "image_file": "426.png", + "image_sha256": "910d300ac5c99d56b71eddf5191c87e844afff441cf538b135e82800aed74187", + "sets_json_sha256": "910d300ac5c99d56b71eddf5191c87e844afff441cf538b135e82800aed74187", + "qualified": true, + "format": "SCANNED_FORM" + }, + { + "id": "omni-429", + "image_file": "429.png", + "image_sha256": "ba4cd8db5578109ca223130ea93c83ade79822fd5d420b918e5fe27538af0b85", + "sets_json_sha256": "ba4cd8db5578109ca223130ea93c83ade79822fd5d420b918e5fe27538af0b85", + "qualified": true, + "format": "COMMERCIAL_LEASE_AGREEMENT" + }, + { + "id": "omni-43", + "image_file": "43.png", + "image_sha256": "fd29914a80290994db59fc3b2c2b601905d871902bc4a38ab56423180a973d33", + "sets_json_sha256": "fd29914a80290994db59fc3b2c2b601905d871902bc4a38ab56423180a973d33", + "qualified": true, + "format": "FORM" + }, + { + "id": "omni-431", + "image_file": "431.png", + "image_sha256": "38864bb200e18e6f080fc30ce4135f015dc0b2e684029886b78e03135befa7cc", + "sets_json_sha256": "38864bb200e18e6f080fc30ce4135f015dc0b2e684029886b78e03135befa7cc", + "qualified": true, + "format": "PETITION_FORM" + }, + { + "id": "omni-432", + "image_file": "432.png", + "image_sha256": "8852885969edbef9d39dd52f6db560685ab95b8f1a3367588671d26b85958e97", + "sets_json_sha256": "8852885969edbef9d39dd52f6db560685ab95b8f1a3367588671d26b85958e97", + "qualified": true, + "format": "DELIVERY_NOTE" + }, + { + "id": "omni-437", + "image_file": "437.png", + "image_sha256": "44e80025663ef64b13dbb676bae4acd89cd70919c483a20eaaeda172dbde530a", + "sets_json_sha256": "44e80025663ef64b13dbb676bae4acd89cd70919c483a20eaaeda172dbde530a", + "qualified": true, + "format": "DELIVERY_NOTE" + }, + { + "id": "omni-440", + "image_file": "440.png", + "image_sha256": "65ef73837d415e21fbc800ed43726344923ef3fc043ec8fdbaa3707d35044509", + "sets_json_sha256": "65ef73837d415e21fbc800ed43726344923ef3fc043ec8fdbaa3707d35044509", + "qualified": true, + "format": "COMMERCIAL_LEASE_AGREEMENT" + }, + { + "id": "omni-444", + "image_file": "444.png", + "image_sha256": "5bf36b2601ec1275c4c6af2f940d633cee7210042fa43182f2aea4119866a5be", + "sets_json_sha256": "5bf36b2601ec1275c4c6af2f940d633cee7210042fa43182f2aea4119866a5be", + "qualified": true, + "format": "EQUIPMENT_INSPECTION" + }, + { + "id": "omni-446", + "image_file": "446.png", + "image_sha256": "cccb1bd832d791ed500ec5c9e8a61e7b1e88c87804ad2875c091db06f4562274", + "sets_json_sha256": "cccb1bd832d791ed500ec5c9e8a61e7b1e88c87804ad2875c091db06f4562274", + "qualified": true, + "format": "PROXY_VOTING" + }, + { + "id": "omni-447", + "image_file": "447.png", + "image_sha256": "065191a51c3fea44fa98b0c3c46f6e4ed2a0b0e1873033d3e51dfbb2efc6d8c4", + "sets_json_sha256": "065191a51c3fea44fa98b0c3c46f6e4ed2a0b0e1873033d3e51dfbb2efc6d8c4", + "qualified": true, + "format": "ACCOUNT_STATEMENT" + }, + { + "id": "omni-448", + "image_file": "448.png", + "image_sha256": "64f848f07d6e9ec6ec4513d0fb235aad22fb8900351fc420542d6d80aa77ea78", + "sets_json_sha256": "64f848f07d6e9ec6ec4513d0fb235aad22fb8900351fc420542d6d80aa77ea78", + "qualified": true, + "format": "REAL_ESTATE" + }, + { + "id": "omni-449", + "image_file": "449.png", + "image_sha256": "bc3291d1723fb85ebe71f1b738fbcd64e7c16afcabb79c4b8ea044c268d058c5", + "sets_json_sha256": "bc3291d1723fb85ebe71f1b738fbcd64e7c16afcabb79c4b8ea044c268d058c5", + "qualified": true, + "format": "BANK_CHECK" + }, + { + "id": "omni-452", + "image_file": "452.png", + "image_sha256": "d9fe353c789e50c7096685c73cb26922f21491ec22a0febde4b130567ae42d3f", + "sets_json_sha256": "d9fe353c789e50c7096685c73cb26922f21491ec22a0febde4b130567ae42d3f", + "qualified": true, + "format": "ACCOUNT_STATEMENT" + }, + { + "id": "omni-453", + "image_file": "453.png", + "image_sha256": "7d42e51427b76a29a5dd0755aec75f86f64249e92fc7963201889d22828f38f6", + "sets_json_sha256": "7d42e51427b76a29a5dd0755aec75f86f64249e92fc7963201889d22828f38f6", + "qualified": true, + "format": "EQUIPMENT_INSPECTION" + }, + { + "id": "omni-455", + "image_file": "455.png", + "image_sha256": "68441241e5ae5190e834b27264c2c919fc483122f81f2a69e21ba5192f316e15", + "sets_json_sha256": "68441241e5ae5190e834b27264c2c919fc483122f81f2a69e21ba5192f316e15", + "qualified": true, + "format": "SHIPPING_INVOICE" + }, + { + "id": "omni-456", + "image_file": "456.png", + "image_sha256": "fc0ca6381518d084c4f769e487331715a0b9be78b33162732a7b596ad7f7834a", + "sets_json_sha256": "fc0ca6381518d084c4f769e487331715a0b9be78b33162732a7b596ad7f7834a", + "qualified": true, + "format": "PATIENT_INTAKE" + }, + { + "id": "omni-457", + "image_file": "457.png", + "image_sha256": "986d0f5eaada99136dad4573f77cf7075903a8e19468b3e24bf9527af309ac83", + "sets_json_sha256": "986d0f5eaada99136dad4573f77cf7075903a8e19468b3e24bf9527af309ac83", + "qualified": true, + "format": "FORM_1040" + }, + { + "id": "omni-458", + "image_file": "458.png", + "image_sha256": "48cd5ddffe6f50ad1103a7cb0b0fc9ee99730ad4509c1440f54dc9738f8c0a42", + "sets_json_sha256": "48cd5ddffe6f50ad1103a7cb0b0fc9ee99730ad4509c1440f54dc9738f8c0a42", + "qualified": true, + "format": "EQUIPMENT_INSPECTION" + }, + { + "id": "omni-459", + "image_file": "459.png", + "image_sha256": "d9b4751044aef798f492b0611eac38251e83e7e1c26fd2abc4fde039adba6407", + "sets_json_sha256": "d9b4751044aef798f492b0611eac38251e83e7e1c26fd2abc4fde039adba6407", + "qualified": true, + "format": "PATIENT_INTAKE" + }, + { + "id": "omni-46", + "image_file": "46.png", + "image_sha256": "26b03123384dc40cbff8730361639464cc7fa3d97ebfc3c663c288da15e8ac4d", + "sets_json_sha256": "26b03123384dc40cbff8730361639464cc7fa3d97ebfc3c663c288da15e8ac4d", + "qualified": true, + "format": "SCANNED_FORM" + }, + { + "id": "omni-461", + "image_file": "461.png", + "image_sha256": "aee99bc3b53d97251522f0d5d0b436c4f4cce031a49eb5182f4d37fe0ba36c95", + "sets_json_sha256": "aee99bc3b53d97251522f0d5d0b436c4f4cce031a49eb5182f4d37fe0ba36c95", + "qualified": true, + "format": "EQUIPMENT_INSPECTION" + }, + { + "id": "omni-462", + "image_file": "462.png", + "image_sha256": "23bdbc910dcea9b8fafcc16fc8414a90f6c3448598cbb644ebafcc690660c79e", + "sets_json_sha256": "23bdbc910dcea9b8fafcc16fc8414a90f6c3448598cbb644ebafcc690660c79e", + "qualified": true, + "format": "PAY_IN_SHEET" + }, + { + "id": "omni-463", + "image_file": "463.png", + "image_sha256": "83973736f9e0822c193541a28ecaaa6c879c48d15651c5bcaf8c4f91288a485b", + "sets_json_sha256": "83973736f9e0822c193541a28ecaaa6c879c48d15651c5bcaf8c4f91288a485b", + "qualified": true, + "format": "PAY_IN_SHEET" + }, + { + "id": "omni-464", + "image_file": "464.png", + "image_sha256": "3657458223aaca0a1f8edb19149e7400c528160642e7aadda9a7c45e75043c15", + "sets_json_sha256": "3657458223aaca0a1f8edb19149e7400c528160642e7aadda9a7c45e75043c15", + "qualified": true, + "format": "PROXY_VOTING" + }, + { + "id": "omni-465", + "image_file": "465.png", + "image_sha256": "8f7678261aea1a8bfbedca998f0e46e3280529dedfd742244a5332fba203ce3b", + "sets_json_sha256": "8f7678261aea1a8bfbedca998f0e46e3280529dedfd742244a5332fba203ce3b", + "qualified": true, + "format": "FORM" + }, + { + "id": "omni-467", + "image_file": "467.png", + "image_sha256": "27843166ff4054174ca18ee63f897ca659adf0e5ff9f8e5270740ca533655366", + "sets_json_sha256": "27843166ff4054174ca18ee63f897ca659adf0e5ff9f8e5270740ca533655366", + "qualified": true, + "format": "PROXY_VOTING" + }, + { + "id": "omni-468", + "image_file": "468.png", + "image_sha256": "c49909146a0cd0cf6aad8a35bed410674d56df4c1b9a550a528fcac53f5ee994", + "sets_json_sha256": "c49909146a0cd0cf6aad8a35bed410674d56df4c1b9a550a528fcac53f5ee994", + "qualified": true, + "format": "DELIVERY_NOTE" + }, + { + "id": "omni-471", + "image_file": "471.png", + "image_sha256": "e9cafbb551b63dd68fc2a8c49aaa6c01096c62b436a206c2f25075a4d31b8c1d", + "sets_json_sha256": "e9cafbb551b63dd68fc2a8c49aaa6c01096c62b436a206c2f25075a4d31b8c1d", + "qualified": true, + "format": "PROXY_VOTING" + }, + { + "id": "omni-472", + "image_file": "472.png", + "image_sha256": "990d6e35d7ff201217869307911ed4f936d6ca95de722c24d1c7e9c8573804d5", + "sets_json_sha256": "990d6e35d7ff201217869307911ed4f936d6ca95de722c24d1c7e9c8573804d5", + "qualified": true, + "format": "PETITION_FORM" + }, + { + "id": "omni-474", + "image_file": "474.png", + "image_sha256": "1085efc353f16afc65cde520805a8c4097e4524c964e629ef2a12e27282aa22d", + "sets_json_sha256": "1085efc353f16afc65cde520805a8c4097e4524c964e629ef2a12e27282aa22d", + "qualified": true, + "format": "SHIPPING_INVOICE" + }, + { + "id": "omni-476", + "image_file": "476.png", + "image_sha256": "a621dff24b154c9eb5f2596a29812abe0f158a0843358bc1ff49c0c670bc0c7d", + "sets_json_sha256": "a621dff24b154c9eb5f2596a29812abe0f158a0843358bc1ff49c0c670bc0c7d", + "qualified": true, + "format": "PETITION_FORM" + }, + { + "id": "omni-477", + "image_file": "477.png", + "image_sha256": "e7c8c1a06bd3ad34db7be897047c6acb172564c1c72bad2857ff2f057ead5571", + "sets_json_sha256": "e7c8c1a06bd3ad34db7be897047c6acb172564c1c72bad2857ff2f057ead5571", + "qualified": true, + "format": "PATIENT_INTAKE" + }, + { + "id": "omni-479", + "image_file": "479.png", + "image_sha256": "7a7ce2997ca1c9bba8733381c146983c8dfa6605a67d079dbaa96b62b9babc9e", + "sets_json_sha256": "7a7ce2997ca1c9bba8733381c146983c8dfa6605a67d079dbaa96b62b9babc9e", + "qualified": true, + "format": "CREDIT_CARD_STATEMENT" + }, + { + "id": "omni-48", + "image_file": "48.png", + "image_sha256": "6aec67c3860bdfc6086ff57b42b190ae7d7ac2338b0aa0808ac36e216af86d43", + "sets_json_sha256": "6aec67c3860bdfc6086ff57b42b190ae7d7ac2338b0aa0808ac36e216af86d43", + "qualified": true, + "format": "SCANNED_FORM" + }, + { + "id": "omni-481", + "image_file": "481.png", + "image_sha256": "125e2cc4d37a6234f56936e258d86732ca29cb05980fa2cc5bb55d7294feb003", + "sets_json_sha256": "125e2cc4d37a6234f56936e258d86732ca29cb05980fa2cc5bb55d7294feb003", + "qualified": true, + "format": "REAL_ESTATE" + }, + { + "id": "omni-483", + "image_file": "483.png", + "image_sha256": "f38ab7161ead261aaa386d92f253e220fd53308df9926916d8df34bd9f941721", + "sets_json_sha256": "f38ab7161ead261aaa386d92f253e220fd53308df9926916d8df34bd9f941721", + "qualified": true, + "format": "CREDIT_CARD_STATEMENT" + }, + { + "id": "omni-485", + "image_file": "485.png", + "image_sha256": "0085920d3fe84325b1bb358938b3d3bdfc8f53593a74c4506f2d06fba607f83e", + "sets_json_sha256": "0085920d3fe84325b1bb358938b3d3bdfc8f53593a74c4506f2d06fba607f83e", + "qualified": true, + "format": "EQUIPMENT_INSPECTION" + }, + { + "id": "omni-486", + "image_file": "486.png", + "image_sha256": "e89c7ef1843fae8b883b04734490bffc2f45889bfb6c7e6f79eb1af8ce46ddc2", + "sets_json_sha256": "e89c7ef1843fae8b883b04734490bffc2f45889bfb6c7e6f79eb1af8ce46ddc2", + "qualified": true, + "format": "SHIPPING_INVOICE" + }, + { + "id": "omni-487", + "image_file": "487.png", + "image_sha256": "cb1641d16161b258c4cdb99fd8f401a504db5a19bc441c7b7c3f9d27fe2591db", + "sets_json_sha256": "cb1641d16161b258c4cdb99fd8f401a504db5a19bc441c7b7c3f9d27fe2591db", + "qualified": true, + "format": "SHIPPING_INVOICE" + }, + { + "id": "omni-489", + "image_file": "489.png", + "image_sha256": "1805dbab348d0a16344965fa379a76c00de551f5ccbaa9191cd94bd3af207dec", + "sets_json_sha256": "1805dbab348d0a16344965fa379a76c00de551f5ccbaa9191cd94bd3af207dec", + "qualified": true, + "format": "SHIPPING_INVOICE" + }, + { + "id": "omni-491", + "image_file": "491.png", + "image_sha256": "c6e671068959f4dd2390a9cb7a7231f5dc776ad9cb65534d754a1701467c278b", + "sets_json_sha256": "c6e671068959f4dd2390a9cb7a7231f5dc776ad9cb65534d754a1701467c278b", + "qualified": true, + "format": "PATIENT_INTAKE" + }, + { + "id": "omni-493", + "image_file": "493.png", + "image_sha256": "9fd2a060604a8d2fe1e01179ea47e06aa04a2722e6246884f1ecdf7b237f16e7", + "sets_json_sha256": "9fd2a060604a8d2fe1e01179ea47e06aa04a2722e6246884f1ecdf7b237f16e7", + "qualified": true, + "format": "PAY_IN_SHEET" + }, + { + "id": "omni-496", + "image_file": "496.png", + "image_sha256": "364d45e441e1444de1853867fb6cf5d5e19b08aab1d5f9d15d709c484a6c5b14", + "sets_json_sha256": "364d45e441e1444de1853867fb6cf5d5e19b08aab1d5f9d15d709c484a6c5b14", + "qualified": true, + "format": "COMMERCIAL_LEASE_AGREEMENT" + }, + { + "id": "omni-503", + "image_file": "503.png", + "image_sha256": "8dfcff3d39511f82f53574030bad191a32df32185f186c0a27eef0d9055b0456", + "sets_json_sha256": "8dfcff3d39511f82f53574030bad191a32df32185f186c0a27eef0d9055b0456", + "qualified": true, + "format": "BANK_CHECK" + }, + { + "id": "omni-505", + "image_file": "505.jpg", + "image_sha256": "6093281cf0e733bdd95e22a3b2d3737dcccc94b780c1367164c939d55bebed03", + "sets_json_sha256": "6093281cf0e733bdd95e22a3b2d3737dcccc94b780c1367164c939d55bebed03", + "qualified": true, + "format": "FORM_1040" + }, + { + "id": "omni-508", + "image_file": "508.png", + "image_sha256": "3976078e84ade5d7fe333b18e4adf06688d050024ad968273d622077f7d28cc2", + "sets_json_sha256": "3976078e84ade5d7fe333b18e4adf06688d050024ad968273d622077f7d28cc2", + "qualified": true, + "format": "BANK_CHECK" + }, + { + "id": "omni-509", + "image_file": "509.png", + "image_sha256": "467a30bc22cc57d13dbd6a59ce6892e2a5e0e1d79e4cb93475c007b83cefde62", + "sets_json_sha256": "467a30bc22cc57d13dbd6a59ce6892e2a5e0e1d79e4cb93475c007b83cefde62", + "qualified": true, + "format": "SHIPPING_INVOICE" + }, + { + "id": "omni-510", + "image_file": "510.png", + "image_sha256": "415a71dc946fd3e79c22e7873c89fbe4f9563753baa1e072eac113ce85ce47ea", + "sets_json_sha256": "415a71dc946fd3e79c22e7873c89fbe4f9563753baa1e072eac113ce85ce47ea", + "qualified": true, + "format": "DELIVERY_NOTE" + }, + { + "id": "omni-511", + "image_file": "511.png", + "image_sha256": "9d62f909c7d3ebce4bb42fa1998cbcd14551a89c4ed24d9d6c24e5c77e81ea27", + "sets_json_sha256": "9d62f909c7d3ebce4bb42fa1998cbcd14551a89c4ed24d9d6c24e5c77e81ea27", + "qualified": true, + "format": "EQUIPMENT_INSPECTION" + }, + { + "id": "omni-514", + "image_file": "514.png", + "image_sha256": "e26492b1a2b52cd76d4dcc7b7c461b6b57b992acf1d064327c4c2e56a501b511", + "sets_json_sha256": "e26492b1a2b52cd76d4dcc7b7c461b6b57b992acf1d064327c4c2e56a501b511", + "qualified": true, + "format": "PATIENT_INTAKE" + }, + { + "id": "omni-517", + "image_file": "517.jpg", + "image_sha256": "aeb7b6f7d5ccc9edeada2a7df0d31624d917653b2e03582a6125591baea975cf", + "sets_json_sha256": "aeb7b6f7d5ccc9edeada2a7df0d31624d917653b2e03582a6125591baea975cf", + "qualified": true, + "format": "DELIVERY_NOTE" + }, + { + "id": "omni-518", + "image_file": "518.png", + "image_sha256": "850c6970431107ef0e197b71c8311647e654bd029792746a5d879a777e338ace", + "sets_json_sha256": "850c6970431107ef0e197b71c8311647e654bd029792746a5d879a777e338ace", + "qualified": true, + "format": "COMMERCIAL_LEASE_AGREEMENT" + }, + { + "id": "omni-52", + "image_file": "52.png", + "image_sha256": "136a8c44dda39b96f80787cdba19c267088e8292c9c27cef24abe70f50de4e5a", + "sets_json_sha256": "136a8c44dda39b96f80787cdba19c267088e8292c9c27cef24abe70f50de4e5a", + "qualified": true, + "format": "FORM" + }, + { + "id": "omni-520", + "image_file": "520.png", + "image_sha256": "b9a327d08e5a2f6cbebd06621f4d6b938f0cadfca7a82feebdee5b652bc70645", + "sets_json_sha256": "b9a327d08e5a2f6cbebd06621f4d6b938f0cadfca7a82feebdee5b652bc70645", + "qualified": true, + "format": "PETITION_FORM" + }, + { + "id": "omni-521", + "image_file": "521.png", + "image_sha256": "1e903379ae00ca6b54aa63b175d7a028fac0f029dcd97dda4d13e0d8c205009a", + "sets_json_sha256": "1e903379ae00ca6b54aa63b175d7a028fac0f029dcd97dda4d13e0d8c205009a", + "qualified": true, + "format": "SHIPPING_INVOICE" + }, + { + "id": "omni-525", + "image_file": "525.png", + "image_sha256": "78a4786e285bdbd537e407559a60fcab95282e26fc4fb2a257c890f45b4cc18e", + "sets_json_sha256": "78a4786e285bdbd537e407559a60fcab95282e26fc4fb2a257c890f45b4cc18e", + "qualified": true, + "format": "PETITION_FORM" + }, + { + "id": "omni-528", + "image_file": "528.png", + "image_sha256": "b715a2ea1b3651ce5e438ac43d2c23f4615f4e72020892aa4a02c0b17b9cc9d0", + "sets_json_sha256": "b715a2ea1b3651ce5e438ac43d2c23f4615f4e72020892aa4a02c0b17b9cc9d0", + "qualified": true, + "format": "PETITION_FORM" + }, + { + "id": "omni-529", + "image_file": "529.png", + "image_sha256": "3c2f12358f5132d591ebb777da238aad28c0a5779bed377ec3e8c98837506bb3", + "sets_json_sha256": "3c2f12358f5132d591ebb777da238aad28c0a5779bed377ec3e8c98837506bb3", + "qualified": true, + "format": "CREDIT_CARD_STATEMENT" + }, + { + "id": "omni-53", + "image_file": "53.png", + "image_sha256": "15b288e14f40ad8a59167ecbccf2ed43630d8d31f63befec049da66d4a8bed08", + "sets_json_sha256": "15b288e14f40ad8a59167ecbccf2ed43630d8d31f63befec049da66d4a8bed08", + "qualified": true, + "format": "FORM" + }, + { + "id": "omni-530", + "image_file": "530.png", + "image_sha256": "bdca1654218160064995caa38e7533980feaa625aad390c1682264ac56f3bde4", + "sets_json_sha256": "bdca1654218160064995caa38e7533980feaa625aad390c1682264ac56f3bde4", + "qualified": true, + "format": "REAL_ESTATE" + }, + { + "id": "omni-531", + "image_file": "531.png", + "image_sha256": "bea76e25f719a6821e397e054ff9230688bbbcfc65d4508ea65e548187252465", + "sets_json_sha256": "bea76e25f719a6821e397e054ff9230688bbbcfc65d4508ea65e548187252465", + "qualified": true, + "format": "FORM_1040" + }, + { + "id": "omni-532", + "image_file": "532.png", + "image_sha256": "969367996cc670ddee6ef601e9096926010ecf03ba1a6c8e40e768b527e54777", + "sets_json_sha256": "969367996cc670ddee6ef601e9096926010ecf03ba1a6c8e40e768b527e54777", + "qualified": true, + "format": "PETITION_FORM" + }, + { + "id": "omni-533", + "image_file": "533.png", + "image_sha256": "d598fe7f50b62b220fc97c8efe91b8a26562b9553b3a5ac2d88dfcdcb2921da6", + "sets_json_sha256": "d598fe7f50b62b220fc97c8efe91b8a26562b9553b3a5ac2d88dfcdcb2921da6", + "qualified": true, + "format": "REAL_ESTATE" + }, + { + "id": "omni-534", + "image_file": "534.png", + "image_sha256": "36820b39c6c0a6772b990fae7e596577ad08dfce2314f8d5b55383a46737403e", + "sets_json_sha256": "36820b39c6c0a6772b990fae7e596577ad08dfce2314f8d5b55383a46737403e", + "qualified": true, + "format": "ACCOUNT_STATEMENT" + }, + { + "id": "omni-535", + "image_file": "535.png", + "image_sha256": "48f4e600436e8a0782b4d09ba7b6f60dee65546e9e7e2885f2ae369614cfcb75", + "sets_json_sha256": "48f4e600436e8a0782b4d09ba7b6f60dee65546e9e7e2885f2ae369614cfcb75", + "qualified": true, + "format": "PROXY_VOTING" + }, + { + "id": "omni-536", + "image_file": "536.png", + "image_sha256": "6962f6e82d2635555e21a36dee48f2aa1488579812b2a5f164ee770c3d78d617", + "sets_json_sha256": "6962f6e82d2635555e21a36dee48f2aa1488579812b2a5f164ee770c3d78d617", + "qualified": true, + "format": "COMMERCIAL_LEASE_AGREEMENT" + }, + { + "id": "omni-539", + "image_file": "539.png", + "image_sha256": "7bf3411ee51ac529e5cbaaeeb0fa3b7ed742f3a022021ba80b79be71726aa93b", + "sets_json_sha256": "7bf3411ee51ac529e5cbaaeeb0fa3b7ed742f3a022021ba80b79be71726aa93b", + "qualified": true, + "format": "PAY_IN_SHEET" + }, + { + "id": "omni-540", + "image_file": "540.png", + "image_sha256": "e82ac54dc2a4f8c4bc4f0fb89fef508b3f7f7fec12ba566218c20aba30e91b37", + "sets_json_sha256": "e82ac54dc2a4f8c4bc4f0fb89fef508b3f7f7fec12ba566218c20aba30e91b37", + "qualified": true, + "format": "PAY_IN_SHEET" + }, + { + "id": "omni-542", + "image_file": "542.png", + "image_sha256": "bec6d9847ea3bfdc8cfe3f278dd6239c70eb69db7acae768c7ce3b8d0f6fad09", + "sets_json_sha256": "bec6d9847ea3bfdc8cfe3f278dd6239c70eb69db7acae768c7ce3b8d0f6fad09", + "qualified": true, + "format": "PAY_IN_SHEET" + }, + { + "id": "omni-544", + "image_file": "544.png", + "image_sha256": "58c3519954fa69ce29548ca0c79217e2b583cace34ed089af6c73287ca280301", + "sets_json_sha256": "58c3519954fa69ce29548ca0c79217e2b583cace34ed089af6c73287ca280301", + "qualified": true, + "format": "BANK_CHECK" + }, + { + "id": "omni-545", + "image_file": "545.png", + "image_sha256": "2e0948c41089348b906724739668a3ee652565b12fd53bc9a6c185e3039c2dc3", + "sets_json_sha256": "2e0948c41089348b906724739668a3ee652565b12fd53bc9a6c185e3039c2dc3", + "qualified": true, + "format": "DELIVERY_NOTE" + }, + { + "id": "omni-549", + "image_file": "549.png", + "image_sha256": "a478fa1d68e0206f7a1cb8dd84dd541b5775ea1a02070eb9eea0160251c4b1a2", + "sets_json_sha256": "a478fa1d68e0206f7a1cb8dd84dd541b5775ea1a02070eb9eea0160251c4b1a2", + "qualified": true, + "format": "SHIPPING_INVOICE" + }, + { + "id": "omni-550", + "image_file": "550.png", + "image_sha256": "35ca8198ec3ed3a18fc5e27a15d33f370dda7ad30eaf6b56985e06fcc42f94b1", + "sets_json_sha256": "35ca8198ec3ed3a18fc5e27a15d33f370dda7ad30eaf6b56985e06fcc42f94b1", + "qualified": true, + "format": "FORM_1040" + }, + { + "id": "omni-551", + "image_file": "551.png", + "image_sha256": "dfc56895663bae9102b61063f412cc83311ba5df254cecd1440547df3b75bac8", + "sets_json_sha256": "dfc56895663bae9102b61063f412cc83311ba5df254cecd1440547df3b75bac8", + "qualified": true, + "format": "SHIPPING_INVOICE" + }, + { + "id": "omni-552", + "image_file": "552.png", + "image_sha256": "0f7338f55a9d4042716aaf5fa82c4ccb4885393de07cb1cd799e86fa95498745", + "sets_json_sha256": "0f7338f55a9d4042716aaf5fa82c4ccb4885393de07cb1cd799e86fa95498745", + "qualified": true, + "format": "PAY_IN_SHEET" + }, + { + "id": "omni-553", + "image_file": "553.png", + "image_sha256": "b3958d6a73cbdb155ddfb7b35933351bb235059a501cd6dda7e43203efa953b1", + "sets_json_sha256": "b3958d6a73cbdb155ddfb7b35933351bb235059a501cd6dda7e43203efa953b1", + "qualified": true, + "format": "BANK_CHECK" + }, + { + "id": "omni-554", + "image_file": "554.png", + "image_sha256": "be9ba0c4657d0c79faae980257e70b82a3eb7547013ae7cda172d241050ecc62", + "sets_json_sha256": "be9ba0c4657d0c79faae980257e70b82a3eb7547013ae7cda172d241050ecc62", + "qualified": true, + "format": "SHIPPING_INVOICE" + }, + { + "id": "omni-557", + "image_file": "557.png", + "image_sha256": "a073c07caa00e1c502312487f2a54b5a5d15821c8e66b5e00bbf910cc2c33ee7", + "sets_json_sha256": "a073c07caa00e1c502312487f2a54b5a5d15821c8e66b5e00bbf910cc2c33ee7", + "qualified": true, + "format": "COMMERCIAL_LEASE_AGREEMENT" + }, + { + "id": "omni-558", + "image_file": "558.png", + "image_sha256": "74336bab999dd743560c7532b2abb239f3e29bebe07590311fc3baafccd6a992", + "sets_json_sha256": "74336bab999dd743560c7532b2abb239f3e29bebe07590311fc3baafccd6a992", + "qualified": true, + "format": "BANK_CHECK" + }, + { + "id": "omni-559", + "image_file": "559.png", + "image_sha256": "4e96d306ea82ecc6b39f2612b817bb599933376ec7d719ec024f40ee2a8e3f0d", + "sets_json_sha256": "4e96d306ea82ecc6b39f2612b817bb599933376ec7d719ec024f40ee2a8e3f0d", + "qualified": true, + "format": "REAL_ESTATE" + }, + { + "id": "omni-56", + "image_file": "56.jpeg", + "image_sha256": "b4eaa8d2144e20b5b3eb6446b01c393a31f524e99fcf6dad6715089a1ae14a1b", + "sets_json_sha256": "b4eaa8d2144e20b5b3eb6446b01c393a31f524e99fcf6dad6715089a1ae14a1b", + "qualified": true, + "format": "PHOTO_RECEIPT" + }, + { + "id": "omni-567", + "image_file": "567.png", + "image_sha256": "83d326dcc239fa54f1da3a85530aad74408804385bfbc00adadcd5f47ab6653e", + "sets_json_sha256": "83d326dcc239fa54f1da3a85530aad74408804385bfbc00adadcd5f47ab6653e", + "qualified": true, + "format": "SHIPPING_INVOICE" + }, + { + "id": "omni-568", + "image_file": "568.png", + "image_sha256": "6bf5185f075d42470d3220b083cbdd90a461730b4183251ce46e0de75e9f213f", + "sets_json_sha256": "6bf5185f075d42470d3220b083cbdd90a461730b4183251ce46e0de75e9f213f", + "qualified": true, + "format": "DELIVERY_NOTE" + }, + { + "id": "omni-569", + "image_file": "569.png", + "image_sha256": "f89e8d834f7a7e92a39c18f83615caa816f882941eba6c1a154ab97213e3e74f", + "sets_json_sha256": "f89e8d834f7a7e92a39c18f83615caa816f882941eba6c1a154ab97213e3e74f", + "qualified": true, + "format": "PATIENT_INTAKE" + }, + { + "id": "omni-571", + "image_file": "571.png", + "image_sha256": "b9f1fdaa2a6355975dddce2ec69ecf9f1a3c749210a1f17eb7dd9677a946fc23", + "sets_json_sha256": "b9f1fdaa2a6355975dddce2ec69ecf9f1a3c749210a1f17eb7dd9677a946fc23", + "qualified": true, + "format": "PETITION_FORM" + }, + { + "id": "omni-572", + "image_file": "572.png", + "image_sha256": "d4f6a1738e469e486d5876f32d68b6cdeff14dc16d9c6eadcfde42747b194626", + "sets_json_sha256": "d4f6a1738e469e486d5876f32d68b6cdeff14dc16d9c6eadcfde42747b194626", + "qualified": true, + "format": "FORM_1040" + }, + { + "id": "omni-574", + "image_file": "574.png", + "image_sha256": "d7c51c7f0df0a200ef2f2ad3b6895b7265bc4c7ecd4443607372d6a82649a170", + "sets_json_sha256": "d7c51c7f0df0a200ef2f2ad3b6895b7265bc4c7ecd4443607372d6a82649a170", + "qualified": true, + "format": "PROXY_VOTING" + }, + { + "id": "omni-575", + "image_file": "575.png", + "image_sha256": "f9deb00b4a8780f24721b0383863be1dd6691281e04ecb741563ab4275fe8607", + "sets_json_sha256": "f9deb00b4a8780f24721b0383863be1dd6691281e04ecb741563ab4275fe8607", + "qualified": true, + "format": "PETITION_FORM" + }, + { + "id": "omni-577", + "image_file": "577.png", + "image_sha256": "8d1130c67bead4b569993a0879f3f54afbef2ee1142ee7296297e0f5b6efe23a", + "sets_json_sha256": "8d1130c67bead4b569993a0879f3f54afbef2ee1142ee7296297e0f5b6efe23a", + "qualified": true, + "format": "BANK_CHECK" + }, + { + "id": "omni-581", + "image_file": "581.png", + "image_sha256": "686a030b41ec950b612caf36c94d643147a4c24aeb472bc9815b9a3946bd6861", + "sets_json_sha256": "686a030b41ec950b612caf36c94d643147a4c24aeb472bc9815b9a3946bd6861", + "qualified": true, + "format": "PROXY_VOTING" + }, + { + "id": "omni-582", + "image_file": "582.png", + "image_sha256": "17593851650531fd99adbf06aab0a73040a474beb9198327d42a0bb03bf22deb", + "sets_json_sha256": "17593851650531fd99adbf06aab0a73040a474beb9198327d42a0bb03bf22deb", + "qualified": true, + "format": "DELIVERY_NOTE" + }, + { + "id": "omni-583", + "image_file": "583.png", + "image_sha256": "0e5e732055d118902ee874d50e7cc5fbeef2779de30a550acc528b3acb6e208b", + "sets_json_sha256": "0e5e732055d118902ee874d50e7cc5fbeef2779de30a550acc528b3acb6e208b", + "qualified": true, + "format": "PAY_IN_SHEET" + }, + { + "id": "omni-584", + "image_file": "584.png", + "image_sha256": "3d58c651b6374cc9dcd5aa32bed3776bbda6828bdcaf2ddacf86110056494c6a", + "sets_json_sha256": "3d58c651b6374cc9dcd5aa32bed3776bbda6828bdcaf2ddacf86110056494c6a", + "qualified": true, + "format": "PROXY_VOTING" + }, + { + "id": "omni-587", + "image_file": "587.png", + "image_sha256": "24b3e2f24ec58bbb64c9c653e00c76411cdc15e5f0a4400ea3ecf5d3f701d032", + "sets_json_sha256": "24b3e2f24ec58bbb64c9c653e00c76411cdc15e5f0a4400ea3ecf5d3f701d032", + "qualified": true, + "format": "PAY_IN_SHEET" + }, + { + "id": "omni-589", + "image_file": "589.png", + "image_sha256": "67078fe88a064ff524024ce1a20c9c6c12fee4d423728f9f57eaa00419bbf76f", + "sets_json_sha256": "67078fe88a064ff524024ce1a20c9c6c12fee4d423728f9f57eaa00419bbf76f", + "qualified": true, + "format": "REAL_ESTATE" + }, + { + "id": "omni-59", + "image_file": "59.jpg", + "image_sha256": "9aa34726df4856aa37ebb66c5eda99c1a49bb10242f74b11c1ca4c0d92dafee2", + "sets_json_sha256": "9aa34726df4856aa37ebb66c5eda99c1a49bb10242f74b11c1ca4c0d92dafee2", + "qualified": true, + "format": "PHOTO_RECEIPT" + }, + { + "id": "omni-590", + "image_file": "590.png", + "image_sha256": "8eec0a1e983b0844d6766fe92fbd0e2e968aef55b1072a622b5d460ad73c8b8e", + "sets_json_sha256": "8eec0a1e983b0844d6766fe92fbd0e2e968aef55b1072a622b5d460ad73c8b8e", + "qualified": true, + "format": "SHIPPING_INVOICE" + }, + { + "id": "omni-592", + "image_file": "592.png", + "image_sha256": "c23e9da78f467a227d5d4bf6e2ff910a862d8e4876826613c7841b098209defd", + "sets_json_sha256": "c23e9da78f467a227d5d4bf6e2ff910a862d8e4876826613c7841b098209defd", + "qualified": true, + "format": "CREDIT_CARD_STATEMENT" + }, + { + "id": "omni-594", + "image_file": "594.png", + "image_sha256": "dbe9cc5dd6adcf887c0f52a1ec493544713202df08b6656b7100d66f315491d2", + "sets_json_sha256": "dbe9cc5dd6adcf887c0f52a1ec493544713202df08b6656b7100d66f315491d2", + "qualified": true, + "format": "REAL_ESTATE" + }, + { + "id": "omni-595", + "image_file": "595.png", + "image_sha256": "1e1caf7c89f0f58783c493e781ba887a39d59095f5b1c31906b101835501e2fc", + "sets_json_sha256": "1e1caf7c89f0f58783c493e781ba887a39d59095f5b1c31906b101835501e2fc", + "qualified": true, + "format": "PATIENT_INTAKE" + }, + { + "id": "omni-596", + "image_file": "596.png", + "image_sha256": "b774c66053481707cc3ced7fa80ce12d4ac44e8f70baaf4da2e64eed0f009f03", + "sets_json_sha256": "b774c66053481707cc3ced7fa80ce12d4ac44e8f70baaf4da2e64eed0f009f03", + "qualified": true, + "format": "COMMERCIAL_LEASE_AGREEMENT" + }, + { + "id": "omni-598", + "image_file": "598.png", + "image_sha256": "3365a778bc615a68ae5e4ccaa998936150c19c2897a9d2f3ae5d3821273db46d", + "sets_json_sha256": "3365a778bc615a68ae5e4ccaa998936150c19c2897a9d2f3ae5d3821273db46d", + "qualified": true, + "format": "CREDIT_CARD_STATEMENT" + }, + { + "id": "omni-599", + "image_file": "599.png", + "image_sha256": "1aaa4dc71efd050f0f03605251034dc479ca1acca9ecbe52c947de9033800ee7", + "sets_json_sha256": "1aaa4dc71efd050f0f03605251034dc479ca1acca9ecbe52c947de9033800ee7", + "qualified": true, + "format": "REAL_ESTATE" + }, + { + "id": "omni-600", + "image_file": "600.png", + "image_sha256": "1a460782388f1390b5f50fe00ab959b661d0a32cedc7fcd227c9e091bab9f649", + "sets_json_sha256": "1a460782388f1390b5f50fe00ab959b661d0a32cedc7fcd227c9e091bab9f649", + "qualified": true, + "format": "PROXY_VOTING" + }, + { + "id": "omni-601", + "image_file": "601.png", + "image_sha256": "2cd3a2f10849452caf1a377664ad22a1506d1fb39d745200024b2c51676c72fe", + "sets_json_sha256": "2cd3a2f10849452caf1a377664ad22a1506d1fb39d745200024b2c51676c72fe", + "qualified": true, + "format": "SHIPPING_INVOICE" + }, + { + "id": "omni-602", + "image_file": "602.png", + "image_sha256": "c947afdd34545848a7973b5791a1c672209cbcd37d7bcb7295dda2875202dab9", + "sets_json_sha256": "c947afdd34545848a7973b5791a1c672209cbcd37d7bcb7295dda2875202dab9", + "qualified": true, + "format": "COMMERCIAL_LEASE_AGREEMENT" + }, + { + "id": "omni-604", + "image_file": "604.png", + "image_sha256": "57319bd3156330dd416b3390f49312754cc43ff21270074986c3c4719be15fa6", + "sets_json_sha256": "57319bd3156330dd416b3390f49312754cc43ff21270074986c3c4719be15fa6", + "qualified": true, + "format": "SHIPPING_INVOICE" + }, + { + "id": "omni-605", + "image_file": "605.png", + "image_sha256": "0f6a190871834a8338fa0aed79a3644097f573f7a6baf6bf94b0aea1ae25bbe3", + "sets_json_sha256": "0f6a190871834a8338fa0aed79a3644097f573f7a6baf6bf94b0aea1ae25bbe3", + "qualified": true, + "format": "SHIPPING_INVOICE" + }, + { + "id": "omni-606", + "image_file": "606.png", + "image_sha256": "8659a55d463a3e8f5fce22d23dd43ef0dbf7c58eb552b30e0f4eb12cc697b574", + "sets_json_sha256": "8659a55d463a3e8f5fce22d23dd43ef0dbf7c58eb552b30e0f4eb12cc697b574", + "qualified": true, + "format": "BANK_CHECK" + }, + { + "id": "omni-609", + "image_file": "609.png", + "image_sha256": "fea2fc9c2486039c3ef9f05f5654a495503659ffe0a37146f3654b4c89f983d4", + "sets_json_sha256": "fea2fc9c2486039c3ef9f05f5654a495503659ffe0a37146f3654b4c89f983d4", + "qualified": true, + "format": "DELIVERY_NOTE" + }, + { + "id": "omni-611", + "image_file": "611.png", + "image_sha256": "0e517cd57a97f0676914e0498bb38d5ba6f009f61fa25c9cc5f69249e2242d28", + "sets_json_sha256": "0e517cd57a97f0676914e0498bb38d5ba6f009f61fa25c9cc5f69249e2242d28", + "qualified": true, + "format": "REAL_ESTATE" + }, + { + "id": "omni-612", + "image_file": "612.png", + "image_sha256": "c2682ddfc578e95ed366f29c5a269bdbc292b9a2f32fc1b9d8e2ecb920bdf9b3", + "sets_json_sha256": "c2682ddfc578e95ed366f29c5a269bdbc292b9a2f32fc1b9d8e2ecb920bdf9b3", + "qualified": true, + "format": "PAY_IN_SHEET" + }, + { + "id": "omni-614", + "image_file": "614.png", + "image_sha256": "3406051bccd1f28844dd1deccfe724779517aea2fdab32b12e9031f857ff3e08", + "sets_json_sha256": "3406051bccd1f28844dd1deccfe724779517aea2fdab32b12e9031f857ff3e08", + "qualified": true, + "format": "SHIPPING_INVOICE" + }, + { + "id": "omni-615", + "image_file": "615.png", + "image_sha256": "6b0dbf5334b65010606c54d4c7cb1392e15fab91a6860a984ffa28dbe30e4e23", + "sets_json_sha256": "6b0dbf5334b65010606c54d4c7cb1392e15fab91a6860a984ffa28dbe30e4e23", + "qualified": true, + "format": "EQUIPMENT_INSPECTION" + }, + { + "id": "omni-616", + "image_file": "616.png", + "image_sha256": "0cbda8f23ac63547b791d7625d496c7f50154b931482d8b7dbbd98f978282469", + "sets_json_sha256": "0cbda8f23ac63547b791d7625d496c7f50154b931482d8b7dbbd98f978282469", + "qualified": true, + "format": "DELIVERY_NOTE" + }, + { + "id": "omni-618", + "image_file": "618.png", + "image_sha256": "a56f0748efe469aee5c7d21076df9fb5b89a760e2f53d796661026d835fc623d", + "sets_json_sha256": "a56f0748efe469aee5c7d21076df9fb5b89a760e2f53d796661026d835fc623d", + "qualified": true, + "format": "BANK_CHECK" + }, + { + "id": "omni-619", + "image_file": "619.png", + "image_sha256": "69e7b506a70b0663a40d8ab9ab4c396b962b4920cf9fbf8ea30272dc77e81e84", + "sets_json_sha256": "69e7b506a70b0663a40d8ab9ab4c396b962b4920cf9fbf8ea30272dc77e81e84", + "qualified": true, + "format": "PROXY_VOTING" + }, + { + "id": "omni-62", + "image_file": "62.jpg", + "image_sha256": "d0e7a2b5ea35dddc9ee461fae551d7319002cce0e51104df648afa7be35c3707", + "sets_json_sha256": "d0e7a2b5ea35dddc9ee461fae551d7319002cce0e51104df648afa7be35c3707", + "qualified": true, + "format": "PHOTO_RECEIPT" + }, + { + "id": "omni-620", + "image_file": "620.png", + "image_sha256": "3a914a15c9ba780ca11948cf61efbb45be89df3390aeae413d3f1c17a203ca29", + "sets_json_sha256": "3a914a15c9ba780ca11948cf61efbb45be89df3390aeae413d3f1c17a203ca29", + "qualified": true, + "format": "PAY_IN_SHEET" + }, + { + "id": "omni-622", + "image_file": "622.png", + "image_sha256": "1ee3b11f55a97c0fd54c20f3aba4ddb72e7642588a943b39c70c659bb4b45e0f", + "sets_json_sha256": "1ee3b11f55a97c0fd54c20f3aba4ddb72e7642588a943b39c70c659bb4b45e0f", + "qualified": true, + "format": "SHIPPING_INVOICE" + }, + { + "id": "omni-623", + "image_file": "623.png", + "image_sha256": "60829168e2eff1273ed304b15c6e878e0fc46c19200cfdb9063ca948faf30515", + "sets_json_sha256": "60829168e2eff1273ed304b15c6e878e0fc46c19200cfdb9063ca948faf30515", + "qualified": true, + "format": "BANK_CHECK" + }, + { + "id": "omni-626", + "image_file": "626.png", + "image_sha256": "5a832dac557f914c441a140e705c3aa37a57f8e530ca8105abb2166b4f09d2af", + "sets_json_sha256": "5a832dac557f914c441a140e705c3aa37a57f8e530ca8105abb2166b4f09d2af", + "qualified": true, + "format": "BANK_CHECK" + }, + { + "id": "omni-628", + "image_file": "628.png", + "image_sha256": "a7703caeee886b8fcc3999b1041db29457dbc2bdc52675f7c5447e3243ba78a8", + "sets_json_sha256": "a7703caeee886b8fcc3999b1041db29457dbc2bdc52675f7c5447e3243ba78a8", + "qualified": true, + "format": "PROXY_VOTING" + }, + { + "id": "omni-629", + "image_file": "629.png", + "image_sha256": "77c73f7f728cb0aca57a5f9f115e8ddb1744afb7c01054d1b75807c8df131002", + "sets_json_sha256": "77c73f7f728cb0aca57a5f9f115e8ddb1744afb7c01054d1b75807c8df131002", + "qualified": true, + "format": "ACCOUNT_STATEMENT" + }, + { + "id": "omni-631", + "image_file": "631.png", + "image_sha256": "c8d55ca418d83bc1fe183fa4f9e27a40cb46e7bb96fe643eba7a6bd2802a8499", + "sets_json_sha256": "c8d55ca418d83bc1fe183fa4f9e27a40cb46e7bb96fe643eba7a6bd2802a8499", + "qualified": true, + "format": "PAY_IN_SHEET" + }, + { + "id": "omni-633", + "image_file": "633.png", + "image_sha256": "57bd4c8fb1a4acb76b95e482327aa5eb38a65b4ab70e30cd2527f463f2ad66d1", + "sets_json_sha256": "57bd4c8fb1a4acb76b95e482327aa5eb38a65b4ab70e30cd2527f463f2ad66d1", + "qualified": true, + "format": "SHIPPING_INVOICE" + }, + { + "id": "omni-635", + "image_file": "635.png", + "image_sha256": "42fcf087dd19d687c6a6b8103170210df87e7a0a9093098eeb36d03da0eea999", + "sets_json_sha256": "42fcf087dd19d687c6a6b8103170210df87e7a0a9093098eeb36d03da0eea999", + "qualified": true, + "format": "PAY_IN_SHEET" + }, + { + "id": "omni-639", + "image_file": "639.png", + "image_sha256": "f061d6be6a30715da31df9ff423c3155b273929eebc689756483b27cee19217f", + "sets_json_sha256": "f061d6be6a30715da31df9ff423c3155b273929eebc689756483b27cee19217f", + "qualified": true, + "format": "COMMERCIAL_LEASE_AGREEMENT" + }, + { + "id": "omni-64", + "image_file": "64.jpg", + "image_sha256": "9119b3484f7ffa3e2086752db573c4d9362145a2818c280609c77e6cce138778", + "sets_json_sha256": "9119b3484f7ffa3e2086752db573c4d9362145a2818c280609c77e6cce138778", + "qualified": true, + "format": "PATIENT_INTAKE" + }, + { + "id": "omni-640", + "image_file": "640.png", + "image_sha256": "02ade8fe3d60ec1e90fcbe4ff95a6a3b264c398e6ee5fe35898d7340068bd3fb", + "sets_json_sha256": "02ade8fe3d60ec1e90fcbe4ff95a6a3b264c398e6ee5fe35898d7340068bd3fb", + "qualified": true, + "format": "SHIPPING_INVOICE" + }, + { + "id": "omni-641", + "image_file": "641.png", + "image_sha256": "e01d9c12e4c51c586285a9313891887ac8876224c06d63e3cb33cdf2091472eb", + "sets_json_sha256": "e01d9c12e4c51c586285a9313891887ac8876224c06d63e3cb33cdf2091472eb", + "qualified": true, + "format": "CREDIT_CARD_STATEMENT" + }, + { + "id": "omni-642", + "image_file": "642.png", + "image_sha256": "d3501a115b18238b24df01bd20c46ad1f42942116d450d1004c490ddc674c296", + "sets_json_sha256": "d3501a115b18238b24df01bd20c46ad1f42942116d450d1004c490ddc674c296", + "qualified": true, + "format": "DELIVERY_NOTE" + }, + { + "id": "omni-644", + "image_file": "644.png", + "image_sha256": "006adf1ebf74611713d3f3c989414230b0d7cb502b34f0abba5a563496301667", + "sets_json_sha256": "006adf1ebf74611713d3f3c989414230b0d7cb502b34f0abba5a563496301667", + "qualified": true, + "format": "REAL_ESTATE" + }, + { + "id": "omni-645", + "image_file": "645.png", + "image_sha256": "21e44cf0d3e3a7ed5bcdfcc5c46a7d179920300ccd6c6af3a7f8404d7450b4ae", + "sets_json_sha256": "21e44cf0d3e3a7ed5bcdfcc5c46a7d179920300ccd6c6af3a7f8404d7450b4ae", + "qualified": true, + "format": "EQUIPMENT_INSPECTION" + }, + { + "id": "omni-646", + "image_file": "646.png", + "image_sha256": "56bb363a46d54bc21ed40a77a22ddda95a34515c6d19b7ccb88dc67edb522346", + "sets_json_sha256": "56bb363a46d54bc21ed40a77a22ddda95a34515c6d19b7ccb88dc67edb522346", + "qualified": true, + "format": "PROXY_VOTING" + }, + { + "id": "omni-647", + "image_file": "647.png", + "image_sha256": "d0109b3a68476d488cfb6c1dc7bd91ecb968b6bbef9a3490359703e5b986f349", + "sets_json_sha256": "d0109b3a68476d488cfb6c1dc7bd91ecb968b6bbef9a3490359703e5b986f349", + "qualified": true, + "format": "PATIENT_INTAKE" + }, + { + "id": "omni-648", + "image_file": "648.png", + "image_sha256": "d8ed29836c6529f6b7a700e70c9b9085e25ef1d68b1fa8dae01413d651c787cb", + "sets_json_sha256": "d8ed29836c6529f6b7a700e70c9b9085e25ef1d68b1fa8dae01413d651c787cb", + "qualified": true, + "format": "BANK_CHECK" + }, + { + "id": "omni-650", + "image_file": "650.png", + "image_sha256": "cd693b2d7a3f134af75b45ddbd42bbe50c57011c27722885de69907733d40670", + "sets_json_sha256": "cd693b2d7a3f134af75b45ddbd42bbe50c57011c27722885de69907733d40670", + "qualified": true, + "format": "REAL_ESTATE" + }, + { + "id": "omni-651", + "image_file": "651.png", + "image_sha256": "ab9f8a85392d32413e9f7f3ea8c5c674ac05890cf46b938e05c6e51cf71b05a1", + "sets_json_sha256": "ab9f8a85392d32413e9f7f3ea8c5c674ac05890cf46b938e05c6e51cf71b05a1", + "qualified": true, + "format": "ACCOUNT_STATEMENT" + }, + { + "id": "omni-652", + "image_file": "652.png", + "image_sha256": "06b42b4df96ffac139428bf7c234e6cfe13f483ffa69491b77af3968af06846b", + "sets_json_sha256": "06b42b4df96ffac139428bf7c234e6cfe13f483ffa69491b77af3968af06846b", + "qualified": true, + "format": "FORM_1040" + }, + { + "id": "omni-654", + "image_file": "654.png", + "image_sha256": "eff198e890779ae7c28f63b31c2ebe67ed190ff922ba6c58e978c5d0a8a31915", + "sets_json_sha256": "eff198e890779ae7c28f63b31c2ebe67ed190ff922ba6c58e978c5d0a8a31915", + "qualified": true, + "format": "PETITION_FORM" + }, + { + "id": "omni-655", + "image_file": "655.png", + "image_sha256": "952875784eb2c1560494ee7425ca5434e6813e4383d9838291e632c87e51e6b2", + "sets_json_sha256": "952875784eb2c1560494ee7425ca5434e6813e4383d9838291e632c87e51e6b2", + "qualified": true, + "format": "EQUIPMENT_INSPECTION" + }, + { + "id": "omni-656", + "image_file": "656.png", + "image_sha256": "fced2a79f14042565063f13d7ec3f26f5b108ca80356549685ea857501a82e2c", + "sets_json_sha256": "fced2a79f14042565063f13d7ec3f26f5b108ca80356549685ea857501a82e2c", + "qualified": true, + "format": "DELIVERY_NOTE" + }, + { + "id": "omni-657", + "image_file": "657.png", + "image_sha256": "12b67b30ff2047b9397d5aa23ab897819a2a8c392b35d6cd3e055e4fafbb0be4", + "sets_json_sha256": "12b67b30ff2047b9397d5aa23ab897819a2a8c392b35d6cd3e055e4fafbb0be4", + "qualified": true, + "format": "FORM_1040" + }, + { + "id": "omni-659", + "image_file": "659.png", + "image_sha256": "436abc8373a9594f039e538c7ceba39b041e2e7b7cbff162dfad875bcccf7790", + "sets_json_sha256": "436abc8373a9594f039e538c7ceba39b041e2e7b7cbff162dfad875bcccf7790", + "qualified": true, + "format": "EQUIPMENT_INSPECTION" + }, + { + "id": "omni-661", + "image_file": "661.png", + "image_sha256": "3346113daece1e4a203e1f0da418236b11231a59d279ae145b0baf2954be42df", + "sets_json_sha256": "3346113daece1e4a203e1f0da418236b11231a59d279ae145b0baf2954be42df", + "qualified": true, + "format": "SCANNED_FORM" + }, + { + "id": "omni-663", + "image_file": "663.png", + "image_sha256": "da029138234ef5bfb68cbace1bd5e57be728038967e8a738ef2393129c5e7c6a", + "sets_json_sha256": "da029138234ef5bfb68cbace1bd5e57be728038967e8a738ef2393129c5e7c6a", + "qualified": true, + "format": "PAY_IN_SHEET" + }, + { + "id": "omni-664", + "image_file": "664.jpg", + "image_sha256": "7557f02eac30e0e115a65109cdc7f56c7b8c3dd91e745d5bb7d8f3804da1fe2f", + "sets_json_sha256": "7557f02eac30e0e115a65109cdc7f56c7b8c3dd91e745d5bb7d8f3804da1fe2f", + "qualified": true, + "format": "PHOTO_RECEIPT" + }, + { + "id": "omni-665", + "image_file": "665.png", + "image_sha256": "8f96248293c66c84ef0f6f7078e1ba7ff21d7b33a29c39e74776ac7c0a60a31b", + "sets_json_sha256": "8f96248293c66c84ef0f6f7078e1ba7ff21d7b33a29c39e74776ac7c0a60a31b", + "qualified": true, + "format": "PETITION_FORM" + }, + { + "id": "omni-666", + "image_file": "666.png", + "image_sha256": "6e811adc92c13fb1d5525f702249a4615d8d77c9a66c34b2f8a061a00f3e9491", + "sets_json_sha256": "6e811adc92c13fb1d5525f702249a4615d8d77c9a66c34b2f8a061a00f3e9491", + "qualified": true, + "format": "EQUIPMENT_INSPECTION" + }, + { + "id": "omni-667", + "image_file": "667.png", + "image_sha256": "ae7b9a892dce1ce05b22ff312122deb21a208c65dd219dba018d065b5aca6b6c", + "sets_json_sha256": "ae7b9a892dce1ce05b22ff312122deb21a208c65dd219dba018d065b5aca6b6c", + "qualified": true, + "format": "REAL_ESTATE" + }, + { + "id": "omni-668", + "image_file": "668.png", + "image_sha256": "e79eb2486712c45a027a7f3f21d75b501708e4b80df44e33cd0243a608f46820", + "sets_json_sha256": "e79eb2486712c45a027a7f3f21d75b501708e4b80df44e33cd0243a608f46820", + "qualified": true, + "format": "REAL_ESTATE" + }, + { + "id": "omni-669", + "image_file": "669.png", + "image_sha256": "38bdc3d1f61f84068a3cdea1ad980151c673f20fe36a9bcec5639f2eaa68f16c", + "sets_json_sha256": "38bdc3d1f61f84068a3cdea1ad980151c673f20fe36a9bcec5639f2eaa68f16c", + "qualified": true, + "format": "REAL_ESTATE" + }, + { + "id": "omni-670", + "image_file": "670.png", + "image_sha256": "b97bd50f13117c7d90e6ea12c4e56005e36783aef5220385bf275a503a5bb094", + "sets_json_sha256": "b97bd50f13117c7d90e6ea12c4e56005e36783aef5220385bf275a503a5bb094", + "qualified": true, + "format": "PETITION_FORM" + }, + { + "id": "omni-671", + "image_file": "671.png", + "image_sha256": "63893f67adc2aa521e8651e798d729d8d70cf43ed01cc3d928c0536a3e662514", + "sets_json_sha256": "63893f67adc2aa521e8651e798d729d8d70cf43ed01cc3d928c0536a3e662514", + "qualified": true, + "format": "EQUIPMENT_INSPECTION" + }, + { + "id": "omni-673", + "image_file": "673.png", + "image_sha256": "dede4939ce2dbd54f56500005e727bdf8e7dba2abdf0414b891b72b69a477230", + "sets_json_sha256": "dede4939ce2dbd54f56500005e727bdf8e7dba2abdf0414b891b72b69a477230", + "qualified": true, + "format": "CREDIT_CARD_STATEMENT" + }, + { + "id": "omni-674", + "image_file": "674.png", + "image_sha256": "7309028a0ffff01484e845a13c096ab3912091be25ac99d79db7a5b09f40ee53", + "sets_json_sha256": "7309028a0ffff01484e845a13c096ab3912091be25ac99d79db7a5b09f40ee53", + "qualified": true, + "format": "FORM_1040" + }, + { + "id": "omni-676", + "image_file": "676.png", + "image_sha256": "7df945a6664a6a51b019bf9fdce0c9a8f8858c849988fdb72a4690ff5d14a254", + "sets_json_sha256": "7df945a6664a6a51b019bf9fdce0c9a8f8858c849988fdb72a4690ff5d14a254", + "qualified": true, + "format": "ACCOUNT_STATEMENT" + }, + { + "id": "omni-677", + "image_file": "677.png", + "image_sha256": "5507b06fbb461c9eb27d12681633c4e6724379207e52bad52739db4aedf26b6c", + "sets_json_sha256": "5507b06fbb461c9eb27d12681633c4e6724379207e52bad52739db4aedf26b6c", + "qualified": true, + "format": "PROXY_VOTING" + }, + { + "id": "omni-678", + "image_file": "678.png", + "image_sha256": "58b200292b469a69e442052cb5ce252d6af12ae152f6f65133fc4c0265b45d50", + "sets_json_sha256": "58b200292b469a69e442052cb5ce252d6af12ae152f6f65133fc4c0265b45d50", + "qualified": true, + "format": "PATIENT_INTAKE" + }, + { + "id": "omni-680", + "image_file": "680.png", + "image_sha256": "f169a3c8ce2a1f5a78895379ef18fe6aab5cf6a3aedfe7e41292fd0027f34bcc", + "sets_json_sha256": "f169a3c8ce2a1f5a78895379ef18fe6aab5cf6a3aedfe7e41292fd0027f34bcc", + "qualified": true, + "format": "COMMERCIAL_LEASE_AGREEMENT" + }, + { + "id": "omni-682", + "image_file": "682.png", + "image_sha256": "c48d7e2399f9b16fb7bc4bdede2f9637c250f68449e263159c2dcfc8224f6549", + "sets_json_sha256": "c48d7e2399f9b16fb7bc4bdede2f9637c250f68449e263159c2dcfc8224f6549", + "qualified": true, + "format": "PETITION_FORM" + }, + { + "id": "omni-685", + "image_file": "685.png", + "image_sha256": "6d463f67b231774ec781a730931786e6b2f36af420d5145c5068befa94c62455", + "sets_json_sha256": "6d463f67b231774ec781a730931786e6b2f36af420d5145c5068befa94c62455", + "qualified": true, + "format": "EQUIPMENT_INSPECTION" + }, + { + "id": "omni-686", + "image_file": "686.png", + "image_sha256": "a0d89b1d8a503d8fddc257f72b1fb3bfa17867a9e9294a2534763868cb6d5ecd", + "sets_json_sha256": "a0d89b1d8a503d8fddc257f72b1fb3bfa17867a9e9294a2534763868cb6d5ecd", + "qualified": true, + "format": "PAY_IN_SHEET" + }, + { + "id": "omni-688", + "image_file": "688.png", + "image_sha256": "0673b877fd36e4ad7ab809607c103c93931c87dfe9bd9df283b32a19c310ca3a", + "sets_json_sha256": "0673b877fd36e4ad7ab809607c103c93931c87dfe9bd9df283b32a19c310ca3a", + "qualified": true, + "format": "DELIVERY_NOTE" + }, + { + "id": "omni-689", + "image_file": "689.png", + "image_sha256": "09d524d8f46411d5e21ad4d046753891cbe56ca5a13d041aa5eff3e818fdc1fb", + "sets_json_sha256": "09d524d8f46411d5e21ad4d046753891cbe56ca5a13d041aa5eff3e818fdc1fb", + "qualified": true, + "format": "REAL_ESTATE" + }, + { + "id": "omni-691", + "image_file": "691.png", + "image_sha256": "24f739b46db477f528d548bc8f7874935555311f263ec00c72a3beffea6c2c0f", + "sets_json_sha256": "24f739b46db477f528d548bc8f7874935555311f263ec00c72a3beffea6c2c0f", + "qualified": true, + "format": "BANK_CHECK" + }, + { + "id": "omni-693", + "image_file": "693.png", + "image_sha256": "bbb079374d48238a688bbacb5f6f99659cfe98173038de9bd14a8ba9846eaa28", + "sets_json_sha256": "bbb079374d48238a688bbacb5f6f99659cfe98173038de9bd14a8ba9846eaa28", + "qualified": true, + "format": "ACCOUNT_STATEMENT" + }, + { + "id": "omni-695", + "image_file": "695.png", + "image_sha256": "b6d5ea8c72714d1d14b3726a1d3983d6cc8527f4d04cb2410a3d8b92ee67d4db", + "sets_json_sha256": "b6d5ea8c72714d1d14b3726a1d3983d6cc8527f4d04cb2410a3d8b92ee67d4db", + "qualified": true, + "format": "DELIVERY_NOTE" + }, + { + "id": "omni-697", + "image_file": "697.png", + "image_sha256": "7957a7b2f9b3eabe2c7f83ef1f66c0c56848bc24460618f10b1f47af699d7de6", + "sets_json_sha256": "7957a7b2f9b3eabe2c7f83ef1f66c0c56848bc24460618f10b1f47af699d7de6", + "qualified": true, + "format": "REAL_ESTATE" + }, + { + "id": "omni-698", + "image_file": "698.png", + "image_sha256": "f5698e72d9fc8e3a4b0481a2a7792df23e85d8a00bbb8df305bafed833d34309", + "sets_json_sha256": "f5698e72d9fc8e3a4b0481a2a7792df23e85d8a00bbb8df305bafed833d34309", + "qualified": true, + "format": "DELIVERY_NOTE" + }, + { + "id": "omni-699", + "image_file": "699.png", + "image_sha256": "bbfc7c53337f3e38a13a1ea748dff55ed0aa92e46f25bf8af76ec1bc61e3b2a0", + "sets_json_sha256": "bbfc7c53337f3e38a13a1ea748dff55ed0aa92e46f25bf8af76ec1bc61e3b2a0", + "qualified": true, + "format": "SHIPPING_INVOICE" + }, + { + "id": "omni-7", + "image_file": "7.png", + "image_sha256": "4f0f7489c24670cb0c7e9365b5aff1ae7b772476bd5015d0d3e1db78423b86ef", + "sets_json_sha256": "4f0f7489c24670cb0c7e9365b5aff1ae7b772476bd5015d0d3e1db78423b86ef", + "qualified": true, + "format": "DRIVER_LICENSE" + }, + { + "id": "omni-70", + "image_file": "70.png", + "image_sha256": "e164f60332723630bfcef534512b99995540868d5045dcd3b5330dd25a9b5071", + "sets_json_sha256": "e164f60332723630bfcef534512b99995540868d5045dcd3b5330dd25a9b5071", + "qualified": true, + "format": "EQUIPMENT_INSPECTION" + }, + { + "id": "omni-701", + "image_file": "701.png", + "image_sha256": "bee68eb3bf8a8342d50b293e981ab4db695d5d94f7a0a9fd466cbc5dc6ea617e", + "sets_json_sha256": "bee68eb3bf8a8342d50b293e981ab4db695d5d94f7a0a9fd466cbc5dc6ea617e", + "qualified": true, + "format": "COMMERCIAL_LEASE_AGREEMENT" + }, + { + "id": "omni-702", + "image_file": "702.png", + "image_sha256": "3a183c3801713db1e9af4bdfcdc970fe5d202702478a094415ed8eb5798517ba", + "sets_json_sha256": "3a183c3801713db1e9af4bdfcdc970fe5d202702478a094415ed8eb5798517ba", + "qualified": true, + "format": "REAL_ESTATE" + }, + { + "id": "omni-703", + "image_file": "703.png", + "image_sha256": "adb7de54c9f3d373bbae15a28ffe506e9eb4eed9c9c3018cc85209541ca9d1c9", + "sets_json_sha256": "adb7de54c9f3d373bbae15a28ffe506e9eb4eed9c9c3018cc85209541ca9d1c9", + "qualified": true, + "format": "DRIVER_LICENSE" + }, + { + "id": "omni-706", + "image_file": "706.png", + "image_sha256": "26d9120f9965a2591765faea1de3c63490c5af6985ff92c0b33360e465b79663", + "sets_json_sha256": "26d9120f9965a2591765faea1de3c63490c5af6985ff92c0b33360e465b79663", + "qualified": true, + "format": "BANK_CHECK" + }, + { + "id": "omni-707", + "image_file": "707.png", + "image_sha256": "692eec96971d867ea84520444695cba313b0c196e920b4029c7387a216d8f2d7", + "sets_json_sha256": "692eec96971d867ea84520444695cba313b0c196e920b4029c7387a216d8f2d7", + "qualified": true, + "format": "BANK_CHECK" + }, + { + "id": "omni-708", + "image_file": "708.png", + "image_sha256": "3a17a07b7379b5e5242be211fb5e0add37b9b3f942579b9a51233e1afcbf0b04", + "sets_json_sha256": "3a17a07b7379b5e5242be211fb5e0add37b9b3f942579b9a51233e1afcbf0b04", + "qualified": true, + "format": "SHIPPING_INVOICE" + }, + { + "id": "omni-71", + "image_file": "71.png", + "image_sha256": "743f3c1f0018978c3a95fbfb27a5db8bcbdd0d32bd2d0f5717716a2bfd4b9690", + "sets_json_sha256": "743f3c1f0018978c3a95fbfb27a5db8bcbdd0d32bd2d0f5717716a2bfd4b9690", + "qualified": true, + "format": "PATIENT_INTAKE" + }, + { + "id": "omni-710", + "image_file": "710.png", + "image_sha256": "53adcb9b182a60ee1eae5527162e744a7f81f7b91abb9b3ef307f7bd85b0c495", + "sets_json_sha256": "53adcb9b182a60ee1eae5527162e744a7f81f7b91abb9b3ef307f7bd85b0c495", + "qualified": true, + "format": "CREDIT_CARD_STATEMENT" + }, + { + "id": "omni-711", + "image_file": "711.png", + "image_sha256": "71675877375d3729ae11432cd1ee3791d097b9ab8e586e2a89baea69267810a1", + "sets_json_sha256": "71675877375d3729ae11432cd1ee3791d097b9ab8e586e2a89baea69267810a1", + "qualified": true, + "format": "ACCOUNT_STATEMENT" + }, + { + "id": "omni-712", + "image_file": "712.png", + "image_sha256": "a6c201b14532b634c576e4c1a4c51881bb9f105b94aca45e79eb0831b368c71a", + "sets_json_sha256": "a6c201b14532b634c576e4c1a4c51881bb9f105b94aca45e79eb0831b368c71a", + "qualified": true, + "format": "FORM_1040" + }, + { + "id": "omni-713", + "image_file": "713.png", + "image_sha256": "4e987d35c9c9e9bc5e9a6c553df5f77076d5f947b9baf0f4298d3c5ee0b29971", + "sets_json_sha256": "4e987d35c9c9e9bc5e9a6c553df5f77076d5f947b9baf0f4298d3c5ee0b29971", + "qualified": true, + "format": "EQUIPMENT_INSPECTION" + }, + { + "id": "omni-717", + "image_file": "717.png", + "image_sha256": "f23948cd1e666a1f2ca9d4c5f89174f03b14b70762074804989afe7fb4846c20", + "sets_json_sha256": "f23948cd1e666a1f2ca9d4c5f89174f03b14b70762074804989afe7fb4846c20", + "qualified": true, + "format": "ACCOUNT_STATEMENT" + }, + { + "id": "omni-718", + "image_file": "718.png", + "image_sha256": "fdc66a9c66871c545c59a65a7068ba122f097bf2c138e72fb7c640b1e8b2ef47", + "sets_json_sha256": "fdc66a9c66871c545c59a65a7068ba122f097bf2c138e72fb7c640b1e8b2ef47", + "qualified": true, + "format": "PETITION_FORM" + }, + { + "id": "omni-719", + "image_file": "719.png", + "image_sha256": "f39ae7a1c02eb7d736b2e6707fab468e4b10f3523a3073e97589d6833797f2ce", + "sets_json_sha256": "f39ae7a1c02eb7d736b2e6707fab468e4b10f3523a3073e97589d6833797f2ce", + "qualified": true, + "format": "DELIVERY_NOTE" + }, + { + "id": "omni-72", + "image_file": "72.png", + "image_sha256": "9fecd1f32c95a671625b3795131bb6c97f04b37835cafc68cf490832933622ac", + "sets_json_sha256": "9fecd1f32c95a671625b3795131bb6c97f04b37835cafc68cf490832933622ac", + "qualified": true, + "format": "PETITION_FORM" + }, + { + "id": "omni-723", + "image_file": "723.png", + "image_sha256": "a558b62e63d67f3b7cd687e3bdfc6309e857c028716f9f1a973ac84c9655a670", + "sets_json_sha256": "a558b62e63d67f3b7cd687e3bdfc6309e857c028716f9f1a973ac84c9655a670", + "qualified": true, + "format": "ACCOUNT_STATEMENT" + }, + { + "id": "omni-724", + "image_file": "724.png", + "image_sha256": "5348da0a6c2ba1a2703257ba6d70fccf55d9b36cebedd30a0b16cb5d92f10bb3", + "sets_json_sha256": "5348da0a6c2ba1a2703257ba6d70fccf55d9b36cebedd30a0b16cb5d92f10bb3", + "qualified": true, + "format": "FORM" + }, + { + "id": "omni-725", + "image_file": "725.png", + "image_sha256": "ee6a322b40ca61745b2980e0955c50e4cd867f9ec5f8ccc82b56c026c397d684", + "sets_json_sha256": "ee6a322b40ca61745b2980e0955c50e4cd867f9ec5f8ccc82b56c026c397d684", + "qualified": true, + "format": "CREDIT_CARD_STATEMENT" + }, + { + "id": "omni-727", + "image_file": "727.png", + "image_sha256": "18a9809fa5dffae02d22c972bc5626aa1fd83bede91eada9059f5bb743c48879", + "sets_json_sha256": "18a9809fa5dffae02d22c972bc5626aa1fd83bede91eada9059f5bb743c48879", + "qualified": true, + "format": "FORM_1040" + }, + { + "id": "omni-73", + "image_file": "73.png", + "image_sha256": "9165218b9ac92eaf74777d6b60663f0238dcf0bbee48e430c263dcae3c392c14", + "sets_json_sha256": "9165218b9ac92eaf74777d6b60663f0238dcf0bbee48e430c263dcae3c392c14", + "qualified": true, + "format": "SHIPPING_INVOICE" + }, + { + "id": "omni-732", + "image_file": "732.png", + "image_sha256": "4a4177dc5a9181ee958d057334d737ae8f5914e2a54bc9e560eb8717245ea95c", + "sets_json_sha256": "4a4177dc5a9181ee958d057334d737ae8f5914e2a54bc9e560eb8717245ea95c", + "qualified": true, + "format": "PETITION_FORM" + }, + { + "id": "omni-735", + "image_file": "735.png", + "image_sha256": "b539cbc0d3209d370ec27010e0b3ffdeab3a86dcbf20a08580619f39bd325197", + "sets_json_sha256": "b539cbc0d3209d370ec27010e0b3ffdeab3a86dcbf20a08580619f39bd325197", + "qualified": true, + "format": "EQUIPMENT_INSPECTION" + }, + { + "id": "omni-736", + "image_file": "736.png", + "image_sha256": "5f3a880b66d5ec265d37fc53dee5946dcf6d7affb1d6fe0f6fdbaf95fe5dd541", + "sets_json_sha256": "5f3a880b66d5ec265d37fc53dee5946dcf6d7affb1d6fe0f6fdbaf95fe5dd541", + "qualified": true, + "format": "ACCOUNT_STATEMENT" + }, + { + "id": "omni-738", + "image_file": "738.png", + "image_sha256": "a801e05b3e44e3fdfe137773b643d81143c894d8cad85e539912bea0d06882f6", + "sets_json_sha256": "a801e05b3e44e3fdfe137773b643d81143c894d8cad85e539912bea0d06882f6", + "qualified": true, + "format": "ACCOUNT_STATEMENT" + }, + { + "id": "omni-739", + "image_file": "739.png", + "image_sha256": "08b5df55de9aa2bb3b49644a6c8ad58a7701a2a872f9359d11c325b6ad076766", + "sets_json_sha256": "08b5df55de9aa2bb3b49644a6c8ad58a7701a2a872f9359d11c325b6ad076766", + "qualified": true, + "format": "PETITION_FORM" + }, + { + "id": "omni-743", + "image_file": "743.png", + "image_sha256": "cde0e3008ee74c83453fdd3469225cbb30ed9b3da08eed5f9ead8736466b6d1e", + "sets_json_sha256": "cde0e3008ee74c83453fdd3469225cbb30ed9b3da08eed5f9ead8736466b6d1e", + "qualified": true, + "format": "PATIENT_INTAKE" + }, + { + "id": "omni-744", + "image_file": "744.png", + "image_sha256": "5d5aa13008741e907a74ce6ab041f4636e4d3e36951395b7026ac55483d03775", + "sets_json_sha256": "5d5aa13008741e907a74ce6ab041f4636e4d3e36951395b7026ac55483d03775", + "qualified": true, + "format": "EQUIPMENT_INSPECTION" + }, + { + "id": "omni-745", + "image_file": "745.png", + "image_sha256": "945456936d04cadc5e7f8d189ddb428bb9d626bfb809d6d2ea8edf3ad3f3bb7f", + "sets_json_sha256": "945456936d04cadc5e7f8d189ddb428bb9d626bfb809d6d2ea8edf3ad3f3bb7f", + "qualified": true, + "format": "PAY_IN_SHEET" + }, + { + "id": "omni-748", + "image_file": "748.png", + "image_sha256": "06a95dab5ea1dbab50221f9f5444c0a7d44d2276a3174034eba9c645c2f817ac", + "sets_json_sha256": "06a95dab5ea1dbab50221f9f5444c0a7d44d2276a3174034eba9c645c2f817ac", + "qualified": true, + "format": "PAY_IN_SHEET" + }, + { + "id": "omni-749", + "image_file": "749.png", + "image_sha256": "c5a90f80e97ed9f745609e873a67e3d56d408210f478fe4b95df336243a931c9", + "sets_json_sha256": "c5a90f80e97ed9f745609e873a67e3d56d408210f478fe4b95df336243a931c9", + "qualified": true, + "format": "SHIPPING_INVOICE" + }, + { + "id": "omni-750", + "image_file": "750.png", + "image_sha256": "b20b052bf3bc3d82c92c9c67c969357384b0e0567762fb762bf09a9a0601a175", + "sets_json_sha256": "b20b052bf3bc3d82c92c9c67c969357384b0e0567762fb762bf09a9a0601a175", + "qualified": true, + "format": "PAY_IN_SHEET" + }, + { + "id": "omni-751", + "image_file": "751.png", + "image_sha256": "75acd7022d841a806f2ae6b71f01da80901978d0858beded33ebca23dcf67cc7", + "sets_json_sha256": "75acd7022d841a806f2ae6b71f01da80901978d0858beded33ebca23dcf67cc7", + "qualified": true, + "format": "BANK_CHECK" + }, + { + "id": "omni-752", + "image_file": "752.png", + "image_sha256": "ce777215a385afcc94975c8d3a7bf60df52342b18fdcb805ee1f4ca3410088ad", + "sets_json_sha256": "ce777215a385afcc94975c8d3a7bf60df52342b18fdcb805ee1f4ca3410088ad", + "qualified": true, + "format": "FORM_1040" + }, + { + "id": "omni-753", + "image_file": "753.png", + "image_sha256": "71694a7e9ed51b21465a9a1f04fa8393c907ad0cf543989422e51df52b42aa64", + "sets_json_sha256": "71694a7e9ed51b21465a9a1f04fa8393c907ad0cf543989422e51df52b42aa64", + "qualified": true, + "format": "PATIENT_INTAKE" + }, + { + "id": "omni-754", + "image_file": "754.png", + "image_sha256": "e4900634c9e6c602db7bd0bac764f22d0ba0cd1cbad3d90e8d1734a5ef1a6e62", + "sets_json_sha256": "e4900634c9e6c602db7bd0bac764f22d0ba0cd1cbad3d90e8d1734a5ef1a6e62", + "qualified": true, + "format": "COMMERCIAL_LEASE_AGREEMENT" + }, + { + "id": "omni-755", + "image_file": "755.png", + "image_sha256": "89987d83e2ee7b690708c04c0d003ce1fc19f7b0d84cbed35ccaab3d95310c1a", + "sets_json_sha256": "89987d83e2ee7b690708c04c0d003ce1fc19f7b0d84cbed35ccaab3d95310c1a", + "qualified": true, + "format": "REAL_ESTATE" + }, + { + "id": "omni-756", + "image_file": "756.png", + "image_sha256": "d75023471c9bca800011f0c0ab5d5cf6d001d83ef35305b6c07d90be35d08264", + "sets_json_sha256": "d75023471c9bca800011f0c0ab5d5cf6d001d83ef35305b6c07d90be35d08264", + "qualified": true, + "format": "COMMERCIAL_LEASE_AGREEMENT" + }, + { + "id": "omni-76", + "image_file": "76.png", + "image_sha256": "794d29338520f60fe5a1f4abf3b75eb3eeeeff2ff70e5983c15bf6d3654f008d", + "sets_json_sha256": "794d29338520f60fe5a1f4abf3b75eb3eeeeff2ff70e5983c15bf6d3654f008d", + "qualified": true, + "format": "EQUIPMENT_INSPECTION" + }, + { + "id": "omni-762", + "image_file": "762.png", + "image_sha256": "e25d81c9f7b8f0ead7b2a6453ed89c28a686321245b6004b71d775dcc24b84ce", + "sets_json_sha256": "e25d81c9f7b8f0ead7b2a6453ed89c28a686321245b6004b71d775dcc24b84ce", + "qualified": true, + "format": "FORM_1040" + }, + { + "id": "omni-763", + "image_file": "763.png", + "image_sha256": "2bad9d882537f503db3533969061112156e6f2a407aa4b414ac39571d7108734", + "sets_json_sha256": "2bad9d882537f503db3533969061112156e6f2a407aa4b414ac39571d7108734", + "qualified": true, + "format": "BANK_CHECK" + }, + { + "id": "omni-764", + "image_file": "764.png", + "image_sha256": "9e96d8f0bf5530fb74956402e5b24c821f9a4a2a7fa8f5905229dbe4fbc5f693", + "sets_json_sha256": "9e96d8f0bf5530fb74956402e5b24c821f9a4a2a7fa8f5905229dbe4fbc5f693", + "qualified": true, + "format": "PATIENT_INTAKE" + }, + { + "id": "omni-765", + "image_file": "765.png", + "image_sha256": "5a368ef88b94db5d705c70d6ebc98b7596f86f047ddaa87de46304705b634dc8", + "sets_json_sha256": "5a368ef88b94db5d705c70d6ebc98b7596f86f047ddaa87de46304705b634dc8", + "qualified": true, + "format": "ACCOUNT_STATEMENT" + }, + { + "id": "omni-767", + "image_file": "767.png", + "image_sha256": "9f24270fc54a37bc6a9dda18e6aa93d227f0563d55df3a884debc264d155f44e", + "sets_json_sha256": "9f24270fc54a37bc6a9dda18e6aa93d227f0563d55df3a884debc264d155f44e", + "qualified": true, + "format": "DELIVERY_NOTE" + }, + { + "id": "omni-77", + "image_file": "77.png", + "image_sha256": "b52160ba1224f045985eacd2362ee16c0004e09d931c230b2242ce1f64dddb3b", + "sets_json_sha256": "b52160ba1224f045985eacd2362ee16c0004e09d931c230b2242ce1f64dddb3b", + "qualified": true, + "format": "PETITION_FORM" + }, + { + "id": "omni-770", + "image_file": "770.png", + "image_sha256": "13610c5a019f20aa2e009092ce95bad94f29e8b955d9cf5ef3c64a1c43ed49ce", + "sets_json_sha256": "13610c5a019f20aa2e009092ce95bad94f29e8b955d9cf5ef3c64a1c43ed49ce", + "qualified": true, + "format": "PROXY_VOTING" + }, + { + "id": "omni-771", + "image_file": "771.png", + "image_sha256": "91aef1a6a9b1ed8b9bf6aa8c25006dc773d6df5f66a9f951b974d68d77cdb8c2", + "sets_json_sha256": "91aef1a6a9b1ed8b9bf6aa8c25006dc773d6df5f66a9f951b974d68d77cdb8c2", + "qualified": true, + "format": "PETITION_FORM" + }, + { + "id": "omni-785", + "image_file": "785.png", + "image_sha256": "b35a59fc04b4bd20517d374da7e67c18305ae024c1d7ffc29ad11a17a9137871", + "sets_json_sha256": "b35a59fc04b4bd20517d374da7e67c18305ae024c1d7ffc29ad11a17a9137871", + "qualified": true, + "format": "PATIENT_INTAKE" + }, + { + "id": "omni-786", + "image_file": "786.png", + "image_sha256": "0cf76b2e37eb7de89e1f217235bbe7433a6ee2ea34f21302307a1a59cdc97bf2", + "sets_json_sha256": "0cf76b2e37eb7de89e1f217235bbe7433a6ee2ea34f21302307a1a59cdc97bf2", + "qualified": true, + "format": "COMMERCIAL_LEASE_AGREEMENT" + }, + { + "id": "omni-788", + "image_file": "788.png", + "image_sha256": "8272d96c8391017a534743cf00448c27709d265d045a7602e3d56b4f0c0480fc", + "sets_json_sha256": "8272d96c8391017a534743cf00448c27709d265d045a7602e3d56b4f0c0480fc", + "qualified": true, + "format": "ACCOUNT_STATEMENT" + }, + { + "id": "omni-789", + "image_file": "789.png", + "image_sha256": "eed1af1a6bc080dcb1bb6371bfb47a62c6931318e32af6406957adb60106fab5", + "sets_json_sha256": "eed1af1a6bc080dcb1bb6371bfb47a62c6931318e32af6406957adb60106fab5", + "qualified": true, + "format": "PATIENT_INTAKE" + }, + { + "id": "omni-79", + "image_file": "79.png", + "image_sha256": "cd076f7a4eb4da7b6e8850d8ec15504e416763b951df95b76e06c0c4daacdcbb", + "sets_json_sha256": "cd076f7a4eb4da7b6e8850d8ec15504e416763b951df95b76e06c0c4daacdcbb", + "qualified": true, + "format": "ACCOUNT_STATEMENT" + }, + { + "id": "omni-791", + "image_file": "791.png", + "image_sha256": "4e556763c56da320147528182f139b08ec15624ff3f6fc8747c475a9808d4a7d", + "sets_json_sha256": "4e556763c56da320147528182f139b08ec15624ff3f6fc8747c475a9808d4a7d", + "qualified": true, + "format": "PETITION_FORM" + }, + { + "id": "omni-792", + "image_file": "792.png", + "image_sha256": "2c6f00918e62751f1eed9bf7317ba8988b61f0df4a123a2c91b46c2b43822663", + "sets_json_sha256": "2c6f00918e62751f1eed9bf7317ba8988b61f0df4a123a2c91b46c2b43822663", + "qualified": true, + "format": "FORM_1040" + }, + { + "id": "omni-793", + "image_file": "793.png", + "image_sha256": "716888afc29e199f5c56c56dbea897420464adb82ec1fab68cd02bb63882bc23", + "sets_json_sha256": "716888afc29e199f5c56c56dbea897420464adb82ec1fab68cd02bb63882bc23", + "qualified": true, + "format": "COMMERCIAL_LEASE_AGREEMENT" + }, + { + "id": "omni-794", + "image_file": "794.png", + "image_sha256": "508cea5ac90a3588d3bdf9051e3e7300c0afb567d623274a95503ae996ee081f", + "sets_json_sha256": "508cea5ac90a3588d3bdf9051e3e7300c0afb567d623274a95503ae996ee081f", + "qualified": true, + "format": "FORM_1040" + }, + { + "id": "omni-795", + "image_file": "795.png", + "image_sha256": "def1de8e6e3e0aa77aa2fc52fdf38bc433dca5c0602b0c38d8f6b786b004d176", + "sets_json_sha256": "def1de8e6e3e0aa77aa2fc52fdf38bc433dca5c0602b0c38d8f6b786b004d176", + "qualified": true, + "format": "PROXY_VOTING" + }, + { + "id": "omni-798", + "image_file": "798.png", + "image_sha256": "02b807810e88962d53abbc3122e747abe9d6f602fa23ec18afd84107113af720", + "sets_json_sha256": "02b807810e88962d53abbc3122e747abe9d6f602fa23ec18afd84107113af720", + "qualified": true, + "format": "FORM_1040" + }, + { + "id": "omni-799", + "image_file": "799.png", + "image_sha256": "336fea21c795c6dfd6789c77af4322f1452e36285419925668b9f87031b392e1", + "sets_json_sha256": "336fea21c795c6dfd6789c77af4322f1452e36285419925668b9f87031b392e1", + "qualified": true, + "format": "REAL_ESTATE" + }, + { + "id": "omni-800", + "image_file": "800.png", + "image_sha256": "3f864f0a08bfe179a629d0e1cbd6f915d4a4244c96279be0ce88489754f6376b", + "sets_json_sha256": "3f864f0a08bfe179a629d0e1cbd6f915d4a4244c96279be0ce88489754f6376b", + "qualified": true, + "format": "PATIENT_INTAKE" + }, + { + "id": "omni-801", + "image_file": "801.png", + "image_sha256": "11751d9aff136de9b9a7fbcb6ab03c7b819869b81179bea452ce1ef00290a6ed", + "sets_json_sha256": "11751d9aff136de9b9a7fbcb6ab03c7b819869b81179bea452ce1ef00290a6ed", + "qualified": true, + "format": "PATIENT_INTAKE" + }, + { + "id": "omni-802", + "image_file": "802.png", + "image_sha256": "79d53830313a528466dde29fd195587d5708e97b5ca7d6f79846c7426951be83", + "sets_json_sha256": "79d53830313a528466dde29fd195587d5708e97b5ca7d6f79846c7426951be83", + "qualified": true, + "format": "EQUIPMENT_INSPECTION" + }, + { + "id": "omni-803", + "image_file": "803.png", + "image_sha256": "0ed7c026eece08e72abdeaf5e7e83386184e0c772750920b716f499ab22be8ff", + "sets_json_sha256": "0ed7c026eece08e72abdeaf5e7e83386184e0c772750920b716f499ab22be8ff", + "qualified": true, + "format": "REAL_ESTATE" + }, + { + "id": "omni-804", + "image_file": "804.png", + "image_sha256": "5a305b4d07ce87f5972169a39f75dfeb52cff71f7bf2322e86a10ec66470c120", + "sets_json_sha256": "5a305b4d07ce87f5972169a39f75dfeb52cff71f7bf2322e86a10ec66470c120", + "qualified": true, + "format": "EQUIPMENT_INSPECTION" + }, + { + "id": "omni-805", + "image_file": "805.png", + "image_sha256": "e2d06073dfbeff7eae4101bf9ae65510f570310517636c0ef8b6631bd9fed959", + "sets_json_sha256": "e2d06073dfbeff7eae4101bf9ae65510f570310517636c0ef8b6631bd9fed959", + "qualified": true, + "format": "BANK_CHECK" + }, + { + "id": "omni-807", + "image_file": "807.png", + "image_sha256": "117743da8212e5aff6b86a0a7355136b21a7da7c2e88408a00b1bca5579cd051", + "sets_json_sha256": "117743da8212e5aff6b86a0a7355136b21a7da7c2e88408a00b1bca5579cd051", + "qualified": true, + "format": "SHIPPING_INVOICE" + }, + { + "id": "omni-809", + "image_file": "809.png", + "image_sha256": "e0d048067c32e094c4f538b302201e80f0d4744955a1752bc80203e7fb201382", + "sets_json_sha256": "e0d048067c32e094c4f538b302201e80f0d4744955a1752bc80203e7fb201382", + "qualified": true, + "format": "CREDIT_CARD_STATEMENT" + }, + { + "id": "omni-81", + "image_file": "81.png", + "image_sha256": "e43f7145aab9e176e03ba58ae2b37f6a380a2bfb4611e873411f7fa513225b6c", + "sets_json_sha256": "e43f7145aab9e176e03ba58ae2b37f6a380a2bfb4611e873411f7fa513225b6c", + "qualified": true, + "format": "EQUIPMENT_INSPECTION" + }, + { + "id": "omni-810", + "image_file": "810.png", + "image_sha256": "8535decfc5bd4a5d63b89dda6727e7b2f21cc85f5160f5e44cd6efcb5e91b8d1", + "sets_json_sha256": "8535decfc5bd4a5d63b89dda6727e7b2f21cc85f5160f5e44cd6efcb5e91b8d1", + "qualified": true, + "format": "CREDIT_CARD_STATEMENT" + }, + { + "id": "omni-813", + "image_file": "813.png", + "image_sha256": "83794f26b21752e6999f1cca28608015c0ea6e51fe5a7535a748d4ac178779a2", + "sets_json_sha256": "83794f26b21752e6999f1cca28608015c0ea6e51fe5a7535a748d4ac178779a2", + "qualified": true, + "format": "FORM_1040" + }, + { + "id": "omni-817", + "image_file": "817.png", + "image_sha256": "b6ee3d206681a684ca86489d68cef4ceaab19b4b392ccff0a5cb7b742c9f7d61", + "sets_json_sha256": "b6ee3d206681a684ca86489d68cef4ceaab19b4b392ccff0a5cb7b742c9f7d61", + "qualified": true, + "format": "EQUIPMENT_INSPECTION" + }, + { + "id": "omni-82", + "image_file": "82.png", + "image_sha256": "a1eeeb0ba905df437af8c3d2e92c22acd9fa43cadc1ba717b3b7bae047e105ee", + "sets_json_sha256": "a1eeeb0ba905df437af8c3d2e92c22acd9fa43cadc1ba717b3b7bae047e105ee", + "qualified": true, + "format": "PATIENT_INTAKE" + }, + { + "id": "omni-825", + "image_file": "825.png", + "image_sha256": "bf13d0156d8399a7e47f65e25e6ea84d3dbc5bee0f91b4a5ca51e78667d512a7", + "sets_json_sha256": "bf13d0156d8399a7e47f65e25e6ea84d3dbc5bee0f91b4a5ca51e78667d512a7", + "qualified": true, + "format": "DELIVERY_NOTE" + }, + { + "id": "omni-826", + "image_file": "826.png", + "image_sha256": "a066103beb1d550a1765024a45a6e66ffb3b38cf98d4e525fb6b4ce145cc1e72", + "sets_json_sha256": "a066103beb1d550a1765024a45a6e66ffb3b38cf98d4e525fb6b4ce145cc1e72", + "qualified": true, + "format": "CREDIT_CARD_STATEMENT" + }, + { + "id": "omni-830", + "image_file": "830.png", + "image_sha256": "b701be3ce9fc9fc332641ec7fe2a5efd4ec0d2c2450bb509f0359e9effcfb342", + "sets_json_sha256": "b701be3ce9fc9fc332641ec7fe2a5efd4ec0d2c2450bb509f0359e9effcfb342", + "qualified": true, + "format": "PROXY_VOTING" + }, + { + "id": "omni-832", + "image_file": "832.png", + "image_sha256": "4dd6f204d6d8bae148d2b069d2f2299680ff8b2c445f245696f1895f34f1070e", + "sets_json_sha256": "4dd6f204d6d8bae148d2b069d2f2299680ff8b2c445f245696f1895f34f1070e", + "qualified": true, + "format": "FORM_1040" + }, + { + "id": "omni-834", + "image_file": "834.png", + "image_sha256": "c7b84431490c1397236fe4a1980bd0a5d353f67cbfa8b98c7ff2d8fa377a8158", + "sets_json_sha256": "c7b84431490c1397236fe4a1980bd0a5d353f67cbfa8b98c7ff2d8fa377a8158", + "qualified": true, + "format": "ACCOUNT_STATEMENT" + }, + { + "id": "omni-835", + "image_file": "835.png", + "image_sha256": "79030f5574987f5c2f8635b62ff02e10e0ca54747a0eb90e045f207afcd28687", + "sets_json_sha256": "79030f5574987f5c2f8635b62ff02e10e0ca54747a0eb90e045f207afcd28687", + "qualified": true, + "format": "FORM_1040" + }, + { + "id": "omni-836", + "image_file": "836.png", + "image_sha256": "3b87b2a404cc96d66b377ddfd0308fd14c178f5542d57cc0c9ba5522e95017cb", + "sets_json_sha256": "3b87b2a404cc96d66b377ddfd0308fd14c178f5542d57cc0c9ba5522e95017cb", + "qualified": true, + "format": "PATIENT_INTAKE" + }, + { + "id": "omni-837", + "image_file": "837.png", + "image_sha256": "fa344d46f435c17babee29dd151ae6503a1d976960a33588ddacc1894acdfc78", + "sets_json_sha256": "fa344d46f435c17babee29dd151ae6503a1d976960a33588ddacc1894acdfc78", + "qualified": true, + "format": "REAL_ESTATE" + }, + { + "id": "omni-838", + "image_file": "838.png", + "image_sha256": "928dca6bbb1b888f234e4f18cc64293afd95f79318953eb12f7bb9db7a8bf660", + "sets_json_sha256": "928dca6bbb1b888f234e4f18cc64293afd95f79318953eb12f7bb9db7a8bf660", + "qualified": true, + "format": "BANK_CHECK" + }, + { + "id": "omni-84", + "image_file": "84.png", + "image_sha256": "838c8620335e5c1aa7ace058a3eed85c9b23b0d1bab0c9a8b7ebdd988f1952d3", + "sets_json_sha256": "838c8620335e5c1aa7ace058a3eed85c9b23b0d1bab0c9a8b7ebdd988f1952d3", + "qualified": true, + "format": "PATIENT_INTAKE" + }, + { + "id": "omni-841", + "image_file": "841.png", + "image_sha256": "7918b98f47125334a337af9ad4c7bf0fc5450eff3c9ad61203bfbe65bd2065be", + "sets_json_sha256": "7918b98f47125334a337af9ad4c7bf0fc5450eff3c9ad61203bfbe65bd2065be", + "qualified": true, + "format": "COMMERCIAL_LEASE_AGREEMENT" + }, + { + "id": "omni-843", + "image_file": "843.png", + "image_sha256": "bed8aaff4d8e2a440a7b63c0e713b0202d432617454dc6d530d95811bd200471", + "sets_json_sha256": "bed8aaff4d8e2a440a7b63c0e713b0202d432617454dc6d530d95811bd200471", + "qualified": true, + "format": "EQUIPMENT_INSPECTION" + }, + { + "id": "omni-844", + "image_file": "844.png", + "image_sha256": "77384c0248f05acad1ec66c456bb2d5e34850f45db95803d3f13f67a9ad640b2", + "sets_json_sha256": "77384c0248f05acad1ec66c456bb2d5e34850f45db95803d3f13f67a9ad640b2", + "qualified": true, + "format": "DELIVERY_NOTE" + }, + { + "id": "omni-845", + "image_file": "845.png", + "image_sha256": "c55577f631d91f7bfc2def96aab92bb6abf80230b316e0cfed5dee5d32372fea", + "sets_json_sha256": "c55577f631d91f7bfc2def96aab92bb6abf80230b316e0cfed5dee5d32372fea", + "qualified": true, + "format": "EQUIPMENT_INSPECTION" + }, + { + "id": "omni-847", + "image_file": "847.png", + "image_sha256": "7a5940a89d12773ea2bb7947d65daafa45c385de2312020e3bf0fc1c50605f99", + "sets_json_sha256": "7a5940a89d12773ea2bb7947d65daafa45c385de2312020e3bf0fc1c50605f99", + "qualified": true, + "format": "FORM_1040" + }, + { + "id": "omni-848", + "image_file": "848.png", + "image_sha256": "efa83912569e4fb734680e79904a19a26b00c8764e23cc0fd38880928ae8271c", + "sets_json_sha256": "efa83912569e4fb734680e79904a19a26b00c8764e23cc0fd38880928ae8271c", + "qualified": true, + "format": "DELIVERY_NOTE" + }, + { + "id": "omni-849", + "image_file": "849.png", + "image_sha256": "870c3a0c64e92ef5bb0a1c340418235b87fe03f704d2917adc39f5ae27988265", + "sets_json_sha256": "870c3a0c64e92ef5bb0a1c340418235b87fe03f704d2917adc39f5ae27988265", + "qualified": true, + "format": "PETITION_FORM" + }, + { + "id": "omni-85", + "image_file": "85.png", + "image_sha256": "fb66439231a8a56fd513b33ac0cf95822a211b704d23f06e7e9d219944cfdd8f", + "sets_json_sha256": "fb66439231a8a56fd513b33ac0cf95822a211b704d23f06e7e9d219944cfdd8f", + "qualified": true, + "format": "CREDIT_CARD_STATEMENT" + }, + { + "id": "omni-852", + "image_file": "852.png", + "image_sha256": "cf4bda2db903c4ca6b94e6746787aea62a279659048b2bc576585b50a2f396c7", + "sets_json_sha256": "cf4bda2db903c4ca6b94e6746787aea62a279659048b2bc576585b50a2f396c7", + "qualified": true, + "format": "DELIVERY_NOTE" + }, + { + "id": "omni-853", + "image_file": "853.png", + "image_sha256": "d2e1a109ee04adc393d9569c7e734743a501e88764d55d23eef639877f980ba4", + "sets_json_sha256": "d2e1a109ee04adc393d9569c7e734743a501e88764d55d23eef639877f980ba4", + "qualified": true, + "format": "DRIVER_LICENSE" + }, + { + "id": "omni-854", + "image_file": "854.png", + "image_sha256": "eeaad1c63f3d8b9127e90c04e4d93cd2b30cbc90d8adc2a98b15bda868b3f68a", + "sets_json_sha256": "eeaad1c63f3d8b9127e90c04e4d93cd2b30cbc90d8adc2a98b15bda868b3f68a", + "qualified": true, + "format": "EQUIPMENT_INSPECTION" + }, + { + "id": "omni-857", + "image_file": "857.png", + "image_sha256": "f95ea2d04fb0d21170d9d991cae1b63c65b812a51ebae93f66314f2443575f23", + "sets_json_sha256": "f95ea2d04fb0d21170d9d991cae1b63c65b812a51ebae93f66314f2443575f23", + "qualified": true, + "format": "ACCOUNT_STATEMENT" + }, + { + "id": "omni-858", + "image_file": "858.jpg", + "image_sha256": "d7466d576e1e9c895b70c055a3fc6c6135eea5d5aca1dc4293bdd336e9810da3", + "sets_json_sha256": "d7466d576e1e9c895b70c055a3fc6c6135eea5d5aca1dc4293bdd336e9810da3", + "qualified": true, + "format": "PHOTO_RECEIPT" + }, + { + "id": "omni-859", + "image_file": "859.png", + "image_sha256": "d8ddf30589868a4824967c801e36b4fdd9aea9e729880b18039d7d922d09657b", + "sets_json_sha256": "d8ddf30589868a4824967c801e36b4fdd9aea9e729880b18039d7d922d09657b", + "qualified": true, + "format": "CREDIT_CARD_STATEMENT" + }, + { + "id": "omni-86", + "image_file": "86.png", + "image_sha256": "f1edce2ff305e0128a5eac720d0efdce28049ca97a9ed823e8c8737f839979cd", + "sets_json_sha256": "f1edce2ff305e0128a5eac720d0efdce28049ca97a9ed823e8c8737f839979cd", + "qualified": true, + "format": "COMMERCIAL_LEASE_AGREEMENT" + }, + { + "id": "omni-860", + "image_file": "860.png", + "image_sha256": "54d7f6af66f5011c7b833b88e3fdb4fca25243cd20c9a328871da9058e2a05ba", + "sets_json_sha256": "54d7f6af66f5011c7b833b88e3fdb4fca25243cd20c9a328871da9058e2a05ba", + "qualified": true, + "format": "SHIPPING_INVOICE" + }, + { + "id": "omni-862", + "image_file": "862.png", + "image_sha256": "06cfe6ad216513210ebabdfd11c658145ebf9ebdea7212afd9275febee73bfb8", + "sets_json_sha256": "06cfe6ad216513210ebabdfd11c658145ebf9ebdea7212afd9275febee73bfb8", + "qualified": true, + "format": "BANK_CHECK" + }, + { + "id": "omni-864", + "image_file": "864.png", + "image_sha256": "073c983a114777ea459f48f280396a40c544754c39037a82a0b7c79a39049ed7", + "sets_json_sha256": "073c983a114777ea459f48f280396a40c544754c39037a82a0b7c79a39049ed7", + "qualified": true, + "format": "PATIENT_INTAKE" + }, + { + "id": "omni-866", + "image_file": "866.png", + "image_sha256": "1c886974cf22e072c2ec2503e54c6e06e8fd3d053034c093366fa29f60e1a508", + "sets_json_sha256": "1c886974cf22e072c2ec2503e54c6e06e8fd3d053034c093366fa29f60e1a508", + "qualified": true, + "format": "ACCOUNT_STATEMENT" + }, + { + "id": "omni-868", + "image_file": "868.png", + "image_sha256": "9a8814eead2879bbc39aa56390b4e0bd65be9584855b4eeca901db7340e535e5", + "sets_json_sha256": "9a8814eead2879bbc39aa56390b4e0bd65be9584855b4eeca901db7340e535e5", + "qualified": true, + "format": "SHIPPING_INVOICE" + }, + { + "id": "omni-87", + "image_file": "87.png", + "image_sha256": "003cfb17794f1f1b46804bd3f245d395ff28d05affdd664cc0f78956e5657e8f", + "sets_json_sha256": "003cfb17794f1f1b46804bd3f245d395ff28d05affdd664cc0f78956e5657e8f", + "qualified": true, + "format": "PATIENT_INTAKE" + }, + { + "id": "omni-870", + "image_file": "870.png", + "image_sha256": "6431323033fd4f0f385259808e80a36f595b663a4d625f1b54d4e2edf2fa1f5b", + "sets_json_sha256": "6431323033fd4f0f385259808e80a36f595b663a4d625f1b54d4e2edf2fa1f5b", + "qualified": true, + "format": "BANK_CHECK" + }, + { + "id": "omni-871", + "image_file": "871.png", + "image_sha256": "34a4e3726eb25ae275f14301123e1d4cf5c77ca2b9abbd6243b7eea15d7566de", + "sets_json_sha256": "34a4e3726eb25ae275f14301123e1d4cf5c77ca2b9abbd6243b7eea15d7566de", + "qualified": true, + "format": "ACCOUNT_STATEMENT" + }, + { + "id": "omni-873", + "image_file": "873.png", + "image_sha256": "63f6b0738c63d28df5c8f7a7743576773f6ebed0021dfaa674aeecb8c2e2ff6f", + "sets_json_sha256": "63f6b0738c63d28df5c8f7a7743576773f6ebed0021dfaa674aeecb8c2e2ff6f", + "qualified": true, + "format": "PROXY_VOTING" + }, + { + "id": "omni-874", + "image_file": "874.png", + "image_sha256": "6a1c34fb4d7dedd11e489a34844c514046987c2bb2873b5d27b09b4013e66eae", + "sets_json_sha256": "6a1c34fb4d7dedd11e489a34844c514046987c2bb2873b5d27b09b4013e66eae", + "qualified": true, + "format": "SHIPPING_INVOICE" + }, + { + "id": "omni-875", + "image_file": "875.png", + "image_sha256": "ac706f41f757d3c2a544bbdf065e7e37ab2e3ebdd28f9cba68de4970f6d306b8", + "sets_json_sha256": "ac706f41f757d3c2a544bbdf065e7e37ab2e3ebdd28f9cba68de4970f6d306b8", + "qualified": true, + "format": "PETITION_FORM" + }, + { + "id": "omni-876", + "image_file": "876.png", + "image_sha256": "9da8b54a4b1ba22e0adb10648a5f6c71cac2cde0e037f16e9e997ec780891155", + "sets_json_sha256": "9da8b54a4b1ba22e0adb10648a5f6c71cac2cde0e037f16e9e997ec780891155", + "qualified": true, + "format": "COMMERCIAL_LEASE_AGREEMENT" + }, + { + "id": "omni-877", + "image_file": "877.png", + "image_sha256": "10e0de75c0f99480c1a85e65fdb29dddca8ecc97090f12dcb3f640cc24460ae7", + "sets_json_sha256": "10e0de75c0f99480c1a85e65fdb29dddca8ecc97090f12dcb3f640cc24460ae7", + "qualified": true, + "format": "PATIENT_INTAKE" + }, + { + "id": "omni-878", + "image_file": "878.png", + "image_sha256": "5a8261b82f53f6462d2538c8599fb84a2a2c8fb18698ffd51cb59019c212fe30", + "sets_json_sha256": "5a8261b82f53f6462d2538c8599fb84a2a2c8fb18698ffd51cb59019c212fe30", + "qualified": true, + "format": "CREDIT_CARD_STATEMENT" + }, + { + "id": "omni-88", + "image_file": "88.png", + "image_sha256": "a77d1fe2eb353c142f4f6abad8d5637ed6a50390a000f688d862bb4b54e5e035", + "sets_json_sha256": "a77d1fe2eb353c142f4f6abad8d5637ed6a50390a000f688d862bb4b54e5e035", + "qualified": true, + "format": "ACCOUNT_STATEMENT" + }, + { + "id": "omni-881", + "image_file": "881.png", + "image_sha256": "4a52a6885fb53f7b6957af6a9d6a890af7005fdc7c9f250bf8a036cac20dd46f", + "sets_json_sha256": "4a52a6885fb53f7b6957af6a9d6a890af7005fdc7c9f250bf8a036cac20dd46f", + "qualified": true, + "format": "ACCOUNT_STATEMENT" + }, + { + "id": "omni-884", + "image_file": "884.png", + "image_sha256": "bfd8811d584d70fa8345c73fb7dfbd2b875685ca95ef24d6a3351d2d4a06793e", + "sets_json_sha256": "bfd8811d584d70fa8345c73fb7dfbd2b875685ca95ef24d6a3351d2d4a06793e", + "qualified": true, + "format": "ACCOUNT_STATEMENT" + }, + { + "id": "omni-885", + "image_file": "885.png", + "image_sha256": "30fc9643781533f6efaef53e50709a9a7388dd71002c5852f57ef6494c48bb93", + "sets_json_sha256": "30fc9643781533f6efaef53e50709a9a7388dd71002c5852f57ef6494c48bb93", + "qualified": true, + "format": "SHIPPING_INVOICE" + }, + { + "id": "omni-887", + "image_file": "887.png", + "image_sha256": "eee238924d7cff33ceb03b24195ec80e62d2fae7a03026c0d11372586337f614", + "sets_json_sha256": "eee238924d7cff33ceb03b24195ec80e62d2fae7a03026c0d11372586337f614", + "qualified": true, + "format": "EQUIPMENT_INSPECTION" + }, + { + "id": "omni-889", + "image_file": "889.png", + "image_sha256": "92e0de8396b63a016bbe4e5697b9a56a4021e280f321bc7e202d1dc34400191c", + "sets_json_sha256": "92e0de8396b63a016bbe4e5697b9a56a4021e280f321bc7e202d1dc34400191c", + "qualified": true, + "format": "ACCOUNT_STATEMENT" + }, + { + "id": "omni-891", + "image_file": "891.png", + "image_sha256": "72c51ddfef3e1f84947f434f1e974f29d3481f2b0b596f5b52cfe3d0d4322c8e", + "sets_json_sha256": "72c51ddfef3e1f84947f434f1e974f29d3481f2b0b596f5b52cfe3d0d4322c8e", + "qualified": true, + "format": "PROXY_VOTING" + }, + { + "id": "omni-894", + "image_file": "894.png", + "image_sha256": "13d8bcce129f0cc46dc40f81a66395e1c0cdf88413d9715e7f245ab40d0abd70", + "sets_json_sha256": "13d8bcce129f0cc46dc40f81a66395e1c0cdf88413d9715e7f245ab40d0abd70", + "qualified": true, + "format": "CREDIT_CARD_STATEMENT" + }, + { + "id": "omni-895", + "image_file": "895.png", + "image_sha256": "2f758fb85b2b2e9cf15cd3ffa10202a9633845686c254eafdba00d377dea0c3e", + "sets_json_sha256": "2f758fb85b2b2e9cf15cd3ffa10202a9633845686c254eafdba00d377dea0c3e", + "qualified": true, + "format": "REAL_ESTATE" + }, + { + "id": "omni-897", + "image_file": "897.png", + "image_sha256": "46d19efaf0b4b650bee834d7c5bae18dd1cf25744d6ae8bb14d64c2862c9b6fe", + "sets_json_sha256": "46d19efaf0b4b650bee834d7c5bae18dd1cf25744d6ae8bb14d64c2862c9b6fe", + "qualified": true, + "format": "PAY_IN_SHEET" + }, + { + "id": "omni-898", + "image_file": "898.png", + "image_sha256": "e3377486a4396f3917c1828e4b0c2cb62fa3f8e832fa1f883843b87917cb7e61", + "sets_json_sha256": "e3377486a4396f3917c1828e4b0c2cb62fa3f8e832fa1f883843b87917cb7e61", + "qualified": true, + "format": "PAY_IN_SHEET" + }, + { + "id": "omni-899", + "image_file": "899.png", + "image_sha256": "950c304ce046280122436769451218f55bd1ec87f73973b0a2cb26a01edf468c", + "sets_json_sha256": "950c304ce046280122436769451218f55bd1ec87f73973b0a2cb26a01edf468c", + "qualified": true, + "format": "PROXY_VOTING" + }, + { + "id": "omni-9", + "image_file": "9.jpg", + "image_sha256": "6b10944345842f5acb281edee83424468647d30bb468275b991384ace9e09070", + "sets_json_sha256": "6b10944345842f5acb281edee83424468647d30bb468275b991384ace9e09070", + "qualified": true, + "format": "PHOTO_RECEIPT" + }, + { + "id": "omni-90", + "image_file": "90.png", + "image_sha256": "0bafe9e5842808471ceaabc6acfaf1f90b8e83893e3531c46d08fac25c29ffea", + "sets_json_sha256": "0bafe9e5842808471ceaabc6acfaf1f90b8e83893e3531c46d08fac25c29ffea", + "qualified": true, + "format": "PETITION_FORM" + }, + { + "id": "omni-900", + "image_file": "900.png", + "image_sha256": "c7a1556431ab4dbe23cb80dbc157f48e58934a4190b3f69b1d7e43b700383ab1", + "sets_json_sha256": "c7a1556431ab4dbe23cb80dbc157f48e58934a4190b3f69b1d7e43b700383ab1", + "qualified": true, + "format": "SHIPPING_INVOICE" + }, + { + "id": "omni-901", + "image_file": "901.png", + "image_sha256": "cd1b0eeb334410beab609d9c53bb4f6119e2c17057a2269b182032ce472a0d1e", + "sets_json_sha256": "cd1b0eeb334410beab609d9c53bb4f6119e2c17057a2269b182032ce472a0d1e", + "qualified": true, + "format": "ACCOUNT_STATEMENT" + }, + { + "id": "omni-902", + "image_file": "902.png", + "image_sha256": "6935e39b70589b9c60b2fc969a47522db476f7e35401d14186903960edf38bb9", + "sets_json_sha256": "6935e39b70589b9c60b2fc969a47522db476f7e35401d14186903960edf38bb9", + "qualified": true, + "format": "EQUIPMENT_INSPECTION" + }, + { + "id": "omni-904", + "image_file": "904.png", + "image_sha256": "513a527c7b9b7cf5a08d96c7f4edfaa2dcb2ec67d148bec5012c5bfa042d2e65", + "sets_json_sha256": "513a527c7b9b7cf5a08d96c7f4edfaa2dcb2ec67d148bec5012c5bfa042d2e65", + "qualified": true, + "format": "PROXY_VOTING" + }, + { + "id": "omni-905", + "image_file": "905.png", + "image_sha256": "89b3b1b94101333ce607b042568c9bf77184b7eb398060e8ee3e7db48d61ce75", + "sets_json_sha256": "89b3b1b94101333ce607b042568c9bf77184b7eb398060e8ee3e7db48d61ce75", + "qualified": true, + "format": "PAY_IN_SHEET" + }, + { + "id": "omni-906", + "image_file": "906.png", + "image_sha256": "69d7c62086a27e7140ca0d8a6414d752dbc1c75ab557bb434c1167378c2740ff", + "sets_json_sha256": "69d7c62086a27e7140ca0d8a6414d752dbc1c75ab557bb434c1167378c2740ff", + "qualified": true, + "format": "PAY_IN_SHEET" + }, + { + "id": "omni-907", + "image_file": "907.png", + "image_sha256": "b5a1580a0d987e55bf1441fac7abf7e78fbfb53c74ff09ef0cf96d838830c0df", + "sets_json_sha256": "b5a1580a0d987e55bf1441fac7abf7e78fbfb53c74ff09ef0cf96d838830c0df", + "qualified": true, + "format": "EQUIPMENT_INSPECTION" + }, + { + "id": "omni-908", + "image_file": "908.png", + "image_sha256": "c9ca65bd1f233d7947894a47e7b83e48b23ce8b00225f40885bc434c22355eee", + "sets_json_sha256": "c9ca65bd1f233d7947894a47e7b83e48b23ce8b00225f40885bc434c22355eee", + "qualified": true, + "format": "EQUIPMENT_INSPECTION" + }, + { + "id": "omni-909", + "image_file": "909.png", + "image_sha256": "e6f33fece1f2ecc8c56a42f84208ba0e9f96b7f4f37d660fe1910d1d47fb6645", + "sets_json_sha256": "e6f33fece1f2ecc8c56a42f84208ba0e9f96b7f4f37d660fe1910d1d47fb6645", + "qualified": true, + "format": "CREDIT_CARD_STATEMENT" + }, + { + "id": "omni-91", + "image_file": "91.png", + "image_sha256": "c4cf1d7f3675da784405988bdeff1188322f2a28e84323bd33fd34018b81eeac", + "sets_json_sha256": "c4cf1d7f3675da784405988bdeff1188322f2a28e84323bd33fd34018b81eeac", + "qualified": true, + "format": "DELIVERY_NOTE" + }, + { + "id": "omni-914", + "image_file": "914.png", + "image_sha256": "214378e75a6e10be6be518469550d945b14d5359cdbbf6e3f0f82bc9973d41fe", + "sets_json_sha256": "214378e75a6e10be6be518469550d945b14d5359cdbbf6e3f0f82bc9973d41fe", + "qualified": true, + "format": "BANK_CHECK" + }, + { + "id": "omni-915", + "image_file": "915.png", + "image_sha256": "8ff781586d700b5554219a021dca8165902bdefbcd0f52132fa06b6aeccdb08c", + "sets_json_sha256": "8ff781586d700b5554219a021dca8165902bdefbcd0f52132fa06b6aeccdb08c", + "qualified": true, + "format": "FORM_1040" + }, + { + "id": "omni-916", + "image_file": "916.png", + "image_sha256": "c9d63c05621f2b7413491ca7851f467420f7a7f4e16dc078cf6a93763cd4e4f6", + "sets_json_sha256": "c9d63c05621f2b7413491ca7851f467420f7a7f4e16dc078cf6a93763cd4e4f6", + "qualified": true, + "format": "COMMERCIAL_LEASE_AGREEMENT" + }, + { + "id": "omni-918", + "image_file": "918.png", + "image_sha256": "047b9250dfc63829dba5727eb294a033386d5a2b10afcc08335d1cb80d0f2bf4", + "sets_json_sha256": "047b9250dfc63829dba5727eb294a033386d5a2b10afcc08335d1cb80d0f2bf4", + "qualified": true, + "format": "ACCOUNT_STATEMENT" + }, + { + "id": "omni-919", + "image_file": "919.png", + "image_sha256": "c85da53df809c4da207568519b1059ef6cd70b5c301d5415884013e01539d1de", + "sets_json_sha256": "c85da53df809c4da207568519b1059ef6cd70b5c301d5415884013e01539d1de", + "qualified": true, + "format": "PETITION_FORM" + }, + { + "id": "omni-921", + "image_file": "921.png", + "image_sha256": "c70fc894df759bc2aefb833c3be04383f499710ca9150917d2416a9a7e757c2e", + "sets_json_sha256": "c70fc894df759bc2aefb833c3be04383f499710ca9150917d2416a9a7e757c2e", + "qualified": true, + "format": "PATIENT_INTAKE" + }, + { + "id": "omni-923", + "image_file": "923.png", + "image_sha256": "4aca410c4a92e8d8bf4f7d51321f968a353355db032b1edeb58721c332d4ce0f", + "sets_json_sha256": "4aca410c4a92e8d8bf4f7d51321f968a353355db032b1edeb58721c332d4ce0f", + "qualified": true, + "format": "ACCOUNT_STATEMENT" + }, + { + "id": "omni-924", + "image_file": "924.png", + "image_sha256": "07ce65997427f6d0df92496473a9ae2d24967be7326e225a5f148b57838b0309", + "sets_json_sha256": "07ce65997427f6d0df92496473a9ae2d24967be7326e225a5f148b57838b0309", + "qualified": true, + "format": "BANK_CHECK" + }, + { + "id": "omni-925", + "image_file": "925.png", + "image_sha256": "9297eecbeb848810ac1bffbe520254ed88eb031054edc1e3686727b898351d9b", + "sets_json_sha256": "9297eecbeb848810ac1bffbe520254ed88eb031054edc1e3686727b898351d9b", + "qualified": true, + "format": "PETITION_FORM" + }, + { + "id": "omni-926", + "image_file": "926.png", + "image_sha256": "0407b4053fc81e66f2be873fb1941e12e381eae5c7c82efc7e790100f1ebbc20", + "sets_json_sha256": "0407b4053fc81e66f2be873fb1941e12e381eae5c7c82efc7e790100f1ebbc20", + "qualified": true, + "format": "DELIVERY_NOTE" + }, + { + "id": "omni-928", + "image_file": "928.png", + "image_sha256": "5395e4184d0f246bcf02fb273721b8727892fdb33afe6ebd5bc5fbf49a18a6d1", + "sets_json_sha256": "5395e4184d0f246bcf02fb273721b8727892fdb33afe6ebd5bc5fbf49a18a6d1", + "qualified": true, + "format": "REAL_ESTATE" + }, + { + "id": "omni-929", + "image_file": "929.png", + "image_sha256": "c6915866f51c22d821c5572d5e6bfa84b2e11879335c74ddd0467a572a647afc", + "sets_json_sha256": "c6915866f51c22d821c5572d5e6bfa84b2e11879335c74ddd0467a572a647afc", + "qualified": true, + "format": "CREDIT_CARD_STATEMENT" + }, + { + "id": "omni-93", + "image_file": "93.png", + "image_sha256": "39f4607278a753578bd7b3abc715007e7bf5a600f31cf5c84396bf530a78190c", + "sets_json_sha256": "39f4607278a753578bd7b3abc715007e7bf5a600f31cf5c84396bf530a78190c", + "qualified": true, + "format": "DELIVERY_NOTE" + }, + { + "id": "omni-930", + "image_file": "930.png", + "image_sha256": "825dbd930b329a8355e18a67480a674bf7f126d621f5f6405616d1ec2dc46452", + "sets_json_sha256": "825dbd930b329a8355e18a67480a674bf7f126d621f5f6405616d1ec2dc46452", + "qualified": true, + "format": "REAL_ESTATE" + }, + { + "id": "omni-933", + "image_file": "933.png", + "image_sha256": "1379926aa571d65f15d6d01dc4f31bf7820b52584fd18d213fdbc13d2c1cbead", + "sets_json_sha256": "1379926aa571d65f15d6d01dc4f31bf7820b52584fd18d213fdbc13d2c1cbead", + "qualified": true, + "format": "PETITION_FORM" + }, + { + "id": "omni-937", + "image_file": "937.png", + "image_sha256": "f868aaecf330eb4a00f2e8fa40255251060ae3238c3f6d1c3651163176a7e602", + "sets_json_sha256": "f868aaecf330eb4a00f2e8fa40255251060ae3238c3f6d1c3651163176a7e602", + "qualified": true, + "format": "CREDIT_CARD_STATEMENT" + }, + { + "id": "omni-938", + "image_file": "938.png", + "image_sha256": "082fd1122c48f6ffe25e19e4bba18005df648b7fbfad89e0ebec9801eaa15e07", + "sets_json_sha256": "082fd1122c48f6ffe25e19e4bba18005df648b7fbfad89e0ebec9801eaa15e07", + "qualified": true, + "format": "PATIENT_INTAKE" + }, + { + "id": "omni-939", + "image_file": "939.png", + "image_sha256": "473ecf6cb6c88aaccccf7b89c3636e24208efb70b795676cadd430e442a2340c", + "sets_json_sha256": "473ecf6cb6c88aaccccf7b89c3636e24208efb70b795676cadd430e442a2340c", + "qualified": true, + "format": "PATIENT_INTAKE" + }, + { + "id": "omni-94", + "image_file": "94.png", + "image_sha256": "2b7523f1fe7d24426ccda4ddffadf0fc8f23718f06156266cf70cc6307d15cf7", + "sets_json_sha256": "2b7523f1fe7d24426ccda4ddffadf0fc8f23718f06156266cf70cc6307d15cf7", + "qualified": true, + "format": "PAY_IN_SHEET" + }, + { + "id": "omni-940", + "image_file": "940.png", + "image_sha256": "250ca5e72703cd96f44078a11376eb0f6b436852277ec4c6dd12b748a7912066", + "sets_json_sha256": "250ca5e72703cd96f44078a11376eb0f6b436852277ec4c6dd12b748a7912066", + "qualified": true, + "format": "PAY_IN_SHEET" + }, + { + "id": "omni-942", + "image_file": "942.png", + "image_sha256": "5ec893405921a800bc14b2bb0b828bf1e0ae9605e13884098d9ad0e59dfc5755", + "sets_json_sha256": "5ec893405921a800bc14b2bb0b828bf1e0ae9605e13884098d9ad0e59dfc5755", + "qualified": true, + "format": "COMMERCIAL_LEASE_AGREEMENT" + }, + { + "id": "omni-943", + "image_file": "943.png", + "image_sha256": "df156ad98a60927c4be888a0fc889d8be07a9dd4b08ac82a5f5f3cad7528e8d7", + "sets_json_sha256": "df156ad98a60927c4be888a0fc889d8be07a9dd4b08ac82a5f5f3cad7528e8d7", + "qualified": true, + "format": "FORM_1040" + }, + { + "id": "omni-945", + "image_file": "945.png", + "image_sha256": "653b757e4e22750b69eddb3b79bd59f0df54a8a968f1bea92bf0e80add9ab396", + "sets_json_sha256": "653b757e4e22750b69eddb3b79bd59f0df54a8a968f1bea92bf0e80add9ab396", + "qualified": true, + "format": "DELIVERY_NOTE" + }, + { + "id": "omni-947", + "image_file": "947.png", + "image_sha256": "9a06d9b9659b8d771cba42fffaf5637d13853c53e9611d310e5d92a8a18af5ce", + "sets_json_sha256": "9a06d9b9659b8d771cba42fffaf5637d13853c53e9611d310e5d92a8a18af5ce", + "qualified": true, + "format": "COMMERCIAL_LEASE_AGREEMENT" + }, + { + "id": "omni-950", + "image_file": "950.png", + "image_sha256": "c6d7347a413b7941326f554b64aaa7540d76419a8ce4d1a383fe519f04d4172d", + "sets_json_sha256": "c6d7347a413b7941326f554b64aaa7540d76419a8ce4d1a383fe519f04d4172d", + "qualified": true, + "format": "DELIVERY_NOTE" + }, + { + "id": "omni-951", + "image_file": "951.png", + "image_sha256": "ffd78561223ee2c1f70d6cfc543bebdafaf951aa152c2cede43c9d06e402f0e9", + "sets_json_sha256": "ffd78561223ee2c1f70d6cfc543bebdafaf951aa152c2cede43c9d06e402f0e9", + "qualified": true, + "format": "PAY_IN_SHEET" + }, + { + "id": "omni-952", + "image_file": "952.png", + "image_sha256": "6b6bc051fa0e5aac731e9e143cdba84b8bba6ce8a1c1ea56117d270184932736", + "sets_json_sha256": "6b6bc051fa0e5aac731e9e143cdba84b8bba6ce8a1c1ea56117d270184932736", + "qualified": true, + "format": "PROXY_VOTING" + }, + { + "id": "omni-956", + "image_file": "956.png", + "image_sha256": "9c75db9ed5438a75c6ab15d411ced5b14182ce18108a87f91242cd8653a72ce4", + "sets_json_sha256": "9c75db9ed5438a75c6ab15d411ced5b14182ce18108a87f91242cd8653a72ce4", + "qualified": true, + "format": "REAL_ESTATE" + }, + { + "id": "omni-957", + "image_file": "957.png", + "image_sha256": "233fd82cb8bf15c9a560f2268bef9f79b51f141c76393572100e8cd3da31fc2b", + "sets_json_sha256": "233fd82cb8bf15c9a560f2268bef9f79b51f141c76393572100e8cd3da31fc2b", + "qualified": true, + "format": "FORM_1040" + }, + { + "id": "omni-958", + "image_file": "958.png", + "image_sha256": "7bfb6f897118f4ed2adc4b2c2d671964d036b0639aa1b505b814a26d482ea5b8", + "sets_json_sha256": "7bfb6f897118f4ed2adc4b2c2d671964d036b0639aa1b505b814a26d482ea5b8", + "qualified": true, + "format": "PROXY_VOTING" + }, + { + "id": "omni-959", + "image_file": "959.png", + "image_sha256": "4105ef83482281cca97820ca6ccfa8971f98869ff04e397ffc7ffc4e977e7647", + "sets_json_sha256": "4105ef83482281cca97820ca6ccfa8971f98869ff04e397ffc7ffc4e977e7647", + "qualified": true, + "format": "BANK_CHECK" + }, + { + "id": "omni-961", + "image_file": "961.png", + "image_sha256": "9654c75112a8360fbca93d5a791806c430f6a2535a66a7aacd63e7857ce25abc", + "sets_json_sha256": "9654c75112a8360fbca93d5a791806c430f6a2535a66a7aacd63e7857ce25abc", + "qualified": true, + "format": "PAY_IN_SHEET" + }, + { + "id": "omni-962", + "image_file": "962.png", + "image_sha256": "26ff308d7a3736d57057e24c0a5c6bb2a88c38b236b2fb0a6078cfdb97b0c834", + "sets_json_sha256": "26ff308d7a3736d57057e24c0a5c6bb2a88c38b236b2fb0a6078cfdb97b0c834", + "qualified": true, + "format": "FORM_1040" + }, + { + "id": "omni-966", + "image_file": "966.png", + "image_sha256": "4d3556061a0dbf6b310f269495f122df9fefdbeda9c988e576cc79c3817f5ace", + "sets_json_sha256": "4d3556061a0dbf6b310f269495f122df9fefdbeda9c988e576cc79c3817f5ace", + "qualified": true, + "format": "BANK_CHECK" + }, + { + "id": "omni-969", + "image_file": "969.png", + "image_sha256": "5a8169af60aaa3f4d9f01fcd55faac167a4ac17183474565e6e30a08e22fe25e", + "sets_json_sha256": "5a8169af60aaa3f4d9f01fcd55faac167a4ac17183474565e6e30a08e22fe25e", + "qualified": true, + "format": "FORM_1040" + }, + { + "id": "omni-97", + "image_file": "97.png", + "image_sha256": "9e3dff4e32cee29e65366cd20b681c0ac6b643a7005c798d912b2fcd94004a91", + "sets_json_sha256": "9e3dff4e32cee29e65366cd20b681c0ac6b643a7005c798d912b2fcd94004a91", + "qualified": true, + "format": "PATIENT_INTAKE" + }, + { + "id": "omni-972", + "image_file": "972.png", + "image_sha256": "bd5dd7fbe9d7c8642fb5bfa6c1bca2738b024744763ce6d7831db2557aca5543", + "sets_json_sha256": "bd5dd7fbe9d7c8642fb5bfa6c1bca2738b024744763ce6d7831db2557aca5543", + "qualified": true, + "format": "REAL_ESTATE" + }, + { + "id": "omni-973", + "image_file": "973.png", + "image_sha256": "64150ad17a337a5d61c5d764fd875e3cf72ad1ba8f46336b981e9c08ce9a3a7a", + "sets_json_sha256": "64150ad17a337a5d61c5d764fd875e3cf72ad1ba8f46336b981e9c08ce9a3a7a", + "qualified": true, + "format": "FORM_1040" + }, + { + "id": "omni-977", + "image_file": "977.png", + "image_sha256": "5b59a68285c6317aa45f576d6431e171910dea9e291d4a8a37805225b965f0da", + "sets_json_sha256": "5b59a68285c6317aa45f576d6431e171910dea9e291d4a8a37805225b965f0da", + "qualified": true, + "format": "PETITION_FORM" + }, + { + "id": "omni-978", + "image_file": "978.png", + "image_sha256": "1bb414413a12e9275bc82c97f09f5c451ab4de86e1cc8b6036be4d71484995a4", + "sets_json_sha256": "1bb414413a12e9275bc82c97f09f5c451ab4de86e1cc8b6036be4d71484995a4", + "qualified": true, + "format": "COMMERCIAL_LEASE_AGREEMENT" + }, + { + "id": "omni-979", + "image_file": "979.png", + "image_sha256": "112fdfba73a0c0fe0010cb9449b9ce4bb9207fd7598a930e9e14da45acba2d21", + "sets_json_sha256": "112fdfba73a0c0fe0010cb9449b9ce4bb9207fd7598a930e9e14da45acba2d21", + "qualified": true, + "format": "BANK_CHECK" + }, + { + "id": "omni-98", + "image_file": "98.png", + "image_sha256": "f300881b6b7581eab6edd7766571116097df765c7a69ba20b8e476b22f6b89e5", + "sets_json_sha256": "f300881b6b7581eab6edd7766571116097df765c7a69ba20b8e476b22f6b89e5", + "qualified": true, + "format": "DELIVERY_NOTE" + }, + { + "id": "omni-980", + "image_file": "980.png", + "image_sha256": "1b6f28c0ca9cf938c500511b2a5da6872dba6e54f82709dc1965bb2e1a235465", + "sets_json_sha256": "1b6f28c0ca9cf938c500511b2a5da6872dba6e54f82709dc1965bb2e1a235465", + "qualified": true, + "format": "PROXY_VOTING" + }, + { + "id": "omni-981", + "image_file": "981.png", + "image_sha256": "9e261a3c029bcd2cdfbe2c51cde9e83b4866ea680cacde5402f86a9918a82327", + "sets_json_sha256": "9e261a3c029bcd2cdfbe2c51cde9e83b4866ea680cacde5402f86a9918a82327", + "qualified": true, + "format": "PAY_IN_SHEET" + }, + { + "id": "omni-982", + "image_file": "982.png", + "image_sha256": "3c8d0b35dd98eb075dcd2e90749799b7962fe9f29a6cff65028814c562d900a6", + "sets_json_sha256": "3c8d0b35dd98eb075dcd2e90749799b7962fe9f29a6cff65028814c562d900a6", + "qualified": true, + "format": "FORM_1040" + }, + { + "id": "omni-983", + "image_file": "983.png", + "image_sha256": "92a5a66a4b99ccf1c4717a18536d4d32cbf6a1e7f6644da94bf885e3d66190a5", + "sets_json_sha256": "92a5a66a4b99ccf1c4717a18536d4d32cbf6a1e7f6644da94bf885e3d66190a5", + "qualified": true, + "format": "EQUIPMENT_INSPECTION" + }, + { + "id": "omni-984", + "image_file": "984.png", + "image_sha256": "4c6479a6bc7bdb10ae2abc5df6a1e6eb9b12d7cd1f3ec77870eebef037c69281", + "sets_json_sha256": "4c6479a6bc7bdb10ae2abc5df6a1e6eb9b12d7cd1f3ec77870eebef037c69281", + "qualified": true, + "format": "ACCOUNT_STATEMENT" + }, + { + "id": "omni-987", + "image_file": "987.png", + "image_sha256": "13f99da788021f4eff4f42920929b9a2ea18240332e93a918b3b81d52f3ebf70", + "sets_json_sha256": "13f99da788021f4eff4f42920929b9a2ea18240332e93a918b3b81d52f3ebf70", + "qualified": true, + "format": "PETITION_FORM" + }, + { + "id": "omni-988", + "image_file": "988.png", + "image_sha256": "6018335ff122593a9105b0eb5adfd18dfcd2be839f80e71d26fed8b55f409b54", + "sets_json_sha256": "6018335ff122593a9105b0eb5adfd18dfcd2be839f80e71d26fed8b55f409b54", + "qualified": true, + "format": "FORM_1040" + }, + { + "id": "omni-995", + "image_file": "995.png", + "image_sha256": "5b8a0f78065c809ef4cefe0a26a5a921da67e4184ab08b8710cd779d8572a5ac", + "sets_json_sha256": "5b8a0f78065c809ef4cefe0a26a5a921da67e4184ab08b8710cd779d8572a5ac", + "qualified": true, + "format": "CREDIT_CARD_STATEMENT" + }, + { + "id": "omni-996", + "image_file": "996.png", + "image_sha256": "df2453dc5a8806dc16778c67d699bc216924ef869d1ea700daee04574a2b0b24", + "sets_json_sha256": "df2453dc5a8806dc16778c67d699bc216924ef869d1ea700daee04574a2b0b24", + "qualified": true, + "format": "COMMERCIAL_LEASE_AGREEMENT" + }, + { + "id": "omni-998", + "image_file": "998.png", + "image_sha256": "afa138430e2211b8531d6ea838cb4a024fa552e7538a1c512a0da91d79484cb7", + "sets_json_sha256": "afa138430e2211b8531d6ea838cb4a024fa552e7538a1c512a0da91d79484cb7", + "qualified": true, + "format": "PETITION_FORM" + }, + { + "id": "omni-999", + "image_file": "999.png", + "image_sha256": "b3d7c28d0c1ca867728997fdb49c4016b3c034b609bc00d836a147d8df89fd2d", + "sets_json_sha256": "b3d7c28d0c1ca867728997fdb49c4016b3c034b609bc00d836a147d8df89fd2d", + "qualified": true, + "format": "BANK_CHECK" + } +] \ No newline at end of file diff --git a/examples/doc-field-extraction-omni/sets/pilot.image_manifest.json b/examples/doc-field-extraction-omni/sets/pilot.image_manifest.json new file mode 100644 index 000000000..0e6b1aa61 --- /dev/null +++ b/examples/doc-field-extraction-omni/sets/pilot.image_manifest.json @@ -0,0 +1,1062 @@ +[ + { + "slot": "study", + "id": "omni-101", + "image_file": "101.png", + "image_sha256": "b88a364675d3975830e6616c7581c43da3bc280eab3a0e3432edb17285530ab4", + "sets_json_sha256": "b88a364675d3975830e6616c7581c43da3bc280eab3a0e3432edb17285530ab4", + "qualified": true, + "format": "EQUIPMENT_INSPECTION", + "b64_len": 303256 + }, + { + "slot": "study", + "id": "omni-109", + "image_file": "109.png", + "image_sha256": "8a5587ebc862bd6ee7b85f2532055bdd8cf0cd3d5330385450e33097fce7fe90", + "sets_json_sha256": "8a5587ebc862bd6ee7b85f2532055bdd8cf0cd3d5330385450e33097fce7fe90", + "qualified": true, + "format": "COMMERCIAL_LEASE_AGREEMENT", + "b64_len": 523192 + }, + { + "slot": "study", + "id": "omni-117", + "image_file": "117.png", + "image_sha256": "58c2e25591e394f28a4f5eaae0f19cef17abed0190a7e0d1340dbad442c5e077", + "sets_json_sha256": "58c2e25591e394f28a4f5eaae0f19cef17abed0190a7e0d1340dbad442c5e077", + "qualified": true, + "format": "CREDIT_CARD_STATEMENT", + "b64_len": 497180 + }, + { + "slot": "study", + "id": "omni-135", + "image_file": "135.jpg", + "image_sha256": "9aed5de04c6cb19121dc75e9f3f459bcd8952c3c501262b326a8f1b58ebbc67f", + "sets_json_sha256": "9aed5de04c6cb19121dc75e9f3f459bcd8952c3c501262b326a8f1b58ebbc67f", + "qualified": true, + "format": "REAL_ESTATE", + "b64_len": 3946540 + }, + { + "slot": "study", + "id": "omni-138", + "image_file": "138.png", + "image_sha256": "6c3a0f33860356cae39925e58d86364db3d98407d081713f02aeb615684ae442", + "sets_json_sha256": "6c3a0f33860356cae39925e58d86364db3d98407d081713f02aeb615684ae442", + "qualified": true, + "format": "EQUIPMENT_INSPECTION", + "b64_len": 374756 + }, + { + "slot": "study", + "id": "omni-140", + "image_file": "140.png", + "image_sha256": "304011980636621b8ac30950fb60a0d18c5624a8084db81ee860affeb50766db", + "sets_json_sha256": "304011980636621b8ac30950fb60a0d18c5624a8084db81ee860affeb50766db", + "qualified": true, + "format": "SHIPPING_INVOICE", + "b64_len": 110000 + }, + { + "slot": "study", + "id": "omni-147", + "image_file": "147.png", + "image_sha256": "10bf1dfaaefeddfa065160120c478ee915118de61d6c46615e20f840730c2e33", + "sets_json_sha256": "10bf1dfaaefeddfa065160120c478ee915118de61d6c46615e20f840730c2e33", + "qualified": true, + "format": "DELIVERY_NOTE", + "b64_len": 440160 + }, + { + "slot": "study", + "id": "omni-149", + "image_file": "149.png", + "image_sha256": "3e292358891f4788387f1bcf09ebaa3ef1241f1e3f4e8a03c17297829d136b8a", + "sets_json_sha256": "3e292358891f4788387f1bcf09ebaa3ef1241f1e3f4e8a03c17297829d136b8a", + "qualified": true, + "format": "PETITION_FORM", + "b64_len": 137788 + }, + { + "slot": "study", + "id": "omni-151", + "image_file": "151.png", + "image_sha256": "378185e200bd80cfe71a1e4e540abd3135071066d0000c31f9bfe2337a6affd2", + "sets_json_sha256": "378185e200bd80cfe71a1e4e540abd3135071066d0000c31f9bfe2337a6affd2", + "qualified": true, + "format": "PAY_IN_SHEET", + "b64_len": 156856 + }, + { + "slot": "study", + "id": "omni-158", + "image_file": "158.png", + "image_sha256": "38a69c00e3841d44386a72babca9b8f2ca7ea0572a4314746d36c5a83ded62da", + "sets_json_sha256": "38a69c00e3841d44386a72babca9b8f2ca7ea0572a4314746d36c5a83ded62da", + "qualified": true, + "format": "PROXY_VOTING", + "b64_len": 119428 + }, + { + "slot": "study", + "id": "omni-181", + "image_file": "181.png", + "image_sha256": "c1465a3a07c470bab3bfbe6c23867ea6ca6d961f3a9ec9fa3a7964cf4ed80916", + "sets_json_sha256": "c1465a3a07c470bab3bfbe6c23867ea6ca6d961f3a9ec9fa3a7964cf4ed80916", + "qualified": true, + "format": "PAY_IN_SHEET", + "b64_len": 129472 + }, + { + "slot": "study", + "id": "omni-184", + "image_file": "184.png", + "image_sha256": "384944671240ba6820b70919058d4dff5d078ffaf37b40de1cdf7892d6402c02", + "sets_json_sha256": "384944671240ba6820b70919058d4dff5d078ffaf37b40de1cdf7892d6402c02", + "qualified": true, + "format": "PROXY_VOTING", + "b64_len": 313712 + }, + { + "slot": "study", + "id": "omni-189", + "image_file": "189.png", + "image_sha256": "f48dad0ec6eb9d27bb3550097d645f839c6a661e2cc728d7c4c9ac6efe070ff9", + "sets_json_sha256": "f48dad0ec6eb9d27bb3550097d645f839c6a661e2cc728d7c4c9ac6efe070ff9", + "qualified": true, + "format": "ACCOUNT_STATEMENT", + "b64_len": 888100 + }, + { + "slot": "study", + "id": "omni-196", + "image_file": "196.png", + "image_sha256": "88c260f08349592b663298e1d72edbeafef403ea4583781c58a5deaea63cac7a", + "sets_json_sha256": "88c260f08349592b663298e1d72edbeafef403ea4583781c58a5deaea63cac7a", + "qualified": true, + "format": "REAL_ESTATE", + "b64_len": 91556 + }, + { + "slot": "study", + "id": "omni-198", + "image_file": "198.png", + "image_sha256": "af670b9bd7ec9b508685dcd2f53f0d1d91b261a874a9a8c758ecf819931e0499", + "sets_json_sha256": "af670b9bd7ec9b508685dcd2f53f0d1d91b261a874a9a8c758ecf819931e0499", + "qualified": true, + "format": "PAY_IN_SHEET", + "b64_len": 54512 + }, + { + "slot": "study", + "id": "omni-200", + "image_file": "200.png", + "image_sha256": "d8b0632728a9f69294a3b57e57763fb88a3a3ecd877cfc937ed2e68aef40a8f7", + "sets_json_sha256": "d8b0632728a9f69294a3b57e57763fb88a3a3ecd877cfc937ed2e68aef40a8f7", + "qualified": true, + "format": "PETITION_FORM", + "b64_len": 266064 + }, + { + "slot": "study", + "id": "omni-208", + "image_file": "208.png", + "image_sha256": "f97701f3fa72002142cbc14ab6e98e8a10d408231621e25330af021e3a135b06", + "sets_json_sha256": "f97701f3fa72002142cbc14ab6e98e8a10d408231621e25330af021e3a135b06", + "qualified": true, + "format": "CREDIT_CARD_STATEMENT", + "b64_len": 482012 + }, + { + "slot": "study", + "id": "omni-209", + "image_file": "209.png", + "image_sha256": "c3f5a8513c7aaa1ed4611ecc8452c890edf7f641bee7a8c4b284de12e0c44434", + "sets_json_sha256": "c3f5a8513c7aaa1ed4611ecc8452c890edf7f641bee7a8c4b284de12e0c44434", + "qualified": true, + "format": "PATIENT_INTAKE", + "b64_len": 247640 + }, + { + "slot": "study", + "id": "omni-213", + "image_file": "213.png", + "image_sha256": "ccb4319dc1fc2ef766ccc1f2d4255433743f061b58ae246002a7aeac79031ea2", + "sets_json_sha256": "ccb4319dc1fc2ef766ccc1f2d4255433743f061b58ae246002a7aeac79031ea2", + "qualified": true, + "format": "PATIENT_INTAKE", + "b64_len": 595616 + }, + { + "slot": "study", + "id": "omni-235", + "image_file": "235.png", + "image_sha256": "a483243c4345a03256e5de47733b5644aadedfce2058eed896569a2cf3ad70ab", + "sets_json_sha256": "a483243c4345a03256e5de47733b5644aadedfce2058eed896569a2cf3ad70ab", + "qualified": true, + "format": "PAY_IN_SHEET", + "b64_len": 114652 + }, + { + "slot": "study", + "id": "omni-236", + "image_file": "236.png", + "image_sha256": "b35f4dc0f42f409511c38fc38db6b8bfd0470cba1cb5ff8222d1de34f79c949f", + "sets_json_sha256": "b35f4dc0f42f409511c38fc38db6b8bfd0470cba1cb5ff8222d1de34f79c949f", + "qualified": true, + "format": "COMMERCIAL_LEASE_AGREEMENT", + "b64_len": 589656 + }, + { + "slot": "study", + "id": "omni-248", + "image_file": "248.png", + "image_sha256": "3c4184df5017aa7b3f11d0bf466a3e4a08c851d8c58e1e37ecb514e3080c6623", + "sets_json_sha256": "3c4184df5017aa7b3f11d0bf466a3e4a08c851d8c58e1e37ecb514e3080c6623", + "qualified": true, + "format": "PROXY_VOTING", + "b64_len": 146376 + }, + { + "slot": "study", + "id": "omni-249", + "image_file": "249.png", + "image_sha256": "50d4d63f7e2d1a642ff911c20624abf8ef1d2a1eea1a162a97cb9612999d529a", + "sets_json_sha256": "50d4d63f7e2d1a642ff911c20624abf8ef1d2a1eea1a162a97cb9612999d529a", + "qualified": true, + "format": "COMMERCIAL_LEASE_AGREEMENT", + "b64_len": 200952 + }, + { + "slot": "study", + "id": "omni-251", + "image_file": "251.png", + "image_sha256": "430625a31b815d5f4cd8be5d6ecec5fd5a995f165629c785304da9c0da8d1dc1", + "sets_json_sha256": "430625a31b815d5f4cd8be5d6ecec5fd5a995f165629c785304da9c0da8d1dc1", + "qualified": true, + "format": "PROXY_VOTING", + "b64_len": 255492 + }, + { + "slot": "study", + "id": "omni-255", + "image_file": "255.png", + "image_sha256": "2e3c5c2a6e9a4f0978accd588f4a54a9a6282c92a0830666bc74942a5cf69ea6", + "sets_json_sha256": "2e3c5c2a6e9a4f0978accd588f4a54a9a6282c92a0830666bc74942a5cf69ea6", + "qualified": true, + "format": "DELIVERY_NOTE", + "b64_len": 845944 + }, + { + "slot": "study", + "id": "omni-26", + "image_file": "26.png", + "image_sha256": "b85bb307a08b0f06f1b3264b95d753959776a7f4ebda4d390c77f0c7ed65b68b", + "sets_json_sha256": "b85bb307a08b0f06f1b3264b95d753959776a7f4ebda4d390c77f0c7ed65b68b", + "qualified": true, + "format": "SCANNED_FORM", + "b64_len": 433088 + }, + { + "slot": "study", + "id": "omni-265", + "image_file": "265.png", + "image_sha256": "b1d9795713a307e289545a989f61860d86cbe6d4ffcdfddc64d0d76a228ee0fb", + "sets_json_sha256": "b1d9795713a307e289545a989f61860d86cbe6d4ffcdfddc64d0d76a228ee0fb", + "qualified": true, + "format": "FORM_1040", + "b64_len": 2053056 + }, + { + "slot": "study", + "id": "omni-277", + "image_file": "277.png", + "image_sha256": "8da4e4dfba4b0a100db82aac3fabfc803e58eee61043a2c802c52a8097952d4e", + "sets_json_sha256": "8da4e4dfba4b0a100db82aac3fabfc803e58eee61043a2c802c52a8097952d4e", + "qualified": true, + "format": "EQUIPMENT_INSPECTION", + "b64_len": 143320 + }, + { + "slot": "study", + "id": "omni-285", + "image_file": "285.png", + "image_sha256": "a6192f6d16f2dca33f8597015f05d01779c5c288289b2292f9804bf07f815e56", + "sets_json_sha256": "a6192f6d16f2dca33f8597015f05d01779c5c288289b2292f9804bf07f815e56", + "qualified": true, + "format": "BANK_CHECK", + "b64_len": 328460 + }, + { + "slot": "study", + "id": "omni-286", + "image_file": "286.png", + "image_sha256": "83ccc2a1b7a2eaaf138ce60172992ed5c1608593d8a7f27baf4024b1b2718b22", + "sets_json_sha256": "83ccc2a1b7a2eaaf138ce60172992ed5c1608593d8a7f27baf4024b1b2718b22", + "qualified": true, + "format": "PETITION_FORM", + "b64_len": 361272 + }, + { + "slot": "study", + "id": "omni-292", + "image_file": "292.png", + "image_sha256": "4d56e4e2b29d9d87d7e81346ea5e11089bf520917c69fba8bfa0ddfd4b773192", + "sets_json_sha256": "4d56e4e2b29d9d87d7e81346ea5e11089bf520917c69fba8bfa0ddfd4b773192", + "qualified": true, + "format": "BANK_CHECK", + "b64_len": 142120 + }, + { + "slot": "study", + "id": "omni-30", + "image_file": "30.png", + "image_sha256": "279654591d7de3745e5efaf39d3be413baab267be7170082d1922690566c5ad1", + "sets_json_sha256": "279654591d7de3745e5efaf39d3be413baab267be7170082d1922690566c5ad1", + "qualified": true, + "format": "FORM", + "b64_len": 148108 + }, + { + "slot": "study", + "id": "omni-316", + "image_file": "316.png", + "image_sha256": "0177ba27abd1782e70eb36b95b73e7679e247fb32424582b5f9934cb820f09ed", + "sets_json_sha256": "0177ba27abd1782e70eb36b95b73e7679e247fb32424582b5f9934cb820f09ed", + "qualified": true, + "format": "DELIVERY_NOTE", + "b64_len": 386780 + }, + { + "slot": "study", + "id": "omni-321", + "image_file": "321.png", + "image_sha256": "27e113dc04005fc9ff5dae3d72e007e361d00d4fc8f5e534fd57b8837d931da9", + "sets_json_sha256": "27e113dc04005fc9ff5dae3d72e007e361d00d4fc8f5e534fd57b8837d931da9", + "qualified": true, + "format": "COMMERCIAL_LEASE_AGREEMENT", + "b64_len": 149320 + }, + { + "slot": "study", + "id": "omni-328", + "image_file": "328.png", + "image_sha256": "968ea3b10f6263e4540e828348234ee3e0b77fde84469e5091947b8e63cb2f03", + "sets_json_sha256": "968ea3b10f6263e4540e828348234ee3e0b77fde84469e5091947b8e63cb2f03", + "qualified": true, + "format": "FORM_1040", + "b64_len": 2006948 + }, + { + "slot": "study", + "id": "omni-333", + "image_file": "333.png", + "image_sha256": "167491a6a588f6a3e6820d845714a463d459475d5087d953f84c0db674ba84e5", + "sets_json_sha256": "167491a6a588f6a3e6820d845714a463d459475d5087d953f84c0db674ba84e5", + "qualified": true, + "format": "CREDIT_CARD_STATEMENT", + "b64_len": 454996 + }, + { + "slot": "study", + "id": "omni-338", + "image_file": "338.png", + "image_sha256": "4d5b2e0c9a0fe30554b6f227e8491d1e689fa50197619a1ec8427bca12dbbf98", + "sets_json_sha256": "4d5b2e0c9a0fe30554b6f227e8491d1e689fa50197619a1ec8427bca12dbbf98", + "qualified": true, + "format": "COMMERCIAL_LEASE_AGREEMENT", + "b64_len": 147628 + }, + { + "slot": "study", + "id": "omni-347", + "image_file": "347.png", + "image_sha256": "40db1b5502bdd96d5832642479024c780a167a1f2425efd1b61398a4afc4c274", + "sets_json_sha256": "40db1b5502bdd96d5832642479024c780a167a1f2425efd1b61398a4afc4c274", + "qualified": true, + "format": "FORM_1040", + "b64_len": 743208 + }, + { + "slot": "study", + "id": "omni-353", + "image_file": "353.png", + "image_sha256": "461642416683e70b4d092b6fb24568f2496de85d41cc4dfbb402a0ea9209f416", + "sets_json_sha256": "461642416683e70b4d092b6fb24568f2496de85d41cc4dfbb402a0ea9209f416", + "qualified": true, + "format": "PROXY_VOTING", + "b64_len": 252364 + }, + { + "slot": "study", + "id": "omni-355", + "image_file": "355.png", + "image_sha256": "d935a41575c2411de9791891a4e7c2393a2689dc68307f290e4d99d941ecf406", + "sets_json_sha256": "d935a41575c2411de9791891a4e7c2393a2689dc68307f290e4d99d941ecf406", + "qualified": true, + "format": "BANK_CHECK", + "b64_len": 643240 + }, + { + "slot": "study", + "id": "omni-369", + "image_file": "369.png", + "image_sha256": "a3e52479bbabc0dea5147c20637abe815e9d04cfe9d3431252ee23401ad351e7", + "sets_json_sha256": "a3e52479bbabc0dea5147c20637abe815e9d04cfe9d3431252ee23401ad351e7", + "qualified": true, + "format": "BANK_CHECK", + "b64_len": 792992 + }, + { + "slot": "study", + "id": "omni-384", + "image_file": "384.png", + "image_sha256": "45210207e77bb09b77101fb066fe389fdecb5936bacbeeee35f81df925657306", + "sets_json_sha256": "45210207e77bb09b77101fb066fe389fdecb5936bacbeeee35f81df925657306", + "qualified": true, + "format": "PETITION_FORM", + "b64_len": 314976 + }, + { + "slot": "study", + "id": "omni-388", + "image_file": "388.png", + "image_sha256": "9cfe98c401da955f2572c594ca73b36ce4c84edf8e3b5d0a7979da66c6a19fc1", + "sets_json_sha256": "9cfe98c401da955f2572c594ca73b36ce4c84edf8e3b5d0a7979da66c6a19fc1", + "qualified": true, + "format": "ACCOUNT_STATEMENT", + "b64_len": 386580 + }, + { + "slot": "study", + "id": "omni-396", + "image_file": "396.png", + "image_sha256": "da06b384f5aa77040490f4eb7a20ac213e819b40c025ec90789ab808e8b437d4", + "sets_json_sha256": "da06b384f5aa77040490f4eb7a20ac213e819b40c025ec90789ab808e8b437d4", + "qualified": true, + "format": "CREDIT_CARD_STATEMENT", + "b64_len": 473800 + }, + { + "slot": "study", + "id": "omni-406", + "image_file": "406.png", + "image_sha256": "27b935488ab492a0195de097a75f83b59431e2b5c15b0e0386e7ea8b4f744e8d", + "sets_json_sha256": "27b935488ab492a0195de097a75f83b59431e2b5c15b0e0386e7ea8b4f744e8d", + "qualified": true, + "format": "PETITION_FORM", + "b64_len": 432948 + }, + { + "slot": "study", + "id": "omni-407", + "image_file": "407.q90.jpg", + "image_sha256": "6aa2cf6ee1fc490d41b887c7a3d13614f063374574acecad7055df3e90339ead", + "sets_json_sha256": "6aa2cf6ee1fc490d41b887c7a3d13614f063374574acecad7055df3e90339ead", + "qualified": true, + "format": "DRIVER_LICENSE", + "b64_len": 847844 + }, + { + "slot": "study", + "id": "omni-408", + "image_file": "408.png", + "image_sha256": "5e1725fe6e1456263bb36900ccb46e7856c2aa145949ab71c8b0f34d084c477a", + "sets_json_sha256": "5e1725fe6e1456263bb36900ccb46e7856c2aa145949ab71c8b0f34d084c477a", + "qualified": true, + "format": "BANK_CHECK", + "b64_len": 344968 + }, + { + "slot": "study", + "id": "omni-416", + "image_file": "416.png", + "image_sha256": "ebca2e19c3194fe622b0d71f1cdcaa597ed75ddd4bb8b87eb912e342473e1401", + "sets_json_sha256": "ebca2e19c3194fe622b0d71f1cdcaa597ed75ddd4bb8b87eb912e342473e1401", + "qualified": true, + "format": "REAL_ESTATE", + "b64_len": 311196 + }, + { + "slot": "study", + "id": "omni-418", + "image_file": "418.png", + "image_sha256": "a98ea40e356bc1c3cecb8478e8b48e1cc93700cec36ed3c1d79ffb8720a36708", + "sets_json_sha256": "a98ea40e356bc1c3cecb8478e8b48e1cc93700cec36ed3c1d79ffb8720a36708", + "qualified": true, + "format": "PROXY_VOTING", + "b64_len": 573756 + }, + { + "slot": "study", + "id": "omni-434", + "image_file": "434.png", + "image_sha256": "5046912baea67ae22aa1bdeca5cc3544eb68fad53376bd09158d1ab38d18429d", + "sets_json_sha256": "5046912baea67ae22aa1bdeca5cc3544eb68fad53376bd09158d1ab38d18429d", + "qualified": true, + "format": "PATIENT_INTAKE", + "b64_len": 167364 + }, + { + "slot": "study", + "id": "omni-451", + "image_file": "451.png", + "image_sha256": "a03d1e69d0a89a60b5fdd0e92fdfa4b8282cebfd20289e53462e80123ece589c", + "sets_json_sha256": "a03d1e69d0a89a60b5fdd0e92fdfa4b8282cebfd20289e53462e80123ece589c", + "qualified": true, + "format": "EQUIPMENT_INSPECTION", + "b64_len": 487232 + }, + { + "slot": "study", + "id": "omni-454", + "image_file": "454.png", + "image_sha256": "b156a9119872fe04f3eda70c0ee95de0762b4fc50a101fbc993ebaea7a7544cc", + "sets_json_sha256": "b156a9119872fe04f3eda70c0ee95de0762b4fc50a101fbc993ebaea7a7544cc", + "qualified": true, + "format": "REAL_ESTATE", + "b64_len": 203264 + }, + { + "slot": "study", + "id": "omni-473", + "image_file": "473.png", + "image_sha256": "587b01e8f64fdb1df928b603d54b522d23190e2e4b1d081e79cdac714ce59d9c", + "sets_json_sha256": "587b01e8f64fdb1df928b603d54b522d23190e2e4b1d081e79cdac714ce59d9c", + "qualified": true, + "format": "DELIVERY_NOTE", + "b64_len": 241928 + }, + { + "slot": "study", + "id": "omni-492", + "image_file": "492.png", + "image_sha256": "242bf9c376201327c0bb5b6225ceae20308a7a8ca87dae8dd087e63e44f177ab", + "sets_json_sha256": "242bf9c376201327c0bb5b6225ceae20308a7a8ca87dae8dd087e63e44f177ab", + "qualified": true, + "format": "REAL_ESTATE", + "b64_len": 304632 + }, + { + "slot": "study", + "id": "omni-495", + "image_file": "495.png", + "image_sha256": "4a81b0c72dd2d4421d56dea7283b4ab7fcd022ed5edbcf285f1a02f950a6c55b", + "sets_json_sha256": "4a81b0c72dd2d4421d56dea7283b4ab7fcd022ed5edbcf285f1a02f950a6c55b", + "qualified": true, + "format": "SHIPPING_INVOICE", + "b64_len": 397204 + }, + { + "slot": "study", + "id": "omni-504", + "image_file": "504.png", + "image_sha256": "eccfa2124a2f5160f3bb5949ebb0ad3657c09ec095e7bf7be8897912fab0d3ca", + "sets_json_sha256": "eccfa2124a2f5160f3bb5949ebb0ad3657c09ec095e7bf7be8897912fab0d3ca", + "qualified": true, + "format": "CREDIT_CARD_STATEMENT", + "b64_len": 409320 + }, + { + "slot": "study", + "id": "omni-516", + "image_file": "516.png", + "image_sha256": "44fefc28eeaee93d2daddb53c29e0ab0f4616fa7dc934b608b48a137117e0858", + "sets_json_sha256": "44fefc28eeaee93d2daddb53c29e0ab0f4616fa7dc934b608b48a137117e0858", + "qualified": true, + "format": "CREDIT_CARD_STATEMENT", + "b64_len": 798800 + }, + { + "slot": "study", + "id": "omni-526", + "image_file": "526.png", + "image_sha256": "3b0aa8355b2d07e599eb56608914f2728bb615d2279d67e31e2c0596d8072d1f", + "sets_json_sha256": "3b0aa8355b2d07e599eb56608914f2728bb615d2279d67e31e2c0596d8072d1f", + "qualified": true, + "format": "PETITION_FORM", + "b64_len": 214468 + }, + { + "slot": "study", + "id": "omni-556", + "image_file": "556.png", + "image_sha256": "051167c6fbaf089603216e9417537108a777077fce8aabc254561a4f268ad531", + "sets_json_sha256": "051167c6fbaf089603216e9417537108a777077fce8aabc254561a4f268ad531", + "qualified": true, + "format": "PATIENT_INTAKE", + "b64_len": 138576 + }, + { + "slot": "study", + "id": "omni-586", + "image_file": "586.png", + "image_sha256": "25ef0182813679c69242bf0549325fa2b46cabf39080c8eb1e75816cf26f2c1b", + "sets_json_sha256": "25ef0182813679c69242bf0549325fa2b46cabf39080c8eb1e75816cf26f2c1b", + "qualified": true, + "format": "SHIPPING_INVOICE", + "b64_len": 80780 + }, + { + "slot": "study", + "id": "omni-593", + "image_file": "593.png", + "image_sha256": "9972eba203e83612c20ab1e7609a7b4f9b4f705836be2ac010725ccddd2d7cdb", + "sets_json_sha256": "9972eba203e83612c20ab1e7609a7b4f9b4f705836be2ac010725ccddd2d7cdb", + "qualified": true, + "format": "CREDIT_CARD_STATEMENT", + "b64_len": 433888 + }, + { + "slot": "study", + "id": "omni-607", + "image_file": "607.png", + "image_sha256": "087e416493efa0a3ea079eb5076f85be9a0ae5bf1bbe91e143d749bf5c6872be", + "sets_json_sha256": "087e416493efa0a3ea079eb5076f85be9a0ae5bf1bbe91e143d749bf5c6872be", + "qualified": true, + "format": "EQUIPMENT_INSPECTION", + "b64_len": 250072 + }, + { + "slot": "study", + "id": "omni-632", + "image_file": "632.png", + "image_sha256": "87a2223884a92ac54e0b89612847ca4ce9cb0f6a1e97b903e89c462ed693b588", + "sets_json_sha256": "87a2223884a92ac54e0b89612847ca4ce9cb0f6a1e97b903e89c462ed693b588", + "qualified": true, + "format": "PAY_IN_SHEET", + "b64_len": 144240 + }, + { + "slot": "study", + "id": "omni-662", + "image_file": "662.png", + "image_sha256": "a0dfe2c82cd41c0740772a3305a11ac8b16cbda0dadbe3341431e3a041c67795", + "sets_json_sha256": "a0dfe2c82cd41c0740772a3305a11ac8b16cbda0dadbe3341431e3a041c67795", + "qualified": true, + "format": "REAL_ESTATE", + "b64_len": 183328 + }, + { + "slot": "study", + "id": "omni-683", + "image_file": "683.png", + "image_sha256": "55354100a56f8a72878a9c8fefb990b26870be3614e884771ae8735cfa300b9f", + "sets_json_sha256": "55354100a56f8a72878a9c8fefb990b26870be3614e884771ae8735cfa300b9f", + "qualified": true, + "format": "SHIPPING_INVOICE", + "b64_len": 770972 + }, + { + "slot": "study", + "id": "omni-696", + "image_file": "696.png", + "image_sha256": "9b18458d2cc0602004de215b63770a914861433123b92cb03035d0a2d8cf7111", + "sets_json_sha256": "9b18458d2cc0602004de215b63770a914861433123b92cb03035d0a2d8cf7111", + "qualified": true, + "format": "CREDIT_CARD_STATEMENT", + "b64_len": 245892 + }, + { + "slot": "study", + "id": "omni-705", + "image_file": "705.png", + "image_sha256": "541b2056893db3d71cd0e829af251cc035f43c333eabb73b21018e6448d3098d", + "sets_json_sha256": "541b2056893db3d71cd0e829af251cc035f43c333eabb73b21018e6448d3098d", + "qualified": true, + "format": "REAL_ESTATE", + "b64_len": 79012 + }, + { + "slot": "study", + "id": "omni-721", + "image_file": "721.png", + "image_sha256": "e682242939bf375c71de20bcea7768b2eb8b4f0c4be7dd62515b33c6f3e2edd6", + "sets_json_sha256": "e682242939bf375c71de20bcea7768b2eb8b4f0c4be7dd62515b33c6f3e2edd6", + "qualified": true, + "format": "ACCOUNT_STATEMENT", + "b64_len": 264928 + }, + { + "slot": "study", + "id": "omni-726", + "image_file": "726.png", + "image_sha256": "70211b7ba96493bf3629a9e5bdb91b7841a4dd704bfeafa2b4e5c6ef5f305e58", + "sets_json_sha256": "70211b7ba96493bf3629a9e5bdb91b7841a4dd704bfeafa2b4e5c6ef5f305e58", + "qualified": true, + "format": "PATIENT_INTAKE", + "b64_len": 200108 + }, + { + "slot": "study", + "id": "omni-729", + "image_file": "729.png", + "image_sha256": "daa3b51b8cb7806c339651f961af5ced64439f0d33823d46d7e0f80cd97060e1", + "sets_json_sha256": "daa3b51b8cb7806c339651f961af5ced64439f0d33823d46d7e0f80cd97060e1", + "qualified": true, + "format": "ACCOUNT_STATEMENT", + "b64_len": 328732 + }, + { + "slot": "study", + "id": "omni-734", + "image_file": "734.png", + "image_sha256": "6eb2f434063679efab0d9760c4716a6f9f3aa7621165ccd9381bdf62386dd50c", + "sets_json_sha256": "6eb2f434063679efab0d9760c4716a6f9f3aa7621165ccd9381bdf62386dd50c", + "qualified": true, + "format": "PROXY_VOTING", + "b64_len": 448716 + }, + { + "slot": "study", + "id": "omni-757", + "image_file": "757.png", + "image_sha256": "c5423f82b29fb53ce830bc1026fcdee04b24d75d00f9df67be28e299dad9765f", + "sets_json_sha256": "c5423f82b29fb53ce830bc1026fcdee04b24d75d00f9df67be28e299dad9765f", + "qualified": true, + "format": "CREDIT_CARD_STATEMENT", + "b64_len": 347812 + }, + { + "slot": "study", + "id": "omni-761", + "image_file": "761.png", + "image_sha256": "c9c57f5bbefb1e1822812066cc4c836b9414e0d2e8c7729b6cd592b6d38cbd66", + "sets_json_sha256": "c9c57f5bbefb1e1822812066cc4c836b9414e0d2e8c7729b6cd592b6d38cbd66", + "qualified": true, + "format": "ACCOUNT_STATEMENT", + "b64_len": 1086864 + }, + { + "slot": "study", + "id": "omni-772", + "image_file": "772.jpg", + "image_sha256": "956b508edbb17623de5c2f910340f342f3be106f15b6910b68ddfcc3c2a05f44", + "sets_json_sha256": "956b508edbb17623de5c2f910340f342f3be106f15b6910b68ddfcc3c2a05f44", + "qualified": true, + "format": "SHIPPING_INVOICE", + "b64_len": 542104 + }, + { + "slot": "study", + "id": "omni-773", + "image_file": "773.png", + "image_sha256": "e11ce5b77eea042e4dfb384be163f04fe66a2b37cce79c41cc9111eb29694c03", + "sets_json_sha256": "e11ce5b77eea042e4dfb384be163f04fe66a2b37cce79c41cc9111eb29694c03", + "qualified": true, + "format": "PATIENT_INTAKE", + "b64_len": 317152 + }, + { + "slot": "study", + "id": "omni-775", + "image_file": "775.png", + "image_sha256": "e813f3af00a5c3b2b236a958dd89c3b27c2561d8e5010989c2330442c8726e50", + "sets_json_sha256": "e813f3af00a5c3b2b236a958dd89c3b27c2561d8e5010989c2330442c8726e50", + "qualified": true, + "format": "COMMERCIAL_LEASE_AGREEMENT", + "b64_len": 271116 + }, + { + "slot": "study", + "id": "omni-776", + "image_file": "776.png", + "image_sha256": "a5cefb3e8ae8954be65e38ddde27ec6b939c0ea990adc20a50ad421600894272", + "sets_json_sha256": "a5cefb3e8ae8954be65e38ddde27ec6b939c0ea990adc20a50ad421600894272", + "qualified": true, + "format": "COMMERCIAL_LEASE_AGREEMENT", + "b64_len": 176300 + }, + { + "slot": "study", + "id": "omni-778", + "image_file": "778.png", + "image_sha256": "51433eb7efec7238243759559329db257485861cf5c070dcecd004db19269a6c", + "sets_json_sha256": "51433eb7efec7238243759559329db257485861cf5c070dcecd004db19269a6c", + "qualified": true, + "format": "PATIENT_INTAKE", + "b64_len": 308524 + }, + { + "slot": "study", + "id": "omni-781", + "image_file": "781.png", + "image_sha256": "668864638ab0f79040bc81eff61409df8a85f9bade7c52fb5c1c394ddd97401f", + "sets_json_sha256": "668864638ab0f79040bc81eff61409df8a85f9bade7c52fb5c1c394ddd97401f", + "qualified": true, + "format": "EQUIPMENT_INSPECTION", + "b64_len": 210944 + }, + { + "slot": "study", + "id": "omni-796", + "image_file": "796.png", + "image_sha256": "b761c3314c5f0e29fea0a93b29b0c02aa7f82bda0acc90f4cca66fe6a450acf0", + "sets_json_sha256": "b761c3314c5f0e29fea0a93b29b0c02aa7f82bda0acc90f4cca66fe6a450acf0", + "qualified": true, + "format": "ACCOUNT_STATEMENT", + "b64_len": 777720 + }, + { + "slot": "study", + "id": "omni-797", + "image_file": "797.png", + "image_sha256": "9a027214b153b82752b1a7cc0ac3e4bbdb6c0ff8ac753ebbe68f14dee2e1eb8f", + "sets_json_sha256": "9a027214b153b82752b1a7cc0ac3e4bbdb6c0ff8ac753ebbe68f14dee2e1eb8f", + "qualified": true, + "format": "CREDIT_CARD_STATEMENT", + "b64_len": 205732 + }, + { + "slot": "study", + "id": "omni-814", + "image_file": "814.png", + "image_sha256": "6cc49991d988ad741af404e6be37baa3501a1673fb0f97bc8aaac733d77b81f6", + "sets_json_sha256": "6cc49991d988ad741af404e6be37baa3501a1673fb0f97bc8aaac733d77b81f6", + "qualified": true, + "format": "EQUIPMENT_INSPECTION", + "b64_len": 804636 + }, + { + "slot": "study", + "id": "omni-816", + "image_file": "816.png", + "image_sha256": "3cefb4f4c7084598aaf4579c3d1206ef5cfc5f31c26608243eb651731ab786e9", + "sets_json_sha256": "3cefb4f4c7084598aaf4579c3d1206ef5cfc5f31c26608243eb651731ab786e9", + "qualified": true, + "format": "COMMERCIAL_LEASE_AGREEMENT", + "b64_len": 544328 + }, + { + "slot": "study", + "id": "omni-821", + "image_file": "821.png", + "image_sha256": "199a61a42e062b5bd21c7772bba54ffc21524a2a005d9ebb0f205ad939b46a6a", + "sets_json_sha256": "199a61a42e062b5bd21c7772bba54ffc21524a2a005d9ebb0f205ad939b46a6a", + "qualified": true, + "format": "PAY_IN_SHEET", + "b64_len": 135436 + }, + { + "slot": "study", + "id": "omni-83", + "image_file": "83.png", + "image_sha256": "01a035ba8fb0ab627670b22d327d8732b749b861a4b2f5c1896b9363fd952604", + "sets_json_sha256": "01a035ba8fb0ab627670b22d327d8732b749b861a4b2f5c1896b9363fd952604", + "qualified": true, + "format": "PROXY_VOTING", + "b64_len": 376760 + }, + { + "slot": "study", + "id": "omni-840", + "image_file": "840.png", + "image_sha256": "b2c2b06e92bf657da6bb8fcb5c64c432c5e898b3bb911d14605d994ce336286c", + "sets_json_sha256": "b2c2b06e92bf657da6bb8fcb5c64c432c5e898b3bb911d14605d994ce336286c", + "qualified": true, + "format": "SHIPPING_INVOICE", + "b64_len": 166196 + }, + { + "slot": "study", + "id": "omni-846", + "image_file": "846.png", + "image_sha256": "79edf7340f10efeb72ed8421cf0c850a774b173b3cb20e476f3872700cc9238a", + "sets_json_sha256": "79edf7340f10efeb72ed8421cf0c850a774b173b3cb20e476f3872700cc9238a", + "qualified": true, + "format": "REAL_ESTATE", + "b64_len": 194320 + }, + { + "slot": "study", + "id": "omni-855", + "image_file": "855.jpg", + "image_sha256": "7ef3c4be3a65ba7fde9dc7adfc9d552613422be61f9305aed6e9d83ac6ca1e23", + "sets_json_sha256": "7ef3c4be3a65ba7fde9dc7adfc9d552613422be61f9305aed6e9d83ac6ca1e23", + "qualified": true, + "format": "PATIENT_INTAKE", + "b64_len": 543340 + }, + { + "slot": "study", + "id": "omni-861", + "image_file": "861.png", + "image_sha256": "2624f6adb44fcc38ad5bff480462c2e8066a705a92fea56b4e9f6f37339626e6", + "sets_json_sha256": "2624f6adb44fcc38ad5bff480462c2e8066a705a92fea56b4e9f6f37339626e6", + "qualified": true, + "format": "PETITION_FORM", + "b64_len": 513092 + }, + { + "slot": "study", + "id": "omni-872", + "image_file": "872.png", + "image_sha256": "da8aaa78eb3026397995c80e9e4592ab8c7f281978bb3fd32ed25d6ff0ad705a", + "sets_json_sha256": "da8aaa78eb3026397995c80e9e4592ab8c7f281978bb3fd32ed25d6ff0ad705a", + "qualified": true, + "format": "BANK_CHECK", + "b64_len": 87444 + }, + { + "slot": "study", + "id": "omni-882", + "image_file": "882.png", + "image_sha256": "d90b24db406a0fbf042f925b20486ee939bbddfd5757fe61e35b4a070998042d", + "sets_json_sha256": "d90b24db406a0fbf042f925b20486ee939bbddfd5757fe61e35b4a070998042d", + "qualified": true, + "format": "REAL_ESTATE", + "b64_len": 425640 + }, + { + "slot": "study", + "id": "omni-888", + "image_file": "888.png", + "image_sha256": "0da510fb711e1f512d6f84a93c6b1706b5bb90c447310359e30731befb427f91", + "sets_json_sha256": "0da510fb711e1f512d6f84a93c6b1706b5bb90c447310359e30731befb427f91", + "qualified": true, + "format": "ACCOUNT_STATEMENT", + "b64_len": 263744 + }, + { + "slot": "study", + "id": "omni-903", + "image_file": "903.png", + "image_sha256": "a9f40cc55d5d239775fe739bf48e1d2461a43a5113e2b5e215cd0a389001e1fa", + "sets_json_sha256": "a9f40cc55d5d239775fe739bf48e1d2461a43a5113e2b5e215cd0a389001e1fa", + "qualified": true, + "format": "ACCOUNT_STATEMENT", + "b64_len": 695284 + }, + { + "slot": "study", + "id": "omni-922", + "image_file": "922.png", + "image_sha256": "ddd2719b03d01d442d6d189fd483d7a42d09b60ba186109766e8fe60c42eac2e", + "sets_json_sha256": "ddd2719b03d01d442d6d189fd483d7a42d09b60ba186109766e8fe60c42eac2e", + "qualified": true, + "format": "FORM_1040", + "b64_len": 231776 + }, + { + "slot": "study", + "id": "omni-941", + "image_file": "941.png", + "image_sha256": "ea81007eab5fcd69e6e2313b5a743ae67a8c307429bce55fb0d391b1a47f0de0", + "sets_json_sha256": "ea81007eab5fcd69e6e2313b5a743ae67a8c307429bce55fb0d391b1a47f0de0", + "qualified": true, + "format": "BANK_CHECK", + "b64_len": 403208 + }, + { + "slot": "study", + "id": "omni-948", + "image_file": "948.png", + "image_sha256": "1afee544103a76b688f931efb27618add747ca1b67b1d862a7d70f49cb5c9fe4", + "sets_json_sha256": "1afee544103a76b688f931efb27618add747ca1b67b1d862a7d70f49cb5c9fe4", + "qualified": true, + "format": "FORM_1040", + "b64_len": 781596 + }, + { + "slot": "study", + "id": "omni-963", + "image_file": "963.png", + "image_sha256": "29d61cfc3f35b24c42e8f45c1673259eedd3eeec8abef93dd21ab433c2e3e905", + "sets_json_sha256": "29d61cfc3f35b24c42e8f45c1673259eedd3eeec8abef93dd21ab433c2e3e905", + "qualified": true, + "format": "PAY_IN_SHEET", + "b64_len": 417888 + }, + { + "slot": "study", + "id": "omni-967", + "image_file": "967.png", + "image_sha256": "4208b6ded7a245f8f7b124dee37658e107f6f08d93b704b15a6000c2f2a1ec46", + "sets_json_sha256": "4208b6ded7a245f8f7b124dee37658e107f6f08d93b704b15a6000c2f2a1ec46", + "qualified": true, + "format": "ACCOUNT_STATEMENT", + "b64_len": 308332 + }, + { + "slot": "study", + "id": "omni-974", + "image_file": "974.png", + "image_sha256": "1ccd7326e03dfd09bc34085a8829083d0b46f9d79ca11c7d2b2996f2897070a9", + "sets_json_sha256": "1ccd7326e03dfd09bc34085a8829083d0b46f9d79ca11c7d2b2996f2897070a9", + "qualified": true, + "format": "FORM_1040", + "b64_len": 541568 + }, + { + "slot": "study", + "id": "omni-994", + "image_file": "994.png", + "image_sha256": "4c68f3c8df7d3d779c6cb05313157842dfcfc21a795b2c66d855666d725edc8e", + "sets_json_sha256": "4c68f3c8df7d3d779c6cb05313157842dfcfc21a795b2c66d855666d725edc8e", + "qualified": true, + "format": "BANK_CHECK", + "b64_len": 125304 + }, + { + "slot": "display", + "id": "omni-326", + "image_file": "326.png", + "image_sha256": "32cfc937a0ce7b960d1e07f05179d793be084e42d23c01dae81ad9591edfd7dd", + "sets_json_sha256": "32cfc937a0ce7b960d1e07f05179d793be084e42d23c01dae81ad9591edfd7dd", + "qualified": true, + "format": "DELIVERY_NOTE", + "b64_len": 518632 + }, + { + "slot": "display", + "id": "omni-508", + "image_file": "508.png", + "image_sha256": "3976078e84ade5d7fe333b18e4adf06688d050024ad968273d622077f7d28cc2", + "sets_json_sha256": "3976078e84ade5d7fe333b18e4adf06688d050024ad968273d622077f7d28cc2", + "qualified": true, + "format": "BANK_CHECK", + "b64_len": 142972 + }, + { + "slot": "display", + "id": "omni-159", + "image_file": "159.png", + "image_sha256": "79cc1ff408d113da3d33e3158dc93ab43848f733e7a7662f0a97a46503341450", + "sets_json_sha256": "79cc1ff408d113da3d33e3158dc93ab43848f733e7a7662f0a97a46503341450", + "qualified": true, + "format": "BANK_CHECK", + "b64_len": 2749288 + }, + { + "slot": "display", + "id": "omni-150", + "image_file": "150.png", + "image_sha256": "7690707eb86a1bd80954ecfb427684b182499ec57d24cb97d29c5ec3577684d0", + "sets_json_sha256": "7690707eb86a1bd80954ecfb427684b182499ec57d24cb97d29c5ec3577684d0", + "qualified": true, + "format": "FORM_1040", + "b64_len": 2015912 + }, + { + "slot": "display", + "id": "omni-128", + "image_file": "128.png", + "image_sha256": "396382a80b2e87e5892070c0138ef19be5251aa35323f7269cd13cdc6d36a289", + "sets_json_sha256": "396382a80b2e87e5892070c0138ef19be5251aa35323f7269cd13cdc6d36a289", + "qualified": true, + "format": "CREDIT_CARD_STATEMENT", + "b64_len": 621272 + }, + { + "slot": "display", + "id": "omni-404", + "image_file": "404.png", + "image_sha256": "1f67b74154869ffc56842ac8426b141d1279af5c3fb8647c2baab11ff51dc49d", + "sets_json_sha256": "1f67b74154869ffc56842ac8426b141d1279af5c3fb8647c2baab11ff51dc49d", + "qualified": true, + "format": "BANK_CHECK", + "b64_len": 1847120 + } +] \ No newline at end of file diff --git a/examples/doc-field-extraction-omni/uv.lock b/examples/doc-field-extraction-omni/uv.lock new file mode 100644 index 000000000..8807e51f6 --- /dev/null +++ b/examples/doc-field-extraction-omni/uv.lock @@ -0,0 +1,434 @@ +version = 1 +revision = 3 +requires-python = "==3.12.*" + +[[package]] +name = "aiohappyeyeballs" +version = "2.7.1" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/ce/f4/eec0465c2f67b2664688d0240b3212d5196fd89e741df67ddb81f8d35658/aiohappyeyeballs-2.7.1.tar.gz", hash = "sha256:065665c041c42a5938ed220bdcd7230f22527fbec085e1853d2402c8a3615d9d", size = 24757, upload-time = "2026-07-01T17:11:55.501Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/71/43/1947f06babed6b3f1d7f38b0c767f52df66bfb2bc10b468c4a7de9eceff2/aiohappyeyeballs-2.7.1-py3-none-any.whl", hash = "sha256:9243213661e29250eb41368e5daa826fc017156c3b8a11440826b2e3ed376472", size = 15038, upload-time = "2026-07-01T17:11:54.055Z" }, +] + +[[package]] +name = "aiohttp" +version = "3.14.4" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "aiohappyeyeballs" }, + { name = "aiosignal" }, + { name = "attrs" }, + { name = "frozenlist" }, + { name = "multidict" }, + { name = "propcache" }, + { name = "typing-extensions" }, + { name = "yarl" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/93/2f/6a91adaa2dc26877d6ed2f54c0370c8910f019db7d77c5c6a194611e93ea/aiohttp-3.14.4.tar.gz", hash = "sha256:831fc5bd39ec2517851e348f613ddb5447a47cf4b71cb09845af7ad7ed45d8f9", size = 8077839, upload-time = "2026-10-05T17:43:48.309Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/22/02/db5935d45347fa8ede56b777930740fb0e72bbb4473ddb6ff8541f6f2afa/aiohttp-3.14.4-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:55b0b335982b0db7117dff7f6a8e3aad43c4105f9e392ca04f9fc8d958a95cce", size = 817689, upload-time = "2026-10-05T17:38:50.69Z" }, + { url = "https://files.pythonhosted.org/packages/e6/56/f00aa46127e6342f019d567853eeeb932e04fb9b9424b5fb981ad68f4178/aiohttp-3.14.4-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:2d0d8e435582b0d53009dac99e26a3d2be932ed7c9dbfcfc70f3fce1cf943bd5", size = 549599, upload-time = "2026-10-05T17:38:52.525Z" }, + { url = "https://files.pythonhosted.org/packages/3f/bc/825c09b09962253a2103e4a88c04374ee939c0c8ea31c270daa0308efb07/aiohttp-3.14.4-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:bf734016932d68e1324cfb638cac7a0866a83933a33badf15e836a7e24efb8c0", size = 548132, upload-time = "2026-10-05T17:38:54.629Z" }, + { url = "https://files.pythonhosted.org/packages/40/80/8a1bc8036540fe7cb38219cc5c0aa67d32e9068165725e8199ea8200b08b/aiohttp-3.14.4-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:322e3d741b3133bcbb981a41d4f9b8ac3545c18de49c662c2b1f4e1c770b98ad", size = 1898485, upload-time = "2026-10-05T17:38:56.439Z" }, + { url = "https://files.pythonhosted.org/packages/3c/fe/65b464d8520ace0d65b4ca69bc9abe175f842c8ce8d1522d363d9669903f/aiohttp-3.14.4-cp312-cp312-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:15a3bb5f90a4e515071f3617a45dfe26560beb834a6b6e108cdf4bc9e9719ec3", size = 1875334, upload-time = "2026-10-05T17:38:58.536Z" }, + { url = "https://files.pythonhosted.org/packages/be/51/9c583be502720e927560a8414f4dfb7c7de41945e1a30ccf7003b93c6f85/aiohttp-3.14.4-cp312-cp312-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:6c044e52df1a466af82cad3518c92ea80cc4ddcfea86966ff083bb34bab29bf4", size = 1937772, upload-time = "2026-10-05T17:39:00.376Z" }, + { url = "https://files.pythonhosted.org/packages/a2/3d/b56512df7ea9cbb5f59099a6b375088dd578356a5a3fb27198ab82e19832/aiohttp-3.14.4-cp312-cp312-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:d613d7d51bf06fe9a5e3aab86ce06d835bb0ceb1a31ea9e8766df4a403ae62a6", size = 2066220, upload-time = "2026-10-05T17:39:02.54Z" }, + { url = "https://files.pythonhosted.org/packages/11/6c/a7a42701d9ea319140a3d44a24ec72a00b0b46d1b899b26d8a705e65bdd8/aiohttp-3.14.4-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:c5e93ab6e6330dce40f5b43996f1fc5f2543296d263a5e4b59ff09e73870b7d8", size = 1922895, upload-time = "2026-10-05T17:39:04.638Z" }, + { url = "https://files.pythonhosted.org/packages/77/04/f8337bd824ca3fe3968d34dc5037ace1c4872551c4621f8266239311d301/aiohttp-3.14.4-cp312-cp312-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:20134dc8e68c67e7478124d516449428684c0545b2d3faa575691c8bcbd56678", size = 1712589, upload-time = "2026-10-05T17:39:06.671Z" }, + { url = "https://files.pythonhosted.org/packages/fe/a6/d20e2c940b592d7c4a21690889dbff64fe0ca3facd9190696368694e1488/aiohttp-3.14.4-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:f0daef5ef012369dddc391c61f604111424aa9a96313a69fb899018b09d1b01e", size = 1862251, upload-time = "2026-10-05T17:39:08.523Z" }, + { url = "https://files.pythonhosted.org/packages/f5/e4/d50edd5ae5d024b380a8e892e333840bb22967a9eb9c8492108a403f678a/aiohttp-3.14.4-cp312-cp312-musllinux_1_2_armv7l.whl", hash = "sha256:19290a108de0718b73bc69b86e788975c6a59855c671ebe2a98a07a6f968328f", size = 1895155, upload-time = "2026-10-05T17:39:10.305Z" }, + { url = "https://files.pythonhosted.org/packages/c3/d3/f36f2931f807ccf8437ec15e8f8bfaa4748d4792639401cc767a866abaa0/aiohttp-3.14.4-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:1494877625baeffab669f4a25a09ec4eea721b49e35363081a2a8e4231fe141f", size = 1906623, upload-time = "2026-10-05T17:39:12.411Z" }, + { url = "https://files.pythonhosted.org/packages/5d/0a/94821b711493142bf5e11c27b0d7502776778f7792c77ecc6647357d20c1/aiohttp-3.14.4-cp312-cp312-musllinux_1_2_riscv64.whl", hash = "sha256:a779ce4bf099ce4ad2cdfed62f1ca536d435f53237c54ff40172fddada24d1b5", size = 1698932, upload-time = "2026-10-05T17:39:14.446Z" }, + { url = "https://files.pythonhosted.org/packages/d9/76/3d5a0d28362f0053c1c457024749911932481e8fd105fddf8305b1f93c81/aiohttp-3.14.4-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:0b4cec9fca876e2d4f4c6cb32b177390132d04618867689f43fefabf3f5c3980", size = 1934528, upload-time = "2026-10-05T17:39:16.354Z" }, + { url = "https://files.pythonhosted.org/packages/a7/51/9784a21dc05d2e0f6acaf864f16db53dab0fbd7b0753cef168601eacb012/aiohttp-3.14.4-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:217707313e23aedde9bea67cf8365c7b138b549ae179121ef3f476cf67e3173a", size = 1901984, upload-time = "2026-10-05T17:39:18.299Z" }, + { url = "https://files.pythonhosted.org/packages/44/4f/f98c88703e6d620243aa08473a946ca4e3756b6288690e38f0d9f9c1d007/aiohttp-3.14.4-cp312-cp312-win32.whl", hash = "sha256:18a9fb9a3f6e6e63f4d27f9adeef313a2d3c69a84d31170a844623824e722534", size = 480278, upload-time = "2026-10-05T17:39:20.206Z" }, + { url = "https://files.pythonhosted.org/packages/b7/bc/8555013f84b53e4fdde423131b641af50e822c6d7d9118b24c52b31f6900/aiohttp-3.14.4-cp312-cp312-win_amd64.whl", hash = "sha256:69dcb02d33dfe415d5ee342cc63b7d320efcaf4b761701c7bd7bfb91c715481a", size = 506317, upload-time = "2026-10-05T17:39:22.706Z" }, + { url = "https://files.pythonhosted.org/packages/21/3f/ca5bad7bfdaa7ddca053a044a1c7c0d4f3ad9d1f12f96dcab10bfb9c50e7/aiohttp-3.14.4-cp312-cp312-win_arm64.whl", hash = "sha256:d36b0263e7c2fbf1750b9f35d4e7e48b0442d8c45e4a89e3e74168821fb014bb", size = 487683, upload-time = "2026-10-05T17:39:24.482Z" }, + { url = "https://files.pythonhosted.org/packages/2b/27/5e1f8446545be98e9416af59c396b1ed1f9f3294afb0a40ee3a709889273/aiohttp-3.14.4-py3-none-any.whl", hash = "sha256:5c6758ba62aea282c537179cfc8474a90f2b5f7b089cc5ff66d8920d86a9bfdd", size = 279487, upload-time = "2026-10-05T17:43:44.905Z" }, +] + +[[package]] +name = "aiosignal" +version = "1.4.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "frozenlist" }, + { name = "typing-extensions" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/61/62/06741b579156360248d1ec624842ad0edf697050bbaf7c3e46394e106ad1/aiosignal-1.4.0.tar.gz", hash = "sha256:f47eecd9468083c2029cc99945502cb7708b082c232f9aca65da147157b251c7", size = 25007, upload-time = "2025-07-03T22:54:43.528Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/fb/76/641ae371508676492379f16e2fa48f4e2c11741bd63c48be4b12a6b09cba/aiosignal-1.4.0-py3-none-any.whl", hash = "sha256:053243f8b92b990551949e63930a839ff0cf0b0ebbe0597b0f3fb19e1a0fe82e", size = 7490, upload-time = "2025-07-03T22:54:42.156Z" }, +] + +[[package]] +name = "anyio" +version = "4.15.1" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "idna" }, + { name = "typing-extensions" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/a9/d2/f4d173e22df740bc37b1db102b386ba719b66e95b0f0d751f556b387e6d2/anyio-4.15.1.tar.gz", hash = "sha256:9f28306018cbd6d329e64a36d58256edff76dd996fe423bc957326e578b82a94", size = 276966, upload-time = "2026-09-05T10:42:39.44Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/12/b8/4bd346e22b28902df4d651910f5242c28d84e4a5c2435ca5c3f797ed7e2e/anyio-4.15.1-py3-none-any.whl", hash = "sha256:6152fdbbf9a77fdec97731721bebf7c4c44f7c29b424b0065826173efc7ed101", size = 132079, upload-time = "2026-09-05T10:42:37.923Z" }, +] + +[[package]] +name = "attrs" +version = "26.1.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/9a/8e/82a0fe20a541c03148528be8cac2408564a6c9a0cc7e9171802bc1d26985/attrs-26.1.0.tar.gz", hash = "sha256:d03ceb89cb322a8fd706d4fb91940737b6642aa36998fe130a9bc96c985eff32", size = 952055, upload-time = "2026-03-19T14:22:25.026Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/64/b4/17d4b0b2a2dc85a6df63d1157e028ed19f90d4cd97c36717afef2bc2f395/attrs-26.1.0-py3-none-any.whl", hash = "sha256:c647aa4a12dfbad9333ca4e71fe62ddc36f4e63b2d260a37a8b83d2f043ac309", size = 67548, upload-time = "2026-03-19T14:22:23.645Z" }, +] + +[[package]] +name = "certifi" +version = "2026.7.22" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/a3/c2/24167ea9858356b47a87a50d39908bfdb72ceeefe0041586e704e5376b3a/certifi-2026.7.22.tar.gz", hash = "sha256:741e2c3b351ddf169a738da9f2c048608ff7f2c5cc02f1ebc6b118bb090d5d55", size = 138112, upload-time = "2026-07-22T03:35:12.644Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/0b/a7/71ac2cff56fec219ed242bb11b8efb69fcc4bec75db06fb7bfe35de520e6/certifi-2026.7.22-py3-none-any.whl", hash = "sha256:62f22742b58a1a33014a2b6b706588a8d7e2a88ae7bd1a6ebe8c992928483775", size = 136983, upload-time = "2026-07-22T03:35:11.276Z" }, +] + +[[package]] +name = "frozenlist" +version = "1.8.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/2d/f5/c831fac6cc817d26fd54c7eaccd04ef7e0288806943f7cc5bbf69f3ac1f0/frozenlist-1.8.0.tar.gz", hash = "sha256:3ede829ed8d842f6cd48fc7081d7a41001a56f1f38603f9d49bf3020d59a31ad", size = 45875, upload-time = "2025-10-06T05:38:17.865Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/69/29/948b9aa87e75820a38650af445d2ef2b6b8a6fab1a23b6bb9e4ef0be2d59/frozenlist-1.8.0-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:78f7b9e5d6f2fdb88cdde9440dc147259b62b9d3b019924def9f6478be254ac1", size = 87782, upload-time = "2025-10-06T05:36:06.649Z" }, + { url = "https://files.pythonhosted.org/packages/64/80/4f6e318ee2a7c0750ed724fa33a4bdf1eacdc5a39a7a24e818a773cd91af/frozenlist-1.8.0-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:229bf37d2e4acdaf808fd3f06e854a4a7a3661e871b10dc1f8f1896a3b05f18b", size = 50594, upload-time = "2025-10-06T05:36:07.69Z" }, + { url = "https://files.pythonhosted.org/packages/2b/94/5c8a2b50a496b11dd519f4a24cb5496cf125681dd99e94c604ccdea9419a/frozenlist-1.8.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:f833670942247a14eafbb675458b4e61c82e002a148f49e68257b79296e865c4", size = 50448, upload-time = "2025-10-06T05:36:08.78Z" }, + { url = "https://files.pythonhosted.org/packages/6a/bd/d91c5e39f490a49df14320f4e8c80161cfcce09f1e2cde1edd16a551abb3/frozenlist-1.8.0-cp312-cp312-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:494a5952b1c597ba44e0e78113a7266e656b9794eec897b19ead706bd7074383", size = 242411, upload-time = "2025-10-06T05:36:09.801Z" }, + { url = "https://files.pythonhosted.org/packages/8f/83/f61505a05109ef3293dfb1ff594d13d64a2324ac3482be2cedc2be818256/frozenlist-1.8.0-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:96f423a119f4777a4a056b66ce11527366a8bb92f54e541ade21f2374433f6d4", size = 243014, upload-time = "2025-10-06T05:36:11.394Z" }, + { url = "https://files.pythonhosted.org/packages/d8/cb/cb6c7b0f7d4023ddda30cf56b8b17494eb3a79e3fda666bf735f63118b35/frozenlist-1.8.0-cp312-cp312-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:3462dd9475af2025c31cc61be6652dfa25cbfb56cbbf52f4ccfe029f38decaf8", size = 234909, upload-time = "2025-10-06T05:36:12.598Z" }, + { url = "https://files.pythonhosted.org/packages/31/c5/cd7a1f3b8b34af009fb17d4123c5a778b44ae2804e3ad6b86204255f9ec5/frozenlist-1.8.0-cp312-cp312-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:c4c800524c9cd9bac5166cd6f55285957fcfc907db323e193f2afcd4d9abd69b", size = 250049, upload-time = "2025-10-06T05:36:14.065Z" }, + { url = "https://files.pythonhosted.org/packages/c0/01/2f95d3b416c584a1e7f0e1d6d31998c4a795f7544069ee2e0962a4b60740/frozenlist-1.8.0-cp312-cp312-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:d6a5df73acd3399d893dafc71663ad22534b5aa4f94e8a2fabfe856c3c1b6a52", size = 256485, upload-time = "2025-10-06T05:36:15.39Z" }, + { url = "https://files.pythonhosted.org/packages/ce/03/024bf7720b3abaebcff6d0793d73c154237b85bdf67b7ed55e5e9596dc9a/frozenlist-1.8.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:405e8fe955c2280ce66428b3ca55e12b3c4e9c336fb2103a4937e891c69a4a29", size = 237619, upload-time = "2025-10-06T05:36:16.558Z" }, + { url = "https://files.pythonhosted.org/packages/69/fa/f8abdfe7d76b731f5d8bd217827cf6764d4f1d9763407e42717b4bed50a0/frozenlist-1.8.0-cp312-cp312-musllinux_1_2_armv7l.whl", hash = "sha256:908bd3f6439f2fef9e85031b59fd4f1297af54415fb60e4254a95f75b3cab3f3", size = 250320, upload-time = "2025-10-06T05:36:17.821Z" }, + { url = "https://files.pythonhosted.org/packages/f5/3c/b051329f718b463b22613e269ad72138cc256c540f78a6de89452803a47d/frozenlist-1.8.0-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:294e487f9ec720bd8ffcebc99d575f7eff3568a08a253d1ee1a0378754b74143", size = 246820, upload-time = "2025-10-06T05:36:19.046Z" }, + { url = "https://files.pythonhosted.org/packages/0f/ae/58282e8f98e444b3f4dd42448ff36fa38bef29e40d40f330b22e7108f565/frozenlist-1.8.0-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:74c51543498289c0c43656701be6b077f4b265868fa7f8a8859c197006efb608", size = 250518, upload-time = "2025-10-06T05:36:20.763Z" }, + { url = "https://files.pythonhosted.org/packages/8f/96/007e5944694d66123183845a106547a15944fbbb7154788cbf7272789536/frozenlist-1.8.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:776f352e8329135506a1d6bf16ac3f87bc25b28e765949282dcc627af36123aa", size = 239096, upload-time = "2025-10-06T05:36:22.129Z" }, + { url = "https://files.pythonhosted.org/packages/66/bb/852b9d6db2fa40be96f29c0d1205c306288f0684df8fd26ca1951d461a56/frozenlist-1.8.0-cp312-cp312-win32.whl", hash = "sha256:433403ae80709741ce34038da08511d4a77062aa924baf411ef73d1146e74faf", size = 39985, upload-time = "2025-10-06T05:36:23.661Z" }, + { url = "https://files.pythonhosted.org/packages/b8/af/38e51a553dd66eb064cdf193841f16f077585d4d28394c2fa6235cb41765/frozenlist-1.8.0-cp312-cp312-win_amd64.whl", hash = "sha256:34187385b08f866104f0c0617404c8eb08165ab1272e884abc89c112e9c00746", size = 44591, upload-time = "2025-10-06T05:36:24.958Z" }, + { url = "https://files.pythonhosted.org/packages/a7/06/1dc65480ab147339fecc70797e9c2f69d9cea9cf38934ce08df070fdb9cb/frozenlist-1.8.0-cp312-cp312-win_arm64.whl", hash = "sha256:fe3c58d2f5db5fbd18c2987cba06d51b0529f52bc3a6cdc33d3f4eab725104bd", size = 40102, upload-time = "2025-10-06T05:36:26.333Z" }, + { url = "https://files.pythonhosted.org/packages/9a/9a/e35b4a917281c0b8419d4207f4334c8e8c5dbf4f3f5f9ada73958d937dcc/frozenlist-1.8.0-py3-none-any.whl", hash = "sha256:0c18a16eab41e82c295618a77502e17b195883241c563b00f0aa5106fc4eaa0d", size = 13409, upload-time = "2025-10-06T05:38:16.721Z" }, +] + +[[package]] +name = "h11" +version = "0.16.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/01/ee/02a2c011bdab74c6fb3c75474d40b3052059d95df7e73351460c8588d963/h11-0.16.0.tar.gz", hash = "sha256:4e35b956cf45792e4caa5885e69fba00bdbc6ffafbfa020300e549b208ee5ff1", size = 101250, upload-time = "2025-04-24T03:35:25.427Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/04/4b/29cac41a4d98d144bf5f6d33995617b185d14b22401f75ca86f384e87ff1/h11-0.16.0-py3-none-any.whl", hash = "sha256:63cf8bbe7522de3bf65932fda1d9c2772064ffb3dae62d55932da54b31cb6c86", size = 37515, upload-time = "2025-04-24T03:35:24.344Z" }, +] + +[[package]] +name = "httpcore" +version = "1.0.9" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "certifi" }, + { name = "h11" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/06/94/82699a10bca87a5556c9c59b5963f2d039dbd239f25bc2a63907a05a14cb/httpcore-1.0.9.tar.gz", hash = "sha256:6e34463af53fd2ab5d807f399a9b45ea31c3dfa2276f15a2c3f00afff6e176e8", size = 85484, upload-time = "2025-04-24T22:06:22.219Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/7e/f5/f66802a942d491edb555dd61e3a9961140fd64c90bce1eafd741609d334d/httpcore-1.0.9-py3-none-any.whl", hash = "sha256:2d400746a40668fc9dec9810239072b40b4484b640a8c38fd654a024c7a1bf55", size = 78784, upload-time = "2025-04-24T22:06:20.566Z" }, +] + +[[package]] +name = "httpx" +version = "0.28.1" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "anyio" }, + { name = "certifi" }, + { name = "httpcore" }, + { name = "idna" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/b1/df/48c586a5fe32a0f01324ee087459e112ebb7224f646c0b5023f5e79e9956/httpx-0.28.1.tar.gz", hash = "sha256:75e98c5f16b0f35b567856f597f06ff2270a374470a5c2392242528e3e3e42fc", size = 141406, upload-time = "2024-12-06T15:37:23.222Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/2a/39/e50c7c3a983047577ee07d2a9e53faf5a69493943ec3f6a384bdc792deb2/httpx-0.28.1-py3-none-any.whl", hash = "sha256:d909fcccc110f8c7faf814ca82a9a4d816bc5a6dbfea25d6591d6985b8ba59ad", size = 73517, upload-time = "2024-12-06T15:37:21.509Z" }, +] + +[[package]] +name = "idna" +version = "3.20" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/f5/08/8eea9d4b8302028f3abb2c0813953f7aec26d33b7a8960ed760e65ff29fa/idna-3.20.tar.gz", hash = "sha256:a7db850025b95ded1eae8a46181a1a6c56c92c96f0e2b005d9ff8dc0210cab44", size = 216463, upload-time = "2026-09-17T14:11:04.752Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/58/a2/bb081bab032533a855d44de1d56f8e8426114ff1ba5d1f07a438a0a654f8/idna-3.20-py3-none-any.whl", hash = "sha256:ab7ae7122974553370f0bdb919e1a960b2cd1bc1ef0276416d896db81c14582c", size = 69583, upload-time = "2026-09-17T14:11:03.168Z" }, +] + +[[package]] +name = "msgpack" +version = "1.2.3" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/0a/e7/bb605a7bab2d8425a64b3fa762b39dc1bf1c7e3f11ba6fb5413d6db0ff8c/msgpack-1.2.3.tar.gz", hash = "sha256:32edb81a2b5eb7cd7c9d941b2bfbbb082fd2cd09e0e725930316af6b708db186", size = 196517, upload-time = "2026-09-29T02:33:52.276Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/af/12/4d7c6d6203416d9fbf0f59ebaa805e70fb929b93a41b611bc821ec5964a0/msgpack-1.2.3-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:89c930aece4e972b208ba589c8410b4167b05e411a5ea2cb25fd96f8bc47ee43", size = 91577, upload-time = "2026-09-29T02:32:02.141Z" }, + { url = "https://files.pythonhosted.org/packages/eb/c7/8576ad39f4ca42ddad26f68eb8621d2d0a60501193d480f504bd9d7f36c4/msgpack-1.2.3-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:905a189853d6bdb204c7ae5f4ab77fb857448abfff574d3d93c62e2815b24b4f", size = 90027, upload-time = "2026-09-29T02:32:03.508Z" }, + { url = "https://files.pythonhosted.org/packages/0a/3a/aa9c580aea1314529a0f3562461479780b0d254b064f0880956bfbcc74a8/msgpack-1.2.3-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:f3d7b3d0018746b5997dd6b14a1870b07cc4c327d9101145d94a1fc264a51a06", size = 460343, upload-time = "2026-09-29T02:32:04.906Z" }, + { url = "https://files.pythonhosted.org/packages/3a/cf/9c2e4d6c179529d5bf4a64cff76fa581486569e9fbdd35bd98f51cb624bf/msgpack-1.2.3-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:ede33b2892ceb976283e009ad12fa1834cfdf1f9c43ee9c97849fc588d00a618", size = 472998, upload-time = "2026-09-29T02:32:06.69Z" }, + { url = "https://files.pythonhosted.org/packages/7b/41/915c81fe6df2d3cbdb0dece4f1a5cd313e1cd2abd9f501d0f50c0582517e/msgpack-1.2.3-cp312-cp312-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:666ef5601ab0e6e345e47febc96aa81143cc932201543480cbb9499164f05ffb", size = 423216, upload-time = "2026-09-29T02:32:08.739Z" }, + { url = "https://files.pythonhosted.org/packages/a2/e7/7dda8b1039abfd9bba4c5068172c67135c9e33089f503512db9226f23c24/msgpack-1.2.3-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:87cf2ef05ff2f2493ba29fcdaef27e960ca64dacfd13460ae29e6f92e0ed05bb", size = 451218, upload-time = "2026-09-29T02:32:10.517Z" }, + { url = "https://files.pythonhosted.org/packages/16/5b/ce995c1ed4a0522b7f2d034bc2034fd63005f240b945961b70fb56fbaf3d/msgpack-1.2.3-cp312-cp312-musllinux_1_2_riscv64.whl", hash = "sha256:b774ff994d844e541439ac5d2d49a14def4104830c3465e9394c153f86200ffb", size = 422453, upload-time = "2026-09-29T02:32:11.956Z" }, + { url = "https://files.pythonhosted.org/packages/d2/3f/ce191fb87e2650d0166b34c437e499ee4a7f9db9c1eb164f41725eb6160e/msgpack-1.2.3-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:eaf7e82249837e3aa97297b34a0bb9ff562027381631e057cea6e1367f10b438", size = 469003, upload-time = "2026-09-29T02:32:13.663Z" }, + { url = "https://files.pythonhosted.org/packages/42/35/539123407fe200fb16609c835675496fbeb6017ace9fc93909f0613223ae/msgpack-1.2.3-cp312-cp312-win32.whl", hash = "sha256:7c047250096f9fc19dba26e3d1639b5e7a84114003605c94def667149a70ced1", size = 68303, upload-time = "2026-09-29T02:32:15.02Z" }, + { url = "https://files.pythonhosted.org/packages/6f/4c/331b45f9b86fbda6b9e103244d189068e51f726d8c40021ed66e1f2c415e/msgpack-1.2.3-cp312-cp312-win_amd64.whl", hash = "sha256:3ec409b0d6aa8e9eec6eaf881b893caa215dbe68c5319ca96e8a271d81bb111d", size = 76744, upload-time = "2026-09-29T02:32:16.344Z" }, + { url = "https://files.pythonhosted.org/packages/13/9f/fb572dc42b9fac06c7ea848aaee6e140d84469743bd1402bc07089fc4566/msgpack-1.2.3-cp312-cp312-win_arm64.whl", hash = "sha256:59612b4ed48a04cf024584218e813562f3b30a3bafa5f55abe300b15da314751", size = 71580, upload-time = "2026-09-29T02:32:17.617Z" }, +] + +[[package]] +name = "msgpack-numpy" +version = "0.4.8" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "msgpack" }, + { name = "numpy" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/08/94/61e8aee142733ebfdc400a05bdac6e1763c4514bba3b42743d223f388450/msgpack-numpy-0.4.8.tar.gz", hash = "sha256:c667d3180513422f9c7545be5eec5d296dcbb357e06f72ed39cc683797556e69", size = 10923, upload-time = "2022-06-09T03:43:08.739Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/9b/5d/f25ac7d4fb77cbd53ddc6d05d833c6bf52b12770a44fa9a447eed470ca9a/msgpack_numpy-0.4.8-py2.py3-none-any.whl", hash = "sha256:773c19d4dfbae1b3c7b791083e2caf66983bb19b40901646f61d8731554ae3da", size = 6919, upload-time = "2022-06-09T03:43:06.82Z" }, +] + +[[package]] +name = "multidict" +version = "6.9.1" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/d6/99/1d4d69c3512d0ddbfa3a1b69cfd9a151012ab2eb4eabbb096201b1f0b7d8/multidict-6.9.1.tar.gz", hash = "sha256:0f06e60fa190aa7abd0914c2a766736fdc8e9f34878c4346338534b73d1b20e2", size = 182404, upload-time = "2026-09-21T17:59:05.362Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/d9/0d/4b5afb6d3e545c9af0cdfe2db8f6f4c6664568c23d863d888674e447e6a4/multidict-6.9.1-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:29138fef49828542e859828107e42e50d0e587c513b7eb4b2d92bade2b0860fe", size = 98360, upload-time = "2026-09-21T17:55:11.508Z" }, + { url = "https://files.pythonhosted.org/packages/89/ab/1b9ca66251899981b21138b87da9d5a9c2c81af12b1ea7d19466972f7fe2/multidict-6.9.1-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:19e31815d41cefc365489e591d105d2baceb2f65aa75d29471fbdbda8651e006", size = 59979, upload-time = "2026-09-21T17:55:12.866Z" }, + { url = "https://files.pythonhosted.org/packages/36/eb/6ae44062466c26c8469ef43f2481a6a48d8cea0587b2d54514ec92e2adfd/multidict-6.9.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:6ed30be8918e18c8bed0a2e8b70639ecf02feb61ed00ca2e41cfcb2a50fa3f42", size = 57736, upload-time = "2026-09-21T17:55:14.223Z" }, + { url = "https://files.pythonhosted.org/packages/b9/5c/a67817593019257a4ac8b0d1b4c426030e637c047b0692ef405439ecea7a/multidict-6.9.1-cp312-cp312-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl", hash = "sha256:637f4ae36264bd7b8d9a60193acddc1d735ad52e8ed53a19931ea6d921fea8e5", size = 333097, upload-time = "2026-09-21T17:55:15.591Z" }, + { url = "https://files.pythonhosted.org/packages/90/bf/599ae2e6222822d88a247a8a7ae82fe6fd25d5700757b79603d5edafe6a0/multidict-6.9.1-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:35fc236507fb1b3138f0af5ecd5f94ed752d4d6d826248eae425f86204013eea", size = 334196, upload-time = "2026-09-21T17:55:17.015Z" }, + { url = "https://files.pythonhosted.org/packages/15/10/d8aac5acacbe7f5c117866c776ec26d5f15a868759b6f37ad8e7ed3b5b02/multidict-6.9.1-cp312-cp312-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:e58952f04772f59f11c6e007471449809a30165188669bca8fdb19dde40a8f24", size = 317465, upload-time = "2026-09-21T17:55:18.412Z" }, + { url = "https://files.pythonhosted.org/packages/19/0a/714f796f7293a8b1c5c3f465a26996231d5450c54e85d64ef1258c091134/multidict-6.9.1-cp312-cp312-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:d35a4f1c63f07fbb8c8f9946dea98b21eddf6c57421585f71d91864be3ba2a24", size = 345914, upload-time = "2026-09-21T17:55:20.306Z" }, + { url = "https://files.pythonhosted.org/packages/da/b1/e37fbf769c567be277bcf32df6234035a4384677fcc1bd852752be3d6b93/multidict-6.9.1-cp312-cp312-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:b5f8771aaaed7f80e84a4e471d2f29ab6721e4595075e54d03ae1ed951b2000a", size = 351163, upload-time = "2026-09-21T17:55:22.21Z" }, + { url = "https://files.pythonhosted.org/packages/ed/5b/db08419c1e1f7c9d60cfd2787b2b517d7ae4ebbda8281b48a33eb5141467/multidict-6.9.1-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:976fd7689d69ec78d67d31d38d396d8adb562f7e8368279f76aed4aa451fa06d", size = 336881, upload-time = "2026-09-21T17:55:23.699Z" }, + { url = "https://files.pythonhosted.org/packages/9b/07/cc9bc8a62651d2d53ab93ee4993b3a71b7cb78eb8ebfc9c757a5b6698617/multidict-6.9.1-cp312-cp312-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:95052e8777a86bae87c0bd0b5ab22d809e3d1d02bf69e3e66ddda5ba75a05805", size = 303405, upload-time = "2026-09-21T17:55:25.305Z" }, + { url = "https://files.pythonhosted.org/packages/b6/0c/8e912afafa70e944dbb8bec4b66ca6e008511395278c0d3dd0e89567536a/multidict-6.9.1-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:1a8adfcaf96f587ab138476eaddef95f29b8a2a8a9afbfea8d2fd62180995d02", size = 324265, upload-time = "2026-09-21T17:55:26.989Z" }, + { url = "https://files.pythonhosted.org/packages/66/6a/62c2af80fb085e6234805017af857b8e913dfac7a55e9c1349c27768c58a/multidict-6.9.1-cp312-cp312-musllinux_1_2_armv7l.whl", hash = "sha256:1a53de2772cfb74559df2eb4456ec4eeb908435ec55a84b69370d9d745d62aa8", size = 322085, upload-time = "2026-09-21T17:55:28.732Z" }, + { url = "https://files.pythonhosted.org/packages/f8/6b/35bf801b336fd960811207203ffdcdc24acc3558b3e7ff2e1c914b141e70/multidict-6.9.1-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:0f2ce963299d42fa3f22a90adc0fdf174792ffef5ff4c7ffb68260548fb05580", size = 338107, upload-time = "2026-09-21T17:55:30.303Z" }, + { url = "https://files.pythonhosted.org/packages/80/41/495ef65bf5bba29d142d81b3fe1b8154b919bed70e96491b1e93c3c26f0f/multidict-6.9.1-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:5b30ddf7234e611ca877575b62840e6af5977f92f1f9d532eedbb05a44ff8004", size = 339631, upload-time = "2026-09-21T17:55:32.012Z" }, + { url = "https://files.pythonhosted.org/packages/19/bd/057fdff5f4e04dcd40a960e38f77d19d3c4b67dd243ffa5f43718edb29fc/multidict-6.9.1-cp312-cp312-musllinux_1_2_riscv64.whl", hash = "sha256:63ada7ee2e9345695f9e9bc4c65d72222253f07b1ac94fd0e37555cc6f3c7f60", size = 302080, upload-time = "2026-09-21T17:55:33.817Z" }, + { url = "https://files.pythonhosted.org/packages/3f/de/9ace933ee8dad808632523726f42255b09600087219e3d4ead7369820910/multidict-6.9.1-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:3c95601ed98fad3f6e2f8fe809c3b526b0fab31ef525e00a155e227f3d17f58a", size = 341107, upload-time = "2026-09-21T17:55:35.471Z" }, + { url = "https://files.pythonhosted.org/packages/d8/ac/7c1204406097bfc5c283d4a3287d61166807d189917567df4c1318484fc4/multidict-6.9.1-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:c148e8b596000dd3e4bfe206e70f3e666be18d72032e0012555f2373c52e35d6", size = 333482, upload-time = "2026-09-21T17:55:37.002Z" }, + { url = "https://files.pythonhosted.org/packages/ff/c0/a70c32ea3299ebe00f44533740cb46905717c51faf29bbd3ce8bb5886d9d/multidict-6.9.1-cp312-cp312-win32.whl", hash = "sha256:f9dad513626a33670f17cddc6078e30e311f444c957e8dbfc5b2b4603c8b4edb", size = 52548, upload-time = "2026-09-21T17:55:38.529Z" }, + { url = "https://files.pythonhosted.org/packages/d7/2e/8c9c2591df01e5692ad1bf92febb082a17b1c6c3a19aa8b7ff49988fd989/multidict-6.9.1-cp312-cp312-win_amd64.whl", hash = "sha256:a16a1dc8529f9e734a41c3b856f3eae7ebacdc061dde3f8a844e0c7889c97203", size = 59622, upload-time = "2026-09-21T17:55:39.86Z" }, + { url = "https://files.pythonhosted.org/packages/d0/95/59f4472ec512bc180fd207899594c7803ece96262ff9aaa3a4b6d7da6940/multidict-6.9.1-cp312-cp312-win_arm64.whl", hash = "sha256:361f7206cf341ba94fb015688f5c8b480f8e63bd58a4c14a48aeca7851a241cc", size = 54930, upload-time = "2026-09-21T17:55:41.155Z" }, + { url = "https://files.pythonhosted.org/packages/be/59/e26cb779be4c591d1a910f59d29aca9fba4de70349840a833beba2652371/multidict-6.9.1-py3-none-any.whl", hash = "sha256:7bf6478188f4e47bf5686e8a33da4ae28bf43b1b2528d9ee144d28492bfac60b", size = 19176, upload-time = "2026-09-21T17:59:03.501Z" }, +] + +[[package]] +name = "numpy" +version = "2.5.3" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/13/01/11703282db468b85f6f7b8c7f22d058de5970d5c7e60a3a8aaa313c3de36/numpy-2.5.3.tar.gz", hash = "sha256:df2d5874ff183595a4ba404edd04f6bd9b5505c1d7708573f6a6c17489a67563", size = 20791231, upload-time = "2026-09-06T16:27:47.073Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/d6/50/8fdbb16af64895706a45f06a4068e29db732ec180f3c1375f14123359138/numpy-2.5.3-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:cb189f09db39283b26bfd061ec16189e14f71c6755207f72a0f7540867afe5b9", size = 16994982, upload-time = "2026-09-06T16:24:29.244Z" }, + { url = "https://files.pythonhosted.org/packages/60/39/789131c1188c078dcb3a1692e72e1e050c68b88ffe72c9ccaac9bcd7a9cd/numpy-2.5.3-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:f59a878c33d6b88122d80d239bb3b845d58708750b0cb06a09aebb9b18ec696c", size = 12009327, upload-time = "2026-09-06T16:24:32.491Z" }, + { url = "https://files.pythonhosted.org/packages/9c/59/a312e95696e5f601914dd8b6dd844692ba61670807417e24b68e337b5c70/numpy-2.5.3-cp312-cp312-macosx_14_0_arm64.whl", hash = "sha256:a72f874bc9e10e4b8f80426fb49716d5141f64442a0c8418065093ec8017fbb0", size = 5445405, upload-time = "2026-09-06T16:24:35.071Z" }, + { url = "https://files.pythonhosted.org/packages/30/d0/5623a1707ed4fe16e3909fe3cf5ee3da004ae677ad23d83bbf3adf1a6faf/numpy-2.5.3-cp312-cp312-macosx_14_0_x86_64.whl", hash = "sha256:fc36dc566135b5eceec4cf89758fcb719266a019ef07dae1754ae7c9f617ef3e", size = 6783213, upload-time = "2026-09-06T16:24:37.253Z" }, + { url = "https://files.pythonhosted.org/packages/f1/32/84146fc020ad3c25f805f70ab60da46fe3c540a21369754a7e4369754b6f/numpy-2.5.3-cp312-cp312-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:76c2c1e6bfa5c84adc6434dfbf013aa92096a7985221762c8f11fedfd20fff58", size = 15687872, upload-time = "2026-09-06T16:24:39.751Z" }, + { url = "https://files.pythonhosted.org/packages/65/af/aa78d1a88805456e212b65461354cd943197fb9acecc4c90fd12295123a3/numpy-2.5.3-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:b7e18c623bb5c95acb3b3328861272816ba199fb531921c5d6d0b675f1fde9e3", size = 16717410, upload-time = "2026-09-06T16:24:42.745Z" }, + { url = "https://files.pythonhosted.org/packages/3b/24/faa79d865e69a97ba17473b23a1b74094b2259c03e820c70297293b9ea49/numpy-2.5.3-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:4f8929ee6c96bfbd7b4ed2032e0c03af86fe1826740ab61ddabf9072d06e57ff", size = 17040975, upload-time = "2026-09-06T16:24:45.961Z" }, + { url = "https://files.pythonhosted.org/packages/62/4a/8877e629445a7176297dffcaf9c485faa96a95d81728a62521ad55bd4c0f/numpy-2.5.3-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:b5d93cf48f687479941d12b69c873ad2cc76bbd487f0091c2200636497f34034", size = 18476479, upload-time = "2026-09-06T16:24:49.35Z" }, + { url = "https://files.pythonhosted.org/packages/c8/db/35e1c2d38b04cbd5b731f9d71495e055e813197669d22b612f11748d2ff9/numpy-2.5.3-cp312-cp312-win32.whl", hash = "sha256:bf63afbe037eb5d2fe87fbcc7778e61da53ebaf21d938a4515aa73b62532a5d4", size = 6133378, upload-time = "2026-09-06T16:24:51.915Z" }, + { url = "https://files.pythonhosted.org/packages/3c/a1/accf6d4f0c80c5d9ba9735d6b1550e444180599f34dec69ca01360f717ad/numpy-2.5.3-cp312-cp312-win_amd64.whl", hash = "sha256:0a59a421a32580a009e8a1751345bf829631b990dc1794b80514ab722b435def", size = 12567828, upload-time = "2026-09-06T16:24:54.255Z" }, + { url = "https://files.pythonhosted.org/packages/22/43/1764aff32e4652526ae2f71fa8b3efd8d25c8a3d6926914454e47138ed1e/numpy-2.5.3-cp312-cp312-win_arm64.whl", hash = "sha256:ccb32e0525d29e8b0572eb84c9a57af0e7a4e615726927506f55063c62414034", size = 10485432, upload-time = "2026-09-06T16:24:57.278Z" }, +] + +[[package]] +name = "pillow" +version = "12.2.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/8c/21/c2bcdd5906101a30244eaffc1b6e6ce71a31bd0742a01eb89e660ebfac2d/pillow-12.2.0.tar.gz", hash = "sha256:a830b1a40919539d07806aa58e1b114df53ddd43213d9c8b75847eee6c0182b5", size = 46987819, upload-time = "2026-04-01T14:46:17.687Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/58/be/7482c8a5ebebbc6470b3eb791812fff7d5e0216c2be3827b30b8bb6603ed/pillow-12.2.0-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:2d192a155bbcec180f8564f693e6fd9bccff5a7af9b32e2e4bf8c9c69dbad6b5", size = 5308279, upload-time = "2026-04-01T14:43:13.246Z" }, + { url = "https://files.pythonhosted.org/packages/d8/95/0a351b9289c2b5cbde0bacd4a83ebc44023e835490a727b2a3bd60ddc0f4/pillow-12.2.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:f3f40b3c5a968281fd507d519e444c35f0ff171237f4fdde090dd60699458421", size = 4695490, upload-time = "2026-04-01T14:43:15.584Z" }, + { url = "https://files.pythonhosted.org/packages/de/af/4e8e6869cbed569d43c416fad3dc4ecb944cb5d9492defaed89ddd6fe871/pillow-12.2.0-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:03e7e372d5240cc23e9f07deca4d775c0817bffc641b01e9c3af208dbd300987", size = 6284462, upload-time = "2026-04-01T14:43:18.268Z" }, + { url = "https://files.pythonhosted.org/packages/e9/9e/c05e19657fd57841e476be1ab46c4d501bffbadbafdc31a6d665f8b737b6/pillow-12.2.0-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:b86024e52a1b269467a802258c25521e6d742349d760728092e1bc2d135b4d76", size = 8094744, upload-time = "2026-04-01T14:43:20.716Z" }, + { url = "https://files.pythonhosted.org/packages/2b/54/1789c455ed10176066b6e7e6da1b01e50e36f94ba584dc68d9eebfe9156d/pillow-12.2.0-cp312-cp312-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:7371b48c4fa448d20d2714c9a1f775a81155050d383333e0a6c15b1123dda005", size = 6398371, upload-time = "2026-04-01T14:43:23.443Z" }, + { url = "https://files.pythonhosted.org/packages/43/e3/fdc657359e919462369869f1c9f0e973f353f9a9ee295a39b1fea8ee1a77/pillow-12.2.0-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:62f5409336adb0663b7caa0da5c7d9e7bdbaae9ce761d34669420c2a801b2780", size = 7087215, upload-time = "2026-04-01T14:43:26.758Z" }, + { url = "https://files.pythonhosted.org/packages/8b/f8/2f6825e441d5b1959d2ca5adec984210f1ec086435b0ed5f52c19b3b8a6e/pillow-12.2.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:01afa7cf67f74f09523699b4e88c73fb55c13346d212a59a2db1f86b0a63e8c5", size = 6509783, upload-time = "2026-04-01T14:43:29.56Z" }, + { url = "https://files.pythonhosted.org/packages/67/f9/029a27095ad20f854f9dba026b3ea6428548316e057e6fc3545409e86651/pillow-12.2.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:fc3d34d4a8fbec3e88a79b92e5465e0f9b842b628675850d860b8bd300b159f5", size = 7212112, upload-time = "2026-04-01T14:43:32.091Z" }, + { url = "https://files.pythonhosted.org/packages/be/42/025cfe05d1be22dbfdb4f264fe9de1ccda83f66e4fc3aac94748e784af04/pillow-12.2.0-cp312-cp312-win32.whl", hash = "sha256:58f62cc0f00fd29e64b29f4fd923ffdb3859c9f9e6105bfc37ba1d08994e8940", size = 6378489, upload-time = "2026-04-01T14:43:34.601Z" }, + { url = "https://files.pythonhosted.org/packages/5d/7b/25a221d2c761c6a8ae21bfa3874988ff2583e19cf8a27bf2fee358df7942/pillow-12.2.0-cp312-cp312-win_amd64.whl", hash = "sha256:7f84204dee22a783350679a0333981df803dac21a0190d706a50475e361c93f5", size = 7084129, upload-time = "2026-04-01T14:43:37.213Z" }, + { url = "https://files.pythonhosted.org/packages/10/e1/542a474affab20fd4a0f1836cb234e8493519da6b76899e30bcc5d990b8b/pillow-12.2.0-cp312-cp312-win_arm64.whl", hash = "sha256:af73337013e0b3b46f175e79492d96845b16126ddf79c438d7ea7ff27783a414", size = 2463612, upload-time = "2026-04-01T14:43:39.421Z" }, +] + +[[package]] +name = "propcache" +version = "0.5.4" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/b3/9a/9fbf4e4ec0c2d7f1c32519fff782ef467859b8faa9fbc5331a96f6395d43/propcache-0.5.4.tar.gz", hash = "sha256:ff6b113f50bc066a698db5d944d2c6dc7507168dd3341e255a8892fd0715a558", size = 61545, upload-time = "2026-09-16T00:17:14.386Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/71/cd/348d58f142aebc4873345c6b31087629182ca6e0f2b3caeaa528cf882eba/propcache-0.5.4-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:b28f41fa3b8c6900457f858ec5b03998f3a6d535fbc1bb2edec5961ea05ec429", size = 87285, upload-time = "2026-09-16T00:14:29.362Z" }, + { url = "https://files.pythonhosted.org/packages/df/f4/f3ffaee281b276da854ac1d7a6a506d26cbc62ea2e623756f1d0a4a1ba1a/propcache-0.5.4-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:dcbf346a318a5e30063f547630b02bb787ce2f45b6368d5da143660b6a3835d8", size = 50984, upload-time = "2026-09-16T00:14:30.473Z" }, + { url = "https://files.pythonhosted.org/packages/25/88/1d7df7201750b37765ef2b23bc1c526c028dadde80afa0f57a118fc01182/propcache-0.5.4-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:87a3caecf8095e48dc72f84bfa42e23a848cf410cc9cc13031fba4869b706a21", size = 52460, upload-time = "2026-09-16T00:14:31.692Z" }, + { url = "https://files.pythonhosted.org/packages/83/4f/48865bd02a16ee5236bc46166b2946f37b93e07b0eae355dac0be0b216ca/propcache-0.5.4-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:60a64cbccaa11b7760ce705a14ada17ba459e7ca9f23ba587eb013821032d7ef", size = 251768, upload-time = "2026-09-16T00:14:32.908Z" }, + { url = "https://files.pythonhosted.org/packages/b0/19/3742a5eed62317b03b4002ee865dc9fd720308bdd0da1f29a5786c630311/propcache-0.5.4-cp312-cp312-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:a74bfa37147cc08fb29df10bd9c16f40fa7f860cd3a6d2fff853323a94f6e17f", size = 257723, upload-time = "2026-09-16T00:14:34.267Z" }, + { url = "https://files.pythonhosted.org/packages/cb/d5/ee6350fb0be9122bb6c67082a876d34b90d980d100c106af4b81023e04f4/propcache-0.5.4-cp312-cp312-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:a4d7a54719b67338a305dca2ce6aafe366817df94ddfd4b5514374356f5ca546", size = 265597, upload-time = "2026-09-16T00:14:35.56Z" }, + { url = "https://files.pythonhosted.org/packages/85/9f/83a07b6ec0e043c050cfdd35fb0cf1b7897b91d554d6eea293740309afe7/propcache-0.5.4-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:2814ecd8e818f487bee4b0f921bc4d1c176cc5fc71ac0f072d0fa67eda4ac14b", size = 250424, upload-time = "2026-09-16T00:14:36.894Z" }, + { url = "https://files.pythonhosted.org/packages/33/2c/a763a8251f50fba042af0fb1f02bfec4b31381e40aff760db2be7b2e1f84/propcache-0.5.4-cp312-cp312-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:6af4693716bfb03f1752ef1b30faa593db2c01d5272e9b8564a1549452a979ab", size = 216748, upload-time = "2026-09-16T00:14:38.369Z" }, + { url = "https://files.pythonhosted.org/packages/6a/e2/4d11bea8fd6a777149c6c20645f873952eab5de3a2497aa11648ec9ab6ab/propcache-0.5.4-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:4fbc1a15dc8cd1689508758d626b372b1f09d28d9577667feaf9e6bfcd8efcbc", size = 246533, upload-time = "2026-09-16T00:14:39.82Z" }, + { url = "https://files.pythonhosted.org/packages/9f/36/6683597de4907e70c717e3588c541202c66086a72ff3db58be49de66e72c/propcache-0.5.4-cp312-cp312-musllinux_1_2_armv7l.whl", hash = "sha256:cdee8205a44d0be91bbac4c41b95d86641b72dfc7aef1279400e4fda3f26a937", size = 238173, upload-time = "2026-09-16T00:14:41.259Z" }, + { url = "https://files.pythonhosted.org/packages/85/84/cb08d79f1762daafeb2b030c470cd0c725c97b8ad67412457c6f35c53e9d/propcache-0.5.4-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:9a2a8a50a93dee0268a860a07fa3b4bd968f8ce4dbd794957da772f395368526", size = 251128, upload-time = "2026-09-16T00:14:42.652Z" }, + { url = "https://files.pythonhosted.org/packages/c2/0d/41b848036db6621370c1f2e5471a7da8149c730f8552a5257567721f4576/propcache-0.5.4-cp312-cp312-musllinux_1_2_riscv64.whl", hash = "sha256:7ffafcbfc7b549ab940047e505c831eabac5e67de53e1bc174adbc5285c55944", size = 214821, upload-time = "2026-09-16T00:14:44.112Z" }, + { url = "https://files.pythonhosted.org/packages/f1/b7/adfae4bf9c63bccf12e2d9690a175c6579047a6eec3b5a6a5f51428c15e2/propcache-0.5.4-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:d1f5a500bfcbb2c0ab85e98a0dcd70f5899d34efe365a0187700369a79603031", size = 254793, upload-time = "2026-09-16T00:14:45.429Z" }, + { url = "https://files.pythonhosted.org/packages/51/6f/eeca9647245d5f92e87d53e5f14335bb42fce1a7e6842c8045b364eded8b/propcache-0.5.4-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:8a235f73d6e020855dc29dff012d920c02ee0feab8d73a24185a7569f4be1161", size = 247134, upload-time = "2026-09-16T00:14:46.976Z" }, + { url = "https://files.pythonhosted.org/packages/5d/a9/424e38838793d37160b4379c702f61c74c598fc6cd17204adbe3c554f7a8/propcache-0.5.4-cp312-cp312-win32.whl", hash = "sha256:b3083bfe87f95c756e610bd8025f26cbd1cd4aaa03a422f2d65efb7a97cd53d8", size = 43073, upload-time = "2026-09-16T00:14:48.338Z" }, + { url = "https://files.pythonhosted.org/packages/58/7b/6e8ef26f6d510a7916064fec68d55fcbfbdf7eb01e377480d66a122152d8/propcache-0.5.4-cp312-cp312-win_amd64.whl", hash = "sha256:98914de2c4d7f0f9f4a8c6ea4bf05841f4175796941e3ef7d47eb718f22311fb", size = 46190, upload-time = "2026-09-16T00:14:49.99Z" }, + { url = "https://files.pythonhosted.org/packages/08/b9/72028c5b56ced97f456de6aefa79435ca64d7f77af78ea8cf3c76fc5195f/propcache-0.5.4-cp312-cp312-win_arm64.whl", hash = "sha256:8876b39961e33d912afe3c1bee18ee564fdad0206f873cc15d522756b7f50737", size = 43075, upload-time = "2026-09-16T00:14:51.155Z" }, + { url = "https://files.pythonhosted.org/packages/f5/cd/785c64ed382f3f04201870267b02783f63b4678c2acfddc177a3ebcc2727/propcache-0.5.4-py3-none-any.whl", hash = "sha256:62c60aec739ed00124573cce1178138fd690c7676352d67a37328c1cf51d7468", size = 16338, upload-time = "2026-09-16T00:17:13.106Z" }, +] + +[[package]] +name = "pyyaml" +version = "6.0.3" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/05/8e/961c0007c59b8dd7729d542c61a4d537767a59645b82a0b521206e1e25c2/pyyaml-6.0.3.tar.gz", hash = "sha256:d76623373421df22fb4cf8817020cbb7ef15c725b9d5e45f17e189bfc384190f", size = 130960, upload-time = "2025-09-25T21:33:16.546Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/d1/33/422b98d2195232ca1826284a76852ad5a86fe23e31b009c9886b2d0fb8b2/pyyaml-6.0.3-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:7f047e29dcae44602496db43be01ad42fc6f1cc0d8cd6c83d342306c32270196", size = 182063, upload-time = "2025-09-25T21:32:11.445Z" }, + { url = "https://files.pythonhosted.org/packages/89/a0/6cf41a19a1f2f3feab0e9c0b74134aa2ce6849093d5517a0c550fe37a648/pyyaml-6.0.3-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:fc09d0aa354569bc501d4e787133afc08552722d3ab34836a80547331bb5d4a0", size = 173973, upload-time = "2025-09-25T21:32:12.492Z" }, + { url = "https://files.pythonhosted.org/packages/ed/23/7a778b6bd0b9a8039df8b1b1d80e2e2ad78aa04171592c8a5c43a56a6af4/pyyaml-6.0.3-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:9149cad251584d5fb4981be1ecde53a1ca46c891a79788c0df828d2f166bda28", size = 775116, upload-time = "2025-09-25T21:32:13.652Z" }, + { url = "https://files.pythonhosted.org/packages/65/30/d7353c338e12baef4ecc1b09e877c1970bd3382789c159b4f89d6a70dc09/pyyaml-6.0.3-cp312-cp312-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:5fdec68f91a0c6739b380c83b951e2c72ac0197ace422360e6d5a959d8d97b2c", size = 844011, upload-time = "2025-09-25T21:32:15.21Z" }, + { url = "https://files.pythonhosted.org/packages/8b/9d/b3589d3877982d4f2329302ef98a8026e7f4443c765c46cfecc8858c6b4b/pyyaml-6.0.3-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:ba1cc08a7ccde2d2ec775841541641e4548226580ab850948cbfda66a1befcdc", size = 807870, upload-time = "2025-09-25T21:32:16.431Z" }, + { url = "https://files.pythonhosted.org/packages/05/c0/b3be26a015601b822b97d9149ff8cb5ead58c66f981e04fedf4e762f4bd4/pyyaml-6.0.3-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:8dc52c23056b9ddd46818a57b78404882310fb473d63f17b07d5c40421e47f8e", size = 761089, upload-time = "2025-09-25T21:32:17.56Z" }, + { url = "https://files.pythonhosted.org/packages/be/8e/98435a21d1d4b46590d5459a22d88128103f8da4c2d4cb8f14f2a96504e1/pyyaml-6.0.3-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:41715c910c881bc081f1e8872880d3c650acf13dfa8214bad49ed4cede7c34ea", size = 790181, upload-time = "2025-09-25T21:32:18.834Z" }, + { url = "https://files.pythonhosted.org/packages/74/93/7baea19427dcfbe1e5a372d81473250b379f04b1bd3c4c5ff825e2327202/pyyaml-6.0.3-cp312-cp312-win32.whl", hash = "sha256:96b533f0e99f6579b3d4d4995707cf36df9100d67e0c8303a0c55b27b5f99bc5", size = 137658, upload-time = "2025-09-25T21:32:20.209Z" }, + { url = "https://files.pythonhosted.org/packages/86/bf/899e81e4cce32febab4fb42bb97dcdf66bc135272882d1987881a4b519e9/pyyaml-6.0.3-cp312-cp312-win_amd64.whl", hash = "sha256:5fcd34e47f6e0b794d17de1b4ff496c00986e1c83f7ab2fb8fcfe9616ff7477b", size = 154003, upload-time = "2025-09-25T21:32:21.167Z" }, + { url = "https://files.pythonhosted.org/packages/1a/08/67bd04656199bbb51dbed1439b7f27601dfb576fb864099c7ef0c3e55531/pyyaml-6.0.3-cp312-cp312-win_arm64.whl", hash = "sha256:64386e5e707d03a7e172c0701abfb7e10f0fb753ee1d773128192742712a98fd", size = 140344, upload-time = "2025-09-25T21:32:22.617Z" }, +] + +[[package]] +name = "ruff" +version = "0.16.10" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/c4/49/23802c45f093eb14bde54b141d2b2f058edfa63a06db7beed047308cc08f/ruff-0.16.10.tar.gz", hash = "sha256:eff4728c4eaae93f0955cd264d24b2ab348e74bf59986ccf282ba6dc16b3b017", size = 4958724, upload-time = "2026-10-01T18:03:21.697Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/2f/21/ebce22e1d90cdb2cd691026b9c6e9bec6499f0b396089481755b5d49efff/ruff-0.16.10-py3-none-linux_armv6l.whl", hash = "sha256:488b0fe3f3574210e5cf80d9f59b9e3ab17a127a8155de3f307b392589cfb511", size = 10095557, upload-time = "2026-10-01T18:02:36.072Z" }, + { url = "https://files.pythonhosted.org/packages/cb/98/a54de85876a8b2612bfa0d84c7b9abfb39c6a3354aee7800b09c1649b9e3/ruff-0.16.10-py3-none-macosx_10_12_x86_64.whl", hash = "sha256:e748ff95c934c4e978783b8e687bc174e7bd84e8ad24e3243e1ecfcda5e0282d", size = 10340577, upload-time = "2026-10-01T18:02:39.258Z" }, + { url = "https://files.pythonhosted.org/packages/9f/16/1a5a4a2657effe4806110f2b907313802f1367fcdbb29e8122766e407fab/ruff-0.16.10-py3-none-macosx_11_0_arm64.whl", hash = "sha256:3031a4a2e8e7b8a46f70be45f198c35a11ece509a94b80334d8d397a33c67550", size = 9774282, upload-time = "2026-10-01T18:02:41.79Z" }, + { url = "https://files.pythonhosted.org/packages/6e/fb/470085af734da396e68cd80fb0a3e7c109a459716ae59588c0f6fab8a17d/ruff-0.16.10-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:494401c86df4c4c25f69b9419605d944467ee98c42fb6ad405ef4fa40b8fb67d", size = 9920895, upload-time = "2026-10-01T18:02:44.458Z" }, + { url = "https://files.pythonhosted.org/packages/57/de/f10cffe4f88a37ea6615ec460f01bf76f0bc1477737a35d9ee61a630a78b/ruff-0.16.10-py3-none-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:d203abc0ff2b773ee33d00ab8df0bb67046fbc7c07b119332f08b9b345cf8221", size = 9902707, upload-time = "2026-10-01T18:02:47.041Z" }, + { url = "https://files.pythonhosted.org/packages/ff/44/3fdcedf83ae60ef837dd239170e480dce606a9142cfa2db911afdf855fd9/ruff-0.16.10-py3-none-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:bd83d1235a5258d318477bc5b576303974cbdef5df0c01a1bff14efcc23bd12a", size = 10619287, upload-time = "2026-10-01T18:02:49.485Z" }, + { url = "https://files.pythonhosted.org/packages/c1/62/02e76a5574002153618eafbb70e159468addc72a5d2c488e65cbb4639d2d/ruff-0.16.10-py3-none-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:bc2610fb269fa56dd8a68669ae470fa6272902668c0fc2ebc3aa112b2633d5b8", size = 11339942, upload-time = "2026-10-01T18:02:52.008Z" }, + { url = "https://files.pythonhosted.org/packages/6b/c4/cde27d47ad8d4126c587e608c67c46e7feac11763f606d261a1bc8a489e6/ruff-0.16.10-py3-none-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:3e70175e29cc94c26ea296c80e470180b744b7419026898e58f520c6ab32578e", size = 10934316, upload-time = "2026-10-01T18:02:54.811Z" }, + { url = "https://files.pythonhosted.org/packages/e4/03/17234145f302a645a123e8c3bb2411ecf4669fbc350de3b0d803230a1729/ruff-0.16.10-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f33f43a864a8483eebd160e713336c8bab02c934feaff0a33cf5ccb41546d09a", size = 10387968, upload-time = "2026-10-01T18:02:57.497Z" }, + { url = "https://files.pythonhosted.org/packages/71/29/2493af60240ee7644b38a4b821f5f9c3b5a4fa3178770fe1d0c685217395/ruff-0.16.10-py3-none-manylinux_2_31_riscv64.whl", hash = "sha256:1dfc6f0088149fb6a362c1c446bcbb3fd2157b3852fe2fa68409276eab9ad9b3", size = 10537906, upload-time = "2026-10-01T18:03:00.006Z" }, + { url = "https://files.pythonhosted.org/packages/2e/9a/f56b28f3b143bb9e518c34fb89ab191b626bca8b70dbf8af0d2e2d473572/ruff-0.16.10-py3-none-musllinux_1_2_aarch64.whl", hash = "sha256:6553498afc35f580f036030795810b9e6bcea31604b0fd9e8d352795473042e3", size = 10012938, upload-time = "2026-10-01T18:03:03.006Z" }, + { url = "https://files.pythonhosted.org/packages/c2/c4/fca37362848ea4d4d80712df13632e645e7c7cfb1bdedf140699ac7a090b/ruff-0.16.10-py3-none-musllinux_1_2_armv7l.whl", hash = "sha256:a3b8471dea115d37f123882be852bed13403746d3a76c11de4a19ec5f9ff5a03", size = 9897945, upload-time = "2026-10-01T18:03:05.818Z" }, + { url = "https://files.pythonhosted.org/packages/7d/c7/e0bc57664d6e0c61fd22f620af260fe9662d7e1ddb320ea7f160e76ef165/ruff-0.16.10-py3-none-musllinux_1_2_i686.whl", hash = "sha256:92e59a70bcbd9d3a5483656da906ec28edfdacfce00afd99edb8b4e9d15644be", size = 10333134, upload-time = "2026-10-01T18:03:08.25Z" }, + { url = "https://files.pythonhosted.org/packages/21/aa/5c9f3b68737c0e4a33a1db5dfab44f7b786d96ca91a7233112ddab1e6dc2/ruff-0.16.10-py3-none-musllinux_1_2_x86_64.whl", hash = "sha256:7ae7375f803b5520dc9f546bed7e3a0acb70b91812e9bb4b19927de22f25b77d", size = 10741702, upload-time = "2026-10-01T18:03:10.775Z" }, + { url = "https://files.pythonhosted.org/packages/78/fa/0f9c2020dc316c53d983be011720b8157cc052b97e3f4dfa7db6d0f880a6/ruff-0.16.10-py3-none-win32.whl", hash = "sha256:2a12e01cb9156c10c466f63b46eaae5ecea28dfbd21b5836353ae498e7d1349a", size = 10139176, upload-time = "2026-10-01T18:03:13.267Z" }, + { url = "https://files.pythonhosted.org/packages/99/29/cfb0df9448d4d4ad48c2de029ada9ebd71baa6da983a6c77ee6c6cd0fe82/ruff-0.16.10-py3-none-win_amd64.whl", hash = "sha256:97f2015c92aa97105b0eab19eb5d224884399281cfc5da86a92db4ab5e7fb2ca", size = 10584734, upload-time = "2026-10-01T18:03:16.006Z" }, + { url = "https://files.pythonhosted.org/packages/fc/05/c16957eb287c3fc062e032619a25868d93d408a844b725bcf514f7a378ff/ruff-0.16.10-py3-none-win_arm64.whl", hash = "sha256:25a65fe998c4e6861ec079ada5826a2fc605e6cbccbe9dcd7fac1f54e791621b", size = 10366440, upload-time = "2026-10-01T18:03:19.04Z" }, +] + +[[package]] +name = "sie-sdk" +version = "0.9.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "aiohttp" }, + { name = "httpx" }, + { name = "msgpack" }, + { name = "msgpack-numpy" }, + { name = "numpy" }, + { name = "pillow" }, + { name = "pyyaml" }, + { name = "websockets" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/d3/da/155ac9f15f5a2071d6a3824776688d76b7619d87d9705af3ec36fde2f8c3/sie_sdk-0.9.0.tar.gz", hash = "sha256:36c6a2c41e20983edaec7b39c59e9432c4dde951a87d6f893f3336a21e0d8b5a", size = 294999, upload-time = "2026-09-30T14:05:11.541Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/78/ea/189ff2cac3876c63f37a53bcd15c19bf5319e7d0c79d2e69578314c51fa4/sie_sdk-0.9.0-py3-none-any.whl", hash = "sha256:2d11848f46b81f5dc1cd9a0777b9cbe63b45b0afded912b8f010f3fb3a7566aa", size = 177696, upload-time = "2026-09-30T14:04:56.367Z" }, +] + +[[package]] +name = "superlinked-sie-doc-field-extraction-omni-example" +version = "0.1.0" +source = { virtual = "." } +dependencies = [ + { name = "pillow" }, + { name = "sie-sdk" }, +] + +[package.dev-dependencies] +dev = [ + { name = "ruff" }, +] + +[package.metadata] +requires-dist = [ + { name = "pillow", specifier = "==12.2.0" }, + { name = "sie-sdk", specifier = ">=0.9.0" }, +] + +[package.metadata.requires-dev] +dev = [{ name = "ruff", specifier = ">=0.14" }] + +[[package]] +name = "typing-extensions" +version = "4.16.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/f6/cc/6253133b5bb138fc3306cebfbda2c520f545d36b5be2c7255cc528bb45d6/typing_extensions-4.16.0.tar.gz", hash = "sha256:dc983d19a509c94dba722ee6abd33940f7c05a89e243c47e907eb4db6f1a43e5", size = 113555, upload-time = "2026-07-02T08:40:05.92Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/49/d3/b8441a820a491ddfc024b0b0cf0393375b75ea13866d9c66727e54c2fc80/typing_extensions-4.16.0-py3-none-any.whl", hash = "sha256:481caa481374e813c1b176ada14e97f1f67a4539ce9cfeb3f350d78d6370c2e8", size = 45571, upload-time = "2026-07-02T08:40:04.659Z" }, +] + +[[package]] +name = "websockets" +version = "14.2" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/94/54/8359678c726243d19fae38ca14a334e740782336c9f19700858c4eb64a1e/websockets-14.2.tar.gz", hash = "sha256:5059ed9c54945efb321f097084b4c7e52c246f2c869815876a69d1efc4ad6eb5", size = 164394, upload-time = "2025-01-19T21:00:56.431Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/c1/81/04f7a397653dc8bec94ddc071f34833e8b99b13ef1a3804c149d59f92c18/websockets-14.2-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:1f20522e624d7ffbdbe259c6b6a65d73c895045f76a93719aa10cd93b3de100c", size = 163096, upload-time = "2025-01-19T20:59:29.763Z" }, + { url = "https://files.pythonhosted.org/packages/ec/c5/de30e88557e4d70988ed4d2eabd73fd3e1e52456b9f3a4e9564d86353b6d/websockets-14.2-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:647b573f7d3ada919fd60e64d533409a79dcf1ea21daeb4542d1d996519ca967", size = 160758, upload-time = "2025-01-19T20:59:32.095Z" }, + { url = "https://files.pythonhosted.org/packages/e5/8c/d130d668781f2c77d106c007b6c6c1d9db68239107c41ba109f09e6c218a/websockets-14.2-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:6af99a38e49f66be5a64b1e890208ad026cda49355661549c507152113049990", size = 160995, upload-time = "2025-01-19T20:59:33.527Z" }, + { url = "https://files.pythonhosted.org/packages/a6/bc/f6678a0ff17246df4f06765e22fc9d98d1b11a258cc50c5968b33d6742a1/websockets-14.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:091ab63dfc8cea748cc22c1db2814eadb77ccbf82829bac6b2fbe3401d548eda", size = 170815, upload-time = "2025-01-19T20:59:35.837Z" }, + { url = "https://files.pythonhosted.org/packages/d8/b2/8070cb970c2e4122a6ef38bc5b203415fd46460e025652e1ee3f2f43a9a3/websockets-14.2-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:b374e8953ad477d17e4851cdc66d83fdc2db88d9e73abf755c94510ebddceb95", size = 169759, upload-time = "2025-01-19T20:59:38.216Z" }, + { url = "https://files.pythonhosted.org/packages/81/da/72f7caabd94652e6eb7e92ed2d3da818626e70b4f2b15a854ef60bf501ec/websockets-14.2-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a39d7eceeea35db85b85e1169011bb4321c32e673920ae9c1b6e0978590012a3", size = 170178, upload-time = "2025-01-19T20:59:40.423Z" }, + { url = "https://files.pythonhosted.org/packages/31/e0/812725b6deca8afd3a08a2e81b3c4c120c17f68c9b84522a520b816cda58/websockets-14.2-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:0a6f3efd47ffd0d12080594f434faf1cd2549b31e54870b8470b28cc1d3817d9", size = 170453, upload-time = "2025-01-19T20:59:41.996Z" }, + { url = "https://files.pythonhosted.org/packages/66/d3/8275dbc231e5ba9bb0c4f93144394b4194402a7a0c8ffaca5307a58ab5e3/websockets-14.2-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:065ce275e7c4ffb42cb738dd6b20726ac26ac9ad0a2a48e33ca632351a737267", size = 169830, upload-time = "2025-01-19T20:59:44.669Z" }, + { url = "https://files.pythonhosted.org/packages/a3/ae/e7d1a56755ae15ad5a94e80dd490ad09e345365199600b2629b18ee37bc7/websockets-14.2-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:e9d0e53530ba7b8b5e389c02282f9d2aa47581514bd6049d3a7cffe1385cf5fe", size = 169824, upload-time = "2025-01-19T20:59:46.932Z" }, + { url = "https://files.pythonhosted.org/packages/b6/32/88ccdd63cb261e77b882e706108d072e4f1c839ed723bf91a3e1f216bf60/websockets-14.2-cp312-cp312-win32.whl", hash = "sha256:20e6dd0984d7ca3037afcb4494e48c74ffb51e8013cac71cf607fffe11df7205", size = 163981, upload-time = "2025-01-19T20:59:49.228Z" }, + { url = "https://files.pythonhosted.org/packages/b3/7d/32cdb77990b3bdc34a306e0a0f73a1275221e9a66d869f6ff833c95b56ef/websockets-14.2-cp312-cp312-win_amd64.whl", hash = "sha256:44bba1a956c2c9d268bdcdf234d5e5ff4c9b6dc3e300545cbe99af59dda9dcce", size = 164421, upload-time = "2025-01-19T20:59:50.674Z" }, + { url = "https://files.pythonhosted.org/packages/7b/c8/d529f8a32ce40d98309f4470780631e971a5a842b60aec864833b3615786/websockets-14.2-py3-none-any.whl", hash = "sha256:7a6ceec4ea84469f15cf15807a747e9efe57e369c384fa86e022b3bea679b79b", size = 157416, upload-time = "2025-01-19T21:00:54.843Z" }, +] + +[[package]] +name = "yarl" +version = "1.25.1" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "idna" }, + { name = "multidict" }, + { name = "propcache" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/75/16/e8be8e2fb175bbf41a0680381a319f1199fae256588241a2ac8677eafb49/yarl-1.25.1.tar.gz", hash = "sha256:03dd38de09bc213e9a8b29761eec33ee1d5318dac0e49d8af36e4d27830e23a7", size = 246245, upload-time = "2026-09-15T19:35:02.264Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/75/b3/cd32ac66ae622b854c2df0ac52106dda220d361b65a64fde7d5b3684aa3f/yarl-1.25.1-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:94d7aa6debf92a1dd14cb5280b083a764169a13cfb23a452111160274ed989f4", size = 144798, upload-time = "2026-09-15T19:31:01.821Z" }, + { url = "https://files.pythonhosted.org/packages/61/fb/a2c52a8007c2051ba74662afb112ecf3d00346af4c25e33df9d80fd14fb8/yarl-1.25.1-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:83d4a37e4b95da4d8bda930d6d35b75b4cdadbacbb4980cae290ea3100b5d51d", size = 104583, upload-time = "2026-09-15T19:31:04.05Z" }, + { url = "https://files.pythonhosted.org/packages/be/dd/ee38aec8e09fdf957e50d4085453fbe202f56c6c3b4cf07b81cdb4f09ee9/yarl-1.25.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:e029648f9c951db30e98a7d7ec90835db88ec4b32820efe2a9bdc2287e032eb6", size = 104325, upload-time = "2026-09-15T19:31:06.338Z" }, + { url = "https://files.pythonhosted.org/packages/1e/b3/058dbfb1857b484c9cf9cc135659f50b85ce66e03c99e44dc2f7b6161f55/yarl-1.25.1-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:4d781294bb815ecb5ea57ff6bbf8038e0a31a95fdf3e1788f66e0dc100d64b58", size = 115358, upload-time = "2026-09-15T19:31:08.593Z" }, + { url = "https://files.pythonhosted.org/packages/db/39/29693446cf0cf6b15a0e2f75a5d40f93c56819b05b0622196f45e95b5cc0/yarl-1.25.1-cp312-cp312-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:e12c538e00e7c1b286a07061046b90e8124e6a9793efae2c70db6a4aad07faad", size = 107658, upload-time = "2026-09-15T19:31:10.802Z" }, + { url = "https://files.pythonhosted.org/packages/86/b3/3c4dd7e1af43b931fba95e0a722737f2ea94a6d199c802585282831d7abd/yarl-1.25.1-cp312-cp312-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:7e4de3ac4adbad3d0bc7c6f4360a7dbff5de2f15e3b723be3198074e17fd9c40", size = 122660, upload-time = "2026-09-15T19:31:12.84Z" }, + { url = "https://files.pythonhosted.org/packages/bd/b5/1b60dbc3cfc9c5712b15148c206748f2bc93953ffdbe25ea75b63dfc89c9/yarl-1.25.1-cp312-cp312-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:419f392a1da624877975709e3864dfe833af6cc7671b39318086d456e288380c", size = 126506, upload-time = "2026-09-15T19:31:15.088Z" }, + { url = "https://files.pythonhosted.org/packages/bc/7b/ca212cbe170ac8b96e45317ecbcf9c3c3ecf0cdec98d5b088a9c4088929b/yarl-1.25.1-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:c6f117789d22dce188e5754e8bc65b7e6ebf8cb73963b9fa761f672a5883769d", size = 117050, upload-time = "2026-09-15T19:31:17.241Z" }, + { url = "https://files.pythonhosted.org/packages/cb/c3/72b4938cdbe619ad71ac156182faef4908846b84dc3ca4dbb4c4e6f84014/yarl-1.25.1-cp312-cp312-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:80e47012e730da131c9f059c80936783f9659aae22dc31c03c0595590d11ed54", size = 114174, upload-time = "2026-09-15T19:31:19.294Z" }, + { url = "https://files.pythonhosted.org/packages/e8/43/268717870f9ba0cc9701a95181587f6dc8c5f387aab4aeecc83158f38a79/yarl-1.25.1-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:e80f557716fd765439577131e526b8942ffc2c07bdbc5e39fa62f660ba1e963f", size = 114944, upload-time = "2026-09-15T19:31:21.414Z" }, + { url = "https://files.pythonhosted.org/packages/da/84/baa5bf504d51fe062c4bcaf62936da97fffb43285978d0b39984824231fd/yarl-1.25.1-cp312-cp312-musllinux_1_2_armv7l.whl", hash = "sha256:f61964f235a43738bfac50da46fc4254943a7eea3051aeb0b6fc7c992c29fadc", size = 108263, upload-time = "2026-09-15T19:31:23.388Z" }, + { url = "https://files.pythonhosted.org/packages/a4/28/779a2ed9e0152a601a27039bed9aead3f0b79797a67e2c44bfa444622dd8/yarl-1.25.1-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:e546fe1d4a93ebc2910f0d768baff19faa09843ab3f2036a67ed6e69fae4419d", size = 122184, upload-time = "2026-09-15T19:31:25.343Z" }, + { url = "https://files.pythonhosted.org/packages/f8/1f/118e9e5b8f07694d63fd3222e801d7782270003f1a222aa798df3f8d5933/yarl-1.25.1-cp312-cp312-musllinux_1_2_riscv64.whl", hash = "sha256:cce0727fd5ac04d372fa9bbfde9febc2bcf209aadfcf0468e45dec72719895d1", size = 114001, upload-time = "2026-09-15T19:31:27.465Z" }, + { url = "https://files.pythonhosted.org/packages/0f/ae/a4cf1cf372313734b17996d4007f9f73596e7a178b9485802e5494ecf484/yarl-1.25.1-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:af4ea5b37403ef4e30f3927eaed540db942bde01d8d3ff083527c0704d1c9c68", size = 120565, upload-time = "2026-09-15T19:31:29.47Z" }, + { url = "https://files.pythonhosted.org/packages/05/79/ad94f93ca731bc9e44d321833ab96b82a4f9f5f63cf773f81a4aeea5ecc1/yarl-1.25.1-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:68782fdb4027b8d1eee25ec35e9a6db05e863b899eb0310b3a33b6c3fef55707", size = 117060, upload-time = "2026-09-15T19:31:31.367Z" }, + { url = "https://files.pythonhosted.org/packages/bb/cc/51a7b4abf4ac593b8e7eb3794b28e5a35ae26eed8bc04787628d215af82f/yarl-1.25.1-cp312-cp312-win_amd64.whl", hash = "sha256:7d575b54cb3863ef9bc290ea4b009999d55dc237326131e4853cf33e888fee03", size = 102593, upload-time = "2026-09-15T19:31:33.329Z" }, + { url = "https://files.pythonhosted.org/packages/9d/21/0941a6b93a58b59a1ec75e5333bf06929b671309c43c0cd201c172d9c39f/yarl-1.25.1-cp312-cp312-win_arm64.whl", hash = "sha256:bc3ac7bf569f6b64dad04dd7808c7872dae8a97df657856eac05e9b7e3614a85", size = 97697, upload-time = "2026-09-15T19:31:35.855Z" }, + { url = "https://files.pythonhosted.org/packages/54/22/318c7980066769c6bcd9221ed2248294f5698811da099013098c670565ed/yarl-1.25.1-py3-none-any.whl", hash = "sha256:681c758b0490f9e96b78e5fa8e8dc6e648e9185bb6eaebe73183c33ea0c445f3", size = 63617, upload-time = "2026-09-15T19:34:59.616Z" }, +]