@dev-mainsequence/codex-plugin 0.4.2 → 0.7.9

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (34) hide show
  1. package/.codex-plugin/plugin.json +3 -3
  2. package/.mcp.json +2 -1
  3. package/README.md +30 -4
  4. package/assets/mainsequence-mark.svg +453 -0
  5. package/build-info.json +3 -3
  6. package/dist/hosts/discovery.js +138 -24
  7. package/dist/hosts/messaging.js +63 -0
  8. package/dist/hosts/panel/panel.html +225 -125
  9. package/dist/hosts/workspace.js +107 -0
  10. package/dist/panel-server.js +115 -27
  11. package/dist/vendor/devtools/index.js +41 -1
  12. package/dist/vendor/devtools/package.json +1 -1
  13. package/dist/vendor/devtools/shared/actions.js +36 -7
  14. package/dist/vendor/devtools/shared/agentAssets.js +38 -0
  15. package/dist/vendor/devtools/shared/agentDelivery.js +477 -0
  16. package/dist/vendor/devtools/shared/agentIcon.js +43 -0
  17. package/dist/vendor/devtools/shared/agents.js +13 -6
  18. package/dist/vendor/devtools/shared/arguments.js +16 -9
  19. package/dist/vendor/devtools/shared/deployments.js +214 -0
  20. package/dist/vendor/devtools/shared/mcp.js +124 -25
  21. package/dist/vendor/devtools/shared/mcpTransport.js +64 -21
  22. package/dist/vendor/devtools/shared/organizationProjectWorkspace.js +8 -3
  23. package/dist/vendor/devtools/shared/projectTools.js +437 -0
  24. package/dist/vendor/devtools/shared/repositories.js +2 -2
  25. package/dist/vendor/devtools/shared/session.js +46 -15
  26. package/dist/vendor/devtools/shared/sharedTransport.js +506 -0
  27. package/dist/vendor/devtools/shared/stateDirectory.js +44 -0
  28. package/dist/vendor/devtools/shared/workingDirectory.js +13 -0
  29. package/dist/vendor/devtools/shared/workspaceSettings.js +96 -0
  30. package/docs/agents-tools-panel.md +471 -12
  31. package/docs/conversational-mcp.md +15 -2
  32. package/package.json +3 -3
  33. package/skills/mainsequence-mcp/SKILL.md +18 -3
  34. package/skills/ms/assets/mainsequence-mark.svg +453 -0
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "mainsequence",
3
- "version": "0.4.2",
4
- "description": "Browse MainSequence agents and project MCPs using your existing devtools session, and run developer commands.",
3
+ "version": "0.7.9",
4
+ "description": "Message MainSequence agents in Codex chat, recover saved replies, discover project MCPs and run developer commands using your shared session.",
5
5
  "author": {
6
6
  "name": "MainSequence"
7
7
  },
@@ -10,7 +10,7 @@
10
10
  "skills": "./skills/",
11
11
  "interface": {
12
12
  "displayName": "MainSequence",
13
- "shortDescription": "Browse agents and tools with your existing MainSequence session.",
13
+ "shortDescription": "Agents, messages and tools with your shared MainSequence session.",
14
14
  "developerName": "MainSequence",
15
15
  "category": "Productivity",
16
16
  "websiteUrl": "https://www.main-sequence.io/",
package/.mcp.json CHANGED
@@ -10,7 +10,8 @@
10
10
  "MAINSEQUENCE_ENDPOINT",
11
11
  "MAINSEQUENCE_ACCESS_TOKEN",
12
12
  "MAINSEQUENCE_REFRESH_TOKEN"
13
- ]
13
+ ],
14
+ "tool_timeout_sec": 300
14
15
  }
15
16
  }
16
17
  }
package/README.md CHANGED
@@ -3,10 +3,23 @@
3
3
  This repository is the **MainSequence Codex plugin**. Its production code lives in
4
4
  `src/`, its Codex manifest in `manifests/codex/`, and its installable bundle in `codex/`.
5
5
 
6
- The **0.4.2 development build** provides a native Agents/Tools panel with account and
7
- environment status, agent search, project MCP discovery, saved-connection status and read-only schema inspection.
8
- Ask Codex to **open MainSequence**. The plugin uses the existing devtools **0.3.2** session
9
- and APIs; devtools remains the head. See [panel behavior and validation](docs/agents-tools-panel.md).
6
+ The **0.7.1 development build** follows Claude's MainSequence panel layout using
7
+ Codex theme tokens: Home, Code, Projects, Agents, Tools, Activity and Settings.
8
+ It includes repository setup and maintenance, project setup and links, deployment
9
+ history/stages/logs, shared account/settings controls, direct messages and agent tasks.
10
+ Replies and task results use native MCP tools and remain in Codex conversation context.
11
+
12
+ Ask Codex to **open MainSequence**. Shared devtools **0.3.5** owns authentication,
13
+ account binding, domain APIs, local project operations, authenticated assets and durable
14
+ delivery. Claude's repository and dependency remain unchanged. See the
15
+ [capability matrix and verification](docs/agents-tools-panel.md), including the stock
16
+ Codex host differences. No probe or custom Codex build is shipped.
17
+
18
+ Choose **Talk**, select **Message** or **Task** when the agent supports both, write a
19
+ message, then **Send in Codex**. The reply returns through a native
20
+ MCP tool and stays in chat context. After Stop, use **Messages and recovery → Recover in
21
+ Codex** on the original request. Recovery reuses saved work; an unknown remote outcome
22
+ blocks resend. Browsing or selecting an example never sends a message automatically.
10
23
 
11
24
  The plugin also registers the `ms` slash-menu entry for explicit developer commands and
12
25
  the `mainsequence-mcp` skill for conversational project MCP access. The independent
@@ -89,6 +102,19 @@ metatable-mcp", "Use it to list my tables." See
89
102
  [conversational project MCP connections](docs/conversational-mcp.md) and
90
103
  [ADR 0002](docs/adr/0002-conversational-project-mcp-client.md).
91
104
 
105
+ Every saved project MCP's tools are also registered directly, as the Claude Desktop
106
+ plugin registers them: `ms_<tool>_<hash>` (for example `ms_crm_contacts_list_…`), each
107
+ with the project's own schema and bound to one saved connection and environment. Codex
108
+ calls them like any other tool, with no `contextId` or environment selection. The list
109
+ comes from devtools' shared project-tool catalog (`project-tool-catalog.json` beside the
110
+ shared CLI state, the same names, schemas and results as the Claude Desktop plugin; devtools
111
+ ADR 0004) and is refreshed in the background; a connection saved in the current chat appears
112
+ in the next chat, and is usable at once through `mainsequence_tools` /
113
+ `mainsequence_call_tool`. A cold project MCP can take over a minute to answer: devtools gives
114
+ project requests 120 s and honours a tool's advertised timeout up to 300 s, and the plugin's
115
+ server allows Codex tool calls 300 seconds (`tool_timeout_sec` in `.mcp.json`) instead of
116
+ the host default of 60.
117
+
92
118
  ## Architecture and development
93
119
 
94
120
  Shared functionality comes from the exact `@dev-mainsequence/devtools` package API. The
