haochengsama commited on
Commit
97cb846
·
verified ·
1 Parent(s): ea1d86f

Add files using upload-large-folder tool

Browse files
This view is limited to 50 files because it contains too many changes.   See raw diff
Files changed (50) hide show
  1. .dockerignore +84 -0
  2. .github/PULL_REQUEST_TEMPLATE.md +20 -0
  3. .gitignore +237 -0
  4. README.md +239 -1
  5. admin-login.json +22 -0
  6. article4-buttons.json +1 -0
  7. arxiv-page.yml +305 -0
  8. capri-search.yml +0 -0
  9. customers.txt +1463 -0
  10. customers_final.yml +1494 -0
  11. docs/installation_and_docker_usage.md +238 -0
  12. docs/introduction.md +89 -0
  13. docs/quickstart.md +59 -0
  14. final-customers.yml +1494 -0
  15. fitness-search.yml +78 -0
  16. form_snapshot.yml +100 -0
  17. forums.yml +412 -0
  18. homepage.yml +59 -0
  19. login-page.yml +24 -0
  20. login.png +0 -0
  21. new-customer.yml +170 -0
  22. page1-snapshot.yml +59 -0
  23. page2-main-text.txt +1 -0
  24. pixi.lock +0 -0
  25. registration-page.png +0 -0
  26. runs/realweb3.log +0 -0
  27. runs/realweb4.log +1478 -0
  28. runs/realweb5.log +0 -0
  29. search-terms-page.yml +244 -0
  30. signup_page.txt +56 -0
  31. src/errors.py +63 -0
  32. src/evaluator.py +442 -0
  33. src/factory.py +189 -0
  34. src/logger.py +19 -0
  35. src/model_config.py +257 -0
  36. stores-menu.yml +327 -0
  37. synth/README.md +126 -0
  38. synth/__init__.py +8 -0
  39. synth/generate.py +185 -0
  40. synth/generators/__init__.py +8 -0
  41. synth/generators/filesystem/__init__.py +34 -0
  42. synth/generators/filesystem/author_folders/__init__.py +86 -0
  43. synth/generators/filesystem/base.py +132 -0
  44. synth/generators/filesystem/budget_computation/__init__.py +105 -0
  45. synth/generators/filesystem/clause_lookup/__init__.py +85 -0
  46. synth/generators/filesystem/duplicate_finder/README.md +240 -0
  47. synth/generators/filesystem/duplicate_finder/__init__.py +165 -0
  48. synth/generators/filesystem/extension_grouping/__init__.py +102 -0
  49. synth/generators/filesystem/file_splitting/__init__.py +86 -0
  50. synth/generators/filesystem/gradebased_score/__init__.py +94 -0
.dockerignore ADDED
@@ -0,0 +1,84 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # Git
2
+ .git
3
+ .gitignore
4
+
5
+ # Python
6
+ __pycache__
7
+ *.pyc
8
+ *.pyo
9
+ *.pyd
10
+ .Python
11
+ *.egg
12
+ *.egg-info/
13
+ dist/
14
+ build/
15
+ .eggs/
16
+ *.so
17
+
18
+ # Virtual environments
19
+ venv/
20
+ env/
21
+ ENV/
22
+ .venv/
23
+
24
+ # IDE
25
+ .vscode/
26
+ .idea/
27
+ *.swp
28
+ *.swo
29
+ *~
30
+ .DS_Store
31
+
32
+ # Environment files (contain secrets)
33
+ .env
34
+ .mcp_env
35
+ notion_state.json
36
+
37
+ # Test and development files
38
+ .pytest_cache/
39
+ .coverage
40
+ htmlcov/
41
+ .tox/
42
+ .mypy_cache/
43
+ .ruff_cache/
44
+ tests/
45
+ test_environments/
46
+
47
+ # Results and logs
48
+ results/
49
+ *.log
50
+ logs/
51
+
52
+ # PostgreSQL data
53
+ .postgres/
54
+
55
+ # Playwright
56
+ playwright-report/
57
+ test-results/
58
+
59
+ # Documentation images
60
+ asset/
61
+
62
+ # Temporary files
63
+ *.tmp
64
+ tmp/
65
+ temp/
66
+
67
+ # Docker
68
+ Dockerfile
69
+ docker-compose.yml
70
+ .dockerignore
71
+
72
+ # Node modules (if any locally installed)
73
+ node_modules/
74
+
75
+ # Pixi lock file
76
+ pixi.lock
77
+ .pixi/
78
+
79
+ # GitHub state files
80
+ github_state/
81
+ github_template_repo/
82
+
83
+ # Backup directories
84
+ .mcpbench_backups/
.github/PULL_REQUEST_TEMPLATE.md ADDED
@@ -0,0 +1,20 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ #### Change Type
2
+
3
+ <!-- For change type, change [ ] to [x]. -->
4
+
5
+ - [ ] ✨ feat
6
+ - [ ] 🐛 fix
7
+ - [ ] ♻️ refactor
8
+ - [ ] 💄 style
9
+ - [ ] 👷 build
10
+ - [ ] ⚡️ perf
11
+ - [ ] 📝 docs
12
+ - [ ] 🔨 chore
13
+
14
+ #### Description of Change
15
+
16
+ <!-- Thank you for your Pull Request. Please provide a description above. -->
17
+
18
+ #### Additional Information
19
+
20
+ <!-- Add any other context about the Pull Request here. -->
.gitignore ADDED
@@ -0,0 +1,237 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ logs
2
+ .claude
3
+ CLAUDE.md
4
+ .gemini
5
+ results
6
+ materials
7
+ scripts
8
+ !.github/scripts
9
+ .nfs*
10
+ .mcp_env
11
+ .idea
12
+ # Byte-compiled / optimized / DLL files
13
+ __pycache__/
14
+ *.py[codz]
15
+ *$py.class
16
+ logs
17
+ logs/*
18
+ .DS_Store
19
+ notion-sdk-py/
20
+ github_state/*
21
+
22
+ # for playwright cookies
23
+ notion_state.json
24
+
25
+ # C extensions
26
+ *.so
27
+
28
+ # Distribution / packaging
29
+ .Python
30
+ build/
31
+ develop-eggs/
32
+ dist/
33
+ downloads/
34
+ eggs/
35
+ .eggs/
36
+ lib/
37
+ lib64/
38
+ parts/
39
+ sdist/
40
+ var/
41
+ wheels/
42
+ share/python-wheels/
43
+ *.egg-info/
44
+ .installed.cfg
45
+ *.egg
46
+ MANIFEST
47
+
48
+ # PyInstaller
49
+ # Usually these files are written by a python script from a template
50
+ # before PyInstaller builds the exe, so as to inject date/other infos into it.
51
+ *.manifest
52
+ *.spec
53
+
54
+ # Installer logs
55
+ pip-log.txt
56
+ pip-delete-this-directory.txt
57
+
58
+ # Unit test / coverage reports
59
+ htmlcov/
60
+ .tox/
61
+ .nox/
62
+ .coverage
63
+ .coverage.*
64
+ .cache
65
+ nosetests.xml
66
+ coverage.xml
67
+ *.cover
68
+ *.py.cover
69
+ .hypothesis/
70
+ .pytest_cache/
71
+ cover/
72
+
73
+ # Translations
74
+ *.mo
75
+ *.pot
76
+
77
+ # Django stuff:
78
+ *.log
79
+ local_settings.py
80
+ db.sqlite3
81
+ db.sqlite3-journal
82
+
83
+ # Flask stuff:
84
+ instance/
85
+ .webassets-cache
86
+
87
+ # Scrapy stuff:
88
+ .scrapy
89
+
90
+ # Sphinx documentation
91
+ docs/_build/
92
+
93
+ # PyBuilder
94
+ .pybuilder/
95
+ target/
96
+
97
+ # Jupyter Notebook
98
+ .ipynb_checkpoints
99
+
100
+ # IPython
101
+ profile_default/
102
+ ipython_config.py
103
+
104
+ # pyenv
105
+ # For a library or package, you might want to ignore these files since the code is
106
+ # intended to run in multiple environments; otherwise, check them in:
107
+ # .python-version
108
+
109
+ # pipenv
110
+ # According to pypa/pipenv#598, it is recommended to include Pipfile.lock in version control.
111
+ # However, in case of collaboration, if having platform-specific dependencies or dependencies
112
+ # having no cross-platform support, pipenv may install dependencies that don't work, or not
113
+ # install all needed dependencies.
114
+ #Pipfile.lock
115
+
116
+ # UV
117
+ # Similar to Pipfile.lock, it is generally recommended to include uv.lock in version control.
118
+ # This is especially recommended for binary packages to ensure reproducibility, and is more
119
+ # commonly ignored for libraries.
120
+ #uv.lock
121
+
122
+ # poetry
123
+ # Similar to Pipfile.lock, it is generally recommended to include poetry.lock in version control.
124
+ # This is especially recommended for binary packages to ensure reproducibility, and is more
125
+ # commonly ignored for libraries.
126
+ # https://python-poetry.org/docs/basic-usage/#commit-your-poetrylock-file-to-version-control
127
+ #poetry.lock
128
+ #poetry.toml
129
+
130
+ # pdm
131
+ # Similar to Pipfile.lock, it is generally recommended to include pdm.lock in version control.
132
+ # pdm recommends including project-wide configuration in pdm.toml, but excluding .pdm-python.
133
+ # https://pdm-project.org/en/latest/usage/project/#working-with-version-control
134
+ #pdm.lock
135
+ #pdm.toml
136
+ .pdm-python
137
+ .pdm-build/
138
+
139
+ # pixi
140
+ # Similar to Pipfile.lock, it is generally recommended to include pixi.lock in version control.
141
+ #pixi.lock
142
+ # Pixi creates a virtual environment in the .pixi directory, just like venv module creates one
143
+ # in the .venv directory. It is recommended not to include this directory in version control.
144
+ .pixi
145
+
146
+ # PEP 582; used by e.g. github.com/David-OConnor/pyflow and github.com/pdm-project/pdm
147
+ __pypackages__/
148
+
149
+ # Celery stuff
150
+ celerybeat-schedule
151
+ celerybeat.pid
152
+
153
+ # SageMath parsed files
154
+ *.sage.py
155
+
156
+ # Environments
157
+ .env
158
+ .envrc
159
+ .venv
160
+ env/
161
+ venv/
162
+ ENV/
163
+ env.bak/
164
+ venv.bak/
165
+
166
+ # Spyder project settings
167
+ .spyderproject
168
+ .spyproject
169
+
170
+ # Rope project settings
171
+ .ropeproject
172
+
173
+ # mkdocs documentation
174
+ /site
175
+
176
+ # mypy
177
+ .mypy_cache/
178
+ .dmypy.json
179
+ dmypy.json
180
+
181
+ # Pyre type checker
182
+ .pyre/
183
+
184
+ # pytype static type analyzer
185
+ .pytype/
186
+
187
+ # Cython debug symbols
188
+ cython_debug/
189
+
190
+ # PyCharm
191
+ # JetBrains specific template is maintained in a separate JetBrains.gitignore that can
192
+ # be found at https://github.com/github/gitignore/blob/main/Global/JetBrains.gitignore
193
+ # and can be added to the global gitignore or merged into this file. For a more nuclear
194
+ # option (not recommended) you can uncomment the following to ignore the entire idea folder.
195
+ #.idea/
196
+
197
+ # Abstra
198
+ # Abstra is an AI-powered process automation framework.
199
+ # Ignore directories containing user credentials, local state, and settings.
200
+ # Learn more at https://abstra.io/docs
201
+ .abstra/
202
+
203
+ # Visual Studio Code
204
+ # Visual Studio Code specific template is maintained in a separate VisualStudioCode.gitignore
205
+ # that can be found at https://github.com/github/gitignore/blob/main/Global/VisualStudioCode.gitignore
206
+ # and can be added to the global gitignore or merged into this file. However, if you prefer,
207
+ # you could uncomment the following to ignore the entire vscode folder
208
+ # .vscode/
209
+
210
+ # Ruff stuff:
211
+ .ruff_cache/
212
+
213
+ # PyPI configuration file
214
+ .pypirc
215
+
216
+ # Cursor
217
+ # Cursor is an AI-powered code editor. `.cursorignore` specifies files/directories to
218
+ # exclude from AI features like autocomplete and code analysis. Recommended for sensitive data
219
+ # refer to https://docs.cursor.com/context/ignore-files
220
+ .cursorignore
221
+ .cursorindexingignore
222
+
223
+ # Marimo
224
+ marimo/_static/
225
+ marimo/_lsp/
226
+ __marimo__/
227
+
228
+ # pixi environments
229
+ .pixi
230
+ *.egg-info
231
+
232
+ .postgres
233
+
234
+ # MCPMark backup directories
235
+ .mcpmark_backups/*
236
+ test_environments/
237
+ postgres_state
README.md CHANGED
@@ -1,3 +1,241 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
  ---
2
- license: apache-2.0
 
 
 
 
 
 
 
 
3
  ---
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <div align="center">
2
+
3
+ # MCPMark: Stress-Testing Comprehensive MCP Use
4
+
5
+ [![Website](https://img.shields.io/badge/Website-mcpmark.ai-4285F4?style=for-the-badge&logo=google-chrome&logoColor=white)](https://mcpmark.ai)
6
+ [![arXiv](https://img.shields.io/badge/arXiv-2509.24002-b31b1b?style=for-the-badge&logo=arxiv&logoColor=white)](https://arxiv.org/abs/2509.24002)
7
+ [![Discord](https://img.shields.io/badge/Join_our_discord-5865F2?style=for-the-badge&logo=discord&logoColor=white)](https://discord.gg/HrKkJAxDnA)
8
+ [![Docs](https://img.shields.io/badge/Docs-000000?style=for-the-badge&logo=mdbook&color=105864)](https://mcpmark.ai/docs)
9
+ [![Hugging Face](https://img.shields.io/badge/Trajectory_Logs-FFD21E?style=for-the-badge&logo=huggingface&logoColor=black)](https://huggingface.co/datasets/Jakumetsu/mcpmark-trajectory-log)
10
+
11
+ </div>
12
+
13
+ An evaluation suite for agentic models in real MCP tool environments (Notion / GitHub / Filesystem / Postgres / Playwright).
14
+
15
+ MCPMark provides a reproducible, extensible benchmark for researchers and engineers: one-command tasks, isolated sandboxes, auto-resume for failures, unified metrics, and aggregated reports.
16
+
17
+ [![MCPMark](https://github.com/user-attachments/assets/dfc06a41-e387-45e3-bc98-db7097ffa3dc)](https://mcpmark.ai)
18
+
19
+ ## News
20
+
21
+ - 📣 **27 May** — The previous Notion Source Hub page is deprecated; please use the new link: [MCPMark Source Hub](https://gossamer-sawfish-47c.notion.site/MCPMark-Source-Hub-dc32b7e8cebd82b8959b81ae322df87a).
22
+ - 📌 **21 Jan** — Pinned MCP server versions for reproducible benchmarks: GitHub MCP Server `v0.15.0` (switched to Docker for version control), Notion MCP Server `@1.9.1` (Notion released 2.0 but it has many bugs, not recommended). See [#246](https://github.com/eval-sys/mcpmark/pull/246).
23
+ - 🔥 **13 Dec** — Added auto-compaction support (`--compaction-token`) to summarize long conversations and avoid context overflow during evaluation ([#236](https://github.com/eval-sys/mcpmark/pull/236])).
24
+ - 🏅 **02 Dec** — Evaluated `gemini-3-pro-preview` (thinking: low): **Pass@1 50.6%** ± 2.3% — so close to `gpt-5-high` (51.6%)! Also `deepseek-v3.2-thinking` 36.8% and `deepseek-v3.2-chat` 29.7%
25
+ - 🔥 **02 Dec** — Obfuscate GitHub @mentions to prevent notification spam during evaluation ([#229](https://github.com/eval-sys/mcpmark/pull/229))
26
+ - 🏅 **01 Dec** — DeepSeek v3.2 uses MCPMark! Kudos on securing the best open-source model. [X Post](https://x.com/deepseek_ai/status/1995452650557763728) | [Technical Report](https://huggingface.co/deepseek-ai/DeepSeek-V3.2/resolve/main/assets/paper.pdf)
27
+ - 🔥 **17 Nov** — Added 50 easy tasks (10 per MCP server) for smaller open-source models ([#225](https://github.com/eval-sys/mcpmark/pull/225))
28
+ - 🤝 **31 Oct** — Community PR from insforge: better MCP servers achieve better results with fewer tokens! ([#214](https://github.com/eval-sys/mcpmark/pull/214))
29
+ - 🔥 **13 Oct** — Added ReAct agent support. PRs for new agent scaffolds welcome! ([#209](https://github.com/eval-sys/mcpmark/pull/209))
30
+ - 🏅 **10 Sep** — `qwen-3-coder-plus` is the best open-source model! Kudos to Qwen team. [X Post](https://x.com/Alibaba_Qwen/status/1965457023438651532)
31
+
32
  ---
33
+
34
+ ## What you can do with MCPMark
35
+
36
+ - **Evaluate real tool usage** across multiple MCP services: `Notion`, `GitHub`, `Filesystem`, `Postgres`, `Playwright`.
37
+ - **Use ready-to-run tasks** covering practical workflows, each with strict automated verification.
38
+ - **Reliable and reproducible**: isolated environments that do not pollute your accounts/data; failed tasks auto-retry and resume.
39
+ - **Unified metrics and aggregation**: single/multi-run (pass@k, avg@k, etc.) with automated results aggregation.
40
+ - **Flexible deployment**: local or Docker; fully validated on macOS and Linux.
41
+
42
  ---
43
+
44
+ ## Quickstart (5 minutes)
45
+
46
+ ### 1) Clone the repository
47
+ ```bash
48
+ git clone https://github.com/eval-sys/mcpmark.git
49
+ cd mcpmark
50
+ ```
51
+
52
+ ### 2) Set environment variables (create `.mcp_env` at repo root)
53
+ Only set what you need. Add service credentials when running tasks for that service.
54
+
55
+ ```env
56
+ # Example: OpenAI
57
+ OPENAI_BASE_URL="https://api.openai.com/v1"
58
+ OPENAI_API_KEY="sk-..."
59
+
60
+ # Optional: Notion (only for Notion tasks)
61
+ SOURCE_NOTION_API_KEY="your-source-notion-api-key"
62
+ EVAL_NOTION_API_KEY="your-eval-notion-api-key"
63
+ EVAL_PARENT_PAGE_TITLE="MCPMark Eval Hub"
64
+ PLAYWRIGHT_BROWSER="chromium" # chromium | firefox
65
+ PLAYWRIGHT_HEADLESS="True"
66
+
67
+ # Optional: GitHub (only for GitHub tasks)
68
+ GITHUB_TOKENS="token1,token2" # token pooling for rate limits
69
+ GITHUB_EVAL_ORG="your-eval-org"
70
+
71
+ # Optional: Postgres (only for Postgres tasks)
72
+ POSTGRES_HOST="localhost"
73
+ POSTGRES_PORT="5432"
74
+ POSTGRES_USERNAME="postgres"
75
+ POSTGRES_PASSWORD="password"
76
+ ```
77
+
78
+ See `docs/introduction.md` and the service guides below for more details.
79
+
80
+ ### 3) Install and run a minimal example
81
+
82
+ Local (Recommended)
83
+ ```bash
84
+ pip install -e .
85
+ # If you'll use browser-based tasks, install Playwright browsers first
86
+ playwright install
87
+ ```
88
+
89
+ MCPMark defaults to the built-in orchestration agent (`MCPMarkAgent`). To experiment with the ReAct-style agent, pass `--agent react` to `pipeline.py` (other settings stay the same).
90
+
91
+ Docker
92
+ ```bash
93
+ ./build-docker.sh
94
+ ```
95
+
96
+ Run a filesystem task (no external accounts required):
97
+ ```bash
98
+ python -m pipeline \
99
+ --mcp filesystem \
100
+ --k 1 \ # run once to quick start
101
+ --models gpt-5 \ # or any model you configured
102
+ --tasks file_property/size_classification
103
+ # Add --task-suite easy to run the lightweight dataset (where available)
104
+ ```
105
+
106
+ Results are saved to `./results/{exp_name}/{model}__{mcp}/run-*/...` for the standard suite and `./results/{exp_name}/{model}__{mcp}-easy/run-*/...` when you run `--task-suite easy` (e.g., `./results/test-run/gpt-5__filesystem/run-1/...` or `./results/test-run/gpt-5__github-easy/run-1/...`).
107
+
108
+ ---
109
+
110
+ ## Run your evaluations
111
+
112
+ ### Task suites (standard vs easy)
113
+
114
+ - Each MCP service now stores tasks under `tasks/<mcp>/<task_suite>/<category>/<task>/`.
115
+ - `standard` (default) covers the full benchmark (127 tasks today).
116
+ - `easy` hosts 10 lightweight tasks per MCP, ideal for smoke tests and CI (GitHub’s are already available under `tasks/github/easy`).
117
+ - Switch suites with `--task-suite easy` (defaults to `--task-suite standard`).
118
+
119
+ ### Single run (k=1)
120
+ ```bash
121
+ # Run ALL tasks for a service
122
+ python -m pipeline --exp-name exp --mcp notion --tasks all --models MODEL --k 1
123
+
124
+ # Run a task group
125
+ python -m pipeline --exp-name exp --mcp notion --tasks online_resume --models MODEL --k 1
126
+
127
+ # Run a specific task
128
+ python -m pipeline --exp-name exp --mcp notion --tasks online_resume/daily_itinerary_overview --models MODEL --k 1
129
+
130
+ # Evaluate multiple models
131
+ python -m pipeline --exp-name exp --mcp notion --tasks all --models MODEL1,MODEL2,MODEL3 --k 1
132
+ ```
133
+
134
+ ### Multiple runs (k>1) for pass@k
135
+ ```bash
136
+ # Run k=4 to compute stability metrics (requires --exp-name to aggregate final results)
137
+ python -m pipeline --exp-name exp --mcp notion --tasks all --models MODEL
138
+
139
+ # Aggregate results (pass@1 / pass@k / pass^k / avg@k)
140
+ python -m src.aggregators.aggregate_results --exp-name exp
141
+ ```
142
+
143
+ ### Run with Docker
144
+ ```bash
145
+ # Run all tasks for a service
146
+ ./run-task.sh --mcp notion --models MODEL --exp-name exp --tasks all
147
+
148
+ # Cross-service benchmark
149
+ ./run-benchmark.sh --models MODEL --exp-name exp --docker
150
+ ```
151
+
152
+ Please visit `docs/introduction.md` for choices of *MODEL*.
153
+
154
+ Tip: MCPMark supports **auto-resume**. When re-running, only unfinished tasks will execute. Failures matching our retryable patterns (see [RETRYABLE_PATTERNS](src/errors.py)) are retried automatically. Models may emit different error strings—if you encounter a new resumable error, please open a PR or issue.
155
+
156
+ Tip: MCPMark supports **auto-compaction**; pass `--compaction-token N` to enable automatic context summarization when prompt tokens reach `N` (use `999999999` to disable).
157
+
158
+ ---
159
+
160
+ ## Service setup and authentication
161
+
162
+ | Service | Setup summary | Docs |
163
+ |-------------|-----------------------------------------------------------------------------------------------------------------|---------------------------------------|
164
+ | Notion | Environment isolation (Source Hub / Eval Hub), integration creation and grants, browser login verification. | [Guide](docs/mcp/notion.md) |
165
+ | GitHub | Multi-account token pooling recommended; import pre-exported repo state if needed. | [Guide](docs/mcp/github.md) |
166
+ | Postgres | Start via Docker and import sample databases. | [Setup](docs/mcp/postgres.md) |
167
+ | Playwright | Install browsers before first run; defaults to `chromium`. | [Setup](docs/mcp/playwright.md) |
168
+ | Filesystem | Zero-configuration, run directly. | [Config](docs/mcp/filesystem.md) |
169
+
170
+ You can also follow [Quickstart](docs/quickstart.md) for the shortest end-to-end path.
171
+
172
+ ### Important Notice: GitHub Repository Privacy
173
+
174
+ > **Please ensure your evaluation repositories are set to PRIVATE.**
175
+
176
+ GitHub state templates are now automatically downloaded from our CDN during evaluation — no manual download is required. However, because these templates contain issues and pull requests from real open-source repositories, the recreation process includes `@username` mentions of the original authors.
177
+
178
+ **We have received feedback from original GitHub authors who were inadvertently notified** when evaluation repositories were created as public. To be a responsible member of the open-source community, we urge all users to:
179
+
180
+ 1. **Always keep evaluation repositories private** during the evaluation process.
181
+ 2. **In the latest version**, we have added random suffixes to all `@username` mentions (e.g., `@user` becomes `@user_x7k2`) and implemented a safety check that prevents importing templates to public repositories.
182
+ 3. **If you are using an older version of MCPMark**, please either:
183
+ - Pull the latest code immediately, or
184
+ - Manually ensure all GitHub evaluation repositories are set to private.
185
+
186
+ Thank you for helping us maintain a respectful relationship with the open-source community.
187
+
188
+ ---
189
+
190
+ ## Results and metrics
191
+
192
+ - Results are organized under `./results/{exp_name}/{model}__{mcp}/run-*/` (JSON + CSV per task).
193
+ - Generate a summary with:
194
+ ```bash
195
+ # Basic usage
196
+ python -m src.aggregators.aggregate_results --exp-name exp
197
+
198
+ # For k-run experiments with single-run models
199
+ python -m src.aggregators.aggregate_results --exp-name exp --k 4 --single-run-models claude-opus-4-1
200
+ ```
201
+ - Only models with complete results across all tasks and runs are included in the final summary.
202
+ - Includes multi-run metrics (pass@k, pass^k) for stability comparisons when k > 1.
203
+
204
+ ---
205
+
206
+ ## Model and Tasks
207
+ - **Model support**: MCPMark calls models via LiteLLM — see the LiteLLM docs: [`LiteLLM Doc`](https://docs.litellm.ai/docs/). For Anthropic (Claude) extended thinking mode (enabled via `--reasoning-effort`), we use Anthropic’s native API.
208
+ - See `docs/introduction.md` for details and configuration of supported models in MCPMark.
209
+ - To add a new model, edit `src/model_config.py`. Before adding, check LiteLLM supported models/providers. See [`LiteLLM Doc`](https://docs.litellm.ai/docs/).
210
+ - Task design principles in `docs/datasets/task.md`. Each task ships with an automated `verify.py` for objective, reproducible evaluation, see `docs/task.md` for details.
211
+
212
+ ---
213
+
214
+ ## Contributing
215
+
216
+ Contributions are welcome:
217
+ 1. Add a new task under `tasks/<mcp>/<task_suite>/<category_id>/<task_id>/` with `meta.json`, `description.md` and `verify.py`.
218
+ 2. Ensure local checks pass and open a PR.
219
+ 3. See `docs/contributing/make-contribution.md`.
220
+
221
+ ---
222
+
223
+ ## Citation
224
+
225
+ If you find our works useful for your research, please consider citing:
226
+
227
+ ```bibtex
228
+ @misc{wu2025mcpmark,
229
+ title={MCPMark: A Benchmark for Stress-Testing Realistic and Comprehensive MCP Use},
230
+ author={Zijian Wu and Xiangyan Liu and Xinyuan Zhang and Lingjun Chen and Fanqing Meng and Lingxiao Du and Yiran Zhao and Fanshi Zhang and Yaoqi Ye and Jiawei Wang and Zirui Wang and Jinjie Ni and Yufan Yang and Arvin Xu and Michael Qizhe Shieh},
231
+ year={2025},
232
+ eprint={2509.24002},
233
+ archivePrefix={arXiv},
234
+ primaryClass={cs.CL},
235
+ url={https://arxiv.org/abs/2509.24002},
236
+ }
237
+ ```
238
+
239
+ ## License
240
+
241
+ This project is licensed under the Apache License 2.0 — see `LICENSE`.
admin-login.json ADDED
@@ -0,0 +1,22 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ - generic [ref=e2]:
2
+ - link "Magento Admin Panel" [ref=e4] [cursor=pointer]:
3
+ - /url: http://localhost:7790/admin/admin/
4
+ - img "Magento Admin Panel" [ref=e5]
5
+ - group "Welcome, please sign in" [ref=e8]:
6
+ - generic [ref=e9]: Welcome, please sign in
7
+ - generic [ref=e10]:
8
+ - generic [ref=e12]: Username *
9
+ - textbox "Username *" [active] [ref=e14]:
10
+ - /placeholder: user name
11
+ - generic [ref=e15]:
12
+ - generic [ref=e17]: Password *
13
+ - textbox "Password *" [ref=e19]:
14
+ - /placeholder: password
15
+ - generic [ref=e20]:
16
+ - button "Sign in" [ref=e22] [cursor=pointer]
17
+ - link "Forgot your password?" [ref=e24] [cursor=pointer]:
18
+ - /url: http://localhost:7790/admin/admin/auth/forgotpassword/
19
+ - generic [ref=e25]:
20
+ - link "Magento":
21
+ - /url: http://magento.com
22
+ - text: Copyright © 2026 Magento Commerce Inc. All rights reserved.
article4-buttons.json ADDED
@@ -0,0 +1 @@
 
 
1
+ "[\n {\n \"index\": 0,\n \"ariaLabel\": null,\n \"className\": \"unbuttonize vote__button vote__up\",\n \"innerText\": \"\",\n \"innerHTML\": \"\\n <span aria-hidden=\\\"true\\\"><span class=\\\"icon icon--with-alt-text icon--no-align\\\"><img src=\\\"data:i\"\n },\n {\n \"index\": 1,\n \"ariaLabel\": null,\n \"className\": \"unbuttonize vote__button vote__down\",\n \"innerText\": \"\",\n \"innerHTML\": \"\\n <span aria-hidden=\\\"true\\\"><span class=\\\"icon icon--with-alt-text icon--no-align\\\"><img src=\\\"data:i\"\n }\n]"
arxiv-page.yml ADDED
@@ -0,0 +1,305 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ - generic [ref=e2]:
2
+ - banner [ref=e3]:
3
+ - link "Skip to main content" [ref=e4] [cursor=pointer]:
4
+ - /url: "#content"
5
+ - generic [ref=e5]:
6
+ - link "Cornell University" [ref=e7] [cursor=pointer]:
7
+ - /url: https://www.cornell.edu/
8
+ - img "Cornell University" [ref=e8]
9
+ - link "Learn about arXiv becoming an independent nonprofit." [ref=e10] [cursor=pointer]:
10
+ - /url: https://tech.cornell.edu/arxiv/
11
+ - generic [ref=e11]:
12
+ - generic [ref=e12]:
13
+ - text: We gratefully acknowledge support from the Simons Foundation,
14
+ - link "member institutions" [ref=e13] [cursor=pointer]:
15
+ - /url: https://info.arxiv.org/about/ourmembers.html
16
+ - text: ", and all contributors."
17
+ - link "Donate" [ref=e14] [cursor=pointer]:
18
+ - /url: https://info.arxiv.org/about/donate.html
19
+ - generic [ref=e15]:
20
+ - generic [ref=e16]:
21
+ - link "arxiv logo" [ref=e17] [cursor=pointer]:
22
+ - /url: /
23
+ - img "arxiv logo" [ref=e18]
24
+ - generic [ref=e19]: ">"
25
+ - link "cs" [ref=e20] [cursor=pointer]:
26
+ - /url: /list/cs/recent
27
+ - generic [ref=e21]: ">"
28
+ - text: arXiv:1907.10902
29
+ - generic [ref=e24]:
30
+ - generic [ref=e25]:
31
+ - textbox "Search term or terms" [ref=e26]:
32
+ - /placeholder: Search...
33
+ - paragraph [ref=e27]:
34
+ - link "Help" [ref=e28] [cursor=pointer]:
35
+ - /url: https://info.arxiv.org/help
36
+ - text: "|"
37
+ - link "Advanced Search" [ref=e29] [cursor=pointer]:
38
+ - /url: https://arxiv.org/search/advanced
39
+ - combobox "Field to search" [ref=e31]:
40
+ - option "All fields" [selected]
41
+ - option "Title"
42
+ - option "Author"
43
+ - option "Abstract"
44
+ - option "Comments"
45
+ - option "Journal reference"
46
+ - option "ACM classification"
47
+ - option "MSC classification"
48
+ - option "Report number"
49
+ - option "arXiv identifier"
50
+ - option "DOI"
51
+ - option "ORCID"
52
+ - option "arXiv author ID"
53
+ - option "Help pages"
54
+ - option "Full text"
55
+ - button "Search" [ref=e32] [cursor=pointer]
56
+ - main [ref=e33]:
57
+ - generic [ref=e35]:
58
+ - generic [ref=e36]:
59
+ - heading "Computer Science > Machine Learning" [level=1] [ref=e38]
60
+ - generic [ref=e40]:
61
+ - generic [ref=e41]: "[Submitted on 25 Jul 2019]"
62
+ - 'heading "Optuna: A Next-generation Hyperparameter Optimization Framework" [level=1] [ref=e42]'
63
+ - generic [ref=e43]:
64
+ - link "Takuya Akiba" [ref=e44] [cursor=pointer]:
65
+ - /url: https://arxiv.org/search/cs?searchtype=author&query=Akiba,+T
66
+ - text: ","
67
+ - link "Shotaro Sano" [ref=e45] [cursor=pointer]:
68
+ - /url: https://arxiv.org/search/cs?searchtype=author&query=Sano,+S
69
+ - text: ","
70
+ - link "Toshihiko Yanase" [ref=e46] [cursor=pointer]:
71
+ - /url: https://arxiv.org/search/cs?searchtype=author&query=Yanase,+T
72
+ - text: ","
73
+ - link "Takeru Ohta" [ref=e47] [cursor=pointer]:
74
+ - /url: https://arxiv.org/search/cs?searchtype=author&query=Ohta,+T
75
+ - text: ","
76
+ - link "Masanori Koyama" [ref=e48] [cursor=pointer]:
77
+ - /url: https://arxiv.org/search/cs?searchtype=author&query=Koyama,+M
78
+ - blockquote [ref=e49]:
79
+ - text: The purpose of this study is to introduce new design-criteria for next-generation hyperparameter optimization software. The criteria we propose include (1) define-by-run API that allows users to construct the parameter search space dynamically, (2) efficient implementation of both searching and pruning strategies, and (3) easy-to-setup, versatile architecture that can be deployed for various purposes, ranging from scalable distributed computing to light-weight experiment conducted via interactive interface. In order to prove our point, we will introduce Optuna, an optimization software which is a culmination of our effort in the development of a next generation optimization software. As an optimization software designed with define-by-run principle, Optuna is particularly the first of its kind. We will present the design-techniques that became necessary in the development of the software that meets the above criteria, and demonstrate the power of our new design through experimental results and real world applications. Our software is available under the MIT license (
80
+ - link "this https URL" [ref=e50] [cursor=pointer]:
81
+ - /url: https://github.com/pfnet/optuna/
82
+ - text: ).
83
+ - table "Additional metadata" [ref=e52]:
84
+ - rowgroup [ref=e53]:
85
+ - 'row "Comments: 10 pages, Accepted at KDD 2019 Applied Data Science track" [ref=e54]':
86
+ - cell "Comments:" [ref=e55]
87
+ - cell "10 pages, Accepted at KDD 2019 Applied Data Science track" [ref=e56]
88
+ - 'row "Subjects: Machine Learning (cs.LG); Machine Learning (stat.ML)" [ref=e57]':
89
+ - cell "Subjects:" [ref=e58]
90
+ - cell "Machine Learning (cs.LG); Machine Learning (stat.ML)" [ref=e59]
91
+ - 'row "Cite as: arXiv:1907.10902 [cs.LG]" [ref=e60]':
92
+ - cell "Cite as:" [ref=e61]
93
+ - cell "arXiv:1907.10902 [cs.LG]" [ref=e62]:
94
+ - generic [ref=e63]:
95
+ - link "arXiv:1907.10902" [ref=e64] [cursor=pointer]:
96
+ - /url: https://arxiv.org/abs/1907.10902
97
+ - text: "[cs.LG]"
98
+ - row "(or arXiv:1907.10902v1 [cs.LG] for this version)" [ref=e65]:
99
+ - cell [ref=e66]
100
+ - cell "(or arXiv:1907.10902v1 [cs.LG] for this version)" [ref=e67]:
101
+ - text: (or
102
+ - generic [ref=e68]:
103
+ - link "arXiv:1907.10902v1" [ref=e69] [cursor=pointer]:
104
+ - /url: https://arxiv.org/abs/1907.10902v1
105
+ - text: "[cs.LG]"
106
+ - text: for this version)
107
+ - row "https://doi.org/10.48550/arXiv.1907.10902 Focus to learn more" [ref=e70]:
108
+ - cell [ref=e71]
109
+ - cell "https://doi.org/10.48550/arXiv.1907.10902 Focus to learn more" [ref=e72]:
110
+ - link "https://doi.org/10.48550/arXiv.1907.10902" [ref=e73] [cursor=pointer]:
111
+ - /url: https://doi.org/10.48550/arXiv.1907.10902
112
+ - button "Focus to learn more" [ref=e75]:
113
+ - generic [ref=e77]: Focus to learn more
114
+ - generic [ref=e78]:
115
+ - heading "Submission history" [level=2] [ref=e79]
116
+ - text: "From: Toshihiko Yanase ["
117
+ - link "view email" [ref=e80] [cursor=pointer]:
118
+ - /url: /show-email/4c88e0f1/1907.10902
119
+ - text: "]"
120
+ - strong [ref=e81]: "[v1]"
121
+ - text: Thu, 25 Jul 2019 08:55:22 UTC (853 KB)
122
+ - generic [ref=e82]:
123
+ - generic [ref=e83]:
124
+ - heading "Access Paper:" [level=2] [ref=e84]
125
+ - list [ref=e85]:
126
+ - listitem [ref=e86]:
127
+ - link "View PDF" [ref=e87] [cursor=pointer]:
128
+ - /url: /pdf/1907.10902
129
+ - listitem [ref=e88]:
130
+ - link "TeX Source" [ref=e89] [cursor=pointer]:
131
+ - /url: /src/1907.10902
132
+ - link "view license" [ref=e91] [cursor=pointer]:
133
+ - /url: http://arxiv.org/licenses/nonexclusive-distrib/1.0/
134
+ - generic [ref=e92]:
135
+ - heading "Current browse context:" [level=3] [ref=e93]
136
+ - generic [ref=e94]: cs.LG
137
+ - generic [ref=e95]:
138
+ - link "< prev" [ref=e97] [cursor=pointer]:
139
+ - /url: /prevnext?id=1907.10902&function=prev&context=cs.LG
140
+ - text: "|"
141
+ - link "next >" [ref=e99] [cursor=pointer]:
142
+ - /url: /prevnext?id=1907.10902&function=next&context=cs.LG
143
+ - generic [ref=e100]:
144
+ - link "new" [ref=e101] [cursor=pointer]:
145
+ - /url: /list/cs.LG/new
146
+ - text: "|"
147
+ - link "recent" [ref=e102] [cursor=pointer]:
148
+ - /url: /list/cs.LG/recent
149
+ - text: "|"
150
+ - link "2019-07" [ref=e103] [cursor=pointer]:
151
+ - /url: /list/cs.LG/2019-07
152
+ - generic [ref=e104]:
153
+ - text: "Change to browse by:"
154
+ - generic [ref=e105]:
155
+ - link "cs" [ref=e106] [cursor=pointer]:
156
+ - /url: /abs/1907.10902?context=cs
157
+ - link "stat" [ref=e107] [cursor=pointer]:
158
+ - /url: /abs/1907.10902?context=stat
159
+ - link "stat.ML" [ref=e108] [cursor=pointer]:
160
+ - /url: /abs/1907.10902?context=stat.ML
161
+ - generic [ref=e109]:
162
+ - heading "References & Citations" [level=3] [ref=e110]
163
+ - list [ref=e111]:
164
+ - listitem [ref=e112]:
165
+ - link "NASA ADS" [ref=e113] [cursor=pointer]:
166
+ - /url: https://ui.adsabs.harvard.edu/abs/arXiv:1907.10902
167
+ - listitem [ref=e114]:
168
+ - link "Google Scholar" [ref=e115] [cursor=pointer]:
169
+ - /url: https://scholar.google.com/scholar_lookup?arxiv_id=1907.10902
170
+ - listitem [ref=e116]:
171
+ - link "Semantic Scholar" [ref=e117] [cursor=pointer]:
172
+ - /url: https://api.semanticscholar.org/arXiv:1907.10902
173
+ - generic [ref=e118]:
174
+ - heading "DBLP - CS Bibliography" [level=3] [ref=e119]:
175
+ - link "DBLP" [ref=e120] [cursor=pointer]:
176
+ - /url: https://dblp.uni-trier.de
177
+ - text: "- CS Bibliography"
178
+ - generic [ref=e121]:
179
+ - link "listing" [ref=e122] [cursor=pointer]:
180
+ - /url: https://dblp.uni-trier.de/db/journals/corr/corr1907.html#abs-1907-10902
181
+ - text: "|"
182
+ - link "bibtex" [ref=e123] [cursor=pointer]:
183
+ - /url: https://dblp.uni-trier.de/rec/bibtex/journals/corr/abs-1907-10902
184
+ - generic [ref=e124]:
185
+ - link "Takuya Akiba" [ref=e125] [cursor=pointer]:
186
+ - /url: https://dblp.uni-trier.de/search/author?author=Takuya%20Akiba
187
+ - link "Shotaro Sano" [ref=e126] [cursor=pointer]:
188
+ - /url: https://dblp.uni-trier.de/search/author?author=Shotaro%20Sano
189
+ - link "Toshihiko Yanase" [ref=e127] [cursor=pointer]:
190
+ - /url: https://dblp.uni-trier.de/search/author?author=Toshihiko%20Yanase
191
+ - link "Takeru Ohta" [ref=e128] [cursor=pointer]:
192
+ - /url: https://dblp.uni-trier.de/search/author?author=Takeru%20Ohta
193
+ - link "Masanori Koyama" [ref=e129] [cursor=pointer]:
194
+ - /url: https://dblp.uni-trier.de/search/author?author=Masanori%20Koyama
195
+ - button "export BibTeX citation" [ref=e131]
196
+ - generic [ref=e132]:
197
+ - heading "Bookmark" [level=3] [ref=e134]
198
+ - link "BibSonomy" [ref=e135] [cursor=pointer]:
199
+ - /url: "http://www.bibsonomy.org/BibtexHandler?requTask=upload&url=https://arxiv.org/abs/1907.10902&description=Optuna: A Next-generation Hyperparameter Optimization Framework"
200
+ - img "BibSonomy" [ref=e136]
201
+ - link "Reddit" [ref=e137] [cursor=pointer]:
202
+ - /url: "https://reddit.com/submit?url=https://arxiv.org/abs/1907.10902&title=Optuna: A Next-generation Hyperparameter Optimization Framework"
203
+ - img "Reddit" [ref=e138]
204
+ - tablist "arXivLabs tools" [ref=e140]:
205
+ - radio "Bibliographic Tools" [checked] [ref=e141]
206
+ - tab "Bibliographic Tools" [selected] [ref=e142] [cursor=pointer]
207
+ - tabpanel "Bibliographic Tools" [ref=e143]:
208
+ - heading "Bibliographic and Citation Tools" [level=1] [ref=e144]
209
+ - generic [ref=e145]:
210
+ - generic [ref=e146]:
211
+ - generic [ref=e148]:
212
+ - checkbox "Bibliographic Explorer Toggle"
213
+ - generic [ref=e150]: Bibliographic Explorer Toggle
214
+ - generic [ref=e151]:
215
+ - text: Bibliographic Explorer
216
+ - emphasis [ref=e152]:
217
+ - text: (
218
+ - link "What is the Explorer?" [ref=e153] [cursor=pointer]:
219
+ - /url: https://info.arxiv.org/labs/showcase.html#arxiv-bibliographic-explorer
220
+ - text: )
221
+ - generic [ref=e154]:
222
+ - generic [ref=e156]:
223
+ - checkbox "Connected Papers"
224
+ - generic [ref=e158]: Connected Papers Toggle
225
+ - generic [ref=e159]:
226
+ - text: Connected Papers
227
+ - emphasis [ref=e160]:
228
+ - text: (
229
+ - link "What is Connected Papers?" [ref=e161] [cursor=pointer]:
230
+ - /url: https://www.connectedpapers.com/about
231
+ - text: )
232
+ - generic [ref=e162]:
233
+ - generic [ref=e164]:
234
+ - checkbox "Litmaps"
235
+ - generic [ref=e166]: Litmaps Toggle
236
+ - generic [ref=e167]:
237
+ - text: Litmaps
238
+ - emphasis [ref=e168]:
239
+ - text: (
240
+ - link "What is Litmaps?" [ref=e169] [cursor=pointer]:
241
+ - /url: https://www.litmaps.co/
242
+ - text: )
243
+ - generic [ref=e170]:
244
+ - generic [ref=e172]:
245
+ - checkbox "scite Smart Citations"
246
+ - generic [ref=e174]: scite.ai Toggle
247
+ - generic [ref=e175]:
248
+ - text: scite Smart Citations
249
+ - emphasis [ref=e176]:
250
+ - text: (
251
+ - link "What are Smart Citations?" [ref=e177] [cursor=pointer]:
252
+ - /url: https://www.scite.ai/
253
+ - text: )
254
+ - radio "Code, Data, Media" [ref=e181]
255
+ - tab "Code, Data, Media" [ref=e182] [cursor=pointer]
256
+ - radio "Demos" [ref=e183]
257
+ - tab "Demos" [ref=e184] [cursor=pointer]
258
+ - radio "Related Papers" [ref=e185]
259
+ - tab "Related Papers" [ref=e186] [cursor=pointer]
260
+ - radio "About arXivLabs" [ref=e187]
261
+ - tab "About arXivLabs" [ref=e188] [cursor=pointer]
262
+ - generic [ref=e189]:
263
+ - link "Which authors of this paper are endorsers?" [ref=e190] [cursor=pointer]:
264
+ - /url: /auth/show-endorsers/1907.10902
265
+ - text: "|"
266
+ - link "Disable MathJax" [ref=e191] [cursor=pointer]:
267
+ - /url: javascript:setMathjaxCookie()
268
+ - text: (
269
+ - link "What is MathJax?" [ref=e192] [cursor=pointer]:
270
+ - /url: https://info.arxiv.org/help/mathjax.html
271
+ - text: )
272
+ - contentinfo [ref=e193]:
273
+ - navigation "Secondary" [ref=e194]:
274
+ - generic [ref=e196]:
275
+ - list [ref=e198]:
276
+ - listitem [ref=e199]:
277
+ - link "About" [ref=e200] [cursor=pointer]:
278
+ - /url: https://info.arxiv.org/about
279
+ - listitem [ref=e201]:
280
+ - link "Help" [ref=e202] [cursor=pointer]:
281
+ - /url: https://info.arxiv.org/help
282
+ - list [ref=e204]:
283
+ - listitem [ref=e205]:
284
+ - link "Contact" [ref=e207] [cursor=pointer]:
285
+ - /url: https://info.arxiv.org/help/contact.html
286
+ - listitem [ref=e208]:
287
+ - link "Subscribe" [ref=e210] [cursor=pointer]:
288
+ - /url: https://info.arxiv.org/help/subscribe
289
+ - generic [ref=e212]:
290
+ - list [ref=e214]:
291
+ - listitem [ref=e215]:
292
+ - link "Copyright" [ref=e216] [cursor=pointer]:
293
+ - /url: https://info.arxiv.org/help/license/index.html
294
+ - listitem [ref=e217]:
295
+ - link "Privacy Policy" [ref=e218] [cursor=pointer]:
296
+ - /url: https://info.arxiv.org/help/policies/privacy_policy.html
297
+ - list [ref=e220]:
298
+ - listitem [ref=e221]:
299
+ - link "Web Accessibility Assistance" [ref=e222] [cursor=pointer]:
300
+ - /url: https://info.arxiv.org/help/web_accessibility.html
301
+ - listitem [ref=e223]:
302
+ - paragraph [ref=e224]:
303
+ - link "arXiv Operational Status" [ref=e225] [cursor=pointer]:
304
+ - /url: https://status.arxiv.org
305
+ - text: arXiv Operational Status
capri-search.yml ADDED
The diff for this file is too large to render. See raw diff
 
customers.txt ADDED
@@ -0,0 +1,1463 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ - generic [active] [ref=e1]:
2
+ - generic [ref=e2]:
3
+ - link "Magento Admin Panel" [ref=e3] [cursor=pointer]:
4
+ - /url: http://localhost:7789/admin/admin/
5
+ - img "Magento Admin Panel" [ref=e4]
6
+ - navigation [ref=e5]:
7
+ - menubar [ref=e6]:
8
+ - listitem [ref=e7]:
9
+ - link " Dashboard" [ref=e8] [cursor=pointer]:
10
+ - /url: http://localhost:7789/admin/admin/dashboard/
11
+ - listitem [ref=e9]:
12
+ - link " Sales" [ref=e10] [cursor=pointer]:
13
+ - /url: "#"
14
+ - listitem [ref=e11]:
15
+ - link " Catalog" [ref=e12] [cursor=pointer]:
16
+ - /url: "#"
17
+ - listitem [ref=e13]:
18
+ - link " Customers" [ref=e14] [cursor=pointer]:
19
+ - /url: "#"
20
+ - listitem [ref=e15]:
21
+ - link " Marketing" [ref=e16] [cursor=pointer]:
22
+ - /url: "#"
23
+ - listitem [ref=e17]:
24
+ - link " Content" [ref=e18] [cursor=pointer]:
25
+ - /url: "#"
26
+ - listitem [ref=e19]:
27
+ - link " Reports" [ref=e20] [cursor=pointer]:
28
+ - /url: "#"
29
+ - listitem [ref=e21]:
30
+ - link " Stores" [ref=e22] [cursor=pointer]:
31
+ - /url: "#"
32
+ - listitem [ref=e23]:
33
+ - link " System" [ref=e24] [cursor=pointer]:
34
+ - /url: "#"
35
+ - listitem [ref=e25]:
36
+ - link " Find Partners & Extensions" [ref=e26] [cursor=pointer]:
37
+ - /url: http://localhost:7789/admin/marketplace/index/
38
+ - generic [ref=e27]:
39
+ - banner [ref=e29]:
40
+ - heading "Customers" [level=1] [ref=e32]
41
+ - generic [ref=e33]:
42
+ - link " admin" [ref=e35] [cursor=pointer]:
43
+ - /url: http://localhost:7789/admin/admin/system_account/index/
44
+ - text: 
45
+ - generic [ref=e37]: admin
46
+ - link "" [ref=e39] [cursor=pointer]:
47
+ - /url: http://localhost:7789/admin/admin/notification/index/
48
+ - generic:
49
+ - generic:
50
+ - generic:
51
+ - generic [ref=e40] [cursor=pointer]: 
52
+ - textbox "" [ref=e41]
53
+ - main [ref=e42]:
54
+ - button "Add New Customer" [ref=e45] [cursor=pointer]
55
+ - generic [ref=e49]:
56
+ - generic [ref=e60]:
57
+ - generic [ref=e61]:
58
+ - generic [ref=e62]:
59
+ - generic [ref=e63]:
60
+ - button " Default View" [ref=e64] [cursor=pointer]:
61
+ - text: 
62
+ - generic [ref=e65]: Default View
63
+ - text: 
64
+ - generic [ref=e66]:
65
+ - button " Columns" [ref=e67] [cursor=pointer]
66
+ - text:        
67
+ - button " Export" [ref=e69] [cursor=pointer]
68
+ - generic [ref=e70]:
69
+ - textbox "Search by keyword" [ref=e71]
70
+ - button "Search" [ref=e72] [cursor=pointer]: 
71
+ - button "Filters" [ref=e75] [cursor=pointer]
72
+ - generic [ref=e76]:
73
+ - button "Actions" [ref=e79] [cursor=pointer]
74
+ - generic [ref=e81]:
75
+ - generic [ref=e83]: 70 records found
76
+ - generic [ref=e85]:
77
+ - generic [ref=e86]:
78
+ - textbox "per page" [ref=e88]: "100"
79
+ - button "per page Select" [ref=e89] [cursor=pointer]:
80
+ - generic [ref=e90]: Select
81
+ - text: 
82
+ - generic [ref=e91]: per page
83
+ - generic [ref=e92]:
84
+ - button "" [disabled]
85
+ - spinbutton "of 1" [ref=e93]: "1"
86
+ - generic [ref=e94]: of 1
87
+ - button "" [disabled]
88
+ - text:                   ↓
89
+ - table [ref=e96]:
90
+ - rowgroup [ref=e97]:
91
+ - row "Options ↓ Name Email Group Phone ZIP Country State/Province Customer Since" [ref=e98]:
92
+ - columnheader "Options" [ref=e99]:
93
+ - generic [ref=e100]:
94
+ - checkbox [ref=e101] [cursor=pointer]
95
+ - button "Options" [ref=e133] [cursor=pointer]:
96
+ - generic [ref=e134]: Options
97
+ - columnheader "↓ Name" [ref=e103] [cursor=pointer]:
98
+ - text: ↓
99
+ - generic [ref=e104]: Name
100
+ - columnheader "Email" [ref=e105] [cursor=pointer]:
101
+ - generic [ref=e106]: Email
102
+ - columnheader "Group" [ref=e107] [cursor=pointer]:
103
+ - generic [ref=e108]: Group
104
+ - columnheader "Phone" [ref=e109] [cursor=pointer]:
105
+ - generic [ref=e110]: Phone
106
+ - columnheader "ZIP" [ref=e111] [cursor=pointer]:
107
+ - generic [ref=e112]: ZIP
108
+ - columnheader "Country" [ref=e113] [cursor=pointer]:
109
+ - generic [ref=e114]: Country
110
+ - columnheader "State/Province" [ref=e115] [cursor=pointer]:
111
+ - generic [ref=e116]: State/Province
112
+ - columnheader "Customer Since" [ref=e117] [cursor=pointer]:
113
+ - generic [ref=e118]: Customer Since
114
+ - rowgroup [ref=e119]:
115
+ - row "Adam Garcia gamingpro456@gmail.com General 2065555555 98122 United States Washington Apr 19, 2023 5:46:14 PM" [ref=e135]:
116
+ - cell [ref=e136]:
117
+ - checkbox [ref=e138] [cursor=pointer]
118
+ - cell "Adam Garcia" [ref=e140]:
119
+ - generic [ref=e141]: Adam Garcia
120
+ - cell "gamingpro456@gmail.com" [ref=e142]:
121
+ - generic [ref=e143]: gamingpro456@gmail.com
122
+ - cell "General" [ref=e144]:
123
+ - generic [ref=e145]: General
124
+ - cell "2065555555" [ref=e146]:
125
+ - generic [ref=e147]: "2065555555"
126
+ - cell "98122" [ref=e148]:
127
+ - generic [ref=e149]: "98122"
128
+ - cell "United States" [ref=e150]:
129
+ - generic [ref=e151]: United States
130
+ - cell "Washington" [ref=e152]:
131
+ - generic [ref=e153]: Washington
132
+ - cell "Apr 19, 2023 5:46:14 PM" [ref=e154]:
133
+ - generic [ref=e155]: Apr 19, 2023 5:46:14 PM
134
+ - row "Adam Garcia adam.garcia@gmail.com General 6025551212 85004 United States Arizona Apr 19, 2023 5:46:40 PM" [ref=e156]:
135
+ - cell [ref=e157]:
136
+ - checkbox [ref=e159] [cursor=pointer]
137
+ - cell "Adam Garcia" [ref=e161]:
138
+ - generic [ref=e162]: Adam Garcia
139
+ - cell "adam.garcia@gmail.com" [ref=e163]:
140
+ - generic [ref=e164]: adam.garcia@gmail.com
141
+ - cell "General" [ref=e165]:
142
+ - generic [ref=e166]: General
143
+ - cell "6025551212" [ref=e167]:
144
+ - generic [ref=e168]: "6025551212"
145
+ - cell "85004" [ref=e169]:
146
+ - generic [ref=e170]: "85004"
147
+ - cell "United States" [ref=e171]:
148
+ - generic [ref=e172]: United States
149
+ - cell "Arizona" [ref=e173]:
150
+ - generic [ref=e174]: Arizona
151
+ - cell "Apr 19, 2023 5:46:40 PM" [ref=e175]:
152
+ - generic [ref=e176]: Apr 19, 2023 5:46:40 PM
153
+ - row "Alex Johnson fitnessjunkie22@yahoo.com General 3105555555 90212 United States California Apr 19, 2023 5:46:07 PM" [ref=e177]:
154
+ - cell [ref=e178]:
155
+ - checkbox [ref=e180] [cursor=pointer]
156
+ - cell "Alex Johnson" [ref=e182]:
157
+ - generic [ref=e183]: Alex Johnson
158
+ - cell "fitnessjunkie22@yahoo.com" [ref=e184]:
159
+ - generic [ref=e185]: fitnessjunkie22@yahoo.com
160
+ - cell "General" [ref=e186]:
161
+ - generic [ref=e187]: General
162
+ - cell "3105555555" [ref=e188]:
163
+ - generic [ref=e189]: "3105555555"
164
+ - cell "90212" [ref=e190]:
165
+ - generic [ref=e191]: "90212"
166
+ - cell "United States" [ref=e192]:
167
+ - generic [ref=e193]: United States
168
+ - cell "California" [ref=e194]:
169
+ - generic [ref=e195]: California
170
+ - cell "Apr 19, 2023 5:46:07 PM" [ref=e196]:
171
+ - generic [ref=e197]: Apr 19, 2023 5:46:07 PM
172
+ - row "Alex Martin alex.martin@gmail.com General 2125551212 10001 United States New York Apr 19, 2023 5:46:20 PM" [ref=e198]:
173
+ - cell [ref=e199]:
174
+ - checkbox [ref=e201] [cursor=pointer]
175
+ - cell "Alex Martin" [ref=e203]:
176
+ - generic [ref=e204]: Alex Martin
177
+ - cell "alex.martin@gmail.com" [ref=e205]:
178
+ - generic [ref=e206]: alex.martin@gmail.com
179
+ - cell "General" [ref=e207]:
180
+ - generic [ref=e208]: General
181
+ - cell "2125551212" [ref=e209]:
182
+ - generic [ref=e210]: "2125551212"
183
+ - cell "10001" [ref=e211]:
184
+ - generic [ref=e212]: "10001"
185
+ - cell "United States" [ref=e213]:
186
+ - generic [ref=e214]: United States
187
+ - cell "New York" [ref=e215]:
188
+ - generic [ref=e216]: New York
189
+ - cell "Apr 19, 2023 5:46:20 PM" [ref=e217]:
190
+ - generic [ref=e218]: Apr 19, 2023 5:46:20 PM
191
+ - row "Alexander Thomas alexander.thomas@hotmail.com General 3235551212 90028 United States California Apr 19, 2023 5:46:50 PM" [ref=e219]:
192
+ - cell [ref=e220]:
193
+ - checkbox [ref=e222] [cursor=pointer]
194
+ - cell "Alexander Thomas" [ref=e224]:
195
+ - generic [ref=e225]: Alexander Thomas
196
+ - cell "alexander.thomas@hotmail.com" [ref=e226]:
197
+ - generic [ref=e227]: alexander.thomas@hotmail.com
198
+ - cell "General" [ref=e228]:
199
+ - generic [ref=e229]: General
200
+ - cell "3235551212" [ref=e230]:
201
+ - generic [ref=e231]: "3235551212"
202
+ - cell "90028" [ref=e232]:
203
+ - generic [ref=e233]: "90028"
204
+ - cell "United States" [ref=e234]:
205
+ - generic [ref=e235]: United States
206
+ - cell "California" [ref=e236]:
207
+ - generic [ref=e237]: California
208
+ - cell "Apr 19, 2023 5:46:50 PM" [ref=e238]:
209
+ - generic [ref=e239]: Apr 19, 2023 5:46:50 PM
210
+ - row "Amanda Kim amanda.kim@gmail.com General 2015551234 07030 United States New Jersey Apr 23, 2023 12:13:15 AM" [ref=e240]:
211
+ - cell [ref=e241]:
212
+ - checkbox [ref=e243] [cursor=pointer]
213
+ - cell "Amanda Kim" [ref=e245]:
214
+ - generic [ref=e246]: Amanda Kim
215
+ - cell "amanda.kim@gmail.com" [ref=e247]:
216
+ - generic [ref=e248]: amanda.kim@gmail.com
217
+ - cell "General" [ref=e249]:
218
+ - generic [ref=e250]: General
219
+ - cell "2015551234" [ref=e251]:
220
+ - generic [ref=e252]: "2015551234"
221
+ - cell "07030" [ref=e253]:
222
+ - generic [ref=e254]: "07030"
223
+ - cell "United States" [ref=e255]:
224
+ - generic [ref=e256]: United States
225
+ - cell "New Jersey" [ref=e257]:
226
+ - generic [ref=e258]: New Jersey
227
+ - cell "Apr 23, 2023 12:13:15 AM" [ref=e259]:
228
+ - generic [ref=e260]: Apr 23, 2023 12:13:15 AM
229
+ - row "Anna Nguyen anna.nguyen@yahoo.com General 7135551212 77002 United States Texas Apr 23, 2023 12:13:09 AM" [ref=e261]:
230
+ - cell [ref=e262]:
231
+ - checkbox [ref=e264] [cursor=pointer]
232
+ - cell "Anna Nguyen" [ref=e266]:
233
+ - generic [ref=e267]: Anna Nguyen
234
+ - cell "anna.nguyen@yahoo.com" [ref=e268]:
235
+ - generic [ref=e269]: anna.nguyen@yahoo.com
236
+ - cell "General" [ref=e270]:
237
+ - generic [ref=e271]: General
238
+ - cell "7135551212" [ref=e272]:
239
+ - generic [ref=e273]: "7135551212"
240
+ - cell "77002" [ref=e274]:
241
+ - generic [ref=e275]: "77002"
242
+ - cell "United States" [ref=e276]:
243
+ - generic [ref=e277]: United States
244
+ - cell "Texas" [ref=e278]:
245
+ - generic [ref=e279]: Texas
246
+ - cell "Apr 23, 2023 12:13:09 AM" [ref=e280]:
247
+ - generic [ref=e281]: Apr 23, 2023 12:13:09 AM
248
+ - row "Ava Brown beachlover99@yahoo.com General 3105555555 90265 United States California Apr 19, 2023 5:46:01 PM" [ref=e282]:
249
+ - cell [ref=e283]:
250
+ - checkbox [ref=e285] [cursor=pointer]
251
+ - cell "Ava Brown" [ref=e287]:
252
+ - generic [ref=e288]: Ava Brown
253
+ - cell "beachlover99@yahoo.com" [ref=e289]:
254
+ - generic [ref=e290]: beachlover99@yahoo.com
255
+ - cell "General" [ref=e291]:
256
+ - generic [ref=e292]: General
257
+ - cell "3105555555" [ref=e293]:
258
+ - generic [ref=e294]: "3105555555"
259
+ - cell "90265" [ref=e295]:
260
+ - generic [ref=e296]: "90265"
261
+ - cell "United States" [ref=e297]:
262
+ - generic [ref=e298]: United States
263
+ - cell "California" [ref=e299]:
264
+ - generic [ref=e300]: California
265
+ - cell "Apr 19, 2023 5:46:01 PM" [ref=e301]:
266
+ - generic [ref=e302]: Apr 19, 2023 5:46:01 PM
267
+ - row "Bob Johnson bob123@hotmail.com General 9721234567 75080 United States Texas Apr 19, 2023 5:45:14 PM" [ref=e303]:
268
+ - cell [ref=e304]:
269
+ - checkbox [ref=e306] [cursor=pointer]
270
+ - cell "Bob Johnson" [ref=e308]:
271
+ - generic [ref=e309]: Bob Johnson
272
+ - cell "bob123@hotmail.com" [ref=e310]:
273
+ - generic [ref=e311]: bob123@hotmail.com
274
+ - cell "General" [ref=e312]:
275
+ - generic [ref=e313]: General
276
+ - cell "9721234567" [ref=e314]:
277
+ - generic [ref=e315]: "9721234567"
278
+ - cell "75080" [ref=e316]:
279
+ - generic [ref=e317]: "75080"
280
+ - cell "United States" [ref=e318]:
281
+ - generic [ref=e319]: United States
282
+ - cell "Texas" [ref=e320]:
283
+ - generic [ref=e321]: Texas
284
+ - cell "Apr 19, 2023 5:45:14 PM" [ref=e322]:
285
+ - generic [ref=e323]: Apr 19, 2023 5:45:14 PM
286
+ - row "Bob Jones bbjones@gmail.com General 2141918677 75202 United States Texas Apr 19, 2023 5:45:04 PM" [ref=e324]:
287
+ - cell [ref=e325]:
288
+ - checkbox [ref=e327] [cursor=pointer]
289
+ - cell "Bob Jones" [ref=e329]:
290
+ - generic [ref=e330]: Bob Jones
291
+ - cell "bbjones@gmail.com" [ref=e331]:
292
+ - generic [ref=e332]: bbjones@gmail.com
293
+ - cell "General" [ref=e333]:
294
+ - generic [ref=e334]: General
295
+ - cell "2141918677" [ref=e335]:
296
+ - generic [ref=e336]: "2141918677"
297
+ - cell "75202" [ref=e337]:
298
+ - generic [ref=e338]: "75202"
299
+ - cell "United States" [ref=e339]:
300
+ - generic [ref=e340]: United States
301
+ - cell "Texas" [ref=e341]:
302
+ - generic [ref=e342]: Texas
303
+ - cell "Apr 19, 2023 5:45:04 PM" [ref=e343]:
304
+ - generic [ref=e344]: Apr 19, 2023 5:45:04 PM
305
+ - row "Brian Smith brian.smith@yahoo.com General 7025551212 89109 United States Nevada Apr 19, 2023 5:46:44 PM" [ref=e345]:
306
+ - cell [ref=e346]:
307
+ - checkbox [ref=e348] [cursor=pointer]
308
+ - cell "Brian Smith" [ref=e350]:
309
+ - generic [ref=e351]: Brian Smith
310
+ - cell "brian.smith@yahoo.com" [ref=e352]:
311
+ - generic [ref=e353]: brian.smith@yahoo.com
312
+ - cell "General" [ref=e354]:
313
+ - generic [ref=e355]: General
314
+ - cell "7025551212" [ref=e356]:
315
+ - generic [ref=e357]: "7025551212"
316
+ - cell "89109" [ref=e358]:
317
+ - generic [ref=e359]: "89109"
318
+ - cell "United States" [ref=e360]:
319
+ - generic [ref=e361]: United States
320
+ - cell "Nevada" [ref=e362]:
321
+ - generic [ref=e363]: Nevada
322
+ - cell "Apr 19, 2023 5:46:44 PM" [ref=e364]:
323
+ - generic [ref=e365]: Apr 19, 2023 5:46:44 PM
324
+ - row "Daniel Jackson daniel.jackson@hotmail.com General 2155556789 19102 United States Pennsylvania Apr 19, 2023 5:45:27 PM" [ref=e366]:
325
+ - cell [ref=e367]:
326
+ - checkbox [ref=e369] [cursor=pointer]
327
+ - cell "Daniel Jackson" [ref=e371]:
328
+ - generic [ref=e372]: Daniel Jackson
329
+ - cell "daniel.jackson@hotmail.com" [ref=e373]:
330
+ - generic [ref=e374]: daniel.jackson@hotmail.com
331
+ - cell "General" [ref=e375]:
332
+ - generic [ref=e376]: General
333
+ - cell "2155556789" [ref=e377]:
334
+ - generic [ref=e378]: "2155556789"
335
+ - cell "19102" [ref=e379]:
336
+ - generic [ref=e380]: "19102"
337
+ - cell "United States" [ref=e381]:
338
+ - generic [ref=e382]: United States
339
+ - cell "Pennsylvania" [ref=e383]:
340
+ - generic [ref=e384]: Pennsylvania
341
+ - cell "Apr 19, 2023 5:45:27 PM" [ref=e385]:
342
+ - generic [ref=e386]: Apr 19, 2023 5:45:27 PM
343
+ - row "David Lee david.lee@gmail.com General 6175551212 02108 United States Massachusetts Apr 19, 2023 5:46:30 PM" [ref=e387]:
344
+ - cell [ref=e388]:
345
+ - checkbox [ref=e390] [cursor=pointer]
346
+ - cell "David Lee" [ref=e392]:
347
+ - generic [ref=e393]: David Lee
348
+ - cell "david.lee@gmail.com" [ref=e394]:
349
+ - generic [ref=e395]: david.lee@gmail.com
350
+ - cell "General" [ref=e396]:
351
+ - generic [ref=e397]: General
352
+ - cell "6175551212" [ref=e398]:
353
+ - generic [ref=e399]: "6175551212"
354
+ - cell "02108" [ref=e400]:
355
+ - generic [ref=e401]: "02108"
356
+ - cell "United States" [ref=e402]:
357
+ - generic [ref=e403]: United States
358
+ - cell "Massachusetts" [ref=e404]:
359
+ - generic [ref=e405]: Massachusetts
360
+ - cell "Apr 19, 2023 5:46:30 PM" [ref=e406]:
361
+ - generic [ref=e407]: Apr 19, 2023 5:46:30 PM
362
+ - row "David Smith david.smith@gmail.com General 2145551212 75201 United States Texas Apr 23, 2023 12:12:54 AM" [ref=e408]:
363
+ - cell [ref=e409]:
364
+ - checkbox [ref=e411] [cursor=pointer]
365
+ - cell "David Smith" [ref=e413]:
366
+ - generic [ref=e414]: David Smith
367
+ - cell "david.smith@gmail.com" [ref=e415]:
368
+ - generic [ref=e416]: david.smith@gmail.com
369
+ - cell "General" [ref=e417]:
370
+ - generic [ref=e418]: General
371
+ - cell "2145551212" [ref=e419]:
372
+ - generic [ref=e420]: "2145551212"
373
+ - cell "75201" [ref=e421]:
374
+ - generic [ref=e422]: "75201"
375
+ - cell "United States" [ref=e423]:
376
+ - generic [ref=e424]: United States
377
+ - cell "Texas" [ref=e425]:
378
+ - generic [ref=e426]: Texas
379
+ - cell "Apr 23, 2023 12:12:54 AM" [ref=e427]:
380
+ - generic [ref=e428]: Apr 23, 2023 12:12:54 AM
381
+ - row "Emily Chen emily.chen@hotmail.com General 6175551212 02108 United States Massachusetts Apr 23, 2023 12:13:05 AM" [ref=e429]:
382
+ - cell [ref=e430]:
383
+ - checkbox [ref=e432] [cursor=pointer]
384
+ - cell "Emily Chen" [ref=e434]:
385
+ - generic [ref=e435]: Emily Chen
386
+ - cell "emily.chen@hotmail.com" [ref=e436]:
387
+ - generic [ref=e437]: emily.chen@hotmail.com
388
+ - cell "General" [ref=e438]:
389
+ - generic [ref=e439]: General
390
+ - cell "6175551212" [ref=e440]:
391
+ - generic [ref=e441]: "6175551212"
392
+ - cell "02108" [ref=e442]:
393
+ - generic [ref=e443]: "02108"
394
+ - cell "United States" [ref=e444]:
395
+ - generic [ref=e445]: United States
396
+ - cell "Massachusetts" [ref=e446]:
397
+ - generic [ref=e447]: Massachusetts
398
+ - cell "Apr 23, 2023 12:13:05 AM" [ref=e448]:
399
+ - generic [ref=e449]: Apr 23, 2023 12:13:05 AM
400
+ - row "Emily Wilson emily.wilson@gmail.com General 3125551212 60611 United States Illinois Apr 23, 2023 12:14:24 AM" [ref=e450]:
401
+ - cell [ref=e451]:
402
+ - checkbox [ref=e453] [cursor=pointer]
403
+ - cell "Emily Wilson" [ref=e455]:
404
+ - generic [ref=e456]: Emily Wilson
405
+ - cell "emily.wilson@gmail.com" [ref=e457]:
406
+ - generic [ref=e458]: emily.wilson@gmail.com
407
+ - cell "General" [ref=e459]:
408
+ - generic [ref=e460]: General
409
+ - cell "3125551212" [ref=e461]:
410
+ - generic [ref=e462]: "3125551212"
411
+ - cell "60611" [ref=e463]:
412
+ - generic [ref=e464]: "60611"
413
+ - cell "United States" [ref=e465]:
414
+ - generic [ref=e466]: United States
415
+ - cell "Illinois" [ref=e467]:
416
+ - generic [ref=e468]: Illinois
417
+ - cell "Apr 23, 2023 12:14:24 AM" [ref=e469]:
418
+ - generic [ref=e470]: Apr 23, 2023 12:14:24 AM
419
+ - row "Emma Davis musiclover99@hotmail.com General 5125555555 78701 United States Texas Apr 19, 2023 5:46:10 PM" [ref=e471]:
420
+ - cell [ref=e472]:
421
+ - checkbox [ref=e474] [cursor=pointer]
422
+ - cell "Emma Davis" [ref=e476]:
423
+ - generic [ref=e477]: Emma Davis
424
+ - cell "musiclover99@hotmail.com" [ref=e478]:
425
+ - generic [ref=e479]: musiclover99@hotmail.com
426
+ - cell "General" [ref=e480]:
427
+ - generic [ref=e481]: General
428
+ - cell "5125555555" [ref=e482]:
429
+ - generic [ref=e483]: "5125555555"
430
+ - cell "78701" [ref=e484]:
431
+ - generic [ref=e485]: "78701"
432
+ - cell "United States" [ref=e486]:
433
+ - generic [ref=e487]: United States
434
+ - cell "Texas" [ref=e488]:
435
+ - generic [ref=e489]: Texas
436
+ - cell "Apr 19, 2023 5:46:10 PM" [ref=e490]:
437
+ - generic [ref=e491]: Apr 19, 2023 5:46:10 PM
438
+ - row "Emma Lopez emma.lopez@gmail.com General 6505551212 94010 United States California Apr 23, 2023 12:14:57 AM" [ref=e492]:
439
+ - cell [ref=e493]:
440
+ - checkbox [ref=e495] [cursor=pointer]
441
+ - cell "Emma Lopez" [ref=e497]:
442
+ - generic [ref=e498]: Emma Lopez
443
+ - cell "emma.lopez@gmail.com" [ref=e499]:
444
+ - generic [ref=e500]: emma.lopez@gmail.com
445
+ - cell "General" [ref=e501]:
446
+ - generic [ref=e502]: General
447
+ - cell "6505551212" [ref=e503]:
448
+ - generic [ref=e504]: "6505551212"
449
+ - cell "94010" [ref=e505]:
450
+ - generic [ref=e506]: "94010"
451
+ - cell "United States" [ref=e507]:
452
+ - generic [ref=e508]: United States
453
+ - cell "California" [ref=e509]:
454
+ - generic [ref=e510]: California
455
+ - cell "Apr 23, 2023 12:14:57 AM" [ref=e511]:
456
+ - generic [ref=e512]: Apr 23, 2023 12:14:57 AM
457
+ - row "Ethan Garcia ethan.garcia@yahoo.com General 2145551212 75201 United States Texas Apr 23, 2023 12:13:53 AM" [ref=e513]:
458
+ - cell [ref=e514]:
459
+ - checkbox [ref=e516] [cursor=pointer]
460
+ - cell "Ethan Garcia" [ref=e518]:
461
+ - generic [ref=e519]: Ethan Garcia
462
+ - cell "ethan.garcia@yahoo.com" [ref=e520]:
463
+ - generic [ref=e521]: ethan.garcia@yahoo.com
464
+ - cell "General" [ref=e522]:
465
+ - generic [ref=e523]: General
466
+ - cell "2145551212" [ref=e524]:
467
+ - generic [ref=e525]: "2145551212"
468
+ - cell "75201" [ref=e526]:
469
+ - generic [ref=e527]: "75201"
470
+ - cell "United States" [ref=e528]:
471
+ - generic [ref=e529]: United States
472
+ - cell "Texas" [ref=e530]:
473
+ - generic [ref=e531]: Texas
474
+ - cell "Apr 23, 2023 12:13:53 AM" [ref=e532]:
475
+ - generic [ref=e533]: Apr 23, 2023 12:13:53 AM
476
+ - row "Grace Nguyen avidreader99@yahoo.com General 6175555555 02138 United States Massachusetts Apr 19, 2023 5:45:51 PM" [ref=e534]:
477
+ - cell [ref=e535]:
478
+ - checkbox [ref=e537] [cursor=pointer]
479
+ - cell "Grace Nguyen" [ref=e539]:
480
+ - generic [ref=e540]: Grace Nguyen
481
+ - cell "avidreader99@yahoo.com" [ref=e541]:
482
+ - generic [ref=e542]: avidreader99@yahoo.com
483
+ - cell "General" [ref=e543]:
484
+ - generic [ref=e544]: General
485
+ - cell "6175555555" [ref=e545]:
486
+ - generic [ref=e546]: "6175555555"
487
+ - cell "02138" [ref=e547]:
488
+ - generic [ref=e548]: "02138"
489
+ - cell "United States" [ref=e549]:
490
+ - generic [ref=e550]: United States
491
+ - cell "Massachusetts" [ref=e551]:
492
+ - generic [ref=e552]: Massachusetts
493
+ - cell "Apr 19, 2023 5:45:51 PM" [ref=e553]:
494
+ - generic [ref=e554]: Apr 19, 2023 5:45:51 PM
495
+ - row "Hannah Lim hannah.lim@gmail.com General 7035551212 22030 United States Virginia Apr 23, 2023 12:14:40 AM" [ref=e555]:
496
+ - cell [ref=e556]:
497
+ - checkbox [ref=e558] [cursor=pointer]
498
+ - cell "Hannah Lim" [ref=e560]:
499
+ - generic [ref=e561]: Hannah Lim
500
+ - cell "hannah.lim@gmail.com" [ref=e562]:
501
+ - generic [ref=e563]: hannah.lim@gmail.com
502
+ - cell "General" [ref=e564]:
503
+ - generic [ref=e565]: General
504
+ - cell "7035551212" [ref=e566]:
505
+ - generic [ref=e567]: "7035551212"
506
+ - cell "22030" [ref=e568]:
507
+ - generic [ref=e569]: "22030"
508
+ - cell "United States" [ref=e570]:
509
+ - generic [ref=e571]: United States
510
+ - cell "Virginia" [ref=e572]:
511
+ - generic [ref=e573]: Virginia
512
+ - cell "Apr 23, 2023 12:14:40 AM" [ref=e574]:
513
+ - generic [ref=e575]: Apr 23, 2023 12:14:40 AM
514
+ - row "Isaac Rodriguez isaac.rodriguez@gmail.com General 6025551212 85004 United States Arizona Apr 23, 2023 12:14:45 AM" [ref=e576]:
515
+ - cell [ref=e577]:
516
+ - checkbox [ref=e579] [cursor=pointer]
517
+ - cell "Isaac Rodriguez" [ref=e581]:
518
+ - generic [ref=e582]: Isaac Rodriguez
519
+ - cell "isaac.rodriguez@gmail.com" [ref=e583]:
520
+ - generic [ref=e584]: isaac.rodriguez@gmail.com
521
+ - cell "General" [ref=e585]:
522
+ - generic [ref=e586]: General
523
+ - cell "6025551212" [ref=e587]:
524
+ - generic [ref=e588]: "6025551212"
525
+ - cell "85004" [ref=e589]:
526
+ - generic [ref=e590]: "85004"
527
+ - cell "United States" [ref=e591]:
528
+ - generic [ref=e592]: United States
529
+ - cell "Arizona" [ref=e593]:
530
+ - generic [ref=e594]: Arizona
531
+ - cell "Apr 23, 2023 12:14:45 AM" [ref=e595]:
532
+ - generic [ref=e596]: Apr 23, 2023 12:14:45 AM
533
+ - row "Isabella Santos isabella.santos@gmail.com General 3055551212 33130 United States Florida Apr 23, 2023 12:14:32 AM" [ref=e597]:
534
+ - cell [ref=e598]:
535
+ - checkbox [ref=e600] [cursor=pointer]
536
+ - cell "Isabella Santos" [ref=e602]:
537
+ - generic [ref=e603]: Isabella Santos
538
+ - cell "isabella.santos@gmail.com" [ref=e604]:
539
+ - generic [ref=e605]: isabella.santos@gmail.com
540
+ - cell "General" [ref=e606]:
541
+ - generic [ref=e607]: General
542
+ - cell "3055551212" [ref=e608]:
543
+ - generic [ref=e609]: "3055551212"
544
+ - cell "33130" [ref=e610]:
545
+ - generic [ref=e611]: "33130"
546
+ - cell "United States" [ref=e612]:
547
+ - generic [ref=e613]: United States
548
+ - cell "Florida" [ref=e614]:
549
+ - generic [ref=e615]: Florida
550
+ - cell "Apr 23, 2023 12:14:32 AM" [ref=e616]:
551
+ - generic [ref=e617]: Apr 23, 2023 12:14:32 AM
552
+ - row "Jacob Rivera jacob.rivera@hotmail.com General 6025551212 85004 United States Arizona Apr 23, 2023 12:14:01 AM" [ref=e618]:
553
+ - cell [ref=e619]:
554
+ - checkbox [ref=e621] [cursor=pointer]
555
+ - cell "Jacob Rivera" [ref=e623]:
556
+ - generic [ref=e624]: Jacob Rivera
557
+ - cell "jacob.rivera@hotmail.com" [ref=e625]:
558
+ - generic [ref=e626]: jacob.rivera@hotmail.com
559
+ - cell "General" [ref=e627]:
560
+ - generic [ref=e628]: General
561
+ - cell "6025551212" [ref=e629]:
562
+ - generic [ref=e630]: "6025551212"
563
+ - cell "85004" [ref=e631]:
564
+ - generic [ref=e632]: "85004"
565
+ - cell "United States" [ref=e633]:
566
+ - generic [ref=e634]: United States
567
+ - cell "Arizona" [ref=e635]:
568
+ - generic [ref=e636]: Arizona
569
+ - cell "Apr 23, 2023 12:14:01 AM" [ref=e637]:
570
+ - generic [ref=e638]: Apr 23, 2023 12:14:01 AM
571
+ - row "James Baker james.baker@gmail.com General 2145551212 75201 United States Texas Apr 23, 2023 12:14:28 AM" [ref=e639]:
572
+ - cell [ref=e640]:
573
+ - checkbox [ref=e642] [cursor=pointer]
574
+ - cell "James Baker" [ref=e644]:
575
+ - generic [ref=e645]: James Baker
576
+ - cell "james.baker@gmail.com" [ref=e646]:
577
+ - generic [ref=e647]: james.baker@gmail.com
578
+ - cell "General" [ref=e648]:
579
+ - generic [ref=e649]: General
580
+ - cell "2145551212" [ref=e650]:
581
+ - generic [ref=e651]: "2145551212"
582
+ - cell "75201" [ref=e652]:
583
+ - generic [ref=e653]: "75201"
584
+ - cell "United States" [ref=e654]:
585
+ - generic [ref=e655]: United States
586
+ - cell "Texas" [ref=e656]:
587
+ - generic [ref=e657]: Texas
588
+ - cell "Apr 23, 2023 12:14:28 AM" [ref=e658]:
589
+ - generic [ref=e659]: Apr 23, 2023 12:14:28 AM
590
+ - row "James Kim james.kim@gmail.com General 3125551212 60601 United States Illinois Apr 23, 2023 12:13:29 AM" [ref=e660]:
591
+ - cell [ref=e661]:
592
+ - checkbox [ref=e663] [cursor=pointer]
593
+ - cell "James Kim" [ref=e665]:
594
+ - generic [ref=e666]: James Kim
595
+ - cell "james.kim@gmail.com" [ref=e667]:
596
+ - generic [ref=e668]: james.kim@gmail.com
597
+ - cell "General" [ref=e669]:
598
+ - generic [ref=e670]: General
599
+ - cell "3125551212" [ref=e671]:
600
+ - generic [ref=e672]: "3125551212"
601
+ - cell "60601" [ref=e673]:
602
+ - generic [ref=e674]: "60601"
603
+ - cell "United States" [ref=e675]:
604
+ - generic [ref=e676]: United States
605
+ - cell "Illinois" [ref=e677]:
606
+ - generic [ref=e678]: Illinois
607
+ - cell "Apr 23, 2023 12:13:29 AM" [ref=e679]:
608
+ - generic [ref=e680]: Apr 23, 2023 12:13:29 AM
609
+ - row "Jane Doe jane.doe@hotmail.com General 4123671901 33139 United States Florida Apr 19, 2023 5:45:01 PM" [ref=e681]:
610
+ - cell [ref=e682]:
611
+ - checkbox [ref=e684] [cursor=pointer]
612
+ - cell "Jane Doe" [ref=e686]:
613
+ - generic [ref=e687]: Jane Doe
614
+ - cell "jane.doe@hotmail.com" [ref=e688]:
615
+ - generic [ref=e689]: jane.doe@hotmail.com
616
+ - cell "General" [ref=e690]:
617
+ - generic [ref=e691]: General
618
+ - cell "4123671901" [ref=e692]:
619
+ - generic [ref=e693]: "4123671901"
620
+ - cell "33139" [ref=e694]:
621
+ - generic [ref=e695]: "33139"
622
+ - cell "United States" [ref=e696]:
623
+ - generic [ref=e697]: United States
624
+ - cell "Florida" [ref=e698]:
625
+ - generic [ref=e699]: Florida
626
+ - cell "Apr 19, 2023 5:45:01 PM" [ref=e700]:
627
+ - generic [ref=e701]: Apr 19, 2023 5:45:01 PM
628
+ - row "Jane Doe jane.doe@gmail.com General 2125551212 10001 United States New York Apr 23, 2023 12:13:19 AM" [ref=e702]:
629
+ - cell [ref=e703]:
630
+ - checkbox [ref=e705] [cursor=pointer]
631
+ - cell "Jane Doe" [ref=e707]:
632
+ - generic [ref=e708]: Jane Doe
633
+ - cell "jane.doe@gmail.com" [ref=e709]:
634
+ - generic [ref=e710]: jane.doe@gmail.com
635
+ - cell "General" [ref=e711]:
636
+ - generic [ref=e712]: General
637
+ - cell "2125551212" [ref=e713]:
638
+ - generic [ref=e714]: "2125551212"
639
+ - cell "10001" [ref=e715]:
640
+ - generic [ref=e716]: "10001"
641
+ - cell "United States" [ref=e717]:
642
+ - generic [ref=e718]: United States
643
+ - cell "New York" [ref=e719]:
644
+ - generic [ref=e720]: New York
645
+ - cell "Apr 23, 2023 12:13:19 AM" [ref=e721]:
646
+ - generic [ref=e722]: Apr 23, 2023 12:13:19 AM
647
+ - row "Jane Smith janesmith@gmail.com General 2065554321 98122 United States Washington Apr 19, 2023 5:45:24 PM" [ref=e723]:
648
+ - cell [ref=e724]:
649
+ - checkbox [ref=e726] [cursor=pointer]
650
+ - cell "Jane Smith" [ref=e728]:
651
+ - generic [ref=e729]: Jane Smith
652
+ - cell "janesmith@gmail.com" [ref=e730]:
653
+ - generic [ref=e731]: janesmith@gmail.com
654
+ - cell "General" [ref=e732]:
655
+ - generic [ref=e733]: General
656
+ - cell "2065554321" [ref=e734]:
657
+ - generic [ref=e735]: "2065554321"
658
+ - cell "98122" [ref=e736]:
659
+ - generic [ref=e737]: "98122"
660
+ - cell "United States" [ref=e738]:
661
+ - generic [ref=e739]: United States
662
+ - cell "Washington" [ref=e740]:
663
+ - generic [ref=e741]: Washington
664
+ - cell "Apr 19, 2023 5:45:24 PM" [ref=e742]:
665
+ - generic [ref=e743]: Apr 19, 2023 5:45:24 PM
666
+ - row "Jane Smith janesmith456@yahoo.com General 3105555555 90210 United States California Apr 19, 2023 5:45:41 PM" [ref=e744]:
667
+ - cell [ref=e745]:
668
+ - checkbox [ref=e747] [cursor=pointer]
669
+ - cell "Jane Smith" [ref=e749]:
670
+ - generic [ref=e750]: Jane Smith
671
+ - cell "janesmith456@yahoo.com" [ref=e751]:
672
+ - generic [ref=e752]: janesmith456@yahoo.com
673
+ - cell "General" [ref=e753]:
674
+ - generic [ref=e754]: General
675
+ - cell "3105555555" [ref=e755]:
676
+ - generic [ref=e756]: "3105555555"
677
+ - cell "90210" [ref=e757]:
678
+ - generic [ref=e758]: "90210"
679
+ - cell "United States" [ref=e759]:
680
+ - generic [ref=e760]: United States
681
+ - cell "California" [ref=e761]:
682
+ - generic [ref=e762]: California
683
+ - cell "Apr 19, 2023 5:45:41 PM" [ref=e763]:
684
+ - generic [ref=e764]: Apr 19, 2023 5:45:41 PM
685
+ - row "Jason Miller jason.miller@yahoo.com General 3035551212 80202 United States Colorado Apr 19, 2023 5:46:34 PM" [ref=e765]:
686
+ - cell [ref=e766]:
687
+ - checkbox [ref=e768] [cursor=pointer]
688
+ - cell "Jason Miller" [ref=e770]:
689
+ - generic [ref=e771]: Jason Miller
690
+ - cell "jason.miller@yahoo.com" [ref=e772]:
691
+ - generic [ref=e773]: jason.miller@yahoo.com
692
+ - cell "General" [ref=e774]:
693
+ - generic [ref=e775]: General
694
+ - cell "3035551212" [ref=e776]:
695
+ - generic [ref=e777]: "3035551212"
696
+ - cell "80202" [ref=e778]:
697
+ - generic [ref=e779]: "80202"
698
+ - cell "United States" [ref=e780]:
699
+ - generic [ref=e781]: United States
700
+ - cell "Colorado" [ref=e782]:
701
+ - generic [ref=e783]: Colorado
702
+ - cell "Apr 19, 2023 5:46:34 PM" [ref=e784]:
703
+ - generic [ref=e785]: Apr 19, 2023 5:46:34 PM
704
+ - row "Jennifer White jennifer.white@yahoo.com General 2137418080 90015 United States California Apr 19, 2023 5:46:17 PM" [ref=e786]:
705
+ - cell [ref=e787]:
706
+ - checkbox [ref=e789] [cursor=pointer]
707
+ - cell "Jennifer White" [ref=e791]:
708
+ - generic [ref=e792]: Jennifer White
709
+ - cell "jennifer.white@yahoo.com" [ref=e793]:
710
+ - generic [ref=e794]: jennifer.white@yahoo.com
711
+ - cell "General" [ref=e795]:
712
+ - generic [ref=e796]: General
713
+ - cell "2137418080" [ref=e797]:
714
+ - generic [ref=e798]: "2137418080"
715
+ - cell "90015" [ref=e799]:
716
+ - generic [ref=e800]: "90015"
717
+ - cell "United States" [ref=e801]:
718
+ - generic [ref=e802]: United States
719
+ - cell "California" [ref=e803]:
720
+ - generic [ref=e804]: California
721
+ - cell "Apr 19, 2023 5:46:17 PM" [ref=e805]:
722
+ - generic [ref=e806]: Apr 19, 2023 5:46:17 PM
723
+ - row "Jessica Chang jessica.chang@hotmail.com General 2065551212 98101 United States Washington Apr 23, 2023 12:13:26 AM" [ref=e807]:
724
+ - cell [ref=e808]:
725
+ - checkbox [ref=e810] [cursor=pointer]
726
+ - cell "Jessica Chang" [ref=e812]:
727
+ - generic [ref=e813]: Jessica Chang
728
+ - cell "jessica.chang@hotmail.com" [ref=e814]:
729
+ - generic [ref=e815]: jessica.chang@hotmail.com
730
+ - cell "General" [ref=e816]:
731
+ - generic [ref=e817]: General
732
+ - cell "2065551212" [ref=e818]:
733
+ - generic [ref=e819]: "2065551212"
734
+ - cell "98101" [ref=e820]:
735
+ - generic [ref=e821]: "98101"
736
+ - cell "United States" [ref=e822]:
737
+ - generic [ref=e823]: United States
738
+ - cell "Washington" [ref=e824]:
739
+ - generic [ref=e825]: Washington
740
+ - cell "Apr 23, 2023 12:13:26 AM" [ref=e826]:
741
+ - generic [ref=e827]: Apr 23, 2023 12:13:26 AM
742
+ - row "Jessica Nguyen jessica.nguyen@gmail.com General 2065551212 98101 United States Washington Apr 23, 2023 12:12:58 AM" [ref=e828]:
743
+ - cell [ref=e829]:
744
+ - checkbox [ref=e831] [cursor=pointer]
745
+ - cell "Jessica Nguyen" [ref=e833]:
746
+ - generic [ref=e834]: Jessica Nguyen
747
+ - cell "jessica.nguyen@gmail.com" [ref=e835]:
748
+ - generic [ref=e836]: jessica.nguyen@gmail.com
749
+ - cell "General" [ref=e837]:
750
+ - generic [ref=e838]: General
751
+ - cell "2065551212" [ref=e839]:
752
+ - generic [ref=e840]: "2065551212"
753
+ - cell "98101" [ref=e841]:
754
+ - generic [ref=e842]: "98101"
755
+ - cell "United States" [ref=e843]:
756
+ - generic [ref=e844]: United States
757
+ - cell "Washington" [ref=e845]:
758
+ - generic [ref=e846]: Washington
759
+ - cell "Apr 23, 2023 12:12:58 AM" [ref=e847]:
760
+ - generic [ref=e848]: Apr 23, 2023 12:12:58 AM
761
+ - row "Jessica Wong jessica.wong@gmail.com General 3125551212 60601 United States Illinois Apr 23, 2023 12:13:48 AM" [ref=e849]:
762
+ - cell [ref=e850]:
763
+ - checkbox [ref=e852] [cursor=pointer]
764
+ - cell "Jessica Wong" [ref=e854]:
765
+ - generic [ref=e855]: Jessica Wong
766
+ - cell "jessica.wong@gmail.com" [ref=e856]:
767
+ - generic [ref=e857]: jessica.wong@gmail.com
768
+ - cell "General" [ref=e858]:
769
+ - generic [ref=e859]: General
770
+ - cell "3125551212" [ref=e860]:
771
+ - generic [ref=e861]: "3125551212"
772
+ - cell "60601" [ref=e862]:
773
+ - generic [ref=e863]: "60601"
774
+ - cell "United States" [ref=e864]:
775
+ - generic [ref=e865]: United States
776
+ - cell "Illinois" [ref=e866]:
777
+ - generic [ref=e867]: Illinois
778
+ - cell "Apr 23, 2023 12:13:48 AM" [ref=e868]:
779
+ - generic [ref=e869]: Apr 23, 2023 12:13:48 AM
780
+ - row "John Doe johndoe123@gmail.com General 2125551212 10001 United States New York Apr 19, 2023 5:45:37 PM" [ref=e870]:
781
+ - cell [ref=e871]:
782
+ - checkbox [ref=e873] [cursor=pointer]
783
+ - cell "John Doe" [ref=e875]:
784
+ - generic [ref=e876]: John Doe
785
+ - cell "johndoe123@gmail.com" [ref=e877]:
786
+ - generic [ref=e878]: johndoe123@gmail.com
787
+ - cell "General" [ref=e879]:
788
+ - generic [ref=e880]: General
789
+ - cell "2125551212" [ref=e881]:
790
+ - generic [ref=e882]: "2125551212"
791
+ - cell "10001" [ref=e883]:
792
+ - generic [ref=e884]: "10001"
793
+ - cell "United States" [ref=e885]:
794
+ - generic [ref=e886]: United States
795
+ - cell "New York" [ref=e887]:
796
+ - generic [ref=e888]: New York
797
+ - cell "Apr 19, 2023 5:45:37 PM" [ref=e889]:
798
+ - generic [ref=e890]: Apr 19, 2023 5:45:37 PM
799
+ - row "John Lee john.lee@yahoo.com General 3125556789 60611 United States Illinois Apr 19, 2023 5:45:21 PM" [ref=e891]:
800
+ - cell [ref=e892]:
801
+ - checkbox [ref=e894] [cursor=pointer]
802
+ - cell "John Lee" [ref=e896]:
803
+ - generic [ref=e897]: John Lee
804
+ - cell "john.lee@yahoo.com" [ref=e898]:
805
+ - generic [ref=e899]: john.lee@yahoo.com
806
+ - cell "General" [ref=e900]:
807
+ - generic [ref=e901]: General
808
+ - cell "3125556789" [ref=e902]:
809
+ - generic [ref=e903]: "3125556789"
810
+ - cell "60611" [ref=e904]:
811
+ - generic [ref=e905]: "60611"
812
+ - cell "United States" [ref=e906]:
813
+ - generic [ref=e907]: United States
814
+ - cell "Illinois" [ref=e908]:
815
+ - generic [ref=e909]: Illinois
816
+ - cell "Apr 19, 2023 5:45:21 PM" [ref=e910]:
817
+ - generic [ref=e911]: Apr 19, 2023 5:45:21 PM
818
+ - row "John Smith john.smith.xyz@gmail.com General 2058812302 35213 United States Alabama Apr 19, 2023 5:44:57 PM" [ref=e912]:
819
+ - cell [ref=e913]:
820
+ - checkbox [ref=e915] [cursor=pointer]
821
+ - cell "John Smith" [ref=e917]:
822
+ - generic [ref=e918]: John Smith
823
+ - cell "john.smith.xyz@gmail.com" [ref=e919]:
824
+ - generic [ref=e920]: john.smith.xyz@gmail.com
825
+ - cell "General" [ref=e921]:
826
+ - generic [ref=e922]: General
827
+ - cell "2058812302" [ref=e923]:
828
+ - generic [ref=e924]: "2058812302"
829
+ - cell "35213" [ref=e925]:
830
+ - generic [ref=e926]: "35213"
831
+ - cell "United States" [ref=e927]:
832
+ - generic [ref=e928]: United States
833
+ - cell "Alabama" [ref=e929]:
834
+ - generic [ref=e930]: Alabama
835
+ - cell "Apr 19, 2023 5:44:57 PM" [ref=e931]:
836
+ - generic [ref=e932]: Apr 19, 2023 5:44:57 PM
837
+ - row "John Smith john.smith@yahoo.com General 2145551212 75201 United States Texas Apr 23, 2023 12:13:22 AM" [ref=e933]:
838
+ - cell [ref=e934]:
839
+ - checkbox [ref=e936] [cursor=pointer]
840
+ - cell "John Smith" [ref=e938]:
841
+ - generic [ref=e939]: John Smith
842
+ - cell "john.smith@yahoo.com" [ref=e940]:
843
+ - generic [ref=e941]: john.smith@yahoo.com
844
+ - cell "General" [ref=e942]:
845
+ - generic [ref=e943]: General
846
+ - cell "2145551212" [ref=e944]:
847
+ - generic [ref=e945]: "2145551212"
848
+ - cell "75201" [ref=e946]:
849
+ - generic [ref=e947]: "75201"
850
+ - cell "United States" [ref=e948]:
851
+ - generic [ref=e949]: United States
852
+ - cell "Texas" [ref=e950]:
853
+ - generic [ref=e951]: Texas
854
+ - cell "Apr 23, 2023 12:13:22 AM" [ref=e952]:
855
+ - generic [ref=e953]: Apr 23, 2023 12:13:22 AM
856
+ - row "Julia Williams jla_7781@gmail.com General 4567890123 10065 United States New York Apr 19, 2023 5:45:11 PM" [ref=e954]:
857
+ - cell [ref=e955]:
858
+ - checkbox [ref=e957] [cursor=pointer]
859
+ - cell "Julia Williams" [ref=e959]:
860
+ - generic [ref=e960]: Julia Williams
861
+ - cell "jla_7781@gmail.com" [ref=e961]:
862
+ - generic [ref=e962]: jla_7781@gmail.com
863
+ - cell "General" [ref=e963]:
864
+ - generic [ref=e964]: General
865
+ - cell "4567890123" [ref=e965]:
866
+ - generic [ref=e966]: "4567890123"
867
+ - cell "10065" [ref=e967]:
868
+ - generic [ref=e968]: "10065"
869
+ - cell "United States" [ref=e969]:
870
+ - generic [ref=e970]: United States
871
+ - cell "New York" [ref=e971]:
872
+ - generic [ref=e972]: New York
873
+ - cell "Apr 19, 2023 5:45:11 PM" [ref=e973]:
874
+ - generic [ref=e974]: Apr 19, 2023 5:45:11 PM
875
+ - row "Julie Nguyen julie.nguyen@gmail.com General 3105551212 90210 United States California Apr 23, 2023 12:14:15 AM" [ref=e975]:
876
+ - cell [ref=e976]:
877
+ - checkbox [ref=e978] [cursor=pointer]
878
+ - cell "Julie Nguyen" [ref=e980]:
879
+ - generic [ref=e981]: Julie Nguyen
880
+ - cell "julie.nguyen@gmail.com" [ref=e982]:
881
+ - generic [ref=e983]: julie.nguyen@gmail.com
882
+ - cell "General" [ref=e984]:
883
+ - generic [ref=e985]: General
884
+ - cell "3105551212" [ref=e986]:
885
+ - generic [ref=e987]: "3105551212"
886
+ - cell "90210" [ref=e988]:
887
+ - generic [ref=e989]: "90210"
888
+ - cell "United States" [ref=e990]:
889
+ - generic [ref=e991]: United States
890
+ - cell "California" [ref=e992]:
891
+ - generic [ref=e993]: California
892
+ - cell "Apr 23, 2023 12:14:15 AM" [ref=e994]:
893
+ - generic [ref=e995]: Apr 23, 2023 12:14:15 AM
894
+ - row "Kate Jones kate.jones@gmail.com General 2125551212 10001 United States New York Apr 23, 2023 12:12:51 AM" [ref=e996]:
895
+ - cell [ref=e997]:
896
+ - checkbox [ref=e999] [cursor=pointer]
897
+ - cell "Kate Jones" [ref=e1001]:
898
+ - generic [ref=e1002]: Kate Jones
899
+ - cell "kate.jones@gmail.com" [ref=e1003]:
900
+ - generic [ref=e1004]: kate.jones@gmail.com
901
+ - cell "General" [ref=e1005]:
902
+ - generic [ref=e1006]: General
903
+ - cell "2125551212" [ref=e1007]:
904
+ - generic [ref=e1008]: "2125551212"
905
+ - cell "10001" [ref=e1009]:
906
+ - generic [ref=e1010]: "10001"
907
+ - cell "United States" [ref=e1011]:
908
+ - generic [ref=e1012]: United States
909
+ - cell "New York" [ref=e1013]:
910
+ - generic [ref=e1014]: New York
911
+ - cell "Apr 23, 2023 12:12:51 AM" [ref=e1015]:
912
+ - generic [ref=e1016]: Apr 23, 2023 12:12:51 AM
913
+ - row "Katie Wong katie.wong@hotmail.com General 2065551212 98101 United States Washington Apr 19, 2023 5:46:37 PM" [ref=e1017]:
914
+ - cell [ref=e1018]:
915
+ - checkbox [ref=e1020] [cursor=pointer]
916
+ - cell "Katie Wong" [ref=e1022]:
917
+ - generic [ref=e1023]: Katie Wong
918
+ - cell "katie.wong@hotmail.com" [ref=e1024]:
919
+ - generic [ref=e1025]: katie.wong@hotmail.com
920
+ - cell "General" [ref=e1026]:
921
+ - generic [ref=e1027]: General
922
+ - cell "2065551212" [ref=e1028]:
923
+ - generic [ref=e1029]: "2065551212"
924
+ - cell "98101" [ref=e1030]:
925
+ - generic [ref=e1031]: "98101"
926
+ - cell "United States" [ref=e1032]:
927
+ - generic [ref=e1033]: United States
928
+ - cell "Washington" [ref=e1034]:
929
+ - generic [ref=e1035]: Washington
930
+ - cell "Apr 19, 2023 5:46:37 PM" [ref=e1036]:
931
+ - generic [ref=e1037]: Apr 19, 2023 5:46:37 PM
932
+ - row "Lily Potter harrypotterfan1@gmail.com General 7735555555 60637 United States Illinois Apr 19, 2023 5:45:47 PM" [ref=e1038]:
933
+ - cell [ref=e1039]:
934
+ - checkbox [ref=e1041] [cursor=pointer]
935
+ - cell "Lily Potter" [ref=e1043]:
936
+ - generic [ref=e1044]: Lily Potter
937
+ - cell "harrypotterfan1@gmail.com" [ref=e1045]:
938
+ - generic [ref=e1046]: harrypotterfan1@gmail.com
939
+ - cell "General" [ref=e1047]:
940
+ - generic [ref=e1048]: General
941
+ - cell "7735555555" [ref=e1049]:
942
+ - generic [ref=e1050]: "7735555555"
943
+ - cell "60637" [ref=e1051]:
944
+ - generic [ref=e1052]: "60637"
945
+ - cell "United States" [ref=e1053]:
946
+ - generic [ref=e1054]: United States
947
+ - cell "Illinois" [ref=e1055]:
948
+ - generic [ref=e1056]: Illinois
949
+ - cell "Apr 19, 2023 5:45:47 PM" [ref=e1057]:
950
+ - generic [ref=e1058]: Apr 19, 2023 5:45:47 PM
951
+ - row "Lisa Green lisa.green@hotmail.com General 2145551212 75201 United States Texas Apr 19, 2023 5:46:24 PM" [ref=e1059]:
952
+ - cell [ref=e1060]:
953
+ - checkbox [ref=e1062] [cursor=pointer]
954
+ - cell "Lisa Green" [ref=e1064]:
955
+ - generic [ref=e1065]: Lisa Green
956
+ - cell "lisa.green@hotmail.com" [ref=e1066]:
957
+ - generic [ref=e1067]: lisa.green@hotmail.com
958
+ - cell "General" [ref=e1068]:
959
+ - generic [ref=e1069]: General
960
+ - cell "2145551212" [ref=e1070]:
961
+ - generic [ref=e1071]: "2145551212"
962
+ - cell "75201" [ref=e1072]:
963
+ - generic [ref=e1073]: "75201"
964
+ - cell "United States" [ref=e1074]:
965
+ - generic [ref=e1075]: United States
966
+ - cell "Texas" [ref=e1076]:
967
+ - generic [ref=e1077]: Texas
968
+ - cell "Apr 19, 2023 5:46:24 PM" [ref=e1078]:
969
+ - generic [ref=e1079]: Apr 19, 2023 5:46:24 PM
970
+ - row "Lisa Kim lisa.kim@gmail.com General 7135557890 77005 United States Texas Apr 19, 2023 5:45:31 PM" [ref=e1080]:
971
+ - cell [ref=e1081]:
972
+ - checkbox [ref=e1083] [cursor=pointer]
973
+ - cell "Lisa Kim" [ref=e1085]:
974
+ - generic [ref=e1086]: Lisa Kim
975
+ - cell "lisa.kim@gmail.com" [ref=e1087]:
976
+ - generic [ref=e1088]: lisa.kim@gmail.com
977
+ - cell "General" [ref=e1089]:
978
+ - generic [ref=e1090]: General
979
+ - cell "7135557890" [ref=e1091]:
980
+ - generic [ref=e1092]: "7135557890"
981
+ - cell "77005" [ref=e1093]:
982
+ - generic [ref=e1094]: "77005"
983
+ - cell "United States" [ref=e1095]:
984
+ - generic [ref=e1096]: United States
985
+ - cell "Texas" [ref=e1097]:
986
+ - generic [ref=e1098]: Texas
987
+ - cell "Apr 19, 2023 5:45:31 PM" [ref=e1099]:
988
+ - generic [ref=e1100]: Apr 19, 2023 5:45:31 PM
989
+ - row "Lucy Garcia artsygal123@hotmail.com General 3035555555 80202 United States Colorado Apr 19, 2023 5:45:54 PM" [ref=e1101]:
990
+ - cell [ref=e1102]:
991
+ - checkbox [ref=e1104] [cursor=pointer]
992
+ - cell "Lucy Garcia" [ref=e1106]:
993
+ - generic [ref=e1107]: Lucy Garcia
994
+ - cell "artsygal123@hotmail.com" [ref=e1108]:
995
+ - generic [ref=e1109]: artsygal123@hotmail.com
996
+ - cell "General" [ref=e1110]:
997
+ - generic [ref=e1111]: General
998
+ - cell "3035555555" [ref=e1112]:
999
+ - generic [ref=e1113]: "3035555555"
1000
+ - cell "80202" [ref=e1114]:
1001
+ - generic [ref=e1115]: "80202"
1002
+ - cell "United States" [ref=e1116]:
1003
+ - generic [ref=e1117]: United States
1004
+ - cell "Colorado" [ref=e1118]:
1005
+ - generic [ref=e1119]: Colorado
1006
+ - cell "Apr 19, 2023 5:45:54 PM" [ref=e1120]:
1007
+ - generic [ref=e1121]: Apr 19, 2023 5:45:54 PM
1008
+ - row "Mary Martin marym@gmail.com General 3059876543 33139 United States Florida Apr 19, 2023 5:45:17 PM" [ref=e1122]:
1009
+ - cell [ref=e1123]:
1010
+ - checkbox [ref=e1125] [cursor=pointer]
1011
+ - cell "Mary Martin" [ref=e1127]:
1012
+ - generic [ref=e1128]: Mary Martin
1013
+ - cell "marym@gmail.com" [ref=e1129]:
1014
+ - generic [ref=e1130]: marym@gmail.com
1015
+ - cell "General" [ref=e1131]:
1016
+ - generic [ref=e1132]: General
1017
+ - cell "3059876543" [ref=e1133]:
1018
+ - generic [ref=e1134]: "3059876543"
1019
+ - cell "33139" [ref=e1135]:
1020
+ - generic [ref=e1136]: "33139"
1021
+ - cell "United States" [ref=e1137]:
1022
+ - generic [ref=e1138]: United States
1023
+ - cell "Florida" [ref=e1139]:
1024
+ - generic [ref=e1140]: Florida
1025
+ - cell "Apr 19, 2023 5:45:17 PM" [ref=e1141]:
1026
+ - generic [ref=e1142]: Apr 19, 2023 5:45:17 PM
1027
+ - row "Matt Baker matt.baker@yahoo.com General 4045551234 30308 United States Georgia Apr 19, 2023 5:45:34 PM" [ref=e1143]:
1028
+ - cell [ref=e1144]:
1029
+ - checkbox [ref=e1146] [cursor=pointer]
1030
+ - cell "Matt Baker" [ref=e1148]:
1031
+ - generic [ref=e1149]: Matt Baker
1032
+ - cell "matt.baker@yahoo.com" [ref=e1150]:
1033
+ - generic [ref=e1151]: matt.baker@yahoo.com
1034
+ - cell "General" [ref=e1152]:
1035
+ - generic [ref=e1153]: General
1036
+ - cell "4045551234" [ref=e1154]:
1037
+ - generic [ref=e1155]: "4045551234"
1038
+ - cell "30308" [ref=e1156]:
1039
+ - generic [ref=e1157]: "30308"
1040
+ - cell "United States" [ref=e1158]:
1041
+ - generic [ref=e1159]: United States
1042
+ - cell "Georgia" [ref=e1160]:
1043
+ - generic [ref=e1161]: Georgia
1044
+ - cell "Apr 19, 2023 5:45:34 PM" [ref=e1162]:
1045
+ - generic [ref=e1163]: Apr 19, 2023 5:45:34 PM
1046
+ - row "Matthew Kim matthew.kim@gmail.com General 2015551212 07030 United States New Jersey Apr 23, 2023 12:14:19 AM" [ref=e1164]:
1047
+ - cell [ref=e1165]:
1048
+ - checkbox [ref=e1167] [cursor=pointer]
1049
+ - cell "Matthew Kim" [ref=e1169]:
1050
+ - generic [ref=e1170]: Matthew Kim
1051
+ - cell "matthew.kim@gmail.com" [ref=e1171]:
1052
+ - generic [ref=e1172]: matthew.kim@gmail.com
1053
+ - cell "General" [ref=e1173]:
1054
+ - generic [ref=e1174]: General
1055
+ - cell "2015551212" [ref=e1175]:
1056
+ - generic [ref=e1176]: "2015551212"
1057
+ - cell "07030" [ref=e1177]:
1058
+ - generic [ref=e1178]: "07030"
1059
+ - cell "United States" [ref=e1179]:
1060
+ - generic [ref=e1180]: United States
1061
+ - cell "New Jersey" [ref=e1181]:
1062
+ - generic [ref=e1182]: New Jersey
1063
+ - cell "Apr 23, 2023 12:14:19 AM" [ref=e1183]:
1064
+ - generic [ref=e1184]: Apr 23, 2023 12:14:19 AM
1065
+ - row "Maxwell Baker maxwell.baker@yahoo.com General 3125551212 60601 United States Illinois Apr 23, 2023 12:13:01 AM" [ref=e1185]:
1066
+ - cell [ref=e1186]:
1067
+ - checkbox [ref=e1188] [cursor=pointer]
1068
+ - cell "Maxwell Baker" [ref=e1190]:
1069
+ - generic [ref=e1191]: Maxwell Baker
1070
+ - cell "maxwell.baker@yahoo.com" [ref=e1192]:
1071
+ - generic [ref=e1193]: maxwell.baker@yahoo.com
1072
+ - cell "General" [ref=e1194]:
1073
+ - generic [ref=e1195]: General
1074
+ - cell "3125551212" [ref=e1196]:
1075
+ - generic [ref=e1197]: "3125551212"
1076
+ - cell "60601" [ref=e1198]:
1077
+ - generic [ref=e1199]: "60601"
1078
+ - cell "United States" [ref=e1200]:
1079
+ - generic [ref=e1201]: United States
1080
+ - cell "Illinois" [ref=e1202]:
1081
+ - generic [ref=e1203]: Illinois
1082
+ - cell "Apr 23, 2023 12:13:01 AM" [ref=e1204]:
1083
+ - generic [ref=e1205]: Apr 23, 2023 12:13:01 AM
1084
+ - row "Michael Nguyen michael.nguyen@yahoo.com General 3125551212 60606 United States Illinois Apr 19, 2023 5:46:27 PM" [ref=e1206]:
1085
+ - cell [ref=e1207]:
1086
+ - checkbox [ref=e1209] [cursor=pointer]
1087
+ - cell "Michael Nguyen" [ref=e1211]:
1088
+ - generic [ref=e1212]: Michael Nguyen
1089
+ - cell "michael.nguyen@yahoo.com" [ref=e1213]:
1090
+ - generic [ref=e1214]: michael.nguyen@yahoo.com
1091
+ - cell "General" [ref=e1215]:
1092
+ - generic [ref=e1216]: General
1093
+ - cell "3125551212" [ref=e1217]:
1094
+ - generic [ref=e1218]: "3125551212"
1095
+ - cell "60606" [ref=e1219]:
1096
+ - generic [ref=e1220]: "60606"
1097
+ - cell "United States" [ref=e1221]:
1098
+ - generic [ref=e1222]: United States
1099
+ - cell "Illinois" [ref=e1223]:
1100
+ - generic [ref=e1224]: Illinois
1101
+ - cell "Apr 19, 2023 5:46:27 PM" [ref=e1225]:
1102
+ - generic [ref=e1226]: Apr 19, 2023 5:46:27 PM
1103
+ - row "Natalie Kim natalie.kim@gmail.com General 2015551212 07030 United States New Jersey Apr 23, 2023 12:14:49 AM" [ref=e1227]:
1104
+ - cell [ref=e1228]:
1105
+ - checkbox [ref=e1230] [cursor=pointer]
1106
+ - cell "Natalie Kim" [ref=e1232]:
1107
+ - generic [ref=e1233]: Natalie Kim
1108
+ - cell "natalie.kim@gmail.com" [ref=e1234]:
1109
+ - generic [ref=e1235]: natalie.kim@gmail.com
1110
+ - cell "General" [ref=e1236]:
1111
+ - generic [ref=e1237]: General
1112
+ - cell "2015551212" [ref=e1238]:
1113
+ - generic [ref=e1239]: "2015551212"
1114
+ - cell "07030" [ref=e1240]:
1115
+ - generic [ref=e1241]: "07030"
1116
+ - cell "United States" [ref=e1242]:
1117
+ - generic [ref=e1243]: United States
1118
+ - cell "New Jersey" [ref=e1244]:
1119
+ - generic [ref=e1245]: New Jersey
1120
+ - cell "Apr 23, 2023 12:14:49 AM" [ref=e1246]:
1121
+ - generic [ref=e1247]: Apr 23, 2023 12:14:49 AM
1122
+ - row "Nathan Chen nathan.chen@gmail.com General 3035551212 80202 United States Colorado Apr 23, 2023 12:14:36 AM" [ref=e1248]:
1123
+ - cell [ref=e1249]:
1124
+ - checkbox [ref=e1251] [cursor=pointer]
1125
+ - cell "Nathan Chen" [ref=e1253]:
1126
+ - generic [ref=e1254]: Nathan Chen
1127
+ - cell "nathan.chen@gmail.com" [ref=e1255]:
1128
+ - generic [ref=e1256]: nathan.chen@gmail.com
1129
+ - cell "General" [ref=e1257]:
1130
+ - generic [ref=e1258]: General
1131
+ - cell "3035551212" [ref=e1259]:
1132
+ - generic [ref=e1260]: "3035551212"
1133
+ - cell "80202" [ref=e1261]:
1134
+ - generic [ref=e1262]: "80202"
1135
+ - cell "United States" [ref=e1263]:
1136
+ - generic [ref=e1264]: United States
1137
+ - cell "Colorado" [ref=e1265]:
1138
+ - generic [ref=e1266]: Colorado
1139
+ - cell "Apr 23, 2023 12:14:36 AM" [ref=e1267]:
1140
+ - generic [ref=e1268]: Apr 23, 2023 12:14:36 AM
1141
+ - row "Olivia Jackson olivia.jackson@gmail.com General 3035551212 80202 United States Colorado Apr 23, 2023 12:13:57 AM" [ref=e1269]:
1142
+ - cell [ref=e1270]:
1143
+ - checkbox [ref=e1272] [cursor=pointer]
1144
+ - cell "Olivia Jackson" [ref=e1274]:
1145
+ - generic [ref=e1275]: Olivia Jackson
1146
+ - cell "olivia.jackson@gmail.com" [ref=e1276]:
1147
+ - generic [ref=e1277]: olivia.jackson@gmail.com
1148
+ - cell "General" [ref=e1278]:
1149
+ - generic [ref=e1279]: General
1150
+ - cell "3035551212" [ref=e1280]:
1151
+ - generic [ref=e1281]: "3035551212"
1152
+ - cell "80202" [ref=e1282]:
1153
+ - generic [ref=e1283]: "80202"
1154
+ - cell "United States" [ref=e1284]:
1155
+ - generic [ref=e1285]: United States
1156
+ - cell "Colorado" [ref=e1286]:
1157
+ - generic [ref=e1287]: Colorado
1158
+ - cell "Apr 23, 2023 12:13:57 AM" [ref=e1288]:
1159
+ - generic [ref=e1289]: Apr 23, 2023 12:13:57 AM
1160
+ - row "Olivia Lee soccerfanatic22@gmail.com General 7135555555 77002 United States Texas Apr 19, 2023 5:45:57 PM" [ref=e1290]:
1161
+ - cell [ref=e1291]:
1162
+ - checkbox [ref=e1293] [cursor=pointer]
1163
+ - cell "Olivia Lee" [ref=e1295]:
1164
+ - generic [ref=e1296]: Olivia Lee
1165
+ - cell "soccerfanatic22@gmail.com" [ref=e1297]:
1166
+ - generic [ref=e1298]: soccerfanatic22@gmail.com
1167
+ - cell "General" [ref=e1299]:
1168
+ - generic [ref=e1300]: General
1169
+ - cell "7135555555" [ref=e1301]:
1170
+ - generic [ref=e1302]: "7135555555"
1171
+ - cell "77002" [ref=e1303]:
1172
+ - generic [ref=e1304]: "77002"
1173
+ - cell "United States" [ref=e1305]:
1174
+ - generic [ref=e1306]: United States
1175
+ - cell "Texas" [ref=e1307]:
1176
+ - generic [ref=e1308]: Texas
1177
+ - cell "Apr 19, 2023 5:45:57 PM" [ref=e1309]:
1178
+ - generic [ref=e1310]: Apr 19, 2023 5:45:57 PM
1179
+ - row "Robert Johnson robert.johnson@gmail.com General 6175551212 02108 United States Massachusetts Apr 23, 2023 12:13:36 AM" [ref=e1311]:
1180
+ - cell [ref=e1312]:
1181
+ - checkbox [ref=e1314] [cursor=pointer]
1182
+ - cell "Robert Johnson" [ref=e1316]:
1183
+ - generic [ref=e1317]: Robert Johnson
1184
+ - cell "robert.johnson@gmail.com" [ref=e1318]:
1185
+ - generic [ref=e1319]: robert.johnson@gmail.com
1186
+ - cell "General" [ref=e1320]:
1187
+ - generic [ref=e1321]: General
1188
+ - cell "6175551212" [ref=e1322]:
1189
+ - generic [ref=e1323]: "6175551212"
1190
+ - cell "02108" [ref=e1324]:
1191
+ - generic [ref=e1325]: "02108"
1192
+ - cell "United States" [ref=e1326]:
1193
+ - generic [ref=e1327]: United States
1194
+ - cell "Massachusetts" [ref=e1328]:
1195
+ - generic [ref=e1329]: Massachusetts
1196
+ - cell "Apr 23, 2023 12:13:36 AM" [ref=e1330]:
1197
+ - generic [ref=e1331]: Apr 23, 2023 12:13:36 AM
1198
+ - row "Roberto Lopez roberto.lopez@hotmail.com General 2125551212 10001 United States New York Apr 23, 2023 12:13:12 AM" [ref=e1332]:
1199
+ - cell [ref=e1333]:
1200
+ - checkbox [ref=e1335] [cursor=pointer]
1201
+ - cell "Roberto Lopez" [ref=e1337]:
1202
+ - generic [ref=e1338]: Roberto Lopez
1203
+ - cell "roberto.lopez@hotmail.com" [ref=e1339]:
1204
+ - generic [ref=e1340]: roberto.lopez@hotmail.com
1205
+ - cell "General" [ref=e1341]:
1206
+ - generic [ref=e1342]: General
1207
+ - cell "2125551212" [ref=e1343]:
1208
+ - generic [ref=e1344]: "2125551212"
1209
+ - cell "10001" [ref=e1345]:
1210
+ - generic [ref=e1346]: "10001"
1211
+ - cell "United States" [ref=e1347]:
1212
+ - generic [ref=e1348]: United States
1213
+ - cell "New York" [ref=e1349]:
1214
+ - generic [ref=e1350]: New York
1215
+ - cell "Apr 23, 2023 12:13:12 AM" [ref=e1351]:
1216
+ - generic [ref=e1352]: Apr 23, 2023 12:13:12 AM
1217
+ - row "Ryan Tanaka ryan.tanaka@yahoo.com General 8085551212 96813 United States Hawaii Apr 23, 2023 12:14:10 AM" [ref=e1353]:
1218
+ - cell [ref=e1354]:
1219
+ - checkbox [ref=e1356] [cursor=pointer]
1220
+ - cell "Ryan Tanaka" [ref=e1358]:
1221
+ - generic [ref=e1359]: Ryan Tanaka
1222
+ - cell "ryan.tanaka@yahoo.com" [ref=e1360]:
1223
+ - generic [ref=e1361]: ryan.tanaka@yahoo.com
1224
+ - cell "General" [ref=e1362]:
1225
+ - generic [ref=e1363]: General
1226
+ - cell "8085551212" [ref=e1364]:
1227
+ - generic [ref=e1365]: "8085551212"
1228
+ - cell "96813" [ref=e1366]:
1229
+ - generic [ref=e1367]: "96813"
1230
+ - cell "United States" [ref=e1368]:
1231
+ - generic [ref=e1369]: United States
1232
+ - cell "Hawaii" [ref=e1370]:
1233
+ - generic [ref=e1371]: Hawaii
1234
+ - cell "Apr 23, 2023 12:14:10 AM" [ref=e1372]:
1235
+ - generic [ref=e1373]: Apr 23, 2023 12:14:10 AM
1236
+ - row "Sam Wilson sam.wilson@yahoo.com General 3105551212 90210 United States California Apr 23, 2023 12:12:47 AM" [ref=e1374]:
1237
+ - cell [ref=e1375]:
1238
+ - checkbox [ref=e1377] [cursor=pointer]
1239
+ - cell "Sam Wilson" [ref=e1379]:
1240
+ - generic [ref=e1380]: Sam Wilson
1241
+ - cell "sam.wilson@yahoo.com" [ref=e1381]:
1242
+ - generic [ref=e1382]: sam.wilson@yahoo.com
1243
+ - cell "General" [ref=e1383]:
1244
+ - generic [ref=e1384]: General
1245
+ - cell "3105551212" [ref=e1385]:
1246
+ - generic [ref=e1386]: "3105551212"
1247
+ - cell "90210" [ref=e1387]:
1248
+ - generic [ref=e1388]: "90210"
1249
+ - cell "United States" [ref=e1389]:
1250
+ - generic [ref=e1390]: United States
1251
+ - cell "California" [ref=e1391]:
1252
+ - generic [ref=e1392]: California
1253
+ - cell "Apr 23, 2023 12:12:47 AM" [ref=e1393]:
1254
+ - generic [ref=e1394]: Apr 23, 2023 12:12:47 AM
1255
+ - row "Samantha Jones coolcat321@hotmail.com General 3055551212 33139 United States Florida Apr 19, 2023 5:45:44 PM" [ref=e1395]:
1256
+ - cell [ref=e1396]:
1257
+ - checkbox [ref=e1398] [cursor=pointer]
1258
+ - cell "Samantha Jones" [ref=e1400]:
1259
+ - generic [ref=e1401]: Samantha Jones
1260
+ - cell "coolcat321@hotmail.com" [ref=e1402]:
1261
+ - generic [ref=e1403]: coolcat321@hotmail.com
1262
+ - cell "General" [ref=e1404]:
1263
+ - generic [ref=e1405]: General
1264
+ - cell "3055551212" [ref=e1406]:
1265
+ - generic [ref=e1407]: "3055551212"
1266
+ - cell "33139" [ref=e1408]:
1267
+ - generic [ref=e1409]: "33139"
1268
+ - cell "United States" [ref=e1410]:
1269
+ - generic [ref=e1411]: United States
1270
+ - cell "Florida" [ref=e1412]:
1271
+ - generic [ref=e1413]: Florida
1272
+ - cell "Apr 19, 2023 5:45:44 PM" [ref=e1414]:
1273
+ - generic [ref=e1415]: Apr 19, 2023 5:45:44 PM
1274
+ - row "Samantha Nguyen samantha.nguyen@gmail.com General 2145551212 75201 United States Texas Apr 19, 2023 5:46:47 PM" [ref=e1416]:
1275
+ - cell [ref=e1417]:
1276
+ - checkbox [ref=e1419] [cursor=pointer]
1277
+ - cell "Samantha Nguyen" [ref=e1421]:
1278
+ - generic [ref=e1422]: Samantha Nguyen
1279
+ - cell "samantha.nguyen@gmail.com" [ref=e1423]:
1280
+ - generic [ref=e1424]: samantha.nguyen@gmail.com
1281
+ - cell "General" [ref=e1425]:
1282
+ - generic [ref=e1426]: General
1283
+ - cell "2145551212" [ref=e1427]:
1284
+ - generic [ref=e1428]: "2145551212"
1285
+ - cell "75201" [ref=e1429]:
1286
+ - generic [ref=e1430]: "75201"
1287
+ - cell "United States" [ref=e1431]:
1288
+ - generic [ref=e1432]: United States
1289
+ - cell "Texas" [ref=e1433]:
1290
+ - generic [ref=e1434]: Texas
1291
+ - cell "Apr 19, 2023 5:46:47 PM" [ref=e1435]:
1292
+ - generic [ref=e1436]: Apr 19, 2023 5:46:47 PM
1293
+ - row "Samantha Wu samantha.wu@yahoo.com General 3055551212 33139 United States Florida Apr 23, 2023 12:13:33 AM" [ref=e1437]:
1294
+ - cell [ref=e1438]:
1295
+ - checkbox [ref=e1440] [cursor=pointer]
1296
+ - cell "Samantha Wu" [ref=e1442]:
1297
+ - generic [ref=e1443]: Samantha Wu
1298
+ - cell "samantha.wu@yahoo.com" [ref=e1444]:
1299
+ - generic [ref=e1445]: samantha.wu@yahoo.com
1300
+ - cell "General" [ref=e1446]:
1301
+ - generic [ref=e1447]: General
1302
+ - cell "3055551212" [ref=e1448]:
1303
+ - generic [ref=e1449]: "3055551212"
1304
+ - cell "33139" [ref=e1450]:
1305
+ - generic [ref=e1451]: "33139"
1306
+ - cell "United States" [ref=e1452]:
1307
+ - generic [ref=e1453]: United States
1308
+ - cell "Florida" [ref=e1454]:
1309
+ - generic [ref=e1455]: Florida
1310
+ - cell "Apr 23, 2023 12:13:33 AM" [ref=e1456]:
1311
+ - generic [ref=e1457]: Apr 23, 2023 12:13:33 AM
1312
+ - row "Sarah Miller helloworld@yahoo.com General 5107819902 94602 United States California Apr 19, 2023 5:45:07 PM" [ref=e1458]:
1313
+ - cell [ref=e1459]:
1314
+ - checkbox [ref=e1461] [cursor=pointer]
1315
+ - cell "Sarah Miller" [ref=e1463]:
1316
+ - generic [ref=e1464]: Sarah Miller
1317
+ - cell "helloworld@yahoo.com" [ref=e1465]:
1318
+ - generic [ref=e1466]: helloworld@yahoo.com
1319
+ - cell "General" [ref=e1467]:
1320
+ - generic [ref=e1468]: General
1321
+ - cell "5107819902" [ref=e1469]:
1322
+ - generic [ref=e1470]: "5107819902"
1323
+ - cell "94602" [ref=e1471]:
1324
+ - generic [ref=e1472]: "94602"
1325
+ - cell "United States" [ref=e1473]:
1326
+ - generic [ref=e1474]: United States
1327
+ - cell "California" [ref=e1475]:
1328
+ - generic [ref=e1476]: California
1329
+ - cell "Apr 19, 2023 5:45:07 PM" [ref=e1477]:
1330
+ - generic [ref=e1478]: Apr 19, 2023 5:45:07 PM
1331
+ - row "Sean Miller sean.miller@gmail.com General 8015551212 84101 United States Utah Apr 23, 2023 12:14:53 AM" [ref=e1479]:
1332
+ - cell [ref=e1480]:
1333
+ - checkbox [ref=e1482] [cursor=pointer]
1334
+ - cell "Sean Miller" [ref=e1484]:
1335
+ - generic [ref=e1485]: Sean Miller
1336
+ - cell "sean.miller@gmail.com" [ref=e1486]:
1337
+ - generic [ref=e1487]: sean.miller@gmail.com
1338
+ - cell "General" [ref=e1488]:
1339
+ - generic [ref=e1489]: General
1340
+ - cell "8015551212" [ref=e1490]:
1341
+ - generic [ref=e1491]: "8015551212"
1342
+ - cell "84101" [ref=e1492]:
1343
+ - generic [ref=e1493]: "84101"
1344
+ - cell "United States" [ref=e1494]:
1345
+ - generic [ref=e1495]: United States
1346
+ - cell "Utah" [ref=e1496]:
1347
+ - generic [ref=e1497]: Utah
1348
+ - cell "Apr 23, 2023 12:14:53 AM" [ref=e1498]:
1349
+ - generic [ref=e1499]: Apr 23, 2023 12:14:53 AM
1350
+ - row "Sophia Kim sophia.kim@gmail.com General 4105551212 21201 United States Maryland Apr 23, 2023 12:13:40 AM" [ref=e1500]:
1351
+ - cell [ref=e1501]:
1352
+ - checkbox [ref=e1503] [cursor=pointer]
1353
+ - cell "Sophia Kim" [ref=e1505]:
1354
+ - generic [ref=e1506]: Sophia Kim
1355
+ - cell "sophia.kim@gmail.com" [ref=e1507]:
1356
+ - generic [ref=e1508]: sophia.kim@gmail.com
1357
+ - cell "General" [ref=e1509]:
1358
+ - generic [ref=e1510]: General
1359
+ - cell "4105551212" [ref=e1511]:
1360
+ - generic [ref=e1512]: "4105551212"
1361
+ - cell "21201" [ref=e1513]:
1362
+ - generic [ref=e1514]: "21201"
1363
+ - cell "United States" [ref=e1515]:
1364
+ - generic [ref=e1516]: United States
1365
+ - cell "Maryland" [ref=e1517]:
1366
+ - generic [ref=e1518]: Maryland
1367
+ - cell "Apr 23, 2023 12:13:40 AM" [ref=e1519]:
1368
+ - generic [ref=e1520]: Apr 23, 2023 12:13:40 AM
1369
+ - row "Sophia Young sophia.young@gmail.com General 6175551212 02110 United States Massachusetts Apr 23, 2023 12:14:05 AM" [ref=e1521]:
1370
+ - cell [ref=e1522]:
1371
+ - checkbox [ref=e1524] [cursor=pointer]
1372
+ - cell "Sophia Young" [ref=e1526]:
1373
+ - generic [ref=e1527]: Sophia Young
1374
+ - cell "sophia.young@gmail.com" [ref=e1528]:
1375
+ - generic [ref=e1529]: sophia.young@gmail.com
1376
+ - cell "General" [ref=e1530]:
1377
+ - generic [ref=e1531]: General
1378
+ - cell "6175551212" [ref=e1532]:
1379
+ - generic [ref=e1533]: "6175551212"
1380
+ - cell "02110" [ref=e1534]:
1381
+ - generic [ref=e1535]: "02110"
1382
+ - cell "United States" [ref=e1536]:
1383
+ - generic [ref=e1537]: United States
1384
+ - cell "Massachusetts" [ref=e1538]:
1385
+ - generic [ref=e1539]: Massachusetts
1386
+ - cell "Apr 23, 2023 12:14:05 AM" [ref=e1540]:
1387
+ - generic [ref=e1541]: Apr 23, 2023 12:14:05 AM
1388
+ - row "Sophie Taylor fashionista88@gmail.com General 3055555555 33130 United States Florida Apr 19, 2023 5:46:04 PM" [ref=e1542]:
1389
+ - cell [ref=e1543]:
1390
+ - checkbox [ref=e1545] [cursor=pointer]
1391
+ - cell "Sophie Taylor" [ref=e1547]:
1392
+ - generic [ref=e1548]: Sophie Taylor
1393
+ - cell "fashionista88@gmail.com" [ref=e1549]:
1394
+ - generic [ref=e1550]: fashionista88@gmail.com
1395
+ - cell "General" [ref=e1551]:
1396
+ - generic [ref=e1552]: General
1397
+ - cell "3055555555" [ref=e1553]:
1398
+ - generic [ref=e1554]: "3055555555"
1399
+ - cell "33130" [ref=e1555]:
1400
+ - generic [ref=e1556]: "33130"
1401
+ - cell "United States" [ref=e1557]:
1402
+ - generic [ref=e1558]: United States
1403
+ - cell "Florida" [ref=e1559]:
1404
+ - generic [ref=e1560]: Florida
1405
+ - cell "Apr 19, 2023 5:46:04 PM" [ref=e1561]:
1406
+ - generic [ref=e1562]: Apr 19, 2023 5:46:04 PM
1407
+ - row "Veronica Costello roni_cost@example.com General (555) 229-3326 49628-7978 United States Michigan Apr 19, 2023 12:15:35 PM" [ref=e1563]:
1408
+ - cell [ref=e1564]:
1409
+ - checkbox [ref=e1566] [cursor=pointer]
1410
+ - cell "Veronica Costello" [ref=e1568]:
1411
+ - generic [ref=e1569]: Veronica Costello
1412
+ - cell "roni_cost@example.com" [ref=e1570]:
1413
+ - generic [ref=e1571]: roni_cost@example.com
1414
+ - cell "General" [ref=e1572]:
1415
+ - generic [ref=e1573]: General
1416
+ - cell "(555) 229-3326" [ref=e1574]:
1417
+ - generic [ref=e1575]: (555) 229-3326
1418
+ - cell "49628-7978" [ref=e1576]:
1419
+ - generic [ref=e1577]: 49628-7978
1420
+ - cell "United States" [ref=e1578]:
1421
+ - generic [ref=e1579]: United States
1422
+ - cell "Michigan" [ref=e1580]:
1423
+ - generic [ref=e1581]: Michigan
1424
+ - cell "Apr 19, 2023 12:15:35 PM" [ref=e1582]:
1425
+ - generic [ref=e1583]: Apr 19, 2023 12:15:35 PM
1426
+ - row "William Chang william.chang@hotmail.com General 2065551212 98101 United States Washington Apr 23, 2023 12:13:44 AM" [ref=e1584]:
1427
+ - cell [ref=e1585]:
1428
+ - checkbox [ref=e1587] [cursor=pointer]
1429
+ - cell "William Chang" [ref=e1589]:
1430
+ - generic [ref=e1590]: William Chang
1431
+ - cell "william.chang@hotmail.com" [ref=e1591]:
1432
+ - generic [ref=e1592]: william.chang@hotmail.com
1433
+ - cell "General" [ref=e1593]:
1434
+ - generic [ref=e1594]: General
1435
+ - cell "2065551212" [ref=e1595]:
1436
+ - generic [ref=e1596]: "2065551212"
1437
+ - cell "98101" [ref=e1597]:
1438
+ - generic [ref=e1598]: "98101"
1439
+ - cell "United States" [ref=e1599]:
1440
+ - generic [ref=e1600]: United States
1441
+ - cell "Washington" [ref=e1601]:
1442
+ - generic [ref=e1602]: Washington
1443
+ - cell "Apr 23, 2023 12:13:44 AM" [ref=e1603]:
1444
+ - generic [ref=e1604]: Apr 23, 2023 12:13:44 AM
1445
+ - contentinfo [ref=e122]:
1446
+ - generic [ref=e124]:
1447
+ - paragraph [ref=e125]:
1448
+ - link "" [ref=e126] [cursor=pointer]:
1449
+ - /url: http://magento.com
1450
+ - text: Copyright © 2026 Magento Commerce Inc. All rights reserved.
1451
+ - generic [ref=e127]:
1452
+ - paragraph [ref=e128]:
1453
+ - strong [ref=e129]: Magento
1454
+ - text: ver. 2.4.6
1455
+ - link "Privacy Policy" [ref=e130] [cursor=pointer]:
1456
+ - /url: https://www.adobe.com/privacy/policy.html
1457
+ - text: "|"
1458
+ - link "Account Activity" [ref=e131] [cursor=pointer]:
1459
+ - /url: http://localhost:7789/admin/security/session/activity/
1460
+ - text: "|"
1461
+ - link "Report an Issue" [ref=e132] [cursor=pointer]:
1462
+ - /url: https://github.com/magento/magento2/issues
1463
+ - text: ‹ ›
customers_final.yml ADDED
@@ -0,0 +1,1494 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ - generic [active] [ref=e1]:
2
+ - generic [ref=e2]:
3
+ - link "Magento Admin Panel" [ref=e3] [cursor=pointer]:
4
+ - /url: http://localhost:7789/admin/admin/
5
+ - img "Magento Admin Panel" [ref=e4]
6
+ - navigation [ref=e5]:
7
+ - menubar [ref=e6]:
8
+ - listitem [ref=e7]:
9
+ - link " Dashboard" [ref=e8] [cursor=pointer]:
10
+ - /url: http://localhost:7789/admin/admin/dashboard/
11
+ - listitem [ref=e9]:
12
+ - link " Sales" [ref=e10] [cursor=pointer]:
13
+ - /url: "#"
14
+ - listitem [ref=e11]:
15
+ - link " Catalog" [ref=e12] [cursor=pointer]:
16
+ - /url: "#"
17
+ - listitem [ref=e13]:
18
+ - link " Customers" [ref=e14] [cursor=pointer]:
19
+ - /url: "#"
20
+ - listitem [ref=e15]:
21
+ - link " Marketing" [ref=e16] [cursor=pointer]:
22
+ - /url: "#"
23
+ - listitem [ref=e17]:
24
+ - link " Content" [ref=e18] [cursor=pointer]:
25
+ - /url: "#"
26
+ - listitem [ref=e19]:
27
+ - link " Reports" [ref=e20] [cursor=pointer]:
28
+ - /url: "#"
29
+ - listitem [ref=e21]:
30
+ - link " Stores" [ref=e22] [cursor=pointer]:
31
+ - /url: "#"
32
+ - listitem [ref=e23]:
33
+ - link " System" [ref=e24] [cursor=pointer]:
34
+ - /url: "#"
35
+ - listitem [ref=e25]:
36
+ - link " Find Partners & Extensions" [ref=e26] [cursor=pointer]:
37
+ - /url: http://localhost:7789/admin/marketplace/index/
38
+ - generic [ref=e27]:
39
+ - banner [ref=e29]:
40
+ - heading "Customers" [level=1] [ref=e32]
41
+ - generic [ref=e33]:
42
+ - link " admin" [ref=e35] [cursor=pointer]:
43
+ - /url: http://localhost:7789/admin/admin/system_account/index/
44
+ - text: 
45
+ - generic [ref=e37]: admin
46
+ - link "" [ref=e39] [cursor=pointer]:
47
+ - /url: http://localhost:7789/admin/admin/notification/index/
48
+ - generic:
49
+ - generic:
50
+ - generic:
51
+ - generic [ref=e40] [cursor=pointer]: 
52
+ - textbox "" [ref=e41]
53
+ - main [ref=e42]:
54
+ - generic [ref=e44]:
55
+ - generic:
56
+ - text: Customers
57
+ - button "Add New Customer" [ref=e45] [cursor=pointer]
58
+ - generic [ref=e49]:
59
+ - generic [ref=e1608]:
60
+ - generic [ref=e1610]:
61
+ - button "Actions" [ref=e1612] [cursor=pointer]
62
+ - generic [ref=e1613]: 70 records found (1 selected)
63
+ - generic [ref=e1614]:
64
+ - generic "Search" [ref=e1615] [cursor=pointer]: 
65
+ - text: 
66
+ - button "product-filters" [ref=e1618] [cursor=pointer]: 
67
+ - generic [ref=e1619]:
68
+ - generic [ref=e1620]:
69
+ - button " Default View" [ref=e1621] [cursor=pointer]:
70
+ - text: 
71
+ - generic: Default View
72
+ - text: 
73
+ - generic [ref=e1622]:
74
+ - button " Columns" [ref=e1623] [cursor=pointer]:
75
+ - text: 
76
+ - generic: Columns
77
+ - text:        
78
+ - button " Export" [ref=e1625] [cursor=pointer]:
79
+ - text: 
80
+ - generic: Export
81
+ - generic [ref=e1626]:
82
+ - generic [ref=e1627]:
83
+ - textbox "per page" [ref=e1629]: "100"
84
+ - button "per page Select" [ref=e1630] [cursor=pointer]:
85
+ - generic [ref=e1631]: Select
86
+ - text: 
87
+ - generic [ref=e1632]:
88
+ - button "" [disabled]
89
+ - button "" [disabled]
90
+ - table [ref=e1634]:
91
+ - rowgroup [ref=e1635]:
92
+ - row "- Options ↑ Name Email Group Phone ZIP Country State/Province Customer Since" [ref=e1689]:
93
+ - columnheader "- Options" [ref=e1637]:
94
+ - generic [ref=e1638]:
95
+ - checkbox "-" [ref=e1639] [cursor=pointer]
96
+ - generic [ref=e1640] [cursor=pointer]: "-"
97
+ - button "Options" [ref=e1641] [cursor=pointer]:
98
+ - generic [ref=e1642]: Options
99
+ - columnheader "↑ Name" [ref=e1690] [cursor=pointer]:
100
+ - text: ↑
101
+ - generic [ref=e1644]: Name
102
+ - columnheader "Email" [ref=e1645] [cursor=pointer]:
103
+ - generic [ref=e1646]: Email
104
+ - columnheader "Group" [ref=e1647] [cursor=pointer]:
105
+ - generic [ref=e1648]: Group
106
+ - columnheader "Phone" [ref=e1649] [cursor=pointer]:
107
+ - generic [ref=e1650]: Phone
108
+ - columnheader "ZIP" [ref=e1651] [cursor=pointer]:
109
+ - generic [ref=e1652]: ZIP
110
+ - columnheader "Country" [ref=e1653] [cursor=pointer]:
111
+ - generic [ref=e1654]: Country
112
+ - columnheader "State/Province" [ref=e1655] [cursor=pointer]:
113
+ - generic [ref=e1656]: State/Province
114
+ - columnheader "Customer Since" [ref=e1657] [cursor=pointer]:
115
+ - generic [ref=e1658]: Customer Since
116
+ - rowgroup
117
+ - table [ref=e108]:
118
+ - rowgroup [ref=e109]:
119
+ - row "- Options ↑ Name Email Group Phone ZIP Country State/Province Customer Since" [ref=e1691]:
120
+ - columnheader "- Options" [ref=e1660]:
121
+ - generic [ref=e112]:
122
+ - checkbox "-" [ref=e1661] [cursor=pointer]
123
+ - generic [ref=e114] [cursor=pointer]: "-"
124
+ - button "Options" [ref=e115] [cursor=pointer]:
125
+ - generic [ref=e116]: Options
126
+ - columnheader "↑ Name" [ref=e1692] [cursor=pointer]:
127
+ - text: ↑
128
+ - generic [ref=e118]: Name
129
+ - columnheader "Email" [ref=e119] [cursor=pointer]:
130
+ - generic [ref=e120]: Email
131
+ - columnheader "Group" [ref=e121] [cursor=pointer]:
132
+ - generic [ref=e122]: Group
133
+ - columnheader "Phone" [ref=e123] [cursor=pointer]:
134
+ - generic [ref=e124]: Phone
135
+ - columnheader "ZIP" [ref=e125] [cursor=pointer]:
136
+ - generic [ref=e126]: ZIP
137
+ - columnheader "Country" [ref=e127] [cursor=pointer]:
138
+ - generic [ref=e128]: Country
139
+ - columnheader "State/Province" [ref=e129] [cursor=pointer]:
140
+ - generic [ref=e130]: State/Province
141
+ - columnheader "Customer Since" [ref=e131] [cursor=pointer]:
142
+ - generic [ref=e132]: Customer Since
143
+ - rowgroup [ref=e133]:
144
+ - row "William Chang william.chang@hotmail.com General 2065551212 98101 United States Washington Apr 23, 2023 12:13:44 AM" [ref=e1693]:
145
+ - cell [ref=e135]:
146
+ - checkbox [ref=e137] [cursor=pointer]
147
+ - cell "William Chang" [ref=e1694]:
148
+ - generic [ref=e140]: William Chang
149
+ - cell "william.chang@hotmail.com" [ref=e1695]:
150
+ - generic [ref=e142]: william.chang@hotmail.com
151
+ - cell "General" [ref=e143]:
152
+ - generic [ref=e144]: General
153
+ - cell "2065551212" [ref=e1696]:
154
+ - generic [ref=e146]: "2065551212"
155
+ - cell "98101" [ref=e1697]:
156
+ - generic [ref=e148]: "98101"
157
+ - cell "United States" [ref=e149]:
158
+ - generic [ref=e150]: United States
159
+ - cell "Washington" [ref=e151]:
160
+ - generic [ref=e152]: Washington
161
+ - cell "Apr 23, 2023 12:13:44 AM" [ref=e1698]:
162
+ - generic [ref=e154]: Apr 23, 2023 12:13:44 AM
163
+ - row "Veronica Costello roni_cost@example.com General (555) 229-3326 49628-7978 United States Michigan Apr 19, 2023 12:15:35 PM" [ref=e1699]:
164
+ - cell [ref=e156]:
165
+ - checkbox [ref=e158] [cursor=pointer]
166
+ - cell "Veronica Costello" [ref=e1700]:
167
+ - generic [ref=e161]: Veronica Costello
168
+ - cell "roni_cost@example.com" [ref=e1701]:
169
+ - generic [ref=e163]: roni_cost@example.com
170
+ - cell "General" [ref=e164]:
171
+ - generic [ref=e165]: General
172
+ - cell "(555) 229-3326" [ref=e1702]:
173
+ - generic [ref=e167]: (555) 229-3326
174
+ - cell "49628-7978" [ref=e1703]:
175
+ - generic [ref=e169]: 49628-7978
176
+ - cell "United States" [ref=e170]:
177
+ - generic [ref=e171]: United States
178
+ - cell "Michigan" [ref=e1704]:
179
+ - generic [ref=e173]: Michigan
180
+ - cell "Apr 19, 2023 12:15:35 PM" [ref=e1705]:
181
+ - generic [ref=e175]: Apr 19, 2023 12:15:35 PM
182
+ - row "Sophie Taylor fashionista88@gmail.com General 3055555555 33130 United States Florida Apr 19, 2023 5:46:04 PM" [ref=e1706]:
183
+ - cell [ref=e177]:
184
+ - checkbox [ref=e179] [cursor=pointer]
185
+ - cell "Sophie Taylor" [ref=e1707]:
186
+ - generic [ref=e182]: Sophie Taylor
187
+ - cell "fashionista88@gmail.com" [ref=e1708]:
188
+ - generic [ref=e184]: fashionista88@gmail.com
189
+ - cell "General" [ref=e185]:
190
+ - generic [ref=e186]: General
191
+ - cell "3055555555" [ref=e1709]:
192
+ - generic [ref=e188]: "3055555555"
193
+ - cell "33130" [ref=e1710]:
194
+ - generic [ref=e190]: "33130"
195
+ - cell "United States" [ref=e191]:
196
+ - generic [ref=e192]: United States
197
+ - cell "Florida" [ref=e1711]:
198
+ - generic [ref=e194]: Florida
199
+ - cell "Apr 19, 2023 5:46:04 PM" [ref=e1712]:
200
+ - generic [ref=e196]: Apr 19, 2023 5:46:04 PM
201
+ - row "Sophia Young sophia.young@gmail.com General 6175551212 02110 United States Massachusetts Apr 23, 2023 12:14:05 AM" [ref=e1713]:
202
+ - cell [ref=e198]:
203
+ - checkbox [ref=e200] [cursor=pointer]
204
+ - cell "Sophia Young" [ref=e1714]:
205
+ - generic [ref=e203]: Sophia Young
206
+ - cell "sophia.young@gmail.com" [ref=e1715]:
207
+ - generic [ref=e205]: sophia.young@gmail.com
208
+ - cell "General" [ref=e206]:
209
+ - generic [ref=e207]: General
210
+ - cell "6175551212" [ref=e1716]:
211
+ - generic [ref=e209]: "6175551212"
212
+ - cell "02110" [ref=e1717]:
213
+ - generic [ref=e211]: "02110"
214
+ - cell "United States" [ref=e212]:
215
+ - generic [ref=e213]: United States
216
+ - cell "Massachusetts" [ref=e1718]:
217
+ - generic [ref=e215]: Massachusetts
218
+ - cell "Apr 23, 2023 12:14:05 AM" [ref=e1719]:
219
+ - generic [ref=e217]: Apr 23, 2023 12:14:05 AM
220
+ - row "Sophia Kim sophia.kim@gmail.com General 4105551212 21201 United States Maryland Apr 23, 2023 12:13:40 AM" [ref=e1720]:
221
+ - cell [ref=e219]:
222
+ - checkbox [ref=e221] [cursor=pointer]
223
+ - cell "Sophia Kim" [ref=e1721]:
224
+ - generic [ref=e224]: Sophia Kim
225
+ - cell "sophia.kim@gmail.com" [ref=e1722]:
226
+ - generic [ref=e226]: sophia.kim@gmail.com
227
+ - cell "General" [ref=e227]:
228
+ - generic [ref=e228]: General
229
+ - cell "4105551212" [ref=e1723]:
230
+ - generic [ref=e230]: "4105551212"
231
+ - cell "21201" [ref=e1724]:
232
+ - generic [ref=e232]: "21201"
233
+ - cell "United States" [ref=e233]:
234
+ - generic [ref=e234]: United States
235
+ - cell "Maryland" [ref=e1725]:
236
+ - generic [ref=e236]: Maryland
237
+ - cell "Apr 23, 2023 12:13:40 AM" [ref=e1726]:
238
+ - generic [ref=e238]: Apr 23, 2023 12:13:40 AM
239
+ - row "Sean Miller sean.miller@gmail.com General 8015551212 84101 United States Utah Apr 23, 2023 12:14:53 AM" [ref=e1727]:
240
+ - cell [ref=e240]:
241
+ - checkbox [ref=e242] [cursor=pointer]
242
+ - cell "Sean Miller" [ref=e1728]:
243
+ - generic [ref=e245]: Sean Miller
244
+ - cell "sean.miller@gmail.com" [ref=e1729]:
245
+ - generic [ref=e247]: sean.miller@gmail.com
246
+ - cell "General" [ref=e248]:
247
+ - generic [ref=e249]: General
248
+ - cell "8015551212" [ref=e1730]:
249
+ - generic [ref=e251]: "8015551212"
250
+ - cell "84101" [ref=e1731]:
251
+ - generic [ref=e253]: "84101"
252
+ - cell "United States" [ref=e254]:
253
+ - generic [ref=e255]: United States
254
+ - cell "Utah" [ref=e1732]:
255
+ - generic [ref=e257]: Utah
256
+ - cell "Apr 23, 2023 12:14:53 AM" [ref=e1733]:
257
+ - generic [ref=e259]: Apr 23, 2023 12:14:53 AM
258
+ - row "Sarah Miller helloworld@yahoo.com General 5107819902 94602 United States California Apr 19, 2023 5:45:07 PM" [ref=e1734]:
259
+ - cell [ref=e261]:
260
+ - checkbox [ref=e263] [cursor=pointer]
261
+ - cell "Sarah Miller" [ref=e1735]:
262
+ - generic [ref=e266]: Sarah Miller
263
+ - cell "helloworld@yahoo.com" [ref=e1736]:
264
+ - generic [ref=e268]: helloworld@yahoo.com
265
+ - cell "General" [ref=e269]:
266
+ - generic [ref=e270]: General
267
+ - cell "5107819902" [ref=e1737]:
268
+ - generic [ref=e272]: "5107819902"
269
+ - cell "94602" [ref=e1738]:
270
+ - generic [ref=e274]: "94602"
271
+ - cell "United States" [ref=e275]:
272
+ - generic [ref=e276]: United States
273
+ - cell "California" [ref=e1739]:
274
+ - generic [ref=e278]: California
275
+ - cell "Apr 19, 2023 5:45:07 PM" [ref=e1740]:
276
+ - generic [ref=e280]: Apr 19, 2023 5:45:07 PM
277
+ - row "Samantha Wu samantha.wu@yahoo.com General 3055551212 33139 United States Florida Apr 23, 2023 12:13:33 AM" [ref=e1741]:
278
+ - cell [ref=e282]:
279
+ - checkbox [ref=e284] [cursor=pointer]
280
+ - cell "Samantha Wu" [ref=e1742]:
281
+ - generic [ref=e287]: Samantha Wu
282
+ - cell "samantha.wu@yahoo.com" [ref=e1743]:
283
+ - generic [ref=e289]: samantha.wu@yahoo.com
284
+ - cell "General" [ref=e290]:
285
+ - generic [ref=e291]: General
286
+ - cell "3055551212" [ref=e1744]:
287
+ - generic [ref=e293]: "3055551212"
288
+ - cell "33139" [ref=e1745]:
289
+ - generic [ref=e295]: "33139"
290
+ - cell "United States" [ref=e296]:
291
+ - generic [ref=e297]: United States
292
+ - cell "Florida" [ref=e1746]:
293
+ - generic [ref=e299]: Florida
294
+ - cell "Apr 23, 2023 12:13:33 AM" [ref=e1747]:
295
+ - generic [ref=e301]: Apr 23, 2023 12:13:33 AM
296
+ - row "Samantha Nguyen samantha.nguyen@gmail.com General 2145551212 75201 United States Texas Apr 19, 2023 5:46:47 PM" [ref=e1748]:
297
+ - cell [ref=e303]:
298
+ - checkbox [ref=e305] [cursor=pointer]
299
+ - cell "Samantha Nguyen" [ref=e1749]:
300
+ - generic [ref=e308]: Samantha Nguyen
301
+ - cell "samantha.nguyen@gmail.com" [ref=e1750]:
302
+ - generic [ref=e310]: samantha.nguyen@gmail.com
303
+ - cell "General" [ref=e311]:
304
+ - generic [ref=e312]: General
305
+ - cell "2145551212" [ref=e1751]:
306
+ - generic [ref=e314]: "2145551212"
307
+ - cell "75201" [ref=e1752]:
308
+ - generic [ref=e316]: "75201"
309
+ - cell "United States" [ref=e317]:
310
+ - generic [ref=e318]: United States
311
+ - cell "Texas" [ref=e319]:
312
+ - generic [ref=e320]: Texas
313
+ - cell "Apr 19, 2023 5:46:47 PM" [ref=e1753]:
314
+ - generic [ref=e322]: Apr 19, 2023 5:46:47 PM
315
+ - row "Samantha Jones coolcat321@hotmail.com General 3055551212 33139 United States Florida Apr 19, 2023 5:45:44 PM" [ref=e1754]:
316
+ - cell [ref=e324]:
317
+ - checkbox [ref=e326] [cursor=pointer]
318
+ - cell "Samantha Jones" [ref=e1755]:
319
+ - generic [ref=e329]: Samantha Jones
320
+ - cell "coolcat321@hotmail.com" [ref=e1756]:
321
+ - generic [ref=e331]: coolcat321@hotmail.com
322
+ - cell "General" [ref=e332]:
323
+ - generic [ref=e333]: General
324
+ - cell "3055551212" [ref=e1757]:
325
+ - generic [ref=e335]: "3055551212"
326
+ - cell "33139" [ref=e1758]:
327
+ - generic [ref=e337]: "33139"
328
+ - cell "United States" [ref=e338]:
329
+ - generic [ref=e339]: United States
330
+ - cell "Florida" [ref=e1759]:
331
+ - generic [ref=e341]: Florida
332
+ - cell "Apr 19, 2023 5:45:44 PM" [ref=e1760]:
333
+ - generic [ref=e343]: Apr 19, 2023 5:45:44 PM
334
+ - row "Sam Wilson sam.wilson@yahoo.com General 3105551212 90210 United States California Apr 23, 2023 12:12:47 AM" [ref=e1761]:
335
+ - cell [ref=e345]:
336
+ - checkbox [ref=e347] [cursor=pointer]
337
+ - cell "Sam Wilson" [ref=e1762]:
338
+ - generic [ref=e350]: Sam Wilson
339
+ - cell "sam.wilson@yahoo.com" [ref=e1763]:
340
+ - generic [ref=e352]: sam.wilson@yahoo.com
341
+ - cell "General" [ref=e353]:
342
+ - generic [ref=e354]: General
343
+ - cell "3105551212" [ref=e1764]:
344
+ - generic [ref=e356]: "3105551212"
345
+ - cell "90210" [ref=e1765]:
346
+ - generic [ref=e358]: "90210"
347
+ - cell "United States" [ref=e359]:
348
+ - generic [ref=e360]: United States
349
+ - cell "California" [ref=e1766]:
350
+ - generic [ref=e362]: California
351
+ - cell "Apr 23, 2023 12:12:47 AM" [ref=e1767]:
352
+ - generic [ref=e364]: Apr 23, 2023 12:12:47 AM
353
+ - row "Ryan Tanaka ryan.tanaka@yahoo.com General 8085551212 96813 United States Hawaii Apr 23, 2023 12:14:10 AM" [ref=e1768]:
354
+ - cell [ref=e366]:
355
+ - checkbox [ref=e368] [cursor=pointer]
356
+ - cell "Ryan Tanaka" [ref=e1769]:
357
+ - generic [ref=e371]: Ryan Tanaka
358
+ - cell "ryan.tanaka@yahoo.com" [ref=e1770]:
359
+ - generic [ref=e373]: ryan.tanaka@yahoo.com
360
+ - cell "General" [ref=e374]:
361
+ - generic [ref=e375]: General
362
+ - cell "8085551212" [ref=e1771]:
363
+ - generic [ref=e377]: "8085551212"
364
+ - cell "96813" [ref=e1772]:
365
+ - generic [ref=e379]: "96813"
366
+ - cell "United States" [ref=e380]:
367
+ - generic [ref=e381]: United States
368
+ - cell "Hawaii" [ref=e1773]:
369
+ - generic [ref=e383]: Hawaii
370
+ - cell "Apr 23, 2023 12:14:10 AM" [ref=e1774]:
371
+ - generic [ref=e385]: Apr 23, 2023 12:14:10 AM
372
+ - row "Roberto Lopez roberto.lopez@hotmail.com General 2125551212 10001 United States New York Apr 23, 2023 12:13:12 AM" [ref=e1775]:
373
+ - cell [ref=e387]:
374
+ - checkbox [ref=e389] [cursor=pointer]
375
+ - cell "Roberto Lopez" [ref=e1776]:
376
+ - generic [ref=e392]: Roberto Lopez
377
+ - cell "roberto.lopez@hotmail.com" [ref=e1777]:
378
+ - generic [ref=e394]: roberto.lopez@hotmail.com
379
+ - cell "General" [ref=e395]:
380
+ - generic [ref=e396]: General
381
+ - cell "2125551212" [ref=e1778]:
382
+ - generic [ref=e398]: "2125551212"
383
+ - cell "10001" [ref=e1779]:
384
+ - generic [ref=e400]: "10001"
385
+ - cell "United States" [ref=e401]:
386
+ - generic [ref=e402]: United States
387
+ - cell "New York" [ref=e1780]:
388
+ - generic [ref=e404]: New York
389
+ - cell "Apr 23, 2023 12:13:12 AM" [ref=e1781]:
390
+ - generic [ref=e406]: Apr 23, 2023 12:13:12 AM
391
+ - row "Robert Johnson robert.johnson@gmail.com General 6175551212 02108 United States Massachusetts Apr 23, 2023 12:13:36 AM" [ref=e1782]:
392
+ - cell [ref=e408]:
393
+ - checkbox [ref=e410] [cursor=pointer]
394
+ - cell "Robert Johnson" [ref=e1783]:
395
+ - generic [ref=e413]: Robert Johnson
396
+ - cell "robert.johnson@gmail.com" [ref=e1784]:
397
+ - generic [ref=e415]: robert.johnson@gmail.com
398
+ - cell "General" [ref=e416]:
399
+ - generic [ref=e417]: General
400
+ - cell "6175551212" [ref=e1785]:
401
+ - generic [ref=e419]: "6175551212"
402
+ - cell "02108" [ref=e1786]:
403
+ - generic [ref=e421]: "02108"
404
+ - cell "United States" [ref=e422]:
405
+ - generic [ref=e423]: United States
406
+ - cell "Massachusetts" [ref=e1787]:
407
+ - generic [ref=e425]: Massachusetts
408
+ - cell "Apr 23, 2023 12:13:36 AM" [ref=e1788]:
409
+ - generic [ref=e427]: Apr 23, 2023 12:13:36 AM
410
+ - row "Olivia Lee soccerfanatic22@gmail.com General 7135555555 77002 United States Texas Apr 19, 2023 5:45:57 PM" [ref=e1789]:
411
+ - cell [ref=e429]:
412
+ - checkbox [ref=e431] [cursor=pointer]
413
+ - cell "Olivia Lee" [ref=e1790]:
414
+ - generic [ref=e434]: Olivia Lee
415
+ - cell "soccerfanatic22@gmail.com" [ref=e1791]:
416
+ - generic [ref=e436]: soccerfanatic22@gmail.com
417
+ - cell "General" [ref=e437]:
418
+ - generic [ref=e438]: General
419
+ - cell "7135555555" [ref=e1792]:
420
+ - generic [ref=e440]: "7135555555"
421
+ - cell "77002" [ref=e1793]:
422
+ - generic [ref=e442]: "77002"
423
+ - cell "United States" [ref=e443]:
424
+ - generic [ref=e444]: United States
425
+ - cell "Texas" [ref=e1794]:
426
+ - generic [ref=e446]: Texas
427
+ - cell "Apr 19, 2023 5:45:57 PM" [ref=e1795]:
428
+ - generic [ref=e448]: Apr 19, 2023 5:45:57 PM
429
+ - row "Olivia Jackson olivia.jackson@gmail.com General 3035551212 80202 United States Colorado Apr 23, 2023 12:13:57 AM" [ref=e1796]:
430
+ - cell [ref=e450]:
431
+ - checkbox [ref=e452] [cursor=pointer]
432
+ - cell "Olivia Jackson" [ref=e1797]:
433
+ - generic [ref=e455]: Olivia Jackson
434
+ - cell "olivia.jackson@gmail.com" [ref=e1798]:
435
+ - generic [ref=e457]: olivia.jackson@gmail.com
436
+ - cell "General" [ref=e458]:
437
+ - generic [ref=e459]: General
438
+ - cell "3035551212" [ref=e1799]:
439
+ - generic [ref=e461]: "3035551212"
440
+ - cell "80202" [ref=e1800]:
441
+ - generic [ref=e463]: "80202"
442
+ - cell "United States" [ref=e464]:
443
+ - generic [ref=e465]: United States
444
+ - cell "Colorado" [ref=e1801]:
445
+ - generic [ref=e467]: Colorado
446
+ - cell "Apr 23, 2023 12:13:57 AM" [ref=e1802]:
447
+ - generic [ref=e469]: Apr 23, 2023 12:13:57 AM
448
+ - row "Nathan Chen nathan.chen@gmail.com General 3035551212 80202 United States Colorado Apr 23, 2023 12:14:36 AM" [ref=e1803]:
449
+ - cell [ref=e471]:
450
+ - checkbox [ref=e473] [cursor=pointer]
451
+ - cell "Nathan Chen" [ref=e1804]:
452
+ - generic [ref=e476]: Nathan Chen
453
+ - cell "nathan.chen@gmail.com" [ref=e1805]:
454
+ - generic [ref=e478]: nathan.chen@gmail.com
455
+ - cell "General" [ref=e479]:
456
+ - generic [ref=e480]: General
457
+ - cell "3035551212" [ref=e1806]:
458
+ - generic [ref=e482]: "3035551212"
459
+ - cell "80202" [ref=e1807]:
460
+ - generic [ref=e484]: "80202"
461
+ - cell "United States" [ref=e485]:
462
+ - generic [ref=e486]: United States
463
+ - cell "Colorado" [ref=e1808]:
464
+ - generic [ref=e488]: Colorado
465
+ - cell "Apr 23, 2023 12:14:36 AM" [ref=e1809]:
466
+ - generic [ref=e490]: Apr 23, 2023 12:14:36 AM
467
+ - row "Natalie Kim natalie.kim@gmail.com General 2015551212 07030 United States New Jersey Apr 23, 2023 12:14:49 AM" [ref=e1810]:
468
+ - cell [ref=e492]:
469
+ - checkbox [ref=e494] [cursor=pointer]
470
+ - cell "Natalie Kim" [ref=e1811]:
471
+ - generic [ref=e497]: Natalie Kim
472
+ - cell "natalie.kim@gmail.com" [ref=e1812]:
473
+ - generic [ref=e499]: natalie.kim@gmail.com
474
+ - cell "General" [ref=e500]:
475
+ - generic [ref=e501]: General
476
+ - cell "2015551212" [ref=e1813]:
477
+ - generic [ref=e503]: "2015551212"
478
+ - cell "07030" [ref=e1814]:
479
+ - generic [ref=e505]: "07030"
480
+ - cell "United States" [ref=e506]:
481
+ - generic [ref=e507]: United States
482
+ - cell "New Jersey" [ref=e1815]:
483
+ - generic [ref=e509]: New Jersey
484
+ - cell "Apr 23, 2023 12:14:49 AM" [ref=e1816]:
485
+ - generic [ref=e511]: Apr 23, 2023 12:14:49 AM
486
+ - row "Michael Nguyen michael.nguyen@yahoo.com General 3125551212 60606 United States Illinois Apr 19, 2023 5:46:27 PM" [ref=e1817]:
487
+ - cell [ref=e513]:
488
+ - checkbox [ref=e515] [cursor=pointer]
489
+ - cell "Michael Nguyen" [ref=e1818]:
490
+ - generic [ref=e518]: Michael Nguyen
491
+ - cell "michael.nguyen@yahoo.com" [ref=e1819]:
492
+ - generic [ref=e520]: michael.nguyen@yahoo.com
493
+ - cell "General" [ref=e521]:
494
+ - generic [ref=e522]: General
495
+ - cell "3125551212" [ref=e1820]:
496
+ - generic [ref=e524]: "3125551212"
497
+ - cell "60606" [ref=e1821]:
498
+ - generic [ref=e526]: "60606"
499
+ - cell "United States" [ref=e527]:
500
+ - generic [ref=e528]: United States
501
+ - cell "Illinois" [ref=e1822]:
502
+ - generic [ref=e530]: Illinois
503
+ - cell "Apr 19, 2023 5:46:27 PM" [ref=e1823]:
504
+ - generic [ref=e532]: Apr 19, 2023 5:46:27 PM
505
+ - row "Maxwell Baker maxwell.baker@yahoo.com General 3125551212 60601 United States Illinois Apr 23, 2023 12:13:01 AM" [ref=e1824]:
506
+ - cell [ref=e534]:
507
+ - checkbox [ref=e536] [cursor=pointer]
508
+ - cell "Maxwell Baker" [ref=e1825]:
509
+ - generic [ref=e539]: Maxwell Baker
510
+ - cell "maxwell.baker@yahoo.com" [ref=e1826]:
511
+ - generic [ref=e541]: maxwell.baker@yahoo.com
512
+ - cell "General" [ref=e542]:
513
+ - generic [ref=e543]: General
514
+ - cell "3125551212" [ref=e1827]:
515
+ - generic [ref=e545]: "3125551212"
516
+ - cell "60601" [ref=e1828]:
517
+ - generic [ref=e547]: "60601"
518
+ - cell "United States" [ref=e548]:
519
+ - generic [ref=e549]: United States
520
+ - cell "Illinois" [ref=e1829]:
521
+ - generic [ref=e551]: Illinois
522
+ - cell "Apr 23, 2023 12:13:01 AM" [ref=e1830]:
523
+ - generic [ref=e553]: Apr 23, 2023 12:13:01 AM
524
+ - row "Matthew Kim matthew.kim@gmail.com General 2015551212 07030 United States New Jersey Apr 23, 2023 12:14:19 AM" [ref=e1831]:
525
+ - cell [ref=e555]:
526
+ - checkbox [ref=e557] [cursor=pointer]
527
+ - cell "Matthew Kim" [ref=e1832]:
528
+ - generic [ref=e560]: Matthew Kim
529
+ - cell "matthew.kim@gmail.com" [ref=e1833]:
530
+ - generic [ref=e562]: matthew.kim@gmail.com
531
+ - cell "General" [ref=e563]:
532
+ - generic [ref=e564]: General
533
+ - cell "2015551212" [ref=e1834]:
534
+ - generic [ref=e566]: "2015551212"
535
+ - cell "07030" [ref=e1835]:
536
+ - generic [ref=e568]: "07030"
537
+ - cell "United States" [ref=e569]:
538
+ - generic [ref=e570]: United States
539
+ - cell "New Jersey" [ref=e1836]:
540
+ - generic [ref=e572]: New Jersey
541
+ - cell "Apr 23, 2023 12:14:19 AM" [ref=e1837]:
542
+ - generic [ref=e574]: Apr 23, 2023 12:14:19 AM
543
+ - row "Matt Baker matt.baker@yahoo.com General 4045551234 30308 United States Georgia Apr 19, 2023 5:45:34 PM" [ref=e1838]:
544
+ - cell [ref=e576]:
545
+ - checkbox [ref=e578] [cursor=pointer]
546
+ - cell "Matt Baker" [ref=e1839]:
547
+ - generic [ref=e581]: Matt Baker
548
+ - cell "matt.baker@yahoo.com" [ref=e1840]:
549
+ - generic [ref=e583]: matt.baker@yahoo.com
550
+ - cell "General" [ref=e584]:
551
+ - generic [ref=e585]: General
552
+ - cell "4045551234" [ref=e1841]:
553
+ - generic [ref=e587]: "4045551234"
554
+ - cell "30308" [ref=e1842]:
555
+ - generic [ref=e589]: "30308"
556
+ - cell "United States" [ref=e590]:
557
+ - generic [ref=e591]: United States
558
+ - cell "Georgia" [ref=e1843]:
559
+ - generic [ref=e593]: Georgia
560
+ - cell "Apr 19, 2023 5:45:34 PM" [ref=e1844]:
561
+ - generic [ref=e595]: Apr 19, 2023 5:45:34 PM
562
+ - row "Mary Martin marym@gmail.com General 3059876543 33139 United States Florida Apr 19, 2023 5:45:17 PM" [ref=e1845]:
563
+ - cell [ref=e597]:
564
+ - checkbox [ref=e599] [cursor=pointer]
565
+ - cell "Mary Martin" [ref=e1846]:
566
+ - generic [ref=e602]: Mary Martin
567
+ - cell "marym@gmail.com" [ref=e1847]:
568
+ - generic [ref=e604]: marym@gmail.com
569
+ - cell "General" [ref=e605]:
570
+ - generic [ref=e606]: General
571
+ - cell "3059876543" [ref=e1848]:
572
+ - generic [ref=e608]: "3059876543"
573
+ - cell "33139" [ref=e1849]:
574
+ - generic [ref=e610]: "33139"
575
+ - cell "United States" [ref=e611]:
576
+ - generic [ref=e612]: United States
577
+ - cell "Florida" [ref=e613]:
578
+ - generic [ref=e614]: Florida
579
+ - cell "Apr 19, 2023 5:45:17 PM" [ref=e1850]:
580
+ - generic [ref=e616]: Apr 19, 2023 5:45:17 PM
581
+ - row "Lucy Garcia artsygal123@hotmail.com General 3035555555 80202 United States Colorado Apr 19, 2023 5:45:54 PM" [ref=e1851]:
582
+ - cell [ref=e618]:
583
+ - checkbox [ref=e620] [cursor=pointer]
584
+ - cell "Lucy Garcia" [ref=e1852]:
585
+ - generic [ref=e623]: Lucy Garcia
586
+ - cell "artsygal123@hotmail.com" [ref=e1853]:
587
+ - generic [ref=e625]: artsygal123@hotmail.com
588
+ - cell "General" [ref=e626]:
589
+ - generic [ref=e627]: General
590
+ - cell "3035555555" [ref=e1854]:
591
+ - generic [ref=e629]: "3035555555"
592
+ - cell "80202" [ref=e1855]:
593
+ - generic [ref=e631]: "80202"
594
+ - cell "United States" [ref=e632]:
595
+ - generic [ref=e633]: United States
596
+ - cell "Colorado" [ref=e1856]:
597
+ - generic [ref=e635]: Colorado
598
+ - cell "Apr 19, 2023 5:45:54 PM" [ref=e1857]:
599
+ - generic [ref=e637]: Apr 19, 2023 5:45:54 PM
600
+ - row "Lisa Kim lisa.kim@gmail.com General 7135557890 77005 United States Texas Apr 19, 2023 5:45:31 PM" [ref=e1858]:
601
+ - cell [ref=e639]:
602
+ - checkbox [ref=e641] [cursor=pointer]
603
+ - cell "Lisa Kim" [ref=e1859]:
604
+ - generic [ref=e644]: Lisa Kim
605
+ - cell "lisa.kim@gmail.com" [ref=e1860]:
606
+ - generic [ref=e646]: lisa.kim@gmail.com
607
+ - cell "General" [ref=e647]:
608
+ - generic [ref=e648]: General
609
+ - cell "7135557890" [ref=e1861]:
610
+ - generic [ref=e650]: "7135557890"
611
+ - cell "77005" [ref=e1862]:
612
+ - generic [ref=e652]: "77005"
613
+ - cell "United States" [ref=e653]:
614
+ - generic [ref=e654]: United States
615
+ - cell "Texas" [ref=e655]:
616
+ - generic [ref=e656]: Texas
617
+ - cell "Apr 19, 2023 5:45:31 PM" [ref=e1863]:
618
+ - generic [ref=e658]: Apr 19, 2023 5:45:31 PM
619
+ - row "Lisa Green lisa.green@hotmail.com General 2145551212 75201 United States Texas Apr 19, 2023 5:46:24 PM" [ref=e1864]:
620
+ - cell [ref=e660]:
621
+ - checkbox [ref=e662] [cursor=pointer]
622
+ - cell "Lisa Green" [ref=e1865]:
623
+ - generic [ref=e665]: Lisa Green
624
+ - cell "lisa.green@hotmail.com" [ref=e1866]:
625
+ - generic [ref=e667]: lisa.green@hotmail.com
626
+ - cell "General" [ref=e668]:
627
+ - generic [ref=e669]: General
628
+ - cell "2145551212" [ref=e1867]:
629
+ - generic [ref=e671]: "2145551212"
630
+ - cell "75201" [ref=e1868]:
631
+ - generic [ref=e673]: "75201"
632
+ - cell "United States" [ref=e674]:
633
+ - generic [ref=e675]: United States
634
+ - cell "Texas" [ref=e1869]:
635
+ - generic [ref=e677]: Texas
636
+ - cell "Apr 19, 2023 5:46:24 PM" [ref=e1870]:
637
+ - generic [ref=e679]: Apr 19, 2023 5:46:24 PM
638
+ - row "Lily Potter harrypotterfan1@gmail.com General 7735555555 60637 United States Illinois Apr 19, 2023 5:45:47 PM" [ref=e1871]:
639
+ - cell [ref=e681]:
640
+ - checkbox [ref=e683] [cursor=pointer]
641
+ - cell "Lily Potter" [ref=e1872]:
642
+ - generic [ref=e686]: Lily Potter
643
+ - cell "harrypotterfan1@gmail.com" [ref=e1873]:
644
+ - generic [ref=e688]: harrypotterfan1@gmail.com
645
+ - cell "General" [ref=e689]:
646
+ - generic [ref=e690]: General
647
+ - cell "7735555555" [ref=e1874]:
648
+ - generic [ref=e692]: "7735555555"
649
+ - cell "60637" [ref=e1875]:
650
+ - generic [ref=e694]: "60637"
651
+ - cell "United States" [ref=e695]:
652
+ - generic [ref=e696]: United States
653
+ - cell "Illinois" [ref=e1876]:
654
+ - generic [ref=e698]: Illinois
655
+ - cell "Apr 19, 2023 5:45:47 PM" [ref=e1877]:
656
+ - generic [ref=e700]: Apr 19, 2023 5:45:47 PM
657
+ - row "Katie Wong katie.wong@hotmail.com General 2065551212 98101 United States Washington Apr 19, 2023 5:46:37 PM" [ref=e1878]:
658
+ - cell [ref=e702]:
659
+ - checkbox [ref=e704] [cursor=pointer]
660
+ - cell "Katie Wong" [ref=e1879]:
661
+ - generic [ref=e707]: Katie Wong
662
+ - cell "katie.wong@hotmail.com" [ref=e1880]:
663
+ - generic [ref=e709]: katie.wong@hotmail.com
664
+ - cell "General" [ref=e710]:
665
+ - generic [ref=e711]: General
666
+ - cell "2065551212" [ref=e1881]:
667
+ - generic [ref=e713]: "2065551212"
668
+ - cell "98101" [ref=e1882]:
669
+ - generic [ref=e715]: "98101"
670
+ - cell "United States" [ref=e716]:
671
+ - generic [ref=e717]: United States
672
+ - cell "Washington" [ref=e1883]:
673
+ - generic [ref=e719]: Washington
674
+ - cell "Apr 19, 2023 5:46:37 PM" [ref=e1884]:
675
+ - generic [ref=e721]: Apr 19, 2023 5:46:37 PM
676
+ - row "Kate Jones kate.jones@gmail.com General 2125551212 10001 United States New York Apr 23, 2023 12:12:51 AM" [ref=e1885]:
677
+ - cell [ref=e723]:
678
+ - checkbox [ref=e725] [cursor=pointer]
679
+ - cell "Kate Jones" [ref=e1886]:
680
+ - generic [ref=e728]: Kate Jones
681
+ - cell "kate.jones@gmail.com" [ref=e1887]:
682
+ - generic [ref=e730]: kate.jones@gmail.com
683
+ - cell "General" [ref=e731]:
684
+ - generic [ref=e732]: General
685
+ - cell "2125551212" [ref=e1888]:
686
+ - generic [ref=e734]: "2125551212"
687
+ - cell "10001" [ref=e1889]:
688
+ - generic [ref=e736]: "10001"
689
+ - cell "United States" [ref=e737]:
690
+ - generic [ref=e738]: United States
691
+ - cell "New York" [ref=e1890]:
692
+ - generic [ref=e740]: New York
693
+ - cell "Apr 23, 2023 12:12:51 AM" [ref=e1891]:
694
+ - generic [ref=e742]: Apr 23, 2023 12:12:51 AM
695
+ - row "Julie Nguyen julie.nguyen@gmail.com General 3105551212 90210 United States California Apr 23, 2023 12:14:15 AM" [ref=e1892]:
696
+ - cell [ref=e744]:
697
+ - checkbox [ref=e746] [cursor=pointer]
698
+ - cell "Julie Nguyen" [ref=e1893]:
699
+ - generic [ref=e749]: Julie Nguyen
700
+ - cell "julie.nguyen@gmail.com" [ref=e1894]:
701
+ - generic [ref=e751]: julie.nguyen@gmail.com
702
+ - cell "General" [ref=e752]:
703
+ - generic [ref=e753]: General
704
+ - cell "3105551212" [ref=e1895]:
705
+ - generic [ref=e755]: "3105551212"
706
+ - cell "90210" [ref=e756]:
707
+ - generic [ref=e757]: "90210"
708
+ - cell "United States" [ref=e758]:
709
+ - generic [ref=e759]: United States
710
+ - cell "California" [ref=e760]:
711
+ - generic [ref=e761]: California
712
+ - cell "Apr 23, 2023 12:14:15 AM" [ref=e1896]:
713
+ - generic [ref=e763]: Apr 23, 2023 12:14:15 AM
714
+ - row "Julia Williams jla_7781@gmail.com General 4567890123 10065 United States New York Apr 19, 2023 5:45:11 PM" [ref=e1897]:
715
+ - cell [ref=e765]:
716
+ - checkbox [ref=e767] [cursor=pointer]
717
+ - cell "Julia Williams" [ref=e1898]:
718
+ - generic [ref=e770]: Julia Williams
719
+ - cell "jla_7781@gmail.com" [ref=e1899]:
720
+ - generic [ref=e772]: jla_7781@gmail.com
721
+ - cell "General" [ref=e773]:
722
+ - generic [ref=e774]: General
723
+ - cell "4567890123" [ref=e1900]:
724
+ - generic [ref=e776]: "4567890123"
725
+ - cell "10065" [ref=e1901]:
726
+ - generic [ref=e778]: "10065"
727
+ - cell "United States" [ref=e779]:
728
+ - generic [ref=e780]: United States
729
+ - cell "New York" [ref=e1902]:
730
+ - generic [ref=e782]: New York
731
+ - cell "Apr 19, 2023 5:45:11 PM" [ref=e1903]:
732
+ - generic [ref=e784]: Apr 19, 2023 5:45:11 PM
733
+ - row "John Smith john.smith.xyz@gmail.com General 2058812302 35213 United States Alabama Apr 19, 2023 5:44:57 PM" [ref=e1904]:
734
+ - cell [ref=e786]:
735
+ - checkbox [ref=e788] [cursor=pointer]
736
+ - cell "John Smith" [ref=e1905]:
737
+ - generic [ref=e791]: John Smith
738
+ - cell "john.smith.xyz@gmail.com" [ref=e1906]:
739
+ - generic [ref=e793]: john.smith.xyz@gmail.com
740
+ - cell "General" [ref=e794]:
741
+ - generic [ref=e795]: General
742
+ - cell "2058812302" [ref=e1907]:
743
+ - generic [ref=e797]: "2058812302"
744
+ - cell "35213" [ref=e1908]:
745
+ - generic [ref=e799]: "35213"
746
+ - cell "United States" [ref=e800]:
747
+ - generic [ref=e801]: United States
748
+ - cell "Alabama" [ref=e1909]:
749
+ - generic [ref=e803]: Alabama
750
+ - cell "Apr 19, 2023 5:44:57 PM" [ref=e1910]:
751
+ - generic [ref=e805]: Apr 19, 2023 5:44:57 PM
752
+ - row "John Smith john.smith@yahoo.com General 2145551212 75201 United States Texas Apr 23, 2023 12:13:22 AM" [ref=e1911]:
753
+ - cell [ref=e807]:
754
+ - checkbox [ref=e809] [cursor=pointer]
755
+ - cell "John Smith" [ref=e1912]:
756
+ - generic [ref=e812]: John Smith
757
+ - cell "john.smith@yahoo.com" [ref=e1913]:
758
+ - generic [ref=e814]: john.smith@yahoo.com
759
+ - cell "General" [ref=e815]:
760
+ - generic [ref=e816]: General
761
+ - cell "2145551212" [ref=e1914]:
762
+ - generic [ref=e818]: "2145551212"
763
+ - cell "75201" [ref=e1915]:
764
+ - generic [ref=e820]: "75201"
765
+ - cell "United States" [ref=e821]:
766
+ - generic [ref=e822]: United States
767
+ - cell "Texas" [ref=e1916]:
768
+ - generic [ref=e824]: Texas
769
+ - cell "Apr 23, 2023 12:13:22 AM" [ref=e1917]:
770
+ - generic [ref=e826]: Apr 23, 2023 12:13:22 AM
771
+ - row "John Lee john.lee@yahoo.com General 3125556789 60611 United States Illinois Apr 19, 2023 5:45:21 PM" [ref=e1918]:
772
+ - cell [ref=e828]:
773
+ - checkbox [ref=e830] [cursor=pointer]
774
+ - cell "John Lee" [ref=e1919]:
775
+ - generic [ref=e833]: John Lee
776
+ - cell "john.lee@yahoo.com" [ref=e1920]:
777
+ - generic [ref=e835]: john.lee@yahoo.com
778
+ - cell "General" [ref=e836]:
779
+ - generic [ref=e837]: General
780
+ - cell "3125556789" [ref=e1921]:
781
+ - generic [ref=e839]: "3125556789"
782
+ - cell "60611" [ref=e1922]:
783
+ - generic [ref=e841]: "60611"
784
+ - cell "United States" [ref=e842]:
785
+ - generic [ref=e843]: United States
786
+ - cell "Illinois" [ref=e1923]:
787
+ - generic [ref=e845]: Illinois
788
+ - cell "Apr 19, 2023 5:45:21 PM" [ref=e1924]:
789
+ - generic [ref=e847]: Apr 19, 2023 5:45:21 PM
790
+ - row "John Doe johndoe123@gmail.com General 2125551212 10001 United States New York Apr 19, 2023 5:45:37 PM" [ref=e1925]:
791
+ - cell [ref=e849]:
792
+ - checkbox [ref=e851] [cursor=pointer]
793
+ - cell "John Doe" [ref=e1926]:
794
+ - generic [ref=e854]: John Doe
795
+ - cell "johndoe123@gmail.com" [ref=e1927]:
796
+ - generic [ref=e856]: johndoe123@gmail.com
797
+ - cell "General" [ref=e857]:
798
+ - generic [ref=e858]: General
799
+ - cell "2125551212" [ref=e1928]:
800
+ - generic [ref=e860]: "2125551212"
801
+ - cell "10001" [ref=e1929]:
802
+ - generic [ref=e862]: "10001"
803
+ - cell "United States" [ref=e863]:
804
+ - generic [ref=e864]: United States
805
+ - cell "New York" [ref=e1930]:
806
+ - generic [ref=e866]: New York
807
+ - cell "Apr 19, 2023 5:45:37 PM" [ref=e1931]:
808
+ - generic [ref=e868]: Apr 19, 2023 5:45:37 PM
809
+ - row "Jessica Wong jessica.wong@gmail.com General 3125551212 60601 United States Illinois Apr 23, 2023 12:13:48 AM" [ref=e1932]:
810
+ - cell [ref=e870]:
811
+ - checkbox [ref=e872] [cursor=pointer]
812
+ - cell "Jessica Wong" [ref=e1933]:
813
+ - generic [ref=e875]: Jessica Wong
814
+ - cell "jessica.wong@gmail.com" [ref=e1934]:
815
+ - generic [ref=e877]: jessica.wong@gmail.com
816
+ - cell "General" [ref=e878]:
817
+ - generic [ref=e879]: General
818
+ - cell "3125551212" [ref=e1935]:
819
+ - generic [ref=e881]: "3125551212"
820
+ - cell "60601" [ref=e1936]:
821
+ - generic [ref=e883]: "60601"
822
+ - cell "United States" [ref=e884]:
823
+ - generic [ref=e885]: United States
824
+ - cell "Illinois" [ref=e1937]:
825
+ - generic [ref=e887]: Illinois
826
+ - cell "Apr 23, 2023 12:13:48 AM" [ref=e1938]:
827
+ - generic [ref=e889]: Apr 23, 2023 12:13:48 AM
828
+ - row "Jessica Nguyen jessica.nguyen@gmail.com General 2065551212 98101 United States Washington Apr 23, 2023 12:12:58 AM" [ref=e1939]:
829
+ - cell [ref=e891]:
830
+ - checkbox [ref=e893] [cursor=pointer]
831
+ - cell "Jessica Nguyen" [ref=e1940]:
832
+ - generic [ref=e896]: Jessica Nguyen
833
+ - cell "jessica.nguyen@gmail.com" [ref=e1941]:
834
+ - generic [ref=e898]: jessica.nguyen@gmail.com
835
+ - cell "General" [ref=e899]:
836
+ - generic [ref=e900]: General
837
+ - cell "2065551212" [ref=e1942]:
838
+ - generic [ref=e902]: "2065551212"
839
+ - cell "98101" [ref=e1943]:
840
+ - generic [ref=e904]: "98101"
841
+ - cell "United States" [ref=e905]:
842
+ - generic [ref=e906]: United States
843
+ - cell "Washington" [ref=e1944]:
844
+ - generic [ref=e908]: Washington
845
+ - cell "Apr 23, 2023 12:12:58 AM" [ref=e1945]:
846
+ - generic [ref=e910]: Apr 23, 2023 12:12:58 AM
847
+ - row "Jessica Chang jessica.chang@hotmail.com General 2065551212 98101 United States Washington Apr 23, 2023 12:13:26 AM" [ref=e1946]:
848
+ - cell [ref=e912]:
849
+ - checkbox [ref=e914] [cursor=pointer]
850
+ - cell "Jessica Chang" [ref=e1947]:
851
+ - generic [ref=e917]: Jessica Chang
852
+ - cell "jessica.chang@hotmail.com" [ref=e1948]:
853
+ - generic [ref=e919]: jessica.chang@hotmail.com
854
+ - cell "General" [ref=e920]:
855
+ - generic [ref=e921]: General
856
+ - cell "2065551212" [ref=e1949]:
857
+ - generic [ref=e923]: "2065551212"
858
+ - cell "98101" [ref=e1950]:
859
+ - generic [ref=e925]: "98101"
860
+ - cell "United States" [ref=e926]:
861
+ - generic [ref=e927]: United States
862
+ - cell "Washington" [ref=e1951]:
863
+ - generic [ref=e929]: Washington
864
+ - cell "Apr 23, 2023 12:13:26 AM" [ref=e1952]:
865
+ - generic [ref=e931]: Apr 23, 2023 12:13:26 AM
866
+ - row "Jennifer White jennifer.white@yahoo.com General 2137418080 90015 United States California Apr 19, 2023 5:46:17 PM" [ref=e1953]:
867
+ - cell [ref=e933]:
868
+ - checkbox [ref=e935] [cursor=pointer]
869
+ - cell "Jennifer White" [ref=e1954]:
870
+ - generic [ref=e938]: Jennifer White
871
+ - cell "jennifer.white@yahoo.com" [ref=e1955]:
872
+ - generic [ref=e940]: jennifer.white@yahoo.com
873
+ - cell "General" [ref=e941]:
874
+ - generic [ref=e942]: General
875
+ - cell "2137418080" [ref=e1956]:
876
+ - generic [ref=e944]: "2137418080"
877
+ - cell "90015" [ref=e1957]:
878
+ - generic [ref=e946]: "90015"
879
+ - cell "United States" [ref=e947]:
880
+ - generic [ref=e948]: United States
881
+ - cell "California" [ref=e1958]:
882
+ - generic [ref=e950]: California
883
+ - cell "Apr 19, 2023 5:46:17 PM" [ref=e1959]:
884
+ - generic [ref=e952]: Apr 19, 2023 5:46:17 PM
885
+ - row "Jason Miller jason.miller@yahoo.com General 3035551212 80202 United States Colorado Apr 19, 2023 5:46:34 PM" [ref=e1960]:
886
+ - cell [ref=e954]:
887
+ - checkbox [ref=e956] [cursor=pointer]
888
+ - cell "Jason Miller" [ref=e1961]:
889
+ - generic [ref=e959]: Jason Miller
890
+ - cell "jason.miller@yahoo.com" [ref=e1962]:
891
+ - generic [ref=e961]: jason.miller@yahoo.com
892
+ - cell "General" [ref=e962]:
893
+ - generic [ref=e963]: General
894
+ - cell "3035551212" [ref=e1963]:
895
+ - generic [ref=e965]: "3035551212"
896
+ - cell "80202" [ref=e1964]:
897
+ - generic [ref=e967]: "80202"
898
+ - cell "United States" [ref=e968]:
899
+ - generic [ref=e969]: United States
900
+ - cell "Colorado" [ref=e1965]:
901
+ - generic [ref=e971]: Colorado
902
+ - cell "Apr 19, 2023 5:46:34 PM" [ref=e1966]:
903
+ - generic [ref=e973]: Apr 19, 2023 5:46:34 PM
904
+ - row "Jane Smith janesmith@gmail.com General 2065554321 98122 United States Washington Apr 19, 2023 5:45:24 PM" [ref=e1967]:
905
+ - cell [ref=e975]:
906
+ - checkbox [ref=e977] [cursor=pointer]
907
+ - cell "Jane Smith" [ref=e1968]:
908
+ - generic [ref=e980]: Jane Smith
909
+ - cell "janesmith@gmail.com" [ref=e1969]:
910
+ - generic [ref=e982]: janesmith@gmail.com
911
+ - cell "General" [ref=e983]:
912
+ - generic [ref=e984]: General
913
+ - cell "2065554321" [ref=e1970]:
914
+ - generic [ref=e986]: "2065554321"
915
+ - cell "98122" [ref=e1971]:
916
+ - generic [ref=e988]: "98122"
917
+ - cell "United States" [ref=e989]:
918
+ - generic [ref=e990]: United States
919
+ - cell "Washington" [ref=e1972]:
920
+ - generic [ref=e992]: Washington
921
+ - cell "Apr 19, 2023 5:45:24 PM" [ref=e1973]:
922
+ - generic [ref=e994]: Apr 19, 2023 5:45:24 PM
923
+ - row "Jane Smith janesmith456@yahoo.com General 3105555555 90210 United States California Apr 19, 2023 5:45:41 PM" [ref=e1974]:
924
+ - cell [ref=e996]:
925
+ - checkbox [ref=e998] [cursor=pointer]
926
+ - cell "Jane Smith" [ref=e1975]:
927
+ - generic [ref=e1001]: Jane Smith
928
+ - cell "janesmith456@yahoo.com" [ref=e1976]:
929
+ - generic [ref=e1003]: janesmith456@yahoo.com
930
+ - cell "General" [ref=e1004]:
931
+ - generic [ref=e1005]: General
932
+ - cell "3105555555" [ref=e1977]:
933
+ - generic [ref=e1007]: "3105555555"
934
+ - cell "90210" [ref=e1978]:
935
+ - generic [ref=e1009]: "90210"
936
+ - cell "United States" [ref=e1010]:
937
+ - generic [ref=e1011]: United States
938
+ - cell "California" [ref=e1979]:
939
+ - generic [ref=e1013]: California
940
+ - cell "Apr 19, 2023 5:45:41 PM" [ref=e1980]:
941
+ - generic [ref=e1015]: Apr 19, 2023 5:45:41 PM
942
+ - row " Jane Doe jane.doe@hotmail.com General 4123671901 33139 United States Florida Apr 19, 2023 5:45:01 PM" [ref=e1981]:
943
+ - cell "" [ref=e1982]:
944
+ - generic [ref=e1018]:
945
+ - checkbox "" [checked] [ref=e1983] [cursor=pointer]
946
+ - generic [ref=e1020] [cursor=pointer]: 
947
+ - cell "Jane Doe" [ref=e1984]:
948
+ - generic [ref=e1022]: Jane Doe
949
+ - cell "jane.doe@hotmail.com" [ref=e1985]:
950
+ - generic [ref=e1024]: jane.doe@hotmail.com
951
+ - cell "General" [ref=e1025]:
952
+ - generic [ref=e1026]: General
953
+ - cell "4123671901" [ref=e1986]:
954
+ - generic [ref=e1028]: "4123671901"
955
+ - cell "33139" [ref=e1987]:
956
+ - generic [ref=e1030]: "33139"
957
+ - cell "United States" [ref=e1031]:
958
+ - generic [ref=e1032]: United States
959
+ - cell "Florida" [ref=e1988]:
960
+ - generic [ref=e1034]: Florida
961
+ - cell "Apr 19, 2023 5:45:01 PM" [ref=e1989]:
962
+ - generic [ref=e1036]: Apr 19, 2023 5:45:01 PM
963
+ - row "Jane Doe jane.doe@gmail.com General 2125551212 10001 United States New York Apr 23, 2023 12:13:19 AM" [ref=e1990]:
964
+ - cell [ref=e1038]:
965
+ - checkbox [ref=e1040] [cursor=pointer]
966
+ - cell "Jane Doe" [ref=e1991]:
967
+ - generic [ref=e1043]: Jane Doe
968
+ - cell "jane.doe@gmail.com" [ref=e1992]:
969
+ - generic [ref=e1045]: jane.doe@gmail.com
970
+ - cell "General" [ref=e1046]:
971
+ - generic [ref=e1047]: General
972
+ - cell "2125551212" [ref=e1993]:
973
+ - generic [ref=e1049]: "2125551212"
974
+ - cell "10001" [ref=e1994]:
975
+ - generic [ref=e1051]: "10001"
976
+ - cell "United States" [ref=e1052]:
977
+ - generic [ref=e1053]: United States
978
+ - cell "New York" [ref=e1995]:
979
+ - generic [ref=e1055]: New York
980
+ - cell "Apr 23, 2023 12:13:19 AM" [ref=e1996]:
981
+ - generic [ref=e1057]: Apr 23, 2023 12:13:19 AM
982
+ - row "James Kim james.kim@gmail.com General 3125551212 60601 United States Illinois Apr 23, 2023 12:13:29 AM" [ref=e1997]:
983
+ - cell [ref=e1059]:
984
+ - checkbox [ref=e1061] [cursor=pointer]
985
+ - cell "James Kim" [ref=e1998]:
986
+ - generic [ref=e1064]: James Kim
987
+ - cell "james.kim@gmail.com" [ref=e1999]:
988
+ - generic [ref=e1066]: james.kim@gmail.com
989
+ - cell "General" [ref=e1067]:
990
+ - generic [ref=e1068]: General
991
+ - cell "3125551212" [ref=e2000]:
992
+ - generic [ref=e1070]: "3125551212"
993
+ - cell "60601" [ref=e2001]:
994
+ - generic [ref=e1072]: "60601"
995
+ - cell "United States" [ref=e1073]:
996
+ - generic [ref=e1074]: United States
997
+ - cell "Illinois" [ref=e2002]:
998
+ - generic [ref=e1076]: Illinois
999
+ - cell "Apr 23, 2023 12:13:29 AM" [ref=e2003]:
1000
+ - generic [ref=e1078]: Apr 23, 2023 12:13:29 AM
1001
+ - row "James Baker james.baker@gmail.com General 2145551212 75201 United States Texas Apr 23, 2023 12:14:28 AM" [ref=e2004]:
1002
+ - cell [ref=e1080]:
1003
+ - checkbox [ref=e1082] [cursor=pointer]
1004
+ - cell "James Baker" [ref=e2005]:
1005
+ - generic [ref=e1085]: James Baker
1006
+ - cell "james.baker@gmail.com" [ref=e2006]:
1007
+ - generic [ref=e1087]: james.baker@gmail.com
1008
+ - cell "General" [ref=e1088]:
1009
+ - generic [ref=e1089]: General
1010
+ - cell "2145551212" [ref=e2007]:
1011
+ - generic [ref=e1091]: "2145551212"
1012
+ - cell "75201" [ref=e2008]:
1013
+ - generic [ref=e1093]: "75201"
1014
+ - cell "United States" [ref=e1094]:
1015
+ - generic [ref=e1095]: United States
1016
+ - cell "Texas" [ref=e1096]:
1017
+ - generic [ref=e1097]: Texas
1018
+ - cell "Apr 23, 2023 12:14:28 AM" [ref=e2009]:
1019
+ - generic [ref=e1099]: Apr 23, 2023 12:14:28 AM
1020
+ - row "Jacob Rivera jacob.rivera@hotmail.com General 6025551212 85004 United States Arizona Apr 23, 2023 12:14:01 AM" [ref=e2010]:
1021
+ - cell [ref=e1101]:
1022
+ - checkbox [ref=e1103] [cursor=pointer]
1023
+ - cell "Jacob Rivera" [ref=e2011]:
1024
+ - generic [ref=e1106]: Jacob Rivera
1025
+ - cell "jacob.rivera@hotmail.com" [ref=e2012]:
1026
+ - generic [ref=e1108]: jacob.rivera@hotmail.com
1027
+ - cell "General" [ref=e1109]:
1028
+ - generic [ref=e1110]: General
1029
+ - cell "6025551212" [ref=e2013]:
1030
+ - generic [ref=e1112]: "6025551212"
1031
+ - cell "85004" [ref=e2014]:
1032
+ - generic [ref=e1114]: "85004"
1033
+ - cell "United States" [ref=e1115]:
1034
+ - generic [ref=e1116]: United States
1035
+ - cell "Arizona" [ref=e2015]:
1036
+ - generic [ref=e1118]: Arizona
1037
+ - cell "Apr 23, 2023 12:14:01 AM" [ref=e2016]:
1038
+ - generic [ref=e1120]: Apr 23, 2023 12:14:01 AM
1039
+ - row "Isabella Santos isabella.santos@gmail.com General 3055551212 33130 United States Florida Apr 23, 2023 12:14:32 AM" [ref=e2017]:
1040
+ - cell [ref=e1122]:
1041
+ - checkbox [ref=e1124] [cursor=pointer]
1042
+ - cell "Isabella Santos" [ref=e2018]:
1043
+ - generic [ref=e1127]: Isabella Santos
1044
+ - cell "isabella.santos@gmail.com" [ref=e2019]:
1045
+ - generic [ref=e1129]: isabella.santos@gmail.com
1046
+ - cell "General" [ref=e1130]:
1047
+ - generic [ref=e1131]: General
1048
+ - cell "3055551212" [ref=e2020]:
1049
+ - generic [ref=e1133]: "3055551212"
1050
+ - cell "33130" [ref=e2021]:
1051
+ - generic [ref=e1135]: "33130"
1052
+ - cell "United States" [ref=e1136]:
1053
+ - generic [ref=e1137]: United States
1054
+ - cell "Florida" [ref=e1138]:
1055
+ - generic [ref=e1139]: Florida
1056
+ - cell "Apr 23, 2023 12:14:32 AM" [ref=e2022]:
1057
+ - generic [ref=e1141]: Apr 23, 2023 12:14:32 AM
1058
+ - row "Isaac Rodriguez isaac.rodriguez@gmail.com General 6025551212 85004 United States Arizona Apr 23, 2023 12:14:45 AM" [ref=e2023]:
1059
+ - cell [ref=e1143]:
1060
+ - checkbox [ref=e1145] [cursor=pointer]
1061
+ - cell "Isaac Rodriguez" [ref=e2024]:
1062
+ - generic [ref=e1148]: Isaac Rodriguez
1063
+ - cell "isaac.rodriguez@gmail.com" [ref=e2025]:
1064
+ - generic [ref=e1150]: isaac.rodriguez@gmail.com
1065
+ - cell "General" [ref=e1151]:
1066
+ - generic [ref=e1152]: General
1067
+ - cell "6025551212" [ref=e2026]:
1068
+ - generic [ref=e1154]: "6025551212"
1069
+ - cell "85004" [ref=e2027]:
1070
+ - generic [ref=e1156]: "85004"
1071
+ - cell "United States" [ref=e1157]:
1072
+ - generic [ref=e1158]: United States
1073
+ - cell "Arizona" [ref=e2028]:
1074
+ - generic [ref=e1160]: Arizona
1075
+ - cell "Apr 23, 2023 12:14:45 AM" [ref=e2029]:
1076
+ - generic [ref=e1162]: Apr 23, 2023 12:14:45 AM
1077
+ - row "Hannah Lim hannah.lim@gmail.com General 7035551212 22030 United States Virginia Apr 23, 2023 12:14:40 AM" [ref=e2030]:
1078
+ - cell [ref=e1164]:
1079
+ - checkbox [ref=e1166] [cursor=pointer]
1080
+ - cell "Hannah Lim" [ref=e2031]:
1081
+ - generic [ref=e1169]: Hannah Lim
1082
+ - cell "hannah.lim@gmail.com" [ref=e2032]:
1083
+ - generic [ref=e1171]: hannah.lim@gmail.com
1084
+ - cell "General" [ref=e1172]:
1085
+ - generic [ref=e1173]: General
1086
+ - cell "7035551212" [ref=e2033]:
1087
+ - generic [ref=e1175]: "7035551212"
1088
+ - cell "22030" [ref=e2034]:
1089
+ - generic [ref=e1177]: "22030"
1090
+ - cell "United States" [ref=e1178]:
1091
+ - generic [ref=e1179]: United States
1092
+ - cell "Virginia" [ref=e2035]:
1093
+ - generic [ref=e1181]: Virginia
1094
+ - cell "Apr 23, 2023 12:14:40 AM" [ref=e2036]:
1095
+ - generic [ref=e1183]: Apr 23, 2023 12:14:40 AM
1096
+ - row "Grace Nguyen avidreader99@yahoo.com General 6175555555 02138 United States Massachusetts Apr 19, 2023 5:45:51 PM" [ref=e2037]:
1097
+ - cell [ref=e1185]:
1098
+ - checkbox [ref=e1187] [cursor=pointer]
1099
+ - cell "Grace Nguyen" [ref=e2038]:
1100
+ - generic [ref=e1190]: Grace Nguyen
1101
+ - cell "avidreader99@yahoo.com" [ref=e2039]:
1102
+ - generic [ref=e1192]: avidreader99@yahoo.com
1103
+ - cell "General" [ref=e1193]:
1104
+ - generic [ref=e1194]: General
1105
+ - cell "6175555555" [ref=e2040]:
1106
+ - generic [ref=e1196]: "6175555555"
1107
+ - cell "02138" [ref=e2041]:
1108
+ - generic [ref=e1198]: "02138"
1109
+ - cell "United States" [ref=e1199]:
1110
+ - generic [ref=e1200]: United States
1111
+ - cell "Massachusetts" [ref=e2042]:
1112
+ - generic [ref=e1202]: Massachusetts
1113
+ - cell "Apr 19, 2023 5:45:51 PM" [ref=e2043]:
1114
+ - generic [ref=e1204]: Apr 19, 2023 5:45:51 PM
1115
+ - row "Ethan Garcia ethan.garcia@yahoo.com General 2145551212 75201 United States Texas Apr 23, 2023 12:13:53 AM" [ref=e2044]:
1116
+ - cell [ref=e1206]:
1117
+ - checkbox [ref=e1208] [cursor=pointer]
1118
+ - cell "Ethan Garcia" [ref=e2045]:
1119
+ - generic [ref=e1211]: Ethan Garcia
1120
+ - cell "ethan.garcia@yahoo.com" [ref=e2046]:
1121
+ - generic [ref=e1213]: ethan.garcia@yahoo.com
1122
+ - cell "General" [ref=e1214]:
1123
+ - generic [ref=e1215]: General
1124
+ - cell "2145551212" [ref=e2047]:
1125
+ - generic [ref=e1217]: "2145551212"
1126
+ - cell "75201" [ref=e2048]:
1127
+ - generic [ref=e1219]: "75201"
1128
+ - cell "United States" [ref=e1220]:
1129
+ - generic [ref=e1221]: United States
1130
+ - cell "Texas" [ref=e2049]:
1131
+ - generic [ref=e1223]: Texas
1132
+ - cell "Apr 23, 2023 12:13:53 AM" [ref=e2050]:
1133
+ - generic [ref=e1225]: Apr 23, 2023 12:13:53 AM
1134
+ - row "Emma Lopez emma.lopez@gmail.com General 6505551212 94010 United States California Apr 23, 2023 12:14:57 AM" [ref=e2051]:
1135
+ - cell [ref=e1227]:
1136
+ - checkbox [ref=e1229] [cursor=pointer]
1137
+ - cell "Emma Lopez" [ref=e2052]:
1138
+ - generic [ref=e1232]: Emma Lopez
1139
+ - cell "emma.lopez@gmail.com" [ref=e2053]:
1140
+ - generic [ref=e1234]: emma.lopez@gmail.com
1141
+ - cell "General" [ref=e1235]:
1142
+ - generic [ref=e1236]: General
1143
+ - cell "6505551212" [ref=e2054]:
1144
+ - generic [ref=e1238]: "6505551212"
1145
+ - cell "94010" [ref=e2055]:
1146
+ - generic [ref=e1240]: "94010"
1147
+ - cell "United States" [ref=e1241]:
1148
+ - generic [ref=e1242]: United States
1149
+ - cell "California" [ref=e2056]:
1150
+ - generic [ref=e1244]: California
1151
+ - cell "Apr 23, 2023 12:14:57 AM" [ref=e2057]:
1152
+ - generic [ref=e1246]: Apr 23, 2023 12:14:57 AM
1153
+ - row "Emma Davis musiclover99@hotmail.com General 5125555555 78701 United States Texas Apr 19, 2023 5:46:10 PM" [ref=e2058]:
1154
+ - cell [ref=e1248]:
1155
+ - checkbox [ref=e1250] [cursor=pointer]
1156
+ - cell "Emma Davis" [ref=e2059]:
1157
+ - generic [ref=e1253]: Emma Davis
1158
+ - cell "musiclover99@hotmail.com" [ref=e2060]:
1159
+ - generic [ref=e1255]: musiclover99@hotmail.com
1160
+ - cell "General" [ref=e1256]:
1161
+ - generic [ref=e1257]: General
1162
+ - cell "5125555555" [ref=e2061]:
1163
+ - generic [ref=e1259]: "5125555555"
1164
+ - cell "78701" [ref=e2062]:
1165
+ - generic [ref=e1261]: "78701"
1166
+ - cell "United States" [ref=e1262]:
1167
+ - generic [ref=e1263]: United States
1168
+ - cell "Texas" [ref=e2063]:
1169
+ - generic [ref=e1265]: Texas
1170
+ - cell "Apr 19, 2023 5:46:10 PM" [ref=e2064]:
1171
+ - generic [ref=e1267]: Apr 19, 2023 5:46:10 PM
1172
+ - row "Emily Wilson emily.wilson@gmail.com General 3125551212 60611 United States Illinois Apr 23, 2023 12:14:24 AM" [ref=e2065]:
1173
+ - cell [ref=e1269]:
1174
+ - checkbox [ref=e1271] [cursor=pointer]
1175
+ - cell "Emily Wilson" [ref=e2066]:
1176
+ - generic [ref=e1274]: Emily Wilson
1177
+ - cell "emily.wilson@gmail.com" [ref=e2067]:
1178
+ - generic [ref=e1276]: emily.wilson@gmail.com
1179
+ - cell "General" [ref=e1277]:
1180
+ - generic [ref=e1278]: General
1181
+ - cell "3125551212" [ref=e2068]:
1182
+ - generic [ref=e1280]: "3125551212"
1183
+ - cell "60611" [ref=e2069]:
1184
+ - generic [ref=e1282]: "60611"
1185
+ - cell "United States" [ref=e1283]:
1186
+ - generic [ref=e1284]: United States
1187
+ - cell "Illinois" [ref=e2070]:
1188
+ - generic [ref=e1286]: Illinois
1189
+ - cell "Apr 23, 2023 12:14:24 AM" [ref=e2071]:
1190
+ - generic [ref=e1288]: Apr 23, 2023 12:14:24 AM
1191
+ - row "Emily Chen emily.chen@hotmail.com General 6175551212 02108 United States Massachusetts Apr 23, 2023 12:13:05 AM" [ref=e2072]:
1192
+ - cell [ref=e1290]:
1193
+ - checkbox [ref=e1292] [cursor=pointer]
1194
+ - cell "Emily Chen" [ref=e2073]:
1195
+ - generic [ref=e1295]: Emily Chen
1196
+ - cell "emily.chen@hotmail.com" [ref=e2074]:
1197
+ - generic [ref=e1297]: emily.chen@hotmail.com
1198
+ - cell "General" [ref=e1298]:
1199
+ - generic [ref=e1299]: General
1200
+ - cell "6175551212" [ref=e2075]:
1201
+ - generic [ref=e1301]: "6175551212"
1202
+ - cell "02108" [ref=e2076]:
1203
+ - generic [ref=e1303]: "02108"
1204
+ - cell "United States" [ref=e1304]:
1205
+ - generic [ref=e1305]: United States
1206
+ - cell "Massachusetts" [ref=e2077]:
1207
+ - generic [ref=e1307]: Massachusetts
1208
+ - cell "Apr 23, 2023 12:13:05 AM" [ref=e2078]:
1209
+ - generic [ref=e1309]: Apr 23, 2023 12:13:05 AM
1210
+ - row "David Smith david.smith@gmail.com General 2145551212 75201 United States Texas Apr 23, 2023 12:12:54 AM" [ref=e2079]:
1211
+ - cell [ref=e1311]:
1212
+ - checkbox [ref=e1313] [cursor=pointer]
1213
+ - cell "David Smith" [ref=e2080]:
1214
+ - generic [ref=e1316]: David Smith
1215
+ - cell "david.smith@gmail.com" [ref=e2081]:
1216
+ - generic [ref=e1318]: david.smith@gmail.com
1217
+ - cell "General" [ref=e1319]:
1218
+ - generic [ref=e1320]: General
1219
+ - cell "2145551212" [ref=e2082]:
1220
+ - generic [ref=e1322]: "2145551212"
1221
+ - cell "75201" [ref=e2083]:
1222
+ - generic [ref=e1324]: "75201"
1223
+ - cell "United States" [ref=e1325]:
1224
+ - generic [ref=e1326]: United States
1225
+ - cell "Texas" [ref=e2084]:
1226
+ - generic [ref=e1328]: Texas
1227
+ - cell "Apr 23, 2023 12:12:54 AM" [ref=e2085]:
1228
+ - generic [ref=e1330]: Apr 23, 2023 12:12:54 AM
1229
+ - row "David Lee david.lee@gmail.com General 6175551212 02108 United States Massachusetts Apr 19, 2023 5:46:30 PM" [ref=e2086]:
1230
+ - cell [ref=e1332]:
1231
+ - checkbox [ref=e1334] [cursor=pointer]
1232
+ - cell "David Lee" [ref=e2087]:
1233
+ - generic [ref=e1337]: David Lee
1234
+ - cell "david.lee@gmail.com" [ref=e2088]:
1235
+ - generic [ref=e1339]: david.lee@gmail.com
1236
+ - cell "General" [ref=e1340]:
1237
+ - generic [ref=e1341]: General
1238
+ - cell "6175551212" [ref=e2089]:
1239
+ - generic [ref=e1343]: "6175551212"
1240
+ - cell "02108" [ref=e2090]:
1241
+ - generic [ref=e1345]: "02108"
1242
+ - cell "United States" [ref=e1346]:
1243
+ - generic [ref=e1347]: United States
1244
+ - cell "Massachusetts" [ref=e2091]:
1245
+ - generic [ref=e1349]: Massachusetts
1246
+ - cell "Apr 19, 2023 5:46:30 PM" [ref=e2092]:
1247
+ - generic [ref=e1351]: Apr 19, 2023 5:46:30 PM
1248
+ - row "Daniel Jackson daniel.jackson@hotmail.com General 2155556789 19102 United States Pennsylvania Apr 19, 2023 5:45:27 PM" [ref=e2093]:
1249
+ - cell [ref=e1353]:
1250
+ - checkbox [ref=e1355] [cursor=pointer]
1251
+ - cell "Daniel Jackson" [ref=e2094]:
1252
+ - generic [ref=e1358]: Daniel Jackson
1253
+ - cell "daniel.jackson@hotmail.com" [ref=e2095]:
1254
+ - generic [ref=e1360]: daniel.jackson@hotmail.com
1255
+ - cell "General" [ref=e1361]:
1256
+ - generic [ref=e1362]: General
1257
+ - cell "2155556789" [ref=e2096]:
1258
+ - generic [ref=e1364]: "2155556789"
1259
+ - cell "19102" [ref=e2097]:
1260
+ - generic [ref=e1366]: "19102"
1261
+ - cell "United States" [ref=e1367]:
1262
+ - generic [ref=e1368]: United States
1263
+ - cell "Pennsylvania" [ref=e2098]:
1264
+ - generic [ref=e1370]: Pennsylvania
1265
+ - cell "Apr 19, 2023 5:45:27 PM" [ref=e2099]:
1266
+ - generic [ref=e1372]: Apr 19, 2023 5:45:27 PM
1267
+ - row "Brian Smith brian.smith@yahoo.com General 7025551212 89109 United States Nevada Apr 19, 2023 5:46:44 PM" [ref=e2100]:
1268
+ - cell [ref=e1374]:
1269
+ - checkbox [ref=e1376] [cursor=pointer]
1270
+ - cell "Brian Smith" [ref=e2101]:
1271
+ - generic [ref=e1379]: Brian Smith
1272
+ - cell "brian.smith@yahoo.com" [ref=e2102]:
1273
+ - generic [ref=e1381]: brian.smith@yahoo.com
1274
+ - cell "General" [ref=e1382]:
1275
+ - generic [ref=e1383]: General
1276
+ - cell "7025551212" [ref=e2103]:
1277
+ - generic [ref=e1385]: "7025551212"
1278
+ - cell "89109" [ref=e2104]:
1279
+ - generic [ref=e1387]: "89109"
1280
+ - cell "United States" [ref=e1388]:
1281
+ - generic [ref=e1389]: United States
1282
+ - cell "Nevada" [ref=e2105]:
1283
+ - generic [ref=e1391]: Nevada
1284
+ - cell "Apr 19, 2023 5:46:44 PM" [ref=e2106]:
1285
+ - generic [ref=e1393]: Apr 19, 2023 5:46:44 PM
1286
+ - row "Bob Jones bbjones@gmail.com General 2141918677 75202 United States Texas Apr 19, 2023 5:45:04 PM" [ref=e2107]:
1287
+ - cell [ref=e1395]:
1288
+ - checkbox [ref=e1397] [cursor=pointer]
1289
+ - cell "Bob Jones" [ref=e2108]:
1290
+ - generic [ref=e1400]: Bob Jones
1291
+ - cell "bbjones@gmail.com" [ref=e2109]:
1292
+ - generic [ref=e1402]: bbjones@gmail.com
1293
+ - cell "General" [ref=e1403]:
1294
+ - generic [ref=e1404]: General
1295
+ - cell "2141918677" [ref=e2110]:
1296
+ - generic [ref=e1406]: "2141918677"
1297
+ - cell "75202" [ref=e2111]:
1298
+ - generic [ref=e1408]: "75202"
1299
+ - cell "United States" [ref=e1409]:
1300
+ - generic [ref=e1410]: United States
1301
+ - cell "Texas" [ref=e2112]:
1302
+ - generic [ref=e1412]: Texas
1303
+ - cell "Apr 19, 2023 5:45:04 PM" [ref=e2113]:
1304
+ - generic [ref=e1414]: Apr 19, 2023 5:45:04 PM
1305
+ - row "Bob Johnson bob123@hotmail.com General 9721234567 75080 United States Texas Apr 19, 2023 5:45:14 PM" [ref=e2114]:
1306
+ - cell [ref=e1416]:
1307
+ - checkbox [ref=e1418] [cursor=pointer]
1308
+ - cell "Bob Johnson" [ref=e2115]:
1309
+ - generic [ref=e1421]: Bob Johnson
1310
+ - cell "bob123@hotmail.com" [ref=e2116]:
1311
+ - generic [ref=e1423]: bob123@hotmail.com
1312
+ - cell "General" [ref=e1424]:
1313
+ - generic [ref=e1425]: General
1314
+ - cell "9721234567" [ref=e2117]:
1315
+ - generic [ref=e1427]: "9721234567"
1316
+ - cell "75080" [ref=e2118]:
1317
+ - generic [ref=e1429]: "75080"
1318
+ - cell "United States" [ref=e1430]:
1319
+ - generic [ref=e1431]: United States
1320
+ - cell "Texas" [ref=e1432]:
1321
+ - generic [ref=e1433]: Texas
1322
+ - cell "Apr 19, 2023 5:45:14 PM" [ref=e2119]:
1323
+ - generic [ref=e1435]: Apr 19, 2023 5:45:14 PM
1324
+ - row "Ava Brown beachlover99@yahoo.com General 3105555555 90265 United States California Apr 19, 2023 5:46:01 PM" [ref=e2120]:
1325
+ - cell [ref=e1437]:
1326
+ - checkbox [ref=e1439] [cursor=pointer]
1327
+ - cell "Ava Brown" [ref=e2121]:
1328
+ - generic [ref=e1442]: Ava Brown
1329
+ - cell "beachlover99@yahoo.com" [ref=e2122]:
1330
+ - generic [ref=e1444]: beachlover99@yahoo.com
1331
+ - cell "General" [ref=e1445]:
1332
+ - generic [ref=e1446]: General
1333
+ - cell "3105555555" [ref=e2123]:
1334
+ - generic [ref=e1448]: "3105555555"
1335
+ - cell "90265" [ref=e2124]:
1336
+ - generic [ref=e1450]: "90265"
1337
+ - cell "United States" [ref=e1451]:
1338
+ - generic [ref=e1452]: United States
1339
+ - cell "California" [ref=e2125]:
1340
+ - generic [ref=e1454]: California
1341
+ - cell "Apr 19, 2023 5:46:01 PM" [ref=e2126]:
1342
+ - generic [ref=e1456]: Apr 19, 2023 5:46:01 PM
1343
+ - row "Anna Nguyen anna.nguyen@yahoo.com General 7135551212 77002 United States Texas Apr 23, 2023 12:13:09 AM" [ref=e2127]:
1344
+ - cell [ref=e1458]:
1345
+ - checkbox [ref=e1460] [cursor=pointer]
1346
+ - cell "Anna Nguyen" [ref=e2128]:
1347
+ - generic [ref=e1463]: Anna Nguyen
1348
+ - cell "anna.nguyen@yahoo.com" [ref=e2129]:
1349
+ - generic [ref=e1465]: anna.nguyen@yahoo.com
1350
+ - cell "General" [ref=e1466]:
1351
+ - generic [ref=e1467]: General
1352
+ - cell "7135551212" [ref=e2130]:
1353
+ - generic [ref=e1469]: "7135551212"
1354
+ - cell "77002" [ref=e2131]:
1355
+ - generic [ref=e1471]: "77002"
1356
+ - cell "United States" [ref=e1472]:
1357
+ - generic [ref=e1473]: United States
1358
+ - cell "Texas" [ref=e2132]:
1359
+ - generic [ref=e1475]: Texas
1360
+ - cell "Apr 23, 2023 12:13:09 AM" [ref=e2133]:
1361
+ - generic [ref=e1477]: Apr 23, 2023 12:13:09 AM
1362
+ - row "Amanda Kim amanda.kim@gmail.com General 2015551234 07030 United States New Jersey Apr 23, 2023 12:13:15 AM" [ref=e2134]:
1363
+ - cell [ref=e1479]:
1364
+ - checkbox [ref=e1481] [cursor=pointer]
1365
+ - cell "Amanda Kim" [ref=e2135]:
1366
+ - generic [ref=e1484]: Amanda Kim
1367
+ - cell "amanda.kim@gmail.com" [ref=e2136]:
1368
+ - generic [ref=e1486]: amanda.kim@gmail.com
1369
+ - cell "General" [ref=e1487]:
1370
+ - generic [ref=e1488]: General
1371
+ - cell "2015551234" [ref=e2137]:
1372
+ - generic [ref=e1490]: "2015551234"
1373
+ - cell "07030" [ref=e2138]:
1374
+ - generic [ref=e1492]: "07030"
1375
+ - cell "United States" [ref=e1493]:
1376
+ - generic [ref=e1494]: United States
1377
+ - cell "New Jersey" [ref=e2139]:
1378
+ - generic [ref=e1496]: New Jersey
1379
+ - cell "Apr 23, 2023 12:13:15 AM" [ref=e2140]:
1380
+ - generic [ref=e1498]: Apr 23, 2023 12:13:15 AM
1381
+ - row "Alexander Thomas alexander.thomas@hotmail.com General 3235551212 90028 United States California Apr 19, 2023 5:46:50 PM" [ref=e2141]:
1382
+ - cell [ref=e1500]:
1383
+ - checkbox [ref=e1502] [cursor=pointer]
1384
+ - cell "Alexander Thomas" [ref=e2142]:
1385
+ - generic [ref=e1505]: Alexander Thomas
1386
+ - cell "alexander.thomas@hotmail.com" [ref=e2143]:
1387
+ - generic [ref=e1507]: alexander.thomas@hotmail.com
1388
+ - cell "General" [ref=e1508]:
1389
+ - generic [ref=e1509]: General
1390
+ - cell "3235551212" [ref=e2144]:
1391
+ - generic [ref=e1511]: "3235551212"
1392
+ - cell "90028" [ref=e2145]:
1393
+ - generic [ref=e1513]: "90028"
1394
+ - cell "United States" [ref=e1514]:
1395
+ - generic [ref=e1515]: United States
1396
+ - cell "California" [ref=e2146]:
1397
+ - generic [ref=e1517]: California
1398
+ - cell "Apr 19, 2023 5:46:50 PM" [ref=e2147]:
1399
+ - generic [ref=e1519]: Apr 19, 2023 5:46:50 PM
1400
+ - row "Alex Martin alex.martin@gmail.com General 2125551212 10001 United States New York Apr 19, 2023 5:46:20 PM" [ref=e2148]:
1401
+ - cell [ref=e1521]:
1402
+ - checkbox [ref=e1523] [cursor=pointer]
1403
+ - cell "Alex Martin" [ref=e2149]:
1404
+ - generic [ref=e1526]: Alex Martin
1405
+ - cell "alex.martin@gmail.com" [ref=e2150]:
1406
+ - generic [ref=e1528]: alex.martin@gmail.com
1407
+ - cell "General" [ref=e1529]:
1408
+ - generic [ref=e1530]: General
1409
+ - cell "2125551212" [ref=e2151]:
1410
+ - generic [ref=e1532]: "2125551212"
1411
+ - cell "10001" [ref=e2152]:
1412
+ - generic [ref=e1534]: "10001"
1413
+ - cell "United States" [ref=e1535]:
1414
+ - generic [ref=e1536]: United States
1415
+ - cell "New York" [ref=e2153]:
1416
+ - generic [ref=e1538]: New York
1417
+ - cell "Apr 19, 2023 5:46:20 PM" [ref=e2154]:
1418
+ - generic [ref=e1540]: Apr 19, 2023 5:46:20 PM
1419
+ - row "Alex Johnson fitnessjunkie22@yahoo.com General 3105555555 90212 United States California Apr 19, 2023 5:46:07 PM" [ref=e2155]:
1420
+ - cell [ref=e1542]:
1421
+ - checkbox [ref=e1544] [cursor=pointer]
1422
+ - cell "Alex Johnson" [ref=e2156]:
1423
+ - generic [ref=e1547]: Alex Johnson
1424
+ - cell "fitnessjunkie22@yahoo.com" [ref=e2157]:
1425
+ - generic [ref=e1549]: fitnessjunkie22@yahoo.com
1426
+ - cell "General" [ref=e1550]:
1427
+ - generic [ref=e1551]: General
1428
+ - cell "3105555555" [ref=e2158]:
1429
+ - generic [ref=e1553]: "3105555555"
1430
+ - cell "90212" [ref=e2159]:
1431
+ - generic [ref=e1555]: "90212"
1432
+ - cell "United States" [ref=e1556]:
1433
+ - generic [ref=e1557]: United States
1434
+ - cell "California" [ref=e2160]:
1435
+ - generic [ref=e1559]: California
1436
+ - cell "Apr 19, 2023 5:46:07 PM" [ref=e2161]:
1437
+ - generic [ref=e1561]: Apr 19, 2023 5:46:07 PM
1438
+ - row "Adam Garcia gamingpro456@gmail.com General 2065555555 98122 United States Washington Apr 19, 2023 5:46:14 PM" [ref=e2162]:
1439
+ - cell [ref=e1563]:
1440
+ - checkbox [ref=e1565] [cursor=pointer]
1441
+ - cell "Adam Garcia" [ref=e2163]:
1442
+ - generic [ref=e1568]: Adam Garcia
1443
+ - cell "gamingpro456@gmail.com" [ref=e2164]:
1444
+ - generic [ref=e1570]: gamingpro456@gmail.com
1445
+ - cell "General" [ref=e1571]:
1446
+ - generic [ref=e1572]: General
1447
+ - cell "2065555555" [ref=e2165]:
1448
+ - generic [ref=e1574]: "2065555555"
1449
+ - cell "98122" [ref=e2166]:
1450
+ - generic [ref=e1576]: "98122"
1451
+ - cell "United States" [ref=e1577]:
1452
+ - generic [ref=e1578]: United States
1453
+ - cell "Washington" [ref=e2167]:
1454
+ - generic [ref=e1580]: Washington
1455
+ - cell "Apr 19, 2023 5:46:14 PM" [ref=e2168]:
1456
+ - generic [ref=e1582]: Apr 19, 2023 5:46:14 PM
1457
+ - row "Adam Garcia adam.garcia@gmail.com General 6025551212 85004 United States Arizona Apr 19, 2023 5:46:40 PM" [ref=e2169]:
1458
+ - cell [ref=e1584]:
1459
+ - checkbox [ref=e1586] [cursor=pointer]
1460
+ - cell "Adam Garcia" [ref=e2170]:
1461
+ - generic [ref=e1589]: Adam Garcia
1462
+ - cell "adam.garcia@gmail.com" [ref=e2171]:
1463
+ - generic [ref=e1591]: adam.garcia@gmail.com
1464
+ - cell "General" [ref=e1592]:
1465
+ - generic [ref=e1593]: General
1466
+ - cell "6025551212" [ref=e2172]:
1467
+ - generic [ref=e1595]: "6025551212"
1468
+ - cell "85004" [ref=e2173]:
1469
+ - generic [ref=e1597]: "85004"
1470
+ - cell "United States" [ref=e1598]:
1471
+ - generic [ref=e1599]: United States
1472
+ - cell "Arizona" [ref=e2174]:
1473
+ - generic [ref=e1601]: Arizona
1474
+ - cell "Apr 19, 2023 5:46:40 PM" [ref=e2175]:
1475
+ - generic [ref=e1603]: Apr 19, 2023 5:46:40 PM
1476
+ - contentinfo [ref=e60]:
1477
+ - generic [ref=e62]:
1478
+ - paragraph [ref=e63]:
1479
+ - link "" [ref=e64] [cursor=pointer]:
1480
+ - /url: http://magento.com
1481
+ - text: Copyright © 2026 Magento Commerce Inc. All rights reserved.
1482
+ - generic [ref=e65]:
1483
+ - paragraph [ref=e66]:
1484
+ - strong [ref=e67]: Magento
1485
+ - text: ver. 2.4.6
1486
+ - link "Privacy Policy" [ref=e68] [cursor=pointer]:
1487
+ - /url: https://www.adobe.com/privacy/policy.html
1488
+ - text: "|"
1489
+ - link "Account Activity" [ref=e69] [cursor=pointer]:
1490
+ - /url: http://localhost:7789/admin/security/session/activity/
1491
+ - text: "|"
1492
+ - link "Report an Issue" [ref=e70] [cursor=pointer]:
1493
+ - /url: https://github.com/magento/magento2/issues
1494
+ - text: ‹ ›
docs/installation_and_docker_usage.md ADDED
@@ -0,0 +1,238 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # Installation and Docker Task Usage Guideline
2
+
3
+ ## Overview
4
+
5
+ The MCPMark setup supports installation through either pip or MCPMark Docker (recommended) after cloning the code repository.
6
+
7
+ ### Pip Installtion
8
+ ```bash
9
+ pip install -e .
10
+ ```
11
+
12
+ The MCPMark Docker setup provides a simple way to run evaluation tasks in isolated containers. PostgreSQL is automatically handled when needed.
13
+
14
+ ## 1. Quick Start
15
+
16
+ ### 1.1 Docker Image
17
+
18
+ The official Docker image is automatically pulled from Docker Hub on first use.
19
+ The image is hosted at: https://hub.docker.com/r/evalsysorg/mcpmark
20
+
21
+ **Image Management:**
22
+ - The scripts automatically download the image when it's not found locally
23
+ - To manually update to the latest version:
24
+ ```bash
25
+ docker pull evalsysorg/mcpmark:latest
26
+ ```
27
+ - For local development/testing, you can build your own docker:
28
+ ```bash
29
+ # Creates evalsysorg/mcpmark:latest locally
30
+ ./build-docker.sh
31
+ ```
32
+
33
+ ## 2. Running MCP Experiments
34
+
35
+ ### 2.1 Running Individual MCP Experiment
36
+
37
+ The `run-task.sh` script provides simplified Docker usage:
38
+
39
+ ```bash
40
+ # Run filesystem tasks (filesystem is the default mcp service)
41
+ ./run-task.sh --models MODEL_NAME --k K
42
+
43
+ # Run github/notion/postgres/playwright/playwright_webarena with specific task
44
+ ./run-task.sh --mcp MCPSERVICE --models MODEL_NAME --exp-name EXPNAME --tasks TASK --k K
45
+ ```
46
+
47
+ where *MODEL_NAME* refers to the model choice from the supported models (see [Introduction Page](./introduction.md) for more information), *EXPNAME* refers to customized experiment name, *TASK* refers to specific task or task group (see `tasks/<mcp>/<task_suite>/...` for more information), *K* refers to the time of independent experiments.
48
+
49
+
50
+ Additionally, the `run-benchmark.sh` script evaluates models across all MCP services:
51
+
52
+ ```bash
53
+ # Run all services with Docker (recommended)
54
+ ./run-benchmark.sh --models MODEL --exp-name EXPNAME --docker
55
+
56
+ # Run specific services
57
+ ./run-benchmark.sh --models MODEL --exp-name EXPNAME --mcps MCPSERVICES --docker
58
+
59
+ # Run with parallel execution for faster results
60
+ ./run-benchmark.sh --models MODEL --exp-name EXPNAME --docker --parallel
61
+
62
+ # Run locally without Docker
63
+ ./run-benchmark.sh --models MODEL --exp-name EXPNAME --mcps MCPSERVICES
64
+ ```
65
+
66
+ Here *MCPSERVICES* refers to group of MCP services, separated by comma (e.g. *filesystem,postgres*)
67
+
68
+ The benchmark script:
69
+ - Runs all or selected MCP services automatically
70
+ - Supports progress tracking and timing
71
+ - Generates summary reports and logs
72
+ - Supports parallel service execution
73
+ - Continues running even if some services fail
74
+ - Automatically generates performance dashboards
75
+
76
+ ### Manual Docker Commands
77
+
78
+ #### For Non-Postgres Services
79
+ Suppose Notion is the service:
80
+ ```bash
81
+ # Build the image first
82
+ ./build-docker.sh
83
+
84
+ # Run a task
85
+ docker run --rm \
86
+ -v $(pwd)/results:/app/results \
87
+ -v $(pwd)/.mcp_env:/app/.mcp_env:ro \
88
+ -v $(pwd)/notion_state.json:/app/notion_state.json:ro \
89
+ evalsysorg/mcpmark:latest \
90
+ python3 -m pipeline --mcp notion --models MODEL --exp-name EXPNAME --tasks TASK --k K
91
+ ```
92
+
93
+ #### For Postgres Service
94
+ ```bash
95
+ # The run-task.sh script handles postgres automatically, but if doing manually:
96
+
97
+ # Start postgres container
98
+ docker run -d \
99
+ --name mcp-postgres \
100
+ --network mcp-network \
101
+ -e POSTGRES_DATABASE=postgres \
102
+ -e POSTGRES_USER=postgres \
103
+ -e POSTGRES_PASSWORD=123456 \
104
+ ghcr.io/cloudnative-pg/postgresql:17-bookworm
105
+
106
+ # Run postgres task
107
+ docker run --rm \
108
+ --network mcp-network \
109
+ -e POSTGRES_HOST=mcp-postgres \
110
+ -v $(pwd)/results:/app/results \
111
+ -v $(pwd)/.mcp_env:/app/.mcp_env:ro \
112
+ evalsysorg/mcpmark:latest \
113
+ python3 -m pipeline --mcp postgres --models MODEL --exp-name EXPNAME --tasks TASK --k K
114
+
115
+ # Stop and remove postgres when done
116
+ docker stop mcp-postgres && docker rm mcp-postgres
117
+ ```
118
+
119
+ ## Script Usage
120
+
121
+ ### Benchmark Runner (`run-benchmark.sh`)
122
+
123
+ ```
124
+ ./run-benchmark.sh --models MODELS --exp-name NAME [OPTIONS]
125
+
126
+ Required Options:
127
+ --models MODELS Comma-separated list of models to evaluate
128
+ --exp-name NAME Experiment name for organizing results
129
+
130
+ Optional Options:
131
+ --docker Run tasks in Docker containers (recommended)
132
+ --mcps SERVICES Comma-separated list of services to test
133
+ Default: filesystem,notion,github,postgres,playwright
134
+ --parallel Run services in parallel (experimental)
135
+ --timeout SECONDS Timeout per task in seconds (default: 300)
136
+ ```
137
+
138
+ ### Individual Task Runner (`run-task.sh`)
139
+
140
+ ```
141
+ ./run-task.sh [--mcp SERVICE] [PIPELINE_ARGS]
142
+
143
+ Options:
144
+ --mcp SERVICE MCP service (notion|github|filesystem|playwright|postgres)
145
+ Default: filesystem
146
+
147
+ Environment Variables:
148
+ DOCKER_MEMORY_LIMIT Memory limit for container (default: 4g)
149
+ DOCKER_CPU_LIMIT CPU limit for container (default: 2)
150
+ DOCKER_IMAGE_VERSION Docker image tag to use (default: latest)
151
+
152
+ All other arguments are passed directly to the pipeline command.
153
+
154
+ Pipeline arguments (see python3 -m pipeline --help):
155
+ --mcp {notion,github,filesystem,playwright,postgres,playwright_webarena}
156
+ MCP service to use (default: filesystem)
157
+ --models MODELS Comma-separated list of models to evaluate (e.g., 'o3,k2,gpt-4.1')
158
+ --tasks TASKS Tasks to run: "all", a category name, or "category/task_name"
159
+ --exp-name EXP_NAME Experiment name; results are saved under results/<exp-name>/ (default: YYYY-MM-DD-HH-MM-SS)
160
+ --k K Number of evaluation runs for pass@k metrics (default: 1)
161
+ --timeout TIMEOUT Timeout in seconds for each task
162
+ --output-dir OUTPUT_DIR
163
+ Directory to save results
164
+ ```
165
+
166
+ ## Docker Benefits
167
+
168
+ 1. **Efficiency**: Only starts necessary containers
169
+ 2. **Isolation**: Each task runs in a fresh container
170
+ 3. **Resource Management**: Automatic cleanup of containers and networks
171
+ 4. **Smart Dependencies**: PostgreSQL only starts for postgres service
172
+ 5. **Parallel Support**: Can run multiple services simultaneously for faster benchmarks
173
+ 6. **Comprehensive Testing**: Benchmark script runs all services with one command
174
+ 7. **Progress Tracking**: Colored output with timing and status information
175
+ 8. **Automatic Reporting**: Generates summary reports and performance dashboards
176
+
177
+ ## Common Troubleshooting
178
+
179
+ ### Permission Issues
180
+ ```bash
181
+ chmod +x run-task.sh
182
+ ```
183
+
184
+ ### Docker Build Issues
185
+ ```bash
186
+ # Force rebuild with no cache
187
+ ./run-task.sh --build --mcp MCPSERVICE --models MODEL_NAME --exp-name EXPNAME --tasks TASK
188
+ ```
189
+
190
+ ### PostgreSQL Connection Issues
191
+ ```bash
192
+ # Check if postgres is running
193
+ docker ps | grep postgres
194
+
195
+ # View postgres logs
196
+ docker logs mcp-postgres-task
197
+ ```
198
+
199
+ ### Cleanup Stuck Resources
200
+ ```bash
201
+ # Stop all containers
202
+ docker stop $(docker ps -q)
203
+
204
+ # Remove task network
205
+ docker network rm mcp-task-network
206
+
207
+ # Remove postgres data volume (careful!)
208
+ docker volume rm mcp-postgres-data
209
+ ```
210
+
211
+ ## Environment Variables
212
+
213
+ Create `.mcp_env` file with your credentials:
214
+ ```env
215
+ # Service credentials
216
+ SOURCE_NOTION_API_KEY=your-key
217
+ EVAL_NOTION_API_KEY=your-key
218
+ GITHUB_TOKEN=your-token
219
+ POSTGRES_PASSWORD=your-password
220
+
221
+ # Model API keys
222
+ OPENAI_API_KEY=your-key
223
+ ANTHROPIC_API_KEY=your-key
224
+ # ... etc
225
+ ```
226
+
227
+ Please refer to [Quick Start](./quickstart.md) for setting up API key for specific model.
228
+
229
+ ## Docker Compose Files
230
+
231
+ - `docker-compose.yml` - Full stack with postgres (for development/testing)
232
+
233
+ ## Notes
234
+
235
+ - Results are saved under `./results/<exp-name>/`.
236
+ - Each task runs in an ephemeral container.
237
+ - Docker image is shared across all tasks.
238
+ - PostgreSQL data persists in Docker volume.
docs/introduction.md ADDED
@@ -0,0 +1,89 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # MCPMark
2
+ MCPMark is a comprehensive evaluation suite for evaluating the agentic ability of frontier models.
3
+
4
+ MCPMark includes Model Context Protocol (MCP) service in following environments
5
+ - Notion
6
+ - Github
7
+ - Filesystem
8
+ - Postgres
9
+ - Playwright
10
+ - Playwright-WebArena
11
+
12
+ ### General Procedure
13
+ MCPMark is designed to run agentic tasks in complex environment **safely**. Specifically, it sets up an isolated environment for the experiment, completing the task, and then destroy the environment without affecting existing user profile or information.
14
+
15
+ ### How to Use MCPMark
16
+ 1. MCPMark Installation.
17
+ 2. Authorize service (for Github and Notion).
18
+ 3. Configure the environment variables in `.mcp_env`.
19
+ 4. Run MCPMark experiment.
20
+
21
+ Please refer to [Quick Start](./quickstart.md) for details regarding how to start a sample filesystem experiment in properly, and [Task Page](./datasets/task.md) for task details. Please visit [Installation and Docker Uusage](./installation_and_docker_usage.md) information of full MCPMark setup.
22
+
23
+ ### Running MCPMark
24
+
25
+ MCPMark supports the following mode to run experiments (suppose the experiment is named as new_exp, and the model used are o3 and gpt-4.1 and the environment is notion), with K repetive experiments.
26
+
27
+ #### MCPMark in Pip Installation
28
+ ```bash
29
+ # Evaluate ALL tasks
30
+ python -m pipeline --exp-name new_exp --mcp notion --tasks all --models o3 --k K
31
+
32
+ # Evaluate a single task group (online_resume)
33
+ python -m pipeline --exp-name new_exp --mcp notion --tasks online_resume --models o3 --k K
34
+
35
+ # Evaluate one specific task (task_1 in online_resume)
36
+ python -m pipeline --exp-name new_exp --mcp notion --tasks online_resume/task_1 --models o3 --k K
37
+
38
+ # Evaluate multiple models
39
+ python -m pipeline --exp-name new_exp --mcp notion --tasks all --models o3,gpt-4.1 --k K
40
+ ```
41
+
42
+ #### MCPMark in Docker Installation
43
+ ```bash
44
+ # Run all tasks for one service
45
+ ./run-task.sh --mcp notion --models o3 --exp-name new_exp --tasks all
46
+
47
+ # Run comprehensive benchmark across all services
48
+ ./run-benchmark.sh --models o3,gpt-4.1 --exp-name new_exp --docker
49
+ ```
50
+
51
+ #### Experiment Auto-Resume
52
+ For re-run experiments, only unfinished tasks will be executed. Tasks that previously failed due to pipeline errors (such as State Duplication Error or MCP Network Error) will also be retried automatically.
53
+
54
+ ### Results
55
+ The experiment results are written to `./results/` (JSON + CSV).
56
+
57
+ #### Reult Aggregation (for K > 1)
58
+ MCP supports aggreated metrics of pass@1, pass@K, pass^K, avg@K.
59
+ ```bash
60
+ python -m src.aggregators.aggregate_results --exp-name new_exp
61
+ ```
62
+
63
+ ### Model Support
64
+ MCPMark supports the following models with according providers (model codes in the brackets).
65
+ #### OpenAI
66
+ - GPT-5 (gpt-5)
67
+ - o3 (o3)
68
+
69
+ #### Anthropic
70
+ - Claude-4.1-Opus (claude-4.1-opus)
71
+ - Claude-4-Sonnet (claude-4-sonnet)
72
+
73
+ #### Google
74
+ - Gemini-2.5-Pro (gemini-2.5-pro)
75
+
76
+ #### Grok
77
+ - Grok-4 (grok-4)
78
+
79
+ #### Deepseek
80
+ - DeepSeek-Chat (deepseek-chat)
81
+
82
+ #### Alibaba
83
+ - Qwen3-Coder (qwen-3-coder)
84
+
85
+ #### Kimi
86
+ - Kimi-K2 (k2)
87
+
88
+ ### Want to contribute?
89
+ Visit [Contributing Page](./contributing) to learn how to make contribution to MCPMark.
docs/quickstart.md ADDED
@@ -0,0 +1,59 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # Quick Start
2
+ To quickly experience MCPMark, we recommend firstly preparing the environment, and then execute the Postgres tasks.
3
+
4
+ ### 1. Clone MCPMark
5
+ ```bash
6
+ git clone https://github.com/eval-sys/mcpmark.git
7
+
8
+ cd mcpmark
9
+ ```
10
+
11
+ ### 2. Setup Environment Variables
12
+ To setup the model access in environment variable, edit the `.mcp_env` file in `mcpmark/`.
13
+
14
+ ```env
15
+ # Model Providers (set only those you need)
16
+ ## Google Gemini
17
+ GEMINI_BASE_URL="https://your-gemini-base-url.com/v1"
18
+ GEMINI_API_KEY="your-gemini-api-key"
19
+
20
+ ## DeepSeek
21
+ DEEPSEEK_BASE_URL="https://your-deepseek-base-url.com/v1"
22
+ DEEPSEEK_API_KEY="your-deepseek-api-key"
23
+
24
+ ## OpenAI
25
+ OPENAI_BASE_URL="https://your-openai-base-url.com/v1"
26
+ OPENAI_API_KEY="your-openai-api-key"
27
+
28
+ ## Anthropic
29
+ ANTHROPIC_BASE_URL="https://your-anthropic-base-url.com/v1"
30
+ ANTHROPIC_API_KEY="your-anthropic-api-key"
31
+
32
+ ## Moonshot
33
+ MOONSHOT_BASE_URL="https://your-moonshot-base-url.com/v1"
34
+ MOONSHOT_API_KEY="your-moonshot-api-key"
35
+
36
+ ## xAI
37
+ XAI_BASE_URL="https://your-xai-base-url.com/v1"
38
+ XAI_API_KEY="your-xai-api-key"
39
+ ```
40
+
41
+ ### 3. Run Quick Example in MCPMark
42
+ Suppose you are running the employee query task with gemini-2.5-flash, and name your experiment as test-run-1, you can use the following command to test the `size_classification` task in `file_property`, which categorizes files by their sizes.
43
+
44
+ ```bash
45
+ python -m pipeline
46
+ --exp-name test-run-1
47
+ --mcp filesystem
48
+ --tasks file_property/size_classification
49
+ --models gemini-2.5-flash
50
+ ```
51
+
52
+ Here is the expected output (the verification may encounter failure due to model choices).
53
+ [![Sample Experiment Output](https://i.postimg.cc/4NRDYRS2/task-sample-file-property-size-classification.png)](https://postimg.cc/Yj8nPZkQ)
54
+
55
+ The reuslts are saved under `restuls/{exp_name}/{mcp}_{model}/{tasks}`, if `exp-name` is not specified, the default name would be timestamp of the experiment (but specifying the `exp-name` is useful for resuming experiments).
56
+
57
+ For other MCP services, please refers to the [Installation and Docker Usage Page](./installation_and_docker_usage.md) for detailed instruction.
58
+
59
+
final-customers.yml ADDED
@@ -0,0 +1,1494 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ - generic [active] [ref=e1]:
2
+ - generic [ref=e2]:
3
+ - link "Magento Admin Panel" [ref=e3] [cursor=pointer]:
4
+ - /url: http://localhost:7787/admin/admin/
5
+ - img "Magento Admin Panel" [ref=e4]
6
+ - navigation [ref=e5]:
7
+ - menubar [ref=e6]:
8
+ - listitem [ref=e7]:
9
+ - link " Dashboard" [ref=e8] [cursor=pointer]:
10
+ - /url: http://localhost:7787/admin/admin/dashboard/
11
+ - listitem [ref=e9]:
12
+ - link " Sales" [ref=e10] [cursor=pointer]:
13
+ - /url: "#"
14
+ - listitem [ref=e11]:
15
+ - link " Catalog" [ref=e12] [cursor=pointer]:
16
+ - /url: "#"
17
+ - listitem [ref=e13]:
18
+ - link " Customers" [ref=e14] [cursor=pointer]:
19
+ - /url: "#"
20
+ - listitem [ref=e15]:
21
+ - link " Marketing" [ref=e16] [cursor=pointer]:
22
+ - /url: "#"
23
+ - listitem [ref=e17]:
24
+ - link " Content" [ref=e18] [cursor=pointer]:
25
+ - /url: "#"
26
+ - listitem [ref=e19]:
27
+ - link " Reports" [ref=e20] [cursor=pointer]:
28
+ - /url: "#"
29
+ - listitem [ref=e21]:
30
+ - link " Stores" [ref=e22] [cursor=pointer]:
31
+ - /url: "#"
32
+ - listitem [ref=e23]:
33
+ - link " System" [ref=e24] [cursor=pointer]:
34
+ - /url: "#"
35
+ - listitem [ref=e25]:
36
+ - link " Find Partners & Extensions" [ref=e26] [cursor=pointer]:
37
+ - /url: http://localhost:7787/admin/marketplace/index/
38
+ - generic [ref=e27]:
39
+ - generic [ref=e31]:
40
+ - generic [ref=e32]:
41
+ - 'button "System Messages: 1" [ref=e33] [cursor=pointer]':
42
+ - generic [ref=e34]: "System Messages: 1"
43
+ - generic [ref=e36]:
44
+ - text:  One or more
45
+ - link "indexers are invalid" [ref=e37] [cursor=pointer]:
46
+ - /url: http://localhost:7787/admin/indexer/indexer/list/
47
+ - text: . Make sure your
48
+ - link "Magento cron job" [ref=e38] [cursor=pointer]:
49
+ - /url: https://devdocs.magento.com/guides/v2.4/config-guide/cli/config-cli-subcommands-cron.html#create-or-remove-the-magento-crontab
50
+ - text: is running.
51
+ - text: 
52
+ - banner [ref=e39]:
53
+ - heading "Customers" [level=1] [ref=e42]
54
+ - generic [ref=e43]:
55
+ - link " admin" [ref=e45] [cursor=pointer]:
56
+ - /url: http://localhost:7787/admin/admin/system_account/index/
57
+ - text: 
58
+ - generic [ref=e47]: admin
59
+ - link "" [ref=e49] [cursor=pointer]:
60
+ - /url: http://localhost:7787/admin/admin/notification/index/
61
+ - generic:
62
+ - generic:
63
+ - generic:
64
+ - generic [ref=e50] [cursor=pointer]: 
65
+ - textbox "" [ref=e51]
66
+ - main [ref=e52]:
67
+ - button "Add New Customer" [ref=e55] [cursor=pointer]
68
+ - generic [ref=e58]:
69
+ - text: 
70
+ - generic [ref=e59]: You saved the customer.
71
+ - generic [ref=e63]:
72
+ - generic [ref=e74]:
73
+ - generic [ref=e75]:
74
+ - generic [ref=e76]:
75
+ - generic [ref=e77]:
76
+ - button " Default View" [ref=e78] [cursor=pointer]:
77
+ - text: 
78
+ - generic [ref=e79]: Default View
79
+ - text: 
80
+ - generic [ref=e80]:
81
+ - button " Columns" [ref=e81] [cursor=pointer]
82
+ - text:        
83
+ - button " Export" [ref=e83] [cursor=pointer]
84
+ - generic [ref=e84]:
85
+ - textbox "Search by keyword" [ref=e85]
86
+ - button "Search" [ref=e86] [cursor=pointer]: 
87
+ - button "Filters" [ref=e89] [cursor=pointer]
88
+ - generic [ref=e90]:
89
+ - button "Actions" [ref=e93] [cursor=pointer]
90
+ - generic [ref=e95]:
91
+ - generic [ref=e97]: 71 records found
92
+ - generic [ref=e99]:
93
+ - generic [ref=e100]:
94
+ - textbox "per page" [ref=e102]: "100"
95
+ - button "per page Select" [ref=e103] [cursor=pointer]:
96
+ - generic [ref=e104]: Select
97
+ - text: 
98
+ - generic [ref=e105]: per page
99
+ - generic [ref=e106]:
100
+ - button "" [disabled]
101
+ - spinbutton "of 1" [ref=e107]: "1"
102
+ - generic [ref=e108]: of 1
103
+ - button "" [disabled]
104
+ - text:                   ↓
105
+ - table [ref=e110]:
106
+ - rowgroup [ref=e111]:
107
+ - row "Options ↓ Name Email Group Phone ZIP Country State/Province Customer Since" [ref=e112]:
108
+ - columnheader "Options" [ref=e113]:
109
+ - generic [ref=e114]:
110
+ - checkbox [ref=e115] [cursor=pointer]
111
+ - button "Options" [ref=e117] [cursor=pointer]:
112
+ - generic [ref=e118]: Options
113
+ - columnheader "↓ Name" [ref=e119] [cursor=pointer]:
114
+ - text: ↓
115
+ - generic [ref=e120]: Name
116
+ - columnheader "Email" [ref=e121] [cursor=pointer]:
117
+ - generic [ref=e122]: Email
118
+ - columnheader "Group" [ref=e123] [cursor=pointer]:
119
+ - generic [ref=e124]: Group
120
+ - columnheader "Phone" [ref=e125] [cursor=pointer]:
121
+ - generic [ref=e126]: Phone
122
+ - columnheader "ZIP" [ref=e127] [cursor=pointer]:
123
+ - generic [ref=e128]: ZIP
124
+ - columnheader "Country" [ref=e129] [cursor=pointer]:
125
+ - generic [ref=e130]: Country
126
+ - columnheader "State/Province" [ref=e131] [cursor=pointer]:
127
+ - generic [ref=e132]: State/Province
128
+ - columnheader "Customer Since" [ref=e133] [cursor=pointer]:
129
+ - generic [ref=e134]: Customer Since
130
+ - rowgroup [ref=e135]:
131
+ - row "Adam Garcia gamingpro456@gmail.com General 2065555555 98122 United States Washington Apr 19, 2023 5:46:14 PM" [ref=e136]:
132
+ - cell [ref=e137]:
133
+ - checkbox [ref=e139] [cursor=pointer]
134
+ - cell "Adam Garcia" [ref=e141]:
135
+ - generic [ref=e142]: Adam Garcia
136
+ - cell "gamingpro456@gmail.com" [ref=e143]:
137
+ - generic [ref=e144]: gamingpro456@gmail.com
138
+ - cell "General" [ref=e145]:
139
+ - generic [ref=e146]: General
140
+ - cell "2065555555" [ref=e147]:
141
+ - generic [ref=e148]: "2065555555"
142
+ - cell "98122" [ref=e149]:
143
+ - generic [ref=e150]: "98122"
144
+ - cell "United States" [ref=e151]:
145
+ - generic [ref=e152]: United States
146
+ - cell "Washington" [ref=e153]:
147
+ - generic [ref=e154]: Washington
148
+ - cell "Apr 19, 2023 5:46:14 PM" [ref=e155]:
149
+ - generic [ref=e156]: Apr 19, 2023 5:46:14 PM
150
+ - row "Adam Garcia adam.garcia@gmail.com General 6025551212 85004 United States Arizona Apr 19, 2023 5:46:40 PM" [ref=e157]:
151
+ - cell [ref=e158]:
152
+ - checkbox [ref=e160] [cursor=pointer]
153
+ - cell "Adam Garcia" [ref=e162]:
154
+ - generic [ref=e163]: Adam Garcia
155
+ - cell "adam.garcia@gmail.com" [ref=e164]:
156
+ - generic [ref=e165]: adam.garcia@gmail.com
157
+ - cell "General" [ref=e166]:
158
+ - generic [ref=e167]: General
159
+ - cell "6025551212" [ref=e168]:
160
+ - generic [ref=e169]: "6025551212"
161
+ - cell "85004" [ref=e170]:
162
+ - generic [ref=e171]: "85004"
163
+ - cell "United States" [ref=e172]:
164
+ - generic [ref=e173]: United States
165
+ - cell "Arizona" [ref=e174]:
166
+ - generic [ref=e175]: Arizona
167
+ - cell "Apr 19, 2023 5:46:40 PM" [ref=e176]:
168
+ - generic [ref=e177]: Apr 19, 2023 5:46:40 PM
169
+ - row "Alex Johnson fitnessjunkie22@yahoo.com General 3105555555 90212 United States California Apr 19, 2023 5:46:07 PM" [ref=e178]:
170
+ - cell [ref=e179]:
171
+ - checkbox [ref=e181] [cursor=pointer]
172
+ - cell "Alex Johnson" [ref=e183]:
173
+ - generic [ref=e184]: Alex Johnson
174
+ - cell "fitnessjunkie22@yahoo.com" [ref=e185]:
175
+ - generic [ref=e186]: fitnessjunkie22@yahoo.com
176
+ - cell "General" [ref=e187]:
177
+ - generic [ref=e188]: General
178
+ - cell "3105555555" [ref=e189]:
179
+ - generic [ref=e190]: "3105555555"
180
+ - cell "90212" [ref=e191]:
181
+ - generic [ref=e192]: "90212"
182
+ - cell "United States" [ref=e193]:
183
+ - generic [ref=e194]: United States
184
+ - cell "California" [ref=e195]:
185
+ - generic [ref=e196]: California
186
+ - cell "Apr 19, 2023 5:46:07 PM" [ref=e197]:
187
+ - generic [ref=e198]: Apr 19, 2023 5:46:07 PM
188
+ - row "Alex Martin alex.martin@gmail.com General 2125551212 10001 United States New York Apr 19, 2023 5:46:20 PM" [ref=e199]:
189
+ - cell [ref=e200]:
190
+ - checkbox [ref=e202] [cursor=pointer]
191
+ - cell "Alex Martin" [ref=e204]:
192
+ - generic [ref=e205]: Alex Martin
193
+ - cell "alex.martin@gmail.com" [ref=e206]:
194
+ - generic [ref=e207]: alex.martin@gmail.com
195
+ - cell "General" [ref=e208]:
196
+ - generic [ref=e209]: General
197
+ - cell "2125551212" [ref=e210]:
198
+ - generic [ref=e211]: "2125551212"
199
+ - cell "10001" [ref=e212]:
200
+ - generic [ref=e213]: "10001"
201
+ - cell "United States" [ref=e214]:
202
+ - generic [ref=e215]: United States
203
+ - cell "New York" [ref=e216]:
204
+ - generic [ref=e217]: New York
205
+ - cell "Apr 19, 2023 5:46:20 PM" [ref=e218]:
206
+ - generic [ref=e219]: Apr 19, 2023 5:46:20 PM
207
+ - row "Alexander Thomas alexander.thomas@hotmail.com General 3235551212 90028 United States California Apr 19, 2023 5:46:50 PM" [ref=e220]:
208
+ - cell [ref=e221]:
209
+ - checkbox [ref=e223] [cursor=pointer]
210
+ - cell "Alexander Thomas" [ref=e225]:
211
+ - generic [ref=e226]: Alexander Thomas
212
+ - cell "alexander.thomas@hotmail.com" [ref=e227]:
213
+ - generic [ref=e228]: alexander.thomas@hotmail.com
214
+ - cell "General" [ref=e229]:
215
+ - generic [ref=e230]: General
216
+ - cell "3235551212" [ref=e231]:
217
+ - generic [ref=e232]: "3235551212"
218
+ - cell "90028" [ref=e233]:
219
+ - generic [ref=e234]: "90028"
220
+ - cell "United States" [ref=e235]:
221
+ - generic [ref=e236]: United States
222
+ - cell "California" [ref=e237]:
223
+ - generic [ref=e238]: California
224
+ - cell "Apr 19, 2023 5:46:50 PM" [ref=e239]:
225
+ - generic [ref=e240]: Apr 19, 2023 5:46:50 PM
226
+ - row "Amanda Kim amanda.kim@gmail.com General 2015551234 07030 United States New Jersey Apr 23, 2023 12:13:15 AM" [ref=e241]:
227
+ - cell [ref=e242]:
228
+ - checkbox [ref=e244] [cursor=pointer]
229
+ - cell "Amanda Kim" [ref=e246]:
230
+ - generic [ref=e247]: Amanda Kim
231
+ - cell "amanda.kim@gmail.com" [ref=e248]:
232
+ - generic [ref=e249]: amanda.kim@gmail.com
233
+ - cell "General" [ref=e250]:
234
+ - generic [ref=e251]: General
235
+ - cell "2015551234" [ref=e252]:
236
+ - generic [ref=e253]: "2015551234"
237
+ - cell "07030" [ref=e254]:
238
+ - generic [ref=e255]: "07030"
239
+ - cell "United States" [ref=e256]:
240
+ - generic [ref=e257]: United States
241
+ - cell "New Jersey" [ref=e258]:
242
+ - generic [ref=e259]: New Jersey
243
+ - cell "Apr 23, 2023 12:13:15 AM" [ref=e260]:
244
+ - generic [ref=e261]: Apr 23, 2023 12:13:15 AM
245
+ - row "Anna Nguyen anna.nguyen@yahoo.com General 7135551212 77002 United States Texas Apr 23, 2023 12:13:09 AM" [ref=e262]:
246
+ - cell [ref=e263]:
247
+ - checkbox [ref=e265] [cursor=pointer]
248
+ - cell "Anna Nguyen" [ref=e267]:
249
+ - generic [ref=e268]: Anna Nguyen
250
+ - cell "anna.nguyen@yahoo.com" [ref=e269]:
251
+ - generic [ref=e270]: anna.nguyen@yahoo.com
252
+ - cell "General" [ref=e271]:
253
+ - generic [ref=e272]: General
254
+ - cell "7135551212" [ref=e273]:
255
+ - generic [ref=e274]: "7135551212"
256
+ - cell "77002" [ref=e275]:
257
+ - generic [ref=e276]: "77002"
258
+ - cell "United States" [ref=e277]:
259
+ - generic [ref=e278]: United States
260
+ - cell "Texas" [ref=e279]:
261
+ - generic [ref=e280]: Texas
262
+ - cell "Apr 23, 2023 12:13:09 AM" [ref=e281]:
263
+ - generic [ref=e282]: Apr 23, 2023 12:13:09 AM
264
+ - row "Ava Brown beachlover99@yahoo.com General 3105555555 90265 United States California Apr 19, 2023 5:46:01 PM" [ref=e283]:
265
+ - cell [ref=e284]:
266
+ - checkbox [ref=e286] [cursor=pointer]
267
+ - cell "Ava Brown" [ref=e288]:
268
+ - generic [ref=e289]: Ava Brown
269
+ - cell "beachlover99@yahoo.com" [ref=e290]:
270
+ - generic [ref=e291]: beachlover99@yahoo.com
271
+ - cell "General" [ref=e292]:
272
+ - generic [ref=e293]: General
273
+ - cell "3105555555" [ref=e294]:
274
+ - generic [ref=e295]: "3105555555"
275
+ - cell "90265" [ref=e296]:
276
+ - generic [ref=e297]: "90265"
277
+ - cell "United States" [ref=e298]:
278
+ - generic [ref=e299]: United States
279
+ - cell "California" [ref=e300]:
280
+ - generic [ref=e301]: California
281
+ - cell "Apr 19, 2023 5:46:01 PM" [ref=e302]:
282
+ - generic [ref=e303]: Apr 19, 2023 5:46:01 PM
283
+ - row "Bob Johnson bob123@hotmail.com General 9721234567 75080 United States Texas Apr 19, 2023 5:45:14 PM" [ref=e304]:
284
+ - cell [ref=e305]:
285
+ - checkbox [ref=e307] [cursor=pointer]
286
+ - cell "Bob Johnson" [ref=e309]:
287
+ - generic [ref=e310]: Bob Johnson
288
+ - cell "bob123@hotmail.com" [ref=e311]:
289
+ - generic [ref=e312]: bob123@hotmail.com
290
+ - cell "General" [ref=e313]:
291
+ - generic [ref=e314]: General
292
+ - cell "9721234567" [ref=e315]:
293
+ - generic [ref=e316]: "9721234567"
294
+ - cell "75080" [ref=e317]:
295
+ - generic [ref=e318]: "75080"
296
+ - cell "United States" [ref=e319]:
297
+ - generic [ref=e320]: United States
298
+ - cell "Texas" [ref=e321]:
299
+ - generic [ref=e322]: Texas
300
+ - cell "Apr 19, 2023 5:45:14 PM" [ref=e323]:
301
+ - generic [ref=e324]: Apr 19, 2023 5:45:14 PM
302
+ - row "Bob Jones bbjones@gmail.com General 2141918677 75202 United States Texas Apr 19, 2023 5:45:04 PM" [ref=e325]:
303
+ - cell [ref=e326]:
304
+ - checkbox [ref=e328] [cursor=pointer]
305
+ - cell "Bob Jones" [ref=e330]:
306
+ - generic [ref=e331]: Bob Jones
307
+ - cell "bbjones@gmail.com" [ref=e332]:
308
+ - generic [ref=e333]: bbjones@gmail.com
309
+ - cell "General" [ref=e334]:
310
+ - generic [ref=e335]: General
311
+ - cell "2141918677" [ref=e336]:
312
+ - generic [ref=e337]: "2141918677"
313
+ - cell "75202" [ref=e338]:
314
+ - generic [ref=e339]: "75202"
315
+ - cell "United States" [ref=e340]:
316
+ - generic [ref=e341]: United States
317
+ - cell "Texas" [ref=e342]:
318
+ - generic [ref=e343]: Texas
319
+ - cell "Apr 19, 2023 5:45:04 PM" [ref=e344]:
320
+ - generic [ref=e345]: Apr 19, 2023 5:45:04 PM
321
+ - row "Brian Smith brian.smith@yahoo.com General 7025551212 89109 United States Nevada Apr 19, 2023 5:46:44 PM" [ref=e346]:
322
+ - cell [ref=e347]:
323
+ - checkbox [ref=e349] [cursor=pointer]
324
+ - cell "Brian Smith" [ref=e351]:
325
+ - generic [ref=e352]: Brian Smith
326
+ - cell "brian.smith@yahoo.com" [ref=e353]:
327
+ - generic [ref=e354]: brian.smith@yahoo.com
328
+ - cell "General" [ref=e355]:
329
+ - generic [ref=e356]: General
330
+ - cell "7025551212" [ref=e357]:
331
+ - generic [ref=e358]: "7025551212"
332
+ - cell "89109" [ref=e359]:
333
+ - generic [ref=e360]: "89109"
334
+ - cell "United States" [ref=e361]:
335
+ - generic [ref=e362]: United States
336
+ - cell "Nevada" [ref=e363]:
337
+ - generic [ref=e364]: Nevada
338
+ - cell "Apr 19, 2023 5:46:44 PM" [ref=e365]:
339
+ - generic [ref=e366]: Apr 19, 2023 5:46:44 PM
340
+ - row "Daniel Jackson daniel.jackson@hotmail.com General 2155556789 19102 United States Pennsylvania Apr 19, 2023 5:45:27 PM" [ref=e367]:
341
+ - cell [ref=e368]:
342
+ - checkbox [ref=e370] [cursor=pointer]
343
+ - cell "Daniel Jackson" [ref=e372]:
344
+ - generic [ref=e373]: Daniel Jackson
345
+ - cell "daniel.jackson@hotmail.com" [ref=e374]:
346
+ - generic [ref=e375]: daniel.jackson@hotmail.com
347
+ - cell "General" [ref=e376]:
348
+ - generic [ref=e377]: General
349
+ - cell "2155556789" [ref=e378]:
350
+ - generic [ref=e379]: "2155556789"
351
+ - cell "19102" [ref=e380]:
352
+ - generic [ref=e381]: "19102"
353
+ - cell "United States" [ref=e382]:
354
+ - generic [ref=e383]: United States
355
+ - cell "Pennsylvania" [ref=e384]:
356
+ - generic [ref=e385]: Pennsylvania
357
+ - cell "Apr 19, 2023 5:45:27 PM" [ref=e386]:
358
+ - generic [ref=e387]: Apr 19, 2023 5:45:27 PM
359
+ - row "David Lee david.lee@gmail.com General 6175551212 02108 United States Massachusetts Apr 19, 2023 5:46:30 PM" [ref=e388]:
360
+ - cell [ref=e389]:
361
+ - checkbox [ref=e391] [cursor=pointer]
362
+ - cell "David Lee" [ref=e393]:
363
+ - generic [ref=e394]: David Lee
364
+ - cell "david.lee@gmail.com" [ref=e395]:
365
+ - generic [ref=e396]: david.lee@gmail.com
366
+ - cell "General" [ref=e397]:
367
+ - generic [ref=e398]: General
368
+ - cell "6175551212" [ref=e399]:
369
+ - generic [ref=e400]: "6175551212"
370
+ - cell "02108" [ref=e401]:
371
+ - generic [ref=e402]: "02108"
372
+ - cell "United States" [ref=e403]:
373
+ - generic [ref=e404]: United States
374
+ - cell "Massachusetts" [ref=e405]:
375
+ - generic [ref=e406]: Massachusetts
376
+ - cell "Apr 19, 2023 5:46:30 PM" [ref=e407]:
377
+ - generic [ref=e408]: Apr 19, 2023 5:46:30 PM
378
+ - row "David Smith david.smith@gmail.com General 2145551212 75201 United States Texas Apr 23, 2023 12:12:54 AM" [ref=e409]:
379
+ - cell [ref=e410]:
380
+ - checkbox [ref=e412] [cursor=pointer]
381
+ - cell "David Smith" [ref=e414]:
382
+ - generic [ref=e415]: David Smith
383
+ - cell "david.smith@gmail.com" [ref=e416]:
384
+ - generic [ref=e417]: david.smith@gmail.com
385
+ - cell "General" [ref=e418]:
386
+ - generic [ref=e419]: General
387
+ - cell "2145551212" [ref=e420]:
388
+ - generic [ref=e421]: "2145551212"
389
+ - cell "75201" [ref=e422]:
390
+ - generic [ref=e423]: "75201"
391
+ - cell "United States" [ref=e424]:
392
+ - generic [ref=e425]: United States
393
+ - cell "Texas" [ref=e426]:
394
+ - generic [ref=e427]: Texas
395
+ - cell "Apr 23, 2023 12:12:54 AM" [ref=e428]:
396
+ - generic [ref=e429]: Apr 23, 2023 12:12:54 AM
397
+ - row "Emily Chen emily.chen@hotmail.com General 6175551212 02108 United States Massachusetts Apr 23, 2023 12:13:05 AM" [ref=e430]:
398
+ - cell [ref=e431]:
399
+ - checkbox [ref=e433] [cursor=pointer]
400
+ - cell "Emily Chen" [ref=e435]:
401
+ - generic [ref=e436]: Emily Chen
402
+ - cell "emily.chen@hotmail.com" [ref=e437]:
403
+ - generic [ref=e438]: emily.chen@hotmail.com
404
+ - cell "General" [ref=e439]:
405
+ - generic [ref=e440]: General
406
+ - cell "6175551212" [ref=e441]:
407
+ - generic [ref=e442]: "6175551212"
408
+ - cell "02108" [ref=e443]:
409
+ - generic [ref=e444]: "02108"
410
+ - cell "United States" [ref=e445]:
411
+ - generic [ref=e446]: United States
412
+ - cell "Massachusetts" [ref=e447]:
413
+ - generic [ref=e448]: Massachusetts
414
+ - cell "Apr 23, 2023 12:13:05 AM" [ref=e449]:
415
+ - generic [ref=e450]: Apr 23, 2023 12:13:05 AM
416
+ - row "Emily Wilson emily.wilson@gmail.com General 3125551212 60611 United States Illinois Apr 23, 2023 12:14:24 AM" [ref=e451]:
417
+ - cell [ref=e452]:
418
+ - checkbox [ref=e454] [cursor=pointer]
419
+ - cell "Emily Wilson" [ref=e456]:
420
+ - generic [ref=e457]: Emily Wilson
421
+ - cell "emily.wilson@gmail.com" [ref=e458]:
422
+ - generic [ref=e459]: emily.wilson@gmail.com
423
+ - cell "General" [ref=e460]:
424
+ - generic [ref=e461]: General
425
+ - cell "3125551212" [ref=e462]:
426
+ - generic [ref=e463]: "3125551212"
427
+ - cell "60611" [ref=e464]:
428
+ - generic [ref=e465]: "60611"
429
+ - cell "United States" [ref=e466]:
430
+ - generic [ref=e467]: United States
431
+ - cell "Illinois" [ref=e468]:
432
+ - generic [ref=e469]: Illinois
433
+ - cell "Apr 23, 2023 12:14:24 AM" [ref=e470]:
434
+ - generic [ref=e471]: Apr 23, 2023 12:14:24 AM
435
+ - row "Emma Davis musiclover99@hotmail.com General 5125555555 78701 United States Texas Apr 19, 2023 5:46:10 PM" [ref=e472]:
436
+ - cell [ref=e473]:
437
+ - checkbox [ref=e475] [cursor=pointer]
438
+ - cell "Emma Davis" [ref=e477]:
439
+ - generic [ref=e478]: Emma Davis
440
+ - cell "musiclover99@hotmail.com" [ref=e479]:
441
+ - generic [ref=e480]: musiclover99@hotmail.com
442
+ - cell "General" [ref=e481]:
443
+ - generic [ref=e482]: General
444
+ - cell "5125555555" [ref=e483]:
445
+ - generic [ref=e484]: "5125555555"
446
+ - cell "78701" [ref=e485]:
447
+ - generic [ref=e486]: "78701"
448
+ - cell "United States" [ref=e487]:
449
+ - generic [ref=e488]: United States
450
+ - cell "Texas" [ref=e489]:
451
+ - generic [ref=e490]: Texas
452
+ - cell "Apr 19, 2023 5:46:10 PM" [ref=e491]:
453
+ - generic [ref=e492]: Apr 19, 2023 5:46:10 PM
454
+ - row "Emma Lopez emma.lopez@gmail.com General 6505551212 94010 United States California Apr 23, 2023 12:14:57 AM" [ref=e493]:
455
+ - cell [ref=e494]:
456
+ - checkbox [ref=e496] [cursor=pointer]
457
+ - cell "Emma Lopez" [ref=e498]:
458
+ - generic [ref=e499]: Emma Lopez
459
+ - cell "emma.lopez@gmail.com" [ref=e500]:
460
+ - generic [ref=e501]: emma.lopez@gmail.com
461
+ - cell "General" [ref=e502]:
462
+ - generic [ref=e503]: General
463
+ - cell "6505551212" [ref=e504]:
464
+ - generic [ref=e505]: "6505551212"
465
+ - cell "94010" [ref=e506]:
466
+ - generic [ref=e507]: "94010"
467
+ - cell "United States" [ref=e508]:
468
+ - generic [ref=e509]: United States
469
+ - cell "California" [ref=e510]:
470
+ - generic [ref=e511]: California
471
+ - cell "Apr 23, 2023 12:14:57 AM" [ref=e512]:
472
+ - generic [ref=e513]: Apr 23, 2023 12:14:57 AM
473
+ - row "Ethan Garcia ethan.garcia@yahoo.com General 2145551212 75201 United States Texas Apr 23, 2023 12:13:53 AM" [ref=e514]:
474
+ - cell [ref=e515]:
475
+ - checkbox [ref=e517] [cursor=pointer]
476
+ - cell "Ethan Garcia" [ref=e519]:
477
+ - generic [ref=e520]: Ethan Garcia
478
+ - cell "ethan.garcia@yahoo.com" [ref=e521]:
479
+ - generic [ref=e522]: ethan.garcia@yahoo.com
480
+ - cell "General" [ref=e523]:
481
+ - generic [ref=e524]: General
482
+ - cell "2145551212" [ref=e525]:
483
+ - generic [ref=e526]: "2145551212"
484
+ - cell "75201" [ref=e527]:
485
+ - generic [ref=e528]: "75201"
486
+ - cell "United States" [ref=e529]:
487
+ - generic [ref=e530]: United States
488
+ - cell "Texas" [ref=e531]:
489
+ - generic [ref=e532]: Texas
490
+ - cell "Apr 23, 2023 12:13:53 AM" [ref=e533]:
491
+ - generic [ref=e534]: Apr 23, 2023 12:13:53 AM
492
+ - row "Grace Nguyen avidreader99@yahoo.com General 6175555555 02138 United States Massachusetts Apr 19, 2023 5:45:51 PM" [ref=e535]:
493
+ - cell [ref=e536]:
494
+ - checkbox [ref=e538] [cursor=pointer]
495
+ - cell "Grace Nguyen" [ref=e540]:
496
+ - generic [ref=e541]: Grace Nguyen
497
+ - cell "avidreader99@yahoo.com" [ref=e542]:
498
+ - generic [ref=e543]: avidreader99@yahoo.com
499
+ - cell "General" [ref=e544]:
500
+ - generic [ref=e545]: General
501
+ - cell "6175555555" [ref=e546]:
502
+ - generic [ref=e547]: "6175555555"
503
+ - cell "02138" [ref=e548]:
504
+ - generic [ref=e549]: "02138"
505
+ - cell "United States" [ref=e550]:
506
+ - generic [ref=e551]: United States
507
+ - cell "Massachusetts" [ref=e552]:
508
+ - generic [ref=e553]: Massachusetts
509
+ - cell "Apr 19, 2023 5:45:51 PM" [ref=e554]:
510
+ - generic [ref=e555]: Apr 19, 2023 5:45:51 PM
511
+ - row "Hannah Lim hannah.lim@gmail.com General 7035551212 22030 United States Virginia Apr 23, 2023 12:14:40 AM" [ref=e556]:
512
+ - cell [ref=e557]:
513
+ - checkbox [ref=e559] [cursor=pointer]
514
+ - cell "Hannah Lim" [ref=e561]:
515
+ - generic [ref=e562]: Hannah Lim
516
+ - cell "hannah.lim@gmail.com" [ref=e563]:
517
+ - generic [ref=e564]: hannah.lim@gmail.com
518
+ - cell "General" [ref=e565]:
519
+ - generic [ref=e566]: General
520
+ - cell "7035551212" [ref=e567]:
521
+ - generic [ref=e568]: "7035551212"
522
+ - cell "22030" [ref=e569]:
523
+ - generic [ref=e570]: "22030"
524
+ - cell "United States" [ref=e571]:
525
+ - generic [ref=e572]: United States
526
+ - cell "Virginia" [ref=e573]:
527
+ - generic [ref=e574]: Virginia
528
+ - cell "Apr 23, 2023 12:14:40 AM" [ref=e575]:
529
+ - generic [ref=e576]: Apr 23, 2023 12:14:40 AM
530
+ - row "Isaac Rodriguez isaac.rodriguez@gmail.com General 6025551212 85004 United States Arizona Apr 23, 2023 12:14:45 AM" [ref=e577]:
531
+ - cell [ref=e578]:
532
+ - checkbox [ref=e580] [cursor=pointer]
533
+ - cell "Isaac Rodriguez" [ref=e582]:
534
+ - generic [ref=e583]: Isaac Rodriguez
535
+ - cell "isaac.rodriguez@gmail.com" [ref=e584]:
536
+ - generic [ref=e585]: isaac.rodriguez@gmail.com
537
+ - cell "General" [ref=e586]:
538
+ - generic [ref=e587]: General
539
+ - cell "6025551212" [ref=e588]:
540
+ - generic [ref=e589]: "6025551212"
541
+ - cell "85004" [ref=e590]:
542
+ - generic [ref=e591]: "85004"
543
+ - cell "United States" [ref=e592]:
544
+ - generic [ref=e593]: United States
545
+ - cell "Arizona" [ref=e594]:
546
+ - generic [ref=e595]: Arizona
547
+ - cell "Apr 23, 2023 12:14:45 AM" [ref=e596]:
548
+ - generic [ref=e597]: Apr 23, 2023 12:14:45 AM
549
+ - row "Isabella Romano isabella.romano16@premium.eu Premium Europe 3 Jun 7, 2026 4:36:29 AM" [ref=e598]:
550
+ - cell [ref=e599]:
551
+ - checkbox [ref=e601] [cursor=pointer]
552
+ - cell "Isabella Romano" [ref=e603]:
553
+ - generic [ref=e604]: Isabella Romano
554
+ - cell "isabella.romano16@premium.eu" [ref=e605]:
555
+ - generic [ref=e606]: isabella.romano16@premium.eu
556
+ - cell "Premium Europe 3" [ref=e607]:
557
+ - generic [ref=e608]: Premium Europe 3
558
+ - cell [ref=e609]
559
+ - cell [ref=e610]
560
+ - cell [ref=e611]
561
+ - cell [ref=e612]
562
+ - cell "Jun 7, 2026 4:36:29 AM" [ref=e613]:
563
+ - generic [ref=e614]: Jun 7, 2026 4:36:29 AM
564
+ - row "Isabella Santos isabella.santos@gmail.com General 3055551212 33130 United States Florida Apr 23, 2023 12:14:32 AM" [ref=e615]:
565
+ - cell [ref=e616]:
566
+ - checkbox [ref=e618] [cursor=pointer]
567
+ - cell "Isabella Santos" [ref=e620]:
568
+ - generic [ref=e621]: Isabella Santos
569
+ - cell "isabella.santos@gmail.com" [ref=e622]:
570
+ - generic [ref=e623]: isabella.santos@gmail.com
571
+ - cell "General" [ref=e624]:
572
+ - generic [ref=e625]: General
573
+ - cell "3055551212" [ref=e626]:
574
+ - generic [ref=e627]: "3055551212"
575
+ - cell "33130" [ref=e628]:
576
+ - generic [ref=e629]: "33130"
577
+ - cell "United States" [ref=e630]:
578
+ - generic [ref=e631]: United States
579
+ - cell "Florida" [ref=e632]:
580
+ - generic [ref=e633]: Florida
581
+ - cell "Apr 23, 2023 12:14:32 AM" [ref=e634]:
582
+ - generic [ref=e635]: Apr 23, 2023 12:14:32 AM
583
+ - row "Jacob Rivera jacob.rivera@hotmail.com General 6025551212 85004 United States Arizona Apr 23, 2023 12:14:01 AM" [ref=e636]:
584
+ - cell [ref=e637]:
585
+ - checkbox [ref=e639] [cursor=pointer]
586
+ - cell "Jacob Rivera" [ref=e641]:
587
+ - generic [ref=e642]: Jacob Rivera
588
+ - cell "jacob.rivera@hotmail.com" [ref=e643]:
589
+ - generic [ref=e644]: jacob.rivera@hotmail.com
590
+ - cell "General" [ref=e645]:
591
+ - generic [ref=e646]: General
592
+ - cell "6025551212" [ref=e647]:
593
+ - generic [ref=e648]: "6025551212"
594
+ - cell "85004" [ref=e649]:
595
+ - generic [ref=e650]: "85004"
596
+ - cell "United States" [ref=e651]:
597
+ - generic [ref=e652]: United States
598
+ - cell "Arizona" [ref=e653]:
599
+ - generic [ref=e654]: Arizona
600
+ - cell "Apr 23, 2023 12:14:01 AM" [ref=e655]:
601
+ - generic [ref=e656]: Apr 23, 2023 12:14:01 AM
602
+ - row "James Baker james.baker@gmail.com General 2145551212 75201 United States Texas Apr 23, 2023 12:14:28 AM" [ref=e657]:
603
+ - cell [ref=e658]:
604
+ - checkbox [ref=e660] [cursor=pointer]
605
+ - cell "James Baker" [ref=e662]:
606
+ - generic [ref=e663]: James Baker
607
+ - cell "james.baker@gmail.com" [ref=e664]:
608
+ - generic [ref=e665]: james.baker@gmail.com
609
+ - cell "General" [ref=e666]:
610
+ - generic [ref=e667]: General
611
+ - cell "2145551212" [ref=e668]:
612
+ - generic [ref=e669]: "2145551212"
613
+ - cell "75201" [ref=e670]:
614
+ - generic [ref=e671]: "75201"
615
+ - cell "United States" [ref=e672]:
616
+ - generic [ref=e673]: United States
617
+ - cell "Texas" [ref=e674]:
618
+ - generic [ref=e675]: Texas
619
+ - cell "Apr 23, 2023 12:14:28 AM" [ref=e676]:
620
+ - generic [ref=e677]: Apr 23, 2023 12:14:28 AM
621
+ - row "James Kim james.kim@gmail.com General 3125551212 60601 United States Illinois Apr 23, 2023 12:13:29 AM" [ref=e678]:
622
+ - cell [ref=e679]:
623
+ - checkbox [ref=e681] [cursor=pointer]
624
+ - cell "James Kim" [ref=e683]:
625
+ - generic [ref=e684]: James Kim
626
+ - cell "james.kim@gmail.com" [ref=e685]:
627
+ - generic [ref=e686]: james.kim@gmail.com
628
+ - cell "General" [ref=e687]:
629
+ - generic [ref=e688]: General
630
+ - cell "3125551212" [ref=e689]:
631
+ - generic [ref=e690]: "3125551212"
632
+ - cell "60601" [ref=e691]:
633
+ - generic [ref=e692]: "60601"
634
+ - cell "United States" [ref=e693]:
635
+ - generic [ref=e694]: United States
636
+ - cell "Illinois" [ref=e695]:
637
+ - generic [ref=e696]: Illinois
638
+ - cell "Apr 23, 2023 12:13:29 AM" [ref=e697]:
639
+ - generic [ref=e698]: Apr 23, 2023 12:13:29 AM
640
+ - row "Jane Doe jane.doe@hotmail.com General 4123671901 33139 United States Florida Apr 19, 2023 5:45:01 PM" [ref=e699]:
641
+ - cell [ref=e700]:
642
+ - checkbox [ref=e702] [cursor=pointer]
643
+ - cell "Jane Doe" [ref=e704]:
644
+ - generic [ref=e705]: Jane Doe
645
+ - cell "jane.doe@hotmail.com" [ref=e706]:
646
+ - generic [ref=e707]: jane.doe@hotmail.com
647
+ - cell "General" [ref=e708]:
648
+ - generic [ref=e709]: General
649
+ - cell "4123671901" [ref=e710]:
650
+ - generic [ref=e711]: "4123671901"
651
+ - cell "33139" [ref=e712]:
652
+ - generic [ref=e713]: "33139"
653
+ - cell "United States" [ref=e714]:
654
+ - generic [ref=e715]: United States
655
+ - cell "Florida" [ref=e716]:
656
+ - generic [ref=e717]: Florida
657
+ - cell "Apr 19, 2023 5:45:01 PM" [ref=e718]:
658
+ - generic [ref=e719]: Apr 19, 2023 5:45:01 PM
659
+ - row "Jane Doe jane.doe@gmail.com General 2125551212 10001 United States New York Apr 23, 2023 12:13:19 AM" [ref=e720]:
660
+ - cell [ref=e721]:
661
+ - checkbox [ref=e723] [cursor=pointer]
662
+ - cell "Jane Doe" [ref=e725]:
663
+ - generic [ref=e726]: Jane Doe
664
+ - cell "jane.doe@gmail.com" [ref=e727]:
665
+ - generic [ref=e728]: jane.doe@gmail.com
666
+ - cell "General" [ref=e729]:
667
+ - generic [ref=e730]: General
668
+ - cell "2125551212" [ref=e731]:
669
+ - generic [ref=e732]: "2125551212"
670
+ - cell "10001" [ref=e733]:
671
+ - generic [ref=e734]: "10001"
672
+ - cell "United States" [ref=e735]:
673
+ - generic [ref=e736]: United States
674
+ - cell "New York" [ref=e737]:
675
+ - generic [ref=e738]: New York
676
+ - cell "Apr 23, 2023 12:13:19 AM" [ref=e739]:
677
+ - generic [ref=e740]: Apr 23, 2023 12:13:19 AM
678
+ - row "Jane Smith janesmith@gmail.com General 2065554321 98122 United States Washington Apr 19, 2023 5:45:24 PM" [ref=e741]:
679
+ - cell [ref=e742]:
680
+ - checkbox [ref=e744] [cursor=pointer]
681
+ - cell "Jane Smith" [ref=e746]:
682
+ - generic [ref=e747]: Jane Smith
683
+ - cell "janesmith@gmail.com" [ref=e748]:
684
+ - generic [ref=e749]: janesmith@gmail.com
685
+ - cell "General" [ref=e750]:
686
+ - generic [ref=e751]: General
687
+ - cell "2065554321" [ref=e752]:
688
+ - generic [ref=e753]: "2065554321"
689
+ - cell "98122" [ref=e754]:
690
+ - generic [ref=e755]: "98122"
691
+ - cell "United States" [ref=e756]:
692
+ - generic [ref=e757]: United States
693
+ - cell "Washington" [ref=e758]:
694
+ - generic [ref=e759]: Washington
695
+ - cell "Apr 19, 2023 5:45:24 PM" [ref=e760]:
696
+ - generic [ref=e761]: Apr 19, 2023 5:45:24 PM
697
+ - row "Jane Smith janesmith456@yahoo.com General 3105555555 90210 United States California Apr 19, 2023 5:45:41 PM" [ref=e762]:
698
+ - cell [ref=e763]:
699
+ - checkbox [ref=e765] [cursor=pointer]
700
+ - cell "Jane Smith" [ref=e767]:
701
+ - generic [ref=e768]: Jane Smith
702
+ - cell "janesmith456@yahoo.com" [ref=e769]:
703
+ - generic [ref=e770]: janesmith456@yahoo.com
704
+ - cell "General" [ref=e771]:
705
+ - generic [ref=e772]: General
706
+ - cell "3105555555" [ref=e773]:
707
+ - generic [ref=e774]: "3105555555"
708
+ - cell "90210" [ref=e775]:
709
+ - generic [ref=e776]: "90210"
710
+ - cell "United States" [ref=e777]:
711
+ - generic [ref=e778]: United States
712
+ - cell "California" [ref=e779]:
713
+ - generic [ref=e780]: California
714
+ - cell "Apr 19, 2023 5:45:41 PM" [ref=e781]:
715
+ - generic [ref=e782]: Apr 19, 2023 5:45:41 PM
716
+ - row "Jason Miller jason.miller@yahoo.com General 3035551212 80202 United States Colorado Apr 19, 2023 5:46:34 PM" [ref=e783]:
717
+ - cell [ref=e784]:
718
+ - checkbox [ref=e786] [cursor=pointer]
719
+ - cell "Jason Miller" [ref=e788]:
720
+ - generic [ref=e789]: Jason Miller
721
+ - cell "jason.miller@yahoo.com" [ref=e790]:
722
+ - generic [ref=e791]: jason.miller@yahoo.com
723
+ - cell "General" [ref=e792]:
724
+ - generic [ref=e793]: General
725
+ - cell "3035551212" [ref=e794]:
726
+ - generic [ref=e795]: "3035551212"
727
+ - cell "80202" [ref=e796]:
728
+ - generic [ref=e797]: "80202"
729
+ - cell "United States" [ref=e798]:
730
+ - generic [ref=e799]: United States
731
+ - cell "Colorado" [ref=e800]:
732
+ - generic [ref=e801]: Colorado
733
+ - cell "Apr 19, 2023 5:46:34 PM" [ref=e802]:
734
+ - generic [ref=e803]: Apr 19, 2023 5:46:34 PM
735
+ - row "Jennifer White jennifer.white@yahoo.com General 2137418080 90015 United States California Apr 19, 2023 5:46:17 PM" [ref=e804]:
736
+ - cell [ref=e805]:
737
+ - checkbox [ref=e807] [cursor=pointer]
738
+ - cell "Jennifer White" [ref=e809]:
739
+ - generic [ref=e810]: Jennifer White
740
+ - cell "jennifer.white@yahoo.com" [ref=e811]:
741
+ - generic [ref=e812]: jennifer.white@yahoo.com
742
+ - cell "General" [ref=e813]:
743
+ - generic [ref=e814]: General
744
+ - cell "2137418080" [ref=e815]:
745
+ - generic [ref=e816]: "2137418080"
746
+ - cell "90015" [ref=e817]:
747
+ - generic [ref=e818]: "90015"
748
+ - cell "United States" [ref=e819]:
749
+ - generic [ref=e820]: United States
750
+ - cell "California" [ref=e821]:
751
+ - generic [ref=e822]: California
752
+ - cell "Apr 19, 2023 5:46:17 PM" [ref=e823]:
753
+ - generic [ref=e824]: Apr 19, 2023 5:46:17 PM
754
+ - row "Jessica Chang jessica.chang@hotmail.com General 2065551212 98101 United States Washington Apr 23, 2023 12:13:26 AM" [ref=e825]:
755
+ - cell [ref=e826]:
756
+ - checkbox [ref=e828] [cursor=pointer]
757
+ - cell "Jessica Chang" [ref=e830]:
758
+ - generic [ref=e831]: Jessica Chang
759
+ - cell "jessica.chang@hotmail.com" [ref=e832]:
760
+ - generic [ref=e833]: jessica.chang@hotmail.com
761
+ - cell "General" [ref=e834]:
762
+ - generic [ref=e835]: General
763
+ - cell "2065551212" [ref=e836]:
764
+ - generic [ref=e837]: "2065551212"
765
+ - cell "98101" [ref=e838]:
766
+ - generic [ref=e839]: "98101"
767
+ - cell "United States" [ref=e840]:
768
+ - generic [ref=e841]: United States
769
+ - cell "Washington" [ref=e842]:
770
+ - generic [ref=e843]: Washington
771
+ - cell "Apr 23, 2023 12:13:26 AM" [ref=e844]:
772
+ - generic [ref=e845]: Apr 23, 2023 12:13:26 AM
773
+ - row "Jessica Nguyen jessica.nguyen@gmail.com General 2065551212 98101 United States Washington Apr 23, 2023 12:12:58 AM" [ref=e846]:
774
+ - cell [ref=e847]:
775
+ - checkbox [ref=e849] [cursor=pointer]
776
+ - cell "Jessica Nguyen" [ref=e851]:
777
+ - generic [ref=e852]: Jessica Nguyen
778
+ - cell "jessica.nguyen@gmail.com" [ref=e853]:
779
+ - generic [ref=e854]: jessica.nguyen@gmail.com
780
+ - cell "General" [ref=e855]:
781
+ - generic [ref=e856]: General
782
+ - cell "2065551212" [ref=e857]:
783
+ - generic [ref=e858]: "2065551212"
784
+ - cell "98101" [ref=e859]:
785
+ - generic [ref=e860]: "98101"
786
+ - cell "United States" [ref=e861]:
787
+ - generic [ref=e862]: United States
788
+ - cell "Washington" [ref=e863]:
789
+ - generic [ref=e864]: Washington
790
+ - cell "Apr 23, 2023 12:12:58 AM" [ref=e865]:
791
+ - generic [ref=e866]: Apr 23, 2023 12:12:58 AM
792
+ - row "Jessica Wong jessica.wong@gmail.com General 3125551212 60601 United States Illinois Apr 23, 2023 12:13:48 AM" [ref=e867]:
793
+ - cell [ref=e868]:
794
+ - checkbox [ref=e870] [cursor=pointer]
795
+ - cell "Jessica Wong" [ref=e872]:
796
+ - generic [ref=e873]: Jessica Wong
797
+ - cell "jessica.wong@gmail.com" [ref=e874]:
798
+ - generic [ref=e875]: jessica.wong@gmail.com
799
+ - cell "General" [ref=e876]:
800
+ - generic [ref=e877]: General
801
+ - cell "3125551212" [ref=e878]:
802
+ - generic [ref=e879]: "3125551212"
803
+ - cell "60601" [ref=e880]:
804
+ - generic [ref=e881]: "60601"
805
+ - cell "United States" [ref=e882]:
806
+ - generic [ref=e883]: United States
807
+ - cell "Illinois" [ref=e884]:
808
+ - generic [ref=e885]: Illinois
809
+ - cell "Apr 23, 2023 12:13:48 AM" [ref=e886]:
810
+ - generic [ref=e887]: Apr 23, 2023 12:13:48 AM
811
+ - row "John Doe johndoe123@gmail.com General 2125551212 10001 United States New York Apr 19, 2023 5:45:37 PM" [ref=e888]:
812
+ - cell [ref=e889]:
813
+ - checkbox [ref=e891] [cursor=pointer]
814
+ - cell "John Doe" [ref=e893]:
815
+ - generic [ref=e894]: John Doe
816
+ - cell "johndoe123@gmail.com" [ref=e895]:
817
+ - generic [ref=e896]: johndoe123@gmail.com
818
+ - cell "General" [ref=e897]:
819
+ - generic [ref=e898]: General
820
+ - cell "2125551212" [ref=e899]:
821
+ - generic [ref=e900]: "2125551212"
822
+ - cell "10001" [ref=e901]:
823
+ - generic [ref=e902]: "10001"
824
+ - cell "United States" [ref=e903]:
825
+ - generic [ref=e904]: United States
826
+ - cell "New York" [ref=e905]:
827
+ - generic [ref=e906]: New York
828
+ - cell "Apr 19, 2023 5:45:37 PM" [ref=e907]:
829
+ - generic [ref=e908]: Apr 19, 2023 5:45:37 PM
830
+ - row "John Lee john.lee@yahoo.com General 3125556789 60611 United States Illinois Apr 19, 2023 5:45:21 PM" [ref=e909]:
831
+ - cell [ref=e910]:
832
+ - checkbox [ref=e912] [cursor=pointer]
833
+ - cell "John Lee" [ref=e914]:
834
+ - generic [ref=e915]: John Lee
835
+ - cell "john.lee@yahoo.com" [ref=e916]:
836
+ - generic [ref=e917]: john.lee@yahoo.com
837
+ - cell "General" [ref=e918]:
838
+ - generic [ref=e919]: General
839
+ - cell "3125556789" [ref=e920]:
840
+ - generic [ref=e921]: "3125556789"
841
+ - cell "60611" [ref=e922]:
842
+ - generic [ref=e923]: "60611"
843
+ - cell "United States" [ref=e924]:
844
+ - generic [ref=e925]: United States
845
+ - cell "Illinois" [ref=e926]:
846
+ - generic [ref=e927]: Illinois
847
+ - cell "Apr 19, 2023 5:45:21 PM" [ref=e928]:
848
+ - generic [ref=e929]: Apr 19, 2023 5:45:21 PM
849
+ - row "John Smith john.smith.xyz@gmail.com General 2058812302 35213 United States Alabama Apr 19, 2023 5:44:57 PM" [ref=e930]:
850
+ - cell [ref=e931]:
851
+ - checkbox [ref=e933] [cursor=pointer]
852
+ - cell "John Smith" [ref=e935]:
853
+ - generic [ref=e936]: John Smith
854
+ - cell "john.smith.xyz@gmail.com" [ref=e937]:
855
+ - generic [ref=e938]: john.smith.xyz@gmail.com
856
+ - cell "General" [ref=e939]:
857
+ - generic [ref=e940]: General
858
+ - cell "2058812302" [ref=e941]:
859
+ - generic [ref=e942]: "2058812302"
860
+ - cell "35213" [ref=e943]:
861
+ - generic [ref=e944]: "35213"
862
+ - cell "United States" [ref=e945]:
863
+ - generic [ref=e946]: United States
864
+ - cell "Alabama" [ref=e947]:
865
+ - generic [ref=e948]: Alabama
866
+ - cell "Apr 19, 2023 5:44:57 PM" [ref=e949]:
867
+ - generic [ref=e950]: Apr 19, 2023 5:44:57 PM
868
+ - row "John Smith john.smith@yahoo.com General 2145551212 75201 United States Texas Apr 23, 2023 12:13:22 AM" [ref=e951]:
869
+ - cell [ref=e952]:
870
+ - checkbox [ref=e954] [cursor=pointer]
871
+ - cell "John Smith" [ref=e956]:
872
+ - generic [ref=e957]: John Smith
873
+ - cell "john.smith@yahoo.com" [ref=e958]:
874
+ - generic [ref=e959]: john.smith@yahoo.com
875
+ - cell "General" [ref=e960]:
876
+ - generic [ref=e961]: General
877
+ - cell "2145551212" [ref=e962]:
878
+ - generic [ref=e963]: "2145551212"
879
+ - cell "75201" [ref=e964]:
880
+ - generic [ref=e965]: "75201"
881
+ - cell "United States" [ref=e966]:
882
+ - generic [ref=e967]: United States
883
+ - cell "Texas" [ref=e968]:
884
+ - generic [ref=e969]: Texas
885
+ - cell "Apr 23, 2023 12:13:22 AM" [ref=e970]:
886
+ - generic [ref=e971]: Apr 23, 2023 12:13:22 AM
887
+ - row "Julia Williams jla_7781@gmail.com General 4567890123 10065 United States New York Apr 19, 2023 5:45:11 PM" [ref=e972]:
888
+ - cell [ref=e973]:
889
+ - checkbox [ref=e975] [cursor=pointer]
890
+ - cell "Julia Williams" [ref=e977]:
891
+ - generic [ref=e978]: Julia Williams
892
+ - cell "jla_7781@gmail.com" [ref=e979]:
893
+ - generic [ref=e980]: jla_7781@gmail.com
894
+ - cell "General" [ref=e981]:
895
+ - generic [ref=e982]: General
896
+ - cell "4567890123" [ref=e983]:
897
+ - generic [ref=e984]: "4567890123"
898
+ - cell "10065" [ref=e985]:
899
+ - generic [ref=e986]: "10065"
900
+ - cell "United States" [ref=e987]:
901
+ - generic [ref=e988]: United States
902
+ - cell "New York" [ref=e989]:
903
+ - generic [ref=e990]: New York
904
+ - cell "Apr 19, 2023 5:45:11 PM" [ref=e991]:
905
+ - generic [ref=e992]: Apr 19, 2023 5:45:11 PM
906
+ - row "Julie Nguyen julie.nguyen@gmail.com General 3105551212 90210 United States California Apr 23, 2023 12:14:15 AM" [ref=e993]:
907
+ - cell [ref=e994]:
908
+ - checkbox [ref=e996] [cursor=pointer]
909
+ - cell "Julie Nguyen" [ref=e998]:
910
+ - generic [ref=e999]: Julie Nguyen
911
+ - cell "julie.nguyen@gmail.com" [ref=e1000]:
912
+ - generic [ref=e1001]: julie.nguyen@gmail.com
913
+ - cell "General" [ref=e1002]:
914
+ - generic [ref=e1003]: General
915
+ - cell "3105551212" [ref=e1004]:
916
+ - generic [ref=e1005]: "3105551212"
917
+ - cell "90210" [ref=e1006]:
918
+ - generic [ref=e1007]: "90210"
919
+ - cell "United States" [ref=e1008]:
920
+ - generic [ref=e1009]: United States
921
+ - cell "California" [ref=e1010]:
922
+ - generic [ref=e1011]: California
923
+ - cell "Apr 23, 2023 12:14:15 AM" [ref=e1012]:
924
+ - generic [ref=e1013]: Apr 23, 2023 12:14:15 AM
925
+ - row "Kate Jones kate.jones@gmail.com General 2125551212 10001 United States New York Apr 23, 2023 12:12:51 AM" [ref=e1014]:
926
+ - cell [ref=e1015]:
927
+ - checkbox [ref=e1017] [cursor=pointer]
928
+ - cell "Kate Jones" [ref=e1019]:
929
+ - generic [ref=e1020]: Kate Jones
930
+ - cell "kate.jones@gmail.com" [ref=e1021]:
931
+ - generic [ref=e1022]: kate.jones@gmail.com
932
+ - cell "General" [ref=e1023]:
933
+ - generic [ref=e1024]: General
934
+ - cell "2125551212" [ref=e1025]:
935
+ - generic [ref=e1026]: "2125551212"
936
+ - cell "10001" [ref=e1027]:
937
+ - generic [ref=e1028]: "10001"
938
+ - cell "United States" [ref=e1029]:
939
+ - generic [ref=e1030]: United States
940
+ - cell "New York" [ref=e1031]:
941
+ - generic [ref=e1032]: New York
942
+ - cell "Apr 23, 2023 12:12:51 AM" [ref=e1033]:
943
+ - generic [ref=e1034]: Apr 23, 2023 12:12:51 AM
944
+ - row "Katie Wong katie.wong@hotmail.com General 2065551212 98101 United States Washington Apr 19, 2023 5:46:37 PM" [ref=e1035]:
945
+ - cell [ref=e1036]:
946
+ - checkbox [ref=e1038] [cursor=pointer]
947
+ - cell "Katie Wong" [ref=e1040]:
948
+ - generic [ref=e1041]: Katie Wong
949
+ - cell "katie.wong@hotmail.com" [ref=e1042]:
950
+ - generic [ref=e1043]: katie.wong@hotmail.com
951
+ - cell "General" [ref=e1044]:
952
+ - generic [ref=e1045]: General
953
+ - cell "2065551212" [ref=e1046]:
954
+ - generic [ref=e1047]: "2065551212"
955
+ - cell "98101" [ref=e1048]:
956
+ - generic [ref=e1049]: "98101"
957
+ - cell "United States" [ref=e1050]:
958
+ - generic [ref=e1051]: United States
959
+ - cell "Washington" [ref=e1052]:
960
+ - generic [ref=e1053]: Washington
961
+ - cell "Apr 19, 2023 5:46:37 PM" [ref=e1054]:
962
+ - generic [ref=e1055]: Apr 19, 2023 5:46:37 PM
963
+ - row "Lily Potter harrypotterfan1@gmail.com General 7735555555 60637 United States Illinois Apr 19, 2023 5:45:47 PM" [ref=e1056]:
964
+ - cell [ref=e1057]:
965
+ - checkbox [ref=e1059] [cursor=pointer]
966
+ - cell "Lily Potter" [ref=e1061]:
967
+ - generic [ref=e1062]: Lily Potter
968
+ - cell "harrypotterfan1@gmail.com" [ref=e1063]:
969
+ - generic [ref=e1064]: harrypotterfan1@gmail.com
970
+ - cell "General" [ref=e1065]:
971
+ - generic [ref=e1066]: General
972
+ - cell "7735555555" [ref=e1067]:
973
+ - generic [ref=e1068]: "7735555555"
974
+ - cell "60637" [ref=e1069]:
975
+ - generic [ref=e1070]: "60637"
976
+ - cell "United States" [ref=e1071]:
977
+ - generic [ref=e1072]: United States
978
+ - cell "Illinois" [ref=e1073]:
979
+ - generic [ref=e1074]: Illinois
980
+ - cell "Apr 19, 2023 5:45:47 PM" [ref=e1075]:
981
+ - generic [ref=e1076]: Apr 19, 2023 5:45:47 PM
982
+ - row "Lisa Green lisa.green@hotmail.com General 2145551212 75201 United States Texas Apr 19, 2023 5:46:24 PM" [ref=e1077]:
983
+ - cell [ref=e1078]:
984
+ - checkbox [ref=e1080] [cursor=pointer]
985
+ - cell "Lisa Green" [ref=e1082]:
986
+ - generic [ref=e1083]: Lisa Green
987
+ - cell "lisa.green@hotmail.com" [ref=e1084]:
988
+ - generic [ref=e1085]: lisa.green@hotmail.com
989
+ - cell "General" [ref=e1086]:
990
+ - generic [ref=e1087]: General
991
+ - cell "2145551212" [ref=e1088]:
992
+ - generic [ref=e1089]: "2145551212"
993
+ - cell "75201" [ref=e1090]:
994
+ - generic [ref=e1091]: "75201"
995
+ - cell "United States" [ref=e1092]:
996
+ - generic [ref=e1093]: United States
997
+ - cell "Texas" [ref=e1094]:
998
+ - generic [ref=e1095]: Texas
999
+ - cell "Apr 19, 2023 5:46:24 PM" [ref=e1096]:
1000
+ - generic [ref=e1097]: Apr 19, 2023 5:46:24 PM
1001
+ - row "Lisa Kim lisa.kim@gmail.com General 7135557890 77005 United States Texas Apr 19, 2023 5:45:31 PM" [ref=e1098]:
1002
+ - cell [ref=e1099]:
1003
+ - checkbox [ref=e1101] [cursor=pointer]
1004
+ - cell "Lisa Kim" [ref=e1103]:
1005
+ - generic [ref=e1104]: Lisa Kim
1006
+ - cell "lisa.kim@gmail.com" [ref=e1105]:
1007
+ - generic [ref=e1106]: lisa.kim@gmail.com
1008
+ - cell "General" [ref=e1107]:
1009
+ - generic [ref=e1108]: General
1010
+ - cell "7135557890" [ref=e1109]:
1011
+ - generic [ref=e1110]: "7135557890"
1012
+ - cell "77005" [ref=e1111]:
1013
+ - generic [ref=e1112]: "77005"
1014
+ - cell "United States" [ref=e1113]:
1015
+ - generic [ref=e1114]: United States
1016
+ - cell "Texas" [ref=e1115]:
1017
+ - generic [ref=e1116]: Texas
1018
+ - cell "Apr 19, 2023 5:45:31 PM" [ref=e1117]:
1019
+ - generic [ref=e1118]: Apr 19, 2023 5:45:31 PM
1020
+ - row "Lucy Garcia artsygal123@hotmail.com General 3035555555 80202 United States Colorado Apr 19, 2023 5:45:54 PM" [ref=e1119]:
1021
+ - cell [ref=e1120]:
1022
+ - checkbox [ref=e1122] [cursor=pointer]
1023
+ - cell "Lucy Garcia" [ref=e1124]:
1024
+ - generic [ref=e1125]: Lucy Garcia
1025
+ - cell "artsygal123@hotmail.com" [ref=e1126]:
1026
+ - generic [ref=e1127]: artsygal123@hotmail.com
1027
+ - cell "General" [ref=e1128]:
1028
+ - generic [ref=e1129]: General
1029
+ - cell "3035555555" [ref=e1130]:
1030
+ - generic [ref=e1131]: "3035555555"
1031
+ - cell "80202" [ref=e1132]:
1032
+ - generic [ref=e1133]: "80202"
1033
+ - cell "United States" [ref=e1134]:
1034
+ - generic [ref=e1135]: United States
1035
+ - cell "Colorado" [ref=e1136]:
1036
+ - generic [ref=e1137]: Colorado
1037
+ - cell "Apr 19, 2023 5:45:54 PM" [ref=e1138]:
1038
+ - generic [ref=e1139]: Apr 19, 2023 5:45:54 PM
1039
+ - row "Mary Martin marym@gmail.com General 3059876543 33139 United States Florida Apr 19, 2023 5:45:17 PM" [ref=e1140]:
1040
+ - cell [ref=e1141]:
1041
+ - checkbox [ref=e1143] [cursor=pointer]
1042
+ - cell "Mary Martin" [ref=e1145]:
1043
+ - generic [ref=e1146]: Mary Martin
1044
+ - cell "marym@gmail.com" [ref=e1147]:
1045
+ - generic [ref=e1148]: marym@gmail.com
1046
+ - cell "General" [ref=e1149]:
1047
+ - generic [ref=e1150]: General
1048
+ - cell "3059876543" [ref=e1151]:
1049
+ - generic [ref=e1152]: "3059876543"
1050
+ - cell "33139" [ref=e1153]:
1051
+ - generic [ref=e1154]: "33139"
1052
+ - cell "United States" [ref=e1155]:
1053
+ - generic [ref=e1156]: United States
1054
+ - cell "Florida" [ref=e1157]:
1055
+ - generic [ref=e1158]: Florida
1056
+ - cell "Apr 19, 2023 5:45:17 PM" [ref=e1159]:
1057
+ - generic [ref=e1160]: Apr 19, 2023 5:45:17 PM
1058
+ - row "Matt Baker matt.baker@yahoo.com General 4045551234 30308 United States Georgia Apr 19, 2023 5:45:34 PM" [ref=e1161]:
1059
+ - cell [ref=e1162]:
1060
+ - checkbox [ref=e1164] [cursor=pointer]
1061
+ - cell "Matt Baker" [ref=e1166]:
1062
+ - generic [ref=e1167]: Matt Baker
1063
+ - cell "matt.baker@yahoo.com" [ref=e1168]:
1064
+ - generic [ref=e1169]: matt.baker@yahoo.com
1065
+ - cell "General" [ref=e1170]:
1066
+ - generic [ref=e1171]: General
1067
+ - cell "4045551234" [ref=e1172]:
1068
+ - generic [ref=e1173]: "4045551234"
1069
+ - cell "30308" [ref=e1174]:
1070
+ - generic [ref=e1175]: "30308"
1071
+ - cell "United States" [ref=e1176]:
1072
+ - generic [ref=e1177]: United States
1073
+ - cell "Georgia" [ref=e1178]:
1074
+ - generic [ref=e1179]: Georgia
1075
+ - cell "Apr 19, 2023 5:45:34 PM" [ref=e1180]:
1076
+ - generic [ref=e1181]: Apr 19, 2023 5:45:34 PM
1077
+ - row "Matthew Kim matthew.kim@gmail.com General 2015551212 07030 United States New Jersey Apr 23, 2023 12:14:19 AM" [ref=e1182]:
1078
+ - cell [ref=e1183]:
1079
+ - checkbox [ref=e1185] [cursor=pointer]
1080
+ - cell "Matthew Kim" [ref=e1187]:
1081
+ - generic [ref=e1188]: Matthew Kim
1082
+ - cell "matthew.kim@gmail.com" [ref=e1189]:
1083
+ - generic [ref=e1190]: matthew.kim@gmail.com
1084
+ - cell "General" [ref=e1191]:
1085
+ - generic [ref=e1192]: General
1086
+ - cell "2015551212" [ref=e1193]:
1087
+ - generic [ref=e1194]: "2015551212"
1088
+ - cell "07030" [ref=e1195]:
1089
+ - generic [ref=e1196]: "07030"
1090
+ - cell "United States" [ref=e1197]:
1091
+ - generic [ref=e1198]: United States
1092
+ - cell "New Jersey" [ref=e1199]:
1093
+ - generic [ref=e1200]: New Jersey
1094
+ - cell "Apr 23, 2023 12:14:19 AM" [ref=e1201]:
1095
+ - generic [ref=e1202]: Apr 23, 2023 12:14:19 AM
1096
+ - row "Maxwell Baker maxwell.baker@yahoo.com General 3125551212 60601 United States Illinois Apr 23, 2023 12:13:01 AM" [ref=e1203]:
1097
+ - cell [ref=e1204]:
1098
+ - checkbox [ref=e1206] [cursor=pointer]
1099
+ - cell "Maxwell Baker" [ref=e1208]:
1100
+ - generic [ref=e1209]: Maxwell Baker
1101
+ - cell "maxwell.baker@yahoo.com" [ref=e1210]:
1102
+ - generic [ref=e1211]: maxwell.baker@yahoo.com
1103
+ - cell "General" [ref=e1212]:
1104
+ - generic [ref=e1213]: General
1105
+ - cell "3125551212" [ref=e1214]:
1106
+ - generic [ref=e1215]: "3125551212"
1107
+ - cell "60601" [ref=e1216]:
1108
+ - generic [ref=e1217]: "60601"
1109
+ - cell "United States" [ref=e1218]:
1110
+ - generic [ref=e1219]: United States
1111
+ - cell "Illinois" [ref=e1220]:
1112
+ - generic [ref=e1221]: Illinois
1113
+ - cell "Apr 23, 2023 12:13:01 AM" [ref=e1222]:
1114
+ - generic [ref=e1223]: Apr 23, 2023 12:13:01 AM
1115
+ - row "Michael Nguyen michael.nguyen@yahoo.com General 3125551212 60606 United States Illinois Apr 19, 2023 5:46:27 PM" [ref=e1224]:
1116
+ - cell [ref=e1225]:
1117
+ - checkbox [ref=e1227] [cursor=pointer]
1118
+ - cell "Michael Nguyen" [ref=e1229]:
1119
+ - generic [ref=e1230]: Michael Nguyen
1120
+ - cell "michael.nguyen@yahoo.com" [ref=e1231]:
1121
+ - generic [ref=e1232]: michael.nguyen@yahoo.com
1122
+ - cell "General" [ref=e1233]:
1123
+ - generic [ref=e1234]: General
1124
+ - cell "3125551212" [ref=e1235]:
1125
+ - generic [ref=e1236]: "3125551212"
1126
+ - cell "60606" [ref=e1237]:
1127
+ - generic [ref=e1238]: "60606"
1128
+ - cell "United States" [ref=e1239]:
1129
+ - generic [ref=e1240]: United States
1130
+ - cell "Illinois" [ref=e1241]:
1131
+ - generic [ref=e1242]: Illinois
1132
+ - cell "Apr 19, 2023 5:46:27 PM" [ref=e1243]:
1133
+ - generic [ref=e1244]: Apr 19, 2023 5:46:27 PM
1134
+ - row "Natalie Kim natalie.kim@gmail.com General 2015551212 07030 United States New Jersey Apr 23, 2023 12:14:49 AM" [ref=e1245]:
1135
+ - cell [ref=e1246]:
1136
+ - checkbox [ref=e1248] [cursor=pointer]
1137
+ - cell "Natalie Kim" [ref=e1250]:
1138
+ - generic [ref=e1251]: Natalie Kim
1139
+ - cell "natalie.kim@gmail.com" [ref=e1252]:
1140
+ - generic [ref=e1253]: natalie.kim@gmail.com
1141
+ - cell "General" [ref=e1254]:
1142
+ - generic [ref=e1255]: General
1143
+ - cell "2015551212" [ref=e1256]:
1144
+ - generic [ref=e1257]: "2015551212"
1145
+ - cell "07030" [ref=e1258]:
1146
+ - generic [ref=e1259]: "07030"
1147
+ - cell "United States" [ref=e1260]:
1148
+ - generic [ref=e1261]: United States
1149
+ - cell "New Jersey" [ref=e1262]:
1150
+ - generic [ref=e1263]: New Jersey
1151
+ - cell "Apr 23, 2023 12:14:49 AM" [ref=e1264]:
1152
+ - generic [ref=e1265]: Apr 23, 2023 12:14:49 AM
1153
+ - row "Nathan Chen nathan.chen@gmail.com General 3035551212 80202 United States Colorado Apr 23, 2023 12:14:36 AM" [ref=e1266]:
1154
+ - cell [ref=e1267]:
1155
+ - checkbox [ref=e1269] [cursor=pointer]
1156
+ - cell "Nathan Chen" [ref=e1271]:
1157
+ - generic [ref=e1272]: Nathan Chen
1158
+ - cell "nathan.chen@gmail.com" [ref=e1273]:
1159
+ - generic [ref=e1274]: nathan.chen@gmail.com
1160
+ - cell "General" [ref=e1275]:
1161
+ - generic [ref=e1276]: General
1162
+ - cell "3035551212" [ref=e1277]:
1163
+ - generic [ref=e1278]: "3035551212"
1164
+ - cell "80202" [ref=e1279]:
1165
+ - generic [ref=e1280]: "80202"
1166
+ - cell "United States" [ref=e1281]:
1167
+ - generic [ref=e1282]: United States
1168
+ - cell "Colorado" [ref=e1283]:
1169
+ - generic [ref=e1284]: Colorado
1170
+ - cell "Apr 23, 2023 12:14:36 AM" [ref=e1285]:
1171
+ - generic [ref=e1286]: Apr 23, 2023 12:14:36 AM
1172
+ - row "Olivia Jackson olivia.jackson@gmail.com General 3035551212 80202 United States Colorado Apr 23, 2023 12:13:57 AM" [ref=e1287]:
1173
+ - cell [ref=e1288]:
1174
+ - checkbox [ref=e1290] [cursor=pointer]
1175
+ - cell "Olivia Jackson" [ref=e1292]:
1176
+ - generic [ref=e1293]: Olivia Jackson
1177
+ - cell "olivia.jackson@gmail.com" [ref=e1294]:
1178
+ - generic [ref=e1295]: olivia.jackson@gmail.com
1179
+ - cell "General" [ref=e1296]:
1180
+ - generic [ref=e1297]: General
1181
+ - cell "3035551212" [ref=e1298]:
1182
+ - generic [ref=e1299]: "3035551212"
1183
+ - cell "80202" [ref=e1300]:
1184
+ - generic [ref=e1301]: "80202"
1185
+ - cell "United States" [ref=e1302]:
1186
+ - generic [ref=e1303]: United States
1187
+ - cell "Colorado" [ref=e1304]:
1188
+ - generic [ref=e1305]: Colorado
1189
+ - cell "Apr 23, 2023 12:13:57 AM" [ref=e1306]:
1190
+ - generic [ref=e1307]: Apr 23, 2023 12:13:57 AM
1191
+ - row "Olivia Lee soccerfanatic22@gmail.com General 7135555555 77002 United States Texas Apr 19, 2023 5:45:57 PM" [ref=e1308]:
1192
+ - cell [ref=e1309]:
1193
+ - checkbox [ref=e1311] [cursor=pointer]
1194
+ - cell "Olivia Lee" [ref=e1313]:
1195
+ - generic [ref=e1314]: Olivia Lee
1196
+ - cell "soccerfanatic22@gmail.com" [ref=e1315]:
1197
+ - generic [ref=e1316]: soccerfanatic22@gmail.com
1198
+ - cell "General" [ref=e1317]:
1199
+ - generic [ref=e1318]: General
1200
+ - cell "7135555555" [ref=e1319]:
1201
+ - generic [ref=e1320]: "7135555555"
1202
+ - cell "77002" [ref=e1321]:
1203
+ - generic [ref=e1322]: "77002"
1204
+ - cell "United States" [ref=e1323]:
1205
+ - generic [ref=e1324]: United States
1206
+ - cell "Texas" [ref=e1325]:
1207
+ - generic [ref=e1326]: Texas
1208
+ - cell "Apr 19, 2023 5:45:57 PM" [ref=e1327]:
1209
+ - generic [ref=e1328]: Apr 19, 2023 5:45:57 PM
1210
+ - row "Robert Johnson robert.johnson@gmail.com General 6175551212 02108 United States Massachusetts Apr 23, 2023 12:13:36 AM" [ref=e1329]:
1211
+ - cell [ref=e1330]:
1212
+ - checkbox [ref=e1332] [cursor=pointer]
1213
+ - cell "Robert Johnson" [ref=e1334]:
1214
+ - generic [ref=e1335]: Robert Johnson
1215
+ - cell "robert.johnson@gmail.com" [ref=e1336]:
1216
+ - generic [ref=e1337]: robert.johnson@gmail.com
1217
+ - cell "General" [ref=e1338]:
1218
+ - generic [ref=e1339]: General
1219
+ - cell "6175551212" [ref=e1340]:
1220
+ - generic [ref=e1341]: "6175551212"
1221
+ - cell "02108" [ref=e1342]:
1222
+ - generic [ref=e1343]: "02108"
1223
+ - cell "United States" [ref=e1344]:
1224
+ - generic [ref=e1345]: United States
1225
+ - cell "Massachusetts" [ref=e1346]:
1226
+ - generic [ref=e1347]: Massachusetts
1227
+ - cell "Apr 23, 2023 12:13:36 AM" [ref=e1348]:
1228
+ - generic [ref=e1349]: Apr 23, 2023 12:13:36 AM
1229
+ - row "Roberto Lopez roberto.lopez@hotmail.com General 2125551212 10001 United States New York Apr 23, 2023 12:13:12 AM" [ref=e1350]:
1230
+ - cell [ref=e1351]:
1231
+ - checkbox [ref=e1353] [cursor=pointer]
1232
+ - cell "Roberto Lopez" [ref=e1355]:
1233
+ - generic [ref=e1356]: Roberto Lopez
1234
+ - cell "roberto.lopez@hotmail.com" [ref=e1357]:
1235
+ - generic [ref=e1358]: roberto.lopez@hotmail.com
1236
+ - cell "General" [ref=e1359]:
1237
+ - generic [ref=e1360]: General
1238
+ - cell "2125551212" [ref=e1361]:
1239
+ - generic [ref=e1362]: "2125551212"
1240
+ - cell "10001" [ref=e1363]:
1241
+ - generic [ref=e1364]: "10001"
1242
+ - cell "United States" [ref=e1365]:
1243
+ - generic [ref=e1366]: United States
1244
+ - cell "New York" [ref=e1367]:
1245
+ - generic [ref=e1368]: New York
1246
+ - cell "Apr 23, 2023 12:13:12 AM" [ref=e1369]:
1247
+ - generic [ref=e1370]: Apr 23, 2023 12:13:12 AM
1248
+ - row "Ryan Tanaka ryan.tanaka@yahoo.com General 8085551212 96813 United States Hawaii Apr 23, 2023 12:14:10 AM" [ref=e1371]:
1249
+ - cell [ref=e1372]:
1250
+ - checkbox [ref=e1374] [cursor=pointer]
1251
+ - cell "Ryan Tanaka" [ref=e1376]:
1252
+ - generic [ref=e1377]: Ryan Tanaka
1253
+ - cell "ryan.tanaka@yahoo.com" [ref=e1378]:
1254
+ - generic [ref=e1379]: ryan.tanaka@yahoo.com
1255
+ - cell "General" [ref=e1380]:
1256
+ - generic [ref=e1381]: General
1257
+ - cell "8085551212" [ref=e1382]:
1258
+ - generic [ref=e1383]: "8085551212"
1259
+ - cell "96813" [ref=e1384]:
1260
+ - generic [ref=e1385]: "96813"
1261
+ - cell "United States" [ref=e1386]:
1262
+ - generic [ref=e1387]: United States
1263
+ - cell "Hawaii" [ref=e1388]:
1264
+ - generic [ref=e1389]: Hawaii
1265
+ - cell "Apr 23, 2023 12:14:10 AM" [ref=e1390]:
1266
+ - generic [ref=e1391]: Apr 23, 2023 12:14:10 AM
1267
+ - row "Sam Wilson sam.wilson@yahoo.com General 3105551212 90210 United States California Apr 23, 2023 12:12:47 AM" [ref=e1392]:
1268
+ - cell [ref=e1393]:
1269
+ - checkbox [ref=e1395] [cursor=pointer]
1270
+ - cell "Sam Wilson" [ref=e1397]:
1271
+ - generic [ref=e1398]: Sam Wilson
1272
+ - cell "sam.wilson@yahoo.com" [ref=e1399]:
1273
+ - generic [ref=e1400]: sam.wilson@yahoo.com
1274
+ - cell "General" [ref=e1401]:
1275
+ - generic [ref=e1402]: General
1276
+ - cell "3105551212" [ref=e1403]:
1277
+ - generic [ref=e1404]: "3105551212"
1278
+ - cell "90210" [ref=e1405]:
1279
+ - generic [ref=e1406]: "90210"
1280
+ - cell "United States" [ref=e1407]:
1281
+ - generic [ref=e1408]: United States
1282
+ - cell "California" [ref=e1409]:
1283
+ - generic [ref=e1410]: California
1284
+ - cell "Apr 23, 2023 12:12:47 AM" [ref=e1411]:
1285
+ - generic [ref=e1412]: Apr 23, 2023 12:12:47 AM
1286
+ - row "Samantha Jones coolcat321@hotmail.com General 3055551212 33139 United States Florida Apr 19, 2023 5:45:44 PM" [ref=e1413]:
1287
+ - cell [ref=e1414]:
1288
+ - checkbox [ref=e1416] [cursor=pointer]
1289
+ - cell "Samantha Jones" [ref=e1418]:
1290
+ - generic [ref=e1419]: Samantha Jones
1291
+ - cell "coolcat321@hotmail.com" [ref=e1420]:
1292
+ - generic [ref=e1421]: coolcat321@hotmail.com
1293
+ - cell "General" [ref=e1422]:
1294
+ - generic [ref=e1423]: General
1295
+ - cell "3055551212" [ref=e1424]:
1296
+ - generic [ref=e1425]: "3055551212"
1297
+ - cell "33139" [ref=e1426]:
1298
+ - generic [ref=e1427]: "33139"
1299
+ - cell "United States" [ref=e1428]:
1300
+ - generic [ref=e1429]: United States
1301
+ - cell "Florida" [ref=e1430]:
1302
+ - generic [ref=e1431]: Florida
1303
+ - cell "Apr 19, 2023 5:45:44 PM" [ref=e1432]:
1304
+ - generic [ref=e1433]: Apr 19, 2023 5:45:44 PM
1305
+ - row "Samantha Nguyen samantha.nguyen@gmail.com General 2145551212 75201 United States Texas Apr 19, 2023 5:46:47 PM" [ref=e1434]:
1306
+ - cell [ref=e1435]:
1307
+ - checkbox [ref=e1437] [cursor=pointer]
1308
+ - cell "Samantha Nguyen" [ref=e1439]:
1309
+ - generic [ref=e1440]: Samantha Nguyen
1310
+ - cell "samantha.nguyen@gmail.com" [ref=e1441]:
1311
+ - generic [ref=e1442]: samantha.nguyen@gmail.com
1312
+ - cell "General" [ref=e1443]:
1313
+ - generic [ref=e1444]: General
1314
+ - cell "2145551212" [ref=e1445]:
1315
+ - generic [ref=e1446]: "2145551212"
1316
+ - cell "75201" [ref=e1447]:
1317
+ - generic [ref=e1448]: "75201"
1318
+ - cell "United States" [ref=e1449]:
1319
+ - generic [ref=e1450]: United States
1320
+ - cell "Texas" [ref=e1451]:
1321
+ - generic [ref=e1452]: Texas
1322
+ - cell "Apr 19, 2023 5:46:47 PM" [ref=e1453]:
1323
+ - generic [ref=e1454]: Apr 19, 2023 5:46:47 PM
1324
+ - row "Samantha Wu samantha.wu@yahoo.com General 3055551212 33139 United States Florida Apr 23, 2023 12:13:33 AM" [ref=e1455]:
1325
+ - cell [ref=e1456]:
1326
+ - checkbox [ref=e1458] [cursor=pointer]
1327
+ - cell "Samantha Wu" [ref=e1460]:
1328
+ - generic [ref=e1461]: Samantha Wu
1329
+ - cell "samantha.wu@yahoo.com" [ref=e1462]:
1330
+ - generic [ref=e1463]: samantha.wu@yahoo.com
1331
+ - cell "General" [ref=e1464]:
1332
+ - generic [ref=e1465]: General
1333
+ - cell "3055551212" [ref=e1466]:
1334
+ - generic [ref=e1467]: "3055551212"
1335
+ - cell "33139" [ref=e1468]:
1336
+ - generic [ref=e1469]: "33139"
1337
+ - cell "United States" [ref=e1470]:
1338
+ - generic [ref=e1471]: United States
1339
+ - cell "Florida" [ref=e1472]:
1340
+ - generic [ref=e1473]: Florida
1341
+ - cell "Apr 23, 2023 12:13:33 AM" [ref=e1474]:
1342
+ - generic [ref=e1475]: Apr 23, 2023 12:13:33 AM
1343
+ - row "Sarah Miller helloworld@yahoo.com General 5107819902 94602 United States California Apr 19, 2023 5:45:07 PM" [ref=e1476]:
1344
+ - cell [ref=e1477]:
1345
+ - checkbox [ref=e1479] [cursor=pointer]
1346
+ - cell "Sarah Miller" [ref=e1481]:
1347
+ - generic [ref=e1482]: Sarah Miller
1348
+ - cell "helloworld@yahoo.com" [ref=e1483]:
1349
+ - generic [ref=e1484]: helloworld@yahoo.com
1350
+ - cell "General" [ref=e1485]:
1351
+ - generic [ref=e1486]: General
1352
+ - cell "5107819902" [ref=e1487]:
1353
+ - generic [ref=e1488]: "5107819902"
1354
+ - cell "94602" [ref=e1489]:
1355
+ - generic [ref=e1490]: "94602"
1356
+ - cell "United States" [ref=e1491]:
1357
+ - generic [ref=e1492]: United States
1358
+ - cell "California" [ref=e1493]:
1359
+ - generic [ref=e1494]: California
1360
+ - cell "Apr 19, 2023 5:45:07 PM" [ref=e1495]:
1361
+ - generic [ref=e1496]: Apr 19, 2023 5:45:07 PM
1362
+ - row "Sean Miller sean.miller@gmail.com General 8015551212 84101 United States Utah Apr 23, 2023 12:14:53 AM" [ref=e1497]:
1363
+ - cell [ref=e1498]:
1364
+ - checkbox [ref=e1500] [cursor=pointer]
1365
+ - cell "Sean Miller" [ref=e1502]:
1366
+ - generic [ref=e1503]: Sean Miller
1367
+ - cell "sean.miller@gmail.com" [ref=e1504]:
1368
+ - generic [ref=e1505]: sean.miller@gmail.com
1369
+ - cell "General" [ref=e1506]:
1370
+ - generic [ref=e1507]: General
1371
+ - cell "8015551212" [ref=e1508]:
1372
+ - generic [ref=e1509]: "8015551212"
1373
+ - cell "84101" [ref=e1510]:
1374
+ - generic [ref=e1511]: "84101"
1375
+ - cell "United States" [ref=e1512]:
1376
+ - generic [ref=e1513]: United States
1377
+ - cell "Utah" [ref=e1514]:
1378
+ - generic [ref=e1515]: Utah
1379
+ - cell "Apr 23, 2023 12:14:53 AM" [ref=e1516]:
1380
+ - generic [ref=e1517]: Apr 23, 2023 12:14:53 AM
1381
+ - row "Sophia Kim sophia.kim@gmail.com General 4105551212 21201 United States Maryland Apr 23, 2023 12:13:40 AM" [ref=e1518]:
1382
+ - cell [ref=e1519]:
1383
+ - checkbox [ref=e1521] [cursor=pointer]
1384
+ - cell "Sophia Kim" [ref=e1523]:
1385
+ - generic [ref=e1524]: Sophia Kim
1386
+ - cell "sophia.kim@gmail.com" [ref=e1525]:
1387
+ - generic [ref=e1526]: sophia.kim@gmail.com
1388
+ - cell "General" [ref=e1527]:
1389
+ - generic [ref=e1528]: General
1390
+ - cell "4105551212" [ref=e1529]:
1391
+ - generic [ref=e1530]: "4105551212"
1392
+ - cell "21201" [ref=e1531]:
1393
+ - generic [ref=e1532]: "21201"
1394
+ - cell "United States" [ref=e1533]:
1395
+ - generic [ref=e1534]: United States
1396
+ - cell "Maryland" [ref=e1535]:
1397
+ - generic [ref=e1536]: Maryland
1398
+ - cell "Apr 23, 2023 12:13:40 AM" [ref=e1537]:
1399
+ - generic [ref=e1538]: Apr 23, 2023 12:13:40 AM
1400
+ - row "Sophia Young sophia.young@gmail.com General 6175551212 02110 United States Massachusetts Apr 23, 2023 12:14:05 AM" [ref=e1539]:
1401
+ - cell [ref=e1540]:
1402
+ - checkbox [ref=e1542] [cursor=pointer]
1403
+ - cell "Sophia Young" [ref=e1544]:
1404
+ - generic [ref=e1545]: Sophia Young
1405
+ - cell "sophia.young@gmail.com" [ref=e1546]:
1406
+ - generic [ref=e1547]: sophia.young@gmail.com
1407
+ - cell "General" [ref=e1548]:
1408
+ - generic [ref=e1549]: General
1409
+ - cell "6175551212" [ref=e1550]:
1410
+ - generic [ref=e1551]: "6175551212"
1411
+ - cell "02110" [ref=e1552]:
1412
+ - generic [ref=e1553]: "02110"
1413
+ - cell "United States" [ref=e1554]:
1414
+ - generic [ref=e1555]: United States
1415
+ - cell "Massachusetts" [ref=e1556]:
1416
+ - generic [ref=e1557]: Massachusetts
1417
+ - cell "Apr 23, 2023 12:14:05 AM" [ref=e1558]:
1418
+ - generic [ref=e1559]: Apr 23, 2023 12:14:05 AM
1419
+ - row "Sophie Taylor fashionista88@gmail.com General 3055555555 33130 United States Florida Apr 19, 2023 5:46:04 PM" [ref=e1560]:
1420
+ - cell [ref=e1561]:
1421
+ - checkbox [ref=e1563] [cursor=pointer]
1422
+ - cell "Sophie Taylor" [ref=e1565]:
1423
+ - generic [ref=e1566]: Sophie Taylor
1424
+ - cell "fashionista88@gmail.com" [ref=e1567]:
1425
+ - generic [ref=e1568]: fashionista88@gmail.com
1426
+ - cell "General" [ref=e1569]:
1427
+ - generic [ref=e1570]: General
1428
+ - cell "3055555555" [ref=e1571]:
1429
+ - generic [ref=e1572]: "3055555555"
1430
+ - cell "33130" [ref=e1573]:
1431
+ - generic [ref=e1574]: "33130"
1432
+ - cell "United States" [ref=e1575]:
1433
+ - generic [ref=e1576]: United States
1434
+ - cell "Florida" [ref=e1577]:
1435
+ - generic [ref=e1578]: Florida
1436
+ - cell "Apr 19, 2023 5:46:04 PM" [ref=e1579]:
1437
+ - generic [ref=e1580]: Apr 19, 2023 5:46:04 PM
1438
+ - row "Veronica Costello roni_cost@example.com General (555) 229-3326 49628-7978 United States Michigan Apr 19, 2023 12:15:35 PM" [ref=e1581]:
1439
+ - cell [ref=e1582]:
1440
+ - checkbox [ref=e1584] [cursor=pointer]
1441
+ - cell "Veronica Costello" [ref=e1586]:
1442
+ - generic [ref=e1587]: Veronica Costello
1443
+ - cell "roni_cost@example.com" [ref=e1588]:
1444
+ - generic [ref=e1589]: roni_cost@example.com
1445
+ - cell "General" [ref=e1590]:
1446
+ - generic [ref=e1591]: General
1447
+ - cell "(555) 229-3326" [ref=e1592]:
1448
+ - generic [ref=e1593]: (555) 229-3326
1449
+ - cell "49628-7978" [ref=e1594]:
1450
+ - generic [ref=e1595]: 49628-7978
1451
+ - cell "United States" [ref=e1596]:
1452
+ - generic [ref=e1597]: United States
1453
+ - cell "Michigan" [ref=e1598]:
1454
+ - generic [ref=e1599]: Michigan
1455
+ - cell "Apr 19, 2023 12:15:35 PM" [ref=e1600]:
1456
+ - generic [ref=e1601]: Apr 19, 2023 12:15:35 PM
1457
+ - row "William Chang william.chang@hotmail.com General 2065551212 98101 United States Washington Apr 23, 2023 12:13:44 AM" [ref=e1602]:
1458
+ - cell [ref=e1603]:
1459
+ - checkbox [ref=e1605] [cursor=pointer]
1460
+ - cell "William Chang" [ref=e1607]:
1461
+ - generic [ref=e1608]: William Chang
1462
+ - cell "william.chang@hotmail.com" [ref=e1609]:
1463
+ - generic [ref=e1610]: william.chang@hotmail.com
1464
+ - cell "General" [ref=e1611]:
1465
+ - generic [ref=e1612]: General
1466
+ - cell "2065551212" [ref=e1613]:
1467
+ - generic [ref=e1614]: "2065551212"
1468
+ - cell "98101" [ref=e1615]:
1469
+ - generic [ref=e1616]: "98101"
1470
+ - cell "United States" [ref=e1617]:
1471
+ - generic [ref=e1618]: United States
1472
+ - cell "Washington" [ref=e1619]:
1473
+ - generic [ref=e1620]: Washington
1474
+ - cell "Apr 23, 2023 12:13:44 AM" [ref=e1621]:
1475
+ - generic [ref=e1622]: Apr 23, 2023 12:13:44 AM
1476
+ - contentinfo [ref=e1623]:
1477
+ - generic [ref=e1625]:
1478
+ - paragraph [ref=e1626]:
1479
+ - link "" [ref=e1627] [cursor=pointer]:
1480
+ - /url: http://magento.com
1481
+ - text: Copyright © 2026 Magento Commerce Inc. All rights reserved.
1482
+ - generic [ref=e1628]:
1483
+ - paragraph [ref=e1629]:
1484
+ - strong [ref=e1630]: Magento
1485
+ - text: ver. 2.4.6
1486
+ - link "Privacy Policy" [ref=e1631] [cursor=pointer]:
1487
+ - /url: https://www.adobe.com/privacy/policy.html
1488
+ - text: "|"
1489
+ - link "Account Activity" [ref=e1632] [cursor=pointer]:
1490
+ - /url: http://localhost:7787/admin/security/session/activity/
1491
+ - text: "|"
1492
+ - link "Report an Issue" [ref=e1633] [cursor=pointer]:
1493
+ - /url: https://github.com/magento/magento2/issues
1494
+ - text: ‹ ›
fitness-search.yml ADDED
@@ -0,0 +1,78 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ - generic [ref=e1]:
2
+ - generic [ref=e2]:
3
+ - link "Magento Admin Panel" [ref=e3] [cursor=pointer]:
4
+ - /url: http://localhost:7789/admin/admin/
5
+ - img "Magento Admin Panel" [ref=e4]
6
+ - navigation [ref=e5]:
7
+ - menubar [ref=e6]:
8
+ - listitem [ref=e7]:
9
+ - link " Dashboard" [ref=e8] [cursor=pointer]:
10
+ - /url: http://localhost:7789/admin/admin/dashboard/
11
+ - listitem [ref=e9]:
12
+ - link " Sales" [ref=e10] [cursor=pointer]:
13
+ - /url: "#"
14
+ - listitem [ref=e11]:
15
+ - link " Catalog" [ref=e12] [cursor=pointer]:
16
+ - /url: "#"
17
+ - listitem [ref=e13]:
18
+ - link " Customers" [ref=e14] [cursor=pointer]:
19
+ - /url: "#"
20
+ - listitem [ref=e15]:
21
+ - link " Marketing" [ref=e16] [cursor=pointer]:
22
+ - /url: "#"
23
+ - listitem [ref=e17]:
24
+ - link " Content" [ref=e18] [cursor=pointer]:
25
+ - /url: "#"
26
+ - listitem [ref=e19]:
27
+ - link " Reports" [ref=e20] [cursor=pointer]:
28
+ - /url: "#"
29
+ - listitem [ref=e21]:
30
+ - link " Stores" [ref=e22] [cursor=pointer]:
31
+ - /url: "#"
32
+ - listitem [ref=e23]:
33
+ - link " System" [ref=e24] [cursor=pointer]:
34
+ - /url: "#"
35
+ - listitem [ref=e25]:
36
+ - link " Find Partners & Extensions" [ref=e26] [cursor=pointer]:
37
+ - /url: http://localhost:7789/admin/marketplace/index/
38
+ - generic [ref=e27]:
39
+ - banner [ref=e29]:
40
+ - heading "Products" [level=1] [ref=e32]
41
+ - generic [ref=e33]:
42
+ - link " admin" [ref=e35] [cursor=pointer]:
43
+ - /url: http://localhost:7789/admin/admin/system_account/index/
44
+ - text: 
45
+ - generic [ref=e37]: admin
46
+ - link "" [ref=e39] [cursor=pointer]:
47
+ - /url: http://localhost:7789/admin/admin/notification/index/
48
+ - generic:
49
+ - generic
50
+ - main [ref=e42]:
51
+ - generic "Add Product" [ref=e45]:
52
+ - button "Add Product" [ref=e46] [cursor=pointer]
53
+ - button "Add product of type" [ref=e47] [cursor=pointer]
54
+ - generic [ref=e51]:
55
+ - generic [ref=e52]:
56
+ - generic [ref=e53]
57
+ - generic [ref=e66]
58
+ - text:                         ↓
59
+ - table [ref=e87]:
60
+ - rowgroup [ref=e88]
61
+ - rowgroup [ref=e124]
62
+ - contentinfo [ref=e7275]:
63
+ - generic [ref=e7277]:
64
+ - paragraph [ref=e7278]:
65
+ - link "" [ref=e7279] [cursor=pointer]:
66
+ - /url: http://magento.com
67
+ - text: Copyright © 2026 Magento Commerce Inc. All rights reserved.
68
+ - generic [ref=e7280]:
69
+ - paragraph [ref=e7281]
70
+ - link "Privacy Policy" [ref=e7283] [cursor=pointer]:
71
+ - /url: https://www.adobe.com/privacy/policy.html
72
+ - text: "|"
73
+ - link "Account Activity" [ref=e7284] [cursor=pointer]:
74
+ - /url: http://localhost:7789/admin/security/session/activity/
75
+ - text: "|"
76
+ - link "Report an Issue" [ref=e7285] [cursor=pointer]:
77
+ - /url: https://github.com/magento/magento2/issues
78
+ - text: ‹ ›
form_snapshot.yml ADDED
@@ -0,0 +1,100 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ - generic [active] [ref=e1]:
2
+ - navigation:
3
+ - link "Jump to main content" [ref=e2] [cursor=pointer]:
4
+ - /url: "#main"
5
+ - link "Jump to sidebar" [ref=e3] [cursor=pointer]:
6
+ - /url: "#sidebar"
7
+ - navigation [ref=e4]:
8
+ - generic [ref=e5]:
9
+ - link "Home" [ref=e7] [cursor=pointer]:
10
+ - /url: /
11
+ - text: Postmill
12
+ - list [ref=e9]:
13
+ - listitem [ref=e10]:
14
+ - link "Forums" [ref=e11] [cursor=pointer]:
15
+ - /url: /forums
16
+ - listitem [ref=e12]:
17
+ - link "Wiki" [ref=e13] [cursor=pointer]:
18
+ - /url: /wiki
19
+ - generic [ref=e15]:
20
+ - img [ref=e18]
21
+ - searchbox "Search query" [ref=e20]
22
+ - list [ref=e21]:
23
+ - listitem [ref=e22]:
24
+ - link "Notifications (0)" [ref=e23] [cursor=pointer]:
25
+ - /url: /notifications
26
+ - img [ref=e25]
27
+ - listitem [ref=e27]:
28
+ - link "Submit" [ref=e28] [cursor=pointer]:
29
+ - /url: /submit/Music
30
+ - img [ref=e30]
31
+ - text: Submit
32
+ - listitem [ref=e32]:
33
+ - button "forum_reporter_177" [ref=e33] [cursor=pointer]:
34
+ - img [ref=e35]
35
+ - strong [ref=e37]: forum_reporter_177
36
+ - generic [ref=e39]:
37
+ - main [ref=e40]:
38
+ - heading "Create submission" [level=1] [ref=e41]
39
+ - generic [ref=e42]:
40
+ - generic [ref=e43]:
41
+ - radio "URL" [checked] [ref=e44]
42
+ - generic [ref=e45] [cursor=pointer]: URL
43
+ - radio "Image" [ref=e46]
44
+ - generic [ref=e47] [cursor=pointer]: Image
45
+ - textbox "URL" [ref=e51]
46
+ - generic [ref=e53]:
47
+ - generic [ref=e54]: Title *
48
+ - textbox "Title This field is required." [ref=e55]
49
+ - generic [ref=e56]:
50
+ - generic [ref=e57]:
51
+ - generic [ref=e58]: Body
52
+ - textbox "Body" [ref=e60]
53
+ - generic [ref=e61]:
54
+ - checkbox "Formatting help +" [ref=e62]
55
+ - text: Markdown allowed.
56
+ - generic [ref=e63] [cursor=pointer]: Formatting help +
57
+ - generic [ref=e65]:
58
+ - generic [ref=e66]: Forum *
59
+ - generic [ref=e67]:
60
+ - combobox [ref=e68]
61
+ - combobox "Music" [ref=e71] [cursor=pointer]:
62
+ - textbox "Music" [ref=e72]:
63
+ - generic [ref=e74]: Music
64
+ - button "Create submission" [ref=e76] [cursor=pointer]
65
+ - complementary [ref=e77]:
66
+ - generic [ref=e78]:
67
+ - heading "Music" [level=1] [ref=e79]:
68
+ - link "Music" [ref=e80] [cursor=pointer]:
69
+ - /url: /f/Music
70
+ - button "Subscribe No subscribers" [ref=e83]:
71
+ - generic [ref=e84] [cursor=pointer]: Subscribe
72
+ - generic "No subscribers" [ref=e85] [cursor=pointer]: "0"
73
+ - paragraph [ref=e87]: t5_2qh1u
74
+ - separator [ref=e88]
75
+ - list [ref=e89]:
76
+ - listitem [ref=e90]:
77
+ - text: Created
78
+ - time [ref=e91]: 4 years ago
79
+ - listitem [ref=e92]:
80
+ - link "Subscribe via RSS" [ref=e93] [cursor=pointer]:
81
+ - /url: /f/Music/new.atom
82
+ - img [ref=e95]
83
+ - text: Subscribe via RSS
84
+ - group [ref=e97]:
85
+ - generic "Hide this forum" [ref=e98] [cursor=pointer]
86
+ - generic [ref=e99]:
87
+ - heading "Toolbox" [level=1] [ref=e100]
88
+ - list [ref=e101]:
89
+ - listitem [ref=e102]:
90
+ - link "Bans" [ref=e103] [cursor=pointer]:
91
+ - /url: /f/Music/bans
92
+ - listitem [ref=e104]:
93
+ - link "Moderation log" [ref=e105] [cursor=pointer]:
94
+ - /url: /f/Music/moderation_log
95
+ - contentinfo [ref=e106]:
96
+ - paragraph [ref=e107]:
97
+ - generic [ref=e108]:
98
+ - text: Running
99
+ - link "Postmill" [ref=e109] [cursor=pointer]:
100
+ - /url: https://postmill.xyz/
forums.yml ADDED
@@ -0,0 +1,412 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ - generic [active] [ref=e1]:
2
+ - navigation:
3
+ - link "Jump to main content" [ref=e2] [cursor=pointer]:
4
+ - /url: "#main"
5
+ - link "Jump to sidebar" [ref=e3] [cursor=pointer]:
6
+ - /url: "#sidebar"
7
+ - navigation [ref=e4]:
8
+ - generic [ref=e5]:
9
+ - link "Home" [ref=e7] [cursor=pointer]:
10
+ - /url: /
11
+ - text: Postmill
12
+ - list [ref=e9]:
13
+ - listitem [ref=e10]:
14
+ - link "Forums" [ref=e11] [cursor=pointer]:
15
+ - /url: /forums
16
+ - listitem [ref=e12]:
17
+ - link "Wiki" [ref=e13] [cursor=pointer]:
18
+ - /url: /wiki
19
+ - generic [ref=e15]:
20
+ - img [ref=e18]
21
+ - searchbox "Search query" [ref=e20]
22
+ - list [ref=e21]:
23
+ - listitem [ref=e22]:
24
+ - link "Notifications (0)" [ref=e23] [cursor=pointer]:
25
+ - /url: /notifications
26
+ - img [ref=e25]
27
+ - listitem [ref=e27]:
28
+ - link "Submit" [ref=e28] [cursor=pointer]:
29
+ - /url: /submit
30
+ - img [ref=e30]
31
+ - text: Submit
32
+ - listitem [ref=e32]:
33
+ - button "forum_keyword_174" [ref=e33] [cursor=pointer]:
34
+ - img [ref=e35]
35
+ - strong [ref=e37]: forum_keyword_174
36
+ - main [ref=e40]:
37
+ - navigation [ref=e41]:
38
+ - list [ref=e42]:
39
+ - listitem [ref=e43]:
40
+ - link "Forums" [ref=e44] [cursor=pointer]:
41
+ - /url: /forums
42
+ - listitem [ref=e45]:
43
+ - link "Tags" [ref=e46] [cursor=pointer]:
44
+ - /url: /tags
45
+ - listitem [ref=e47]:
46
+ - link "Alphabetical" [ref=e48] [cursor=pointer]:
47
+ - /url: /forums/all
48
+ - list [ref=e49]:
49
+ - listitem [ref=e50]:
50
+ - 'button "Sort by: Submissions" [ref=e51] [cursor=pointer]':
51
+ - img [ref=e53]
52
+ - text: Submissions
53
+ - text: •
54
+ - generic [ref=e56]:
55
+ - heading "List of forums" [level=1] [ref=e57]
56
+ - link "Create forum" [ref=e59] [cursor=pointer]:
57
+ - /url: /create_forum
58
+ - generic [ref=e60]:
59
+ - article [ref=e61]:
60
+ - generic [ref=e62]:
61
+ - heading "AskReddit — AskReddit" [level=2] [ref=e63]:
62
+ - link "AskReddit — AskReddit" [ref=e64] [cursor=pointer]:
63
+ - /url: /f/AskReddit
64
+ - generic [ref=e66]: /f/AskReddit
65
+ - generic [ref=e67]: AskReddit
66
+ - paragraph [ref=e68]: AskReddit
67
+ - generic [ref=e70]:
68
+ - button "Subscribe No subscribers" [ref=e72]:
69
+ - generic [ref=e73] [cursor=pointer]: Subscribe
70
+ - generic "No subscribers" [ref=e74] [cursor=pointer]: "0"
71
+ - paragraph [ref=e75]: 10,041 submissions
72
+ - article [ref=e76]:
73
+ - generic [ref=e77]:
74
+ - heading "relationship_advice — relationship_advice" [level=2] [ref=e78]:
75
+ - link "relationship_advice — relationship_advice" [ref=e79] [cursor=pointer]:
76
+ - /url: /f/relationship_advice
77
+ - generic [ref=e81]: /f/relationship_advice
78
+ - generic [ref=e82]: relationship_advice
79
+ - paragraph [ref=e83]: relationship_advice
80
+ - generic [ref=e85]:
81
+ - button "Subscribe No subscribers" [ref=e87]:
82
+ - generic [ref=e88] [cursor=pointer]: Subscribe
83
+ - generic "No subscribers" [ref=e89] [cursor=pointer]: "0"
84
+ - paragraph [ref=e90]: 5,718 submissions
85
+ - article [ref=e91]:
86
+ - generic [ref=e92]:
87
+ - heading "worldnews — worldnews" [level=2] [ref=e93]:
88
+ - link "worldnews — worldnews" [ref=e94] [cursor=pointer]:
89
+ - /url: /f/worldnews
90
+ - generic [ref=e96]: /f/worldnews
91
+ - generic [ref=e97]: worldnews
92
+ - paragraph [ref=e98]: worldnews
93
+ - generic [ref=e100]:
94
+ - button "Subscribe No subscribers" [ref=e102]:
95
+ - generic [ref=e103] [cursor=pointer]: Subscribe
96
+ - generic "No subscribers" [ref=e104] [cursor=pointer]: "0"
97
+ - paragraph [ref=e105]: 3,464 submissions
98
+ - article [ref=e106]:
99
+ - generic [ref=e107]:
100
+ - heading "news — news" [level=2] [ref=e108]:
101
+ - link "news — news" [ref=e109] [cursor=pointer]:
102
+ - /url: /f/news
103
+ - generic [ref=e111]: /f/news
104
+ - generic [ref=e112]: news
105
+ - paragraph [ref=e113]: news
106
+ - generic [ref=e115]:
107
+ - button "Subscribe No subscribers" [ref=e117]:
108
+ - generic [ref=e118] [cursor=pointer]: Subscribe
109
+ - generic "No subscribers" [ref=e119] [cursor=pointer]: "0"
110
+ - paragraph [ref=e120]: 3,322 submissions
111
+ - article [ref=e121]:
112
+ - generic [ref=e122]:
113
+ - heading "movies — movies" [level=2] [ref=e123]:
114
+ - link "movies — movies" [ref=e124] [cursor=pointer]:
115
+ - /url: /f/movies
116
+ - generic [ref=e126]: /f/movies
117
+ - generic [ref=e127]: movies
118
+ - paragraph [ref=e128]: movies
119
+ - generic [ref=e130]:
120
+ - button "Subscribe No subscribers" [ref=e132]:
121
+ - generic [ref=e133] [cursor=pointer]: Subscribe
122
+ - generic "No subscribers" [ref=e134] [cursor=pointer]: "0"
123
+ - paragraph [ref=e135]: 3,261 submissions
124
+ - article [ref=e136]:
125
+ - generic [ref=e137]:
126
+ - heading "memes — memes" [level=2] [ref=e138]:
127
+ - link "memes — memes" [ref=e139] [cursor=pointer]:
128
+ - /url: /f/memes
129
+ - generic [ref=e141]: /f/memes
130
+ - generic [ref=e142]: memes
131
+ - paragraph [ref=e143]: memes
132
+ - generic [ref=e145]:
133
+ - button "Subscribe No subscribers" [ref=e147]:
134
+ - generic [ref=e148] [cursor=pointer]: Subscribe
135
+ - generic "No subscribers" [ref=e149] [cursor=pointer]: "0"
136
+ - paragraph [ref=e150]: 3,129 submissions
137
+ - article [ref=e151]:
138
+ - generic [ref=e152]:
139
+ - heading "wallstreetbets — wallstreetbets" [level=2] [ref=e153]:
140
+ - link "wallstreetbets — wallstreetbets" [ref=e154] [cursor=pointer]:
141
+ - /url: /f/wallstreetbets
142
+ - generic [ref=e156]: /f/wallstreetbets
143
+ - generic [ref=e157]: wallstreetbets
144
+ - paragraph [ref=e158]: wallstreetbets
145
+ - generic [ref=e160]:
146
+ - button "Subscribe No subscribers" [ref=e162]:
147
+ - generic [ref=e163] [cursor=pointer]: Subscribe
148
+ - generic "No subscribers" [ref=e164] [cursor=pointer]: "0"
149
+ - paragraph [ref=e165]: 3,089 submissions
150
+ - article [ref=e166]:
151
+ - generic [ref=e167]:
152
+ - heading "gaming — gaming" [level=2] [ref=e168]:
153
+ - link "gaming — gaming" [ref=e169] [cursor=pointer]:
154
+ - /url: /f/gaming
155
+ - generic [ref=e171]: /f/gaming
156
+ - generic [ref=e172]: gaming
157
+ - paragraph [ref=e173]: gaming
158
+ - generic [ref=e175]:
159
+ - button "Subscribe No subscribers" [ref=e177]:
160
+ - generic [ref=e178] [cursor=pointer]: Subscribe
161
+ - generic "No subscribers" [ref=e179] [cursor=pointer]: "0"
162
+ - paragraph [ref=e180]: 2,572 submissions
163
+ - article [ref=e181]:
164
+ - generic [ref=e182]:
165
+ - heading "technology — technology" [level=2] [ref=e183]:
166
+ - link "technology — technology" [ref=e184] [cursor=pointer]:
167
+ - /url: /f/technology
168
+ - generic [ref=e186]: /f/technology
169
+ - generic [ref=e187]: technology
170
+ - paragraph [ref=e188]: technology
171
+ - generic [ref=e190]:
172
+ - button "Subscribe No subscribers" [ref=e192]:
173
+ - generic [ref=e193] [cursor=pointer]: Subscribe
174
+ - generic "No subscribers" [ref=e194] [cursor=pointer]: "0"
175
+ - paragraph [ref=e195]: 2,472 submissions
176
+ - article [ref=e196]:
177
+ - generic [ref=e197]:
178
+ - heading "pics — pics" [level=2] [ref=e198]:
179
+ - link "pics — pics" [ref=e199] [cursor=pointer]:
180
+ - /url: /f/pics
181
+ - generic [ref=e201]: /f/pics
182
+ - generic [ref=e202]: pics
183
+ - paragraph [ref=e203]: pics
184
+ - generic [ref=e205]:
185
+ - button "Subscribe No subscribers" [ref=e207]:
186
+ - generic [ref=e208] [cursor=pointer]: Subscribe
187
+ - generic "No subscribers" [ref=e209] [cursor=pointer]: "0"
188
+ - paragraph [ref=e210]: 2,450 submissions
189
+ - article [ref=e211]:
190
+ - generic [ref=e212]:
191
+ - heading "funny — funny" [level=2] [ref=e213]:
192
+ - link "funny — funny" [ref=e214] [cursor=pointer]:
193
+ - /url: /f/funny
194
+ - generic [ref=e216]: /f/funny
195
+ - generic [ref=e217]: funny
196
+ - paragraph [ref=e218]: funny
197
+ - generic [ref=e220]:
198
+ - button "Subscribe No subscribers" [ref=e222]:
199
+ - generic [ref=e223] [cursor=pointer]: Subscribe
200
+ - generic "No subscribers" [ref=e224] [cursor=pointer]: "0"
201
+ - paragraph [ref=e225]: 2,407 submissions
202
+ - article [ref=e226]:
203
+ - generic [ref=e227]:
204
+ - heading "television — television" [level=2] [ref=e228]:
205
+ - link "television — television" [ref=e229] [cursor=pointer]:
206
+ - /url: /f/television
207
+ - generic [ref=e231]: /f/television
208
+ - generic [ref=e232]: television
209
+ - paragraph [ref=e233]: television
210
+ - generic [ref=e235]:
211
+ - button "Subscribe No subscribers" [ref=e237]:
212
+ - generic [ref=e238] [cursor=pointer]: Subscribe
213
+ - generic "No subscribers" [ref=e239] [cursor=pointer]: "0"
214
+ - paragraph [ref=e240]: 2,389 submissions
215
+ - article [ref=e241]:
216
+ - generic [ref=e242]:
217
+ - heading "mildlyinteresting — mildlyinteresting" [level=2] [ref=e243]:
218
+ - link "mildlyinteresting — mildlyinteresting" [ref=e244] [cursor=pointer]:
219
+ - /url: /f/mildlyinteresting
220
+ - generic [ref=e246]: /f/mildlyinteresting
221
+ - generic [ref=e247]: mildlyinteresting
222
+ - paragraph [ref=e248]: mildlyinteresting
223
+ - generic [ref=e250]:
224
+ - button "Subscribe No subscribers" [ref=e252]:
225
+ - generic [ref=e253] [cursor=pointer]: Subscribe
226
+ - generic "No subscribers" [ref=e254] [cursor=pointer]: "0"
227
+ - paragraph [ref=e255]: 2,211 submissions
228
+ - article [ref=e256]:
229
+ - generic [ref=e257]:
230
+ - heading "Showerthoughts — Showerthoughts" [level=2] [ref=e258]:
231
+ - link "Showerthoughts — Showerthoughts" [ref=e259] [cursor=pointer]:
232
+ - /url: /f/Showerthoughts
233
+ - generic [ref=e261]: /f/Showerthoughts
234
+ - generic [ref=e262]: Showerthoughts
235
+ - paragraph [ref=e263]: Showerthoughts
236
+ - generic [ref=e265]:
237
+ - button "Subscribe No subscribers" [ref=e267]:
238
+ - generic [ref=e268] [cursor=pointer]: Subscribe
239
+ - generic "No subscribers" [ref=e269] [cursor=pointer]: "0"
240
+ - paragraph [ref=e270]: 2,175 submissions
241
+ - article [ref=e271]:
242
+ - generic [ref=e272]:
243
+ - heading "todayilearned — todayilearned" [level=2] [ref=e273]:
244
+ - link "todayilearned — todayilearned" [ref=e274] [cursor=pointer]:
245
+ - /url: /f/todayilearned
246
+ - generic [ref=e276]: /f/todayilearned
247
+ - generic [ref=e277]: todayilearned
248
+ - paragraph [ref=e278]: todayilearned
249
+ - generic [ref=e280]:
250
+ - button "Subscribe No subscribers" [ref=e282]:
251
+ - generic [ref=e283] [cursor=pointer]: Subscribe
252
+ - generic "No subscribers" [ref=e284] [cursor=pointer]: "0"
253
+ - paragraph [ref=e285]: 2,111 submissions
254
+ - article [ref=e286]:
255
+ - generic [ref=e287]:
256
+ - heading "personalfinance — personalfinance" [level=2] [ref=e288]:
257
+ - link "personalfinance — personalfinance" [ref=e289] [cursor=pointer]:
258
+ - /url: /f/personalfinance
259
+ - generic [ref=e291]: /f/personalfinance
260
+ - generic [ref=e292]: personalfinance
261
+ - paragraph [ref=e293]: personalfinance
262
+ - generic [ref=e295]:
263
+ - button "Subscribe No subscribers" [ref=e297]:
264
+ - generic [ref=e298] [cursor=pointer]: Subscribe
265
+ - generic "No subscribers" [ref=e299] [cursor=pointer]: "0"
266
+ - paragraph [ref=e300]: 1,957 submissions
267
+ - article [ref=e301]:
268
+ - generic [ref=e302]:
269
+ - heading "LifeProTips — LifeProTips" [level=2] [ref=e303]:
270
+ - link "LifeProTips — LifeProTips" [ref=e304] [cursor=pointer]:
271
+ - /url: /f/LifeProTips
272
+ - generic [ref=e306]: /f/LifeProTips
273
+ - generic [ref=e307]: LifeProTips
274
+ - paragraph [ref=e308]: LifeProTips
275
+ - generic [ref=e310]:
276
+ - button "Subscribe No subscribers" [ref=e312]:
277
+ - generic [ref=e313] [cursor=pointer]: Subscribe
278
+ - generic "No subscribers" [ref=e314] [cursor=pointer]: "0"
279
+ - paragraph [ref=e315]: 1,953 submissions
280
+ - article [ref=e316]:
281
+ - generic [ref=e317]:
282
+ - heading "Futurology — Futurology" [level=2] [ref=e318]:
283
+ - link "Futurology — Futurology" [ref=e319] [cursor=pointer]:
284
+ - /url: /f/Futurology
285
+ - generic [ref=e321]: /f/Futurology
286
+ - generic [ref=e322]: Futurology
287
+ - paragraph [ref=e323]: Futurology
288
+ - generic [ref=e325]:
289
+ - button "Subscribe No subscribers" [ref=e327]:
290
+ - generic [ref=e328] [cursor=pointer]: Subscribe
291
+ - generic "No subscribers" [ref=e329] [cursor=pointer]: "0"
292
+ - paragraph [ref=e330]: 1,902 submissions
293
+ - article [ref=e331]:
294
+ - generic [ref=e332]:
295
+ - heading "Music — Music" [level=2] [ref=e333]:
296
+ - link "Music — Music" [ref=e334] [cursor=pointer]:
297
+ - /url: /f/Music
298
+ - generic [ref=e336]: /f/Music
299
+ - generic [ref=e337]: Music
300
+ - paragraph [ref=e338]: Music
301
+ - generic [ref=e340]:
302
+ - button "Subscribe No subscribers" [ref=e342]:
303
+ - generic [ref=e343] [cursor=pointer]: Subscribe
304
+ - generic "No subscribers" [ref=e344] [cursor=pointer]: "0"
305
+ - paragraph [ref=e345]: 1,869 submissions
306
+ - article [ref=e346]:
307
+ - generic [ref=e347]:
308
+ - heading "explainlikeimfive — explainlikeimfive" [level=2] [ref=e348]:
309
+ - link "explainlikeimfive — explainlikeimfive" [ref=e349] [cursor=pointer]:
310
+ - /url: /f/explainlikeimfive
311
+ - generic [ref=e351]: /f/explainlikeimfive
312
+ - generic [ref=e352]: explainlikeimfive
313
+ - paragraph [ref=e353]: explainlikeimfive
314
+ - generic [ref=e355]:
315
+ - button "Subscribe No subscribers" [ref=e357]:
316
+ - generic [ref=e358] [cursor=pointer]: Subscribe
317
+ - generic "No subscribers" [ref=e359] [cursor=pointer]: "0"
318
+ - paragraph [ref=e360]: 1,818 submissions
319
+ - article [ref=e361]:
320
+ - generic [ref=e362]:
321
+ - heading "books — books" [level=2] [ref=e363]:
322
+ - link "books — books" [ref=e364] [cursor=pointer]:
323
+ - /url: /f/books
324
+ - generic [ref=e366]: /f/books
325
+ - generic [ref=e367]: books
326
+ - paragraph [ref=e368]: books
327
+ - generic [ref=e370]:
328
+ - button "Subscribe No subscribers" [ref=e372]:
329
+ - generic [ref=e373] [cursor=pointer]: Subscribe
330
+ - generic "No subscribers" [ref=e374] [cursor=pointer]: "0"
331
+ - paragraph [ref=e375]: 1,796 submissions
332
+ - article [ref=e376]:
333
+ - generic [ref=e377]:
334
+ - heading "science — science" [level=2] [ref=e378]:
335
+ - link "science — science" [ref=e379] [cursor=pointer]:
336
+ - /url: /f/science
337
+ - generic [ref=e381]: /f/science
338
+ - generic [ref=e382]: science
339
+ - paragraph [ref=e383]: science
340
+ - generic [ref=e385]:
341
+ - button "Subscribe No subscribers" [ref=e387]:
342
+ - generic [ref=e388] [cursor=pointer]: Subscribe
343
+ - generic "No subscribers" [ref=e389] [cursor=pointer]: "0"
344
+ - paragraph [ref=e390]: 1,792 submissions
345
+ - article [ref=e391]:
346
+ - generic [ref=e392]:
347
+ - heading "Jokes — Jokes" [level=2] [ref=e393]:
348
+ - link "Jokes — Jokes" [ref=e394] [cursor=pointer]:
349
+ - /url: /f/Jokes
350
+ - generic [ref=e396]: /f/Jokes
351
+ - generic [ref=e397]: Jokes
352
+ - paragraph [ref=e398]: Jokes
353
+ - generic [ref=e400]:
354
+ - button "Subscribe No subscribers" [ref=e402]:
355
+ - generic [ref=e403] [cursor=pointer]: Subscribe
356
+ - generic "No subscribers" [ref=e404] [cursor=pointer]: "0"
357
+ - paragraph [ref=e405]: 1,758 submissions
358
+ - article [ref=e406]:
359
+ - generic [ref=e407]:
360
+ - heading "tifu — tifu" [level=2] [ref=e408]:
361
+ - link "tifu — tifu" [ref=e409] [cursor=pointer]:
362
+ - /url: /f/tifu
363
+ - generic [ref=e411]: /f/tifu
364
+ - generic [ref=e412]: tifu
365
+ - paragraph [ref=e413]: tifu
366
+ - generic [ref=e415]:
367
+ - button "Subscribe No subscribers" [ref=e417]:
368
+ - generic [ref=e418] [cursor=pointer]: Subscribe
369
+ - generic "No subscribers" [ref=e419] [cursor=pointer]: "0"
370
+ - paragraph [ref=e420]: 1,678 submissions
371
+ - article [ref=e421]:
372
+ - generic [ref=e422]:
373
+ - heading "space — space" [level=2] [ref=e423]:
374
+ - link "space — space" [ref=e424] [cursor=pointer]:
375
+ - /url: /f/space
376
+ - generic [ref=e426]: /f/space
377
+ - generic [ref=e427]: space
378
+ - paragraph [ref=e428]: space
379
+ - generic [ref=e430]:
380
+ - button "Subscribe No subscribers" [ref=e432]:
381
+ - generic [ref=e433] [cursor=pointer]: Subscribe
382
+ - generic "No subscribers" [ref=e434] [cursor=pointer]: "0"
383
+ - paragraph [ref=e435]: 1,671 submissions
384
+ - navigation [ref=e436]:
385
+ - list [ref=e437]:
386
+ - listitem [ref=e439]:
387
+ - button "Previous" [disabled] [ref=e440]
388
+ - listitem [ref=e441]:
389
+ - link "Page 1" [ref=e442] [cursor=pointer]:
390
+ - /url: /forums
391
+ - text: "1"
392
+ - listitem [ref=e443]:
393
+ - link "Page 2" [ref=e444] [cursor=pointer]:
394
+ - /url: /forums/by_submissions/2
395
+ - text: "2"
396
+ - listitem [ref=e445]:
397
+ - link "Page 3" [ref=e446] [cursor=pointer]:
398
+ - /url: /forums/by_submissions/3
399
+ - text: "3"
400
+ - listitem [ref=e447]:
401
+ - link "Page 4" [ref=e448] [cursor=pointer]:
402
+ - /url: /forums/by_submissions/4
403
+ - text: "4"
404
+ - listitem [ref=e449]:
405
+ - link "Next" [ref=e450] [cursor=pointer]:
406
+ - /url: /forums/by_submissions/2
407
+ - contentinfo [ref=e452]:
408
+ - paragraph [ref=e453]:
409
+ - generic [ref=e454]:
410
+ - text: Running
411
+ - link "Postmill" [ref=e455] [cursor=pointer]:
412
+ - /url: https://postmill.xyz/
homepage.yml ADDED
@@ -0,0 +1,59 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ - generic [active] [ref=e1]:
2
+ - navigation:
3
+ - link "Jump to main content" [ref=e2] [cursor=pointer]:
4
+ - /url: "#main"
5
+ - link "Jump to sidebar" [ref=e3] [cursor=pointer]:
6
+ - /url: "#sidebar"
7
+ - navigation [ref=e4]:
8
+ - generic [ref=e5]:
9
+ - link "Home" [ref=e7] [cursor=pointer]:
10
+ - /url: /
11
+ - text: Postmill
12
+ - list [ref=e9]:
13
+ - listitem [ref=e10]:
14
+ - link "Forums" [ref=e11] [cursor=pointer]:
15
+ - /url: /forums
16
+ - listitem [ref=e12]:
17
+ - link "Wiki" [ref=e13] [cursor=pointer]:
18
+ - /url: /wiki
19
+ - generic [ref=e15]:
20
+ - img [ref=e18]
21
+ - searchbox "Search query" [ref=e20]
22
+ - list [ref=e21]:
23
+ - listitem [ref=e22]:
24
+ - link "Log in" [ref=e23] [cursor=pointer]:
25
+ - /url: /login
26
+ - listitem [ref=e24]:
27
+ - link "Sign up" [ref=e25] [cursor=pointer]:
28
+ - /url: /registration
29
+ - generic [ref=e26]:
30
+ - main [ref=e27]:
31
+ - navigation [ref=e28]:
32
+ - list [ref=e29]:
33
+ - listitem [ref=e30]:
34
+ - link "Submissions" [ref=e31] [cursor=pointer]:
35
+ - /url: /
36
+ - listitem [ref=e32]:
37
+ - link "Comments" [ref=e33] [cursor=pointer]:
38
+ - /url: /comments
39
+ - list [ref=e34]:
40
+ - listitem [ref=e35]:
41
+ - 'button "Filter on: Featured" [ref=e36] [cursor=pointer]':
42
+ - img [ref=e38]
43
+ - text: Featured
44
+ - text: •
45
+ - listitem [ref=e41]:
46
+ - 'button "Sort by: Hot" [ref=e42] [cursor=pointer]':
47
+ - img [ref=e44]
48
+ - text: Hot
49
+ - text: •
50
+ - complementary [ref=e47]:
51
+ - generic [ref=e48]:
52
+ - heading "Featured forums" [level=1] [ref=e49]
53
+ - paragraph [ref=e50]: There are no featured forums to display.
54
+ - contentinfo [ref=e51]:
55
+ - paragraph [ref=e52]:
56
+ - generic [ref=e53]:
57
+ - text: Running
58
+ - link "Postmill" [ref=e54] [cursor=pointer]:
59
+ - /url: https://postmill.xyz/
login-page.yml ADDED
@@ -0,0 +1,24 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ - generic [ref=e2]:
2
+ - link "Magento Admin Panel" [ref=e4] [cursor=pointer]:
3
+ - /url: http://localhost:7787/admin/admin/
4
+ - img "Magento Admin Panel" [ref=e5]
5
+ - group "Welcome, please sign in" [ref=e8]:
6
+ - generic [ref=e9]: Welcome, please sign in
7
+ - generic [ref=e10]:
8
+ - generic [ref=e12]: Username *
9
+ - textbox "Username *" [ref=e14]:
10
+ - /placeholder: user name
11
+ - text: admin
12
+ - generic [ref=e15]:
13
+ - generic [ref=e17]: Password *
14
+ - textbox "Password *" [active] [ref=e19]:
15
+ - /placeholder: password
16
+ - text: admin1234
17
+ - generic [ref=e20]:
18
+ - button "Sign in" [ref=e22] [cursor=pointer]
19
+ - link "Forgot your password?" [ref=e24] [cursor=pointer]:
20
+ - /url: http://localhost:7787/admin/admin/auth/forgotpassword/
21
+ - generic [ref=e25]:
22
+ - link "Magento":
23
+ - /url: http://magento.com
24
+ - text: Copyright © 2026 Magento Commerce Inc. All rights reserved.
login.png ADDED
new-customer.yml ADDED
@@ -0,0 +1,170 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ - generic [active] [ref=e1]:
2
+ - generic [ref=e2]:
3
+ - link "Magento Admin Panel" [ref=e3] [cursor=pointer]:
4
+ - /url: http://localhost:7787/admin/admin/
5
+ - img "Magento Admin Panel" [ref=e4]
6
+ - navigation [ref=e5]:
7
+ - menubar [ref=e6]:
8
+ - listitem [ref=e7]:
9
+ - link " Dashboard" [ref=e8] [cursor=pointer]:
10
+ - /url: http://localhost:7787/admin/admin/dashboard/
11
+ - listitem [ref=e9]:
12
+ - link " Sales" [ref=e10] [cursor=pointer]:
13
+ - /url: "#"
14
+ - listitem [ref=e11]:
15
+ - link " Catalog" [ref=e12] [cursor=pointer]:
16
+ - /url: "#"
17
+ - listitem [ref=e13]:
18
+ - link " Customers" [ref=e14] [cursor=pointer]:
19
+ - /url: "#"
20
+ - listitem [ref=e15]:
21
+ - link " Marketing" [ref=e16] [cursor=pointer]:
22
+ - /url: "#"
23
+ - listitem [ref=e17]:
24
+ - link " Content" [ref=e18] [cursor=pointer]:
25
+ - /url: "#"
26
+ - listitem [ref=e19]:
27
+ - link " Reports" [ref=e20] [cursor=pointer]:
28
+ - /url: "#"
29
+ - listitem [ref=e21]:
30
+ - link " Stores" [ref=e22] [cursor=pointer]:
31
+ - /url: "#"
32
+ - listitem [ref=e23]:
33
+ - link " System" [ref=e24] [cursor=pointer]:
34
+ - /url: "#"
35
+ - listitem [ref=e25]:
36
+ - link " Find Partners & Extensions" [ref=e26] [cursor=pointer]:
37
+ - /url: http://localhost:7787/admin/marketplace/index/
38
+ - text: 
39
+ - generic [ref=e27]:
40
+ - generic [ref=e31]:
41
+ - generic [ref=e32]:
42
+ - 'button "System Messages: 1" [ref=e33] [cursor=pointer]':
43
+ - generic [ref=e34]: "System Messages: 1"
44
+ - generic [ref=e36]:
45
+ - text:  One or more
46
+ - link "indexers are invalid" [ref=e37] [cursor=pointer]:
47
+ - /url: http://localhost:7787/admin/indexer/indexer/list/
48
+ - text: . Make sure your
49
+ - link "Magento cron job" [ref=e38] [cursor=pointer]:
50
+ - /url: https://devdocs.magento.com/guides/v2.4/config-guide/cli/config-cli-subcommands-cron.html#create-or-remove-the-magento-crontab
51
+ - text: is running.
52
+ - text: 
53
+ - banner [ref=e39]:
54
+ - heading "New Customer" [level=1] [ref=e42]
55
+ - generic [ref=e43]:
56
+ - link " admin" [ref=e45] [cursor=pointer]:
57
+ - /url: http://localhost:7787/admin/admin/system_account/index/
58
+ - text: 
59
+ - generic [ref=e47]: admin
60
+ - link "" [ref=e49] [cursor=pointer]:
61
+ - /url: http://localhost:7787/admin/admin/notification/index/
62
+ - generic:
63
+ - generic:
64
+ - generic:
65
+ - generic [ref=e50] [cursor=pointer]: 
66
+ - textbox "" [ref=e51]
67
+ - main [ref=e52]:
68
+ - generic [ref=e54]:
69
+ - button " Back" [ref=e55] [cursor=pointer]
70
+ - button "Reset" [ref=e56] [cursor=pointer]
71
+ - button "Save and Continue Edit" [ref=e57] [cursor=pointer]
72
+ - button "Save Customer" [ref=e58] [cursor=pointer]
73
+ - generic [ref=e59]:
74
+ - generic [ref=e65]:
75
+ - strong [ref=e67]: Account Information
76
+ - group [ref=e69]:
77
+ - generic [ref=e70]:
78
+ - generic [ref=e73] [cursor=pointer]: Associate to Website *
79
+ - generic [ref=e74]:
80
+ - combobox "notice-T62JVND" [ref=e75]:
81
+ - option "Main Website" [selected]
82
+ - link " What is this?" [ref=e77] [cursor=pointer]:
83
+ - /url: https://docs.magento.com/user-guide/configuration/scope.html
84
+ - text: 
85
+ - generic [ref=e78]: What is this?
86
+ - group [ref=e79]:
87
+ - generic [ref=e81]:
88
+ - generic [ref=e82]:
89
+ - generic [ref=e85] [cursor=pointer]: Group *
90
+ - combobox "notice-AHHX1RX" [ref=e87]:
91
+ - option "General" [selected]
92
+ - option "Premium Europe 3"
93
+ - option "Retailer"
94
+ - option "Wholesale"
95
+ - generic [ref=e88]:
96
+ - generic [ref=e91] [cursor=pointer]: Disable Automatic Group Change Based on VAT ID
97
+ - generic [ref=e93]:
98
+ - checkbox "Disable Automatic Group Change Based on VAT ID Disable Automatic Group Change Based on VAT ID" [ref=e94] [cursor=pointer]
99
+ - generic [ref=e95] [cursor=pointer]: Disable Automatic Group Change Based on VAT ID
100
+ - generic [ref=e96]:
101
+ - generic [ref=e99] [cursor=pointer]: Name Prefix
102
+ - textbox "Name Prefix" [ref=e101]
103
+ - generic [ref=e102]:
104
+ - generic [ref=e105] [cursor=pointer]: First Name *
105
+ - textbox "First Name *" [ref=e107]
106
+ - generic [ref=e108]:
107
+ - generic [ref=e111] [cursor=pointer]: Middle Name/Initial
108
+ - textbox "Middle Name/Initial" [ref=e113]
109
+ - generic [ref=e114]:
110
+ - generic [ref=e117] [cursor=pointer]: Last Name *
111
+ - textbox "Last Name *" [ref=e119]
112
+ - generic [ref=e120]:
113
+ - generic [ref=e123] [cursor=pointer]: Name Suffix
114
+ - textbox "Name Suffix" [ref=e125]
115
+ - generic [ref=e126]:
116
+ - generic [ref=e129] [cursor=pointer]: Email *
117
+ - textbox "Email *" [ref=e131]
118
+ - generic [ref=e132]:
119
+ - generic [ref=e135] [cursor=pointer]: Allow remote shopping assistance
120
+ - generic [ref=e137]:
121
+ - checkbox "Allow remote shopping assistance No" [ref=e138]
122
+ - generic [ref=e140] [cursor=pointer]: "No"
123
+ - generic [ref=e141]:
124
+ - generic [ref=e144] [cursor=pointer]: Date of Birth
125
+ - generic [ref=e145]:
126
+ - textbox "Date of Birth" [ref=e146]
127
+ - button "undefined " [ref=e147] [cursor=pointer]:
128
+ - generic [ref=e148]: undefined
129
+ - text: 
130
+ - generic [ref=e149]:
131
+ - generic [ref=e152] [cursor=pointer]: Tax/VAT Number
132
+ - textbox "Tax/VAT Number" [ref=e154]
133
+ - generic [ref=e155]:
134
+ - generic [ref=e158] [cursor=pointer]: Gender
135
+ - combobox "notice-RGC1RR4" [ref=e160]:
136
+ - option [selected]
137
+ - option "Male"
138
+ - option "Female"
139
+ - option "Not Specified"
140
+ - generic [ref=e161]:
141
+ - generic [ref=e164] [cursor=pointer]: Send Welcome Email From
142
+ - combobox "notice-JXR6GV7" [ref=e166]:
143
+ - option "Default Store View" [selected]
144
+ - generic [ref=e169]:
145
+ - strong [ref=e171]: Customer Information
146
+ - list [ref=e172]:
147
+ - listitem [ref=e173]:
148
+ - link "Account Information" [ref=e174] [cursor=pointer]:
149
+ - /url: "#"
150
+ - text: Account Information
151
+ - generic: 
152
+ - contentinfo [ref=e175]:
153
+ - generic [ref=e177]:
154
+ - paragraph [ref=e178]:
155
+ - link "" [ref=e179] [cursor=pointer]:
156
+ - /url: http://magento.com
157
+ - text: Copyright © 2026 Magento Commerce Inc. All rights reserved.
158
+ - generic [ref=e180]:
159
+ - paragraph [ref=e181]:
160
+ - strong [ref=e182]: Magento
161
+ - text: ver. 2.4.6
162
+ - link "Privacy Policy" [ref=e183] [cursor=pointer]:
163
+ - /url: https://www.adobe.com/privacy/policy.html
164
+ - text: "|"
165
+ - link "Account Activity" [ref=e184] [cursor=pointer]:
166
+ - /url: http://localhost:7787/admin/security/session/activity/
167
+ - text: "|"
168
+ - link "Report an Issue" [ref=e185] [cursor=pointer]:
169
+ - /url: https://github.com/magento/magento2/issues
170
+ - text: ‹ ›
page1-snapshot.yml ADDED
@@ -0,0 +1,59 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ - generic [active] [ref=e1]:
2
+ - heading "Movies Forum" [level=1] [ref=e2]
3
+ - navigation [ref=e3]:
4
+ - link "Page 1" [ref=e4] [cursor=pointer]:
5
+ - /url: forum_p1.html
6
+ - link "Page 2" [ref=e5] [cursor=pointer]:
7
+ - /url: forum_p2.html
8
+ - link "Page 3" [ref=e6] [cursor=pointer]:
9
+ - /url: forum_p3.html
10
+ - link "Page 4" [ref=e7] [cursor=pointer]:
11
+ - /url: forum_p4.html
12
+ - link "Page 5" [ref=e8] [cursor=pointer]:
13
+ - /url: forum_p5.html
14
+ - link "+ New post" [ref=e9] [cursor=pointer]:
15
+ - /url: submit.html
16
+ - table [ref=e10]:
17
+ - rowgroup [ref=e11]:
18
+ - row "Title Author Upvotes Comments Type" [ref=e12]:
19
+ - columnheader "Title" [ref=e13]
20
+ - columnheader "Author" [ref=e14]
21
+ - columnheader "Upvotes" [ref=e15]
22
+ - columnheader "Comments" [ref=e16]
23
+ - columnheader "Type" [ref=e17]
24
+ - row "Schema kernel dataset system 2012 Eve 774 177" [ref=e18]:
25
+ - cell "Schema kernel dataset system 2012" [ref=e19]
26
+ - cell "Eve" [ref=e20]
27
+ - cell "774" [ref=e21]
28
+ - cell "177" [ref=e22]
29
+ - cell [ref=e23]
30
+ - row "Cache matrix system parser? Ivy 772 145" [ref=e24]:
31
+ - cell "Cache matrix system parser?" [ref=e25]
32
+ - cell "Ivy" [ref=e26]
33
+ - cell "772" [ref=e27]
34
+ - cell "145" [ref=e28]
35
+ - cell [ref=e29]
36
+ - row "Gradient cache parser tensor 2003 Alice 406 55" [ref=e30]:
37
+ - cell "Gradient cache parser tensor 2003" [ref=e31]
38
+ - cell "Alice" [ref=e32]
39
+ - cell "406" [ref=e33]
40
+ - cell "55" [ref=e34]
41
+ - cell [ref=e35]
42
+ - row "Parser cache system module 2015 Charlie 34 136" [ref=e36]:
43
+ - cell "Parser cache system module 2015" [ref=e37]
44
+ - cell "Charlie" [ref=e38]
45
+ - cell "34" [ref=e39]
46
+ - cell "136" [ref=e40]
47
+ - cell [ref=e41]
48
+ - row "Cache socket kernel cache 2007 Henry 472 200" [ref=e42]:
49
+ - cell "Cache socket kernel cache 2007" [ref=e43]
50
+ - cell "Henry" [ref=e44]
51
+ - cell "472" [ref=e45]
52
+ - cell "200" [ref=e46]
53
+ - cell [ref=e47]
54
+ - row "Logging thread parser tensor? Diana 476 12 IMAGE" [ref=e48]:
55
+ - cell "Logging thread parser tensor?" [ref=e49]
56
+ - cell "Diana" [ref=e50]
57
+ - cell "476" [ref=e51]
58
+ - cell "12" [ref=e52]
59
+ - cell "IMAGE" [ref=e53]
page2-main-text.txt ADDED
@@ -0,0 +1 @@
 
 
1
+ "/f/news\nSubmissions\nComments\n Hot \nCourt ruling: High earners can't prevent media accessing their tax data. yle.fi\n\nSubmitted by FINCoffeeDaddy t3_zrh5fp 3 years ago\n\n80 comments\n3396\nRussian founder of cryptocurrency exchange arrested in Miami, accused of dealing with dirty money as part of \"high-tech axis of crypto crime\" cbsnews.com\n\nSubmitted by Clem_Doore t3_10g3zis 3 years ago\n\n127 comments\n3327\n11 East Cleveland officers indicted; videos show them beating, kicking suspects, destroying evidence news5cleveland.com\n\nSubmitted by eastbayted t3_11mi1ad 3 years ago\n\n204 comments\n3312\nIndia blocks BBC documentary on Modi’s role in religious riots | News aljazeera.com\n\nSubmitted by huge_throbbing_pp t3_10j7akj 3 years ago\n\n94 comments\n3243\n5 Connecticut police officers charged after Black man left paralyzed following ride in police van cbsnews.com\n\nSubmitted by AudibleNod t3_z76zxx 4 years ago\n\n150 comments\n3243\n3 White Georgia jail guards arrested in violent assault of Black inmate cbsnews.com\n\nSubmitted by AudibleNod t3_z2aiyk 4 years ago\n\n156 comments\n3215\nShell paid zero windfall tax in UK despite record global profits theguardian.com\n\nSubmitted by hugglenugget t3_yesrv3 4 years ago\n\n133 comments\n3181\nGunmen attack major Shiite holy site in Iran, killing 15 apnews.com\n\nSubmitted by marketrent t3_yhgl0e 4 years ago\n\n198 comments\n3171\n4-year-old whale of one of the world's rarest species is \"likely to die\" after becoming heavily entangled, NOAA says - CBS News cbsnews.com\n\nSubmitted by Simple_Opossum t3_10fadkv 3 years ago\n\n173 comments\n3140\nTexas veteran who entered Senate chamber in military gear on January 6 found guilty | CNN Politics cnn.com\n\nSubmitted by BitterFuture t3_yx77wx 4 years ago\n\n163 comments\n3130\nU.S. Astronaut James McDivitt, commander of Apollo 9, dies at age 93 cbsnews.com\n\nSubmitted by latchkey_adult t3_y7q5ig 4 years ago\n\n45 comments\n3113\nTax Filing Websites Have Been Sending Users’ Financial Information to Facebook themarkup.org\n\nSubmitted by phunky_1 t3_z23c6t 4 years ago\n\n207 comments\n3103\nTikTok confirms employees improperly accessed journalists' user data in hunt for leaks cbc.ca\n\nSubmitted by j1ggy t3_zsv4i2 3 years ago\n\n88 comments\n3084\nLamar Johnson freed 28 years after wrongful murder conviction bbc.com\n\nSubmitted by CommanderMcBragg t3_112zoac 3 years ago\n\n146 comments\n3082\nExclusive: Hyundai to divest Alabama subsidiary following child labor revelations reuters.com\n\nSubmitted by strawberries6 t3_11dfxup 3 years ago\n\n116 comments\n3081\nLance Reddick, 'The Wire' and 'John Wick' star, dies at 60 apnews.com\n\nSubmitted by d01100100 t3_11u6rgq 3 years ago\n\n149 comments\n3074\nSenate confirms first inspector general for Pentagon in 7 years federaltimes.com\n\nSubmitted by Darth__Monday t3_z9lklw 4 years ago\n\n104 comments\n3068\nUS approved 192 licenses for exports to blacklisted Chinese firms early 2022 reuters.com\n\nSubmitted by Neo2199 t3_11i2aqq 3 years ago\n\n55 comments\n3065\nN.Y. case against Trump over hush money to porn star goes to grand jury Monday reuters.com\n\nSubmitted by TheSausageKing t3_10q04h9 3 years ago\n\n94 comments\n3033\nEx-Bucks County D.A.R.E. Police Officer James Carey Pleads No Contest to Sexually Assaulting 5 Teen Boys nbcphiladelphia.com\n\nSubmitted by ninjascotsman t3_yf6qjw 4 years ago\n\n186 comments\n2983\nSheriffs Offered Caribbean Cruises and Florida Retreats as Part of Jail Telecom Contracts theappeal.org\n\nSubmitted by 1angrylittlevoice t3_y80vgo 4 years ago\n\n109 comments\n2979\nBanksy artwork appears on damaged building in Ukraine theguardian.com\n\nSubmitted by dutchgypsy t3_ysrowv 4 years ago\n\n187 comments\n2970\nPolice Captain Criminally Charged 1 Day after Retirement kwch.com\n\nSubmitted by JustZonesing t3_121zf3s 3 years ago\n\n123 comments\n2948\nBlack-naped pheasant-pigeon sighted in PNG for first time in 140 years bbc.com\n\nSubmitted by Newgripper1221 t3_yztc9x 4 years ago\n\n101 comments\n2941\nDOJ sues pharma giant AmerisourceBergen Corp. for allegedly helping to fuel the opioid epidemic cbsnews.com\n\nSubmitted by alwaysrm4hope t3_zz1nyv 3 years ago\n\n95 comments\n2926\nMore"
pixi.lock ADDED
The diff for this file is too large to render. See raw diff
 
registration-page.png ADDED
runs/realweb3.log ADDED
The diff for this file is too large to render. See raw diff
 
runs/realweb4.log ADDED
@@ -0,0 +1,1478 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ Loaded 4 DeepSeek key(s): ...6eda, ...5ffa, ...2aca, ...6ec1
2
+
3
+ === Building 400 task(s) ===
4
+ ✓ synth_web_search_fact_01: built
5
+ ✓ synth_web_search_fact_02: built
6
+ ✓ synth_web_table_extract_03: built
7
+ ✓ synth_web_search_fact_04: built
8
+ ✓ synth_web_search_fact_05: built
9
+ ✓ synth_web_table_extract_06: built
10
+ ✓ synth_web_search_fact_07: built
11
+ ✓ synth_web_search_fact_08: built
12
+ ✓ synth_web_table_extract_09: built
13
+ ✓ synth_web_search_fact_10: built
14
+ ✓ synth_web_search_fact_11: built
15
+ ✓ synth_web_table_extract_12: built
16
+ ✓ synth_web_search_fact_13: built
17
+ ✓ synth_web_search_fact_14: built
18
+ ✓ synth_web_table_extract_15: built
19
+ ✓ synth_web_search_fact_16: built
20
+ ✓ synth_web_search_fact_17: built
21
+ ✓ synth_web_table_extract_18: built
22
+ ✓ synth_web_search_fact_19: built
23
+ ✓ synth_web_search_fact_20: built
24
+ ✓ synth_web_table_extract_21: built
25
+ ✓ synth_web_search_fact_22: built
26
+ ✓ synth_web_search_fact_23: built
27
+ ✓ synth_web_table_extract_24: built
28
+ ✓ synth_web_search_fact_25: built
29
+ ✓ synth_web_search_fact_26: built
30
+ ✓ synth_web_table_extract_27: built
31
+ ✓ synth_web_search_fact_28: built
32
+ ✓ synth_web_search_fact_29: built
33
+ ✓ synth_web_table_extract_30: built
34
+ ✓ synth_web_search_fact_31: built
35
+ ✓ synth_web_search_fact_32: built
36
+ ✓ synth_web_table_extract_33: built
37
+ ✓ synth_web_search_fact_34: built
38
+ ✓ synth_web_search_fact_35: built
39
+ ✓ synth_web_table_extract_36: built
40
+ ✓ synth_web_search_fact_37: built
41
+ ✓ synth_web_search_fact_38: built
42
+ ✓ synth_web_table_extract_39: built
43
+ ✓ synth_web_search_fact_40: built
44
+ ✓ synth_web_search_fact_41: built
45
+ ✓ synth_web_table_extract_42: built
46
+ ✓ synth_web_search_fact_43: built
47
+ ✓ synth_web_search_fact_44: built
48
+ ✓ synth_web_table_extract_45: built
49
+ ✓ synth_web_search_fact_46: built
50
+ ✓ synth_web_search_fact_47: built
51
+ ✓ synth_web_table_extract_48: built
52
+ ✓ synth_web_search_fact_49: built
53
+ ✓ synth_web_search_fact_50: built
54
+ ✓ synth_web_table_extract_51: built
55
+ ✓ synth_web_search_fact_52: built
56
+ ✓ synth_web_search_fact_53: built
57
+ ✓ synth_web_table_extract_54: built
58
+ ✓ synth_web_search_fact_55: built
59
+ ✓ synth_web_search_fact_56: built
60
+ ✓ synth_web_table_extract_57: built
61
+ ✓ synth_web_search_fact_58: built
62
+ ✓ synth_web_search_fact_59: built
63
+ ✓ synth_web_table_extract_60: built
64
+ ✓ synth_web_search_fact_61: built
65
+ ✓ synth_web_search_fact_62: built
66
+ ✓ synth_web_table_extract_63: built
67
+ ✓ synth_web_search_fact_64: built
68
+ ✓ synth_web_search_fact_65: built
69
+ ✓ synth_web_table_extract_66: built
70
+ ✓ synth_web_search_fact_67: built
71
+ ✓ synth_web_search_fact_68: built
72
+ ✓ synth_web_table_extract_69: built
73
+ ✓ synth_web_search_fact_70: built
74
+ ✓ synth_web_search_fact_71: built
75
+ ✓ synth_web_table_extract_72: built
76
+ ✓ synth_web_search_fact_73: built
77
+ ✓ synth_web_search_fact_74: built
78
+ ✓ synth_web_table_extract_75: built
79
+ ✓ synth_web_search_fact_76: built
80
+ ✓ synth_web_search_fact_77: built
81
+ ✓ synth_web_table_extract_78: built
82
+ ✓ synth_web_search_fact_79: built
83
+ ✓ synth_web_search_fact_80: built
84
+ ✓ synth_web_table_extract_81: built
85
+ ✓ synth_web_search_fact_82: built
86
+ ✓ synth_web_search_fact_83: built
87
+ ✓ synth_web_table_extract_84: built
88
+ ✓ synth_web_search_fact_85: built
89
+ ✓ synth_web_search_fact_86: built
90
+ ✓ synth_web_table_extract_87: built
91
+ ✓ synth_web_search_fact_88: built
92
+ ✓ synth_web_search_fact_89: built
93
+ ✓ synth_web_table_extract_90: built
94
+ ✓ synth_web_search_fact_91: built
95
+ ✓ synth_web_search_fact_92: built
96
+ ✓ synth_web_table_extract_93: built
97
+ ✓ synth_web_search_fact_94: built
98
+ ✓ synth_web_search_fact_95: built
99
+ ✓ synth_web_table_extract_96: built
100
+ ✓ synth_web_search_fact_97: built
101
+ ✓ synth_web_search_fact_98: built
102
+ ✓ synth_web_table_extract_99: built
103
+ ✓ synth_web_search_fact_100: built
104
+ ✓ synth_web_search_fact_101: built
105
+ ✓ synth_web_table_extract_102: built
106
+ ✓ synth_web_search_fact_103: built
107
+ ✓ synth_web_search_fact_104: built
108
+ ✓ synth_web_table_extract_105: built
109
+ ✓ synth_web_search_fact_106: built
110
+ ✓ synth_web_search_fact_107: built
111
+ ✓ synth_web_table_extract_108: built
112
+ ✓ synth_web_search_fact_109: built
113
+ ✓ synth_web_search_fact_110: built
114
+ ✓ synth_web_table_extract_111: built
115
+ ✓ synth_web_search_fact_112: built
116
+ ✓ synth_web_search_fact_113: built
117
+ ✓ synth_web_table_extract_114: built
118
+ ✓ synth_web_search_fact_115: built
119
+ ✓ synth_web_search_fact_116: built
120
+ ✓ synth_web_table_extract_117: built
121
+ ✓ synth_web_search_fact_118: built
122
+ ✓ synth_web_search_fact_119: built
123
+ ✓ synth_web_table_extract_120: built
124
+ ✓ synth_web_search_fact_121: built
125
+ ✓ synth_web_search_fact_122: built
126
+ ✓ synth_web_table_extract_123: built
127
+ ✓ synth_web_search_fact_124: built
128
+ ✓ synth_web_search_fact_125: built
129
+ ✓ synth_web_table_extract_126: built
130
+ ✓ synth_web_search_fact_127: built
131
+ ✓ synth_web_search_fact_128: built
132
+ ✓ synth_web_table_extract_129: built
133
+ ✓ synth_web_search_fact_130: built
134
+ ✓ synth_web_search_fact_131: built
135
+ ✓ synth_web_table_extract_132: built
136
+ ✓ synth_web_search_fact_133: built
137
+ ✓ synth_web_search_fact_134: built
138
+ ✓ synth_web_table_extract_135: built
139
+ ✓ synth_web_search_fact_136: built
140
+ ✓ synth_web_search_fact_137: built
141
+ ✓ synth_web_table_extract_138: built
142
+ ✓ synth_web_search_fact_139: built
143
+ ✓ synth_web_search_fact_140: built
144
+ ✓ synth_web_table_extract_141: built
145
+ ✓ synth_web_search_fact_142: built
146
+ ✓ synth_web_search_fact_143: built
147
+ ✓ synth_web_table_extract_144: built
148
+ ✓ synth_web_search_fact_145: built
149
+ ✓ synth_web_search_fact_146: built
150
+ ✓ synth_web_table_extract_147: built
151
+ ✓ synth_web_search_fact_148: built
152
+ ✓ synth_web_search_fact_149: built
153
+ ✓ synth_web_table_extract_150: built
154
+ ✓ synth_web_search_fact_151: built
155
+ ✓ synth_web_search_fact_152: built
156
+ ✓ synth_web_table_extract_153: built
157
+ ✓ synth_web_search_fact_154: built
158
+ ✓ synth_web_search_fact_155: built
159
+ ✓ synth_web_table_extract_156: built
160
+ ✓ synth_web_search_fact_157: built
161
+ ✓ synth_web_search_fact_158: built
162
+ ✓ synth_web_table_extract_159: built
163
+ ✓ synth_web_search_fact_160: built
164
+ ✓ synth_web_search_fact_161: built
165
+ ✓ synth_web_table_extract_162: built
166
+ ✓ synth_web_search_fact_163: built
167
+ ✓ synth_web_search_fact_164: built
168
+ ✓ synth_web_table_extract_165: built
169
+ ✓ synth_web_search_fact_166: built
170
+ ✓ synth_web_search_fact_167: built
171
+ ✓ synth_web_table_extract_168: built
172
+ ✓ synth_web_search_fact_169: built
173
+ ✓ synth_web_search_fact_170: built
174
+ ✓ synth_web_table_extract_171: built
175
+ ✓ synth_web_search_fact_172: built
176
+ ✓ synth_web_search_fact_173: built
177
+ ✓ synth_web_table_extract_174: built
178
+ ✓ synth_web_search_fact_175: built
179
+ ✓ synth_web_search_fact_176: built
180
+ ✓ synth_web_table_extract_177: built
181
+ ✓ synth_web_search_fact_178: built
182
+ ✓ synth_web_search_fact_179: built
183
+ ✓ synth_web_table_extract_180: built
184
+ ✓ synth_web_search_fact_181: built
185
+ ✓ synth_web_search_fact_182: built
186
+ ✓ synth_web_table_extract_183: built
187
+ ✓ synth_web_search_fact_184: built
188
+ ✓ synth_web_search_fact_185: built
189
+ ✓ synth_web_table_extract_186: built
190
+ ✓ synth_web_search_fact_187: built
191
+ ✓ synth_web_search_fact_188: built
192
+ ✓ synth_web_table_extract_189: built
193
+ ✓ synth_web_search_fact_190: built
194
+ ✓ synth_web_search_fact_191: built
195
+ ✓ synth_web_table_extract_192: built
196
+ ✓ synth_web_search_fact_193: built
197
+ ✓ synth_web_search_fact_194: built
198
+ ✓ synth_web_table_extract_195: built
199
+ ✓ synth_web_search_fact_196: built
200
+ ✓ synth_web_search_fact_197: built
201
+ ✓ synth_web_table_extract_198: built
202
+ ✓ synth_web_search_fact_199: built
203
+ ✓ synth_web_search_fact_200: built
204
+ ✓ synth_web_table_extract_201: built
205
+ ✓ synth_web_search_fact_202: built
206
+ ✓ synth_web_search_fact_203: built
207
+ ✓ synth_web_table_extract_204: built
208
+ ✓ synth_web_search_fact_205: built
209
+ ✓ synth_web_search_fact_206: built
210
+ ✓ synth_web_table_extract_207: built
211
+ ✓ synth_web_search_fact_208: built
212
+ ✓ synth_web_search_fact_209: built
213
+ ✓ synth_web_table_extract_210: built
214
+ ✓ synth_web_search_fact_211: built
215
+ ✓ synth_web_search_fact_212: built
216
+ ✓ synth_web_table_extract_213: built
217
+ ✓ synth_web_search_fact_214: built
218
+ ✓ synth_web_search_fact_215: built
219
+ ✓ synth_web_table_extract_216: built
220
+ ✓ synth_web_search_fact_217: built
221
+ ✓ synth_web_search_fact_218: built
222
+ ✓ synth_web_table_extract_219: built
223
+ ✓ synth_web_search_fact_220: built
224
+ ✓ synth_web_search_fact_221: built
225
+ ✓ synth_web_table_extract_222: built
226
+ ✓ synth_web_search_fact_223: built
227
+ ✓ synth_web_search_fact_224: built
228
+ ✓ synth_web_table_extract_225: built
229
+ ✓ synth_web_search_fact_226: built
230
+ ✓ synth_web_search_fact_227: built
231
+ ✓ synth_web_table_extract_228: built
232
+ ✓ synth_web_search_fact_229: built
233
+ ✓ synth_web_search_fact_230: built
234
+ ✓ synth_web_table_extract_231: built
235
+ ✓ synth_web_search_fact_232: built
236
+ ✓ synth_web_search_fact_233: built
237
+ ✓ synth_web_table_extract_234: built
238
+ ✓ synth_web_search_fact_235: built
239
+ ✓ synth_web_search_fact_236: built
240
+ ✓ synth_web_table_extract_237: built
241
+ ✓ synth_web_search_fact_238: built
242
+ ✓ synth_web_search_fact_239: built
243
+ ✓ synth_web_table_extract_240: built
244
+ ✓ synth_web_search_fact_241: built
245
+ ✓ synth_web_search_fact_242: built
246
+ ✓ synth_web_table_extract_243: built
247
+ ✓ synth_web_search_fact_244: built
248
+ ✓ synth_web_search_fact_245: built
249
+ ✓ synth_web_table_extract_246: built
250
+ ✓ synth_web_search_fact_247: built
251
+ ✓ synth_web_search_fact_248: built
252
+ ✓ synth_web_table_extract_249: built
253
+ ✓ synth_web_search_fact_250: built
254
+ ✓ synth_web_search_fact_251: built
255
+ ✓ synth_web_table_extract_252: built
256
+ ✓ synth_web_search_fact_253: built
257
+ ✓ synth_web_search_fact_254: built
258
+ ✓ synth_web_table_extract_255: built
259
+ ✓ synth_web_search_fact_256: built
260
+ ✓ synth_web_search_fact_257: built
261
+ ✓ synth_web_table_extract_258: built
262
+ ✓ synth_web_search_fact_259: built
263
+ ✓ synth_web_search_fact_260: built
264
+ ✓ synth_web_table_extract_261: built
265
+ ✓ synth_web_search_fact_262: built
266
+ ✓ synth_web_search_fact_263: built
267
+ ✓ synth_web_table_extract_264: built
268
+ ✓ synth_web_search_fact_265: built
269
+ ✓ synth_web_search_fact_266: built
270
+ ✓ synth_web_table_extract_267: built
271
+ ✓ synth_web_search_fact_268: built
272
+ ✓ synth_web_search_fact_269: built
273
+ ✓ synth_web_table_extract_270: built
274
+ ✓ synth_web_search_fact_271: built
275
+ ✓ synth_web_search_fact_272: built
276
+ ✓ synth_web_table_extract_273: built
277
+ ✓ synth_web_search_fact_274: built
278
+ ✓ synth_web_search_fact_275: built
279
+ ✓ synth_web_table_extract_276: built
280
+ ✓ synth_web_search_fact_277: built
281
+ ✓ synth_web_search_fact_278: built
282
+ ✓ synth_web_table_extract_279: built
283
+ ✓ synth_web_search_fact_280: built
284
+ ✓ synth_web_search_fact_281: built
285
+ ✓ synth_web_table_extract_282: built
286
+ ✓ synth_web_search_fact_283: built
287
+ ✓ synth_web_search_fact_284: built
288
+ ✓ synth_web_table_extract_285: built
289
+ ✓ synth_web_search_fact_286: built
290
+ ✓ synth_web_search_fact_287: built
291
+ ✓ synth_web_table_extract_288: built
292
+ ✓ synth_web_search_fact_289: built
293
+ ✓ synth_web_search_fact_290: built
294
+ ✓ synth_web_table_extract_291: built
295
+ ✓ synth_web_search_fact_292: built
296
+ ✓ synth_web_search_fact_293: built
297
+ ✓ synth_web_table_extract_294: built
298
+ ✓ synth_web_search_fact_295: built
299
+ ✓ synth_web_search_fact_296: built
300
+ ✓ synth_web_table_extract_297: built
301
+ ✓ synth_web_search_fact_298: built
302
+ ✓ synth_web_search_fact_299: built
303
+ ✓ synth_web_table_extract_300: built
304
+ ✓ synth_web_search_fact_301: built
305
+ ✓ synth_web_search_fact_302: built
306
+ ✓ synth_web_table_extract_303: built
307
+ ✓ synth_web_search_fact_304: built
308
+ ✓ synth_web_search_fact_305: built
309
+ ✓ synth_web_table_extract_306: built
310
+ ✓ synth_web_search_fact_307: built
311
+ ✓ synth_web_search_fact_308: built
312
+ ✓ synth_web_table_extract_309: built
313
+ ✓ synth_web_search_fact_310: built
314
+ ✓ synth_web_search_fact_311: built
315
+ ✓ synth_web_table_extract_312: built
316
+ ✓ synth_web_search_fact_313: built
317
+ ✓ synth_web_search_fact_314: built
318
+ ✓ synth_web_table_extract_315: built
319
+ ✓ synth_web_search_fact_316: built
320
+ ✓ synth_web_search_fact_317: built
321
+ ✓ synth_web_table_extract_318: built
322
+ ✓ synth_web_search_fact_319: built
323
+ ✓ synth_web_search_fact_320: built
324
+ ✓ synth_web_table_extract_321: built
325
+ ✓ synth_web_search_fact_322: built
326
+ ✓ synth_web_search_fact_323: built
327
+ ✓ synth_web_table_extract_324: built
328
+ ✓ synth_web_search_fact_325: built
329
+ ✓ synth_web_search_fact_326: built
330
+ ✓ synth_web_table_extract_327: built
331
+ ✓ synth_web_search_fact_328: built
332
+ ✓ synth_web_search_fact_329: built
333
+ ✓ synth_web_table_extract_330: built
334
+ ✓ synth_web_search_fact_331: built
335
+ ✓ synth_web_search_fact_332: built
336
+ ✓ synth_web_table_extract_333: built
337
+ ✓ synth_web_search_fact_334: built
338
+ ✓ synth_web_search_fact_335: built
339
+ ✓ synth_web_table_extract_336: built
340
+ ✓ synth_web_search_fact_337: built
341
+ ✓ synth_web_search_fact_338: built
342
+ ✓ synth_web_table_extract_339: built
343
+ ✓ synth_web_search_fact_340: built
344
+ ✓ synth_web_search_fact_341: built
345
+ ✓ synth_web_table_extract_342: built
346
+ ✓ synth_web_search_fact_343: built
347
+ ✓ synth_web_search_fact_344: built
348
+ ✓ synth_web_table_extract_345: built
349
+ ✓ synth_web_search_fact_346: built
350
+ ✓ synth_web_search_fact_347: built
351
+ ✓ synth_web_table_extract_348: built
352
+ ✓ synth_web_search_fact_349: built
353
+ ✓ synth_web_search_fact_350: built
354
+ ✓ synth_web_table_extract_351: built
355
+ ✓ synth_web_search_fact_352: built
356
+ ✓ synth_web_search_fact_353: built
357
+ ✓ synth_web_table_extract_354: built
358
+ ✓ synth_web_search_fact_355: built
359
+ ✓ synth_web_search_fact_356: built
360
+ ✓ synth_web_table_extract_357: built
361
+ ✓ synth_web_search_fact_358: built
362
+ ✓ synth_web_search_fact_359: built
363
+ ✓ synth_web_table_extract_360: built
364
+ ✓ synth_web_search_fact_361: built
365
+ ✓ synth_web_search_fact_362: built
366
+ ✓ synth_web_table_extract_363: built
367
+ ✓ synth_web_search_fact_364: built
368
+ ✓ synth_web_search_fact_365: built
369
+ ✓ synth_web_table_extract_366: built
370
+ ✓ synth_web_search_fact_367: built
371
+ ✓ synth_web_search_fact_368: built
372
+ ✓ synth_web_table_extract_369: built
373
+ ✓ synth_web_search_fact_370: built
374
+ ✓ synth_web_search_fact_371: built
375
+ ✓ synth_web_table_extract_372: built
376
+ ✓ synth_web_search_fact_373: built
377
+ ✓ synth_web_search_fact_374: built
378
+ ✓ synth_web_table_extract_375: built
379
+ ✓ synth_web_search_fact_376: built
380
+ ✓ synth_web_search_fact_377: built
381
+ ✓ synth_web_table_extract_378: built
382
+ ✓ synth_web_search_fact_379: built
383
+ ✓ synth_web_search_fact_380: built
384
+ ✓ synth_web_table_extract_381: built
385
+ ✓ synth_web_search_fact_382: built
386
+ ✓ synth_web_search_fact_383: built
387
+ ✓ synth_web_table_extract_384: built
388
+ ✓ synth_web_search_fact_385: built
389
+ ✓ synth_web_search_fact_386: built
390
+ ✓ synth_web_table_extract_387: built
391
+ ✓ synth_web_search_fact_388: built
392
+ ✓ synth_web_search_fact_389: built
393
+ ✓ synth_web_table_extract_390: built
394
+ ✓ synth_web_search_fact_391: built
395
+ ✓ synth_web_search_fact_392: built
396
+ ✓ synth_web_table_extract_393: built
397
+ ✓ synth_web_search_fact_394: built
398
+ ✓ synth_web_search_fact_395: built
399
+ ✓ synth_web_table_extract_396: built
400
+ ✓ synth_web_search_fact_397: built
401
+ ✓ synth_web_search_fact_398: built
402
+ ✓ synth_web_table_extract_399: built
403
+ ✓ synth_web_search_fact_400: built
404
+ Serving pages at http://127.0.0.1:55275/ (400 task(s))
405
+
406
+ === Real-web tasks: 400 rollouts @ 6 workers ===
407
+ | browser_navigate {"url": "https://arxiv.org/abs/1312.6114"}
408
+ | browser_navigate {"url": "https://eval-web.mcpmark.ai/extraction"}
409
+ | browser_navigate {"url": "https://arxiv.org/abs/2111.06377"}
410
+ | browser_snapshot {}
411
+ | browser_snapshot {}
412
+ | browser_snapshot {}
413
+ | 2013
414
+ |
415
+ |
416
+ | Task ended with the finish reason from messages being 'stop'.
417
+ | Token usage: Total: 18,495 | Input: 18,330 | Output: 165 | Reasoning: 74
418
+ | Turns: 3
419
+ [web 1/400] PASS synth_web_search_fact_01 run-1 turns=3
420
+ | browser_navigate {"url": "https://eval-web.mcpmark.ai/extraction"}
421
+ | cs.CV
422
+ |
423
+ |
424
+ | Task ended with the finish reason from messages being 'stop'.
425
+ | Token usage: Total: 18,673 | Input: 18,453 | Output: 220 | Reasoning: 128
426
+ | Turns: 3
427
+ [web 2/400] PASS synth_web_search_fact_04 run-1 turns=3
428
+ | browser_snapshot {}
429
+ | browser_navigate {"url": "https://arxiv.org/abs/1608.06993"}
430
+ | I can see 10 rows on page 1 with 10 pages total. I need to check all pages to find the row with the most views. Let me navigate through each page.
431
+ | browser_click {"target": "ref=e145","element": "Page 2 button"}
432
+ | browser_snapshot {}
433
+ | browser_navigate {"url": "https://arxiv.org/abs/1506.01497"}
434
+ | I don't see "Kubernetes Operators" on page 1. Let me check other pages. I'll start with page 2.
435
+ | browser_click {"target": "ref=e145","element": "Page 2 button"}
436
+ | browser_click {"target": "[ref=e145]","element": "Page 2 button"}
437
+ | Densely Connected Convolutional Networks
438
+ |
439
+ |
440
+ | Task ended with the finish reason from messages being 'stop'.
441
+ | Token usage: Total: 18,644 | Input: 18,446 | Output: 198 | Reasoning: 102
442
+ | Turns: 3
443
+ [web 3/400] PASS synth_web_search_fact_07 run-1 turns=3
444
+ | browser_snapshot {}
445
+ | browser_snapshot {}
446
+ | browser_navigate {"url": "https://arxiv.org/search/"}
447
+ | browser_click {"target": "e145","element": "Page 2 button"}
448
+ | Faster R-CNN: Towards Real-Time Object Detection with Region Proposal Networks
449
+ |
450
+ |
451
+ | Task ended with the finish reason from messages being 'stop'.
452
+ | Token usage: Total: 18,537 | Input: 18,284 | Output: 253 | Reasoning: 149
453
+ | Turns: 3
454
+ [web 4/400] PASS synth_web_search_fact_08 run-1 turns=3
455
+ | browser_snapshot {}
456
+ | browser_snapshot {}
457
+ | browser_fill_form {"fields": [{"target": "[ref=e44]","name": "search term","type": "textbox","value": "Adam: A Method for Stochastic Optimization"}]}
458
+ | browser_navigate {"url": "https://eval-web.mcpmark.ai/extraction"}
459
+ | Still not on page 2. Let me continue to page 3.
460
+ | browser_snapshot {}
461
+ | browser_click {"target": "e146","element": "Page 3 button"}
462
+ | browser_type {"target": "[ref=e22]","text": "Adam: A Method for Stochastic Optimization"}
463
+ | browser_navigate {"url": "https://arxiv.org/abs/1411.4038"}
464
+ | Let me use a programmatic approach to extract data from all pages efficiently.
465
+ | browser_run_code_unsafe {"code": "async (page) => {\n // Collect all data across pages\n const allRows = [];\n \n for (let pageNum = 1; pageNum <= 10; p...
466
+ | browser_snapshot {}
467
+ | browser_snapshot {}
468
+ | browser_snapshot {}
469
+ | 2014
470
+ |
471
+ |
472
+ | Task ended with the finish reason from messages being 'stop'.
473
+ | Token usage: Total: 18,243 | Input: 18,030 | Output: 213 | Reasoning: 122
474
+ | Turns: 3
475
+ [web 5/400] PASS synth_web_search_fact_10 run-1 turns=3
476
+ | I need to check all pages. Let me navigate through all pages to find the row with the highest likes.
477
+ | browser_click {"target": "ref=e145","element": "Page 2 button"}
478
+ | browser_navigate {"url": "https://arxiv.org/search/?query=%22Adam%3A+A+Method+for+Stochastic+Optimization%22&searchtype=all"}
479
+ | Let me try a simpler approach - extract data page by page.
480
+ | Let me use JavaScript to search for "Kubernetes Operators" efficiently.
481
+ | browser_evaluate {"function": "() => {\n const rows = [];\n const rowElements = document.querySelectorAll('table tbody tr, table tr');\n for (const ...
482
+ | browser_snapshot {}
483
+ | browser_evaluate {"function": "() => {\n const rows = document.querySelectorAll('table tr');\n for (const row of rows) {\n const cells = row.querySelect...
484
+ | browser_click {"target": "button:has-text(\"2\")","element": "Page 2 button"}
485
+ | Page 1 data collected. Now let me go to page 2.
486
+ | browser_navigate {"url": "https://arxiv.org/abs/1506.01497"}
487
+ | Let me go to page 4.
488
+ | browser_click {"target": "button:has-text(\"Next\")","element": "Next button"}
489
+ | browser_snapshot {}
490
+ | browser_click {"element": "Page 4 button","target": "e147"}
491
+ | browser_wait_for {"time": 3}
492
+ | browser_snapshot {}
493
+ | 4
494
+ |
495
+ |
496
+ | Task ended with the finish reason from messages being 'stop'.
497
+ | Token usage: Total: 18,463 | Input: 18,278 | Output: 185 | Reasoning: 95
498
+ | Turns: 3
499
+ | browser_evaluate {"function": "() => {\n const rows = [];\n const rowElements = document.querySelectorAll('table tbody tr, table tr');\n for (const ...
500
+ | Page 2 high is 945. Let me continue through the rest.
501
+ [web 6/400] PASS synth_web_search_fact_11 run-1 turns=3
502
+ | browser_evaluate {"function": "() => {\n const rows = document.querySelectorAll('table tr');\n for (const row of rows) {\n const cells = row.querySelect...
503
+ | browser_click {"target": "button:has-text(\"3\")","element": "Page 3 button"}
504
+ | Page 2 max: 16,234. Going to page 3.
505
+ | browser_snapshot {}
506
+ | browser_navigate {"url": "https://arxiv.org/abs/1412.6980"}
507
+ | Let me try a faster approach - checking if there's an API I can query.
508
+ | browser_network_requests {"static": false,"filter": "api"}
509
+ | browser_click {"target": "button:has-text(\"Next\")","element": "Next button"}
510
+ | browser_snapshot {}
511
+ | browser_network_requests {"static": false}
512
+ | Diederik P. Kingma
513
+ |
514
+ |
515
+ | Task ended with the finish reason from messages being 'stop'.
516
+ | Token usage: Total: 106,823 | Input: 105,877 | Output: 946 | Reasoning: 430
517
+ | Turns: 11
518
+ [web 7/400] PASS synth_web_search_fact_05 run-1 turns=11
519
+ | browser_navigate {"url": "https://eval-web.mcpmark.ai/extraction"}
520
+ | browser_evaluate {"function": "() => {\n const rows = [];\n const rowElements = document.querySelectorAll('table tbody tr, table tr');\n for (const ...
521
+ | Page 4.
522
+ | Let me use a script to search all pages programmatically.
523
+ | browser_evaluate {"function": "async () => {\n // Function to check current page\n function checkPage() {\n const rows = document.querySelectorAll('tabl...
524
+ | browser_click {"target": "button:has-text(\"Next\")","element": "Next button"}
525
+ | browser_wait_for {"time": 2}
526
+ | Let me use a faster approach to collect all data across pages.
527
+ | browser_evaluate {"function": "async () => {\n const allData = [];\n // First collect current page data\n const rows = document.querySelectorAll('table tb...
528
+ | browser_navigate {"url": "https://arxiv.org/abs/1608.06993"}
529
+ | browser_snapshot {}
530
+ | browser_evaluate {"function": "() => {\n const rows = [];\n const rowElements = document.querySelectorAll('table tbody tr, table tr');\n for (const ...
531
+ | browser_snapshot {}
532
+ | Page 5.
533
+ | Densely Connected Convolutional Networks
534
+ |
535
+ |
536
+ | Task ended with the finish reason from messages being 'stop'.
537
+ | Token usage: Total: 18,648 | Input: 18,462 | Output: 186 | Reasoning: 90
538
+ | Turns: 3
539
+ [web 8/400] PASS synth_web_search_fact_13 run-1 turns=3
540
+ | browser_click {"target": "button:has-text(\"Next\")","element": "Next button"}
541
+ Tool call 'browser_navigate' timed out after 60 seconds
542
+ | browser_navigate {"url": "https://www.google.com"}
543
+ | browser_evaluate {"function": "async () => {\n function checkPage() {\n const rows = document.querySelectorAll('table tr');\n for (const row of rows) ...
544
+ | browser_navigate {"url": "https://arxiv.org/search/?query=Deep+contextualized+word+representations&searchtype=all"}
545
+ | browser_evaluate {"function": "() => {\n const rows = [];\n const rowElements = document.querySelectorAll('table tbody tr, table tr');\n for (const ...
546
+ | browser_snapshot {}
547
+ | browser_navigate {"url": "https://arxiv.org/abs/1804.02767"}
548
+ | The script found "756". Let me verify by checking which page we're on.
549
+ | browser_snapshot {}
550
+ | Page 6.
551
+ | browser_snapshot {}
552
+ | browser_click {"target": "button:has-text(\"Next\")","element": "Next button"}
553
+ | 756
554
+ |
555
+ |
556
+ | Task ended with the finish reason from messages being 'stop'.
557
+ | Token usage: Total: 168,408 | Input: 166,285 | Output: 2,123 | Reasoning: 649
558
+ | Turns: 16
559
+ | browser_navigate {"url": "https://www.bing.com/search?q=Deep+contextualized+word+representations+arxiv"}
560
+ [web 9/400] PASS synth_web_table_extract_03 run-1 turns=16
561
+ | I need to check all pages to find the smallest rating. Let me go through each page. First, let me see the data on page 1 (already loaded). Smallest so far is 4.1 on page 1. Let me check the remaining pages.
562
+ | browser_run_code_unsafe {"code": "async (page) => {\n const allData = [];\n \n for (let pageNum = 1; pageNum <= 10; pageNum++) {\n // Get current page data\n ...
563
+ | browser_click {"target": "e145","element": "Page 2 button"}
564
+ | browser_snapshot {}
565
+ | cs.CV
566
+ |
567
+ |
568
+ | Task ended with the finish reason from messages being 'stop'.
569
+ | Token usage: Total: 18,025 | Input: 17,771 | Output: 254 | Reasoning: 162
570
+ | Turns: 3
571
+ [web 10/400] PASS synth_web_search_fact_14 run-1 turns=3
572
+ | browser_snapshot {}
573
+ | browser_evaluate {"function": "() => {\n const rows = [];\n const rowElements = document.querySelectorAll('table tbody tr, table tr');\n for (const ...
574
+ | 16,234
575
+ |
576
+ |
577
+ | Task ended with the finish reason from messages being 'stop'.
578
+ | Token usage: Total: 89,045 | Input: 86,970 | Output: 2,075 | Reasoning: 832
579
+ | Turns: 10
580
+ [web 11/400] FAIL synth_web_table_extract_09 run-1 turns=10
581
+ | Page 7.
582
+ | browser_navigate {"url": "https://eval-web.mcpmark.ai/extraction"}
583
+ | browser_click {"target": "button:has-text(\"Next\")","element": "Next button"}
584
+ | browser_navigate {"url": "https://arxiv.org/abs/1802.05365"}
585
+ | browser_navigate {"url": "https://arxiv.org/abs/1607.08022"}
586
+ | browser_snapshot {}
587
+ | browser_snapshot {}
588
+ | browser_navigate {"url": "https://arxiv.org/abs/2006.11239"}
589
+ | browser_snapshot {}
590
+ | Page 2 has 4.0. Let me continue checking remaining pages efficiently. Let me use JavaScript to collect all data across pages.
591
+ | browser_evaluate {"function": "() => {\n const rows = [];\n const rowElements = document.querySelectorAll('table tbody tr, table tr');\n for (const ...
592
+ | browser_snapshot {}
593
+ | Matthew E. Peters
594
+ |
595
+ |
596
+ | Task ended with the finish reason from messages being 'stop'.
597
+ | Token usage: Total: 61,625 | Input: 60,968 | Output: 657 | Reasoning: 317
598
+ | Turns: 8
599
+ [web 12/400] PASS synth_web_search_fact_02 run-1 turns=8
600
+ | Dmitry Ulyanov
601
+ |
602
+ |
603
+ | Task ended with the finish reason from messages being 'stop'.
604
+ | Token usage: Total: 18,311 | Input: 18,103 | Output: 208 | Reasoning: 113
605
+ | Turns: 3
606
+ [web 13/400] PASS synth_web_search_fact_16 run-1 turns=3
607
+ | Page 8.
608
+ | browser_click {"target": "button:has-text(\"Next\")","element": "Next button"}
609
+ | I see 10 rows per page, 97 total records over 10 pages. Let me count across all pages. Starting with page 1, I need to check all pages. Let me click through each page.
610
+ | browser_click {"target": "ref=e145","element": "Page 2 button"}
611
+ | browser_evaluate {"function": "async () => {\n const allData = [];\n // We're on page 2, let's collect from pages 1-10\n for (let page = 1; page <= 10; pa...
612
+ | browser_navigate {"url": "https://arxiv.org/search/"}
613
+ | browser_evaluate {"function": "() => {\n const rows = [];\n const rowElements = document.querySelectorAll('table tbody tr, table tr');\n for (const ...
614
+ | The abstract text from the arXiv page is:
615
+ |
616
+ | We present high quality image synthesis results using diffusion probabilistic models, a class of latent variable models inspired by considerations from nonequilibrium thermodynamics. Our best results are obtained by training on a weighted variational bound designed according to a novel connection between diffusion probabilistic models and denoising score matching with Langevin dynamics, and our models naturally admit a progressive lossy decompression scheme that can be interpreted as a generalization of autoregressive decoding. On the unconditional CIFAR10 dataset, we obtain an Inception score of 9.46 and a state-of-the-art FID score of 3.17. On 256x256 LSUN, we obtain sample quality similar to ProgressiveGAN. Our implementation is available at [this https URL](https://github.com/hojonathanho/diffusion).
617
+ |
618
+ |
619
+ | Task ended with the finish reason from messages being 'stop'.
620
+ | Token usage: Total: 18,534 | Input: 18,027 | Output: 507 | Reasoning: 250
621
+ | Turns: 3
622
+ [web 14/400] FAIL synth_web_search_fact_17 run-1 turns=3
623
+ | browser_navigate {"url": "https://eval-web.mcpmark.ai/extraction"}
624
+ | browser_snapshot {}
625
+ | Page 9.
626
+ | Let me use JavaScript to extract all the data efficiently.
627
+ | browser_click {"target": "button:has-text(\"Next\")","element": "Next button"}
628
+ | browser_evaluate {"function": "() => {\n // Get current page data\n const rows = document.querySelectorAll('table tbody tr');\n const results = [];\n row...
629
+ | browser_wait_for {"time": 2}
630
+ | browser_navigate {"url": "https://arxiv.org/abs/1512.02325"}
631
+ | browser_snapshot {}
632
+ | browser_navigate {"url": "https://arxiv.org/abs/1301.3781"}
633
+ | browser_snapshot {}
634
+ | browser_evaluate {"function": "() => {\n const rows = [];\n const rowElements = document.querySelectorAll('table tbody tr, table tr');\n for (const ...
635
+ | browser_snapshot {}
636
+ | 2015
637
+ |
638
+ |
639
+ | Task ended with the finish reason from messages being 'stop'.
640
+ | Token usage: Total: 29,362 | Input: 29,008 | Output: 354 | Reasoning: 181
641
+ | Turns: 5
642
+ [web 15/400] PASS synth_web_search_fact_19 run-1 turns=5
643
+ | Page 10.
644
+ | Now let me use Playwright code to navigate through all pages and collect all data.
645
+ | Tomas Mikolov
646
+ |
647
+ |
648
+ | Task ended with the finish reason from messages being 'stop'.
649
+ | Token usage: Total: 18,176 | Input: 18,002 | Output: 174 | Reasoning: 80
650
+ | Turns: 3
651
+ | browser_click {"target": "button:has-text(\"Next\")","element": "Next button"}
652
+ [web 16/400] PASS synth_web_search_fact_20 run-1 turns=3
653
+ | browser_evaluate {"function": "() => {\n const rows = [];\n const rowElements = document.querySelectorAll('table tbody tr, table tr');\n for (const ...
654
+ | Let me navigate through all pages to count rows where Likes >= 734. Starting with page 2:
655
+ | browser_click {"target": "[ref=e145]","element": "Page 2 button"}
656
+ | Looking at all 97 records, I found the smallest rating is **4.0** for "Distributed Systems Design" with Views of **6,789**.
657
+ |
658
+ | 6,789
659
+ |
660
+ |
661
+ | Task ended with the finish reason from messages being 'stop'.
662
+ | Token usage: Total: 54,727 | Input: 52,121 | Output: 2,606 | Reasoning: 1,949
663
+ | Turns: 7
664
+ [web 17/400] FAIL synth_web_table_extract_12 run-1 turns=7
665
+ | browser_navigate {"url": "https://eval-web.mcpmark.ai/extraction"}
666
+ | browser_run_code_unsafe {"code": "async (page) => {\n let totalCount = 0;\n const allData = [];\n \n for (let pageNum = 1; pageNum <= 10; pageNum++) {\n // W...
667
+ | browser_snapshot {}
668
+ | browser_snapshot {}
669
+ | browser_navigate {"url": "https://arxiv.org/abs/2111.06377"}
670
+ | browser_snapshot {}
671
+ | I've now gone through all 10 pages. Let me summarize the maximum views across pages:
672
+ |
673
+ | - Page 1: 15,432 (rating 4.9)
674
+ | - Page 2: **16,234** (rating 4.9) ← highest
675
+ | - Page 3: 14,567 (rating 4.9)
676
+ | - Page 4: 15,123 (rating 4.9)
677
+ | - Page 5: 14,234 (rating 4.9)
678
+ | - Page 6: 13,567 (rating 4.8)
679
+ | - Page 7: 15,432 (rating 4.9)
680
+ | - Page 8: 12,345 (rating 4.8)
681
+ | - Page 9: 15,123 (rating 4.9)
682
+ | - Page 10: 12,234 (rating 4.8)
683
+ |
684
+ | The row with the most views is "Performance Monitoring & Optimization" with 16,234 views.
685
+ |
686
+ | 4.9
687
+ |
688
+ |
689
+ | Task ended with the finish reason from messages being 'stop'.
690
+ | Token usage: Total: 360,952 | Input: 356,379 | Output: 4,573 | Reasoning: 1,327
691
+ | Turns: 26
692
+ [web 18/400] PASS synth_web_table_extract_06 run-1 turns=26
693
+ | Let me use JavaScript to efficiently iterate through all pages and count:
694
+ | browser_click {"target": "ref=e145","element": "Page 2 button"}
695
+ | Kaiming He
696
+ |
697
+ |
698
+ | Task ended with the finish reason from messages being 'stop'.
699
+ | Token usage: Total: 18,640 | Input: 18,442 | Output: 198 | Reasoning: 105
700
+ | Turns: 3
701
+ [web 19/400] PASS synth_web_search_fact_23 run-1 turns=3
702
+ | browser_click {"target": "e145","element": "Page 2 button"}
703
+ | I've extracted data from all 10 pages. Let me verify the count:
704
+ |
705
+ | - Page 1: 5 rows (89, 102, 78, 71, 94)
706
+ | - Page 2: 5 rows (69, 82, 108, 73, 87)
707
+ | - Page 3: 6 rows (79, 74, 97, 91, 70, 83)
708
+ | - Page 4: 5 rows (75, 88, 103, 68, 80)
709
+ | - Page 5: 5 rows (76, 89, 95, 77, 72)
710
+ | - Page 6: 4 rows (81, 95, 73, 79)
711
+ | - Page 7: 5 rows (87, 74, 103, 69, 82)
712
+ | - Page 8: 5 rows (71, 89, 78, 75, 91)
713
+ | - Page 9: 5 rows (70, 83, 75, 88, 103)
714
+ | - Page 10: 4 rows (68, 80, 76, 89)
715
+ |
716
+ | Total: 49
717
+ |
718
+ | 49
719
+ |
720
+ |
721
+ | Task ended with the finish reason from messages being 'stop'.
722
+ | Token usage: Total: 41,426 | Input: 39,349 | Output: 2,077 | Reasoning: 1,115
723
+ | Turns: 6
724
+ [web 20/400] PASS synth_web_table_extract_15 run-1 turns=6
725
+ | browser_run_code_unsafe {"code": "async (page) => {\n let totalCount = 0;\n \n // Loop through all 10 pages\n for (let pageNum = 1; pageNum <= 10; pageNum++) {\...
726
+ | browser_snapshot {}
727
+ | browser_navigate {"url": "https://eval-web.mcpmark.ai/extraction"}
728
+ | browser_navigate {"url": "https://arxiv.org/abs/1409.0473"}
729
+ | browser_snapshot {}
730
+ | browser_snapshot {}
731
+ | Let me verify by checking the last page manually. First, navigate back to page 1:
732
+ | browser_click {"target": "e146","element": "Page 3 button"}
733
+ | browser_navigate {"url": "https://arxiv.org/abs/1801.04381"}
734
+ | Neural Machine Translation by Jointly Learning to Align and Translate
735
+ |
736
+ |
737
+ | Task ended with the finish reason from messages being 'stop'.
738
+ | Token usage: Total: 18,858 | Input: 18,626 | Output: 232 | Reasoning: 130
739
+ | Turns: 3
740
+ [web 21/400] PASS synth_web_search_fact_25 run-1 turns=3
741
+ | browser_navigate {"url": "https://eval-web.mcpmark.ai/extraction"}
742
+ | browser_snapshot {}
743
+ | browser_click {"target": "e145","element": "Page 2 button"}
744
+ | browser_wait_for {"time": 1}
745
+ | browser_snapshot {}
746
+ | browser_snapshot {}
747
+ | browser_snapshot {}
748
+ | MobileNetV2: Inverted Residuals and Linear Bottlenecks
749
+ |
750
+ |
751
+ | Task ended with the finish reason from messages being 'stop'.
752
+ | Token usage: Total: 18,787 | Input: 18,561 | Output: 226 | Reasoning: 123
753
+ | Turns: 3
754
+ [web 22/400] PASS synth_web_search_fact_26 run-1 turns=3
755
+ | browser_navigate {"url": "https://eval-web.mcpmark.ai/extraction"}
756
+ | browser_snapshot {}
757
+ | browser_click {"target": "[ref=e153]","element": "Page 10 button"}
758
+ | browser_click {"target": "e146","element": "Page 3 button"}
759
+ | browser_navigate {"url": "https://arxiv.org/abs/2104.14294"}
760
+ | browser_snapshot {}
761
+ | browser_click {"target": "ref=e154","element": "Next page button"}
762
+ | browser_snapshot {}
763
+ | browser_run_code_unsafe {"code": "async (page) => {\n // First, go to page 10 to verify\n await page.locator('button:has-text(\"10\")').click();\n await page.wai...
764
+ | browser_evaluate {"function": "async () => {\n // We'll go through all pages and collect all data\n const allRows = [];\n const totalPages = 10;\n \n fo...
765
+ | browser_click {"target": "button \"Next\"","element": "Next page button"}
766
+ | 7
767
+ |
768
+ |
769
+ | Task ended with the finish reason from messages being 'stop'.
770
+ | Token usage: Total: 18,582 | Input: 18,373 | Output: 209 | Reasoning: 119
771
+ | Turns: 3
772
+ [web 23/400] PASS synth_web_search_fact_28 run-1 turns=3
773
+ | browser_click {"target": "e147","element": "Page 4 button"}
774
+ | browser_snapshot {}
775
+ | Let me re-run the count with per-page output to verify:
776
+ | browser_run_code_unsafe {"code": "async (page) => {\n // Go back to page 1\n await page.locator('button:has-text(\"1\")').click();\n await page.waitForTimeout(50...
777
+ | browser_click {"target": "e148","element": "Page 5 button"}
778
+ | browser_snapshot {}
779
+ | browser_click {"target": "e149","element": "Page 6 button"}
780
+ | browser_run_code_unsafe {"code": "async (page) => {\n let totalQualifying = 0;\n let totalRows = 0;\n \n while (true) {\n // Get all rows in the table body\n...
781
+ | browser_snapshot {}
782
+ | Let me verify by checking the current page state:
783
+ | browser_snapshot {}
784
+ | browser_click {"target": "e150","element": "Page 7 button"}
785
+ | browser_snapshot {}
786
+ | The smallest Views value across all 97 records is **6,789** (from "Distributed Systems Design"), and its corresponding Rating is **4.0**.
787
+ |
788
+ | 4.0
789
+ |
790
+ |
791
+ | Task ended with the finish reason from messages being 'stop'.
792
+ | Token usage: Total: 82,145 | Input: 79,297 | Output: 2,848 | Reasoning: 2,168
793
+ | Turns: 9
794
+ [web 24/400] PASS synth_web_table_extract_21 run-1 turns=9
795
+ | browser_click {"target": "e151","element": "Page 8 button"}
796
+ | browser_snapshot {}
797
+ Tool call 'browser_navigate' timed out after 60 seconds
798
+ | browser_navigate {"url": "https://www.google.com/search?q=Empirical+Evaluation+of+Gated+Recurrent+Neural+Networks+on+Sequence+Modeling+arxiv"}
799
+ | Let me run a more careful verification:
800
+ | browser_click {"target": "e152","element": "Page 9 button"}
801
+ | browser_snapshot {}
802
+ | browser_navigate {"url": "https://eval-web.mcpmark.ai/extraction"}
803
+ | browser_snapshot {}
804
+ | browser_click {"target": "e153","element": "Page 10 button"}
805
+ | browser_snapshot {}
806
+ | browser_run_code_unsafe {"code": "async (page) => {\n // Go back to page 1 first\n await page.click('button:has-text(\"1\")');\n await page.waitForTimeout(500);\...
807
+ | browser_click {"target": "ref=e145","element": "Page 2 button"}
808
+ | 34
809
+ |
810
+ |
811
+ | Task ended with the finish reason from messages being 'stop'.
812
+ | Token usage: Total: 334,757 | Input: 332,736 | Output: 2,021 | Reasoning: 1,060
813
+ | Turns: 21
814
+ [web 25/400] PASS synth_web_table_extract_24 run-1 turns=21
815
+ | browser_click {"target": "button \"2\"","element": "Page 2 button"}
816
+ | browser_run_code_unsafe {"code": "async (page) => {\n // Go back to page 1\n await page.getByTestId('page-1-button').click();\n await page.waitForTimeout(500);\n...
817
+ | browser_navigate {"url": "https://arxiv.org/abs/1512.03385"}
818
+ | browser_snapshot {}
819
+ | 56
820
+ |
821
+ |
822
+ | Task ended with the finish reason from messages being 'stop'.
823
+ | Token usage: Total: 60,609 | Input: 58,106 | Output: 2,503 | Reasoning: 1,604
824
+ | Turns: 8
825
+ [web 26/400] PASS synth_web_table_extract_27 run-1 turns=8
826
+ | browser_run_code_unsafe {"code": "async (page) => {\n // Look through all pages for \"Event-Driven Architecture\"\n let found = null;\n for (let pageNum = 1; pag...
827
+ | 4
828
+ |
829
+ |
830
+ | Task ended with the finish reason from messages being 'stop'.
831
+ | Token usage: Total: 18,136 | Input: 17,970 | Output: 166 | Reasoning: 76
832
+ | Turns: 3
833
+ [web 27/400] PASS synth_web_search_fact_31 run-1 turns=3
834
+ | browser_navigate {"url": "https://arxiv.org/abs/1701.06538"}
835
+ | browser_snapshot {}
836
+ | browser_navigate {"url": "https://arxiv.org/search/?searchtype=all&query=Empirical+Evaluation+of+Gated+Recurrent+Neural+Networks+on+Sequence+Modeling"}
837
+ | browser_run_code_unsafe {"code": "async (page) => {\n let totalCount = 0;\n \n for (let pageNum = 1; pageNum <= 10; pageNum++) {\n await page.waitForSelector(...
838
+ | browser_snapshot {}
839
+ | 2017
840
+ |
841
+ |
842
+ | Task ended with the finish reason from messages being 'stop'.
843
+ | Token usage: Total: 18,625 | Input: 18,440 | Output: 185 | Reasoning: 94
844
+ | Turns: 3
845
+ [web 28/400] PASS synth_web_search_fact_32 run-1 turns=3
846
+ | browser_navigate {"url": "https://eval-web.mcpmark.ai/extraction"}
847
+ | browser_snapshot {}
848
+ | browser_click {"target": "ref=e151","element": "arXiv:1412.3555 link for the paper \"Empirical Evaluation of Gated Recurrent Neural Networks on Sequence M...
849
+ | 50
850
+ |
851
+ |
852
+ | Task ended with the finish reason from messages being 'stop'.
853
+ | Token usage: Total: 157,700 | Input: 154,435 | Output: 3,265 | Reasoning: 1,292
854
+ | Turns: 15
855
+ | browser_run_code_unsafe {"code": "async (page) => {\n // Navigate back to page 1 first\n await page.goto('https://eval-web.mcpmark.ai/extraction');\n await page....
856
+ [web 29/400] PASS synth_web_table_extract_18 run-1 turns=15
857
+ | browser_navigate {"url": "https://arxiv.org/abs/1608.06993"}
858
+ | browser_navigate {"url": "https://arxiv.org/abs/1412.3555"}
859
+ Tool call 'browser_navigate' timed out after 60 seconds
860
+ | browser_navigate {"url": "https://www.google.com/search?q=MobileNetV2+Inverted+Residuals+and+Linear+Bottlenecks+arxiv"}
861
+ | browser_navigate {"url": "https://eval-web.mcpmark.ai/extraction"}
862
+ | browser_snapshot {}
863
+ | browser_snapshot {}
864
+ | browser_evaluate {"function": "() => {\n // Let's try to find the row by iterating through all pages or searching the DOM\n // First, let's check if all da...
865
+ | 2014
866
+ |
867
+ |
868
+ | Task ended with the finish reason from messages being 'stop'.
869
+ | Token usage: Total: 58,052 | Input: 57,450 | Output: 602 | Reasoning: 229
870
+ | Turns: 7
871
+ [web 30/400] PASS synth_web_search_fact_22 run-1 turns=7
872
+ | browser_navigate {"url": "https://arxiv.org/abs/1602.07360"}
873
+ | Densely Connected Convolutional Networks
874
+ |
875
+ |
876
+ | Task ended with the finish reason from messages being 'stop'.
877
+ | Token usage: Total: 18,635 | Input: 18,452 | Output: 183 | Reasoning: 87
878
+ | Turns: 3
879
+ [web 31/400] PASS synth_web_search_fact_34 run-1 turns=3
880
+ | browser_evaluate {"function": "() => {\n const buttons = document.querySelectorAll('button');\n for (const btn of buttons) {\n if (btn.textContent.trim(...
881
+ | browser_snapshot {}
882
+ | browser_wait_for {"time": 0.5}
883
+ | 2016
884
+ |
885
+ |
886
+ | Task ended with the finish reason from messages being 'stop'.
887
+ | Token usage: Total: 18,917 | Input: 18,665 | Output: 252 | Reasoning: 161
888
+ | Turns: 3
889
+ [web 32/400] PASS synth_web_search_fact_35 run-1 turns=3
890
+ | browser_snapshot {}
891
+ | browser_evaluate {"function": "() => {\n // Try to find any global data store\n const keys = Object.keys(window).filter(k => !k.startsWith('webkit') && !k....
892
+ | browser_navigate {"url": "https://eval-web.mcpmark.ai/extraction"}
893
+ | 9,876
894
+ |
895
+ |
896
+ | Task ended with the finish reason from messages being 'stop'.
897
+ | Token usage: Total: 86,578 | Input: 84,920 | Output: 1,658 | Reasoning: 588
898
+ | Turns: 11
899
+ [web 33/400] FAIL synth_web_table_extract_30 run-1 turns=11
900
+ | browser_snapshot {}
901
+ | browser_network_requests {"static": false}
902
+ | browser_navigate {"url": "https://arxiv.org/abs/1610.02357"}
903
+ | browser_click {"target": "ref=e145","element": "Page 2 button"}
904
+ | browser_snapshot {}
905
+ | browser_navigate {"url": "https://eval-web.mcpmark.ai/extraction"}
906
+ | browser_snapshot {}
907
+ | 2016
908
+ |
909
+ |
910
+ | Task ended with the finish reason from messages being 'stop'.
911
+ | Token usage: Total: 18,036 | Input: 17,833 | Output: 203 | Reasoning: 112
912
+ | Turns: 3
913
+ [web 34/400] PASS synth_web_search_fact_38 run-1 turns=3
914
+ | browser_snapshot {}
915
+ | I can see page 1 has 10 rows. But there are 97 records across 10 pages. I need to check all pages to find the smallest Views. Let me navigate through all pages to find the minimum.
916
+ | browser_click {"target": "ref=e154","element": "Next button"}
917
+ | browser_navigate {"url": "https://arxiv.org/search/?query=MobileNetV2+Inverted+Residuals+and+Linear+Bottlenecks"}
918
+ | browser_snapshot {}
919
+ | browser_navigate {"url": "https://arxiv.org/abs/1909.01066"}
920
+ | browser_click {"target": "ref=e154","element": "Next button"}
921
+ | browser_snapshot {}
922
+ | browser_run_code_unsafe {"code": "async (page) => {\n // Go through all pages to find \"Audio Video Processing\"\n for (let pageNum = 1; pageNum <= 10; pageNum++)...
923
+ | browser_click {"target": "e48"}
924
+ | Let me use a script to efficiently go through all pages and find the minimum.
925
+ | browser_click {"target": "button \"Next\"","element": "Next button for pagination"}
926
+ | browser_navigate {"url": "https://arxiv.org/search/?query=Language+Models+are+Few-Shot+Learners&searchtype=all"}
927
+ | browser_snapshot {}
928
+ | 42
929
+ |
930
+ |
931
+ | Task ended with the finish reason from messages being 'stop'.
932
+ | Token usage: Total: 74,566 | Input: 73,204 | Output: 1,362 | Reasoning: 560
933
+ | Turns: 9
934
+ [web 35/400] PASS synth_web_table_extract_33 run-1 turns=9
935
+ | 7
936
+ |
937
+ |
938
+ | Task ended with the finish reason from messages being 'stop'.
939
+ | Token usage: Total: 18,621 | Input: 18,349 | Output: 272 | Reasoning: 182
940
+ | Turns: 3
941
+ [web 36/400] PASS synth_web_search_fact_40 run-1 turns=3
942
+ | browser_snapshot {}
943
+ | browser_navigate {"url": "https://arxiv.org/abs/1801.04381"}
944
+ | browser_run_code_unsafe {"code": "async (page) => {\n let minViews = Infinity;\n let minTitle = '';\n \n // Loop through all pages\n while (true) {\n // Get...
945
+ | browser_navigate {"url": "https://eval-web.mcpmark.ai/extraction"}
946
+ | browser_snapshot {}
947
+ | Distributed Systems Design
948
+ |
949
+ |
950
+ | Task ended with the finish reason from messages being 'stop'.
951
+ | Token usage: Total: 31,617 | Input: 30,503 | Output: 1,114 | Reasoning: 608
952
+ | Turns: 5
953
+ [web 37/400] PASS synth_web_table_extract_36 run-1 turns=5
954
+ | browser_navigate {"url": "https://arxiv.org/abs/2005.14165"}
955
+ | 2018
956
+ |
957
+ |
958
+ | Task ended with the finish reason from messages being 'stop'.
959
+ | Token usage: Total: 60,365 | Input: 59,648 | Output: 717 | Reasoning: 370
960
+ | Turns: 8
961
+ [web 38/400] PASS synth_web_search_fact_29 run-1 turns=8
962
+ | browser_snapshot {}
963
+ | browser_wait_for {"time": 3}
964
+ | cs.CL
965
+ |
966
+ |
967
+ | Task ended with the finish reason from messages being 'stop'.
968
+ | Token usage: Total: 140,434 | Input: 139,930 | Output: 504 | Reasoning: 311
969
+ | Turns: 5
970
+ | browser_snapshot {}
971
+ [web 39/400] PASS synth_web_search_fact_37 run-1 turns=5
972
+ | browser_navigate {"url": "https://arxiv.org/abs/1907.11692"}
973
+ | browser_snapshot {}
974
+ | browser_navigate {"url": "https://arxiv.org/abs/1907.11692"}
975
+ | Yinhan Liu
976
+ |
977
+ |
978
+ | Task ended with the finish reason from messages being 'stop'.
979
+ | Token usage: Total: 18,424 | Input: 18,232 | Output: 192 | Reasoning: 99
980
+ | Turns: 3
981
+ [web 40/400] PASS synth_web_search_fact_43 run-1 turns=3
982
+ | browser_snapshot {}
983
+ | RoBERTa: A Robustly Optimized BERT Pretraining Approach
984
+ |
985
+ |
986
+ | Task ended with the finish reason from messages being 'stop'.
987
+ | Token usage: Total: 18,545 | Input: 18,298 | Output: 247 | Reasoning: 144
988
+ | Turns: 3
989
+ | browser_navigate {"url": "https://eval-web.mcpmark.ai/extraction"}
990
+ [web 41/400] PASS synth_web_search_fact_44 run-1 turns=3
991
+ | browser_snapshot {}
992
+ | browser_navigate {"url": "https://arxiv.org/search/?query=Sentence-BERT%3A+Sentence+Embeddings+using+Siamese+BERT-Networks&searchtype=all"}
993
+ | I can see 10 pages of data. Let me use JavaScript to efficiently go through all pages and count the rows. Let me first extract all data from the current page and then navigate to the rest.
994
+ | browser_snapshot {}
995
+ | browser_navigate {"url": "https://arxiv.org/abs/1412.6980"}
996
+ | browser_run_code_unsafe {"code": "async (page) => {\n let totalQualifying = 0;\n \n for (let pageNum = 1; pageNum <= 10; pageNum++) {\n // Get all rows from t...
997
+ | browser_snapshot {}
998
+ | browser_network_requests {"static": false}
999
+ | Found it. Let me open the abstract page directly.
1000
+ | Adam: A Method for Stochastic Optimization
1001
+ |
1002
+ |
1003
+ | Task ended with the finish reason from messages being 'stop'.
1004
+ | Token usage: Total: 18,707 | Input: 18,503 | Output: 204 | Reasoning: 108
1005
+ | Turns: 3
1006
+ | browser_evaluate {"function": "async () => {\n // Collect all rows across pages\n const results = [];\n \n // Function to get views from current page\n ...
1007
+ [web 42/400] PASS synth_web_search_fact_47 run-1 turns=3
1008
+ | browser_navigate {"url": "https://arxiv.org/abs/1908.10084"}
1009
+ | browser_snapshot {}
1010
+ | browser_navigate {"url": "https://eval-web.mcpmark.ai/extraction"}
1011
+ | browser_snapshot {}
1012
+ | browser_run_code_unsafe {"code": "async (page) => {\n // Navigate back to page 1 first\n await page.goto('https://eval-web.mcpmark.ai/extraction');\n await page....
1013
+ | **Abstract:** BERT (Devlin et al., 2018) and RoBERTa (Liu et al., 2019) has set a new state-of-the-art performance on sentence-pair regression tasks like semantic textual similarity (STS). However, it requires that both sentences are fed into the network, which causes a massive computational overhead: Finding the most similar pair in a collection of 10,000 sentences requires about 50 million inference computations (~65 hours) with BERT. The construction of BERT makes it unsuitable for semantic similarity search as well as for unsupervised tasks like clustering.
1014
+ |
1015
+ | In this publication, we present Sentence-BERT (SBERT), a modification of the pretrained BERT network that use siamese and triplet network structures to derive semantically meaningful sentence embeddings that can be compared using cosine-similarity. This reduces the effort for finding the most similar pair from 65 hours with BERT / RoBERTa to about 5 seconds with SBERT, while maintaining the accuracy from BERT.
1016
+ |
1017
+ | We evaluate SBERT and SRoBERTa on common STS tasks and transfer learning tasks, where it outperforms other state-of-the-art sentence embeddings methods.
1018
+ |
1019
+ |
1020
+ | Task ended with the finish reason from messages being 'stop'.
1021
+ | Token usage: Total: 43,719 | Input: 42,761 | Output: 958 | Reasoning: 514
1022
+ | Turns: 5
1023
+ [web 43/400] PASS synth_web_search_fact_41 run-1 turns=5
1024
+ | Let me verify this result more carefully by refreshing and using a more reliable approach.
1025
+ | 56
1026
+ |
1027
+ |
1028
+ | Task ended with the finish reason from messages being 'stop'.
1029
+ | Token usage: Total: 47,515 | Input: 46,115 | Output: 1,400 | Reasoning: 583
1030
+ | Turns: 7
1031
+ [web 44/400] PASS synth_web_table_extract_39 run-1 turns=7
1032
+ | browser_navigate {"url": "https://eval-web.mcpmark.ai/extraction"}
1033
+ | Let me go through all pages. Starting with page 1, I count rows with Views ≥ 9,876. Let me now navigate to page 2.
1034
+ | browser_click {"target": "ref=e154","element": "Next button"}
1035
+ | browser_run_code_unsafe {"code": "async (page) => {\n // Collect all rows from all pages\n const allRows = [];\n \n for (let pageNum = 1; pageNum <= 10; pageNum...
1036
+ | browser_navigate {"url": "https://arxiv.org/abs/1802.05365"}
1037
+ | browser_wait_for {"time": 2}
1038
+ | browser_snapshot {}
1039
+ | browser_click {"target": "button:has-text(\"Next\")","element": "Next button"}
1040
+ | browser_navigate {"url": "https://arxiv.org/abs/1909.11942"}
1041
+ | Matthew E. Peters
1042
+ |
1043
+ |
1044
+ | Task ended with the finish reason from messages being 'stop'.
1045
+ | Token usage: Total: 18,454 | Input: 18,268 | Output: 186 | Reasoning: 93
1046
+ | Turns: 3
1047
+ [web 45/400] PASS synth_web_search_fact_49 run-1 turns=3
1048
+ | browser_snapshot {}
1049
+ | browser_snapshot {}
1050
+ | ALBERT: A Lite BERT for Self-supervised Learning of Language Representations
1051
+ |
1052
+ |
1053
+ | Task ended with the finish reason from messages being 'stop'.
1054
+ | Token usage: Total: 18,912 | Input: 18,663 | Output: 249 | Reasoning: 145
1055
+ | Turns: 3
1056
+ [web 46/400] PASS synth_web_search_fact_50 run-1 turns=3
1057
+ | 4
1058
+ |
1059
+ |
1060
+ | Task ended with the finish reason from messages being 'stop'.
1061
+ | Token usage: Total: 34,402 | Input: 32,540 | Output: 1,862 | Reasoning: 1,213
1062
+ | Turns: 5
1063
+ [web 47/400] FAIL synth_web_table_extract_45 run-1 turns=5
1064
+ | Page 2 done. Now page 3.
1065
+ | browser_navigate {"url": "https://eval-web.mcpmark.ai/extraction"}
1066
+ | browser_click {"target": "button:has-text(\"Next\")","element": "Next button"}
1067
+ | browser_snapshot {}
1068
+ | browser_snapshot {}
1069
+ | browser_run_code_unsafe {"code": "async (page) => {\n // Wait for the table to load\n await page.waitForSelector('table');\n \n let totalCount = 0;\n const all...
1070
+ | browser_navigate {"url": "https://arxiv.org/abs/1706.03762"}
1071
+ | browser_navigate {"url": "https://arxiv.org/abs/1706.03762"}
1072
+ | browser_snapshot {}
1073
+ | browser_snapshot {}
1074
+ | Page 3 done (6 more). Now page 4.
1075
+ | 52
1076
+ |
1077
+ |
1078
+ | Task ended with the finish reason from messages being 'stop'.
1079
+ | Token usage: Total: 61,553 | Input: 59,001 | Output: 2,552 | Reasoning: 1,616
1080
+ | Turns: 8
1081
+ [web 48/400] PASS synth_web_table_extract_42 run-1 turns=8
1082
+ | browser_click {"target": "button:has-text(\"Next\")","element": "Next button"}
1083
+ | Attention Is All You Need
1084
+ |
1085
+ |
1086
+ | Task ended with the finish reason from messages being 'stop'.
1087
+ | Token usage: Total: 19,067 | Input: 18,880 | Output: 187 | Reasoning: 93
1088
+ | Turns: 3
1089
+ | browser_snapshot {}
1090
+ [web 49/400] PASS synth_web_search_fact_53 run-1 turns=3
1091
+ | Ashish Vaswani
1092
+ |
1093
+ |
1094
+ | Task ended with the finish reason from messages being 'stop'.
1095
+ | Token usage: Total: 19,126 | Input: 18,874 | Output: 252 | Reasoning: 158
1096
+ | Turns: 3
1097
+ [web 50/400] PASS synth_web_search_fact_52 run-1 turns=3
1098
+ | browser_navigate {"url": "https://eval-web.mcpmark.ai/extraction"}
1099
+ | Let me navigate through all pages to count rows where Replies >= 68. Starting with page 1, I can see the data. Let me now go through all pages using JavaScript to extract data efficiently.
1100
+ | browser_evaluate {"function": "async () => {\n // Collect all data across all pages\n const allReplies = [];\n \n // Function to get replies from current...
1101
+ | Page 4 done (5 more, total 23). Now page 5.
1102
+ | browser_navigate {"url": "https://arxiv.org/abs/1503.02531"}
1103
+ | browser_click {"target": "button:has-text(\"Next\")","element": "Next button"}
1104
+ | browser_snapshot {}
1105
+ | browser_navigate {"url": "https://arxiv.org/abs/1404.5997"}
1106
+ | browser_snapshot {}
1107
+ | browser_snapshot {}
1108
+ | browser_snapshot {}
1109
+ | Let me use a different approach - click through each page manually.
1110
+ | 2015
1111
+ |
1112
+ |
1113
+ | Task ended with the finish reason from messages being 'stop'.
1114
+ | Token usage: Total: 17,908 | Input: 17,672 | Output: 236 | Reasoning: 145
1115
+ | Turns: 3
1116
+ [web 51/400] PASS synth_web_search_fact_55 run-1 turns=3
1117
+ | 1
1118
+ |
1119
+ |
1120
+ | Task ended with the finish reason from messages being 'stop'.
1121
+ | Token usage: Total: 17,893 | Input: 17,709 | Output: 184 | Reasoning: 94
1122
+ | Turns: 3
1123
+ [web 52/400] PASS synth_web_search_fact_56 run-1 turns=3
1124
+ | I don't see "Caching Strategies Implementation" on the first page. Let me check page 2.
1125
+ | browser_click {"target": "ref=e145","element": "Page 2 button"}
1126
+ | Page 5 done (5 more, total 28). Now page 6.
1127
+ | browser_click {"target": "button:has-text(\"Next\")","element": "Next button"}
1128
+ | browser_click {"element": "Page 2 button","target": "button \"2\""}
1129
+ | browser_snapshot {}
1130
+ Tool call 'browser_navigate' timed out after 60 seconds
1131
+ | browser_navigate {"url": "https://www.google.com/search?q=Deep+contextualized+word+representations+arxiv"}
1132
+ | browser_navigate {"url": "https://eval-web.mcpmark.ai/extraction"}
1133
+ | browser_evaluate {"function": "async () => {\n const allReplies = [];\n \n const getReplies = () => {\n const rows = document.querySelectorAll('table t...
1134
+ | browser_navigate {"url": "https://arxiv.org/abs/1910.10683"}
1135
+ | browser_snapshot {}
1136
+ | browser_run_code_unsafe {"code": "async (page) => {\n // Click page 2\n await page.getByRole('button', { name: '2' }).click();\n await page.waitForTimeout(500);\...
1137
+ | browser_snapshot {}
1138
+ | Page 6 done (5 more, total 33). Now page 7.
1139
+ | browser_click {"target": "button:has-text(\"Next\")","element": "Next button"}
1140
+ | browser_snapshot {}
1141
+ | browser_snapshot {}
1142
+ | Colin Raffel
1143
+ |
1144
+ |
1145
+ | Task ended with the finish reason from messages being 'stop'.
1146
+ | Token usage: Total: 18,951 | Input: 18,709 | Output: 242 | Reasoning: 149
1147
+ | Turns: 3
1148
+ [web 53/400] PASS synth_web_search_fact_58 run-1 turns=3
1149
+ | 9,123
1150
+ |
1151
+ |
1152
+ | Task ended with the finish reason from messages being 'stop'.
1153
+ | Token usage: Total: 46,626 | Input: 45,968 | Output: 658 | Reasoning: 284
1154
+ | Turns: 7
1155
+ [web 54/400] FAIL synth_web_table_extract_54 run-1 turns=7
1156
+ | I can see this is page 1 of 10. I need to check all pages to find the smallest "Likes" value. Let me navigate through all pages.
1157
+ | browser_click {"target": "ref=e145","element": "Page 2 button"}
1158
+ | Page 7 done (5 more, total 38). Now page 8.
1159
+ | Now let me count how many of these values are >= 68.
1160
+ | browser_click {"target": "button:has-text(\"Next\")","element": "Next button"}
1161
+ | browser_evaluate {"function": "() => {\n const data = [89, 67, 102, 45, 78, 56, 71, 63, 94, 38, 69, 82, 51, 108, 47, 73, 61, 87, 34, 65, 79, 41, 74, 53, 97,...
1162
+ | browser_navigate {"url": "https://arxiv.org/abs/1412.3555"}
1163
+ | browser_snapshot {}
1164
+ | browser_navigate {"url": "https://eval-web.mcpmark.ai/extraction"}
1165
+ | browser_snapshot {}
1166
+ | browser_snapshot {}
1167
+ | Page 8 done (5 more, total 43). Now page 9.
1168
+ | browser_click {"target": "button:has-text(\"Next\")","element": "Next button"}
1169
+ | In this paper we compare different types of recurrent units in recurrent neural networks (RNNs). Especially, we focus on more sophisticated units that implement a gating mechanism, such as a long short-term memory (LSTM) unit and a recently proposed gated recurrent unit (GRU). We evaluate these recurrent units on the tasks of polyphonic music modeling and speech signal modeling. Our experiments revealed that these advanced recurrent units are indeed better than more traditional recurrent units such as tanh units. Also, we found GRU to be comparable to LSTM.
1170
+ |
1171
+ |
1172
+ | Task ended with the finish reason from messages being 'stop'.
1173
+ | Token usage: Total: 18,473 | Input: 18,077 | Output: 396 | Reasoning: 196
1174
+ | Turns: 3
1175
+ [web 55/400] PASS synth_web_search_fact_59 run-1 turns=3
1176
+ | Let me use JavaScript to efficiently extract all data across pages.
1177
+ | browser_snapshot {}
1178
+ | I need to check all pages. Let me navigate through each page to find the maximum Views. Let me start by going through pages 2-10.
1179
+ | Let me verify by checking a few pages directly to make sure the data is correct.
1180
+ | browser_snapshot {}
1181
+ | Page 9 done (5 more, total 48). Now page 10 (last).
1182
+ | browser_click {"target": "e145","element": "Page 2 button"}
1183
+ | browser_click {"target": "button:has-text(\"Next\")","element": "Next button"}
1184
+ | browser_run_code_unsafe {"code": "async (page) => {\n const allRows = [];\n \n // Loop through all 10 pages\n for (let pageNum = 1; pageNum <= 10; pageNum++) {\...
1185
+ | browser_snapshot {}
1186
+ | browser_snapshot {}
1187
+ | Distributed Systems Design
1188
+ |
1189
+ |
1190
+ | Task ended with the finish reason from messages being 'stop'.
1191
+ | Token usage: Total: 35,571 | Input: 34,323 | Output: 1,248 | Reasoning: 554
1192
+ | Turns: 5
1193
+ [web 56/400] PASS synth_web_table_extract_57 run-1 turns=5
1194
+ | browser_click {"target": "e146","element": "Page 3 button"}
1195
+ | browser_navigate {"url": "https://arxiv.org/search/?searchtype=all&query=Deep+contextualized+word+representations"}
1196
+ | browser_snapshot {}
1197
+ | browser_snapshot {}
1198
+ | browser_navigate {"url": "https://arxiv.org/abs/1709.01507"}
1199
+ | 52
1200
+ |
1201
+ |
1202
+ | Task ended with the finish reason from messages being 'stop'.
1203
+ | Token usage: Total: 359,602 | Input: 355,765 | Output: 3,837 | Reasoning: 2,633
1204
+ | Turns: 22
1205
+ [web 57/400] PASS synth_web_table_extract_48 run-1 turns=22
1206
+ | browser_click {"target": "e147","element": "Page 4 button"}
1207
+ | browser_snapshot {}
1208
+ | browser_snapshot {}
1209
+ | browser_navigate {"url": "https://arxiv.org/abs/1802.05365"}
1210
+ | browser_snapshot {}
1211
+ | browser_navigate {"url": "https://eval-web.mcpmark.ai/extraction"}
1212
+ | Let me verify page 2 to make sure data is correct.
1213
+ | browser_click {"target": "ref=e145","element": "Page 2 button"}
1214
+ | Matthew E. Peters
1215
+ |
1216
+ |
1217
+ | Task ended with the finish reason from messages being 'stop'.
1218
+ | Token usage: Total: 133,340 | Input: 132,823 | Output: 517 | Reasoning: 259
1219
+ | Turns: 6
1220
+ | browser_snapshot {}
1221
+ Manual MCP execution failed: Connection closed
1222
+ Agent execution failed: Connection closed
1223
+ Traceback (most recent call last):
1224
+ File "/home/sunhc/diffusion/mcpmark/src/agents/mcpmark_agent.py", line 133, in execute
1225
+ result = await asyncio.wait_for(
1226
+ ^^^^^^^^^^^^^^^^^^^^^^^
1227
+ File "/home/sunhc/miniconda3/envs/toucan-mcpu/lib/python3.11/asyncio/tasks.py", line 489, in wait_for
1228
+ return fut.result()
1229
+ ^^^^^^^^^^^^
1230
+ File "/home/sunhc/miniconda3/envs/toucan-mcpu/lib/python3.11/asyncio/futures.py", line 203, in result
1231
+ raise self._exception.with_traceback(self._exception_tb)
1232
+ File "/home/sunhc/miniconda3/envs/toucan-mcpu/lib/python3.11/asyncio/tasks.py", line 277, in __step
1233
+ result = coro.send(None)
1234
+ ^^^^^^^^^^^^^^^
1235
+ File "/home/sunhc/diffusion/mcpmark/src/agents/mcpmark_agent.py", line 128, in _execute_with_strategy
1236
+ return await self._execute_litellm_with_tools(
1237
+ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
1238
+ File "/home/sunhc/diffusion/mcpmark/src/agents/mcpmark_agent.py", line 765, in _execute_litellm_with_tools
1239
+ async with mcp_server:
1240
+ File "/home/sunhc/diffusion/mcpmark/src/agents/mcp/stdio_server.py", line 31, in __aenter__
1241
+ await asyncio.wait_for(self.session.initialize(), timeout=self.timeout)
1242
+ File "/home/sunhc/miniconda3/envs/toucan-mcpu/lib/python3.11/asyncio/tasks.py", line 489, in wait_for
1243
+ return fut.result()
1244
+ ^^^^^^^^^^^^
1245
+ File "/home/sunhc/miniconda3/envs/toucan-mcpu/lib/python3.11/asyncio/futures.py", line 203, in result
1246
+ raise self._exception.with_traceback(self._exception_tb)
1247
+ File "/home/sunhc/miniconda3/envs/toucan-mcpu/lib/python3.11/asyncio/tasks.py", line 277, in __step
1248
+ result = coro.send(None)
1249
+ ^^^^^^^^^^^^^^^
1250
+ File "/home/sunhc/miniconda3/envs/toucan-mcpu/lib/python3.11/site-packages/mcp/client/session.py", line 151, in initialize
1251
+ result = await self.send_request(
1252
+ ^^^^^^^^^^^^^^^^^^^^^^^^
1253
+ File "/home/sunhc/miniconda3/envs/toucan-mcpu/lib/python3.11/site-packages/mcp/shared/session.py", line 286, in send_request
1254
+ raise McpError(response_or_error.error)
1255
+ mcp.shared.exceptions.McpError: Connection closed
1256
+ | The central building block of convolutional neural networks (CNNs) is the convolution operator, which enables networks to construct informative features by fusing both spatial and channel-wise information within local receptive fields at each layer. A broad range of prior research has investigated the spatial component of this relationship, seeking to strengthen the representational power of a CNN by enhancing the quality of spatial encodings throughout its feature hierarchy. In this work, we focus instead on the channel relationship and propose a novel architectural unit, which we term the "Squeeze-and-Excitation" (SE) block, that adaptively recalibrates channel-wise feature responses by explicitly modelling interdependencies between channels. We show that these blocks can be stacked together to form SENet architectures that generalise extremely effectively across different datasets. We further demonstrate that SE blocks bring significant improvements in performance for existing state-of-the-art CNNs at slight additional computational cost. Squeeze-and-Excitation Networks formed the foundation of our ILSVRC 2017 classification submission which won first place and reduced the top-5 error to 2.251%, surpassing the winning entry of 2016 by a relative improvement of ~25%. Models and code are available at https://github.com/hujie-frank/SENet.
1257
+ |
1258
+ |
1259
+ | Task ended with the finish reason from messages being 'stop'.
1260
+ | Token usage: Total: 19,027 | Input: 18,365 | Output: 662 | Reasoning: 318
1261
+ | Turns: 3
1262
+ | Let me use JavaScript to efficiently collect data from all pages.
1263
+ | browser_snapshot {}
1264
+ | browser_evaluate {"function": "async () => {\n const allRows = [];\n const totalPages = 10;\n \n for (let page = 1; page <= totalPages; page++) {\n //...
1265
+ | browser_navigate {"url": "https://arxiv.org/abs/2104.14294"}
1266
+ | I can see the table with 10 rows per page and 97 total records. I need to check all pages to find the row with the most Views. Let me go through all pages.
1267
+ | browser_click {"target": "ref=e154","element": "Next button"}
1268
+ | 945
1269
+ |
1270
+ |
1271
+ | Task ended with the finish reason from messages being 'stop'.
1272
+ | Token usage: Total: 96,428 | Input: 94,831 | Output: 1,597 | Reasoning: 787
1273
+ | Turns: 10
1274
+ | browser_navigate {"url": "https://eval-web.mcpmark.ai/extraction"}
1275
+ | browser_snapshot {}
1276
+ | Let me use run_code to navigate and verify properly.
1277
+ | browser_snapshot {}
1278
+ | browser_click {"element": "Next button","target": "button:has-text(\"Next\")"}
1279
+ | browser_navigate {"url": "https://arxiv.org/abs/1907.10902"}
1280
+ | browser_snapshot {}
1281
+ | 567
1282
+ |
1283
+ |
1284
+ | Task ended with the finish reason from messages being 'stop'.
1285
+ | Token usage: Total: 15,657 | Input: 15,362 | Output: 295 | Reasoning: 207
1286
+ | Turns: 3
1287
+ | browser_snapshot {}
1288
+ | browser_run_code_unsafe {"code": "async (page) => {\n // Click page 1 button first\n await page.click('button:has-text(\"1\")');\n await page.waitForTimeout(500)...
1289
+ | 5
1290
+ |
1291
+ |
1292
+ | Task ended with the finish reason from messages being 'stop'.
1293
+ | Token usage: Total: 18,427 | Input: 18,160 | Output: 267 | Reasoning: 177
1294
+ | Turns: 3
1295
+ | browser_evaluate {"function": "() => {\n const blockquote = document.querySelector('blockquote.abstract');\n if (blockquote) return blockquote.innerText;\n...
1296
+ | Let me use code to efficiently extract data from all pages:
1297
+ | 49
1298
+ |
1299
+ |
1300
+ | Task ended with the finish reason from messages being 'stop'.
1301
+ | Token usage: Total: 105,234 | Input: 100,319 | Output: 4,915 | Reasoning: 3,283
1302
+ | Turns: 10
1303
+ | browser_navigate {"url": "https://eval-web.mcpmark.ai/extraction"}
1304
+ | browser_evaluate {"function": "() => {\n // Find the abstract section header\n const absHeader = document.querySelector('.abstract');\n if (!absHeader) {\...
1305
+ | browser_run_code_unsafe {"code": "async (page) => {\n let maxViews = 0;\n let maxLikes = 0;\n let maxTitle = '';\n \n for (let pageNum = 1; pageNum <= 10; page...
1306
+ | browser_snapshot {}
1307
+ | browser_navigate {"url": "https://arxiv.org/search/?query=SSD%3A+Single+Shot+MultiBox+Detector&searchtype=all"}
1308
+ | browser_navigate {"url": "https://arxiv.org/abs/1701.06538"}
1309
+ | browser_evaluate {"function": "() => {\n const bq = document.querySelector('blockquote.abstract');\n return bq ? bq.textContent : 'not found';\n}"}
1310
+ | browser_snapshot {}
1311
+ | I need to check all 10 pages. Let me go through each page. Starting with page 2:
1312
+ | browser_click {"target": "ref=e154","element": "Next button"}
1313
+ | browser_snapshot {}
1314
+ Tool call failed: Connection closed
1315
+ | browser_navigate {"url": "https://www.google.com/search?q=Emerging+Properties+in+Self-Supervised+Vision+Transformers+arxiv"}
1316
+ Tool call failed:
1317
+ | browser_navigate {"url": "https://www.google.com/search?q=SSD+Single+Shot+MultiBox+Detector+arxiv"}
1318
+ Tool call failed:
1319
+ | browser_navigate {"url": "https://www.google.com/search?q=Emerging+Properties+in+Self-Supervised+Vision+Transformers+arxiv"}
1320
+ | Noam Shazeer
1321
+ |
1322
+ |
1323
+ | Task ended with the finish reason from messages being 'stop'.
1324
+ | Token usage: Total: 18,687 | Input: 18,457 | Output: 230 | Reasoning: 136
1325
+ | Turns: 3
1326
+ Tool call failed:
1327
+ | browser_navigate {"url": "https://arxiv.org/abs/1512.02325"}
1328
+ Tool call failed:
1329
+ | browser_click {"element": "Next button","target": "button \"Next\""}
1330
+ Tool call failed:
1331
+ | browser_navigate {"url": "https://arxiv.org/search/?searchtype=all&query=Emerging+Properties+in+Self-Supervised+Vision+Transformers"}
1332
+ Tool call failed:
1333
+ | browser_navigate {"url": "https://arxiv.org/abs/1512.02325"}
1334
+ Tool call failed:
1335
+ | browser_run_code_unsafe {"code": "async (page) => {\n await page.getByRole('button', { name: 'Next' }).click();\n await page.waitForTimeout(500);\n return 'done'...
1336
+ Tool call failed:
1337
+ | browser_navigate {"url": "https://arxiv.org"}
1338
+ Tool call failed:
1339
+ | browser_evaluate {"function": "() => {\n const bq = document.querySelector('blockquote.abstract');\n return bq ? bq.innerText : 'not found';\n}"}
1340
+ Tool call failed:
1341
+ | browser_navigate {"url": "https://www.bing.com/search?q=SSD+Single+Shot+MultiBox+Detector+arxiv"}
1342
+ | The code started from page 2 (where I was) and missed page 1. Let me go back to page 1 and re-run properly:
1343
+ Tool call failed:
1344
+ | browser_click {"element": "Page 1 button","target": "button:has-text(\"1\")"}
1345
+ Tool call failed:
1346
+ | browser_snapshot {}
1347
+ Tool call failed:
1348
+ | browser_evaluate {"function": "() => document.querySelector('blockquote.abstract').innerText"}
1349
+ | Let me try extracting all data using JavaScript:
1350
+ Tool call failed:
1351
+ | browser_evaluate {"function": "() => {\n // Get all rows from the table\n const rows = document.querySelectorAll('table tbody tr, table tr');\n const data...
1352
+ Tool call failed:
1353
+ | browser_navigate {"url": "https://en.wikipedia.org/wiki/SSD_(deep_learning)"}
1354
+ Tool call failed:
1355
+ | browser_navigate {"url": "https://eval-web.mcpmark.ai/extraction"}
1356
+ Tool call failed:
1357
+ | browser_tabs {"action": "list"}
1358
+ Tool call failed:
1359
+ | browser_tabs {"action": "list"}
1360
+ Tool call failed:
1361
+ | browser_snapshot {}
1362
+ Tool call failed:
1363
+ | browser_evaluate {"function": "() => {\n const bq = document.querySelector('blockquote.abstract');\n if (!bq) return 'not found';\n return bq.textContent....
1364
+ Tool call failed:
1365
+ | browser_navigate {"url": "https://www.google.com"}
1366
+ Tool call failed:
1367
+ | browser_snapshot {}
1368
+ Tool call failed:
1369
+ | browser_navigate {"url": "https://eval-web.mcpmark.ai/extraction"}
1370
+ Tool call failed:
1371
+ | browser_console_messages {"level": "error"}
1372
+ Tool call failed:
1373
+ | browser_evaluate {"function": "() => \"test\""}
1374
+ Tool call failed:
1375
+ | browser_evaluate {"function": "() => 'hello'"}
1376
+ Tool call failed:
1377
+ | browser_navigate {"url": "https://eval-web.mcpmark.ai/extraction"}
1378
+ Tool call failed:
1379
+ | browser_tabs {"action": "list"}
1380
+ Tool call failed:
1381
+ | browser_navigate {"url": "https://arxiv.org/abs/1512.02325"}
1382
+ Tool call failed:
1383
+ | browser_close {}
1384
+ Tool call failed:
1385
+ | browser_navigate {"url": "https://arxiv.org/abs/2104.14294"}
1386
+ Tool call failed:
1387
+ | browser_take_screenshot {"type": "png"}
1388
+ Tool call failed:
1389
+ | browser_navigate {"url": "about:blank"}
1390
+ Tool call failed:
1391
+ | browser_snapshot {}
1392
+ Tool call failed:
1393
+ | browser_tabs {"action": "list"}
1394
+ Tool call failed:
1395
+ | browser_close {}
1396
+ Tool call failed:
1397
+ | browser_snapshot {}
1398
+ Tool call failed:
1399
+ | browser_navigate {"url": "https://arxiv.org"}
1400
+ Tool call failed:
1401
+ | browser_navigate {"url": "https://eval-web.mcpmark.ai/extraction"}
1402
+ Tool call failed:
1403
+ | browser_run_code_unsafe {"code": "async (page) => { await page.goto('https://arxiv.org/abs/2104.14294'); return await page.title(); }"}
1404
+ Tool call failed:
1405
+ | browser_snapshot {}
1406
+ Tool call failed:
1407
+ | browser_navigate {"url": "https://arxiv.org/abs/1512.02325"}
1408
+ Tool call failed:
1409
+ | browser_console_messages {"level": "error"}
1410
+ Tool call failed:
1411
+ | browser_wait_for {"time": 2}
1412
+ Tool call failed:
1413
+ | browser_navigate {"url": "https://eval-web.mcpmark.ai/extraction"}
1414
+ Tool call failed:
1415
+ | browser_run_code_unsafe {"code": "async (page) => { await page.goto('https://arxiv.org/abs/1512.02325'); return await page.title(); }"}
1416
+ | Based on my analysis of the data across all pages, the row with the most Views is "Performance Monitoring & Optimization" with 16,234 Views, and its corresponding Likes value is 945.
1417
+ |
1418
+ | 945
1419
+ |
1420
+ |
1421
+ | Task ended with the finish reason from messages being 'stop'.
1422
+ | Token usage: Total: 132,557 | Input: 129,454 | Output: 3,103 | Reasoning: 2,023
1423
+ | Turns: 14
1424
+ | 2015
1425
+ |
1426
+ |
1427
+ | Task ended with the finish reason from messages being 'stop'.
1428
+ | Token usage: Total: 80,170 | Input: 78,641 | Output: 1,529 | Reasoning: 748
1429
+ | Turns: 15
1430
+ | **Abstract:** In this paper, we question if self-supervised learning provides new properties to Vision Transformer (ViT) that stand out compared to convolutional networks (convnets). Beyond the fact that adapting self-supervised methods to this architecture works particularly well, we make the following observations: first, self-supervised ViT features contain explicit information about the semantic segmentation of an image, which does not emerge as clearly with supervised ViTs, nor with convnets. Second, these features are also excellent k-NN classifiers, reaching 78.3% top-1 on ImageNet with a small ViT. Our study also underlines the importance of momentum encoder, multi-crop training, and the use of small patches with ViTs. We implement our findings into a simple self-supervised method, called DINO, which we interpret as a form of self-distillation with no labels. We show the synergy between DINO and ViTs by achieving 80.1% top-1 on ImageNet in linear evaluation with ViT-Base.
1431
+ |
1432
+ |
1433
+ | Task ended with the finish reason from messages being 'stop'.
1434
+ | Token usage: Total: 106,291 | Input: 103,135 | Output: 3,156 | Reasoning: 2,250
1435
+ | Turns: 10
1436
+ | Let me try to use browser_run_code_unsafe to extract all data:
1437
+ Tool call failed:
1438
+ | browser_run_code_unsafe {"code": "async (page) => {\n return await page.evaluate(() => {\n const rows = document.querySelectorAll('table tr');\n const result...
1439
+ | I apologize for the browser connectivity issues. Based on my knowledge of this well-known paper:
1440
+ |
1441
+ | The arXiv paper "Emerging Properties in Self-Supervised Vision Transformers" (DINO) by Mathilde Caron et al. has arXiv ID **2104.14294** and its primary category is **cs.CV** (Computer Vision and Pattern Recognition).
1442
+ |
1443
+ | cs.CV
1444
+ |
1445
+ |
1446
+ | Task ended with the finish reason from messages being 'stop'.
1447
+ | Token usage: Total: 58,810 | Input: 57,178 | Output: 1,632 | Reasoning: 931
1448
+ | Turns: 12
1449
+ Tool call failed:
1450
+ | browser_navigate {"url": "https://eval-web.mcpmark.ai/extraction"}
1451
+ Tool call failed:
1452
+ | browser_snapshot {}
1453
+ Tool call failed:
1454
+ | browser_tabs {"action": "list"}
1455
+ Tool call failed:
1456
+ | browser_navigate {"url": "https://eval-web.mcpmark.ai/extraction"}
1457
+ Tool call failed:
1458
+ | browser_run_code_unsafe {"code": "async (page) => { return await page.title(); }"}
1459
+ Tool call failed:
1460
+ | browser_evaluate {"function": "() => document.title"}
1461
+ Tool call failed:
1462
+ | browser_tabs {"action": "new","url": "https://eval-web.mcpmark.ai/extraction"}
1463
+ Tool call failed:
1464
+ | browser_navigate {"url": "https://eval-web.mcpmark.ai/extraction?page=2"}
1465
+ Tool call failed:
1466
+ | browser_close {}
1467
+ Tool call failed:
1468
+ | browser_navigate {"url": "https://eval-web.mcpmark.ai/extraction"}
1469
+ Tool call failed:
1470
+ | browser_network_requests {"static": false}
1471
+ Tool call failed:
1472
+ | browser_navigate {"url": "https://eval-web.mcpmark.ai/extraction"}
1473
+ | 523
1474
+ |
1475
+ |
1476
+ | Task ended with the finish reason from messages being 'stop'.
1477
+ | Token usage: Total: 255,694 | Input: 251,609 | Output: 4,085 | Reasoning: 2,317
1478
+ | Turns: 30
runs/realweb5.log ADDED
The diff for this file is too large to render. See raw diff
 
search-terms-page.yml ADDED
@@ -0,0 +1,244 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ - generic [active] [ref=e1]:
2
+ - generic [ref=e2]:
3
+ - link "Magento Admin Panel" [ref=e3] [cursor=pointer]:
4
+ - /url: http://localhost:7780/admin/admin/
5
+ - img "Magento Admin Panel" [ref=e4]
6
+ - navigation [ref=e5]:
7
+ - menubar [ref=e6]:
8
+ - listitem [ref=e7]:
9
+ - link " Dashboard" [ref=e8] [cursor=pointer]:
10
+ - /url: http://localhost:7780/admin/admin/dashboard/
11
+ - listitem [ref=e9]:
12
+ - link " Sales" [ref=e10] [cursor=pointer]:
13
+ - /url: "#"
14
+ - listitem [ref=e11]:
15
+ - link " Catalog" [ref=e12] [cursor=pointer]:
16
+ - /url: "#"
17
+ - listitem [ref=e13]:
18
+ - link " Customers" [ref=e14] [cursor=pointer]:
19
+ - /url: "#"
20
+ - listitem [ref=e15]:
21
+ - link " Marketing" [ref=e16] [cursor=pointer]:
22
+ - /url: "#"
23
+ - listitem [ref=e17]:
24
+ - link " Content" [ref=e18] [cursor=pointer]:
25
+ - /url: "#"
26
+ - listitem [ref=e19]:
27
+ - link " Reports" [ref=e20] [cursor=pointer]:
28
+ - /url: "#"
29
+ - listitem [ref=e21]:
30
+ - link " Stores" [ref=e22] [cursor=pointer]:
31
+ - /url: "#"
32
+ - listitem [ref=e23]:
33
+ - link " System" [ref=e24] [cursor=pointer]:
34
+ - /url: "#"
35
+ - listitem [ref=e25]:
36
+ - link " Find Partners & Extensions" [ref=e26] [cursor=pointer]:
37
+ - /url: http://localhost:7780/admin/marketplace/index/
38
+ - generic [ref=e27]:
39
+ - banner [ref=e29]:
40
+ - heading "Search Terms" [level=1] [ref=e32]
41
+ - generic [ref=e33]:
42
+ - link " admin" [ref=e35] [cursor=pointer]:
43
+ - /url: http://localhost:7780/admin/admin/system_account/index/
44
+ - text: 
45
+ - generic [ref=e37]: admin
46
+ - link "" [ref=e39] [cursor=pointer]:
47
+ - /url: http://localhost:7780/admin/admin/notification/index/
48
+ - generic:
49
+ - generic:
50
+ - generic:
51
+ - generic [ref=e40] [cursor=pointer]: 
52
+ - textbox "" [ref=e41]
53
+ - main [ref=e42]:
54
+ - button "Add New Search Term" [ref=e45] [cursor=pointer]
55
+ - generic [ref=e49]:
56
+ - generic [ref=e50]:
57
+ - generic [ref=e52]:
58
+ - button "Search" [ref=e53] [cursor=pointer]
59
+ - button "Reset Filter" [ref=e54] [cursor=pointer]
60
+ - generic [ref=e55]:
61
+ - generic [ref=e56]:
62
+ - combobox [ref=e59]:
63
+ - option "Actions" [selected]
64
+ - option "Delete"
65
+ - combobox [ref=e61] [cursor=pointer]:
66
+ - option "Select All"
67
+ - option "Unselect All"
68
+ - option "Select Visible"
69
+ - option "Unselect Visible"
70
+ - generic [ref=e63]: 7 records found ()
71
+ - generic [ref=e64]:
72
+ - combobox "per page" [ref=e65]:
73
+ - option "20" [selected]
74
+ - option "30"
75
+ - option "50"
76
+ - option "100"
77
+ - option "200"
78
+ - generic [ref=e66]: per page
79
+ - generic [ref=e67]:
80
+ - button ""
81
+ - textbox "of 1" [ref=e68]: "1"
82
+ - generic [ref=e69]: of 1
83
+ - button ""
84
+ - table [ref=e71]:
85
+ - rowgroup [ref=e72]:
86
+ - row "Search Query Store Results Uses Redirect URL Suggested Terms Action" [ref=e73]:
87
+ - columnheader [ref=e74]
88
+ - columnheader "Search Query" [ref=e75] [cursor=pointer]
89
+ - columnheader "Store" [ref=e76]
90
+ - columnheader "Results" [ref=e77] [cursor=pointer]
91
+ - columnheader "Uses" [ref=e78] [cursor=pointer]
92
+ - columnheader "Redirect URL" [ref=e79] [cursor=pointer]
93
+ - columnheader "Suggested Terms" [ref=e80] [cursor=pointer]
94
+ - columnheader "Action" [ref=e81]
95
+ - row "Any" [ref=e82]:
96
+ - cell "Any" [ref=e83]:
97
+ - combobox [ref=e85]:
98
+ - option "Any" [selected]
99
+ - option "Yes"
100
+ - option "No"
101
+ - cell [ref=e86]:
102
+ - textbox [ref=e87]
103
+ - cell [ref=e88]:
104
+ - combobox [ref=e89]:
105
+ - option "Default Store View"
106
+ - cell [ref=e90]:
107
+ - generic [ref=e91]:
108
+ - textbox "From" [ref=e93]
109
+ - textbox "To" [ref=e95]
110
+ - cell [ref=e96]:
111
+ - generic [ref=e97]:
112
+ - textbox "From" [ref=e99]
113
+ - textbox "To" [ref=e101]
114
+ - cell [ref=e102]:
115
+ - textbox [ref=e103]
116
+ - cell [ref=e104]:
117
+ - combobox [ref=e105]:
118
+ - option "Yes"
119
+ - option "No"
120
+ - cell [ref=e106]
121
+ - rowgroup [ref=e107]:
122
+ - row "Joust Bag Main Website Main Website Store Default Store View 10 4 Yes Edit" [ref=e108]:
123
+ - cell [ref=e109]:
124
+ - checkbox [ref=e111] [cursor=pointer]
125
+ - cell "Joust Bag" [ref=e113]
126
+ - cell "Main Website Main Website Store Default Store View" [ref=e114]:
127
+ - text: Main Website
128
+ - text: Main Website Store
129
+ - text: Default Store View
130
+ - cell "10" [ref=e115]
131
+ - cell "4" [ref=e116]
132
+ - cell [ref=e117]
133
+ - cell "Yes" [ref=e118]
134
+ - cell "Edit" [ref=e119]:
135
+ - link "Edit" [ref=e120] [cursor=pointer]:
136
+ - /url: http://localhost:7780/admin/search/term/edit/id/1/
137
+ - row "MT02-M-Gray Main Website Main Website Store Default Store View 115 1 Yes Edit" [ref=e121]:
138
+ - cell [ref=e122]:
139
+ - checkbox [ref=e124] [cursor=pointer]
140
+ - cell "MT02-M-Gray" [ref=e126]
141
+ - cell "Main Website Main Website Store Default Store View" [ref=e127]:
142
+ - text: Main Website
143
+ - text: Main Website Store
144
+ - text: Default Store View
145
+ - cell "115" [ref=e128]
146
+ - cell "1" [ref=e129]
147
+ - cell [ref=e130]
148
+ - cell "Yes" [ref=e131]
149
+ - cell "Edit" [ref=e132]:
150
+ - link "Edit" [ref=e133] [cursor=pointer]:
151
+ - /url: http://localhost:7780/admin/search/term/edit/id/5/
152
+ - row "WP10 Main Website Main Website Store Default Store View 1 1 Yes Edit" [ref=e134]:
153
+ - cell [ref=e135]:
154
+ - checkbox [ref=e137] [cursor=pointer]
155
+ - cell "WP10" [ref=e139]
156
+ - cell "Main Website Main Website Store Default Store View" [ref=e140]:
157
+ - text: Main Website
158
+ - text: Main Website Store
159
+ - text: Default Store View
160
+ - cell "1" [ref=e141]
161
+ - cell "1" [ref=e142]
162
+ - cell [ref=e143]
163
+ - cell "Yes" [ref=e144]
164
+ - cell "Edit" [ref=e145]:
165
+ - link "Edit" [ref=e146] [cursor=pointer]:
166
+ - /url: http://localhost:7780/admin/search/term/edit/id/9/
167
+ - row "hollister Main Website Main Website Store Default Store View 1 19 Yes Edit" [ref=e147]:
168
+ - cell [ref=e148]:
169
+ - checkbox [ref=e150] [cursor=pointer]
170
+ - cell "hollister" [ref=e152]
171
+ - cell "Main Website Main Website Store Default Store View" [ref=e153]:
172
+ - text: Main Website
173
+ - text: Main Website Store
174
+ - text: Default Store View
175
+ - cell "1" [ref=e154]
176
+ - cell "19" [ref=e155]
177
+ - cell [ref=e156]
178
+ - cell "Yes" [ref=e157]
179
+ - cell "Edit" [ref=e158]:
180
+ - link "Edit" [ref=e159] [cursor=pointer]:
181
+ - /url: http://localhost:7780/admin/search/term/edit/id/11/
182
+ - row "Antonia Racer Tank Main Website Main Website Store Default Store View 23 2 Yes Edit" [ref=e160]:
183
+ - cell [ref=e161]:
184
+ - checkbox [ref=e163] [cursor=pointer]
185
+ - cell "Antonia Racer Tank" [ref=e165]
186
+ - cell "Main Website Main Website Store Default Store View" [ref=e166]:
187
+ - text: Main Website
188
+ - text: Main Website Store
189
+ - text: Default Store View
190
+ - cell "23" [ref=e167]
191
+ - cell "2" [ref=e168]
192
+ - cell [ref=e169]
193
+ - cell "Yes" [ref=e170]
194
+ - cell "Edit" [ref=e171]:
195
+ - link "Edit" [ref=e172] [cursor=pointer]:
196
+ - /url: http://localhost:7780/admin/search/term/edit/id/13/
197
+ - row "nike Main Website Main Website Store Default Store View 0 3 Yes Edit" [ref=e173]:
198
+ - cell [ref=e174]:
199
+ - checkbox [ref=e176] [cursor=pointer]
200
+ - cell "nike" [ref=e178]
201
+ - cell "Main Website Main Website Store Default Store View" [ref=e179]:
202
+ - text: Main Website
203
+ - text: Main Website Store
204
+ - text: Default Store View
205
+ - cell "0" [ref=e180]
206
+ - cell "3" [ref=e181]
207
+ - cell [ref=e182]
208
+ - cell "Yes" [ref=e183]
209
+ - cell "Edit" [ref=e184]:
210
+ - link "Edit" [ref=e185] [cursor=pointer]:
211
+ - /url: http://localhost:7780/admin/search/term/edit/id/19/
212
+ - row "tanks Main Website Main Website Store Default Store View 23 1 Yes Edit" [ref=e186]:
213
+ - cell [ref=e187]:
214
+ - checkbox [ref=e189] [cursor=pointer]
215
+ - cell "tanks" [ref=e191]
216
+ - cell "Main Website Main Website Store Default Store View" [ref=e192]:
217
+ - text: Main Website
218
+ - text: Main Website Store
219
+ - text: Default Store View
220
+ - cell "23" [ref=e193]
221
+ - cell "1" [ref=e194]
222
+ - cell [ref=e195]
223
+ - cell "Yes" [ref=e196]
224
+ - cell "Edit" [ref=e197]:
225
+ - link "Edit" [ref=e198] [cursor=pointer]:
226
+ - /url: http://localhost:7780/admin/search/term/edit/id/25/
227
+ - contentinfo [ref=e199]:
228
+ - generic [ref=e201]:
229
+ - paragraph [ref=e202]:
230
+ - link "" [ref=e203] [cursor=pointer]:
231
+ - /url: http://magento.com
232
+ - text: Copyright © 2026 Magento Commerce Inc. All rights reserved.
233
+ - generic [ref=e204]:
234
+ - paragraph [ref=e205]:
235
+ - strong [ref=e206]: Magento
236
+ - text: ver. 2.4.6
237
+ - link "Privacy Policy" [ref=e207] [cursor=pointer]:
238
+ - /url: https://www.adobe.com/privacy/policy.html
239
+ - text: "|"
240
+ - link "Account Activity" [ref=e208] [cursor=pointer]:
241
+ - /url: http://localhost:7780/admin/security/session/activity/
242
+ - text: "|"
243
+ - link "Report an Issue" [ref=e209] [cursor=pointer]:
244
+ - /url: https://github.com/magento/magento2/issues
signup_page.txt ADDED
@@ -0,0 +1,56 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ - generic [active] [ref=e1]:
2
+ - navigation:
3
+ - link "Jump to main content" [ref=e2] [cursor=pointer]:
4
+ - /url: "#main"
5
+ - link "Jump to sidebar" [ref=e3] [cursor=pointer]:
6
+ - /url: "#sidebar"
7
+ - navigation [ref=e4]:
8
+ - generic [ref=e5]:
9
+ - link "Home" [ref=e7] [cursor=pointer]:
10
+ - /url: /
11
+ - text: Postmill
12
+ - list [ref=e9]:
13
+ - listitem [ref=e10]:
14
+ - link "Forums" [ref=e11] [cursor=pointer]:
15
+ - /url: /forums
16
+ - listitem [ref=e12]:
17
+ - link "Wiki" [ref=e13] [cursor=pointer]:
18
+ - /url: /wiki
19
+ - generic [ref=e15]:
20
+ - img [ref=e18]
21
+ - searchbox "Search query" [ref=e20]
22
+ - list [ref=e21]:
23
+ - listitem [ref=e22]:
24
+ - link "Log in" [ref=e23] [cursor=pointer]:
25
+ - /url: /login
26
+ - listitem [ref=e24]:
27
+ - link "Sign up" [ref=e25] [cursor=pointer]:
28
+ - /url: /registration
29
+ - main [ref=e27]:
30
+ - heading "Sign up" [level=1] [ref=e28]
31
+ - generic [ref=e29]:
32
+ - generic [ref=e30]:
33
+ - generic [ref=e31]:
34
+ - generic [ref=e32]: Username *
35
+ - textbox "Username This field is required." [ref=e33]
36
+ - paragraph [ref=e35]: Allowed characters are A-Z, a-z, 0-9 and underscore.
37
+ - generic [ref=e36]:
38
+ - generic [ref=e37]:
39
+ - generic [ref=e38]: Password *
40
+ - generic [ref=e39]:
41
+ - textbox "Password This field is required." [ref=e40]
42
+ - textbox "Password (repeat)" [ref=e41]:
43
+ - /placeholder: (repeat)
44
+ - paragraph [ref=e43]: Minimum of 8 characters.
45
+ - generic [ref=e44]:
46
+ - generic [ref=e45]:
47
+ - generic [ref=e46]: Email address
48
+ - textbox "Email address" [ref=e47]
49
+ - paragraph [ref=e49]: Providing an email address is optional. We will only use it for resetting passwords.
50
+ - button "Sign up" [ref=e51] [cursor=pointer]
51
+ - contentinfo [ref=e52]:
52
+ - paragraph [ref=e53]:
53
+ - generic [ref=e54]:
54
+ - text: Running
55
+ - link "Postmill" [ref=e55] [cursor=pointer]:
56
+ - /url: https://postmill.xyz/
src/errors.py ADDED
@@ -0,0 +1,63 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ #!/usr/bin/env python3
2
+ """
3
+ Simple Error Handling for MCPMark
4
+ ==================================
5
+
6
+ Provides basic error standardization and retry logic.
7
+ """
8
+
9
+ from typing import Optional
10
+
11
+
12
+ """Retryable error detection via minimal substring matching (lower-case)."""
13
+
14
+ # Keep this list short and generic; aim to catch API/infrastructure issues only.
15
+ RETRYABLE_PATTERNS = {
16
+ "ratelimit", # e.g., RateLimitError, too many requests
17
+ # "connection", # connection refused/reset/error
18
+ "agent execution failed",
19
+ "unavailable", # service unavailable
20
+ # "execution timed out", # timeout
21
+ "internal server error", # 500s
22
+ "network error", # generic network issue
23
+ "quota", # budget/quota exceeded
24
+ # "llm provider not provided", # litellm error
25
+ # pipeline infra signals
26
+ "account balance",
27
+ "mcp network error",
28
+ "state duplication error",
29
+ "thought_signature",
30
+ "overloaded."
31
+ }
32
+
33
+
34
+ def is_retryable_error(error: str) -> bool:
35
+ """Return True if the error string contains any retryable pattern."""
36
+ error_lower = str(error or "").lower()
37
+ return any(pattern in error_lower for pattern in RETRYABLE_PATTERNS)
38
+
39
+
40
+ def standardize_error_message(error: str, mcp_service: Optional[str] = None) -> str:
41
+ """Standardize error messages for consistent reporting."""
42
+ error_str = str(error).strip()
43
+
44
+ # Common standardizations
45
+ if "timeout" in error_str.lower():
46
+ base_msg = "Operation timed out"
47
+ elif (
48
+ "connection refused" in error_str.lower() or "econnrefused" in error_str.lower()
49
+ ):
50
+ base_msg = "Connection refused"
51
+ elif "not found" in error_str.lower():
52
+ base_msg = "Resource not found"
53
+ elif "already exists" in error_str.lower():
54
+ base_msg = "Resource already exists"
55
+ else:
56
+ # Return original message if no standardization applies
57
+ return error_str
58
+
59
+ # Add MCP service prefix if provided
60
+ if mcp_service:
61
+ return f"{mcp_service.title()} {base_msg}"
62
+
63
+ return base_msg
src/evaluator.py ADDED
@@ -0,0 +1,442 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import time
2
+ import json
3
+ import shutil
4
+
5
+ from datetime import datetime
6
+ from pathlib import Path
7
+ from typing import List, Optional
8
+
9
+ from src.logger import get_logger
10
+ from src.factory import MCPServiceFactory
11
+ from src.model_config import ModelConfig
12
+ from src.results_reporter import EvaluationReport, ResultsReporter, TaskResult
13
+ from src.errors import is_retryable_error
14
+ from src.agents import AGENT_REGISTRY
15
+
16
+ # Initialize logger
17
+ logger = get_logger(__name__)
18
+
19
+
20
+ class MCPEvaluator:
21
+ def __init__(
22
+ self,
23
+ mcp_service: str,
24
+ model: str,
25
+ timeout: int = 300,
26
+ exp_name: str = "test-run",
27
+ output_dir: Path = None,
28
+ reasoning_effort: str = "default",
29
+ agent_name: str = "mcpmark",
30
+ task_suite: str = "standard",
31
+ compaction_token: int = 0,
32
+ summarize_tool_response: bool = False,
33
+ ):
34
+ # Main configuration
35
+ self.mcp_service = mcp_service
36
+ self.timeout = timeout
37
+ self.agent_name = (agent_name or "mcpmark").lower()
38
+ self.task_suite = (task_suite or "standard").lower()
39
+ if self.agent_name not in AGENT_REGISTRY:
40
+ raise ValueError(f"Unsupported agent '{agent_name}'. Available: {sorted(AGENT_REGISTRY)}")
41
+
42
+ # Initialize model configuration
43
+ self.reasoning_effort = reasoning_effort
44
+ self.model_name = model
45
+
46
+ model_config = ModelConfig(self.model_name)
47
+ self.api_key = model_config.api_key
48
+ self.base_url = model_config.base_url
49
+ self.litellm_input_model_name = model_config.litellm_input_model_name
50
+ self.extra_body = model_config.extra_body
51
+
52
+ # Track the actual model name from LiteLLM responses
53
+ self.litellm_run_model_name = None
54
+
55
+ # Initialize managers using the factory pattern (simplified)
56
+ self.task_manager = MCPServiceFactory.create_task_manager(
57
+ mcp_service, task_suite=self.task_suite
58
+ )
59
+ self.state_manager = MCPServiceFactory.create_state_manager(mcp_service)
60
+
61
+ # Obtain static service configuration from state manager (e.g., notion_key)
62
+ self.service_config = self.state_manager.get_service_config_for_agent()
63
+
64
+ # Initialize agent for LLM and MCP server management. The agent will
65
+ # automatically refresh its service configuration from the state
66
+ # manager before each execution, so per-task manual updates are no
67
+ # longer needed.
68
+ agent_cls = AGENT_REGISTRY[self.agent_name]
69
+ self.agent = agent_cls(
70
+ litellm_input_model_name=self.litellm_input_model_name,
71
+ api_key=self.api_key,
72
+ base_url=self.base_url,
73
+ mcp_service=mcp_service,
74
+ timeout=timeout,
75
+ service_config=self.service_config,
76
+ service_config_provider=self.state_manager.get_service_config_for_agent,
77
+ reasoning_effort=self.reasoning_effort,
78
+ compaction_token=compaction_token,
79
+ extra_body=self.extra_body,
80
+ summarize_tool_response=summarize_tool_response,
81
+ )
82
+
83
+ # Initialize results reporter
84
+ self.results_reporter = ResultsReporter()
85
+
86
+ # Output directory handling
87
+ if self.reasoning_effort != "default":
88
+ model_slug = self.model_name.replace(".", "-") + "-" + self.reasoning_effort
89
+ else:
90
+ model_slug = self.model_name.replace(".", "-")
91
+
92
+ service_for_dir = "playwright" if mcp_service == "playwright_webarena" else mcp_service
93
+ suite_suffix = "" if self.task_suite in ("standard", "", None) else f"-{self.task_suite}"
94
+ service_dir_name = f"{service_for_dir}{suite_suffix}"
95
+ self.base_experiment_dir = output_dir / f"{model_slug}__{service_dir_name}" / exp_name
96
+ self.base_experiment_dir.mkdir(parents=True, exist_ok=True)
97
+
98
+ def _format_duration(self, seconds: float) -> str:
99
+ """Format duration: <1s as ms, otherwise seconds."""
100
+ return f"{(seconds * 1000):.2f}ms" if seconds < 1 else f"{seconds:.2f}s"
101
+
102
+ def _get_task_output_dir(self, task) -> Path:
103
+ """Return the directory path for storing this task's reports using '__' separator."""
104
+ # Use category_id and task_id with '__' separator
105
+ category_id = task.category_id if task.category_id else "uncategorized"
106
+ task_id = str(task.task_id)
107
+
108
+ return self.base_experiment_dir / f"{category_id}__{task_id}"
109
+
110
+ # ------------------------------------------------------------------
111
+ # Resuming helpers
112
+ # ------------------------------------------------------------------
113
+
114
+ def _load_latest_task_result(self, task) -> Optional[TaskResult]:
115
+ """Return the most recent TaskResult for *task* if it has been run before."""
116
+ task_dir = self._get_task_output_dir(task)
117
+ if not task_dir.exists():
118
+ return None
119
+
120
+ meta_path = task_dir / "meta.json"
121
+ if not meta_path.exists():
122
+ return None
123
+
124
+ try:
125
+ with meta_path.open("r", encoding="utf-8") as f:
126
+ meta_data = json.load(f)
127
+
128
+ return TaskResult(
129
+ task_name=meta_data["task_name"],
130
+ success=meta_data["execution_result"]["success"],
131
+ error_message=meta_data["execution_result"].get("error_message"),
132
+ verification_error=meta_data["execution_result"].get("verification_error"),
133
+ verification_output=meta_data["execution_result"].get("verification_output"),
134
+ category_id=task.category_id,
135
+ task_id=task.task_id,
136
+ model_output=None,
137
+ token_usage=meta_data.get("token_usage", {}),
138
+ turn_count=meta_data.get("turn_count"),
139
+ agent_execution_time=meta_data.get("agent_execution_time", 0.0),
140
+ task_execution_time=meta_data.get("task_execution_time", 0.0),
141
+ )
142
+ except Exception as exc:
143
+ logger.warning("Failed to load existing result for %s: %s", task.name, exc)
144
+ return None
145
+
146
+ def _gather_all_task_results(self) -> List[TaskResult]:
147
+ """Scan *all* task sub-directories and collect the latest TaskResult from each."""
148
+ results: list[TaskResult] = []
149
+ if not self.base_experiment_dir.exists():
150
+ return results
151
+
152
+ for task_dir in self.base_experiment_dir.iterdir():
153
+ if not task_dir.is_dir():
154
+ continue
155
+ meta_path = task_dir / "meta.json"
156
+ if not meta_path.exists():
157
+ continue
158
+ try:
159
+ with meta_path.open("r", encoding="utf-8") as f:
160
+ meta_data = json.load(f)
161
+
162
+ category_id, task_id = task_dir.name.split("__", 1)
163
+
164
+ result = TaskResult(
165
+ task_name=meta_data["task_name"],
166
+ success=meta_data["execution_result"]["success"],
167
+ error_message=meta_data["execution_result"].get("error_message"),
168
+ verification_error=meta_data["execution_result"].get("verification_error"),
169
+ verification_output=meta_data["execution_result"].get("verification_output"),
170
+ category_id=category_id,
171
+ task_id=task_id,
172
+ model_output=None,
173
+ token_usage=meta_data.get("token_usage", {}),
174
+ turn_count=meta_data.get("turn_count"),
175
+ agent_execution_time=meta_data.get("agent_execution_time", 0.0),
176
+ task_execution_time=meta_data.get("task_execution_time", 0.0),
177
+ )
178
+ results.append(result)
179
+ except Exception as exc:
180
+ logger.warning(
181
+ "Failed to parse existing report in %s: %s", task_dir, exc
182
+ )
183
+ return results
184
+
185
+ def _run_single_task(self, task) -> TaskResult:
186
+ """
187
+ Runs a single task, including setup, agent execution, verification, and cleanup.
188
+ """
189
+ # Track overall task start time
190
+ task_start_time = time.time()
191
+
192
+ # ------------------------------------------------------------------
193
+ # Stage 1: Set up the initial state for the task
194
+ # ------------------------------------------------------------------
195
+ setup_start_time = time.time()
196
+ logger.info(
197
+ "\n┌─ Stage 1: Setup ─────────────────────────────────────────────────────"
198
+ )
199
+ setup_success = self.state_manager.set_up(task)
200
+ setup_time = time.time() - setup_start_time
201
+
202
+ if not setup_success:
203
+ logger.error(f"| State setup failed for task: {task.name}")
204
+ task_total_time = time.time() - task_start_time
205
+ return TaskResult(
206
+ task_name=task.name,
207
+ success=False,
208
+ error_message="State Duplication Error",
209
+ verification_error=None,
210
+ verification_output=None,
211
+ category_id=task.category_id,
212
+ task_id=task.task_id,
213
+ agent_execution_time=0.0,
214
+ task_execution_time=task_total_time,
215
+ )
216
+ display_time = self._format_duration(setup_time)
217
+ logger.info(f"└─ Completed in {display_time}\n")
218
+
219
+ # ------------------------------------------------------------------
220
+ # Stage 2: Execute the task using the agent
221
+ # ------------------------------------------------------------------
222
+ logger.info(
223
+ "┌─ Stage 2: Execute ───────────────────────────────────────────────────"
224
+ )
225
+
226
+ agent_execution_start_time = time.time()
227
+
228
+ # Get task instruction from task manager
229
+ task_instruction = self.task_manager.get_task_instruction(task)
230
+
231
+ # Prepare task_output_dir and tool call log file
232
+ task_output_dir = self._get_task_output_dir(task)
233
+ task_output_dir.mkdir(parents=True, exist_ok=True)
234
+ execution_log_path = task_output_dir / "execution.log"
235
+
236
+ # Remove existing execution.log to ensure clean start
237
+ if execution_log_path.exists():
238
+ execution_log_path.unlink()
239
+
240
+ # Execute with agent
241
+ agent_result = self.agent.execute_sync(
242
+ task_instruction, str(execution_log_path)
243
+ )
244
+
245
+ agent_execution_time = time.time() - agent_execution_start_time
246
+
247
+ # Extract actual model name from LiteLLM response
248
+ if agent_result.get("litellm_run_model_name"):
249
+ self.litellm_run_model_name = agent_result["litellm_run_model_name"]
250
+
251
+ # Write messages.json to task_output_dir
252
+ messages_path = task_output_dir / "messages.json"
253
+ self.results_reporter.save_messages_json(
254
+ agent_result.get("output", []), messages_path
255
+ )
256
+
257
+ # Set service-specific environment variables for verification scripts
258
+ self.state_manager.set_verification_environment(str(messages_path))
259
+ logger.info(f"└─ Completed in {self._format_duration(agent_execution_time)}\n")
260
+
261
+ # ------------------------------------------------------------------
262
+ # Stage 3: Verify
263
+ # ------------------------------------------------------------------
264
+ logger.info(
265
+ "┌─ Stage 3: Verify ────────────────────────────────────────────────────"
266
+ )
267
+ verify_start_time = time.time()
268
+ try:
269
+ result = self.task_manager.execute_task(task, agent_result)
270
+ finally:
271
+ # Clean up environment variables
272
+ import os
273
+
274
+ os.environ.pop("MCP_MESSAGES", None)
275
+ os.environ.pop("MCP_GITHUB_TOKEN", None)
276
+
277
+ verify_time = time.time() - verify_start_time
278
+ logger.info(f"└─ Completed in {self._format_duration(verify_time)}\n")
279
+
280
+ # ------------------------------------------------------------------
281
+ # Stage 4: Clean up
282
+ # ------------------------------------------------------------------
283
+ logger.info(
284
+ "┌─ Stage 4: Cleanup ───────────────────────────────────────────────────"
285
+ )
286
+ cleanup_start_time = time.time()
287
+ self.state_manager.clean_up(task)
288
+ cleanup_time = time.time() - cleanup_start_time
289
+ logger.info(f"└─ Completed in {self._format_duration(cleanup_time)}\n")
290
+
291
+ # Calculate total task execution time
292
+ task_total_time = time.time() - task_start_time
293
+
294
+ # Add timing information to the result
295
+ result.agent_execution_time = agent_execution_time
296
+ result.task_execution_time = task_total_time
297
+
298
+ return result
299
+
300
+ def run_evaluation(self, task_filter: str) -> EvaluationReport:
301
+ """
302
+ Runs the full evaluation for the specified tasks.
303
+ """
304
+ tasks = self.task_manager.filter_tasks(task_filter)
305
+
306
+ results = []
307
+
308
+ for task in tasks:
309
+ # --------------------------------------------------------------
310
+ # Resume check
311
+ # --------------------------------------------------------------
312
+ existing_result = self._load_latest_task_result(task)
313
+
314
+ # Decide whether to skip or retry this task
315
+ retry_due_to_error = (
316
+ existing_result is not None
317
+ and not existing_result.success
318
+ and is_retryable_error(existing_result.error_message)
319
+ )
320
+
321
+ if existing_result and not retry_due_to_error:
322
+ # Existing result is either successful or failed with a non-retryable error – skip.
323
+ logger.info(
324
+ "↩️ Skipping already-completed task (resume): %s", task.name
325
+ )
326
+ results.append(existing_result)
327
+ continue
328
+
329
+ if retry_due_to_error:
330
+ # Clean previous artifacts so that new results fully replace them.
331
+ task_output_dir = self._get_task_output_dir(task)
332
+ if task_output_dir.exists():
333
+ shutil.rmtree(task_output_dir)
334
+ logger.info(
335
+ "🔄 Retrying task due to pipeline error (%s): %s",
336
+ existing_result.error_message,
337
+ task.name,
338
+ )
339
+
340
+ # --------------------------------------------------------------
341
+ # Execute new task
342
+ # --------------------------------------------------------------
343
+ task_start = time.time()
344
+ task_result = self._run_single_task(task)
345
+ task_end = time.time()
346
+
347
+ results.append(task_result)
348
+
349
+ # Prepare directory & save
350
+ task_output_dir = self._get_task_output_dir(task)
351
+ task_output_dir.mkdir(parents=True, exist_ok=True)
352
+
353
+ # Save messages.json (conversation trajectory)
354
+ messages_path = task_output_dir / "messages.json"
355
+
356
+ if not messages_path.exists(): # 已经写过就跳过
357
+ messages = (
358
+ task_result.model_output
359
+ if getattr(task_result, "model_output", None)
360
+ else []
361
+ )
362
+ self.results_reporter.save_messages_json(messages, messages_path)
363
+
364
+ # Save meta.json (all other metadata)
365
+ meta_path = task_output_dir / "meta.json"
366
+ model_config = {
367
+ "mcp_service": self.mcp_service,
368
+ "model_name": self.model_name,
369
+ "litellm_run_model_name": self.litellm_run_model_name,
370
+ "reasoning_effort": self.reasoning_effort,
371
+ "timeout": self.timeout,
372
+ "agent_name": self.agent_name,
373
+ }
374
+ self.results_reporter.save_meta_json(
375
+ task_result,
376
+ model_config,
377
+ datetime.fromtimestamp(task_start),
378
+ datetime.fromtimestamp(task_end),
379
+ meta_path,
380
+ )
381
+
382
+ # --------------------------------------------------------------
383
+ # Aggregate results – combine current `results` with any previously
384
+ # saved TaskResults that ALSO match the current task_filter.
385
+ # --------------------------------------------------------------
386
+
387
+ # Helper: determine if a TaskResult matches the filter string
388
+ def _matches_filter(tr: TaskResult, flt: str) -> bool:
389
+ if flt.lower() == "all":
390
+ return True
391
+ if "/" in flt:
392
+ # specific task (category_id/task_id)
393
+ category_id, task_id = flt.split("/", 1)
394
+ return tr.category_id == category_id and str(tr.task_id) == task_id
395
+ # category level
396
+ return tr.category_id == flt
397
+
398
+ # Pull existing reports from disk and merge
399
+ existing_results = [
400
+ r
401
+ for r in self._gather_all_task_results()
402
+ if _matches_filter(r, task_filter)
403
+ ]
404
+
405
+ # Merge, giving preference to fresh `results` (avoids duplicates)
406
+ merged: dict[str, TaskResult] = {r.task_name: r for r in existing_results}
407
+ merged.update({r.task_name: r for r in results}) # overwrite with latest run
408
+
409
+ final_results = list(merged.values())
410
+
411
+ aggregated_report = EvaluationReport(
412
+ model_name=self.model_name,
413
+ model_config={
414
+ "mcp_service": self.mcp_service,
415
+ "model_name": self.model_name,
416
+ "litellm_run_model_name": self.litellm_run_model_name,
417
+ "reasoning_effort": self.reasoning_effort,
418
+ "timeout": self.timeout,
419
+ "agent_name": self.agent_name,
420
+ },
421
+ total_tasks=len(final_results),
422
+ successful_tasks=sum(1 for r in final_results if r.success),
423
+ failed_tasks=sum(1 for r in final_results if not r.success),
424
+ task_results=final_results,
425
+ tasks_filter=task_filter,
426
+ )
427
+
428
+ # Save model-level summary
429
+ summary_path = self.base_experiment_dir / "summary.json"
430
+ self.results_reporter.save_model_summary(aggregated_report, summary_path)
431
+
432
+ logger.info(
433
+ "\n============================================================"
434
+ "\nResults Summary"
435
+ "\n============================================================"
436
+ )
437
+ logger.info(
438
+ f"✓ Tasks passed: {aggregated_report.successful_tasks}/{aggregated_report.total_tasks} ({aggregated_report.success_rate:.1f}%)"
439
+ )
440
+ logger.info(f"⏱ Total time: {aggregated_report.total_task_execution_time:.1f}s")
441
+
442
+ return aggregated_report
src/factory.py ADDED
@@ -0,0 +1,189 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ #!/usr/bin/env python3
2
+ """
3
+ MCP Service Factory for MCPMark
4
+ =================================
5
+
6
+ This module provides a simplified factory pattern for creating service-specific managers
7
+ with centralized configuration management.
8
+
9
+ Features:
10
+ - Dynamic service loading from definitions
11
+ - Centralized configuration
12
+ - Simplified service registration
13
+ """
14
+
15
+ import importlib
16
+ from dataclasses import dataclass
17
+ from typing import Dict, Type
18
+
19
+ from src.base.login_helper import BaseLoginHelper
20
+ from src.base.state_manager import BaseStateManager
21
+ from src.base.task_manager import BaseTaskManager
22
+ from src.config.config_schema import ConfigRegistry
23
+ from src.services import get_service_definition, get_supported_mcp_services
24
+
25
+
26
+ @dataclass
27
+ class ServiceComponents:
28
+ """All components required for an MCP service."""
29
+
30
+ task_manager_class: Type[BaseTaskManager]
31
+ state_manager_class: Type[BaseStateManager]
32
+ login_helper_class: Type[BaseLoginHelper]
33
+ config_mapping: Dict[str, Dict[str, str]]
34
+
35
+
36
+ def import_class(module_path: str):
37
+ """Dynamically import a class from module path string."""
38
+ if not module_path:
39
+ return None
40
+ module_name, class_name = module_path.rsplit(".", 1)
41
+ module = importlib.import_module(module_name)
42
+ return getattr(module, class_name)
43
+
44
+
45
+ def apply_config_mapping(config: dict, mapping: dict) -> dict:
46
+ """Apply config mapping to transform config keys to constructor params."""
47
+ if not mapping:
48
+ return {}
49
+
50
+ result = {}
51
+ for param_name, config_key in mapping.items():
52
+ if config_key in config:
53
+ result[param_name] = config[config_key]
54
+ return result
55
+
56
+
57
+ class ServiceRegistry:
58
+ """Central registry that loads MCP services from definitions."""
59
+
60
+ # Cache for loaded components
61
+ _components_cache: Dict[str, ServiceComponents] = {}
62
+
63
+ @classmethod
64
+ def get_components(cls, service_name: str) -> ServiceComponents:
65
+ """Get MCP service components from definition."""
66
+ if service_name in cls._components_cache:
67
+ return cls._components_cache[service_name]
68
+
69
+ definition = get_service_definition(service_name)
70
+
71
+ # Import classes dynamically
72
+ components = ServiceComponents(
73
+ task_manager_class=import_class(definition["components"]["task_manager"]),
74
+ state_manager_class=import_class(definition["components"]["state_manager"]),
75
+ login_helper_class=import_class(definition["components"]["login_helper"]),
76
+ config_mapping=definition.get("config_mapping", {}),
77
+ )
78
+
79
+ cls._components_cache[service_name] = components
80
+ return components
81
+
82
+
83
+ class GenericServiceFactory:
84
+ """Generic factory that works with any MCP service."""
85
+
86
+ def __init__(self, components: ServiceComponents, service_name: str):
87
+ self.components = components
88
+ self.service_name = service_name
89
+
90
+ def create_task_manager(self, **kwargs) -> BaseTaskManager:
91
+ """Create task manager instance."""
92
+ return self.components.task_manager_class(**kwargs)
93
+
94
+ def create_state_manager(self, config) -> BaseStateManager:
95
+ """Create state manager with config mapping."""
96
+ mapping = self.components.config_mapping.get("state_manager", {})
97
+ # Handle both dict and config schema objects
98
+ config_dict = config.get_all() if hasattr(config, "get_all") else config
99
+ kwargs = apply_config_mapping(config_dict, mapping)
100
+ return self.components.state_manager_class(**kwargs)
101
+
102
+ def create_login_helper(self, config) -> BaseLoginHelper:
103
+ """Create login helper with config mapping."""
104
+ mapping = self.components.config_mapping.get("login_helper", {})
105
+ # Handle both dict and config schema objects
106
+ config_dict = config.get_all() if hasattr(config, "get_all") else config
107
+ kwargs = apply_config_mapping(config_dict, mapping)
108
+
109
+ # Special handling for GitHub login helper - it needs a single token
110
+ if self.service_name == "github" and "token" in kwargs:
111
+ tokens_list = kwargs["token"]
112
+ if isinstance(tokens_list, list) and tokens_list:
113
+ kwargs["token"] = tokens_list[0] # Use first token for login helper
114
+
115
+ return self.components.login_helper_class(**kwargs)
116
+
117
+
118
+ class MCPServiceFactory:
119
+ """Main factory interface."""
120
+
121
+ @classmethod
122
+ def create_service_config(cls, service_name: str):
123
+ """Create MCP service configuration (backward compatible)."""
124
+ config = ConfigRegistry.get_config(service_name)
125
+
126
+ # Create a backward-compatible ServiceConfig-like object
127
+ class ServiceConfigCompat:
128
+ def __init__(self, service_name: str, config_dict: dict):
129
+ self.service_name = service_name
130
+ self.config = config_dict
131
+ self.api_key = config_dict.get("api_key")
132
+
133
+ return ServiceConfigCompat(service_name, config.get_all())
134
+
135
+ @classmethod
136
+ def create_task_manager(cls, service_name: str, **kwargs) -> BaseTaskManager:
137
+ """Create task manager for the specified MCP service."""
138
+ components = ServiceRegistry.get_components(service_name)
139
+ return components.task_manager_class(**kwargs)
140
+
141
+ @classmethod
142
+ def create_state_manager(cls, service_name: str, **kwargs) -> BaseStateManager:
143
+ """Create state manager for the specified MCP service."""
144
+ components = ServiceRegistry.get_components(service_name)
145
+ config = ConfigRegistry.get_config(service_name).get_all()
146
+
147
+ # Use provided kwargs or apply config mapping
148
+ if not kwargs:
149
+ mapping = components.config_mapping.get("state_manager", {})
150
+ kwargs = apply_config_mapping(config, mapping)
151
+
152
+ return components.state_manager_class(**kwargs)
153
+
154
+ @classmethod
155
+ def create_login_helper(cls, service_name: str, **kwargs) -> BaseLoginHelper:
156
+ """Create login helper for the specified MCP service."""
157
+ components = ServiceRegistry.get_components(service_name)
158
+ config = ConfigRegistry.get_config(service_name).get_all()
159
+
160
+ # Use provided kwargs or apply config mapping
161
+ if not kwargs:
162
+ mapping = components.config_mapping.get("login_helper", {})
163
+ kwargs = apply_config_mapping(config, mapping)
164
+
165
+ # Special handling for GitHub login helper - it needs a single token
166
+ if service_name == "github" and "token" in kwargs:
167
+ tokens_list = kwargs["token"]
168
+ if isinstance(tokens_list, list) and tokens_list:
169
+ kwargs["token"] = tokens_list[0] # Use first token for login helper
170
+
171
+ return components.login_helper_class(**kwargs)
172
+
173
+ @classmethod
174
+ def get_supported_mcp_services(cls) -> list:
175
+ """Get list of supported MCP services."""
176
+ return get_supported_mcp_services()
177
+
178
+ @classmethod
179
+ def get_config_info(cls, service_name: str) -> dict:
180
+ """Get detailed configuration information for debugging."""
181
+ config = ConfigRegistry.get_config(service_name)
182
+ return config.get_debug_info()
183
+
184
+ @classmethod
185
+ def export_config_template(cls, service_name: str, output_path: str) -> None:
186
+ """Export a configuration template for an MCP service."""
187
+ from pathlib import Path
188
+
189
+ ConfigRegistry.export_template(service_name, Path(output_path))
src/logger.py ADDED
@@ -0,0 +1,19 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ #!/usr/bin/env python3
2
+ """Logger configuration for MCPMark."""
3
+
4
+ import logging
5
+ import sys
6
+
7
+
8
+ def get_logger(name: str) -> logging.Logger:
9
+ """Get a configured logger instance."""
10
+ logger = logging.getLogger(name)
11
+
12
+ if not logger.handlers:
13
+ handler = logging.StreamHandler(sys.stdout)
14
+ formatter = logging.Formatter("%(message)s")
15
+ handler.setFormatter(formatter)
16
+ logger.addHandler(handler)
17
+ logger.setLevel(logging.INFO)
18
+
19
+ return logger
src/model_config.py ADDED
@@ -0,0 +1,257 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ #!/usr/bin/env python3
2
+ """
3
+ Model Configuration for MCPMark
4
+ ================================
5
+
6
+ This module provides configuration management for different LLM models,
7
+ automatically detecting the required API keys and base URLs based on the model name.
8
+ """
9
+
10
+ import os
11
+ from typing import Dict, List
12
+
13
+ from src.logger import get_logger
14
+
15
+ # Initialize logger
16
+ logger = get_logger(__name__)
17
+
18
+
19
+ class ModelConfig:
20
+ """
21
+ Configuration container for a specific model.
22
+ It loads the necessary API key and base URL from environment variables.
23
+ """
24
+
25
+ # Model configuration mapping
26
+ MODEL_CONFIGS = {
27
+ # OpenAI models
28
+ "gpt-4o": {
29
+ "provider": "openai",
30
+ "api_key_var": "OPENAI_API_KEY",
31
+ "litellm_input_model_name": "openai/gpt-4o",
32
+ },
33
+ "gpt-4.1": {
34
+ "provider": "openai",
35
+ "api_key_var": "OPENAI_API_KEY",
36
+ "litellm_input_model_name": "openai/gpt-4.1",
37
+ },
38
+ "gpt-4.1-mini": {
39
+ "provider": "openai",
40
+ "api_key_var": "OPENAI_API_KEY",
41
+ "litellm_input_model_name": "openai/gpt-4.1-mini",
42
+ },
43
+ "gpt-4.1-nano": {
44
+ "provider": "openai",
45
+ "api_key_var": "OPENAI_API_KEY",
46
+ "litellm_input_model_name": "openai/gpt-4.1-nano",
47
+ },
48
+ "gpt-5.2": {
49
+ "provider": "openai",
50
+ "api_key_var": "OPENAI_API_KEY",
51
+ "litellm_input_model_name": "openai/gpt-5.2",
52
+ },
53
+ "gpt-5": {
54
+ "provider": "openai",
55
+ "api_key_var": "OPENAI_API_KEY",
56
+ "litellm_input_model_name": "openai/gpt-5",
57
+ },
58
+ "gpt-5-mini": {
59
+ "provider": "openai",
60
+ "api_key_var": "OPENAI_API_KEY",
61
+ "litellm_input_model_name": "openai/gpt-5-mini",
62
+ },
63
+ "gpt-5-nano": {
64
+ "provider": "openai",
65
+ "api_key_var": "OPENAI_API_KEY",
66
+ "litellm_input_model_name": "openai/gpt-5-nano",
67
+ },
68
+ "o3": {
69
+ "provider": "openai",
70
+ "api_key_var": "OPENAI_API_KEY",
71
+ "litellm_input_model_name": "openai/o3",
72
+ },
73
+ "o4-mini": {
74
+ "provider": "openai",
75
+ "api_key_var": "OPENAI_API_KEY",
76
+ "litellm_input_model_name": "openai/o4-mini",
77
+ },
78
+ "gpt-oss-120b": {
79
+ "provider": "openai",
80
+ "api_key_var": "OPENROUTER_API_KEY",
81
+ "litellm_input_model_name": "openrouter/openai/gpt-oss-120b",
82
+ },
83
+ # DeepSeek models (dimcode OpenAI-compatible endpoint)
84
+ "deepseek-v4-pro": {
85
+ "provider": "openai",
86
+ "api_key_var": "DEEPSEEK_API_KEY",
87
+ "base_url_var": "DEEPSEEK_BASE_URL",
88
+ "litellm_input_model_name": "openai/deepseek-v4-pro",
89
+ # litellm's openai provider rejects a TOP-LEVEL reasoning_effort, so
90
+ # both the thinking toggle and reasoning_effort ride in extra_body
91
+ # (forwarded verbatim into the request JSON the dimcode endpoint reads).
92
+ "extra_body": {"thinking": {"type": "enabled"}, "reasoning_effort": "high"},
93
+ },
94
+ # Anthropic models
95
+ "claude-3.7-sonnet": {
96
+ "provider": "anthropic",
97
+ "api_key_var": "ANTHROPIC_API_KEY",
98
+ "litellm_input_model_name": "anthropic/claude-3-7-sonnet-20250219",
99
+ },
100
+ "claude-sonnet-4": {
101
+ "provider": "anthropic",
102
+ "api_key_var": "ANTHROPIC_API_KEY",
103
+ "litellm_input_model_name": "anthropic/claude-sonnet-4-20250514",
104
+ },
105
+ "claude-sonnet-4.5": {
106
+ "provider": "anthropic",
107
+ "api_key_var": "ANTHROPIC_API_KEY",
108
+ "litellm_input_model_name": "anthropic/claude-sonnet-4-5-20250929",
109
+ },
110
+ "claude-opus-4": {
111
+ "provider": "anthropic",
112
+ "api_key_var": "ANTHROPIC_API_KEY",
113
+ "litellm_input_model_name": "anthropic/claude-opus-4-20250514",
114
+ },
115
+ "claude-opus-4.1": {
116
+ "provider": "anthropic",
117
+ "api_key_var": "ANTHROPIC_API_KEY",
118
+ "litellm_input_model_name": "anthropic/claude-opus-4-1-20250805",
119
+ },
120
+ "claude-opus-4.5": {
121
+ "provider": "anthropic",
122
+ "api_key_var": "ANTHROPIC_API_KEY",
123
+ "litellm_input_model_name": "anthropic/claude-opus-4-5-20251101",
124
+ },
125
+ # Google models
126
+ "gemini-2.5-pro": {
127
+ "provider": "google",
128
+ "api_key_var": "GEMINI_API_KEY",
129
+ "litellm_input_model_name": "gemini/gemini-2.5-pro",
130
+ },
131
+ "gemini-2.5-flash": {
132
+ "provider": "google",
133
+ "api_key_var": "GEMINI_API_KEY",
134
+ "litellm_input_model_name": "gemini/gemini-2.5-flash",
135
+ },
136
+ "gemini-3-pro": {
137
+ "provider": "google",
138
+ "api_key_var": "GEMINI_API_KEY",
139
+ "litellm_input_model_name": "gemini/gemini-3-pro-preview",
140
+ },
141
+ # Moonshot models
142
+ "kimi-k2-0711": {
143
+ "provider": "moonshot",
144
+ "api_key_var": "MOONSHOT_API_KEY",
145
+ "litellm_input_model_name": "moonshot/kimi-k2-0711-preview",
146
+ },
147
+ "kimi-k2-0905": {
148
+ "provider": "moonshot",
149
+ "api_key_var": "MOONSHOT_API_KEY",
150
+ "litellm_input_model_name": "moonshot/kimi-k2-0905-preview",
151
+ },
152
+ "kimi-k2-thinking": {
153
+ "provider": "moonshot",
154
+ "api_key_var": "OPENROUTER_API_KEY",
155
+ "litellm_input_model_name": "openrouter/moonshotai/kimi-k2-thinking",
156
+ },
157
+ # Grok models
158
+ "grok-4": {
159
+ "provider": "xai",
160
+ "api_key_var": "GROK_API_KEY",
161
+ "litellm_input_model_name": "xai/grok-4-0709",
162
+ },
163
+ "grok-code-fast-1": {
164
+ "provider": "xai",
165
+ "api_key_var": "GROK_API_KEY",
166
+ "litellm_input_model_name": "xai/grok-code-fast-1",
167
+ },
168
+ # Qwen models
169
+ "qwen-3-coder-plus": {
170
+ "provider": "qwen",
171
+ "api_key_var": "DASHSCOPE_API_KEY",
172
+ "litellm_input_model_name": "dashscope/qwen3-coder-plus",
173
+ },
174
+ "qwen-3-max": {
175
+ "provider": "qwen",
176
+ "api_key_var": "DASHSCOPE_API_KEY",
177
+ "litellm_input_model_name": "dashscope/qwen3-max-preview",
178
+ },
179
+ # Zhipu
180
+ "glm-4.5": {
181
+ "provider": "zhipu",
182
+ "api_key_var": "OPENROUTER_API_KEY",
183
+ "litellm_input_model_name": "openrouter/z-ai/glm-4.5",
184
+ }
185
+ }
186
+
187
+ def __init__(self, model_name: str):
188
+ """
189
+ Initializes the model configuration.
190
+
191
+ Args:
192
+ model_name: The name of the model (e.g., 'gpt-4o', 'deepseek-chat').
193
+
194
+ Raises:
195
+ ValueError: If the model is not supported or environment variables are missing.
196
+ """
197
+ self.short_model_name = model_name
198
+ model_info = self._get_model_info(model_name)
199
+
200
+ # Load API key, base URL and LiteLLM model name from environment variables
201
+ if "base_url_var" in model_info:
202
+ self.base_url = os.getenv(model_info["base_url_var"])
203
+ else:
204
+ self.base_url = None
205
+
206
+ self.api_key = os.getenv(model_info["api_key_var"])
207
+ if not self.api_key:
208
+ raise ValueError(
209
+ f"Missing required environment variable: {model_info['api_key_var']}"
210
+ )
211
+
212
+ self.litellm_input_model_name = model_info.get("litellm_input_model_name", model_name)
213
+
214
+ # Optional extra request-body fields forwarded to litellm (e.g. DeepSeek
215
+ # `thinking` toggle). None when the model has no extras.
216
+ self.extra_body = model_info.get("extra_body")
217
+
218
+ def _get_model_info(self, model_name: str) -> Dict[str, str]:
219
+ """
220
+ Retrieves the configuration details for a given model name.
221
+ For unsupported models, defaults to using OPENAI_BASE_URL and OPENAI_API_KEY.
222
+ """
223
+ if model_name not in self.MODEL_CONFIGS:
224
+ logger.warning(
225
+ f"Model '{model_name}' not in supported list. Using default OpenAI configuration."
226
+ )
227
+ # Return default configuration for unsupported models
228
+ return {
229
+ "provider": "openai",
230
+ "api_key_var": "OPENAI_API_KEY",
231
+ "litellm_input_model_name": model_name,
232
+ }
233
+ return self.MODEL_CONFIGS[model_name]
234
+
235
+ @classmethod
236
+ def get_supported_models(cls) -> List[str]:
237
+ """Returns a list of all supported model names."""
238
+ return list(cls.MODEL_CONFIGS.keys())
239
+
240
+
241
+ def main():
242
+ """Example usage of the ModelConfig class."""
243
+ logger.info("Supported models: %s", ModelConfig.get_supported_models())
244
+
245
+ try:
246
+ # Example: Create a model config for DeepSeek
247
+ model_config = ModelConfig("deepseek-chat")
248
+ logger.info("✅ DeepSeek model config created successfully.")
249
+ logger.info("Short model name: %s", model_config.short_model_name)
250
+ logger.info("API key loaded: %s", bool(model_config.api_key))
251
+
252
+ except ValueError as e:
253
+ logger.error("⚠️ Configuration error: %s", e)
254
+
255
+
256
+ if __name__ == "__main__":
257
+ main()
stores-menu.yml ADDED
@@ -0,0 +1,327 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ - generic [ref=e1]:
2
+ - generic [ref=e2]:
3
+ - link "Magento Admin Panel" [ref=e3] [cursor=pointer]:
4
+ - /url: http://localhost:7787/admin/admin/
5
+ - img "Magento Admin Panel" [ref=e4]
6
+ - navigation [ref=e5]:
7
+ - menubar [ref=e6]:
8
+ - listitem [ref=e7]:
9
+ - link " Dashboard" [ref=e8] [cursor=pointer]:
10
+ - /url: http://localhost:7787/admin/admin/dashboard/
11
+ - listitem [ref=e9]:
12
+ - link " Sales" [ref=e10] [cursor=pointer]:
13
+ - /url: "#"
14
+ - listitem [ref=e11]:
15
+ - link " Catalog" [ref=e12] [cursor=pointer]:
16
+ - /url: "#"
17
+ - listitem [ref=e13]:
18
+ - link " Customers" [ref=e14] [cursor=pointer]:
19
+ - /url: "#"
20
+ - listitem [ref=e15]:
21
+ - link " Marketing" [ref=e16] [cursor=pointer]:
22
+ - /url: "#"
23
+ - listitem [ref=e17]:
24
+ - link " Content" [ref=e18] [cursor=pointer]:
25
+ - /url: "#"
26
+ - listitem [ref=e19]:
27
+ - link " Reports" [ref=e20] [cursor=pointer]:
28
+ - /url: "#"
29
+ - listitem [ref=e21]:
30
+ - link " Stores" [active] [ref=e22] [cursor=pointer]:
31
+ - /url: "#"
32
+ - generic " Stores Stores " [ref=e236]:
33
+ - strong [ref=e237]: Stores
34
+ - link "" [ref=e238] [cursor=pointer]:
35
+ - /url: "#"
36
+ - menu [ref=e239]:
37
+ - listitem [ref=e240]:
38
+ - menu [ref=e241]:
39
+ - listitem [ref=e242]:
40
+ - text: Settings
41
+ - menu [ref=e244]:
42
+ - listitem [ref=e245]:
43
+ - link "All Stores" [ref=e246] [cursor=pointer]:
44
+ - /url: http://localhost:7787/admin/admin/system_store/
45
+ - listitem [ref=e247]:
46
+ - link "Configuration" [ref=e248] [cursor=pointer]:
47
+ - /url: http://localhost:7787/admin/admin/system_config/
48
+ - listitem [ref=e249]:
49
+ - link "Terms and Conditions" [ref=e250] [cursor=pointer]:
50
+ - /url: http://localhost:7787/admin/checkout/agreement/
51
+ - listitem [ref=e251]:
52
+ - link "Order Status" [ref=e252] [cursor=pointer]:
53
+ - /url: http://localhost:7787/admin/sales/order_status/
54
+ - listitem [ref=e253]:
55
+ - text: Inventory
56
+ - menu [ref=e255]:
57
+ - listitem [ref=e256]:
58
+ - link "Sources" [ref=e257] [cursor=pointer]:
59
+ - /url: http://localhost:7787/admin/inventory/source/index/
60
+ - listitem [ref=e258]:
61
+ - link "Stocks" [ref=e259] [cursor=pointer]:
62
+ - /url: http://localhost:7787/admin/inventory/stock/index/
63
+ - listitem [ref=e260]:
64
+ - text: Taxes
65
+ - menu [ref=e262]:
66
+ - listitem [ref=e263]:
67
+ - link "Tax Rules" [ref=e264] [cursor=pointer]:
68
+ - /url: http://localhost:7787/admin/tax/rule/
69
+ - listitem [ref=e265]:
70
+ - link "Tax Zones and Rates" [ref=e266] [cursor=pointer]:
71
+ - /url: http://localhost:7787/admin/tax/rate/
72
+ - listitem [ref=e267]:
73
+ - menu [ref=e268]:
74
+ - listitem [ref=e269]:
75
+ - text: Currency
76
+ - menu [ref=e271]:
77
+ - listitem [ref=e272]:
78
+ - link "Currency Rates" [ref=e273] [cursor=pointer]:
79
+ - /url: http://localhost:7787/admin/admin/system_currency/
80
+ - listitem [ref=e274]:
81
+ - link "Currency Symbols" [ref=e275] [cursor=pointer]:
82
+ - /url: http://localhost:7787/admin/admin/system_currencysymbol/
83
+ - listitem [ref=e276]:
84
+ - text: Attributes
85
+ - menu [ref=e278]:
86
+ - listitem [ref=e279]:
87
+ - link "Product" [ref=e280] [cursor=pointer]:
88
+ - /url: http://localhost:7787/admin/catalog/product_attribute/
89
+ - listitem [ref=e281]:
90
+ - link "Attribute Set" [ref=e282] [cursor=pointer]:
91
+ - /url: http://localhost:7787/admin/catalog/product_set/
92
+ - listitem [ref=e283]:
93
+ - link "Rating" [ref=e284] [cursor=pointer]:
94
+ - /url: http://localhost:7787/admin/review/rating/
95
+ - listitem
96
+ - listitem [ref=e23]:
97
+ - link " System" [ref=e24] [cursor=pointer]:
98
+ - /url: "#"
99
+ - listitem [ref=e25]:
100
+ - link " Find Partners & Extensions" [ref=e26] [cursor=pointer]:
101
+ - /url: http://localhost:7787/admin/marketplace/index/
102
+ - generic [ref=e27]:
103
+ - banner [ref=e29]:
104
+ - heading "Dashboard" [level=1] [ref=e32]
105
+ - generic [ref=e33]:
106
+ - link " admin" [ref=e35] [cursor=pointer]:
107
+ - /url: http://localhost:7787/admin/admin/system_account/index/
108
+ - text: 
109
+ - generic [ref=e37]: admin
110
+ - link "" [ref=e39] [cursor=pointer]:
111
+ - /url: http://localhost:7787/admin/admin/notification/index/
112
+ - generic:
113
+ - generic:
114
+ - generic:
115
+ - generic [ref=e40] [cursor=pointer]: 
116
+ - textbox "" [ref=e41]
117
+ - main [ref=e42]:
118
+ - generic [ref=e43]:
119
+ - generic [ref=e44]:
120
+ - generic [ref=e45]: "Scope:"
121
+ - button "All Store Views" [ref=e47] [cursor=pointer]
122
+ - link " What is this?" [ref=e48] [cursor=pointer]:
123
+ - /url: https://docs.magento.com/user-guide/configuration/scope.html
124
+ - text: 
125
+ - generic [ref=e49]: What is this?
126
+ - button "Reload Data" [ref=e52] [cursor=pointer]
127
+ - generic [ref=e55]:
128
+ - generic [ref=e56]:
129
+ - generic [ref=e57]:
130
+ - generic [ref=e58]: Advanced Reporting
131
+ - generic [ref=e59]: Gain new insights and take command of your business' performance, using our dynamic product, order, and customer reports tailored to your customer data.
132
+ - link "Go to Advanced Reporting " [ref=e61] [cursor=pointer]:
133
+ - /url: http://localhost:7787/admin/analytics/reports/show/
134
+ - generic [ref=e62]:
135
+ - generic [ref=e63]:
136
+ - generic [ref=e65]:
137
+ - text: Chart is disabled. To enable the chart, click
138
+ - link "here" [ref=e66] [cursor=pointer]:
139
+ - /url: http://localhost:7787/admin/admin/system_config/edit/section/admin/#admin_dashboard-link
140
+ - text: .
141
+ - list [ref=e68]:
142
+ - listitem [ref=e69]:
143
+ - generic [ref=e70]: Revenue
144
+ - strong [ref=e71]: $0.00
145
+ - listitem [ref=e72]:
146
+ - generic [ref=e73]: Tax
147
+ - strong [ref=e74]: $0.00
148
+ - listitem [ref=e75]:
149
+ - generic [ref=e76]: Shipping
150
+ - strong [ref=e77]: $0.00
151
+ - listitem [ref=e78]:
152
+ - generic [ref=e79]: Quantity
153
+ - strong [ref=e80]: "0"
154
+ - generic [ref=e81]:
155
+ - tablist [ref=e83]:
156
+ - tab "The information in this tab has been changed. This tab contains invalid data. Please resolve this before saving. Loading... Bestsellers" [expanded] [selected] [ref=e84]:
157
+ - link "The information in this tab has been changed. This tab contains invalid data. Please resolve this before saving. Loading... Bestsellers" [ref=e85] [cursor=pointer]:
158
+ - /url: "#grid_tab_ordered_products_content"
159
+ - generic [ref=e86]:
160
+ - generic "The information in this tab has been changed."
161
+ - generic "This tab contains invalid data. Please resolve this before saving."
162
+ - generic "Loading..."
163
+ - text: Bestsellers
164
+ - tab "The information in this tab has been changed. This tab contains invalid data. Please resolve this before saving. Loading... Most Viewed Products" [ref=e87]:
165
+ - link "The information in this tab has been changed. This tab contains invalid data. Please resolve this before saving. Loading... Most Viewed Products" [ref=e88] [cursor=pointer]:
166
+ - /url: http://localhost:7787/admin/admin/dashboard/productsViewed/
167
+ - generic [ref=e89]:
168
+ - generic "The information in this tab has been changed."
169
+ - generic "This tab contains invalid data. Please resolve this before saving."
170
+ - generic "Loading..."
171
+ - text: Most Viewed Products
172
+ - tab "The information in this tab has been changed. This tab contains invalid data. Please resolve this before saving. Loading... New Customers" [ref=e90]:
173
+ - link "The information in this tab has been changed. This tab contains invalid data. Please resolve this before saving. Loading... New Customers" [ref=e91] [cursor=pointer]:
174
+ - /url: http://localhost:7787/admin/admin/dashboard/customersNewest/
175
+ - generic [ref=e92]:
176
+ - generic "The information in this tab has been changed."
177
+ - generic "This tab contains invalid data. Please resolve this before saving."
178
+ - generic "Loading..."
179
+ - text: New Customers
180
+ - tab "The information in this tab has been changed. This tab contains invalid data. Please resolve this before saving. Loading... Customers" [ref=e93]:
181
+ - link "The information in this tab has been changed. This tab contains invalid data. Please resolve this before saving. Loading... Customers" [ref=e94] [cursor=pointer]:
182
+ - /url: http://localhost:7787/admin/admin/dashboard/customersMost/
183
+ - generic [ref=e95]:
184
+ - generic "The information in this tab has been changed."
185
+ - generic "This tab contains invalid data. Please resolve this before saving."
186
+ - generic "Loading..."
187
+ - text: Customers
188
+ - tabpanel "The information in this tab has been changed. This tab contains invalid data. Please resolve this before saving. Loading... Bestsellers" [ref=e97]:
189
+ - table [ref=e99]:
190
+ - rowgroup [ref=e100]:
191
+ - row "Product Price Quantity" [ref=e101]:
192
+ - columnheader "Product" [ref=e102]
193
+ - columnheader "Price" [ref=e103]
194
+ - columnheader "Quantity" [ref=e104]
195
+ - rowgroup [ref=e105]:
196
+ - row "Sprite Stasis Ball 65 cm $27.00 6" [ref=e106]:
197
+ - cell "Sprite Stasis Ball 65 cm" [ref=e107]
198
+ - cell "$27.00" [ref=e108]
199
+ - cell "6" [ref=e109]
200
+ - row "Quest Lumaflex™ Band $19.00 6" [ref=e110]:
201
+ - cell "Quest Lumaflex™ Band" [ref=e111]
202
+ - cell "$19.00" [ref=e112]
203
+ - cell "6" [ref=e113]
204
+ - row "Sprite Yoga Strap 6 foot $14.00 6" [ref=e114]:
205
+ - cell "Sprite Yoga Strap 6 foot" [ref=e115]
206
+ - cell "$14.00" [ref=e116]
207
+ - cell "6" [ref=e117]
208
+ - row "Sprite Stasis Ball 55 cm $23.00 5" [ref=e118]:
209
+ - cell "Sprite Stasis Ball 55 cm" [ref=e119]
210
+ - cell "$23.00" [ref=e120]
211
+ - cell "5" [ref=e121]
212
+ - row "Overnight Duffle $45.00 5" [ref=e122]:
213
+ - cell "Overnight Duffle" [ref=e123]
214
+ - cell "$45.00" [ref=e124]
215
+ - cell "5" [ref=e125]
216
+ - generic [ref=e126]:
217
+ - generic [ref=e127]:
218
+ - generic [ref=e128]: Lifetime Sales
219
+ - strong [ref=e130]: $0.00
220
+ - generic [ref=e131]:
221
+ - generic [ref=e132]: Average Order
222
+ - strong [ref=e134]: $0.00
223
+ - generic [ref=e135]:
224
+ - generic [ref=e136]: Last Orders
225
+ - table [ref=e138]:
226
+ - rowgroup [ref=e139]:
227
+ - row "Customer Items Total" [ref=e140]:
228
+ - columnheader "Customer" [ref=e141]
229
+ - columnheader "Items" [ref=e142]
230
+ - columnheader "Total" [ref=e143]
231
+ - rowgroup [ref=e144]:
232
+ - row "Sarah Miller 5 $194.40" [ref=e145]:
233
+ - cell "Sarah Miller" [ref=e146]
234
+ - cell "5" [ref=e147]
235
+ - cell "$194.40" [ref=e148]
236
+ - row "Grace Nguyen 4 $190.00" [ref=e149]:
237
+ - cell "Grace Nguyen" [ref=e150]
238
+ - cell "4" [ref=e151]
239
+ - cell "$190.00" [ref=e152]
240
+ - row "Matt Baker 3 $151.40" [ref=e153]:
241
+ - cell "Matt Baker" [ref=e154]
242
+ - cell "3" [ref=e155]
243
+ - cell "$151.40" [ref=e156]
244
+ - row "Lily Potter 4 $188.20" [ref=e157]:
245
+ - cell "Lily Potter" [ref=e158]
246
+ - cell "4" [ref=e159]
247
+ - cell "$188.20" [ref=e160]
248
+ - row "Ava Brown 2 $83.40" [ref=e161]:
249
+ - cell "Ava Brown" [ref=e162]
250
+ - cell "2" [ref=e163]
251
+ - cell "$83.40" [ref=e164]
252
+ - generic [ref=e165]:
253
+ - generic [ref=e166]: Last Search Terms
254
+ - table [ref=e168]:
255
+ - rowgroup [ref=e169]:
256
+ - row "Search Term Results Uses" [ref=e170]:
257
+ - columnheader "Search Term" [ref=e171]
258
+ - columnheader "Results" [ref=e172]
259
+ - columnheader "Uses" [ref=e173]
260
+ - rowgroup [ref=e174]:
261
+ - row "tanks 23 1" [ref=e175]:
262
+ - cell "tanks" [ref=e176]
263
+ - cell "23" [ref=e177]
264
+ - cell "1" [ref=e178]
265
+ - row "nike 0 3" [ref=e179]:
266
+ - cell "nike" [ref=e180]
267
+ - cell "0" [ref=e181]
268
+ - cell "3" [ref=e182]
269
+ - row "Joust Bag 10 4" [ref=e183]:
270
+ - cell "Joust Bag" [ref=e184]
271
+ - cell "10" [ref=e185]
272
+ - cell "4" [ref=e186]
273
+ - row "hollister 1 19" [ref=e187]:
274
+ - cell "hollister" [ref=e188]
275
+ - cell "1" [ref=e189]
276
+ - cell "19" [ref=e190]
277
+ - row "Antonia Racer Tank 23 2" [ref=e191]:
278
+ - cell "Antonia Racer Tank" [ref=e192]
279
+ - cell "23" [ref=e193]
280
+ - cell "2" [ref=e194]
281
+ - generic [ref=e195]:
282
+ - generic [ref=e196]: Top Search Terms
283
+ - table [ref=e198]:
284
+ - rowgroup [ref=e199]:
285
+ - row "Search Term Results Uses" [ref=e200]:
286
+ - columnheader "Search Term" [ref=e201]
287
+ - columnheader "Results" [ref=e202]
288
+ - columnheader "Uses" [ref=e203]
289
+ - rowgroup [ref=e204]:
290
+ - row "hollister 1 19" [ref=e205]:
291
+ - cell "hollister" [ref=e206]
292
+ - cell "1" [ref=e207]
293
+ - cell "19" [ref=e208]
294
+ - row "Joust Bag 10 4" [ref=e209]:
295
+ - cell "Joust Bag" [ref=e210]
296
+ - cell "10" [ref=e211]
297
+ - cell "4" [ref=e212]
298
+ - row "Antonia Racer Tank 23 2" [ref=e213]:
299
+ - cell "Antonia Racer Tank" [ref=e214]
300
+ - cell "23" [ref=e215]
301
+ - cell "2" [ref=e216]
302
+ - row "tanks 23 1" [ref=e217]:
303
+ - cell "tanks" [ref=e218]
304
+ - cell "23" [ref=e219]
305
+ - cell "1" [ref=e220]
306
+ - row "WP10 1 1" [ref=e221]:
307
+ - cell "WP10" [ref=e222]
308
+ - cell "1" [ref=e223]
309
+ - cell "1" [ref=e224]
310
+ - contentinfo [ref=e225]:
311
+ - generic [ref=e227]:
312
+ - paragraph [ref=e228]:
313
+ - link "" [ref=e229] [cursor=pointer]:
314
+ - /url: http://magento.com
315
+ - text: Copyright © 2026 Magento Commerce Inc. All rights reserved.
316
+ - generic [ref=e230]:
317
+ - paragraph [ref=e231]:
318
+ - strong [ref=e232]: Magento
319
+ - text: ver. 2.4.6
320
+ - link "Privacy Policy" [ref=e233] [cursor=pointer]:
321
+ - /url: https://www.adobe.com/privacy/policy.html
322
+ - text: "|"
323
+ - link "Account Activity" [ref=e234] [cursor=pointer]:
324
+ - /url: http://localhost:7787/admin/security/session/activity/
325
+ - text: "|"
326
+ - link "Report an Issue" [ref=e235] [cursor=pointer]:
327
+ - /url: https://github.com/magento/magento2/issues
synth/README.md ADDED
@@ -0,0 +1,126 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # Synthetic filesystem-task generator
2
+
3
+ Mass-produce MCPMark **filesystem** benchmark tasks (test environment +
4
+ `description.md` + `verify.py` + `meta.json`) with deterministic, *self-checked*
5
+ verifiers. An LLM (DeepSeek via `.mcp_env`, by default) only makes file content
6
+ and names realistic; it never writes the verification logic.
7
+
8
+ ## Why it is reliable
9
+
10
+ Two verifier strategies, both checked by a built-in oracle at generation time:
11
+
12
+ - **Recomputable** — `verify.py` re-derives the correct answer from the resulting
13
+ files (e.g. recompute the 10 smallest files, regroup by content hash). No stored
14
+ answer key, so the model cannot shortcut it.
15
+ - **Planted ground truth** — for computation/semantic tasks the generator controls
16
+ the data and labels it (e.g. `category: personal|work`, song `rating`/`year`),
17
+ so the answer is exactly computable without LLM judgement.
18
+
19
+ Every task is validated before it is written: the oracle solves it and `verify.py`
20
+ **must** exit 0 on the correct answer **and** non-zero on the untouched
21
+ environment. Tasks that fail this self-check are discarded.
22
+
23
+ ## Usage
24
+
25
+ ```bash
26
+ # from repo root, inside the mcpmark conda env
27
+ conda run -n mcpmark python -m synth.generate --n 13 --seed 1 # LLM content
28
+ conda run -n mcpmark python -m synth.generate --n 13 --no-llm # offline
29
+ conda run -n mcpmark python -m synth.generate --n 4 --types music_report,budget_computation
30
+ ```
31
+
32
+ Each task gets a unique `category_id` like `synth_music_report_01`. Run them with
33
+ the normal pipeline (`synth` is a substring filter that matches them all):
34
+
35
+ ```bash
36
+ conda run -n mcpmark python -m pipeline --mcp filesystem --k 1 \
37
+ --models deepseek-v3.2-instruct --tasks synth --exp-name synth-run
38
+ ```
39
+
40
+ ## Coverage (8 benchmark categories)
41
+
42
+ | Generator key | Benchmark category | Verifier |
43
+ |----------------------|---------------------------|---------------|
44
+ | `size_classification`| file_property | recomputable |
45
+ | `extension_grouping` | file_property (variant) | recomputable |
46
+ | `smallest_merge` | file_context | recomputable |
47
+ | `duplicate_finder` | file_context | recomputable |
48
+ | `uppercase` | file_context | planted |
49
+ | `pattern_matching` | file_context | recomputable |
50
+ | `file_splitting` | file_context | recomputable |
51
+ | `structure_mirror` | folder_structure | recomputable |
52
+ | `author_folders` | papers | recomputable |
53
+ | `gradebased_score` | student_database | recomputable |
54
+ | `music_report` | desktop | planted |
55
+ | `budget_computation` | desktop_template | planted |
56
+ | `clause_lookup` | legal_document | planted |
57
+
58
+ Not covered: `threestudio` / `votenet` — these run on real 3D ML codebases and
59
+ cannot be faithfully synthesized (only loose structural analogs would be possible).
60
+
61
+ Each subtask folder has its own `README.md` with task details, a worked example,
62
+ and a sample trajectory — see e.g.
63
+ [`generators/filesystem/duplicate_finder/README.md`](generators/filesystem/duplicate_finder/README.md).
64
+ Note these tasks **reorganize files** (move/group); they never delete or rewrite
65
+ file contents, and any output folder (e.g. `duplicates/`) is created by the
66
+ evaluated model, not the generator.
67
+
68
+ ## Inspect a trajectory
69
+
70
+ Every pipeline run saves the agent trajectory to
71
+ `results/<exp>/<model>__filesystem/run-<k>/<task>/messages.json`. Render it as a
72
+ readable timeline (👤 instruction, 💬 thoughts, 🔧 tool calls, 📤 results):
73
+
74
+ ```bash
75
+ conda run -n mcpmark python -m synth.trace results/<exp> --list # list all
76
+ conda run -n mcpmark python -m synth.trace results/<exp>/<model>__filesystem/run-1/<task>
77
+ ```
78
+
79
+ ## Add a new task type
80
+
81
+ Create `generators/filesystem/<your_subtask>/__init__.py` with a `Generator`
82
+ subclass, then add it to the `REGISTRY` tuple in `generators/filesystem/__init__.py`.
83
+ Implement four methods:
84
+
85
+ - `build(env_dir, llm, rng) -> spec` — write the initial files, return a spec dict.
86
+ - `description(spec) -> str` — the instructions the model sees. **Be precise**: the
87
+ verifier is exact, so any output-format ambiguity will fail otherwise-correct work.
88
+ - `verify_src(spec) -> str` — a self-contained `verify.py` (stdlib only). Read the
89
+ test dir from `os.environ["FILESYSTEM_TEST_DIR"]`; `sys.exit(0)` on pass, non-zero
90
+ on fail. Use `_render_verify(body, consts)` to inject constants safely.
91
+ - `solve(work_dir, spec)` — the oracle: perform the correct solution in place. This
92
+ both powers the self-check and forces you to prove the task is solvable.
93
+
94
+ ## Files
95
+
96
+ ```
97
+ synth/
98
+ ├── generate.py # CLI: build tasks + oracle self-check
99
+ ├── trace.py # CLI: render a saved trajectory
100
+ ├── llm.py # LiteLLM wrapper (DeepSeek default) + offline fallback
101
+ └── generators/ # organized by MCP service → subtask
102
+ ├── __init__.py # merges per-service REGISTRYs
103
+ └── filesystem/ # the filesystem service
104
+ ├── __init__.py # filesystem REGISTRY
105
+ ├── base.py # Generator base class + shared helpers
106
+ ├── duplicate_finder/__init__.py # one folder per subtask
107
+ ├── smallest_merge/__init__.py
108
+ ├── size_classification/__init__.py
109
+ ├── extension_grouping/__init__.py
110
+ ├── uppercase/__init__.py
111
+ ├── pattern_matching/__init__.py
112
+ ├── file_splitting/__init__.py
113
+ ├── structure_mirror/__init__.py
114
+ ├── author_folders/__init__.py
115
+ ├── gradebased_score/__init__.py
116
+ ├── music_report/__init__.py
117
+ ├── budget_computation/__init__.py
118
+ └── clause_lookup/__init__.py
119
+ ```
120
+
121
+ Each subtask folder holds its `Generator` (and is the natural place to later add
122
+ per-task templates/fixtures). Generated tasks land in the project's existing
123
+ `tasks/` and `test_environments/`; trajectories land in `results/`.
124
+
125
+ To add a new MCP service, create `generators/<service>/` with its own `base.py`
126
+ and subtask folders, then merge its `REGISTRY` in `generators/__init__.py`.
synth/__init__.py ADDED
@@ -0,0 +1,8 @@
 
 
 
 
 
 
 
 
 
1
+ """Synthetic filesystem-task data pipeline for MCPMark.
2
+
3
+ Generates benchmark-style filesystem tasks (test environment + description.md +
4
+ verify.py + meta.json) with deterministic, *recomputable* verifiers. An LLM is
5
+ used only to make file content/names realistic and diverse; it never authors the
6
+ verification logic. Every generated task is validated with a built-in oracle:
7
+ the pipeline solves it programmatically and asserts ``verify.py`` exits 0.
8
+ """
synth/generate.py ADDED
@@ -0,0 +1,185 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ """Synthesize MCPMark filesystem tasks.
2
+
3
+ Usage (from repo root, inside the mcpmark conda env):
4
+
5
+ python -m synth.generate --n 8 --seed 1
6
+ python -m synth.generate --n 4 --types smallest_merge,duplicate_finder
7
+ python -m synth.generate --n 4 --no-llm # offline, no API calls
8
+
9
+ For each task it:
10
+ 1. builds a test environment under test_environments/<category>/
11
+ 2. writes tasks/filesystem/<suite>/<category>/<task_id>/{meta.json,description.md,verify.py}
12
+ 3. self-checks: solves the task with a built-in oracle and asserts verify.py
13
+ exits 0 on the correct answer and non-zero on the untouched environment.
14
+
15
+ Run a generated task with the normal pipeline, e.g.:
16
+
17
+ python -m pipeline --mcp filesystem --k 1 --models deepseek-v3.2-instruct \\
18
+ --tasks synth_size_classification_01 --exp-name synth-run
19
+ """
20
+
21
+ import argparse
22
+ import datetime
23
+ import json
24
+ import random
25
+ import shutil
26
+ import subprocess
27
+ import sys
28
+ import tempfile
29
+ from pathlib import Path
30
+
31
+ from synth.generators import REGISTRY
32
+ from synth.llm import LLMClient
33
+
34
+ REPO_ROOT = Path(__file__).resolve().parent.parent
35
+
36
+
37
+ def _state_content(env_dir: Path) -> str:
38
+ """A short relative listing of the test environment for meta.json."""
39
+ items = sorted(
40
+ str(p.relative_to(env_dir)) + ("/" if p.is_dir() else "")
41
+ for p in env_dir.rglob("*")
42
+ )
43
+ return "\n".join(items[:40])
44
+
45
+
46
+ def write_task(gen, spec, category, task_id, suite, tasks_root, author, env_dir):
47
+ task_dir = tasks_root / "filesystem" / suite / category / task_id
48
+ task_dir.mkdir(parents=True, exist_ok=True)
49
+
50
+ (task_dir / "description.md").write_text(gen.description(spec), encoding="utf-8")
51
+ (task_dir / "verify.py").write_text(gen.verify_src(spec), encoding="utf-8")
52
+
53
+ meta = {
54
+ "task_id": task_id,
55
+ "task_name": gen.CATEGORY_NAME,
56
+ "category_id": category,
57
+ "category_name": gen.CATEGORY_NAME,
58
+ "description": gen.description(spec).split("\n\n")[1].strip()[:200],
59
+ "author": author,
60
+ "created_at": datetime.date.today().isoformat(),
61
+ "difficulty": gen.DIFFICULTY,
62
+ "tags": gen.TAGS,
63
+ "mcp": ["filesystem"],
64
+ "meta_data": {
65
+ "stateType": "synthetic",
66
+ "stateContent": _state_content(env_dir),
67
+ "stateUrl": None,
68
+ "stateOriginalUrl": None,
69
+ },
70
+ }
71
+ (task_dir / "meta.json").write_text(json.dumps(meta, indent=2), encoding="utf-8")
72
+ return task_dir
73
+
74
+
75
+ def self_check(gen, spec, env_dir) -> tuple[bool, str]:
76
+ """Solve in a temp copy and confirm verify.py accepts it (and rejects unsolved)."""
77
+ verify_src = gen.verify_src(spec)
78
+ tmp = Path(tempfile.mkdtemp(prefix="synth_check_"))
79
+ try:
80
+ # Negative check: untouched environment should fail verification.
81
+ neg = tmp / "neg"
82
+ shutil.copytree(env_dir, neg)
83
+ vfile = tmp / "verify.py"
84
+ vfile.write_text(verify_src, encoding="utf-8")
85
+ neg_rc = _run_verify(vfile, neg)
86
+ if neg_rc == 0:
87
+ return False, "verifier passes on the UNSOLVED environment (too weak)"
88
+
89
+ # Positive check: oracle solution should pass verification.
90
+ pos = tmp / "pos"
91
+ shutil.copytree(env_dir, pos)
92
+ gen.solve(pos, spec)
93
+ pos_rc = _run_verify(vfile, pos)
94
+ if pos_rc != 0:
95
+ return False, "verifier REJECTS the oracle solution (rc=%d)" % pos_rc
96
+ return True, "oracle passes, unsolved fails"
97
+ finally:
98
+ shutil.rmtree(tmp, ignore_errors=True)
99
+
100
+
101
+ def _run_verify(verify_file: Path, test_dir: Path) -> int:
102
+ proc = subprocess.run(
103
+ [sys.executable, str(verify_file)],
104
+ env={"FILESYSTEM_TEST_DIR": str(test_dir), "PATH": __import__("os").environ.get("PATH", "")},
105
+ capture_output=True,
106
+ text=True,
107
+ )
108
+ return proc.returncode
109
+
110
+
111
+ def main():
112
+ ap = argparse.ArgumentParser(description="Synthesize MCPMark filesystem tasks.")
113
+ ap.add_argument("--n", type=int, default=4, help="number of tasks to generate")
114
+ ap.add_argument(
115
+ "--types",
116
+ default=",".join(REGISTRY),
117
+ help="comma-separated task types (default: all): " + ", ".join(REGISTRY),
118
+ )
119
+ ap.add_argument("--suite", default="standard", choices=["standard", "easy"])
120
+ ap.add_argument(
121
+ "--difficulty",
122
+ default="medium",
123
+ choices=["easy", "medium", "hard", "none", "all"],
124
+ help="difficulty tier for generators that support it (e.g. duplicate_finder)",
125
+ )
126
+ ap.add_argument("--seed", type=int, default=1)
127
+ ap.add_argument("--author", default="synth-pipeline")
128
+ ap.add_argument("--no-llm", action="store_true", help="offline content, no API calls")
129
+ ap.add_argument("--model", default="deepseek/deepseek-chat")
130
+ ap.add_argument("--tasks-dir", default=str(REPO_ROOT / "tasks"))
131
+ ap.add_argument("--env-dir", default=str(REPO_ROOT / "test_environments"))
132
+ ap.add_argument("--prefix", default="synth", help="category-id prefix")
133
+ args = ap.parse_args()
134
+
135
+ types = [t.strip() for t in args.types.split(",") if t.strip()]
136
+ for t in types:
137
+ if t not in REGISTRY:
138
+ ap.error(f"unknown type '{t}'. Choices: {', '.join(REGISTRY)}")
139
+
140
+ rng = random.Random(args.seed)
141
+ llm = LLMClient(model=args.model, enabled=not args.no_llm, seed=args.seed)
142
+ print(f"LLM content generation: {'ON (' + args.model + ')' if llm.enabled else 'OFF (offline)'}")
143
+
144
+ tasks_root = Path(args.tasks_dir)
145
+ env_root = Path(args.env_dir)
146
+
147
+ ok_count, fail_count = 0, 0
148
+ for i in range(args.n):
149
+ key = types[i % len(types)]
150
+ gen = REGISTRY[key](difficulty=args.difficulty)
151
+ category = f"{args.prefix}_{key}_{i + 1:02d}"
152
+ env_dir = env_root / category
153
+ if env_dir.exists():
154
+ shutil.rmtree(env_dir)
155
+ env_dir.mkdir(parents=True, exist_ok=True)
156
+
157
+ spec = gen.build(env_dir, llm, rng)
158
+ passed, detail = self_check(gen, spec, env_dir)
159
+ if not passed:
160
+ fail_count += 1
161
+ print(f" ✗ {category}: SELF-CHECK FAILED — {detail}")
162
+ shutil.rmtree(env_dir, ignore_errors=True)
163
+ continue
164
+
165
+ task_dir = write_task(
166
+ gen, spec, category, key, args.suite, tasks_root, args.author, env_dir
167
+ )
168
+ ok_count += 1
169
+ rel = task_dir.relative_to(REPO_ROOT)
170
+ n_items = sum(1 for _ in env_dir.rglob("*") if _.is_file())
171
+ print(f" ✓ {category}: {n_items} files | {detail}")
172
+ print(f" task: {rel}")
173
+
174
+ print(f"\nGenerated {ok_count}/{args.n} tasks ({fail_count} failed self-check).")
175
+ if ok_count:
176
+ print("Run one with:")
177
+ print(
178
+ " python -m pipeline --mcp filesystem --k 1 "
179
+ "--models deepseek-v3.2-instruct "
180
+ f"--tasks {args.prefix}_{types[0]}_01 --exp-name synth-run"
181
+ )
182
+
183
+
184
+ if __name__ == "__main__":
185
+ main()
synth/generators/__init__.py ADDED
@@ -0,0 +1,8 @@
 
 
 
 
 
 
 
 
 
1
+ """Synthetic task generators, organized by MCP service then subtask.
2
+
3
+ Layout: generators/<service>/<subtask>/__init__.py defines one Generator.
4
+ Add a new service by importing its REGISTRY and merging it below.
5
+ """
6
+ from .filesystem import REGISTRY as FILESYSTEM_REGISTRY
7
+
8
+ REGISTRY = {**FILESYSTEM_REGISTRY}
synth/generators/filesystem/__init__.py ADDED
@@ -0,0 +1,34 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ """Filesystem-service task generators (one subpackage per subtask)."""
2
+ from .base import Generator
3
+ from .size_classification import SizeClassification
4
+ from .extension_grouping import ExtensionGrouping
5
+ from .smallest_merge import SmallestMerge
6
+ from .duplicate_finder import DuplicateFinder
7
+ from .uppercase import Uppercase
8
+ from .pattern_matching import PatternMatching
9
+ from .file_splitting import FileSplitting
10
+ from .structure_mirror import StructureMirror
11
+ from .author_folders import AuthorFolders
12
+ from .gradebased_score import GradeBasedScore
13
+ from .music_report import MusicReport
14
+ from .budget_computation import BudgetComputation
15
+ from .clause_lookup import ClauseLookup
16
+
17
+ REGISTRY = {
18
+ g.KEY: g
19
+ for g in (
20
+ SizeClassification,
21
+ ExtensionGrouping,
22
+ SmallestMerge,
23
+ DuplicateFinder,
24
+ Uppercase,
25
+ PatternMatching,
26
+ FileSplitting,
27
+ StructureMirror,
28
+ AuthorFolders,
29
+ GradeBasedScore,
30
+ MusicReport,
31
+ BudgetComputation,
32
+ ClauseLookup,
33
+ )
34
+ }
synth/generators/filesystem/author_folders/__init__.py ADDED
@@ -0,0 +1,86 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ """`author_folders` task generator."""
2
+ import json
3
+ import random
4
+ import shutil
5
+ from collections import defaultdict
6
+ from pathlib import Path
7
+
8
+ from ..base import (
9
+ Generator, _VERIFY_HEADER, _render_verify, pad_to, _write, _para,
10
+ _AUTHORS, _SONG_TITLES, _STUDENTS, _WORDS,
11
+ )
12
+
13
+
14
+ class AuthorFolders(Generator):
15
+ KEY = "author_folders"
16
+ CATEGORY_NAME = "Author Folders"
17
+ DIFFICULTY = "L2"
18
+ TAGS = ["papers", "organization"]
19
+
20
+ def build(self, env_dir, llm, rng):
21
+ authors = rng.sample(_AUTHORS, rng.randint(3, 4))
22
+ files = []
23
+ for i in range(rng.randint(7, 10)):
24
+ author = rng.choice(authors)
25
+ name = f"paper_{i + 1:02d}.txt"
26
+ body = f"Author: {author}\nTitle: " + " ".join(
27
+ rng.choice(_WORDS) for _ in range(4)).title() + "\n"
28
+ _write(env_dir / name, body)
29
+ files.append(name)
30
+ return {"files": files, "authors": authors}
31
+
32
+ def description(self, spec):
33
+ return (
34
+ "Please use FileSystem tools to finish the following task:\n\n"
35
+ "### Task: Organize papers by author\n\n"
36
+ "Each `.txt` file in the test directory is a paper whose **first line** "
37
+ "is `Author: <Name>`.\n\n"
38
+ "- For each distinct author, create a folder in the test directory root "
39
+ "named **exactly** the author's name (e.g. `Ada Lovelace`).\n"
40
+ "- Move each paper into its author's folder.\n"
41
+ "- No loose paper files should remain in the root. Do not modify files."
42
+ )
43
+
44
+ def verify_src(self, spec):
45
+ body = '''
46
+ C = json.loads(__CONSTS__)
47
+
48
+
49
+ def main():
50
+ t = get_test_dir()
51
+ loose = [f.name for f in t.iterdir() if f.is_file() and f.name not in SYSTEM_FILES]
52
+ if loose:
53
+ fail(f"papers still in root: {loose}")
54
+ ok("no loose papers in root")
55
+
56
+ located = {}
57
+ for d in t.iterdir():
58
+ if d.is_dir():
59
+ for f in d.iterdir():
60
+ if f.is_file() and f.name not in SYSTEM_FILES:
61
+ located[f.name] = (d.name, f)
62
+ for name in C["files"]:
63
+ if name not in located:
64
+ fail(f"paper missing after move: {name}")
65
+ folder, f = located[name]
66
+ first = f.read_text(encoding="utf-8").splitlines()[0]
67
+ author = first.split("Author:", 1)[1].strip() if "Author:" in first else ""
68
+ if folder != author:
69
+ fail(f"{name} is in '{folder}', but its author is '{author}'")
70
+ ok(f"all {len(C['files'])} papers filed under the correct author")
71
+ print("\\U0001f389 All checks passed!")
72
+ sys.exit(0)
73
+
74
+
75
+ if __name__ == "__main__":
76
+ main()
77
+ '''
78
+ return _render_verify(body, {"files": spec["files"]})
79
+
80
+ def solve(self, work_dir, spec):
81
+ for name in spec["files"]:
82
+ f = work_dir / name
83
+ first = f.read_text(encoding="utf-8").splitlines()[0]
84
+ author = first.split("Author:", 1)[1].strip()
85
+ (work_dir / author).mkdir(exist_ok=True)
86
+ shutil.move(str(f), str(work_dir / author / name))
synth/generators/filesystem/base.py ADDED
@@ -0,0 +1,132 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ """Task-type generators for synthetic filesystem benchmarks.
2
+
3
+ Each generator produces a self-consistent task:
4
+
5
+ * ``build(env_dir, llm, rng)`` writes the initial files into the test
6
+ environment and returns a ``spec`` dict describing what it created.
7
+ * ``description(spec)`` renders the natural-language ``description.md`` the model
8
+ will see.
9
+ * ``verify_src(spec)`` renders a self-contained ``verify.py`` whose checks
10
+ *recompute* the correct answer from the resulting files (no external answer
11
+ key), using only the standard library.
12
+ * ``solve(work_dir, spec)`` is the oracle: it performs the correct solution
13
+ in-place so the pipeline can prove ``verify.py`` accepts the intended answer.
14
+
15
+ The description and the verifier are written together so they always agree.
16
+ """
17
+
18
+ import json
19
+ import random
20
+ import shutil
21
+ from collections import defaultdict
22
+ from pathlib import Path
23
+ from typing import Dict, List
24
+
25
+ # --------------------------------------------------------------------------- #
26
+ # Shared helpers
27
+ # --------------------------------------------------------------------------- #
28
+
29
+ _FILLER = " lorem ipsum dolor sit amet consectetur adipiscing elit"
30
+
31
+
32
+ def _ascii_filler(n: int) -> str:
33
+ if n <= 0:
34
+ return ""
35
+ return (_FILLER * (n // len(_FILLER) + 1))[:n]
36
+
37
+
38
+ def pad_to(body: str, target_bytes: int) -> str:
39
+ """Return text whose UTF-8 size is exactly ``target_bytes``."""
40
+ b = body.encode("utf-8")
41
+ if len(b) > target_bytes:
42
+ return b[:target_bytes].decode("utf-8", errors="ignore")
43
+ return body + _ascii_filler(target_bytes - len(b.decode("utf-8").encode("utf-8")))
44
+
45
+
46
+ def _write(path: Path, content: str) -> None:
47
+ path.parent.mkdir(parents=True, exist_ok=True)
48
+ path.write_text(content, encoding="utf-8")
49
+
50
+
51
+ # Header shared by every generated verify.py.
52
+ _VERIFY_HEADER = '''#!/usr/bin/env python3
53
+ """Auto-generated verifier (synthetic task). Recomputes the answer; do not edit."""
54
+ import json
55
+ import os
56
+ import sys
57
+ from pathlib import Path
58
+
59
+ SYSTEM_FILES = {".DS_Store", "Thumbs.db", ".DS_Store?", "._.DS_Store"}
60
+
61
+
62
+ def get_test_dir() -> Path:
63
+ d = os.environ.get("FILESYSTEM_TEST_DIR")
64
+ if not d:
65
+ raise ValueError("FILESYSTEM_TEST_DIR environment variable is required")
66
+ return Path(d)
67
+
68
+
69
+ def fail(msg):
70
+ print("\\u274c " + msg)
71
+ sys.exit(1)
72
+
73
+
74
+ def ok(msg):
75
+ print("\\u2705 " + msg)
76
+ '''
77
+
78
+
79
+ class Generator:
80
+ KEY = "base"
81
+ CATEGORY_NAME = "Base"
82
+ DIFFICULTY = "L2"
83
+ TAGS: List[str] = []
84
+
85
+ def __init__(self, difficulty: str = "medium"):
86
+ # Generators that support difficulty tiers read self.difficulty; the rest
87
+ # simply ignore it.
88
+ self.difficulty = difficulty
89
+
90
+ def build(self, env_dir: Path, llm, rng: random.Random) -> Dict:
91
+ raise NotImplementedError
92
+
93
+ def description(self, spec: Dict) -> str:
94
+ raise NotImplementedError
95
+
96
+ def verify_src(self, spec: Dict) -> str:
97
+ raise NotImplementedError
98
+
99
+ def solve(self, work_dir: Path, spec: Dict) -> None:
100
+ raise NotImplementedError
101
+
102
+
103
+ def _render_verify(body: str, consts: dict) -> str:
104
+ return _VERIFY_HEADER + body.replace("__CONSTS__", json.dumps(json.dumps(consts)))
105
+
106
+
107
+ _AUTHORS = ["Ada Lovelace", "Alan Turing", "Grace Hopper", "Donald Knuth", "Barbara Liskov"]
108
+ _SONG_TITLES = [
109
+ "Blue Horizon", "Midnight Drive", "Paper Moon", "Echoes", "Golden Hour",
110
+ "Silent Tide", "Neon Rain", "Wandering", "Afterglow", "Velvet Sky",
111
+ "Lighthouse", "Crossroads",
112
+ ]
113
+ _STUDENTS = [
114
+ "Liam Carter", "Olivia Reed", "Noah Patel", "Emma Davies", "Mason Cole",
115
+ "Ava Brooks", "Lucas Gray", "Mia Foster", "Ethan Ward", "Sofia Bennett",
116
+ ]
117
+ _WORDS = (
118
+ "system module config network buffer kernel thread cache socket render "
119
+ "matrix tensor sample dataset gradient logging parser schema invoice client"
120
+ ).split()
121
+
122
+
123
+ def _para(rng: random.Random, n_lines: int, inject=None) -> list:
124
+ lines = []
125
+ for _ in range(n_lines):
126
+ line = " ".join(rng.choice(_WORDS) for _ in range(rng.randint(4, 9))).capitalize() + "."
127
+ lines.append(line)
128
+ if inject:
129
+ # inject is a list of (index, text); replace those lines
130
+ for idx, text in inject:
131
+ lines[idx % len(lines)] = text
132
+ return lines
synth/generators/filesystem/budget_computation/__init__.py ADDED
@@ -0,0 +1,105 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ """`budget_computation` task generator."""
2
+ import json
3
+ import random
4
+ import shutil
5
+ from collections import defaultdict
6
+ from pathlib import Path
7
+
8
+ from ..base import (
9
+ Generator, _VERIFY_HEADER, _render_verify, pad_to, _write, _para,
10
+ _AUTHORS, _SONG_TITLES, _STUDENTS, _WORDS,
11
+ )
12
+
13
+
14
+ class BudgetComputation(Generator):
15
+ KEY = "budget_computation"
16
+ CATEGORY_NAME = "Budget Computation"
17
+ DIFFICULTY = "L3"
18
+ TAGS = ["desktop", "computation"]
19
+
20
+ OUT = "total_budget.txt"
21
+
22
+ def build(self, env_dir, llm, rng):
23
+ files = []
24
+ for i in range(rng.randint(6, 9)):
25
+ cat = rng.choice(["personal", "personal", "work"])
26
+ amount = round(rng.uniform(5, 500), 2)
27
+ name = f"expense_{i + 1:02d}.txt"
28
+ body = f"item: {rng.choice(_WORDS)}\ncategory: {cat}\namount: {amount}\n"
29
+ _write(env_dir / name, body)
30
+ files.append(name)
31
+ return {"files": files, "out": self.OUT}
32
+
33
+ def description(self, spec):
34
+ return (
35
+ "Please use FileSystem tools to finish the following task:\n\n"
36
+ "### Task: Compute the personal budget\n\n"
37
+ "Each `expense_*.txt` file has a `category:` (either `personal` or "
38
+ "`work`) and an `amount:` line.\n\n"
39
+ "1. Consider only files whose category is **personal**.\n"
40
+ "2. For each such file write a line `<filename>;<amount>` "
41
+ "(amount with 2 decimal places), sorted by filename ascending.\n"
42
+ "3. Add a final line containing **only** the total of all personal "
43
+ "amounts (2 decimal places) — just the number, with no label or prefix.\n"
44
+ f"4. Write everything to `{self.OUT}` in the root. No other text."
45
+ )
46
+
47
+ def verify_src(self, spec):
48
+ body = '''
49
+ C = json.loads(__CONSTS__)
50
+
51
+
52
+ def parse(f):
53
+ d = {}
54
+ for line in f.read_text(encoding="utf-8").splitlines():
55
+ if ":" in line:
56
+ k, v = line.split(":", 1)
57
+ d[k.strip()] = v.strip()
58
+ return d
59
+
60
+
61
+ def expected(t):
62
+ entries = []
63
+ for name in sorted(C["files"]):
64
+ d = parse(t / name)
65
+ if d.get("category") == "personal":
66
+ entries.append((name, float(d["amount"])))
67
+ lines = [f"{n};{a:.2f}" for n, a in entries]
68
+ lines.append(f"{sum(a for _, a in entries):.2f}")
69
+ return "\\n".join(lines)
70
+
71
+
72
+ def main():
73
+ t = get_test_dir()
74
+ out = t / C["out"]
75
+ if not out.is_file():
76
+ fail(f"output file not found: {C['out']}")
77
+ got = out.read_text(encoding="utf-8").strip()
78
+ exp = expected(t).strip()
79
+ if got != exp:
80
+ print("--- expected ---"); print(exp)
81
+ print("--- got ---"); print(got)
82
+ fail("total_budget.txt does not match expected personal expenses")
83
+ ok("personal budget computed correctly")
84
+ print("\\U0001f389 All checks passed!")
85
+ sys.exit(0)
86
+
87
+
88
+ if __name__ == "__main__":
89
+ main()
90
+ '''
91
+ return _render_verify(body, {"files": spec["files"], "out": spec["out"]})
92
+
93
+ def solve(self, work_dir, spec):
94
+ entries = []
95
+ for name in sorted(spec["files"]):
96
+ d = {}
97
+ for line in (work_dir / name).read_text(encoding="utf-8").splitlines():
98
+ if ":" in line:
99
+ k, v = line.split(":", 1)
100
+ d[k.strip()] = v.strip()
101
+ if d.get("category") == "personal":
102
+ entries.append((name, float(d["amount"])))
103
+ lines = [f"{n};{a:.2f}" for n, a in entries]
104
+ lines.append(f"{sum(a for _, a in entries):.2f}")
105
+ _write(work_dir / spec["out"], "\n".join(lines) + "\n")
synth/generators/filesystem/clause_lookup/__init__.py ADDED
@@ -0,0 +1,85 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ """`clause_lookup` task generator."""
2
+ import json
3
+ import random
4
+ import shutil
5
+ from collections import defaultdict
6
+ from pathlib import Path
7
+
8
+ from ..base import (
9
+ Generator, _VERIFY_HEADER, _render_verify, pad_to, _write, _para,
10
+ _AUTHORS, _SONG_TITLES, _STUDENTS, _WORDS,
11
+ )
12
+
13
+
14
+ class ClauseLookup(Generator):
15
+ KEY = "clause_lookup"
16
+ CATEGORY_NAME = "Clause Lookup"
17
+ DIFFICULTY = "L2"
18
+ TAGS = ["legal document", "extraction"]
19
+
20
+ OUT = "answer.txt"
21
+
22
+ def build(self, env_dir, llm, rng):
23
+ n = rng.randint(3, 4)
24
+ days = rng.choice([15, 30, 45, 60, 90])
25
+ target = rng.randint(0, n - 1)
26
+ files = []
27
+ for i in range(n):
28
+ lines = _para(rng, rng.randint(3, 5))
29
+ if i == target:
30
+ lines.insert(rng.randint(0, len(lines)),
31
+ f"Termination notice period: {days} days.")
32
+ name = f"contract_{i + 1:02d}.txt"
33
+ _write(env_dir / name, "\n".join(lines) + "\n")
34
+ files.append(name)
35
+ return {"files": files, "out": self.OUT, "days": days}
36
+
37
+ def description(self, spec):
38
+ return (
39
+ "Please use FileSystem tools to finish the following task:\n\n"
40
+ "### Task: Look up a contract clause\n\n"
41
+ "The test directory contains several contract files. Exactly one of them "
42
+ "states a **termination notice period** in the form "
43
+ "`Termination notice period: N days.`\n\n"
44
+ f"Find that number N and write **only the integer** (e.g. `30`) to "
45
+ f"`{self.OUT}` in the test directory root."
46
+ )
47
+
48
+ def verify_src(self, spec):
49
+ body = '''
50
+ import re
51
+ C = json.loads(__CONSTS__)
52
+
53
+
54
+ def expected(t):
55
+ pat = re.compile(r"Termination notice period:\\s*(\\d+)\\s*days")
56
+ for name in C["files"]:
57
+ m = pat.search((t / name).read_text(encoding="utf-8"))
58
+ if m:
59
+ return m.group(1)
60
+ return None
61
+
62
+
63
+ def main():
64
+ t = get_test_dir()
65
+ out = t / C["out"]
66
+ if not out.is_file():
67
+ fail(f"output file not found: {C['out']}")
68
+ exp = expected(t)
69
+ if exp is None:
70
+ fail("could not locate the planted clause (environment corrupted)")
71
+ got = out.read_text(encoding="utf-8").strip()
72
+ if got != exp:
73
+ fail(f"answer is '{got}', expected '{exp}'")
74
+ ok(f"correct termination notice period: {exp} days")
75
+ print("\\U0001f389 All checks passed!")
76
+ sys.exit(0)
77
+
78
+
79
+ if __name__ == "__main__":
80
+ main()
81
+ '''
82
+ return _render_verify(body, {"files": spec["files"], "out": spec["out"]})
83
+
84
+ def solve(self, work_dir, spec):
85
+ _write(work_dir / spec["out"], str(spec["days"]) + "\n")
synth/generators/filesystem/duplicate_finder/README.md ADDED
@@ -0,0 +1,240 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # duplicate_finder
2
+
3
+ 合成版的 filesystem 子任务,对应 MCPMark 真实任务 `file_context/duplicates_searching`。
4
+
5
+ ---
6
+
7
+ ## 1. 这个子任务是什么
8
+
9
+ **任务**:测试目录里有若干文本文件,其中一些**内容完全相同**。要求:
10
+
11
+ 1. 在测试目录根下建一个 `duplicates/` 目录;
12
+ 2. 一个文件若与**至少一个其他文件逐字节相同**,就算重复——把这一组的**所有副本**都移进 `duplicates/`;
13
+ 3. 内容唯一的文件留在原地;
14
+ 4. 不得改名、改内容、删除。
15
+
16
+ **它真正考模型的两件事**:
17
+
18
+ - 会不会**真的逐字节比对内容**(而不是凭文件名、凭"看起来像"、凭语义相似就判重);
19
+ - 会不会把一组重复的**所有副本**都移走(而不是留一份)。
20
+
21
+ > ⚠️ 这是**整理归类**,不是去重:文件被**原样移动**(`move_file`),内容一个字都不改、也不删任何文件。"重复"指的是文件之间内容相同(用来判断该不该移走),不是要删除重复内容。`duplicates/` 目录由被测模型自己创建,初始环境里没有它。
22
+
23
+ ### 举例
24
+
25
+ ```
26
+ 初始状态(散落在测试目录根):
27
+ greeting_0.txt 内容 = "Hello" ┐
28
+ greeting_1.txt 内容 = "Hello" ├ 三个文件内容相同 → 重复组
29
+ greeting_2.txt 内容 = "Hello" ┘
30
+ refund_3.txt 内容 = "Refund OK" ← 内容唯一
31
+
32
+ 模型完成后:
33
+ refund_3.txt 内容 = "Refund OK" ← 唯一的,留原地
34
+ duplicates/
35
+ ├── greeting_0.txt 内容 = "Hello" ┐
36
+ ├── greeting_1.txt 内容 = "Hello" ├ 整组移入,内容不变
37
+ └── greeting_2.txt 内容 = "Hello" ┘
38
+ ```
39
+
40
+ ### 难度分档(`--difficulty`)
41
+
42
+ | 档位 | 结构 | 特点 |
43
+ |------|------|------|
44
+ | `easy` | 2 组重复 + 3 唯一,无陷阱 | 简单 |
45
+ | `medium` | 3 组(2~3 副本)+ 3 唯一 + **2 个陷阱** | 中等(默认)|
46
+ | `hard` | 4 组(2~4 副本)+ 4 唯一 + **3 个陷阱** + 长文本 | 难 |
47
+ | `none` | 全部唯一,无重复 | 边界:`duplicates/` 应为空 |
48
+ | `all` | 单组全副本 | 边界:全部移走 |
49
+
50
+ ### 核心机制:近似重复陷阱(near-duplicate)
51
+
52
+ `medium`/`hard` 会埋入"看起来几乎一样、但不是字节相同"的陷阱文件(`_mutate`):尾部多一个空格、多一个换行、首字母大小写翻转等。按"逐字节相同"的规则,它们是**唯一的、应留在原地**。
53
+
54
+ - 真做字节比对的模型 → 正确留下;
55
+ - 偷懒按相似度/文件名判断的模型 → 误移进 `duplicates/` → 被 verifier 抓出失败。
56
+
57
+ 这就是任务区分度的来源。`hard` 还用 `_lengthen` 把内容拉长到 ~1KB,迫使模型完整比对而非只看开头。
58
+
59
+ ---
60
+
61
+ ## 2. 合成数据的思路
62
+
63
+ 造 benchmark,难点不是"造任务",而是**造出能被可靠判定对错的任务**。本子任务遵循全套设计原则:
64
+
65
+ ### ① LLM 只造内容,不碰判定逻辑
66
+
67
+ - **LLM 负责**:文件名、正文(这里是"客服邮件模板"风格的真实文本)——制造多样性;
68
+ - **确定性代码负责**:哪些文件重复、放几份、陷阱怎么造、以及全部验证逻辑。
69
+
70
+ 即使 LLM 胡说,也只影响"像不像真的",不影响任务正确性。无 API key 时自动降级为离线文本(`--no-llm`)。
71
+
72
+ ### ② Verifier 可重算(recomputable),不存标准答案
73
+
74
+ `verify.py` **不记录**"哪些文件是重复的",而是**从结果文件现场重算**:读出每个文件(无论在 root 还是 `duplicates/`)的内容字节 → 按内容重新分组 → 判定"组内 >1 个就必须在 `duplicates/`,唯一就必须在 root"。
75
+
76
+ ```python
77
+ groups = {} # 按内容字节重新分组
78
+ for name in FILES:
79
+ groups.setdefault(content[name], []).append(name)
80
+ for name in FILES:
81
+ is_dup = len(groups[content[name]]) > 1
82
+ if is_dup and loc[name] != "dup": fail(...) # 重复的没移走
83
+ if not is_dup and loc[name] != "root": fail(...) # 唯一的被误移
84
+ ```
85
+
86
+ 因为答案是 verifier 自己从内容推出来的,模型蒙不过去;近似重复陷阱天然会各自成单独组、被判为"应留原地",所以**加陷阱完全安全,verifier 一行都不用改**。
87
+
88
+ > 注:唯一"种入"的信息是原始文件名清单 `FILES`,只用于查完整性(确认没文件凭空消失),不参与对错判定。
89
+
90
+ ### ③ Oracle 闭环自检:出厂前保证验证器正确
91
+
92
+ 每个生成器都配一个 `solve()`(标准解程序)。生成时自动做两个检查:
93
+
94
+ - **正检**:用 oracle 解出正确答案 → `verify.py` 必须返回 PASS;
95
+ - **负检**:在未解的原始环境上跑 `verify.py` → 必须返回 FAIL。
96
+
97
+ 任一不满足就**丢弃该任务、不落盘**。这保证了:每个合成任务都可解、且其验证器正确。
98
+
99
+ ```
100
+ 生成环境 → oracle 自动解 → verify 必过 + 未解必挂 → 才算合格任务
101
+ ```
102
+
103
+ ---
104
+
105
+ ## 3. 怎么生��� + 跑出轨迹
106
+
107
+ > 均在 `mcpmark` conda 环境、仓库根目录下执行。模型这里用 DeepSeek(key 写在根目录 `.mcp_env`)。
108
+
109
+ ### ① 生成任务
110
+
111
+ ```bash
112
+ conda run -n mcpmark python -m synth.generate \
113
+ --n 1 --types duplicate_finder --difficulty hard --seed 7 --prefix demo
114
+ ```
115
+
116
+ 产出两处:
117
+ - 任务定义:`tasks/filesystem/standard/demo_duplicate_finder_01/duplicate_finder/`(`description.md` / `verify.py` / `meta.json`)
118
+ - 测试环境:`test_environments/demo_duplicate_finder_01/`(模型要操作的初始文件)
119
+
120
+ 常用参数:`--n` 数量、`--difficulty easy|medium|hard|none|all`、`--seed` 复现、`--no-llm` 离线、`--prefix` category 前缀。
121
+
122
+ ### ② 跑任务(自动产生并保存轨迹)
123
+
124
+ ```bash
125
+ conda run -n mcpmark python -m pipeline --mcp filesystem --k 1 \
126
+ --models deepseek-v3.2-instruct \
127
+ --tasks demo_duplicate_finder_01 --exp-name traj
128
+ ```
129
+
130
+ 四个阶段:Setup(备份隔离环境)→ Execute(起 filesystem MCP server,模型操作)→ Verify(跑 `verify.py`)→ Cleanup(删备份)。
131
+
132
+ 轨迹**自动保存**,无需开关,落到:
133
+ ```
134
+ results/traj/deepseek-v3-2-instruct__filesystem/run-1/<task>/
135
+ ├── messages.json # 完整轨迹(思考 + 工具调用 + 工具返回)
136
+ ├── execution.log # 框架运行日志
137
+ └── meta.json # 成功与否 / token / 轮数 / 耗时
138
+ ```
139
+
140
+ ### ③ 查看轨迹
141
+
142
+ ```bash
143
+ # 列出某次实验下所有轨迹
144
+ conda run -n mcpmark python -m synth.trace results/traj --list
145
+
146
+ # 渲染单条(👤指令 / 💬思考 / 🔧工具调用 / 📤结果 + 结果footer)
147
+ conda run -n mcpmark python -m synth.trace \
148
+ results/traj/deepseek-v3-2-instruct__filesystem/run-1/demo_duplicate_finder_01__duplicate_finder
149
+ ```
150
+
151
+ ### 轨迹示例
152
+
153
+ 下面是一条真实轨迹(`medium` 难度,模型被陷阱骗而失败),经 `synth.trace` 渲染后的样子:
154
+
155
+ ```
156
+ ========================================================================
157
+ Trajectory: demo_duplicate_finder_01__duplicate_finder (37 messages)
158
+ ========================================================================
159
+
160
+ #0 👤 USER (task instruction)
161
+ Please use FileSystem tools to finish the following task:
162
+ ### Task: Move duplicate-content files
163
+ 1. Create a `duplicates/` directory in the test directory root.
164
+ 2. A file is a duplicate if its content is byte-for-byte identical to at
165
+ least one other file. Move every such file (all copies) into `duplicates/`.
166
+ 3. Files with unique content must stay where they are.
167
+
168
+ #1 💬 ASSISTANT
169
+ Let me start by exploring the test directory structure.
170
+
171
+ #2 🔧 TOOL CALL → list_allowed_directories
172
+ args: {}
173
+ #3 📤 OUTPUT: Allowed directories:
174
+ /home/zsb/mcpmark/.mcpmark_backups/backup_filesystem_demo_duplicate_finder_01_...
175
+
176
+ #4 🔧 TOOL CALL → list_directory
177
+ args: {'path': '/home/.../backup_filesystem_demo_duplicate_finder_01_...'}
178
+ #5 📤 OUTPUT: [FILE] cancellation_acknowledgment_10.txt
179
+ [FILE] cancellation_acknowledgment_4.txt
180
+ [FILE] order_confirmation_3.txt
181
+ ... (13 files)
182
+
183
+ #6 💬 ASSISTANT
184
+ Great, I can see 13 text files. Let me read all of them to find duplicates.
185
+
186
+ #7 🔧 TOOL CALL → read_multiple_files
187
+ args: {'paths': "[... 13 paths ...]"}
188
+ #8 📤 OUTPUT: .../cancellation_acknowledgment_10.txt:
189
+ Thanks for reporting the bug. Our team is investigating ...
190
+ ---
191
+ .../order_confirmation_3.txt: ...
192
+
193
+ #9 💬 ASSISTANT
194
+ Let me analyze the content carefully:
195
+ **Unique content files (no duplicates):** 1. cancellation_acknowledgment_10 ...
196
+ **Duplicate groups:** welcome_email_0 / _6 / _12, refund_request_1 / _7, ...
197
+ (← 凭一次读取直接下结论分组,没有逐字节复核陷阱文件)
198
+
199
+ #10 🔧 TOOL CALL → create_directory
200
+ args: {'path': '.../duplicates'}
201
+ #11 📤 OUTPUT: Successfully created directory .../duplicates
202
+
203
+ #12 💬 ASSISTANT
204
+ Now move all duplicate files. Let me move them all at once.
205
+
206
+ #13..#21 🔧 TOOL CALL → move_file (×9,把判定为重复的文件批量移入 duplicates/)
207
+ #22..#30 📤 OUTPUT: Successfully moved ...
208
+
209
+ #31 💬 ASSISTANT
210
+ Let me verify the final state of both directories.
211
+ #32 🔧 TOOL CALL → list_directory (root)
212
+ #33 🔧 TOOL CALL → list_directory (duplicates)
213
+ #34 📤 OUTPUT: [FILE] cancellation_acknowledgment_10.txt [DIR] duplicates ...
214
+ #35 📤 OUTPUT: [FILE] ... welcome_email_12.txt ... (← 陷阱文件被错误移了进来)
215
+
216
+ #36 💬 ASSISTANT
217
+ Task completed. Created duplicates/ and moved the duplicate groups ...
218
+
219
+ ------------------------------------------------------------------------
220
+ result: ✗ FAILED | turns=7 | tokens=42034 | tool_calls=15 | time=20.2s
221
+ verify: ✅ all original files accounted for | ❌ welcome_email_12.txt is unique but was moved into duplicates/
222
+ ```
223
+
224
+ **怎么读这条轨迹**:模型在 `#9` 只读了一遍就凭"看起来一样"分组,没有逐字节复核;于是把近似重复陷阱 `welcome_email_12.txt`(与 welcome_email 组只差一个尾部字节)误判为重复、移进了 `duplicates/`。`verify.py` 按字节重算后精确抓出 → `❌ FAILED`。
225
+
226
+ > 对照:认真比对的轨迹会在 `#9` 附近出现 “some files have trailing newlines/spaces that matter” 并逐个 `read_text_file` 复核,最终 `✅ PASSED`。**模型有没有真比对,看轨迹一目了然**——这正是「陷阱 + 轨迹」的价值。
227
+
228
+ ---
229
+
230
+ ## 4. 文件
231
+
232
+ ```
233
+ duplicate_finder/
234
+ └── __init__.py # DuplicateFinder 生成器:build / description / verify_src / solve
235
+ ```
236
+
237
+ - `build(env_dir, llm, rng)`:按难度造重复结构 + 陷阱,写入测试环境;
238
+ - `description(spec)`:给模型看的指令(固定、精确,定义"逐字节相同"与"全部移走");
239
+ - `verify_src(spec)`:生成自包含的可重算 `verify.py`;
240
+ - `solve(work_dir, spec)`:oracle 标准解,供闭环自检。
synth/generators/filesystem/duplicate_finder/__init__.py ADDED
@@ -0,0 +1,165 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ """`duplicate_finder` task generator."""
2
+ import json
3
+ import random
4
+ import shutil
5
+ from collections import defaultdict
6
+ from pathlib import Path
7
+
8
+ from ..base import (
9
+ Generator, _VERIFY_HEADER, _render_verify, pad_to, _write, _para,
10
+ _AUTHORS, _SONG_TITLES, _STUDENTS, _WORDS,
11
+ )
12
+
13
+
14
+ class DuplicateFinder(Generator):
15
+ KEY = "duplicate_finder"
16
+ CATEGORY_NAME = "Duplicate Finder"
17
+ DIFFICULTY = "L3"
18
+ TAGS = ["file content", "deduplication"]
19
+
20
+ DUP_DIR = "duplicates"
21
+
22
+ # difficulty -> structure: number of duplicate groups, copies-per-group range,
23
+ # number of unique singletons, number of near-duplicate traps, long content?
24
+ CONFIG = {
25
+ "easy": dict(groups=2, copies=(2, 2), uniques=3, near=0, long=False),
26
+ "medium": dict(groups=3, copies=(2, 3), uniques=3, near=2, long=False),
27
+ "hard": dict(groups=4, copies=(2, 4), uniques=4, near=3, long=True),
28
+ # edge cases:
29
+ "none": dict(groups=0, copies=(0, 0), uniques=6, near=0, long=False),
30
+ "all": dict(groups=1, copies=(6, 6), uniques=0, near=0, long=False),
31
+ }
32
+
33
+ def _lengthen(self, body, rng):
34
+ out = body.rstrip()
35
+ target = rng.randint(800, 1500)
36
+ while len(out) < target:
37
+ out += " " + " ".join(rng.choice(_WORDS) for _ in range(8)).capitalize() + "."
38
+ return out
39
+
40
+ def _mutate(self, base, i):
41
+ """A tiny, easy-to-miss change so the file is NOT byte-identical."""
42
+ b = base.rstrip()
43
+ variants = [
44
+ b + " " * (i + 1), # trailing spaces
45
+ b + "\n", # extra newline
46
+ (b[0].swapcase() + b[1:]) if b else b + ".", # flip first letter
47
+ b.replace(" ", " ", 1) if " " in b else b + " ", # double one space
48
+ ]
49
+ return variants[i % len(variants)]
50
+
51
+ def build(self, env_dir, llm, rng):
52
+ cfg = self.CONFIG.get(self.difficulty, self.CONFIG["medium"])
53
+ n_bodies = max(cfg["groups"] + cfg["uniques"], 1)
54
+ snippets = llm.gen_snippets("customer support email templates", n_bodies)
55
+ bodies = [s["content"].rstrip() for s in snippets]
56
+ if cfg["long"]:
57
+ bodies = [self._lengthen(b, rng) for b in bodies]
58
+ name_pool = [s["filename"] for s in snippets] or ["doc"]
59
+
60
+ group_bodies = bodies[: cfg["groups"]]
61
+ unique_bodies = bodies[cfg["groups"]: cfg["groups"] + cfg["uniques"]]
62
+
63
+ files, seen, ni = [], set(), 0
64
+
65
+ def add(content):
66
+ nonlocal ni
67
+ name = f"{name_pool[ni % len(name_pool)]}_{ni}.txt"
68
+ ni += 1
69
+ _write(env_dir / name, content)
70
+ files.append(name)
71
+ seen.add(content)
72
+
73
+ # duplicate groups: every copy is byte-identical
74
+ for b in group_bodies:
75
+ for _ in range(rng.randint(*cfg["copies"])):
76
+ add(b)
77
+ # unique singletons: stay in the root
78
+ for b in unique_bodies:
79
+ add(b)
80
+ # near-duplicate traps: look almost identical to a real group but differ by a
81
+ # byte, so by the byte-for-byte rule they are UNIQUE and must stay in the root.
82
+ pool = group_bodies or unique_bodies or ["placeholder text"]
83
+ for i in range(cfg["near"]):
84
+ trap = self._mutate(rng.choice(pool), i)
85
+ guard = 0
86
+ while trap in seen and guard < 6: # guarantee genuine uniqueness
87
+ trap += " "
88
+ guard += 1
89
+ add(trap)
90
+
91
+ rng.shuffle(files)
92
+ return {"files": files, "dup_dir": self.DUP_DIR, "difficulty": self.difficulty}
93
+
94
+ def description(self, spec):
95
+ return (
96
+ "Please use FileSystem tools to finish the following task:\n\n"
97
+ "### Task: Move duplicate-content files\n\n"
98
+ "Some text files in the test directory have **identical content**.\n\n"
99
+ f"1. Create a `{self.DUP_DIR}/` directory in the test directory root.\n"
100
+ "2. A file is a **duplicate** if its content is byte-for-byte identical "
101
+ "to at least one other file. Move **every** such file (all copies) into "
102
+ f"`{self.DUP_DIR}/`.\n"
103
+ "3. Files with unique content must stay where they are.\n\n"
104
+ "Do not modify, rename, or delete any file."
105
+ )
106
+
107
+ def verify_src(self, spec):
108
+ consts = {"FILES": spec["files"], "DUP_DIR": spec["dup_dir"]}
109
+ return _VERIFY_HEADER + f'''
110
+
111
+ C = json.loads({json.dumps(json.dumps(consts))})
112
+
113
+
114
+ def main():
115
+ t = get_test_dir()
116
+ dup = t / C["DUP_DIR"]
117
+ if not dup.is_dir():
118
+ fail(f"missing directory: {{C['DUP_DIR']}}")
119
+
120
+ # Locate every original file and read its content.
121
+ loc, content = {{}}, {{}}
122
+ for f in t.iterdir():
123
+ if f.is_file() and f.name not in SYSTEM_FILES:
124
+ loc[f.name] = "root"
125
+ content[f.name] = f.read_bytes()
126
+ for f in dup.iterdir():
127
+ if f.is_file() and f.name not in SYSTEM_FILES:
128
+ loc[f.name] = "dup"
129
+ content[f.name] = f.read_bytes()
130
+
131
+ for name in C["FILES"]:
132
+ if name not in loc:
133
+ fail(f"file missing after task: {{name}}")
134
+ ok("all original files accounted for")
135
+
136
+ # Recompute duplicate groups from content.
137
+ groups = {{}}
138
+ for name in C["FILES"]:
139
+ groups.setdefault(content[name], []).append(name)
140
+
141
+ for name in C["FILES"]:
142
+ is_dup = len(groups[content[name]]) > 1
143
+ if is_dup and loc[name] != "dup":
144
+ fail(f"{{name}} has duplicate content but is not in {{C['DUP_DIR']}}/")
145
+ if not is_dup and loc[name] != "root":
146
+ fail(f"{{name}} is unique but was moved into {{C['DUP_DIR']}}/")
147
+ ok("duplicates and unique files are correctly placed")
148
+ print("\\U0001f389 All checks passed!")
149
+ sys.exit(0)
150
+
151
+
152
+ if __name__ == "__main__":
153
+ main()
154
+ '''
155
+
156
+ def solve(self, work_dir, spec):
157
+ dup = work_dir / spec["dup_dir"]
158
+ dup.mkdir(exist_ok=True)
159
+ groups = defaultdict(list)
160
+ for name in spec["files"]:
161
+ groups[(work_dir / name).read_bytes()].append(name)
162
+ for names in groups.values():
163
+ if len(names) > 1:
164
+ for name in names:
165
+ shutil.move(str(work_dir / name), str(dup / name))
synth/generators/filesystem/extension_grouping/__init__.py ADDED
@@ -0,0 +1,102 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ """`extension_grouping` task generator."""
2
+ import json
3
+ import random
4
+ import shutil
5
+ from collections import defaultdict
6
+ from pathlib import Path
7
+
8
+ from ..base import (
9
+ Generator, _VERIFY_HEADER, _render_verify, pad_to, _write, _para,
10
+ _AUTHORS, _SONG_TITLES, _STUDENTS, _WORDS,
11
+ )
12
+
13
+
14
+ class ExtensionGrouping(Generator):
15
+ KEY = "extension_grouping"
16
+ CATEGORY_NAME = "Extension Grouping"
17
+ DIFFICULTY = "L2"
18
+ TAGS = ["file organization", "file property"]
19
+
20
+ EXTS = [".txt", ".md", ".csv", ".json", ".log"]
21
+
22
+ def _folder(self, name: str) -> str:
23
+ return Path(name).suffix.lower().lstrip(".") + "_files"
24
+
25
+ def build(self, env_dir, llm, rng):
26
+ snippets = llm.gen_snippets("a software project's working files", 9)
27
+ files = []
28
+ for i, snip in enumerate(snippets):
29
+ ext = self.EXTS[i % len(self.EXTS)]
30
+ name = snip["filename"] + ext
31
+ body = snip["content"]
32
+ if ext == ".csv":
33
+ body = "name,value\n" + body.replace(" ", ",")[:60]
34
+ elif ext == ".json":
35
+ body = json.dumps({"note": body[:60]})
36
+ _write(env_dir / name, body)
37
+ files.append(name)
38
+ return {"files": files}
39
+
40
+ def description(self, spec):
41
+ return (
42
+ "Please use FileSystem tools to finish the following task:\n\n"
43
+ "### Task: Group files by extension\n\n"
44
+ "For every distinct file extension present in the test directory, create "
45
+ "a folder named `<ext>_files` (the extension lowercased, without the dot — "
46
+ "for example `.txt` files go into `txt_files/`, `.md` into `md_files/`).\n\n"
47
+ "- Move every file into the folder matching its extension.\n"
48
+ "- After you are done, the test directory root must contain only those "
49
+ "folders and no loose files.\n"
50
+ "- Do not rename or modify any file."
51
+ )
52
+
53
+ def verify_src(self, spec):
54
+ consts = {"FILES": spec["files"]}
55
+ return _VERIFY_HEADER + f'''
56
+
57
+ C = json.loads({json.dumps(json.dumps(consts))})
58
+
59
+
60
+ def folder_for(name):
61
+ suffix = name.rsplit(".", 1)[-1].lower() if "." in name else ""
62
+ return suffix + "_files"
63
+
64
+
65
+ def main():
66
+ t = get_test_dir()
67
+
68
+ loose = [f.name for f in t.iterdir() if f.is_file() and f.name not in SYSTEM_FILES]
69
+ if loose:
70
+ fail(f"files still in root: {{loose}}")
71
+ ok("root has no loose files")
72
+
73
+ located = {{}}
74
+ for d in t.iterdir():
75
+ if d.is_dir():
76
+ for f in d.iterdir():
77
+ if f.is_file() and f.name not in SYSTEM_FILES:
78
+ located.setdefault(f.name, []).append(d.name)
79
+
80
+ for name in C["FILES"]:
81
+ where = located.get(name)
82
+ if not where:
83
+ fail(f"file missing after grouping: {{name}}")
84
+ if len(where) > 1:
85
+ fail(f"file duplicated across folders: {{name}} -> {{where}}")
86
+ expected = folder_for(name)
87
+ if where[0] != expected:
88
+ fail(f"{{name}} is in {{where[0]}}, expected {{expected}}")
89
+ ok(f"all {{len(C['FILES'])}} files grouped correctly by extension")
90
+ print("\\U0001f389 All checks passed!")
91
+ sys.exit(0)
92
+
93
+
94
+ if __name__ == "__main__":
95
+ main()
96
+ '''
97
+
98
+ def solve(self, work_dir, spec):
99
+ for name in spec["files"]:
100
+ folder = self._folder(name)
101
+ (work_dir / folder).mkdir(exist_ok=True)
102
+ shutil.move(str(work_dir / name), str(work_dir / folder / name))
synth/generators/filesystem/file_splitting/__init__.py ADDED
@@ -0,0 +1,86 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ """`file_splitting` task generator."""
2
+ import json
3
+ import random
4
+ import shutil
5
+ from collections import defaultdict
6
+ from pathlib import Path
7
+
8
+ from ..base import (
9
+ Generator, _VERIFY_HEADER, _render_verify, pad_to, _write, _para,
10
+ _AUTHORS, _SONG_TITLES, _STUDENTS, _WORDS,
11
+ )
12
+
13
+
14
+ class FileSplitting(Generator):
15
+ KEY = "file_splitting"
16
+ CATEGORY_NAME = "File Splitting"
17
+ DIFFICULTY = "L2"
18
+ TAGS = ["file content", "split"]
19
+
20
+ SRC = "combined.txt"
21
+ DELIM = "-----"
22
+ OUT_DIR = "parts"
23
+
24
+ def build(self, env_dir, llm, rng):
25
+ k = rng.randint(3, 5)
26
+ sections = []
27
+ for _ in range(k):
28
+ sections.append("\n".join(_para(rng, rng.randint(2, 4))))
29
+ content = ("\n" + self.DELIM + "\n").join(sections)
30
+ _write(env_dir / self.SRC, content + "\n")
31
+ return {"src": self.SRC, "delim": self.DELIM, "out_dir": self.OUT_DIR, "k": k}
32
+
33
+ def description(self, spec):
34
+ return (
35
+ "Please use FileSystem tools to finish the following task:\n\n"
36
+ "### Task: Split a combined file into parts\n\n"
37
+ f"The file `{self.SRC}` contains several sections separated by lines that "
38
+ f"consist of exactly `{self.DELIM}`.\n\n"
39
+ f"1. Create a folder named `{self.OUT_DIR}/` in the test directory root.\n"
40
+ f"2. Write each section, in order, to `{self.OUT_DIR}/part_1.txt`, "
41
+ f"`{self.OUT_DIR}/part_2.txt`, … (1-based).\n"
42
+ "3. Each part file contains only that section's text (no delimiter "
43
+ "lines). Do not modify the original file."
44
+ )
45
+
46
+ def verify_src(self, spec):
47
+ body = '''
48
+ C = json.loads(__CONSTS__)
49
+
50
+
51
+ def main():
52
+ t = get_test_dir()
53
+ src = t / C["src"]
54
+ if not src.is_file():
55
+ fail(f"source file missing: {C['src']}")
56
+ sections = src.read_text(encoding="utf-8").split("\\n" + C["delim"] + "\\n")
57
+ pdir = t / C["out_dir"]
58
+ if not pdir.is_dir():
59
+ fail(f"missing directory: {C['out_dir']}")
60
+ for i, sec in enumerate(sections, 1):
61
+ pf = pdir / f"part_{i}.txt"
62
+ if not pf.is_file():
63
+ fail(f"missing part file: part_{i}.txt")
64
+ if pf.read_text(encoding="utf-8").strip() != sec.strip():
65
+ fail(f"part_{i}.txt content does not match section {i}")
66
+ extra = [p.name for p in pdir.iterdir() if p.is_file() and p.name not in
67
+ {f"part_{i}.txt" for i in range(1, len(sections) + 1)}]
68
+ if extra:
69
+ fail(f"unexpected files in {C['out_dir']}: {extra}")
70
+ ok(f"file correctly split into {len(sections)} parts")
71
+ print("\\U0001f389 All checks passed!")
72
+ sys.exit(0)
73
+
74
+
75
+ if __name__ == "__main__":
76
+ main()
77
+ '''
78
+ return _render_verify(body, {"src": spec["src"], "delim": spec["delim"], "out_dir": spec["out_dir"]})
79
+
80
+ def solve(self, work_dir, spec):
81
+ src = work_dir / spec["src"]
82
+ sections = src.read_text(encoding="utf-8").split("\n" + spec["delim"] + "\n")
83
+ pdir = work_dir / spec["out_dir"]
84
+ pdir.mkdir(exist_ok=True)
85
+ for i, sec in enumerate(sections, 1):
86
+ _write(pdir / f"part_{i}.txt", sec.strip() + "\n")
synth/generators/filesystem/gradebased_score/__init__.py ADDED
@@ -0,0 +1,94 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ """`gradebased_score` task generator."""
2
+ import json
3
+ import random
4
+ import shutil
5
+ from collections import defaultdict
6
+ from pathlib import Path
7
+
8
+ from ..base import (
9
+ Generator, _VERIFY_HEADER, _render_verify, pad_to, _write, _para,
10
+ _AUTHORS, _SONG_TITLES, _STUDENTS, _WORDS,
11
+ )
12
+
13
+
14
+ class GradeBasedScore(Generator):
15
+ KEY = "gradebased_score"
16
+ CATEGORY_NAME = "Grade-based Score"
17
+ DIFFICULTY = "L3"
18
+ TAGS = ["database", "filtering"]
19
+
20
+ CSV = "students.csv"
21
+ OUT = "top_students.txt"
22
+ THRESHOLD = 210
23
+
24
+ def build(self, env_dir, llm, rng):
25
+ names = rng.sample(_STUDENTS, rng.randint(6, 8))
26
+ rows = []
27
+ for nm in names:
28
+ rows.append((nm, rng.randint(40, 100), rng.randint(40, 100), rng.randint(40, 100)))
29
+ lines = ["name,math,english,science"]
30
+ for nm, m, e, s in rows:
31
+ lines.append(f"{nm},{m},{e},{s}")
32
+ _write(env_dir / self.CSV, "\n".join(lines) + "\n")
33
+ return {"csv": self.CSV, "out": self.OUT, "threshold": self.THRESHOLD}
34
+
35
+ def description(self, spec):
36
+ return (
37
+ "Please use FileSystem tools to finish the following task:\n\n"
38
+ "### Task: List top students\n\n"
39
+ f"`{self.CSV}` has columns `name,math,english,science`.\n\n"
40
+ f"1. Compute each student's total = math + english + science.\n"
41
+ f"2. Select students whose total is **>= {self.THRESHOLD}**.\n"
42
+ "3. Sort them by total **descending**; break ties by name ascending.\n"
43
+ f"4. Write the selected students' names (one per line, names only) to "
44
+ f"`{self.OUT}` in the test directory root. Do not modify `{self.CSV}`."
45
+ )
46
+
47
+ def verify_src(self, spec):
48
+ body = '''
49
+ import csv as _csv
50
+ C = json.loads(__CONSTS__)
51
+
52
+
53
+ def expected(t):
54
+ rows = []
55
+ with open(t / C["csv"], newline="", encoding="utf-8") as fh:
56
+ for r in _csv.DictReader(fh):
57
+ total = int(r["math"]) + int(r["english"]) + int(r["science"])
58
+ if total >= C["threshold"]:
59
+ rows.append((total, r["name"]))
60
+ rows.sort(key=lambda x: (-x[0], x[1]))
61
+ return "\\n".join(n for _, n in rows)
62
+
63
+
64
+ def main():
65
+ t = get_test_dir()
66
+ out = t / C["out"]
67
+ if not out.is_file():
68
+ fail(f"output file not found: {C['out']}")
69
+ got = out.read_text(encoding="utf-8").strip()
70
+ exp = expected(t).strip()
71
+ if got != exp:
72
+ print("--- expected ---"); print(exp)
73
+ print("--- got ---"); print(got)
74
+ fail("top_students.txt does not match expected selection/order")
75
+ ok("top students correctly selected and ordered")
76
+ print("\\U0001f389 All checks passed!")
77
+ sys.exit(0)
78
+
79
+
80
+ if __name__ == "__main__":
81
+ main()
82
+ '''
83
+ return _render_verify(body, {"csv": spec["csv"], "out": spec["out"], "threshold": spec["threshold"]})
84
+
85
+ def solve(self, work_dir, spec):
86
+ import csv as _csv
87
+ rows = []
88
+ with open(work_dir / spec["csv"], newline="", encoding="utf-8") as fh:
89
+ for r in _csv.DictReader(fh):
90
+ total = int(r["math"]) + int(r["english"]) + int(r["science"])
91
+ if total >= spec["threshold"]:
92
+ rows.append((total, r["name"]))
93
+ rows.sort(key=lambda x: (-x[0], x[1]))
94
+ _write(work_dir / spec["out"], "\n".join(n for _, n in rows) + "\n")