nmarshall commited on
Commit
6a55e9b
·
1 Parent(s): ff6283b

qvm: recover exit class guard

Browse files
docs/FINDINGS.md CHANGED
@@ -1475,3 +1475,6 @@ RE-813–822 replaces the scoreboard decimal assumption with actual37914 executi
1475
 
1476
 
1477
  **RE-825:** Rust now reproduces original37498 fractional truncation and integer-only width padding, including negative-zero and ignored flag behavior. [Evidence](research/RUST_FORMAT_FLOAT.md).
 
 
 
 
1475
 
1476
 
1477
  **RE-825:** Rust now reproduces original37498 fractional truncation and integer-only width padding, including negative-zero and ignored flag behavior. [Evidence](research/RUST_FORMAT_FLOAT.md).
1478
+
1479
+
1480
+ **RE-826:** Mode11 exits on the first state2/team0 client whose signed class exceeds20, using the configured max-client count rather than the collected client count. [Evidence](research/QVM_EXIT_CLASS.md).
docs/PROVISIONAL_TODO.md CHANGED
@@ -1488,3 +1488,6 @@ RE-824: 37498 pads only the signed integer portion, ignores formatting flags and
1488
 
1489
 
1490
  RE-825: Rust now reproduces original37498 fractional truncation and integer-only width padding, including negative-zero and ignored flag behavior. Full runtime completion remains open. [Evidence](research/RUST_FORMAT_FLOAT.md).
 
 
 
 
1488
 
1489
 
1490
  RE-825: Rust now reproduces original37498 fractional truncation and integer-only width padding, including negative-zero and ignored flag behavior. Full runtime completion remains open. [Evidence](research/RUST_FORMAT_FLOAT.md).