@@ -0,0 +1,453 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64">
2
+ <circle cx="29.00" cy="31.30" r="1.64" fill="white" fill-opacity="1.00"/>
3
+ <circle cx="18.69" cy="39.82" r="1.02" fill="white" fill-opacity="1.00"/>
4
+ <circle cx="16.04" cy="39.77" r="1.15" fill="white" fill-opacity="1.00"/>
5
+ <circle cx="15.27" cy="41.38" r="0.97" fill="white" fill-opacity="1.00"/>
6
+ <circle cx="23.00" cy="36.20" r="1.03" fill="white" fill-opacity="1.00"/>
7
+ <circle cx="10.64" cy="45.45" r="0.96" fill="white" fill-opacity="1.00"/>
8
+ <circle cx="10.84" cy="46.51" r="1.02" fill="white" fill-opacity="1.00"/>
9
+ <circle cx="16.63" cy="40.12" r="1.04" fill="white" fill-opacity="1.00"/>
10
+ <circle cx="13.54" cy="42.15" r="0.96" fill="white" fill-opacity="1.00"/>
11
+ <circle cx="21.41" cy="35.09" r="0.63" fill="white" fill-opacity="0.93"/>
12
+ <circle cx="37.75" cy="26.03" r="0.63" fill="white" fill-opacity="0.78"/>
13
+ <circle cx="41.59" cy="23.98" r="0.63" fill="white" fill-opacity="0.71"/>
14
+ <circle cx="30.73" cy="30.25" r="0.63" fill="white" fill-opacity="0.79"/>
15
+ <circle cx="51.79" cy="15.00" r="0.63" fill="white" fill-opacity="0.71"/>
16
+ <circle cx="21.77" cy="35.09" r="0.63" fill="white" fill-opacity="0.91"/>
17
+ <circle cx="47.36" cy="19.44" r="0.63" fill="white" fill-opacity="0.71"/>
18
+ <circle cx="27.75" cy="32.81" r="0.63" fill="white" fill-opacity="0.94"/>
19
+ <circle cx="39.36" cy="25.63" r="0.63" fill="white" fill-opacity="0.71"/>
20
+ <circle cx="15.04" cy="38.70" r="0.71" fill="white" fill-opacity="1.00"/>
21
+ <circle cx="28.83" cy="31.01" r="0.63" fill="white" fill-opacity="0.79"/>
22
+ <circle cx="26.13" cy="33.26" r="0.63" fill="white" fill-opacity="0.84"/>
23
+ <circle cx="26.39" cy="31.58" r="0.63" fill="white" fill-opacity="0.76"/>
24
+ <circle cx="32.73" cy="29.87" r="0.63" fill="white" fill-opacity="0.71"/>
25
+ <circle cx="34.88" cy="28.57" r="0.63" fill="white" fill-opacity="0.71"/>
26
+ <circle cx="40.21" cy="25.86" r="0.63" fill="white" fill-opacity="0.72"/>
27
+ <circle cx="15.00" cy="39.74" r="0.70" fill="white" fill-opacity="1.00"/>
28
+ <circle cx="17.19" cy="39.19" r="0.63" fill="white" fill-opacity="0.97"/>
29
+ <circle cx="45.81" cy="21.86" r="0.63" fill="white" fill-opacity="0.71"/>
30
+ <circle cx="15.39" cy="39.60" r="0.75" fill="white" fill-opacity="1.00"/>
31
+ <circle cx="23.63" cy="34.71" r="0.66" fill="white" fill-opacity="0.99"/>
32
+ <circle cx="25.63" cy="32.56" r="0.63" fill="white" fill-opacity="0.93"/>
33
+ <circle cx="28.44" cy="30.80" r="0.63" fill="white" fill-opacity="0.73"/>
34
+ <circle cx="27.75" cy="31.34" r="0.63" fill="white" fill-opacity="0.74"/>
35
+ <circle cx="32.54" cy="28.92" r="0.63" fill="white" fill-opacity="0.91"/>
36
+ <circle cx="29.59" cy="30.43" r="0.63" fill="white" fill-opacity="0.80"/>
37
+ <circle cx="29.00" cy="30.61" r="0.63" fill="white" fill-opacity="0.78"/>
38
+ <circle cx="30.73" cy="30.04" r="0.63" fill="white" fill-opacity="0.71"/>
39
+ <circle cx="26.39" cy="32.88" r="0.63" fill="white" fill-opacity="0.93"/>
40
+ <circle cx="38.27" cy="24.91" r="0.63" fill="white" fill-opacity="0.71"/>
41
+ <circle cx="26.48" cy="32.54" r="0.63" fill="white" fill-opacity="0.80"/>
42
+ <circle cx="18.06" cy="37.93" r="0.66" fill="white" fill-opacity="1.00"/>
43
+ <circle cx="28.39" cy="32.23" r="0.63" fill="white" fill-opacity="0.82"/>
44
+ <circle cx="38.14" cy="27.45" r="0.63" fill="white" fill-opacity="0.71"/>
45
+ <circle cx="39.15" cy="26.77" r="0.63" fill="white" fill-opacity="0.77"/>
46
+ <circle cx="31.94" cy="29.41" r="0.63" fill="white" fill-opacity="0.74"/>
47
+ <circle cx="26.89" cy="32.64" r="0.63" fill="white" fill-opacity="0.89"/>
48
+ <circle cx="41.81" cy="25.08" r="0.63" fill="white" fill-opacity="0.71"/>
49
+ <circle cx="17.66" cy="38.86" r="0.65" fill="white" fill-opacity="0.99"/>
50
+ <circle cx="26.81" cy="32.87" r="0.63" fill="white" fill-opacity="0.80"/>
51
+ <circle cx="28.29" cy="29.87" r="0.63" fill="white" fill-opacity="0.85"/>
52
+ <circle cx="26.19" cy="35.70" r="0.63" fill="white" fill-opacity="0.96"/>
53
+ <circle cx="29.50" cy="29.85" r="0.63" fill="white" fill-opacity="0.71"/>
54
+ <circle cx="45.52" cy="22.36" r="0.63" fill="white" fill-opacity="0.71"/>
55
+ <circle cx="27.02" cy="32.69" r="0.63" fill="white" fill-opacity="0.80"/>
56
+ <circle cx="29.21" cy="32.39" r="0.63" fill="white" fill-opacity="0.88"/>
57
+ <circle cx="23.88" cy="32.91" r="0.63" fill="white" fill-opacity="0.92"/>
58
+ <circle cx="26.25" cy="32.80" r="0.70" fill="white" fill-opacity="1.00"/>
59
+ <circle cx="36.02" cy="28.01" r="0.63" fill="white" fill-opacity="0.71"/>
60
+ <circle cx="38.14" cy="26.22" r="0.63" fill="white" fill-opacity="0.71"/>
61
+ <circle cx="25.54" cy="34.23" r="0.63" fill="white" fill-opacity="0.85"/>
62
+ <circle cx="27.09" cy="32.09" r="0.63" fill="white" fill-opacity="0.79"/>
63
+ <circle cx="44.48" cy="24.67" r="0.63" fill="white" fill-opacity="0.71"/>
64
+ <circle cx="19.94" cy="38.27" r="0.67" fill="white" fill-opacity="1.00"/>
65
+ <circle cx="29.84" cy="30.91" r="0.63" fill="white" fill-opacity="0.96"/>
66
+ <circle cx="31.89" cy="29.48" r="0.63" fill="white" fill-opacity="0.71"/>
67
+ <circle cx="32.21" cy="29.77" r="0.63" fill="white" fill-opacity="0.78"/>
68
+ <circle cx="13.75" cy="40.01" r="0.65" fill="white" fill-opacity="0.99"/>
69
+ <circle cx="45.13" cy="21.52" r="0.63" fill="white" fill-opacity="0.71"/>
70
+ <circle cx="23.27" cy="35.24" r="0.71" fill="white" fill-opacity="1.00"/>
71
+ <circle cx="16.40" cy="37.73" r="0.79" fill="white" fill-opacity="1.00"/>
72
+ <circle cx="23.98" cy="35.03" r="0.68" fill="white" fill-opacity="1.00"/>
73
+ <circle cx="42.71" cy="22.86" r="0.63" fill="white" fill-opacity="0.71"/>
74
+ <circle cx="28.29" cy="32.09" r="0.63" fill="white" fill-opacity="0.82"/>
75
+ <circle cx="24.36" cy="35.41" r="0.64" fill="white" fill-opacity="0.98"/>
76
+ <circle cx="37.13" cy="27.08" r="0.63" fill="white" fill-opacity="0.71"/>
77
+ <circle cx="38.25" cy="28.81" r="0.63" fill="white" fill-opacity="0.71"/>
78
+ <circle cx="29.84" cy="28.98" r="0.63" fill="white" fill-opacity="0.71"/>
79
+ <circle cx="37.06" cy="27.70" r="0.63" fill="white" fill-opacity="0.71"/>
80
+ <circle cx="13.63" cy="41.59" r="0.78" fill="white" fill-opacity="1.00"/>
81
+ <circle cx="27.50" cy="32.63" r="0.63" fill="white" fill-opacity="0.79"/>
82
+ <circle cx="26.13" cy="33.15" r="0.63" fill="white" fill-opacity="0.94"/>
83
+ <circle cx="28.66" cy="31.00" r="0.63" fill="white" fill-opacity="0.73"/>
84
+ <circle cx="38.14" cy="27.09" r="0.63" fill="white" fill-opacity="0.71"/>
85
+ <circle cx="39.91" cy="26.19" r="0.63" fill="white" fill-opacity="0.71"/>
86
+ <circle cx="35.17" cy="28.33" r="0.63" fill="white" fill-opacity="0.85"/>
87
+ <circle cx="29.43" cy="33.24" r="0.63" fill="white" fill-opacity="0.94"/>
88
+ <circle cx="32.27" cy="29.92" r="0.63" fill="white" fill-opacity="0.72"/>
89
+ <circle cx="28.63" cy="31.06" r="0.63" fill="white" fill-opacity="0.74"/>
90
+ <circle cx="17.66" cy="39.05" r="0.69" fill="white" fill-opacity="1.00"/>
91
+ <circle cx="37.21" cy="28.16" r="0.63" fill="white" fill-opacity="0.71"/>
92
+ <circle cx="20.79" cy="38.95" r="0.84" fill="white" fill-opacity="1.00"/>
93
+ <circle cx="28.02" cy="32.02" r="0.63" fill="white" fill-opacity="0.84"/>
94
+ <circle cx="22.38" cy="35.53" r="0.68" fill="white" fill-opacity="1.00"/>
95
+ <circle cx="14.34" cy="40.97" r="0.69" fill="white" fill-opacity="1.00"/>
96
+ <circle cx="25.71" cy="34.15" r="0.63" fill="white" fill-opacity="0.85"/>
97
+ <circle cx="30.89" cy="31.19" r="0.63" fill="white" fill-opacity="0.85"/>
98
+ <circle cx="40.27" cy="26.45" r="0.63" fill="white" fill-opacity="0.71"/>
99
+ <circle cx="41.94" cy="25.54" r="0.63" fill="white" fill-opacity="0.71"/>
100
+ <circle cx="37.25" cy="28.94" r="0.63" fill="white" fill-opacity="0.71"/>
101
+ <circle cx="27.54" cy="32.13" r="0.63" fill="white" fill-opacity="0.82"/>
102
+ <circle cx="14.66" cy="38.68" r="0.67" fill="white" fill-opacity="1.00"/>
103
+ <circle cx="17.63" cy="39.57" r="0.64" fill="white" fill-opacity="0.98"/>
104
+ <circle cx="44.71" cy="23.08" r="0.63" fill="white" fill-opacity="0.71"/>
105
+ <circle cx="17.29" cy="37.43" r="0.72" fill="white" fill-opacity="1.00"/>
106
+ <circle cx="25.88" cy="33.96" r="0.63" fill="white" fill-opacity="0.92"/>
107
+ <circle cx="30.29" cy="32.06" r="0.63" fill="white" fill-opacity="0.87"/>
108
+ <circle cx="23.19" cy="37.41" r="0.66" fill="white" fill-opacity="0.99"/>
109
+ <circle cx="40.34" cy="25.77" r="0.63" fill="white" fill-opacity="0.71"/>
110
+ <circle cx="16.14" cy="40.50" r="0.64" fill="white" fill-opacity="0.98"/>
111
+ <circle cx="43.25" cy="24.37" r="0.63" fill="white" fill-opacity="0.71"/>
112
+ <circle cx="27.84" cy="34.13" r="0.63" fill="white" fill-opacity="0.91"/>
113
+ <circle cx="43.31" cy="24.29" r="0.63" fill="white" fill-opacity="0.71"/>
114
+ <circle cx="35.96" cy="29.61" r="0.63" fill="white" fill-opacity="0.76"/>
115
+ <circle cx="20.27" cy="36.81" r="0.73" fill="white" fill-opacity="1.00"/>
116
+ <circle cx="13.11" cy="40.25" r="0.63" fill="white" fill-opacity="0.97"/>
117
+ <circle cx="32.71" cy="29.99" r="0.63" fill="white" fill-opacity="0.74"/>
118
+ <circle cx="38.25" cy="27.73" r="0.63" fill="white" fill-opacity="0.71"/>
119
+ <circle cx="13.91" cy="40.05" r="0.80" fill="white" fill-opacity="1.00"/>
120
+ <circle cx="29.91" cy="29.70" r="0.63" fill="white" fill-opacity="0.88"/>
121
+ <circle cx="30.54" cy="29.64" r="0.63" fill="white" fill-opacity="0.71"/>
122
+ <circle cx="24.14" cy="34.19" r="0.63" fill="white" fill-opacity="0.91"/>
123
+ <circle cx="26.81" cy="33.91" r="0.63" fill="white" fill-opacity="0.91"/>
124
+ <circle cx="22.66" cy="36.64" r="0.67" fill="white" fill-opacity="1.00"/>
125
+ <circle cx="40.54" cy="25.66" r="0.63" fill="white" fill-opacity="0.71"/>
126
+ <circle cx="31.36" cy="29.46" r="0.63" fill="white" fill-opacity="0.72"/>
127
+ <circle cx="27.04" cy="32.18" r="0.63" fill="white" fill-opacity="0.96"/>
128
+ <circle cx="30.77" cy="32.11" r="0.63" fill="white" fill-opacity="0.79"/>
129
+ <circle cx="23.54" cy="35.06" r="0.63" fill="white" fill-opacity="0.97"/>
130
+ <circle cx="28.04" cy="32.28" r="0.63" fill="white" fill-opacity="0.80"/>
131
+ <circle cx="27.38" cy="34.11" r="0.63" fill="white" fill-opacity="0.88"/>
132
+ <circle cx="30.89" cy="29.34" r="0.63" fill="white" fill-opacity="0.71"/>
133
+ <circle cx="22.82" cy="34.84" r="0.63" fill="white" fill-opacity="0.92"/>
134
+ <circle cx="27.32" cy="32.75" r="0.76" fill="white" fill-opacity="1.00"/>
135
+ <circle cx="34.96" cy="28.23" r="0.63" fill="white" fill-opacity="0.71"/>
136
+ <circle cx="30.09" cy="33.03" r="0.68" fill="white" fill-opacity="1.00"/>
137
+ <circle cx="25.02" cy="34.88" r="0.66" fill="white" fill-opacity="0.99"/>
138
+ <circle cx="34.06" cy="29.27" r="0.63" fill="white" fill-opacity="0.78"/>
139
+ <circle cx="47.14" cy="18.84" r="0.63" fill="white" fill-opacity="0.71"/>
140
+ <circle cx="26.38" cy="32.22" r="0.63" fill="white" fill-opacity="0.85"/>
141
+ <circle cx="31.04" cy="31.01" r="0.63" fill="white" fill-opacity="0.74"/>
142
+ <circle cx="12.56" cy="42.10" r="0.70" fill="white" fill-opacity="1.00"/>
143
+ <circle cx="33.58" cy="29.23" r="0.63" fill="white" fill-opacity="0.72"/>
144
+ <circle cx="35.14" cy="26.64" r="0.63" fill="white" fill-opacity="0.71"/>
145
+ <circle cx="29.79" cy="31.11" r="0.63" fill="white" fill-opacity="0.96"/>
146
+ <circle cx="27.54" cy="31.81" r="0.63" fill="white" fill-opacity="0.83"/>
147
+ <circle cx="46.54" cy="22.21" r="0.63" fill="white" fill-opacity="0.71"/>
148
+ <circle cx="28.27" cy="31.55" r="0.63" fill="white" fill-opacity="0.85"/>
149
+ <circle cx="12.63" cy="42.77" r="0.75" fill="white" fill-opacity="1.00"/>
150
+ <circle cx="21.85" cy="34.31" r="0.63" fill="white" fill-opacity="0.85"/>
151
+ <circle cx="26.71" cy="32.15" r="0.63" fill="white" fill-opacity="0.84"/>
152
+ <circle cx="15.27" cy="38.83" r="0.64" fill="white" fill-opacity="0.98"/>
153
+ <circle cx="13.19" cy="40.26" r="0.67" fill="white" fill-opacity="1.00"/>
154
+ <circle cx="33.25" cy="28.40" r="0.63" fill="white" fill-opacity="0.71"/>
155
+ <circle cx="30.23" cy="31.89" r="0.63" fill="white" fill-opacity="0.80"/>
156
+ <circle cx="30.23" cy="29.55" r="0.63" fill="white" fill-opacity="0.71"/>
157
+ <circle cx="25.92" cy="31.74" r="0.63" fill="white" fill-opacity="0.74"/>
158
+ <circle cx="46.79" cy="20.44" r="0.63" fill="white" fill-opacity="0.71"/>
159
+ <circle cx="37.23" cy="26.59" r="0.63" fill="white" fill-opacity="0.71"/>
160
+ <circle cx="32.34" cy="29.14" r="0.63" fill="white" fill-opacity="0.71"/>
161
+ <circle cx="27.00" cy="31.99" r="0.63" fill="white" fill-opacity="0.77"/>
162
+ <circle cx="42.34" cy="25.05" r="0.63" fill="white" fill-opacity="0.71"/>
163
+ <circle cx="19.65" cy="36.76" r="0.74" fill="white" fill-opacity="1.00"/>
164
+ <circle cx="34.29" cy="29.07" r="0.63" fill="white" fill-opacity="0.77"/>
165
+ <circle cx="37.89" cy="27.33" r="0.63" fill="white" fill-opacity="0.71"/>
166
+ <circle cx="27.69" cy="31.90" r="0.63" fill="white" fill-opacity="0.82"/>
167
+ <circle cx="29.36" cy="31.58" r="0.63" fill="white" fill-opacity="0.78"/>
168
+ <circle cx="29.84" cy="29.82" r="0.63" fill="white" fill-opacity="0.77"/>
169
+ <circle cx="28.07" cy="33.33" r="0.63" fill="white" fill-opacity="0.84"/>
170
+ <circle cx="29.07" cy="29.64" r="0.63" fill="white" fill-opacity="0.71"/>
171
+ <circle cx="30.21" cy="31.04" r="0.63" fill="white" fill-opacity="0.76"/>
172
+ <circle cx="37.44" cy="26.69" r="0.63" fill="white" fill-opacity="0.71"/>
173
+ <circle cx="27.41" cy="30.73" r="0.63" fill="white" fill-opacity="0.80"/>
174
+ <circle cx="23.36" cy="37.04" r="0.64" fill="white" fill-opacity="0.98"/>
175
+ <circle cx="36.89" cy="27.72" r="0.63" fill="white" fill-opacity="0.84"/>
176
+ <circle cx="27.36" cy="31.74" r="0.63" fill="white" fill-opacity="0.77"/>
177
+ <circle cx="29.39" cy="30.20" r="0.63" fill="white" fill-opacity="0.76"/>
178
+ <circle cx="26.14" cy="34.55" r="0.63" fill="white" fill-opacity="0.93"/>
179
+ <circle cx="23.06" cy="36.55" r="0.94" fill="white" fill-opacity="1.00"/>
180
+ <circle cx="11.59" cy="45.41" r="0.79" fill="white" fill-opacity="1.00"/>
181
+ <circle cx="27.50" cy="32.41" r="0.63" fill="white" fill-opacity="0.93"/>
182
+ <circle cx="46.38" cy="20.76" r="0.63" fill="white" fill-opacity="0.71"/>
183
+ <circle cx="37.35" cy="27.07" r="0.63" fill="white" fill-opacity="0.71"/>
184
+ <circle cx="20.64" cy="37.40" r="0.64" fill="white" fill-opacity="0.98"/>
185
+ <circle cx="16.13" cy="40.16" r="0.78" fill="white" fill-opacity="1.00"/>
186
+ <circle cx="27.00" cy="32.01" r="0.63" fill="white" fill-opacity="0.87"/>
187
+ <circle cx="29.41" cy="32.03" r="0.75" fill="white" fill-opacity="1.00"/>
188
+ <circle cx="32.98" cy="29.38" r="0.63" fill="white" fill-opacity="0.77"/>
189
+ <circle cx="28.29" cy="32.23" r="0.63" fill="white" fill-opacity="0.91"/>
190
+ <circle cx="28.61" cy="31.89" r="0.63" fill="white" fill-opacity="0.79"/>
191
+ <circle cx="27.18" cy="30.50" r="0.63" fill="white" fill-opacity="0.71"/>
192
+ <circle cx="24.75" cy="34.74" r="0.81" fill="white" fill-opacity="1.00"/>
193
+ <circle cx="26.69" cy="32.34" r="0.63" fill="white" fill-opacity="0.88"/>
194
+ <circle cx="35.08" cy="26.45" r="0.63" fill="white" fill-opacity="0.71"/>
195
+ <circle cx="29.07" cy="29.84" r="0.63" fill="white" fill-opacity="0.71"/>
196
+ <circle cx="41.52" cy="24.29" r="0.63" fill="white" fill-opacity="0.71"/>
197
+ <circle cx="21.50" cy="35.73" r="0.63" fill="white" fill-opacity="0.97"/>
198
+ <circle cx="28.04" cy="33.03" r="0.63" fill="white" fill-opacity="0.85"/>
199
+ <circle cx="19.66" cy="38.64" r="0.65" fill="white" fill-opacity="0.99"/>
200
+ <circle cx="26.65" cy="33.22" r="0.63" fill="white" fill-opacity="0.84"/>
201
+ <circle cx="29.11" cy="30.91" r="0.63" fill="white" fill-opacity="0.71"/>
202
+ <circle cx="36.09" cy="27.95" r="0.63" fill="white" fill-opacity="0.71"/>
203
+ <circle cx="18.94" cy="39.33" r="0.69" fill="white" fill-opacity="1.00"/>
204
+ <circle cx="31.16" cy="29.56" r="0.63" fill="white" fill-opacity="0.78"/>
205
+ <circle cx="45.27" cy="22.57" r="0.63" fill="white" fill-opacity="0.71"/>
206
+ <circle cx="26.25" cy="32.89" r="0.63" fill="white" fill-opacity="0.92"/>
207
+ <circle cx="30.46" cy="30.08" r="0.63" fill="white" fill-opacity="0.71"/>
208
+ <circle cx="19.69" cy="35.90" r="0.65" fill="white" fill-opacity="0.99"/>
209
+ <circle cx="43.25" cy="23.00" r="0.63" fill="white" fill-opacity="0.71"/>
210
+ <circle cx="40.75" cy="27.16" r="0.63" fill="white" fill-opacity="0.71"/>
211
+ <circle cx="21.54" cy="36.24" r="0.63" fill="white" fill-opacity="0.96"/>
212
+ <circle cx="35.13" cy="27.17" r="0.63" fill="white" fill-opacity="0.71"/>
213
+ <circle cx="16.73" cy="40.81" r="0.70" fill="white" fill-opacity="1.00"/>
214
+ <circle cx="32.59" cy="30.68" r="0.63" fill="white" fill-opacity="0.85"/>
215
+ <circle cx="32.09" cy="30.11" r="0.63" fill="white" fill-opacity="0.76"/>
216
+ <circle cx="45.48" cy="20.29" r="0.63" fill="white" fill-opacity="0.71"/>
217
+ <circle cx="28.54" cy="32.30" r="0.63" fill="white" fill-opacity="0.80"/>
218
+ <circle cx="23.59" cy="34.14" r="0.63" fill="white" fill-opacity="0.87"/>
219
+ <circle cx="21.46" cy="35.38" r="0.64" fill="white" fill-opacity="0.98"/>
220
+ <circle cx="23.79" cy="34.63" r="0.64" fill="white" fill-opacity="0.98"/>
221
+ <circle cx="12.16" cy="42.55" r="0.72" fill="white" fill-opacity="1.00"/>
222
+ <circle cx="41.41" cy="25.10" r="0.63" fill="white" fill-opacity="0.71"/>
223
+ <circle cx="38.88" cy="27.53" r="0.63" fill="white" fill-opacity="0.71"/>
224
+ <circle cx="26.02" cy="32.33" r="0.63" fill="white" fill-opacity="0.85"/>
225
+ <circle cx="16.48" cy="37.80" r="0.74" fill="white" fill-opacity="1.00"/>
226
+ <circle cx="20.79" cy="36.31" r="0.70" fill="white" fill-opacity="1.00"/>
227
+ <circle cx="32.73" cy="29.50" r="0.63" fill="white" fill-opacity="0.73"/>
228
+ <circle cx="30.06" cy="32.07" r="0.63" fill="white" fill-opacity="0.83"/>
229
+ <circle cx="25.75" cy="33.05" r="0.63" fill="white" fill-opacity="0.83"/>
230
+ <circle cx="29.17" cy="31.45" r="0.63" fill="white" fill-opacity="0.82"/>
231
+ <circle cx="27.50" cy="32.25" r="0.63" fill="white" fill-opacity="0.94"/>
232
+ <circle cx="29.86" cy="32.11" r="0.63" fill="white" fill-opacity="0.84"/>
233
+ <circle cx="40.13" cy="26.13" r="0.63" fill="white" fill-opacity="0.71"/>
234
+ <circle cx="33.38" cy="29.72" r="0.63" fill="white" fill-opacity="0.71"/>
235
+ <circle cx="33.36" cy="29.32" r="0.63" fill="white" fill-opacity="0.74"/>
236
+ <circle cx="34.91" cy="27.99" r="0.63" fill="white" fill-opacity="0.73"/>
237
+ <circle cx="25.32" cy="33.79" r="0.63" fill="white" fill-opacity="0.87"/>
238
+ <circle cx="44.09" cy="23.45" r="0.63" fill="white" fill-opacity="0.71"/>
239
+ <circle cx="24.52" cy="34.87" r="0.63" fill="white" fill-opacity="0.91"/>
240
+ <circle cx="26.16" cy="32.58" r="0.63" fill="white" fill-opacity="0.85"/>
241
+ <circle cx="24.79" cy="34.51" r="0.63" fill="white" fill-opacity="0.93"/>
242
+ <circle cx="27.18" cy="32.49" r="0.63" fill="white" fill-opacity="0.87"/>
243
+ <circle cx="29.46" cy="31.24" r="0.63" fill="white" fill-opacity="0.80"/>
244
+ <circle cx="29.56" cy="28.96" r="0.63" fill="white" fill-opacity="0.71"/>
245
+ <circle cx="28.50" cy="31.22" r="0.63" fill="white" fill-opacity="0.79"/>
246
+ <circle cx="29.56" cy="32.90" r="0.63" fill="white" fill-opacity="0.92"/>
247
+ <circle cx="31.44" cy="30.48" r="0.63" fill="white" fill-opacity="0.72"/>
248
+ <circle cx="29.23" cy="30.74" r="0.63" fill="white" fill-opacity="0.78"/>
249
+ <circle cx="29.11" cy="32.01" r="0.63" fill="white" fill-opacity="0.82"/>
250
+ <circle cx="40.40" cy="26.34" r="0.63" fill="white" fill-opacity="0.71"/>
251
+ <circle cx="34.50" cy="27.86" r="0.63" fill="white" fill-opacity="0.71"/>
252
+ <circle cx="29.41" cy="30.12" r="0.63" fill="white" fill-opacity="0.71"/>
253
+ <circle cx="25.61" cy="35.27" r="0.72" fill="white" fill-opacity="1.00"/>
254
+ <circle cx="27.14" cy="32.92" r="0.63" fill="white" fill-opacity="0.80"/>
255
+ <circle cx="27.50" cy="32.88" r="0.63" fill="white" fill-opacity="0.84"/>
256
+ <circle cx="31.66" cy="30.53" r="0.63" fill="white" fill-opacity="0.77"/>
257
+ <circle cx="27.71" cy="30.97" r="0.63" fill="white" fill-opacity="0.82"/>
258
+ <circle cx="31.34" cy="29.93" r="0.63" fill="white" fill-opacity="0.71"/>
259
+ <circle cx="27.69" cy="32.46" r="0.63" fill="white" fill-opacity="0.87"/>
260
+ <circle cx="27.38" cy="33.48" r="0.63" fill="white" fill-opacity="0.83"/>
261
+ <circle cx="11.21" cy="44.22" r="0.86" fill="white" fill-opacity="1.00"/>
262
+ <circle cx="24.54" cy="34.76" r="0.63" fill="white" fill-opacity="0.93"/>
263
+ <circle cx="46.59" cy="21.27" r="0.63" fill="white" fill-opacity="0.71"/>
264
+ <circle cx="28.14" cy="32.03" r="0.63" fill="white" fill-opacity="0.85"/>
265
+ <circle cx="44.29" cy="23.63" r="0.63" fill="white" fill-opacity="0.71"/>
266
+ <circle cx="27.66" cy="31.58" r="0.63" fill="white" fill-opacity="0.78"/>
267
+ <circle cx="38.64" cy="27.07" r="0.63" fill="white" fill-opacity="0.71"/>
268
+ <circle cx="31.98" cy="30.39" r="0.63" fill="white" fill-opacity="0.72"/>
269
+ <circle cx="25.94" cy="33.02" r="0.63" fill="white" fill-opacity="0.84"/>
270
+ <circle cx="42.06" cy="24.98" r="0.63" fill="white" fill-opacity="0.71"/>
271
+ <circle cx="24.50" cy="35.68" r="0.64" fill="white" fill-opacity="0.98"/>
272
+ <circle cx="25.61" cy="33.66" r="0.63" fill="white" fill-opacity="0.87"/>
273
+ <circle cx="24.23" cy="35.78" r="0.63" fill="white" fill-opacity="0.94"/>
274
+ <circle cx="26.61" cy="32.92" r="0.63" fill="white" fill-opacity="0.87"/>
275
+ <circle cx="35.27" cy="27.63" r="0.63" fill="white" fill-opacity="0.73"/>
276
+ <circle cx="14.11" cy="42.33" r="0.64" fill="white" fill-opacity="0.98"/>
277
+ <circle cx="42.84" cy="24.73" r="0.63" fill="white" fill-opacity="0.71"/>
278
+ <circle cx="45.06" cy="23.42" r="0.63" fill="white" fill-opacity="0.72"/>
279
+ <circle cx="28.52" cy="29.66" r="0.63" fill="white" fill-opacity="0.71"/>
280
+ <circle cx="12.77" cy="40.05" r="0.70" fill="white" fill-opacity="1.00"/>
281
+ <circle cx="26.02" cy="30.75" r="0.63" fill="white" fill-opacity="0.71"/>
282
+ <circle cx="31.23" cy="30.31" r="0.63" fill="white" fill-opacity="0.97"/>
283
+ <circle cx="17.16" cy="37.71" r="0.89" fill="white" fill-opacity="1.00"/>
284
+ <circle cx="42.41" cy="23.93" r="0.63" fill="white" fill-opacity="0.71"/>
285
+ <circle cx="32.09" cy="29.60" r="0.63" fill="white" fill-opacity="0.91"/>
286
+ <circle cx="37.10" cy="27.18" r="0.63" fill="white" fill-opacity="0.76"/>
287
+ <circle cx="28.83" cy="31.25" r="0.63" fill="white" fill-opacity="0.72"/>
288
+ <circle cx="30.09" cy="31.25" r="0.63" fill="white" fill-opacity="0.83"/>
289
+ <circle cx="24.66" cy="34.47" r="0.63" fill="white" fill-opacity="0.96"/>
290
+ <circle cx="23.93" cy="34.13" r="0.82" fill="white" fill-opacity="1.00"/>
291
+ <circle cx="24.82" cy="34.86" r="0.63" fill="white" fill-opacity="0.91"/>
292
+ <circle cx="22.25" cy="36.54" r="0.63" fill="white" fill-opacity="0.97"/>
293
+ <circle cx="28.88" cy="31.12" r="0.63" fill="white" fill-opacity="0.72"/>
294
+ <circle cx="25.14" cy="33.51" r="0.63" fill="white" fill-opacity="0.89"/>
295
+ <circle cx="24.96" cy="35.56" r="0.65" fill="white" fill-opacity="0.99"/>
296
+ <circle cx="27.44" cy="30.68" r="0.63" fill="white" fill-opacity="0.83"/>
297
+ <circle cx="29.56" cy="29.99" r="0.63" fill="white" fill-opacity="0.77"/>
298
+ <circle cx="24.73" cy="34.35" r="0.63" fill="white" fill-opacity="0.94"/>
299
+ <circle cx="26.50" cy="32.43" r="0.63" fill="white" fill-opacity="0.79"/>
300
+ <circle cx="20.15" cy="37.78" r="0.63" fill="white" fill-opacity="0.97"/>
301
+ <circle cx="39.40" cy="26.75" r="0.63" fill="white" fill-opacity="0.71"/>
302
+ <circle cx="44.69" cy="24.07" r="0.63" fill="white" fill-opacity="0.77"/>
303
+ <circle cx="34.94" cy="27.32" r="0.63" fill="white" fill-opacity="0.74"/>
304
+ <circle cx="27.25" cy="31.95" r="0.63" fill="white" fill-opacity="0.82"/>
305
+ <circle cx="30.61" cy="30.15" r="0.63" fill="white" fill-opacity="0.72"/>
306
+ <circle cx="28.02" cy="33.35" r="0.63" fill="white" fill-opacity="0.88"/>
307
+ <circle cx="27.46" cy="31.55" r="0.63" fill="white" fill-opacity="0.80"/>
308
+ <circle cx="27.34" cy="32.69" r="0.63" fill="white" fill-opacity="0.85"/>
309
+ <circle cx="15.25" cy="39.00" r="0.70" fill="white" fill-opacity="1.00"/>
310
+ <circle cx="27.27" cy="33.06" r="0.63" fill="white" fill-opacity="0.91"/>
311
+ <circle cx="22.75" cy="35.41" r="0.63" fill="white" fill-opacity="0.96"/>
312
+ <circle cx="38.11" cy="27.49" r="0.63" fill="white" fill-opacity="0.72"/>
313
+ <circle cx="26.66" cy="33.16" r="0.63" fill="white" fill-opacity="0.85"/>
314
+ <circle cx="35.75" cy="28.11" r="0.63" fill="white" fill-opacity="0.85"/>
315
+ <circle cx="27.13" cy="31.74" r="0.63" fill="white" fill-opacity="0.74"/>
316
+ <circle cx="15.54" cy="41.09" r="0.66" fill="white" fill-opacity="1.00"/>
317
+ <circle cx="47.84" cy="19.04" r="0.63" fill="white" fill-opacity="0.71"/>
318
+ <circle cx="33.44" cy="29.93" r="0.63" fill="white" fill-opacity="0.80"/>
319
+ <circle cx="35.46" cy="28.84" r="0.63" fill="white" fill-opacity="0.74"/>
320
+ <circle cx="29.09" cy="31.74" r="0.63" fill="white" fill-opacity="0.74"/>
321
+ <circle cx="27.23" cy="32.70" r="0.63" fill="white" fill-opacity="0.93"/>
322
+ <circle cx="30.09" cy="30.60" r="0.63" fill="white" fill-opacity="0.71"/>
323
+ <circle cx="29.52" cy="31.33" r="0.63" fill="white" fill-opacity="0.80"/>
324
+ <circle cx="22.16" cy="35.04" r="0.63" fill="white" fill-opacity="0.91"/>
325
+ <circle cx="31.79" cy="28.67" r="0.63" fill="white" fill-opacity="0.76"/>
326
+ <circle cx="35.31" cy="28.36" r="0.63" fill="white" fill-opacity="0.97"/>
327
+ <circle cx="23.34" cy="34.72" r="0.64" fill="white" fill-opacity="0.98"/>
328
+ <circle cx="28.23" cy="31.57" r="0.63" fill="white" fill-opacity="0.85"/>
329
+ <circle cx="29.00" cy="32.73" r="0.63" fill="white" fill-opacity="0.91"/>
330
+ <circle cx="26.25" cy="32.03" r="0.63" fill="white" fill-opacity="0.78"/>
331
+ <circle cx="34.48" cy="28.54" r="0.63" fill="white" fill-opacity="0.71"/>
332
+ <circle cx="36.60" cy="30.01" r="0.63" fill="white" fill-opacity="0.71"/>
333
+ <circle cx="28.14" cy="31.56" r="0.69" fill="white" fill-opacity="1.00"/>
334
+ <circle cx="34.96" cy="28.75" r="0.63" fill="white" fill-opacity="0.78"/>
335
+ <circle cx="26.63" cy="33.16" r="0.63" fill="white" fill-opacity="0.87"/>
336
+ <circle cx="26.44" cy="33.31" r="0.63" fill="white" fill-opacity="0.94"/>
337
+ <circle cx="44.15" cy="22.79" r="0.63" fill="white" fill-opacity="0.71"/>
338
+ <circle cx="26.75" cy="34.19" r="0.63" fill="white" fill-opacity="0.94"/>
339
+ <circle cx="25.02" cy="33.86" r="0.63" fill="white" fill-opacity="0.84"/>
340
+ <circle cx="16.23" cy="37.95" r="0.71" fill="white" fill-opacity="1.00"/>
341
+ <circle cx="27.44" cy="33.96" r="0.63" fill="white" fill-opacity="0.88"/>
342
+ <circle cx="31.09" cy="30.44" r="0.63" fill="white" fill-opacity="0.74"/>
343
+ <circle cx="26.66" cy="33.74" r="0.63" fill="white" fill-opacity="0.83"/>
344
+ <circle cx="24.96" cy="33.80" r="0.63" fill="white" fill-opacity="0.89"/>
345
+ <circle cx="27.71" cy="31.55" r="0.63" fill="white" fill-opacity="0.91"/>
346
+ <circle cx="30.89" cy="31.23" r="0.63" fill="white" fill-opacity="0.88"/>
347
+ <circle cx="32.61" cy="29.12" r="0.63" fill="white" fill-opacity="0.79"/>
348
+ <circle cx="34.89" cy="28.38" r="0.63" fill="white" fill-opacity="0.79"/>
349
+ <circle cx="14.14" cy="40.81" r="0.65" fill="white" fill-opacity="0.99"/>
350
+ <circle cx="32.59" cy="29.80" r="0.63" fill="white" fill-opacity="0.73"/>
351
+ <circle cx="17.59" cy="40.22" r="0.63" fill="white" fill-opacity="0.97"/>
352
+ <circle cx="28.57" cy="31.18" r="0.63" fill="white" fill-opacity="0.76"/>
353
+ <circle cx="24.88" cy="34.07" r="0.64" fill="white" fill-opacity="0.98"/>
354
+ <circle cx="15.21" cy="38.43" r="0.72" fill="white" fill-opacity="1.00"/>
355
+ <circle cx="39.50" cy="25.90" r="0.63" fill="white" fill-opacity="0.71"/>
356
+ <circle cx="32.00" cy="29.83" r="0.63" fill="white" fill-opacity="0.76"/>
357
+ <circle cx="13.69" cy="43.07" r="0.86" fill="white" fill-opacity="1.00"/>
358
+ <circle cx="28.19" cy="32.25" r="0.63" fill="white" fill-opacity="0.82"/>
359
+ <circle cx="15.73" cy="41.62" r="0.67" fill="white" fill-opacity="1.00"/>
360
+ <circle cx="29.27" cy="31.02" r="0.63" fill="white" fill-opacity="0.85"/>
361
+ <circle cx="27.94" cy="32.62" r="0.63" fill="white" fill-opacity="0.78"/>
362
+ <circle cx="14.96" cy="41.47" r="0.73" fill="white" fill-opacity="1.00"/>
363
+ <circle cx="28.13" cy="31.61" r="0.63" fill="white" fill-opacity="0.79"/>
364
+ <circle cx="25.86" cy="33.32" r="0.63" fill="white" fill-opacity="0.85"/>
365
+ <circle cx="29.31" cy="32.74" r="0.63" fill="white" fill-opacity="0.82"/>
366
+ <circle cx="31.16" cy="29.72" r="0.63" fill="white" fill-opacity="0.71"/>
367
+ <circle cx="33.41" cy="28.15" r="0.75" fill="white" fill-opacity="1.00"/>
368
+ <circle cx="16.84" cy="37.75" r="0.79" fill="white" fill-opacity="1.00"/>
369
+ <circle cx="24.73" cy="35.00" r="0.63" fill="white" fill-opacity="0.96"/>
370
+ <circle cx="30.59" cy="30.80" r="0.63" fill="white" fill-opacity="0.79"/>
371
+ <circle cx="26.14" cy="34.19" r="0.63" fill="white" fill-opacity="0.96"/>
372
+ <circle cx="26.86" cy="32.34" r="0.63" fill="white" fill-opacity="0.80"/>
373
+ <circle cx="29.29" cy="32.38" r="0.63" fill="white" fill-opacity="0.77"/>
374
+ <circle cx="24.66" cy="34.07" r="0.63" fill="white" fill-opacity="0.84"/>
375
+ <circle cx="24.88" cy="36.03" r="0.63" fill="white" fill-opacity="0.94"/>
376
+ <circle cx="45.69" cy="23.66" r="0.63" fill="white" fill-opacity="0.71"/>
377
+ <circle cx="25.77" cy="33.24" r="0.63" fill="white" fill-opacity="0.87"/>
378
+ <circle cx="28.79" cy="30.89" r="0.63" fill="white" fill-opacity="0.71"/>
379
+ <circle cx="34.31" cy="29.39" r="0.63" fill="white" fill-opacity="0.71"/>
380
+ <circle cx="19.09" cy="36.61" r="0.69" fill="white" fill-opacity="1.00"/>
381
+ <circle cx="30.89" cy="30.32" r="0.63" fill="white" fill-opacity="0.83"/>
382
+ <circle cx="26.71" cy="32.99" r="0.63" fill="white" fill-opacity="0.87"/>
383
+ <circle cx="31.29" cy="29.79" r="0.63" fill="white" fill-opacity="0.82"/>
384
+ <circle cx="23.36" cy="35.63" r="0.65" fill="white" fill-opacity="0.99"/>
385
+ <circle cx="24.91" cy="35.68" r="0.76" fill="white" fill-opacity="1.00"/>
386
+ <circle cx="29.23" cy="30.59" r="0.63" fill="white" fill-opacity="0.78"/>
387
+ <circle cx="29.64" cy="30.76" r="0.63" fill="white" fill-opacity="0.84"/>
388
+ <circle cx="21.52" cy="36.77" r="0.74" fill="white" fill-opacity="1.00"/>
389
+ <circle cx="33.58" cy="29.73" r="0.63" fill="white" fill-opacity="0.88"/>
390
+ <circle cx="37.21" cy="26.49" r="0.63" fill="white" fill-opacity="0.72"/>
391
+ <circle cx="32.11" cy="28.33" r="0.63" fill="white" fill-opacity="0.71"/>
392
+ <circle cx="46.48" cy="22.59" r="0.63" fill="white" fill-opacity="0.71"/>
393
+ <circle cx="42.31" cy="24.91" r="0.63" fill="white" fill-opacity="0.71"/>
394
+ <circle cx="29.02" cy="32.68" r="0.63" fill="white" fill-opacity="0.80"/>
395
+ <circle cx="43.00" cy="23.54" r="0.63" fill="white" fill-opacity="0.71"/>
396
+ <circle cx="15.57" cy="38.21" r="0.71" fill="white" fill-opacity="1.00"/>
397
+ <circle cx="40.44" cy="27.94" r="0.63" fill="white" fill-opacity="0.71"/>
398
+ <circle cx="26.86" cy="32.73" r="0.63" fill="white" fill-opacity="0.87"/>
399
+ <circle cx="14.29" cy="42.20" r="0.70" fill="white" fill-opacity="1.00"/>
400
+ <circle cx="36.59" cy="27.22" r="0.63" fill="white" fill-opacity="0.71"/>
401
+ <circle cx="34.08" cy="27.90" r="0.63" fill="white" fill-opacity="0.71"/>
402
+ <circle cx="26.48" cy="31.70" r="0.63" fill="white" fill-opacity="0.88"/>
403
+ <circle cx="27.16" cy="32.06" r="0.63" fill="white" fill-opacity="0.77"/>
404
+ <circle cx="25.88" cy="33.16" r="0.63" fill="white" fill-opacity="0.83"/>
405
+ <circle cx="28.04" cy="32.51" r="0.63" fill="white" fill-opacity="0.84"/>
406
+ <circle cx="31.21" cy="31.86" r="0.63" fill="white" fill-opacity="0.80"/>
407
+ <circle cx="23.36" cy="37.13" r="0.73" fill="white" fill-opacity="1.00"/>
408
+ <circle cx="24.13" cy="33.70" r="0.63" fill="white" fill-opacity="0.84"/>
409
+ <circle cx="43.81" cy="25.09" r="0.63" fill="white" fill-opacity="0.71"/>
410
+ <circle cx="26.02" cy="34.50" r="0.63" fill="white" fill-opacity="0.93"/>
411
+ <circle cx="30.06" cy="31.80" r="0.63" fill="white" fill-opacity="0.80"/>
412
+ <circle cx="27.79" cy="31.68" r="0.63" fill="white" fill-opacity="0.91"/>
413
+ <circle cx="30.77" cy="29.95" r="0.63" fill="white" fill-opacity="0.85"/>
414
+ <circle cx="48.60" cy="17.39" r="0.63" fill="white" fill-opacity="0.71"/>
415
+ <circle cx="32.44" cy="30.29" r="0.63" fill="white" fill-opacity="0.82"/>
416
+ <circle cx="40.34" cy="25.61" r="0.63" fill="white" fill-opacity="0.71"/>
417
+ <circle cx="28.25" cy="31.63" r="0.63" fill="white" fill-opacity="0.96"/>
418
+ <circle cx="26.66" cy="32.59" r="0.64" fill="white" fill-opacity="0.98"/>
419
+ <circle cx="40.36" cy="26.17" r="0.63" fill="white" fill-opacity="0.80"/>
420
+ <circle cx="30.59" cy="31.29" r="0.63" fill="white" fill-opacity="0.76"/>
421
+ <circle cx="36.31" cy="27.22" r="0.63" fill="white" fill-opacity="0.72"/>
422
+ <circle cx="28.25" cy="31.74" r="0.63" fill="white" fill-opacity="0.76"/>
423
+ <circle cx="35.13" cy="27.36" r="0.63" fill="white" fill-opacity="0.71"/>
424
+ <circle cx="18.73" cy="37.95" r="0.72" fill="white" fill-opacity="1.00"/>
425
+ <circle cx="31.92" cy="29.59" r="0.63" fill="white" fill-opacity="0.72"/>
426
+ <circle cx="25.98" cy="32.85" r="0.63" fill="white" fill-opacity="0.87"/>
427
+ <circle cx="28.16" cy="33.66" r="0.63" fill="white" fill-opacity="0.91"/>
428
+ <circle cx="29.23" cy="33.26" r="0.63" fill="white" fill-opacity="0.92"/>
429
+ <circle cx="18.84" cy="36.25" r="0.63" fill="white" fill-opacity="0.97"/>
430
+ <circle cx="24.57" cy="35.23" r="0.63" fill="white" fill-opacity="0.92"/>
431
+ <circle cx="39.73" cy="26.07" r="0.63" fill="white" fill-opacity="0.71"/>
432
+ <circle cx="45.15" cy="23.25" r="0.63" fill="white" fill-opacity="0.71"/>
433
+ <circle cx="28.11" cy="30.55" r="0.63" fill="white" fill-opacity="0.80"/>
434
+ <circle cx="56.59" cy="10.22" r="0.63" fill="white" fill-opacity="0.71"/>
435
+ <circle cx="53.66" cy="14.06" r="0.63" fill="white" fill-opacity="0.71"/>
436
+ <circle cx="48.25" cy="18.19" r="0.63" fill="white" fill-opacity="0.71"/>
437
+ <circle cx="50.75" cy="15.21" r="0.63" fill="white" fill-opacity="0.71"/>
438
+ <circle cx="47.00" cy="21.37" r="0.63" fill="white" fill-opacity="0.71"/>
439
+ <circle cx="45.54" cy="19.99" r="0.63" fill="white" fill-opacity="0.71"/>
440
+ <circle cx="46.79" cy="20.88" r="0.63" fill="white" fill-opacity="0.71"/>
441
+ <circle cx="50.34" cy="14.71" r="0.63" fill="white" fill-opacity="0.71"/>
442
+ <circle cx="57.00" cy="9.04" r="0.63" fill="white" fill-opacity="0.71"/>
443
+ <circle cx="47.84" cy="18.48" r="0.63" fill="white" fill-opacity="0.71"/>
444
+ <circle cx="43.66" cy="24.10" r="0.63" fill="white" fill-opacity="0.71"/>
445
+ <circle cx="55.96" cy="10.43" r="0.63" fill="white" fill-opacity="0.71"/>
446
+ <circle cx="48.66" cy="16.81" r="0.63" fill="white" fill-opacity="0.71"/>
447
+ <circle cx="49.50" cy="16.48" r="0.63" fill="white" fill-opacity="0.71"/>
448
+ <circle cx="47.84" cy="19.34" r="0.63" fill="white" fill-opacity="0.71"/>
449
+ <circle cx="47.41" cy="18.14" r="0.63" fill="white" fill-opacity="0.71"/>
450
+ <circle cx="48.88" cy="16.57" r="0.63" fill="white" fill-opacity="0.71"/>
451
+ <circle cx="53.46" cy="11.74" r="0.63" fill="white" fill-opacity="0.71"/>
452
+ <circle cx="50.54" cy="18.48" r="0.63" fill="white" fill-opacity="0.71"/>
453
+ </svg>
package/build-info.json CHANGED
@@ -1,10 +1,10 @@
1
1
  {
2
- "version": "0.4.2",
2
+ "version": "0.7.9",
3
3
  "node": ">=22",
4
4
  "host": "codex",
5
5
  "devtools": {
6
6
  "name": "@dev-mainsequence/devtools",
7
- "version": "0.3.2",
8
- "integrity": "sha512-NIIMG67fgezXdc+6yZrlcLZDEkI+5yYcOvmwE37b1EuRtj2GgmgKy/lRttj7YSG/YKOfGcia/ilmwNQMD0NL1Q=="
7
+ "version": "0.3.12",
8
+ "integrity": "sha512-tV4k57P5iaH5dQuuqN1uvxaneZ9G/Hok0fmBRCXZlJSLMUOcDLRFjfRN/R0q8gtuMUlf1jm3Kg0hxjfMAf16Lg=="
9
9
  }
10
10
  }