1491
+
1492
+
1493
+ RE-826: Mode11 exits on the first state2/team0 client whose signed class exceeds20, using the configured max-client count rather than the collected client count. Full runtime completion remains open. [Evidence](research/QVM_EXIT_CLASS.md).
docs/RESEARCH_LEDGER.md CHANGED
@@ -1795,3 +1795,8 @@ After exactly ten task commits from `7c1c4082`, the single `cargo xtask test-ful
1795
  ## 2026-10-27 — RE-825 Rust f32 formatter truncation and original float dispatch
1796
 
1797
  Rust now reproduces original37498 fractional truncation and integer-only width padding, including negative-zero and ignored flag behavior. Focused `cargo xtask test-group rust-format-float` passes (19 Python tests); selected reports regenerate twice deterministically, with storage, documentation links and whitespace guards. Full suite deferred to task ten. Original assets unchanged; source fixtures do not establish complete native/runtime parity.
 
 
 
 
 
 
1795
  ## 2026-10-27 — RE-825 Rust f32 formatter truncation and original float dispatch
1796
 
1797
  Rust now reproduces original37498 fractional truncation and integer-only width padding, including negative-zero and ignored flag behavior. Focused `cargo xtask test-group rust-format-float` passes (19 Python tests); selected reports regenerate twice deterministically, with storage, documentation links and whitespace guards. Full suite deferred to task ten. Original assets unchanged; source fixtures do not establish complete native/runtime parity.
1798
+
1799
+
1800
+ ## 2026-10-27 — RE-826 Original exit-rule mode11 class guard and scan bound
1801
+
1802
+ Mode11 exits on the first state2/team0 client whose signed class exceeds20, using the configured max-client count rather than the collected client count. Focused `cargo xtask test-group exit-class` passes (5 Python tests); selected reports regenerate twice deterministically, with storage, documentation links and whitespace guards. Full suite deferred to task ten. Original assets unchanged; source fixtures do not establish complete native/runtime parity.
docs/REVERSE_ENGINEERING_TODO.md CHANGED
@@ -1525,3 +1525,6 @@ Purpose: turn the supplied installation into an evidence-backed specification of
1525
 
1526
 
1527
  - [x] RE-825 Rust f32 formatter truncation and original float dispatch ([evidence](research/RUST_FORMAT_FLOAT.md)).
 
 
 
 
1525
 
1526
 
1527
  - [x] RE-825 Rust f32 formatter truncation and original float dispatch ([evidence](research/RUST_FORMAT_FLOAT.md)).
1528
+
1529
+
1530
+ - [x] RE-826 Original exit-rule mode11 class guard and scan bound ([evidence](research/QVM_EXIT_CLASS.md)).
docs/research/QVM_EXIT_CLASS.md ADDED
@@ -0,0 +1,7 @@
 
 
 
 
 
 
 
 
1
+ # Original exit-rule mode11 class guard and scan bound
2
+
3
+ RE-826. Reproduce with `python3 scripts/analyze_qvm_exit_class.py`; focused validation: `cargo xtask test-group exit-class`. [Machine report](qvm-exit-class.json).
4
+
5
+ 45 source guard fixtures cover state/team/class boundaries, empty/non-mode11 paths, multiple offenders,64-slot scans and configured count truncation. Independent tests verify exact captured format/send/reason arguments and first-offender ordering. The stage deliberately stops before the remaining exit policies.
6
+
7
+ Original executable/native runtime and complete Linux/macOS Rust/Bevy/Solari acceptance remain unverified.
docs/research/README.md CHANGED
@@ -1065,3 +1065,6 @@ The extension collector adds five focused tests for native tail calls, command-r
1065
 
1066
 
1067
  [RE-825: Rust f32 formatter truncation and original float dispatch](RUST_FORMAT_FLOAT.md).
 
 
 
 
1065
 
1066
 
1067
  [RE-825: Rust f32 formatter truncation and original float dispatch](RUST_FORMAT_FLOAT.md).
1068
+
1069
+
1070
+ [RE-826: Original exit-rule mode11 class guard and scan bound](QVM_EXIT_CLASS.md).
docs/research/qvm-exit-class.json ADDED
@@ -0,0 +1,1819 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "limits": "7805 mode11 class guard only, stopping before7945 or at8416. First scanned state2/team0 client with signed class>20 requests7367,70458 and broadcast send. Configured max-client count bounds scan. All child effects/formatting captured.",
3
+ "probes": [
4
+ {
5
+ "changes": [],
6
+ "events": [],
7
+ "execution": {
8
+ "stop": 7945,
9
+ "trace_length": 43,
10
+ "trace_sha256": "39c96a703eec245718dccfa339f7d50276aa383e2109389cde6b73093f1f5d0e"
11
+ },
12
+ "input": {
13
+ "clients": [
14
+ {
15
+ "3096": 0,
16
+ "468": 0,
17
+ "696": -1
18
+ }
19
+ ],
20
+ "max_clients": 1,
21
+ "mode": 11
22
+ },
23
+ "requests": []
24
+ },
25
+ {
26
+ "changes": [],
27
+ "events": [],
28
+ "execution": {
29
+ "stop": 7945,
30
+ "trace_length": 43,
31
+ "trace_sha256": "39c96a703eec245718dccfa339f7d50276aa383e2109389cde6b73093f1f5d0e"
32
+ },
33
+ "input": {
34
+ "clients": [
35
+ {
36
+ "3096": 0,
37
+ "468": 0,
38
+ "696": 20
39
+ }
40
+ ],
41
+ "max_clients": 1,
42
+ "mode": 11
43
+ },
44
+ "requests": []
45
+ },
46
+ {
47
+ "changes": [],
48
+ "events": [],
49
+ "execution": {
50
+ "stop": 7945,
51
+ "trace_length": 43,
52
+ "trace_sha256": "39c96a703eec245718dccfa339f7d50276aa383e2109389cde6b73093f1f5d0e"
53
+ },
54
+ "input": {
55
+ "clients": [
56
+ {
57
+ "3096": 0,
58
+ "468": 0,
59
+ "696": 21
60
+ }
61
+ ],
62
+ "max_clients": 1,
63
+ "mode": 11
64
+ },
65
+ "requests": []
66
+ },
67
+ {
68
+ "changes": [],
69
+ "events": [],
70
+ "execution": {
71
+ "stop": 7945,
72
+ "trace_length": 43,
73
+ "trace_sha256": "39c96a703eec245718dccfa339f7d50276aa383e2109389cde6b73093f1f5d0e"
74
+ },
75
+ "input": {
76
+ "clients": [
77
+ {
78
+ "3096": 0,
79
+ "468": 0,
80
+ "696": 2147483647
81
+ }
82
+ ],
83
+ "max_clients": 1,
84
+ "mode": 11
85
+ },
86
+ "requests": []
87
+ },
88
+ {
89
+ "changes": [],
90
+ "events": [],
91
+ "execution": {
92
+ "stop": 7945,
93
+ "trace_length": 43,
94
+ "trace_sha256": "39c96a703eec245718dccfa339f7d50276aa383e2109389cde6b73093f1f5d0e"
95
+ },
96
+ "input": {
97
+ "clients": [
98
+ {
99
+ "3096": 1,
100
+ "468": 0,
101
+ "696": -1
102
+ }
103
+ ],
104
+ "max_clients": 1,
105
+ "mode": 11
106
+ },
107
+ "requests": []
108
+ },
109
+ {
110
+ "changes": [],
111
+ "events": [],
112
+ "execution": {
113
+ "stop": 7945,
114
+ "trace_length": 43,
115
+ "trace_sha256": "39c96a703eec245718dccfa339f7d50276aa383e2109389cde6b73093f1f5d0e"
116
+ },
117
+ "input": {
118
+ "clients": [
119
+ {
120
+ "3096": 1,
121
+ "468": 0,
122
+ "696": 20
123
+ }
124
+ ],
125
+ "max_clients": 1,
126
+ "mode": 11
127
+ },
128
+ "requests": []
129
+ },
130
+ {
131
+ "changes": [],
132
+ "events": [],
133
+ "execution": {
134
+ "stop": 7945,
135
+ "trace_length": 43,
136
+ "trace_sha256": "39c96a703eec245718dccfa339f7d50276aa383e2109389cde6b73093f1f5d0e"
137
+ },
138
+ "input": {
139
+ "clients": [
140
+ {
141
+ "3096": 1,
142
+ "468": 0,
143
+ "696": 21
144
+ }
145
+ ],
146
+ "max_clients": 1,
147
+ "mode": 11
148
+ },
149
+ "requests": []
150
+ },
151
+ {
152
+ "changes": [],
153
+ "events": [],
154
+ "execution": {
155
+ "stop": 7945,
156
+ "trace_length": 43,
157
+ "trace_sha256": "39c96a703eec245718dccfa339f7d50276aa383e2109389cde6b73093f1f5d0e"
158
+ },
159
+ "input": {
160
+ "clients": [
161
+ {
162
+ "3096": 1,
163
+ "468": 0,
164
+ "696": 2147483647
165
+ }
166
+ ],
167
+ "max_clients": 1,
168
+ "mode": 11
169
+ },
170
+ "requests": []
171
+ },
172
+ {
173
+ "changes": [],
174
+ "events": [],
175
+ "execution": {
176
+ "stop": 7945,
177
+ "trace_length": 43,
178
+ "trace_sha256": "39c96a703eec245718dccfa339f7d50276aa383e2109389cde6b73093f1f5d0e"
179
+ },
180
+ "input": {
181
+ "clients": [
182
+ {
183
+ "3096": 3,
184
+ "468": 0,
185
+ "696": -1
186
+ }
187
+ ],
188
+ "max_clients": 1,
189
+ "mode": 11
190
+ },
191
+ "requests": []
192
+ },
193
+ {
194
+ "changes": [],
195
+ "events": [],
196
+ "execution": {
197
+ "stop": 7945,
198
+ "trace_length": 43,
199
+ "trace_sha256": "39c96a703eec245718dccfa339f7d50276aa383e2109389cde6b73093f1f5d0e"
200
+ },
201
+ "input": {
202
+ "clients": [
203
+ {
204
+ "3096": 3,
205
+ "468": 0,
206
+ "696": 20
207
+ }
208
+ ],
209
+ "max_clients": 1,
210
+ "mode": 11
211
+ },
212
+ "requests": []
213
+ },
214
+ {
215
+ "changes": [],
216
+ "events": [],
217
+ "execution": {
218
+ "stop": 7945,
219
+ "trace_length": 43,
220
+ "trace_sha256": "39c96a703eec245718dccfa339f7d50276aa383e2109389cde6b73093f1f5d0e"
221
+ },
222
+ "input": {
223
+ "clients": [
224
+ {
225
+ "3096": 3,
226
+ "468": 0,
227
+ "696": 21
228
+ }
229
+ ],
230
+ "max_clients": 1,
231
+ "mode": 11
232
+ },
233
+ "requests": []
234
+ },
235
+ {
236
+ "changes": [],
237
+ "events": [],
238
+ "execution": {
239
+ "stop": 7945,
240
+ "trace_length": 43,
241
+ "trace_sha256": "39c96a703eec245718dccfa339f7d50276aa383e2109389cde6b73093f1f5d0e"
242
+ },
243
+ "input": {
244
+ "clients": [
245
+ {
246
+ "3096": 3,
247
+ "468": 0,
248
+ "696": 2147483647
249
+ }
250
+ ],
251
+ "max_clients": 1,
252
+ "mode": 11
253
+ },
254
+ "requests": []
255
+ },
256
+ {
257
+ "changes": [],
258
+ "events": [],
259
+ "execution": {
260
+ "stop": 7945,
261
+ "trace_length": 43,
262
+ "trace_sha256": "39c96a703eec245718dccfa339f7d50276aa383e2109389cde6b73093f1f5d0e"
263
+ },
264
+ "input": {
265
+ "clients": [
266
+ {
267
+ "3096": 0,
268
+ "468": 1,
269
+ "696": -1
270
+ }
271
+ ],
272
+ "max_clients": 1,
273
+ "mode": 11
274
+ },
275
+ "requests": []
276
+ },
277
+ {
278
+ "changes": [],
279
+ "events": [],
280
+ "execution": {
281
+ "stop": 7945,
282
+ "trace_length": 43,
283
+ "trace_sha256": "39c96a703eec245718dccfa339f7d50276aa383e2109389cde6b73093f1f5d0e"
284
+ },
285
+ "input": {
286
+ "clients": [
287
+ {
288
+ "3096": 0,
289
+ "468": 1,
290
+ "696": 20
291
+ }
292
+ ],
293
+ "max_clients": 1,
294
+ "mode": 11
295
+ },
296
+ "requests": []
297
+ },
298
+ {
299
+ "changes": [],
300
+ "events": [],
301
+ "execution": {
302
+ "stop": 7945,
303
+ "trace_length": 43,
304
+ "trace_sha256": "39c96a703eec245718dccfa339f7d50276aa383e2109389cde6b73093f1f5d0e"
305
+ },
306
+ "input": {
307
+ "clients": [
308
+ {
309
+ "3096": 0,
310
+ "468": 1,
311
+ "696": 21
312
+ }
313
+ ],
314
+ "max_clients": 1,
315
+ "mode": 11
316
+ },
317
+ "requests": []
318
+ },
319
+ {
320
+ "changes": [],
321
+ "events": [],
322
+ "execution": {
323
+ "stop": 7945,
324
+ "trace_length": 43,
325
+ "trace_sha256": "39c96a703eec245718dccfa339f7d50276aa383e2109389cde6b73093f1f5d0e"
326
+ },
327
+ "input": {
328
+ "clients": [
329
+ {
330
+ "3096": 0,
331
+ "468": 1,
332
+ "696": 2147483647
333
+ }
334
+ ],
335
+ "max_clients": 1,
336
+ "mode": 11
337
+ },
338
+ "requests": []
339
+ },
340
+ {
341
+ "changes": [],
342
+ "events": [],
343
+ "execution": {
344
+ "stop": 7945,
345
+ "trace_length": 43,
346
+ "trace_sha256": "39c96a703eec245718dccfa339f7d50276aa383e2109389cde6b73093f1f5d0e"
347
+ },
348
+ "input": {
349
+ "clients": [
350
+ {
351
+ "3096": 1,
352
+ "468": 1,
353
+ "696": -1
354
+ }
355
+ ],
356
+ "max_clients": 1,
357
+ "mode": 11
358
+ },
359
+ "requests": []
360
+ },
361
+ {
362
+ "changes": [],
363
+ "events": [],
364
+ "execution": {
365
+ "stop": 7945,
366
+ "trace_length": 43,
367
+ "trace_sha256": "39c96a703eec245718dccfa339f7d50276aa383e2109389cde6b73093f1f5d0e"
368
+ },
369
+ "input": {
370
+ "clients": [
371
+ {
372
+ "3096": 1,
373
+ "468": 1,
374
+ "696": 20
375
+ }
376
+ ],
377
+ "max_clients": 1,
378
+ "mode": 11
379
+ },
380
+ "requests": []
381
+ },
382
+ {
383
+ "changes": [],
384
+ "events": [],
385
+ "execution": {
386
+ "stop": 7945,
387
+ "trace_length": 43,
388
+ "trace_sha256": "39c96a703eec245718dccfa339f7d50276aa383e2109389cde6b73093f1f5d0e"
389
+ },
390
+ "input": {
391
+ "clients": [
392
+ {
393
+ "3096": 1,
394
+ "468": 1,
395
+ "696": 21
396
+ }
397
+ ],
398
+ "max_clients": 1,
399
+ "mode": 11
400
+ },
401
+ "requests": []
402
+ },
403
+ {
404
+ "changes": [],
405
+ "events": [],
406
+ "execution": {
407
+ "stop": 7945,
408
+ "trace_length": 43,
409
+ "trace_sha256": "39c96a703eec245718dccfa339f7d50276aa383e2109389cde6b73093f1f5d0e"
410
+ },
411
+ "input": {
412
+ "clients": [
413
+ {
414
+ "3096": 1,
415
+ "468": 1,
416
+ "696": 2147483647
417
+ }
418
+ ],
419
+ "max_clients": 1,
420
+ "mode": 11
421
+ },
422
+ "requests": []
423
+ },
424
+ {
425
+ "changes": [],
426
+ "events": [],
427
+ "execution": {
428
+ "stop": 7945,
429
+ "trace_length": 43,
430
+ "trace_sha256": "39c96a703eec245718dccfa339f7d50276aa383e2109389cde6b73093f1f5d0e"
431
+ },
432
+ "input": {
433
+ "clients": [
434
+ {
435
+ "3096": 3,
436
+ "468": 1,
437
+ "696": -1
438
+ }
439
+ ],
440
+ "max_clients": 1,
441
+ "mode": 11
442
+ },
443
+ "requests": []
444
+ },
445
+ {
446
+ "changes": [],
447
+ "events": [],
448
+ "execution": {
449
+ "stop": 7945,
450
+ "trace_length": 43,
451
+ "trace_sha256": "39c96a703eec245718dccfa339f7d50276aa383e2109389cde6b73093f1f5d0e"
452
+ },
453
+ "input": {
454
+ "clients": [
455
+ {
456
+ "3096": 3,
457
+ "468": 1,
458
+ "696": 20
459
+ }
460
+ ],
461
+ "max_clients": 1,
462
+ "mode": 11
463
+ },
464
+ "requests": []
465
+ },
466
+ {
467
+ "changes": [],
468
+ "events": [],
469
+ "execution": {
470
+ "stop": 7945,
471
+ "trace_length": 43,
472
+ "trace_sha256": "39c96a703eec245718dccfa339f7d50276aa383e2109389cde6b73093f1f5d0e"
473
+ },
474
+ "input": {
475
+ "clients": [
476
+ {
477
+ "3096": 3,
478
+ "468": 1,
479
+ "696": 21
480
+ }
481
+ ],
482
+ "max_clients": 1,
483
+ "mode": 11
484
+ },
485
+ "requests": []
486
+ },
487
+ {
488
+ "changes": [],
489
+ "events": [],
490
+ "execution": {
491
+ "stop": 7945,
492
+ "trace_length": 43,
493
+ "trace_sha256": "39c96a703eec245718dccfa339f7d50276aa383e2109389cde6b73093f1f5d0e"
494
+ },
495
+ "input": {
496
+ "clients": [
497
+ {
498
+ "3096": 3,
499
+ "468": 1,
500
+ "696": 2147483647
501
+ }
502
+ ],
503
+ "max_clients": 1,
504
+ "mode": 11
505
+ },
506
+ "requests": []
507
+ },
508
+ {
509
+ "changes": [],
510
+ "events": [],
511
+ "execution": {
512
+ "stop": 7945,
513
+ "trace_length": 55,
514
+ "trace_sha256": "fc6d2079d23fcfd307c67195fe0a342e44b32387e9906f1ee1439fbd09ad2e16"
515
+ },
516
+ "input": {
517
+ "clients": [
518
+ {
519
+ "3096": 0,
520
+ "468": 2,
521
+ "696": -1
522
+ }
523
+ ],
524
+ "max_clients": 1,
525
+ "mode": 11
526
+ },
527
+ "requests": []
528
+ },
529
+ {
530
+ "changes": [],
531
+ "events": [],
532
+ "execution": {
533
+ "stop": 7945,
534
+ "trace_length": 55,
535
+ "trace_sha256": "fc6d2079d23fcfd307c67195fe0a342e44b32387e9906f1ee1439fbd09ad2e16"
536
+ },
537
+ "input": {
538
+ "clients": [
539
+ {
540
+ "3096": 0,
541
+ "468": 2,
542
+ "696": 20
543
+ }
544
+ ],
545
+ "max_clients": 1,
546
+ "mode": 11
547
+ },
548
+ "requests": []
549
+ },
550
+ {
551
+ "changes": [],
552
+ "events": [],
553
+ "execution": {
554
+ "stop": 8416,
555
+ "trace_length": 78,
556
+ "trace_sha256": "04c1497156adbc8c3c6b69b9673e9a62f61a1d1b311f5b29bdc9c6a67264670a"
557
+ },
558
+ "input": {
559
+ "clients": [
560
+ {
561
+ "3096": 0,
562
+ "468": 2,
563
+ "696": 21
564
+ }
565
+ ],
566
+ "max_clients": 1,
567
+ "mode": 11
568
+ },
569
+ "requests": [
570
+ {
571
+ "arguments": {
572
+ "8": 34641
573
+ },
574
+ "target": 7367
575
+ },
576
+ {
577
+ "arguments": {
578
+ "8": 34618,
579
+ "12": 16,
580
+ "16": 0,
581
+ "20": 2067792376
582
+ },
583
+ "target": 70458
584
+ },
585
+ {
586
+ "arguments": {
587
+ "8": -1,
588
+ "12": 2073042944
589
+ },
590
+ "target": -18
591
+ }
592
+ ]
593
+ },
594
+ {
595
+ "changes": [],
596
+ "events": [],
597
+ "execution": {
598
+ "stop": 8416,
599
+ "trace_length": 78,
600
+ "trace_sha256": "04c1497156adbc8c3c6b69b9673e9a62f61a1d1b311f5b29bdc9c6a67264670a"
601
+ },
602
+ "input": {
603
+ "clients": [
604
+ {
605
+ "3096": 0,
606
+ "468": 2,
607
+ "696": 2147483647
608
+ }
609
+ ],
610
+ "max_clients": 1,
611
+ "mode": 11
612
+ },
613
+ "requests": [
614
+ {
615
+ "arguments": {
616
+ "8": 34641
617
+ },
618
+ "target": 7367
619
+ },
620
+ {
621
+ "arguments": {
622
+ "8": 34618,
623
+ "12": 16,
624
+ "16": 0,
625
+ "20": 2067792376
626
+ },
627
+ "target": 70458
628
+ },
629
+ {
630
+ "arguments": {
631
+ "8": -1,
632
+ "12": 2073042944
633
+ },
634
+ "target": -18
635
+ }
636
+ ]
637
+ },
638
+ {
639
+ "changes": [],
640
+ "events": [],
641
+ "execution": {
642
+ "stop": 7945,
643
+ "trace_length": 50,
644
+ "trace_sha256": "f7ea99078b65c67f25c5dcf383c7e21f5602144b5004a3f07cdf688cfe099f17"
645
+ },
646
+ "input": {
647
+ "clients": [
648
+ {
649
+ "3096": 1,
650
+ "468": 2,
651
+ "696": -1
652
+ }
653
+ ],
654
+ "max_clients": 1,
655
+ "mode": 11
656
+ },
657
+ "requests": []
658
+ },
659
+ {
660
+ "changes": [],
661
+ "events": [],
662
+ "execution": {
663
+ "stop": 7945,
664
+ "trace_length": 50,
665
+ "trace_sha256": "f7ea99078b65c67f25c5dcf383c7e21f5602144b5004a3f07cdf688cfe099f17"
666
+ },
667
+ "input": {
668
+ "clients": [
669
+ {
670
+ "3096": 1,
671
+ "468": 2,
672
+ "696": 20
673
+ }
674
+ ],
675
+ "max_clients": 1,
676
+ "mode": 11
677
+ },
678
+ "requests": []
679
+ },
680
+ {
681
+ "changes": [],
682
+ "events": [],
683
+ "execution": {
684
+ "stop": 7945,
685
+ "trace_length": 50,
686
+ "trace_sha256": "f7ea99078b65c67f25c5dcf383c7e21f5602144b5004a3f07cdf688cfe099f17"
687
+ },
688
+ "input": {
689
+ "clients": [
690
+ {
691
+ "3096": 1,
692
+ "468": 2,
693
+ "696": 21
694
+ }
695
+ ],
696
+ "max_clients": 1,
697
+ "mode": 11
698
+ },
699
+ "requests": []
700
+ },
701
+ {
702
+ "changes": [],
703
+ "events": [],
704
+ "execution": {
705
+ "stop": 7945,
706
+ "trace_length": 50,
707
+ "trace_sha256": "f7ea99078b65c67f25c5dcf383c7e21f5602144b5004a3f07cdf688cfe099f17"
708
+ },
709
+ "input": {
710
+ "clients": [
711
+ {
712
+ "3096": 1,
713
+ "468": 2,
714
+ "696": 2147483647
715
+ }
716
+ ],
717
+ "max_clients": 1,
718
+ "mode": 11
719
+ },
720
+ "requests": []
721
+ },
722
+ {
723
+ "changes": [],
724
+ "events": [],
725
+ "execution": {
726
+ "stop": 7945,
727
+ "trace_length": 50,
728
+ "trace_sha256": "f7ea99078b65c67f25c5dcf383c7e21f5602144b5004a3f07cdf688cfe099f17"
729
+ },
730
+ "input": {
731
+ "clients": [
732
+ {
733
+ "3096": 3,
734
+ "468": 2,
735
+ "696": -1
736
+ }
737
+ ],
738
+ "max_clients": 1,
739
+ "mode": 11
740
+ },
741
+ "requests": []
742
+ },
743
+ {
744
+ "changes": [],
745
+ "events": [],
746
+ "execution": {
747
+ "stop": 7945,
748
+ "trace_length": 50,
749
+ "trace_sha256": "f7ea99078b65c67f25c5dcf383c7e21f5602144b5004a3f07cdf688cfe099f17"
750
+ },
751
+ "input": {
752
+ "clients": [
753
+ {
754
+ "3096": 3,
755
+ "468": 2,
756
+ "696": 20
757
+ }
758
+ ],
759
+ "max_clients": 1,
760
+ "mode": 11
761
+ },
762
+ "requests": []
763
+ },
764
+ {
765
+ "changes": [],
766
+ "events": [],
767
+ "execution": {
768
+ "stop": 7945,
769
+ "trace_length": 50,
770
+ "trace_sha256": "f7ea99078b65c67f25c5dcf383c7e21f5602144b5004a3f07cdf688cfe099f17"
771
+ },
772
+ "input": {
773
+ "clients": [
774
+ {
775
+ "3096": 3,
776
+ "468": 2,
777
+ "696": 21
778
+ }
779
+ ],
780
+ "max_clients": 1,
781
+ "mode": 11
782
+ },
783
+ "requests": []
784
+ },
785
+ {
786
+ "changes": [],
787
+ "events": [],
788
+ "execution": {
789
+ "stop": 7945,
790
+ "trace_length": 50,
791
+ "trace_sha256": "f7ea99078b65c67f25c5dcf383c7e21f5602144b5004a3f07cdf688cfe099f17"
792
+ },
793
+ "input": {
794
+ "clients": [
795
+ {
796
+ "3096": 3,
797
+ "468": 2,
798
+ "696": 2147483647
799
+ }
800
+ ],
801
+ "max_clients": 1,
802
+ "mode": 11
803
+ },
804
+ "requests": []
805
+ },
806
+ {
807
+ "changes": [],
808
+ "events": [],
809
+ "execution": {
810
+ "stop": 8416,
811
+ "trace_length": 78,
812
+ "trace_sha256": "04c1497156adbc8c3c6b69b9673e9a62f61a1d1b311f5b29bdc9c6a67264670a"
813
+ },
814
+ "input": {
815
+ "clients": [
816
+ {
817
+ "3096": 0,
818
+ "468": 2,
819
+ "696": 21
820
+ },
821
+ {
822
+ "3096": 0,
823
+ "468": 2,
824
+ "696": 20
825
+ },
826
+ {
827
+ "3096": 0,
828
+ "468": 2,
829
+ "696": 20
830
+ },
831
+ {
832
+ "3096": 0,
833
+ "468": 2,
834
+ "696": 20
835
+ }
836
+ ],
837
+ "max_clients": 4,
838
+ "mode": 11
839
+ },
840
+ "requests": [
841
+ {
842
+ "arguments": {
843
+ "8": 34641
844
+ },
845
+ "target": 7367
846
+ },
847
+ {
848
+ "arguments": {
849
+ "8": 34618,
850
+ "12": 16,
851
+ "16": 0,
852
+ "20": 2067792376
853
+ },
854
+ "target": 70458
855
+ },
856
+ {
857
+ "arguments": {
858
+ "8": -1,
859
+ "12": 2073042944
860
+ },
861
+ "target": -18
862
+ }
863
+ ]
864
+ },
865
+ {
866
+ "changes": [],
867
+ "events": [],
868
+ "execution": {
869
+ "stop": 8416,
870
+ "trace_length": 201,
871
+ "trace_sha256": "823ad19345dced1ec18b507bbb67c68fd390d6b44b0c80d976fd37b836a76e64"
872
+ },
873
+ "input": {
874
+ "clients": [
875
+ {
876
+ "3096": 0,
877
+ "468": 2,
878
+ "696": 20
879
+ },
880
+ {
881
+ "3096": 0,
882
+ "468": 2,
883
+ "696": 20
884
+ },
885
+ {
886
+ "3096": 0,
887
+ "468": 2,
888
+ "696": 20
889
+ },
890
+ {
891
+ "3096": 0,
892
+ "468": 2,
893
+ "696": 21
894
+ }
895
+ ],
896
+ "max_clients": 4,
897
+ "mode": 11
898
+ },
899
+ "requests": [
900
+ {
901
+ "arguments": {
902
+ "8": 34641
903
+ },
904
+ "target": 7367
905
+ },
906
+ {
907
+ "arguments": {
908
+ "8": 34618,
909
+ "12": 16,
910
+ "16": 0,
911
+ "20": 2067811384
912
+ },
913
+ "target": 70458
914
+ },
915
+ {
916
+ "arguments": {
917
+ "8": -1,
918
+ "12": 2073042944
919
+ },
920
+ "target": -18
921
+ }
922
+ ]
923
+ },
924
+ {
925
+ "changes": [],
926
+ "events": [],
927
+ "execution": {
928
+ "stop": 8416,
929
+ "trace_length": 78,
930
+ "trace_sha256": "04c1497156adbc8c3c6b69b9673e9a62f61a1d1b311f5b29bdc9c6a67264670a"
931
+ },
932
+ "input": {
933
+ "clients": [
934
+ {
935
+ "3096": 0,
936
+ "468": 2,
937
+ "696": 21
938
+ },
939
+ {
940
+ "3096": 0,
941
+ "468": 2,
942
+ "696": 20
943
+ },
944
+ {
945
+ "3096": 0,
946
+ "468": 2,
947
+ "696": 20
948
+ },
949
+ {
950
+ "3096": 0,
951
+ "468": 2,
952
+ "696": 20
953
+ },
954
+ {
955
+ "3096": 0,
956
+ "468": 2,
957
+ "696": 20
958
+ },
959
+ {
960
+ "3096": 0,
961
+ "468": 2,
962
+ "696": 20
963
+ },
964
+ {
965
+ "3096": 0,
966
+ "468": 2,
967
+ "696": 20
968
+ },
969
+ {
970
+ "3096": 0,
971
+ "468": 2,
972
+ "696": 20
973
+ },
974
+ {
975
+ "3096": 0,
976
+ "468": 2,
977
+ "696": 20
978
+ },
979
+ {
980
+ "3096": 0,
981
+ "468": 2,
982
+ "696": 20
983
+ },
984
+ {
985
+ "3096": 0,
986
+ "468": 2,
987
+ "696": 20
988
+ },
989
+ {
990
+ "3096": 0,
991
+ "468": 2,
992
+ "696": 20
993
+ },
994
+ {
995
+ "3096": 0,
996
+ "468": 2,
997
+ "696": 20
998
+ },
999
+ {
1000
+ "3096": 0,
1001
+ "468": 2,
1002
+ "696": 20
1003
+ },
1004
+ {
1005
+ "3096": 0,
1006
+ "468": 2,
1007
+ "696": 20
1008
+ },
1009
+ {
1010
+ "3096": 0,
1011
+ "468": 2,
1012
+ "696": 20
1013
+ },
1014
+ {
1015
+ "3096": 0,
1016
+ "468": 2,
1017
+ "696": 20
1018
+ },
1019
+ {
1020
+ "3096": 0,
1021
+ "468": 2,
1022
+ "696": 20
1023
+ },
1024
+ {
1025
+ "3096": 0,
1026
+ "468": 2,
1027
+ "696": 20
1028
+ },
1029
+ {
1030
+ "3096": 0,
1031
+ "468": 2,
1032
+ "696": 20
1033
+ },
1034
+ {
1035
+ "3096": 0,
1036
+ "468": 2,
1037
+ "696": 20
1038
+ },
1039
+ {
1040
+ "3096": 0,
1041
+ "468": 2,
1042
+ "696": 20
1043
+ },
1044
+ {
1045
+ "3096": 0,
1046
+ "468": 2,
1047
+ "696": 20
1048
+ },
1049
+ {
1050
+ "3096": 0,
1051
+ "468": 2,
1052
+ "696": 20
1053
+ },
1054
+ {
1055
+ "3096": 0,
1056
+ "468": 2,
1057
+ "696": 20
1058
+ },
1059
+ {
1060
+ "3096": 0,
1061
+ "468": 2,
1062
+ "696": 20
1063
+ },
1064
+ {
1065
+ "3096": 0,
1066
+ "468": 2,
1067
+ "696": 20
1068
+ },
1069
+ {
1070
+ "3096": 0,
1071
+ "468": 2,
1072
+ "696": 20
1073
+ },
1074
+ {
1075
+ "3096": 0,
1076
+ "468": 2,
1077
+ "696": 20
1078
+ },
1079
+ {
1080
+ "3096": 0,
1081
+ "468": 2,
1082
+ "696": 20
1083
+ },
1084
+ {
1085
+ "3096": 0,
1086
+ "468": 2,
1087
+ "696": 20
1088
+ },
1089
+ {
1090
+ "3096": 0,
1091
+ "468": 2,
1092
+ "696": 20
1093
+ },
1094
+ {
1095
+ "3096": 0,
1096
+ "468": 2,
1097
+ "696": 20
1098
+ },
1099
+ {
1100
+ "3096": 0,
1101
+ "468": 2,
1102
+ "696": 20
1103
+ },
1104
+ {
1105
+ "3096": 0,
1106
+ "468": 2,
1107
+ "696": 20
1108
+ },
1109
+ {
1110
+ "3096": 0,
1111
+ "468": 2,
1112
+ "696": 20
1113
+ },
1114
+ {
1115
+ "3096": 0,
1116
+ "468": 2,
1117
+ "696": 20
1118
+ },
1119
+ {
1120
+ "3096": 0,
1121
+ "468": 2,
1122
+ "696": 20
1123
+ },
1124
+ {
1125
+ "3096": 0,
1126
+ "468": 2,
1127
+ "696": 20
1128
+ },
1129
+ {
1130
+ "3096": 0,
1131
+ "468": 2,
1132
+ "696": 20
1133
+ },
1134
+ {
1135
+ "3096": 0,
1136
+ "468": 2,
1137
+ "696": 20
1138
+ },
1139
+ {
1140
+ "3096": 0,
1141
+ "468": 2,
1142
+ "696": 20
1143
+ },
1144
+ {
1145
+ "3096": 0,
1146
+ "468": 2,
1147
+ "696": 20
1148
+ },
1149
+ {
1150
+ "3096": 0,
1151
+ "468": 2,
1152
+ "696": 20
1153
+ },
1154
+ {
1155
+ "3096": 0,
1156
+ "468": 2,
1157
+ "696": 20
1158
+ },
1159
+ {
1160
+ "3096": 0,
1161
+ "468": 2,
1162
+ "696": 20
1163
+ },
1164
+ {
1165
+ "3096": 0,
1166
+ "468": 2,
1167
+ "696": 20
1168
+ },
1169
+ {
1170
+ "3096": 0,
1171
+ "468": 2,
1172
+ "696": 20
1173
+ },
1174
+ {
1175
+ "3096": 0,
1176
+ "468": 2,
1177
+ "696": 20
1178
+ },
1179
+ {
1180
+ "3096": 0,
1181
+ "468": 2,
1182
+ "696": 20
1183
+ },
1184
+ {
1185
+ "3096": 0,
1186
+ "468": 2,
1187
+ "696": 20
1188
+ },
1189
+ {
1190
+ "3096": 0,
1191
+ "468": 2,
1192
+ "696": 20
1193
+ },
1194
+ {
1195
+ "3096": 0,
1196
+ "468": 2,
1197
+ "696": 20
1198
+ },
1199
+ {
1200
+ "3096": 0,
1201
+ "468": 2,
1202
+ "696": 20
1203
+ },
1204
+ {
1205
+ "3096": 0,
1206
+ "468": 2,
1207
+ "696": 20
1208
+ },
1209
+ {
1210
+ "3096": 0,
1211
+ "468": 2,
1212
+ "696": 20
1213
+ },
1214
+ {
1215
+ "3096": 0,
1216
+ "468": 2,
1217
+ "696": 20
1218
+ },
1219
+ {
1220
+ "3096": 0,
1221
+ "468": 2,
1222
+ "696": 20
1223
+ },
1224
+ {
1225
+ "3096": 0,
1226
+ "468": 2,
1227
+ "696": 20
1228
+ },
1229
+ {
1230
+ "3096": 0,
1231
+ "468": 2,
1232
+ "696": 20
1233
+ },
1234
+ {
1235
+ "3096": 0,
1236
+ "468": 2,
1237
+ "696": 20
1238
+ },
1239
+ {
1240
+ "3096": 0,
1241
+ "468": 2,
1242
+ "696": 20
1243
+ },
1244
+ {
1245
+ "3096": 0,
1246
+ "468": 2,
1247
+ "696": 20
1248
+ },
1249
+ {
1250
+ "3096": 0,
1251
+ "468": 2,
1252
+ "696": 20
1253
+ }
1254
+ ],
1255
+ "max_clients": 64,
1256
+ "mode": 11
1257
+ },
1258
+ "requests": [
1259
+ {
1260
+ "arguments": {
1261
+ "8": 34641
1262
+ },
1263
+ "target": 7367
1264
+ },
1265
+ {
1266
+ "arguments": {
1267
+ "8": 34618,
1268
+ "12": 16,
1269
+ "16": 0,
1270
+ "20": 2067792376
1271
+ },
1272
+ "target": 70458
1273
+ },
1274
+ {
1275
+ "arguments": {
1276
+ "8": -1,
1277
+ "12": 2073042944
1278
+ },
1279
+ "target": -18
1280
+ }
1281
+ ]
1282
+ },
1283
+ {
1284
+ "changes": [],
1285
+ "events": [],
1286
+ "execution": {
1287
+ "stop": 8416,
1288
+ "trace_length": 201,
1289
+ "trace_sha256": "823ad19345dced1ec18b507bbb67c68fd390d6b44b0c80d976fd37b836a76e64"
1290
+ },
1291
+ "input": {
1292
+ "clients": [
1293
+ {
1294
+ "3096": 0,
1295
+ "468": 2,
1296
+ "696": 20
1297
+ },
1298
+ {
1299
+ "3096": 0,
1300
+ "468": 2,
1301
+ "696": 20
1302
+ },
1303
+ {
1304
+ "3096": 0,
1305
+ "468": 2,
1306
+ "696": 20
1307
+ },
1308
+ {
1309
+ "3096": 0,
1310
+ "468": 2,
1311
+ "696": 21
1312
+ },
1313
+ {
1314
+ "3096": 0,
1315
+ "468": 2,
1316
+ "696": 20
1317
+ },
1318
+ {
1319
+ "3096": 0,
1320
+ "468": 2,
1321
+ "696": 20
1322
+ },
1323
+ {
1324
+ "3096": 0,
1325
+ "468": 2,
1326
+ "696": 20
1327
+ },
1328
+ {
1329
+ "3096": 0,
1330
+ "468": 2,
1331
+ "696": 20
1332
+ },
1333
+ {
1334
+ "3096": 0,
1335
+ "468": 2,
1336
+ "696": 20
1337
+ },
1338
+ {
1339
+ "3096": 0,
1340
+ "468": 2,
1341
+ "696": 20
1342
+ },
1343
+ {
1344
+ "3096": 0,
1345
+ "468": 2,
1346
+ "696": 20
1347
+ },
1348
+ {
1349
+ "3096": 0,
1350
+ "468": 2,
1351
+ "696": 20
1352
+ },
1353
+ {
1354
+ "3096": 0,
1355
+ "468": 2,
1356
+ "696": 20
1357
+ },
1358
+ {
1359
+ "3096": 0,
1360
+ "468": 2,
1361
+ "696": 20
1362
+ },
1363
+ {
1364
+ "3096": 0,
1365
+ "468": 2,
1366
+ "696": 20
1367
+ },
1368
+ {
1369
+ "3096": 0,
1370
+ "468": 2,
1371
+ "696": 20
1372
+ },
1373
+ {
1374
+ "3096": 0,
1375
+ "468": 2,
1376
+ "696": 20
1377
+ },
1378
+ {
1379
+ "3096": 0,
1380
+ "468": 2,
1381
+ "696": 20
1382
+ },
1383
+ {
1384
+ "3096": 0,
1385
+ "468": 2,
1386
+ "696": 20
1387
+ },
1388
+ {
1389
+ "3096": 0,
1390
+ "468": 2,
1391
+ "696": 20
1392
+ },
1393
+ {
1394
+ "3096": 0,
1395
+ "468": 2,
1396
+ "696": 20
1397
+ },
1398
+ {
1399
+ "3096": 0,
1400
+ "468": 2,
1401
+ "696": 20
1402
+ },
1403
+ {
1404
+ "3096": 0,
1405
+ "468": 2,
1406
+ "696": 20
1407
+ },
1408
+ {
1409
+ "3096": 0,
1410
+ "468": 2,
1411
+ "696": 20
1412
+ },
1413
+ {
1414
+ "3096": 0,
1415
+ "468": 2,
1416
+ "696": 20
1417
+ },
1418
+ {
1419
+ "3096": 0,
1420
+ "468": 2,
1421
+ "696": 20
1422
+ },
1423
+ {
1424
+ "3096": 0,
1425
+ "468": 2,
1426
+ "696": 20
1427
+ },
1428
+ {
1429
+ "3096": 0,
1430
+ "468": 2,
1431
+ "696": 20
1432
+ },
1433
+ {
1434
+ "3096": 0,
1435
+ "468": 2,
1436
+ "696": 20
1437
+ },
1438
+ {
1439
+ "3096": 0,
1440
+ "468": 2,
1441
+ "696": 20
1442
+ },
1443
+ {
1444
+ "3096": 0,
1445
+ "468": 2,
1446
+ "696": 20
1447
+ },
1448
+ {
1449
+ "3096": 0,
1450
+ "468": 2,
1451
+ "696": 20
1452
+ },
1453
+ {
1454
+ "3096": 0,
1455
+ "468": 2,
1456
+ "696": 20
1457
+ },
1458
+ {
1459
+ "3096": 0,
1460
+ "468": 2,
1461
+ "696": 20
1462
+ },
1463
+ {
1464
+ "3096": 0,
1465
+ "468": 2,
1466
+ "696": 20
1467
+ },
1468
+ {
1469
+ "3096": 0,
1470
+ "468": 2,
1471
+ "696": 20
1472
+ },
1473
+ {
1474
+ "3096": 0,
1475
+ "468": 2,
1476
+ "696": 20
1477
+ },
1478
+ {
1479
+ "3096": 0,
1480
+ "468": 2,
1481
+ "696": 20
1482
+ },
1483
+ {
1484
+ "3096": 0,
1485
+ "468": 2,
1486
+ "696": 20
1487
+ },
1488
+ {
1489
+ "3096": 0,
1490
+ "468": 2,
1491
+ "696": 20
1492
+ },
1493
+ {
1494
+ "3096": 0,
1495
+ "468": 2,
1496
+ "696": 20
1497
+ },
1498
+ {
1499
+ "3096": 0,
1500
+ "468": 2,
1501
+ "696": 20
1502
+ },
1503
+ {
1504
+ "3096": 0,
1505
+ "468": 2,
1506
+ "696": 20
1507
+ },
1508
+ {
1509
+ "3096": 0,
1510
+ "468": 2,
1511
+ "696": 20
1512
+ },
1513
+ {
1514
+ "3096": 0,
1515
+ "468": 2,
1516
+ "696": 20
1517
+ },
1518
+ {
1519
+ "3096": 0,
1520
+ "468": 2,
1521
+ "696": 20
1522
+ },
1523
+ {
1524
+ "3096": 0,
1525
+ "468": 2,
1526
+ "696": 20
1527
+ },
1528
+ {
1529
+ "3096": 0,
1530
+ "468": 2,
1531
+ "696": 20
1532
+ },
1533
+ {
1534
+ "3096": 0,
1535
+ "468": 2,
1536
+ "696": 20
1537
+ },
1538
+ {
1539
+ "3096": 0,
1540
+ "468": 2,
1541
+ "696": 20
1542
+ },
1543
+ {
1544
+ "3096": 0,
1545
+ "468": 2,
1546
+ "696": 20
1547
+ },
1548
+ {
1549
+ "3096": 0,
1550
+ "468": 2,
1551
+ "696": 20
1552
+ },
1553
+ {
1554
+ "3096": 0,
1555
+ "468": 2,
1556
+ "696": 20
1557
+ },
1558
+ {
1559
+ "3096": 0,
1560
+ "468": 2,
1561
+ "696": 20
1562
+ },
1563
+ {
1564
+ "3096": 0,
1565
+ "468": 2,
1566
+ "696": 20
1567
+ },
1568
+ {
1569
+ "3096": 0,
1570
+ "468": 2,
1571
+ "696": 20
1572
+ },
1573
+ {
1574
+ "3096": 0,
1575
+ "468": 2,
1576
+ "696": 20
1577
+ },
1578
+ {
1579
+ "3096": 0,
1580
+ "468": 2,
1581
+ "696": 20
1582
+ },
1583
+ {
1584
+ "3096": 0,
1585
+ "468": 2,
1586
+ "696": 20
1587
+ },
1588
+ {
1589
+ "3096": 0,
1590
+ "468": 2,
1591
+ "696": 20
1592
+ },
1593
+ {
1594
+ "3096": 0,
1595
+ "468": 2,
1596
+ "696": 20
1597
+ },
1598
+ {
1599
+ "3096": 0,
1600
+ "468": 2,
1601
+ "696": 20
1602
+ },
1603
+ {
1604
+ "3096": 0,
1605
+ "468": 2,
1606
+ "696": 20
1607
+ },
1608
+ {
1609
+ "3096": 0,
1610
+ "468": 2,
1611
+ "696": 20
1612
+ }
1613
+ ],
1614
+ "max_clients": 64,
1615
+ "mode": 11
1616
+ },
1617
+ "requests": [
1618
+ {
1619
+ "arguments": {
1620
+ "8": 34641
1621
+ },
1622
+ "target": 7367
1623
+ },
1624
+ {
1625
+ "arguments": {
1626
+ "8": 34618,
1627
+ "12": 16,
1628
+ "16": 0,
1629
+ "20": 2067811384
1630
+ },
1631
+ "target": 70458
1632
+ },
1633
+ {
1634
+ "arguments": {
1635
+ "8": -1,
1636
+ "12": 2073042944
1637
+ },
1638
+ "target": -18
1639
+ }
1640
+ ]
1641
+ },
1642
+ {
1643
+ "changes": [],
1644
+ "events": [],
1645
+ "execution": {
1646
+ "stop": 7945,
1647
+ "trace_length": 4,
1648
+ "trace_sha256": "974bfbb15720d6c2b22089b620ba456233a4bb8c215a944627d0e5c9a5f9bf70"
1649
+ },
1650
+ "input": {
1651
+ "clients": [],
1652
+ "max_clients": 0,
1653
+ "mode": 0
1654
+ },
1655
+ "requests": []
1656
+ },
1657
+ {
1658
+ "changes": [],
1659
+ "events": [],
1660
+ "execution": {
1661
+ "stop": 7945,
1662
+ "trace_length": 4,
1663
+ "trace_sha256": "974bfbb15720d6c2b22089b620ba456233a4bb8c215a944627d0e5c9a5f9bf70"
1664
+ },
1665
+ "input": {
1666
+ "clients": [],
1667
+ "max_clients": 0,
1668
+ "mode": 9
1669
+ },
1670
+ "requests": []
1671
+ },
1672
+ {
1673
+ "changes": [],
1674
+ "events": [],
1675
+ "execution": {
1676
+ "stop": 7945,
1677
+ "trace_length": 14,
1678
+ "trace_sha256": "1e7c311c49c870766502fa4744f390b170b4a8382609a121d87061243efdfcc0"
1679
+ },
1680
+ "input": {
1681
+ "clients": [],
1682
+ "max_clients": 0,
1683
+ "mode": 11
1684
+ },
1685
+ "requests": []
1686
+ },
1687
+ {
1688
+ "changes": [],
1689
+ "events": [],
1690
+ "execution": {
1691
+ "stop": 7945,
1692
+ "trace_length": 14,
1693
+ "trace_sha256": "1e7c311c49c870766502fa4744f390b170b4a8382609a121d87061243efdfcc0"
1694
+ },
1695
+ "input": {
1696
+ "clients": [
1697
+ {
1698
+ "3096": 0,
1699
+ "468": 2,
1700
+ "696": 21
1701
+ },
1702
+ {
1703
+ "3096": 0,
1704
+ "468": 2,
1705
+ "696": 21
1706
+ },
1707
+ {
1708
+ "3096": 0,
1709
+ "468": 2,
1710
+ "696": 21
1711
+ },
1712
+ {
1713
+ "3096": 0,
1714
+ "468": 2,
1715
+ "696": 21
1716
+ }
1717
+ ],
1718
+ "max_clients": 0,
1719
+ "mode": 11
1720
+ },
1721
+ "requests": []
1722
+ },
1723
+ {
1724
+ "changes": [],
1725
+ "events": [],
1726
+ "execution": {
1727
+ "stop": 8416,
1728
+ "trace_length": 78,
1729
+ "trace_sha256": "04c1497156adbc8c3c6b69b9673e9a62f61a1d1b311f5b29bdc9c6a67264670a"
1730
+ },
1731
+ "input": {
1732
+ "clients": [
1733
+ {
1734
+ "3096": 0,
1735
+ "468": 2,
1736
+ "696": 21
1737
+ },
1738
+ {
1739
+ "3096": 0,
1740
+ "468": 2,
1741
+ "696": 21
1742
+ },
1743
+ {
1744
+ "3096": 0,
1745
+ "468": 2,
1746
+ "696": 21
1747
+ },
1748
+ {
1749
+ "3096": 0,
1750
+ "468": 2,
1751
+ "696": 21
1752
+ }
1753
+ ],
1754
+ "max_clients": 2,
1755
+ "mode": 11
1756
+ },
1757
+ "requests": [
1758
+ {
1759
+ "arguments": {
1760
+ "8": 34641
1761
+ },
1762
+ "target": 7367
1763
+ },
1764
+ {
1765
+ "arguments": {
1766
+ "8": 34618,
1767
+ "12": 16,
1768
+ "16": 0,
1769
+ "20": 2067792376
1770
+ },
1771
+ "target": 70458
1772
+ },
1773
+ {
1774
+ "arguments": {
1775
+ "8": -1,
1776
+ "12": 2073042944
1777
+ },
1778
+ "target": -18
1779
+ }
1780
+ ]
1781
+ }
1782
+ ],
1783
+ "sha256": "a589351dfe517470a1b121dd2164714987d9e4577bf00c6486e1540035d7a79d",
1784
+ "source": {
1785
+ "archive": "zUrT43_qvm.pk3",
1786
+ "archive_sha256": "b59bf0c5bedf11d50e0edd220da7eade96de40601e98ae14c54c819047df0796",
1787
+ "member": {
1788
+ "bytes": 983300,
1789
+ "comment_hex": "",
1790
+ "compressed_bytes": 246560,
1791
+ "compression": 8,
1792
+ "crc32": "98ea1768",
1793
+ "create_system": 0,
1794
+ "create_version": 63,
1795
+ "date_time": [
1796
+ 2018,
1797
+ 6,
1798
+ 18,
1799
+ 22,
1800
+ 11,
1801
+ 50
1802
+ ],
1803
+ "directory": false,
1804
+ "entry_index": 2,
1805
+ "external_attr": 32,
1806
+ "extra_hex": "0a0020000000000001001800d1e24e974007d40116dcbf962f1fd20116dcbf962f1fd201",
1807
+ "extract_version": 20,
1808
+ "flags": 0,
1809
+ "header_offset": 221309,
1810
+ "internal_attr": 0,
1811
+ "occurrence": 0,
1812
+ "output": "assets/extracted/zUrT43_qvm.pk3/members/000002/vm/qagame.qvm",
1813
+ "path": "vm/qagame.qvm",
1814
+ "sha256": "a589351dfe517470a1b121dd2164714987d9e4577bf00c6486e1540035d7a79d",
1815
+ "type": "member",
1816
+ "volume": 0
1817
+ }
1818
+ }
1819
+ }
docs/research/qvm-resumer-audit.json CHANGED
@@ -8667,6 +8667,17 @@
8667
  "repeated_calls_opt_in": false,
8668
  "repeated_calls_setting": "default_false"
8669
  },
 
 
 
 
 
 
 
 
 
 
 
8670
  {
8671
  "backward_conditional_branches": [],
8672
  "calls": [],
@@ -9978,10 +9989,10 @@
9978
  }
9979
  },
9980
  "summary": {
9981
- "call_expressions": 198,
9982
- "files": 151,
9983
  "legacy_expressions": 158,
9984
- "nonliteral_ranges": 24,
9985
  "unresolved_mode_expressions": 3
9986
  }
9987
  }
 
8667
  "repeated_calls_opt_in": false,
8668
  "repeated_calls_setting": "default_false"
8669
  },
8670
+ {
8671
+ "backward_conditional_branches": [],
8672
+ "calls": [],
8673
+ "explicit_result_offsets": null,
8674
+ "helper": "qvm_trace_support.resume",
8675
+ "line": 26,
8676
+ "literal_range": null,
8677
+ "path": "scripts/qvm_exit_rules_support.py",
8678
+ "repeated_calls_opt_in": true,
8679
+ "repeated_calls_setting": "literal_true"
8680
+ },
8681
  {
8682
  "backward_conditional_branches": [],
8683
  "calls": [],
 
9989
  }
9990
  },
9991
  "summary": {
9992
+ "call_expressions": 199,
9993
+ "files": 152,
9994
  "legacy_expressions": 158,
9995
+ "nonliteral_ranges": 25,
9996
  "unresolved_mode_expressions": 3
9997
  }
9998
  }
scripts/analyze_qvm_exit_class.py ADDED
@@ -0,0 +1,18 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ #!/usr/bin/env python3
2
+ import itertools
3
+ from pathlib import Path
4
+ from qvm_research_support import source
5
+ from qvm_exit_rules_support import seed,run
6
+ from analyze_qvm import write_json
7
+
8
+ def main():
9
+ q,raw,h,ins=source();rows=[];cases=[]
10
+ for state,team,klass in itertools.product([0,1,2],[0,1,3],[-1,20,21,2147483647]):cases.append((11,[{'468':state,'3096':team,'696':klass}],1))
11
+ for n,position in itertools.product([4,64],[0,3]):
12
+ c=[{'468':2,'3096':0,'696':20} for _ in range(n)];c[position]['696']=21;cases.append((11,c,n))
13
+ cases += [(mode,[],0) for mode in [0,9,11]]
14
+ c=[{'468':2,'3096':0,'696':21} for _ in range(4)];cases += [(11,c,0),(11,c,2)]
15
+ for mode,clients,count in cases:
16
+ _,p=run(ins,seed(clients,mode=mode,max_clients=count),7857,[7945]);p.update(input={'mode':mode,'clients':clients,'max_clients':count});rows.append(p)
17
+ write_json(Path('docs/research/qvm-exit-class.json'),{'source':q['source'],'sha256':q['sha256'],'probes':rows,'limits':'7805 mode11 class guard only, stopping before7945 or at8416. First scanned state2/team0 client with signed class>20 requests7367,70458 and broadcast send. Configured max-client count bounds scan. All child effects/formatting captured.'})
18
+ if __name__=='__main__':main()
scripts/qvm_exit_rules_support.py ADDED
@@ -0,0 +1,29 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ """Finite7805 state and captured child interfaces; no actual world transition."""
2
+ from qvm_health_effects_support import H
3
+ from qvm_notification_support import CPOOL,POOL
4
+ from qvm_trace_support import resume
5
+ E=H+0x700000
6
+ TEXT=E+0x2000
7
+ EVENT=E+0x4000
8
+ GLOBALS={'blocked':34999596,'pending':34999592,'slow':34081612,'now':34992532,'mode':34090788,'max_clients':34089604,'client_count':34992524,'round_limit':34068588,'round_active':34081020,'round_count':35000376,'countdown':34999652,'time_limit':34088124,'paused':34992512,'start':34999656,'playing':34992588,'score_limit':34088420,'team_limit':34087828,'first_score':34992556,'second_score':34992560}
9
+ FIELDS=[468,3096,696,140,248,304,308,300,3692,3700]
10
+
11
+ def seed(clients=(),**a):
12
+ m={address:a.get(key,0) for key,address in GLOBALS.items()};m[34992496]=CPOOL;m[34089604]=a.get('max_clients',len(clients));m[34992524]=a.get('client_count',len(clients))
13
+ for j,c in enumerate(clients):
14
+ for o in FIELDS:m[CPOOL+6336*j+o]=c.get(str(o),2 if o==468 else j if o==140 else 0)
15
+ m[POOL+880*j]=100+j
16
+ return m
17
+
18
+ def run(ins,m,start=7806,boundaries=(),predicate=0):
19
+ initial=dict(m);requests=[];allocations=[]
20
+ def capture(target,value=0):
21
+ def child(i,m,a):requests.append({'target':target,'arguments':a});return m,value,{'child_effect_captured':True}
22
+ return child
23
+ def event(i,m,a):
24
+ ptr=EVENT+880*len(allocations);m[ptr+424]=16;requests.append({'target':277695,'arguments':a});allocations.append(ptr);return m,ptr,{'allocation_supplied':True}
25
+ hs={t:capture(t) for t in [7525,6825,7367,-18,7259]};hs[70458]=capture(70458,TEXT);hs[7662]=capture(7662,predicate);hs[277695]=event
26
+ m,e=resume(ins,start,8416,m,E,handlers=hs,boundaries=boundaries,repeated_calls=True,sync_child_words=True,segment_limit=2048,limit=32768)
27
+ changes=[{'address':a,'before':v,'after':m[a]} for a,v in initial.items() if m[a]!=v]
28
+ events=[{'pointer':p,'fields':{str(o):m[p+o]&0xffffffff for o in [140,428,84,424]}} for p in allocations]
29
+ return m,{'requests':requests,'changes':changes,'events':events,'execution':{k:e[k] for k in ['stop','trace_length','trace_sha256']}}
scripts/test_qvm_exit_class.py ADDED
@@ -0,0 +1,13 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import json,unittest
2
+ from pathlib import Path
3
+ from qvm_exit_rules_support import TEXT
4
+ from qvm_notification_support import CPOOL
5
+ class ExitClassTests(unittest.TestCase):
6
+ def test_independent_scan_gate_and_first_offender(self):
7
+ r=json.loads(Path('docs/research/qvm-exit-class.json').read_text());self.assertEqual(len(r['probes']),45)
8
+ for p in r['probes']:
9
+ a=p['input'];ids=[j for j,c in enumerate(a['clients'][:a['max_clients']]) if c['468']==2 and c['3096']==0 and c['696']>20] if a['mode']==11 else []
10
+ expected=[] if not ids else [{'target':7367,'arguments':{'8':34641}},{'target':70458,'arguments':{'8':34618,'12':16,'16':0,'20':CPOOL+6336*ids[0]+504}},{'target':-18,'arguments':{'8':-1,'12':TEXT}}];self.assertEqual(p['requests'],expected);self.assertEqual(p['execution']['stop'],8416 if ids else 7945)
11
+ def test_guard_only_reads_and_captures(self):
12
+ for p in json.loads(Path('docs/research/qvm-exit-class.json').read_text())['probes']:self.assertEqual(p['changes'],[]);self.assertEqual(p['events'],[])
13
+ if __name__=='__main__':unittest.main()
xtask/checks.tsv CHANGED
@@ -2078,3 +2078,8 @@ report scripts/analyze_rust_format_float.py docs/research/rust-format-float.json
2078
  edge docs/research/rust-format-float.json scripts/test_rust_format_float.py
2079
  group rust-format-float scripts/analyze_rust_format_float.py
2080
  edge scripts/analyze_rust_format_float.py scripts/analyze_qvm_resumer_audit.py
 
 
 
 
 
 
2078
  edge docs/research/rust-format-float.json scripts/test_rust_format_float.py
2079
  group rust-format-float scripts/analyze_rust_format_float.py
2080
  edge scripts/analyze_rust_format_float.py scripts/analyze_qvm_resumer_audit.py
2081
+ report scripts/analyze_qvm_exit_class.py docs/research/qvm-exit-class.json
2082
+ edge docs/research/qvm-exit-class.json scripts/test_qvm_exit_class.py
2083
+ group exit-class scripts/analyze_qvm_exit_class.py
2084
+ edge scripts/analyze_qvm_exit_class.py scripts/analyze_qvm_resumer_audit.py
2085
+ edge scripts/qvm_exit_rules_support.py scripts/analyze_qvm_resumer_audit.py