nmarshall commited on
Commit
ccfeae3
·
1 Parent(s): cedc6d0

qvm: recover entity hash search

Browse files
docs/FINDINGS.md CHANGED
@@ -1559,3 +1559,6 @@ RE-813–822 replaces the scoreboard decimal assumption with actual37914 executi
1559
 
1560
 
1561
  **RE-853:** Rust matches 144 original temporary-event cases, including exact snap words, event-kind wrapping, metadata and preservation of allocator/caller fields. Five invalid source domains reject atomically in Rust. Allocation and native linking remain caller-owned; source class tokens require runtime metadata resolution. [Evidence](research/RUST_EVENT_CONSTRUCT.md).
 
 
 
 
1559
 
1560
 
1561
  **RE-853:** Rust matches 144 original temporary-event cases, including exact snap words, event-kind wrapping, metadata and preservation of allocator/caller fields. Five invalid source domains reject atomically in Rust. Allocation and native linking remain caller-owned; source class tokens require runtime metadata resolution. [Evidence](research/RUST_EVENT_CONSTRUCT.md).
1562
+
1563
+
1564
+ **RE-854:** 80 original 276433 cases recover nonzero active/class-pointer filtering, first match after cursor, scan limits and raw hash equality. Class text is never compared, so collisions return the first eligible hash match. Read-only world behavior is verified; unsafe pointers and native/runtime behavior remain open. [Evidence](research/QVM_ENTITY_HASH.md).
docs/PROVISIONAL_TODO.md CHANGED
@@ -1581,3 +1581,6 @@ RE-853: Rust matches 144 original temporary-event cases, including exact snap wo
1581
 
1582
 
1583
  - [ ] RE-854: Compose recovered camera/map/event policies into intermission flows; recover searches, angles, commands, allocation, respawn and publication; validate actual macOS/Linux runtime traces. [Scope](research/QVM_CAMERA_MAP_EVENT_BATCH.md).
 
 
 
 
1581
 
1582
 
1583
  - [ ] RE-854: Compose recovered camera/map/event policies into intermission flows; recover searches, angles, commands, allocation, respawn and publication; validate actual macOS/Linux runtime traces. [Scope](research/QVM_CAMERA_MAP_EVENT_BATCH.md).
1584
+
1585
+
1586
+ RE-854: 80 original 276433 cases recover nonzero active/class-pointer filtering, first match after cursor, scan limits and raw hash equality. Class text is never compared, so collisions return the first eligible hash match. Read-only world behavior is verified; unsafe pointers and native/runtime behavior remain open. Full runtime completion remains open. [Evidence](research/QVM_ENTITY_HASH.md).
docs/RESEARCH_LEDGER.md CHANGED
@@ -1947,3 +1947,8 @@ Rust matches 144 original temporary-event cases, including exact snap words, eve
1947
  RE-853 final review: targeted xtask registry regression passes for all five source-report parity edges, transition module selection and the shared intermission mode-classifier dependency. Added batch evidence, validation cadence and RE-854 integration/native follow-ups.
1948
 
1949
  Batch RE-844–853 boundary: the single `cargo xtask test-full --since 15d7fcac` run passed after commit ten: 1,668 Python tests, 147 Rust tests (assets 10, gameplay 109, xtask 28), 46 deterministic report producers, storage policy, 414 documentation files and whitespace checks. No generated report drift; validation notes amended into task ten. Original assets unchanged.
 
 
 
 
 
 
1947
  RE-853 final review: targeted xtask registry regression passes for all five source-report parity edges, transition module selection and the shared intermission mode-classifier dependency. Added batch evidence, validation cadence and RE-854 integration/native follow-ups.
1948
 
1949
  Batch RE-844–853 boundary: the single `cargo xtask test-full --since 15d7fcac` run passed after commit ten: 1,668 Python tests, 147 Rust tests (assets 10, gameplay 109, xtask 28), 46 deterministic report producers, storage policy, 414 documentation files and whitespace checks. No generated report drift; validation notes amended into task ten. Original assets unchanged.
1950
+
1951
+
1952
+ ## 2026-10-27 — RE-854 Original entity class-hash search and cursor semantics
1953
+
1954
+ 80 original 276433 cases recover nonzero active/class-pointer filtering, first match after cursor, scan limits and raw hash equality. Class text is never compared, so collisions return the first eligible hash match. Read-only world behavior is verified; unsafe pointers and native/runtime behavior remain open. Focused `cargo xtask test-group entity-hash` 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
@@ -1618,3 +1618,6 @@ Purpose: turn the supplied installation into an evidence-backed specification of
1618
 
1619
 
1620
  - [ ] RE-854: Compose recovered camera/map/event policies into intermission flows; recover searches, angles, commands, allocation, respawn and publication; validate actual macOS/Linux runtime traces. [Scope](research/QVM_CAMERA_MAP_EVENT_BATCH.md).
 
 
 
 
1618
 
1619
 
1620
  - [ ] RE-854: Compose recovered camera/map/event policies into intermission flows; recover searches, angles, commands, allocation, respawn and publication; validate actual macOS/Linux runtime traces. [Scope](research/QVM_CAMERA_MAP_EVENT_BATCH.md).
1621
+
1622
+
1623
+ - [x] RE-854 Original entity class-hash search and cursor semantics ([evidence](research/QVM_ENTITY_HASH.md)).
docs/research/QVM_ENTITY_HASH.md ADDED
@@ -0,0 +1,7 @@
 
 
 
 
 
 
 
 
1
+ # Original entity class-hash search and cursor semantics
2
+
3
+ RE-854. Reproduce with `python3 scripts/analyze_qvm_entity_hash.py`; focused validation: `cargo xtask test-group entity-hash`. [Machine report](qvm-entity-hash.json).
4
+
5
+ 80 original 276433 cases recover nonzero active/class-pointer filtering, first match after cursor, scan limits and raw hash equality. Class text is never compared, so collisions return the first eligible hash match. Read-only world behavior is verified; unsafe pointers and native/runtime behavior remain open.
6
+
7
+ Original executable/native runtime and complete Linux/macOS Rust/Bevy/Solari acceptance remain unverified.
docs/research/README.md CHANGED
@@ -1155,3 +1155,6 @@ The extension collector adds five focused tests for native tail calls, command-r
1155
  [RE-853: Rust temporary event construction and ownership boundaries](RUST_EVENT_CONSTRUCT.md).
1156
 
1157
  - [RE-844–853 camera, map and event batch evidence and next work](QVM_CAMERA_MAP_EVENT_BATCH.md).
 
 
 
 
1155
  [RE-853: Rust temporary event construction and ownership boundaries](RUST_EVENT_CONSTRUCT.md).
1156
 
1157
  - [RE-844–853 camera, map and event batch evidence and next work](QVM_CAMERA_MAP_EVENT_BATCH.md).
1158
+
1159
+
1160
+ [RE-854: Original entity class-hash search and cursor semantics](QVM_ENTITY_HASH.md).
docs/research/qvm-entity-hash.json ADDED
@@ -0,0 +1,1203 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "entities": [
3
+ {
4
+ "active": 0,
5
+ "hash": 7,
6
+ "name": 1
7
+ },
8
+ {
9
+ "active": 1,
10
+ "hash": 7,
11
+ "name": 0
12
+ },
13
+ {
14
+ "active": 2,
15
+ "hash": 4294967295,
16
+ "name": 1
17
+ },
18
+ {
19
+ "active": 1,
20
+ "hash": 7,
21
+ "name": 1
22
+ },
23
+ {
24
+ "active": -1,
25
+ "hash": 7,
26
+ "name": 2
27
+ },
28
+ {
29
+ "active": 1,
30
+ "hash": 8,
31
+ "name": 1
32
+ },
33
+ {
34
+ "active": 0,
35
+ "hash": 8,
36
+ "name": 1
37
+ },
38
+ {
39
+ "active": 1,
40
+ "hash": 0,
41
+ "name": 1
42
+ }
43
+ ],
44
+ "limits": "Actual276433 over80 cases. Nonzero active and class pointer plus equal raw hash select first entity after cursor. No class text comparison: collisions remain indistinguishable. Safe finite entity bounds only; native/runtime integration unverified.",
45
+ "probes": [
46
+ {
47
+ "changes": [],
48
+ "execution": {
49
+ "stop": 276503,
50
+ "trace_length": 20,
51
+ "trace_sha256": "19a0d08e610f52cb510c9dd00800f013201731631ab5656e2684cdfa1ca6b6c2"
52
+ },
53
+ "input": {
54
+ "after": -1,
55
+ "count": 0,
56
+ "hash": 0
57
+ },
58
+ "result": -1
59
+ },
60
+ {
61
+ "changes": [],
62
+ "execution": {
63
+ "stop": 276503,
64
+ "trace_length": 20,
65
+ "trace_sha256": "19a0d08e610f52cb510c9dd00800f013201731631ab5656e2684cdfa1ca6b6c2"
66
+ },
67
+ "input": {
68
+ "after": -1,
69
+ "count": 0,
70
+ "hash": 7
71
+ },
72
+ "result": -1
73
+ },
74
+ {
75
+ "changes": [],
76
+ "execution": {
77
+ "stop": 276503,
78
+ "trace_length": 20,
79
+ "trace_sha256": "19a0d08e610f52cb510c9dd00800f013201731631ab5656e2684cdfa1ca6b6c2"
80
+ },
81
+ "input": {
82
+ "after": -1,
83
+ "count": 0,
84
+ "hash": 8
85
+ },
86
+ "result": -1
87
+ },
88
+ {
89
+ "changes": [],
90
+ "execution": {
91
+ "stop": 276503,
92
+ "trace_length": 20,
93
+ "trace_sha256": "19a0d08e610f52cb510c9dd00800f013201731631ab5656e2684cdfa1ca6b6c2"
94
+ },
95
+ "input": {
96
+ "after": -1,
97
+ "count": 0,
98
+ "hash": 4294967295
99
+ },
100
+ "result": -1
101
+ },
102
+ {
103
+ "changes": [],
104
+ "execution": {
105
+ "stop": 276503,
106
+ "trace_length": 23,
107
+ "trace_sha256": "b737f6cc0f970f38387f132cb26cd794cbebdf3d7765b391852aa9359b819176"
108
+ },
109
+ "input": {
110
+ "after": 0,
111
+ "count": 0,
112
+ "hash": 0
113
+ },
114
+ "result": -1
115
+ },
116
+ {
117
+ "changes": [],
118
+ "execution": {
119
+ "stop": 276503,
120
+ "trace_length": 23,
121
+ "trace_sha256": "b737f6cc0f970f38387f132cb26cd794cbebdf3d7765b391852aa9359b819176"
122
+ },
123
+ "input": {
124
+ "after": 0,
125
+ "count": 0,
126
+ "hash": 7
127
+ },
128
+ "result": -1
129
+ },
130
+ {
131
+ "changes": [],
132
+ "execution": {
133
+ "stop": 276503,
134
+ "trace_length": 23,
135
+ "trace_sha256": "b737f6cc0f970f38387f132cb26cd794cbebdf3d7765b391852aa9359b819176"
136
+ },
137
+ "input": {
138
+ "after": 0,
139
+ "count": 0,
140
+ "hash": 8
141
+ },
142
+ "result": -1
143
+ },
144
+ {
145
+ "changes": [],
146
+ "execution": {
147
+ "stop": 276503,
148
+ "trace_length": 23,
149
+ "trace_sha256": "b737f6cc0f970f38387f132cb26cd794cbebdf3d7765b391852aa9359b819176"
150
+ },
151
+ "input": {
152
+ "after": 0,
153
+ "count": 0,
154
+ "hash": 4294967295
155
+ },
156
+ "result": -1
157
+ },
158
+ {
159
+ "changes": [],
160
+ "execution": {
161
+ "stop": 276503,
162
+ "trace_length": 23,
163
+ "trace_sha256": "b737f6cc0f970f38387f132cb26cd794cbebdf3d7765b391852aa9359b819176"
164
+ },
165
+ "input": {
166
+ "after": 2,
167
+ "count": 0,
168
+ "hash": 0
169
+ },
170
+ "result": -1
171
+ },
172
+ {
173
+ "changes": [],
174
+ "execution": {
175
+ "stop": 276503,
176
+ "trace_length": 23,
177
+ "trace_sha256": "b737f6cc0f970f38387f132cb26cd794cbebdf3d7765b391852aa9359b819176"
178
+ },
179
+ "input": {
180
+ "after": 2,
181
+ "count": 0,
182
+ "hash": 7
183
+ },
184
+ "result": -1
185
+ },
186
+ {
187
+ "changes": [],
188
+ "execution": {
189
+ "stop": 276503,
190
+ "trace_length": 23,
191
+ "trace_sha256": "b737f6cc0f970f38387f132cb26cd794cbebdf3d7765b391852aa9359b819176"
192
+ },
193
+ "input": {
194
+ "after": 2,
195
+ "count": 0,
196
+ "hash": 8
197
+ },
198
+ "result": -1
199
+ },
200
+ {
201
+ "changes": [],
202
+ "execution": {
203
+ "stop": 276503,
204
+ "trace_length": 23,
205
+ "trace_sha256": "b737f6cc0f970f38387f132cb26cd794cbebdf3d7765b391852aa9359b819176"
206
+ },
207
+ "input": {
208
+ "after": 2,
209
+ "count": 0,
210
+ "hash": 4294967295
211
+ },
212
+ "result": -1
213
+ },
214
+ {
215
+ "changes": [],
216
+ "execution": {
217
+ "stop": 276503,
218
+ "trace_length": 23,
219
+ "trace_sha256": "b737f6cc0f970f38387f132cb26cd794cbebdf3d7765b391852aa9359b819176"
220
+ },
221
+ "input": {
222
+ "after": 3,
223
+ "count": 0,
224
+ "hash": 0
225
+ },
226
+ "result": -1
227
+ },
228
+ {
229
+ "changes": [],
230
+ "execution": {
231
+ "stop": 276503,
232
+ "trace_length": 23,
233
+ "trace_sha256": "b737f6cc0f970f38387f132cb26cd794cbebdf3d7765b391852aa9359b819176"
234
+ },
235
+ "input": {
236
+ "after": 3,
237
+ "count": 0,
238
+ "hash": 7
239
+ },
240
+ "result": -1
241
+ },
242
+ {
243
+ "changes": [],
244
+ "execution": {
245
+ "stop": 276503,
246
+ "trace_length": 23,
247
+ "trace_sha256": "b737f6cc0f970f38387f132cb26cd794cbebdf3d7765b391852aa9359b819176"
248
+ },
249
+ "input": {
250
+ "after": 3,
251
+ "count": 0,
252
+ "hash": 8
253
+ },
254
+ "result": -1
255
+ },
256
+ {
257
+ "changes": [],
258
+ "execution": {
259
+ "stop": 276503,
260
+ "trace_length": 23,
261
+ "trace_sha256": "b737f6cc0f970f38387f132cb26cd794cbebdf3d7765b391852aa9359b819176"
262
+ },
263
+ "input": {
264
+ "after": 3,
265
+ "count": 0,
266
+ "hash": 4294967295
267
+ },
268
+ "result": -1
269
+ },
270
+ {
271
+ "changes": [],
272
+ "execution": {
273
+ "stop": 276503,
274
+ "trace_length": 23,
275
+ "trace_sha256": "b737f6cc0f970f38387f132cb26cd794cbebdf3d7765b391852aa9359b819176"
276
+ },
277
+ "input": {
278
+ "after": 7,
279
+ "count": 0,
280
+ "hash": 0
281
+ },
282
+ "result": -1
283
+ },
284
+ {
285
+ "changes": [],
286
+ "execution": {
287
+ "stop": 276503,
288
+ "trace_length": 23,
289
+ "trace_sha256": "b737f6cc0f970f38387f132cb26cd794cbebdf3d7765b391852aa9359b819176"
290
+ },
291
+ "input": {
292
+ "after": 7,
293
+ "count": 0,
294
+ "hash": 7
295
+ },
296
+ "result": -1
297
+ },
298
+ {
299
+ "changes": [],
300
+ "execution": {
301
+ "stop": 276503,
302
+ "trace_length": 23,
303
+ "trace_sha256": "b737f6cc0f970f38387f132cb26cd794cbebdf3d7765b391852aa9359b819176"
304
+ },
305
+ "input": {
306
+ "after": 7,
307
+ "count": 0,
308
+ "hash": 8
309
+ },
310
+ "result": -1
311
+ },
312
+ {
313
+ "changes": [],
314
+ "execution": {
315
+ "stop": 276503,
316
+ "trace_length": 23,
317
+ "trace_sha256": "b737f6cc0f970f38387f132cb26cd794cbebdf3d7765b391852aa9359b819176"
318
+ },
319
+ "input": {
320
+ "after": 7,
321
+ "count": 0,
322
+ "hash": 4294967295
323
+ },
324
+ "result": -1
325
+ },
326
+ {
327
+ "changes": [],
328
+ "execution": {
329
+ "stop": 276503,
330
+ "trace_length": 44,
331
+ "trace_sha256": "2b4f8c02f4ed914fed7a6dbcd6006677b885666b8d3906bb495e97adcbdaf3b3"
332
+ },
333
+ "input": {
334
+ "after": -1,
335
+ "count": 1,
336
+ "hash": 0
337
+ },
338
+ "result": -1
339
+ },
340
+ {
341
+ "changes": [],
342
+ "execution": {
343
+ "stop": 276503,
344
+ "trace_length": 44,
345
+ "trace_sha256": "2b4f8c02f4ed914fed7a6dbcd6006677b885666b8d3906bb495e97adcbdaf3b3"
346
+ },
347
+ "input": {
348
+ "after": -1,
349
+ "count": 1,
350
+ "hash": 7
351
+ },
352
+ "result": -1
353
+ },
354
+ {
355
+ "changes": [],
356
+ "execution": {
357
+ "stop": 276503,
358
+ "trace_length": 44,
359
+ "trace_sha256": "2b4f8c02f4ed914fed7a6dbcd6006677b885666b8d3906bb495e97adcbdaf3b3"
360
+ },
361
+ "input": {
362
+ "after": -1,
363
+ "count": 1,
364
+ "hash": 8
365
+ },
366
+ "result": -1
367
+ },
368
+ {
369
+ "changes": [],
370
+ "execution": {
371
+ "stop": 276503,
372
+ "trace_length": 44,
373
+ "trace_sha256": "2b4f8c02f4ed914fed7a6dbcd6006677b885666b8d3906bb495e97adcbdaf3b3"
374
+ },
375
+ "input": {
376
+ "after": -1,
377
+ "count": 1,
378
+ "hash": 4294967295
379
+ },
380
+ "result": -1
381
+ },
382
+ {
383
+ "changes": [],
384
+ "execution": {
385
+ "stop": 276503,
386
+ "trace_length": 23,
387
+ "trace_sha256": "b737f6cc0f970f38387f132cb26cd794cbebdf3d7765b391852aa9359b819176"
388
+ },
389
+ "input": {
390
+ "after": 0,
391
+ "count": 1,
392
+ "hash": 0
393
+ },
394
+ "result": -1
395
+ },
396
+ {
397
+ "changes": [],
398
+ "execution": {
399
+ "stop": 276503,
400
+ "trace_length": 23,
401
+ "trace_sha256": "b737f6cc0f970f38387f132cb26cd794cbebdf3d7765b391852aa9359b819176"
402
+ },
403
+ "input": {
404
+ "after": 0,
405
+ "count": 1,
406
+ "hash": 7
407
+ },
408
+ "result": -1
409
+ },
410
+ {
411
+ "changes": [],
412
+ "execution": {
413
+ "stop": 276503,
414
+ "trace_length": 23,
415
+ "trace_sha256": "b737f6cc0f970f38387f132cb26cd794cbebdf3d7765b391852aa9359b819176"
416
+ },
417
+ "input": {
418
+ "after": 0,
419
+ "count": 1,
420
+ "hash": 8
421
+ },
422
+ "result": -1
423
+ },
424
+ {
425
+ "changes": [],
426
+ "execution": {
427
+ "stop": 276503,
428
+ "trace_length": 23,
429
+ "trace_sha256": "b737f6cc0f970f38387f132cb26cd794cbebdf3d7765b391852aa9359b819176"
430
+ },
431
+ "input": {
432
+ "after": 0,
433
+ "count": 1,
434
+ "hash": 4294967295
435
+ },
436
+ "result": -1
437
+ },
438
+ {
439
+ "changes": [],
440
+ "execution": {
441
+ "stop": 276503,
442
+ "trace_length": 23,
443
+ "trace_sha256": "b737f6cc0f970f38387f132cb26cd794cbebdf3d7765b391852aa9359b819176"
444
+ },
445
+ "input": {
446
+ "after": 2,
447
+ "count": 1,
448
+ "hash": 0
449
+ },
450
+ "result": -1
451
+ },
452
+ {
453
+ "changes": [],
454
+ "execution": {
455
+ "stop": 276503,
456
+ "trace_length": 23,
457
+ "trace_sha256": "b737f6cc0f970f38387f132cb26cd794cbebdf3d7765b391852aa9359b819176"
458
+ },
459
+ "input": {
460
+ "after": 2,
461
+ "count": 1,
462
+ "hash": 7
463
+ },
464
+ "result": -1
465
+ },
466
+ {
467
+ "changes": [],
468
+ "execution": {
469
+ "stop": 276503,
470
+ "trace_length": 23,
471
+ "trace_sha256": "b737f6cc0f970f38387f132cb26cd794cbebdf3d7765b391852aa9359b819176"
472
+ },
473
+ "input": {
474
+ "after": 2,
475
+ "count": 1,
476
+ "hash": 8
477
+ },
478
+ "result": -1
479
+ },
480
+ {
481
+ "changes": [],
482
+ "execution": {
483
+ "stop": 276503,
484
+ "trace_length": 23,
485
+ "trace_sha256": "b737f6cc0f970f38387f132cb26cd794cbebdf3d7765b391852aa9359b819176"
486
+ },
487
+ "input": {
488
+ "after": 2,
489
+ "count": 1,
490
+ "hash": 4294967295
491
+ },
492
+ "result": -1
493
+ },
494
+ {
495
+ "changes": [],
496
+ "execution": {
497
+ "stop": 276503,
498
+ "trace_length": 23,
499
+ "trace_sha256": "b737f6cc0f970f38387f132cb26cd794cbebdf3d7765b391852aa9359b819176"
500
+ },
501
+ "input": {
502
+ "after": 3,
503
+ "count": 1,
504
+ "hash": 0
505
+ },
506
+ "result": -1
507
+ },
508
+ {
509
+ "changes": [],
510
+ "execution": {
511
+ "stop": 276503,
512
+ "trace_length": 23,
513
+ "trace_sha256": "b737f6cc0f970f38387f132cb26cd794cbebdf3d7765b391852aa9359b819176"
514
+ },
515
+ "input": {
516
+ "after": 3,
517
+ "count": 1,
518
+ "hash": 7
519
+ },
520
+ "result": -1
521
+ },
522
+ {
523
+ "changes": [],
524
+ "execution": {
525
+ "stop": 276503,
526
+ "trace_length": 23,
527
+ "trace_sha256": "b737f6cc0f970f38387f132cb26cd794cbebdf3d7765b391852aa9359b819176"
528
+ },
529
+ "input": {
530
+ "after": 3,
531
+ "count": 1,
532
+ "hash": 8
533
+ },
534
+ "result": -1
535
+ },
536
+ {
537
+ "changes": [],
538
+ "execution": {
539
+ "stop": 276503,
540
+ "trace_length": 23,
541
+ "trace_sha256": "b737f6cc0f970f38387f132cb26cd794cbebdf3d7765b391852aa9359b819176"
542
+ },
543
+ "input": {
544
+ "after": 3,
545
+ "count": 1,
546
+ "hash": 4294967295
547
+ },
548
+ "result": -1
549
+ },
550
+ {
551
+ "changes": [],
552
+ "execution": {
553
+ "stop": 276503,
554
+ "trace_length": 23,
555
+ "trace_sha256": "b737f6cc0f970f38387f132cb26cd794cbebdf3d7765b391852aa9359b819176"
556
+ },
557
+ "input": {
558
+ "after": 7,
559
+ "count": 1,
560
+ "hash": 0
561
+ },
562
+ "result": -1
563
+ },
564
+ {
565
+ "changes": [],
566
+ "execution": {
567
+ "stop": 276503,
568
+ "trace_length": 23,
569
+ "trace_sha256": "b737f6cc0f970f38387f132cb26cd794cbebdf3d7765b391852aa9359b819176"
570
+ },
571
+ "input": {
572
+ "after": 7,
573
+ "count": 1,
574
+ "hash": 7
575
+ },
576
+ "result": -1
577
+ },
578
+ {
579
+ "changes": [],
580
+ "execution": {
581
+ "stop": 276503,
582
+ "trace_length": 23,
583
+ "trace_sha256": "b737f6cc0f970f38387f132cb26cd794cbebdf3d7765b391852aa9359b819176"
584
+ },
585
+ "input": {
586
+ "after": 7,
587
+ "count": 1,
588
+ "hash": 8
589
+ },
590
+ "result": -1
591
+ },
592
+ {
593
+ "changes": [],
594
+ "execution": {
595
+ "stop": 276503,
596
+ "trace_length": 23,
597
+ "trace_sha256": "b737f6cc0f970f38387f132cb26cd794cbebdf3d7765b391852aa9359b819176"
598
+ },
599
+ "input": {
600
+ "after": 7,
601
+ "count": 1,
602
+ "hash": 4294967295
603
+ },
604
+ "result": -1
605
+ },
606
+ {
607
+ "changes": [],
608
+ "execution": {
609
+ "stop": 276503,
610
+ "trace_length": 161,
611
+ "trace_sha256": "aeade8b2ceebbb528c6d47d5896f7da27a17decb7f63b38263d30357f865d445"
612
+ },
613
+ "input": {
614
+ "after": -1,
615
+ "count": 4,
616
+ "hash": 0
617
+ },
618
+ "result": -1
619
+ },
620
+ {
621
+ "changes": [],
622
+ "execution": {
623
+ "stop": 276503,
624
+ "trace_length": 147,
625
+ "trace_sha256": "1ff222cf7ae137a993fe330e22cc1c4acd6ea0f45802785058c94442133e6f19"
626
+ },
627
+ "input": {
628
+ "after": -1,
629
+ "count": 4,
630
+ "hash": 7
631
+ },
632
+ "result": 3
633
+ },
634
+ {
635
+ "changes": [],
636
+ "execution": {
637
+ "stop": 276503,
638
+ "trace_length": 161,
639
+ "trace_sha256": "aeade8b2ceebbb528c6d47d5896f7da27a17decb7f63b38263d30357f865d445"
640
+ },
641
+ "input": {
642
+ "after": -1,
643
+ "count": 4,
644
+ "hash": 8
645
+ },
646
+ "result": -1
647
+ },
648
+ {
649
+ "changes": [],
650
+ "execution": {
651
+ "stop": 276503,
652
+ "trace_length": 106,
653
+ "trace_sha256": "16c3881692e0d40994fd90d06b9d8f76e1afcc31645e046691d79e3c190a1389"
654
+ },
655
+ "input": {
656
+ "after": -1,
657
+ "count": 4,
658
+ "hash": 4294967295
659
+ },
660
+ "result": 2
661
+ },
662
+ {
663
+ "changes": [],
664
+ "execution": {
665
+ "stop": 276503,
666
+ "trace_length": 140,
667
+ "trace_sha256": "2977c6f787f7f71507019be1e2fa1fe8accee0e6f1aff36732c8b783221cc2ca"
668
+ },
669
+ "input": {
670
+ "after": 0,
671
+ "count": 4,
672
+ "hash": 0
673
+ },
674
+ "result": -1
675
+ },
676
+ {
677
+ "changes": [],
678
+ "execution": {
679
+ "stop": 276503,
680
+ "trace_length": 126,
681
+ "trace_sha256": "981828225608290c72a409a8949670c097546599ca46ce8fc24a59618fcee0d4"
682
+ },
683
+ "input": {
684
+ "after": 0,
685
+ "count": 4,
686
+ "hash": 7
687
+ },
688
+ "result": 3
689
+ },
690
+ {
691
+ "changes": [],
692
+ "execution": {
693
+ "stop": 276503,
694
+ "trace_length": 140,
695
+ "trace_sha256": "2977c6f787f7f71507019be1e2fa1fe8accee0e6f1aff36732c8b783221cc2ca"
696
+ },
697
+ "input": {
698
+ "after": 0,
699
+ "count": 4,
700
+ "hash": 8
701
+ },
702
+ "result": -1
703
+ },
704
+ {
705
+ "changes": [],
706
+ "execution": {
707
+ "stop": 276503,
708
+ "trace_length": 85,
709
+ "trace_sha256": "07275f89d955031e581d7483475b3437da4d7604ac1548f60485da94286da2c4"
710
+ },
711
+ "input": {
712
+ "after": 0,
713
+ "count": 4,
714
+ "hash": 4294967295
715
+ },
716
+ "result": 2
717
+ },
718
+ {
719
+ "changes": [],
720
+ "execution": {
721
+ "stop": 276503,
722
+ "trace_length": 64,
723
+ "trace_sha256": "39839676b51d6213fd85cff3eae21304c1539e9e639563ef51d3f9e1f0987cfd"
724
+ },
725
+ "input": {
726
+ "after": 2,
727
+ "count": 4,
728
+ "hash": 0
729
+ },
730
+ "result": -1
731
+ },
732
+ {
733
+ "changes": [],
734
+ "execution": {
735
+ "stop": 276503,
736
+ "trace_length": 50,
737
+ "trace_sha256": "ac0d3df14881d08d2393cb2a19b89ca4ac420cf5efef2c7ad0d2090ce70c561b"
738
+ },
739
+ "input": {
740
+ "after": 2,
741
+ "count": 4,
742
+ "hash": 7
743
+ },
744
+ "result": 3
745
+ },
746
+ {
747
+ "changes": [],
748
+ "execution": {
749
+ "stop": 276503,
750
+ "trace_length": 64,
751
+ "trace_sha256": "39839676b51d6213fd85cff3eae21304c1539e9e639563ef51d3f9e1f0987cfd"
752
+ },
753
+ "input": {
754
+ "after": 2,
755
+ "count": 4,
756
+ "hash": 8
757
+ },
758
+ "result": -1
759
+ },
760
+ {
761
+ "changes": [],
762
+ "execution": {
763
+ "stop": 276503,
764
+ "trace_length": 64,
765
+ "trace_sha256": "39839676b51d6213fd85cff3eae21304c1539e9e639563ef51d3f9e1f0987cfd"
766
+ },
767
+ "input": {
768
+ "after": 2,
769
+ "count": 4,
770
+ "hash": 4294967295
771
+ },
772
+ "result": -1
773
+ },
774
+ {
775
+ "changes": [],
776
+ "execution": {
777
+ "stop": 276503,
778
+ "trace_length": 23,
779
+ "trace_sha256": "b737f6cc0f970f38387f132cb26cd794cbebdf3d7765b391852aa9359b819176"
780
+ },
781
+ "input": {
782
+ "after": 3,
783
+ "count": 4,
784
+ "hash": 0
785
+ },
786
+ "result": -1
787
+ },
788
+ {
789
+ "changes": [],
790
+ "execution": {
791
+ "stop": 276503,
792
+ "trace_length": 23,
793
+ "trace_sha256": "b737f6cc0f970f38387f132cb26cd794cbebdf3d7765b391852aa9359b819176"
794
+ },
795
+ "input": {
796
+ "after": 3,
797
+ "count": 4,
798
+ "hash": 7
799
+ },
800
+ "result": -1
801
+ },
802
+ {
803
+ "changes": [],
804
+ "execution": {
805
+ "stop": 276503,
806
+ "trace_length": 23,
807
+ "trace_sha256": "b737f6cc0f970f38387f132cb26cd794cbebdf3d7765b391852aa9359b819176"
808
+ },
809
+ "input": {
810
+ "after": 3,
811
+ "count": 4,
812
+ "hash": 8
813
+ },
814
+ "result": -1
815
+ },
816
+ {
817
+ "changes": [],
818
+ "execution": {
819
+ "stop": 276503,
820
+ "trace_length": 23,
821
+ "trace_sha256": "b737f6cc0f970f38387f132cb26cd794cbebdf3d7765b391852aa9359b819176"
822
+ },
823
+ "input": {
824
+ "after": 3,
825
+ "count": 4,
826
+ "hash": 4294967295
827
+ },
828
+ "result": -1
829
+ },
830
+ {
831
+ "changes": [],
832
+ "execution": {
833
+ "stop": 276503,
834
+ "trace_length": 23,
835
+ "trace_sha256": "b737f6cc0f970f38387f132cb26cd794cbebdf3d7765b391852aa9359b819176"
836
+ },
837
+ "input": {
838
+ "after": 7,
839
+ "count": 4,
840
+ "hash": 0
841
+ },
842
+ "result": -1
843
+ },
844
+ {
845
+ "changes": [],
846
+ "execution": {
847
+ "stop": 276503,
848
+ "trace_length": 23,
849
+ "trace_sha256": "b737f6cc0f970f38387f132cb26cd794cbebdf3d7765b391852aa9359b819176"
850
+ },
851
+ "input": {
852
+ "after": 7,
853
+ "count": 4,
854
+ "hash": 7
855
+ },
856
+ "result": -1
857
+ },
858
+ {
859
+ "changes": [],
860
+ "execution": {
861
+ "stop": 276503,
862
+ "trace_length": 23,
863
+ "trace_sha256": "b737f6cc0f970f38387f132cb26cd794cbebdf3d7765b391852aa9359b819176"
864
+ },
865
+ "input": {
866
+ "after": 7,
867
+ "count": 4,
868
+ "hash": 8
869
+ },
870
+ "result": -1
871
+ },
872
+ {
873
+ "changes": [],
874
+ "execution": {
875
+ "stop": 276503,
876
+ "trace_length": 23,
877
+ "trace_sha256": "b737f6cc0f970f38387f132cb26cd794cbebdf3d7765b391852aa9359b819176"
878
+ },
879
+ "input": {
880
+ "after": 7,
881
+ "count": 4,
882
+ "hash": 4294967295
883
+ },
884
+ "result": -1
885
+ },
886
+ {
887
+ "changes": [],
888
+ "execution": {
889
+ "stop": 276503,
890
+ "trace_length": 294,
891
+ "trace_sha256": "fc928dc8ad661bee9b04e2f4f8cff713c4d2d1690a2f28ab52d96f8ae4ad02dc"
892
+ },
893
+ "input": {
894
+ "after": -1,
895
+ "count": 8,
896
+ "hash": 0
897
+ },
898
+ "result": 7
899
+ },
900
+ {
901
+ "changes": [],
902
+ "execution": {
903
+ "stop": 276503,
904
+ "trace_length": 147,
905
+ "trace_sha256": "1ff222cf7ae137a993fe330e22cc1c4acd6ea0f45802785058c94442133e6f19"
906
+ },
907
+ "input": {
908
+ "after": -1,
909
+ "count": 8,
910
+ "hash": 7
911
+ },
912
+ "result": 3
913
+ },
914
+ {
915
+ "changes": [],
916
+ "execution": {
917
+ "stop": 276503,
918
+ "trace_length": 229,
919
+ "trace_sha256": "c7d9a4bfe69f8d2c523e49d76d6786a8570915309b75dcf95ea683aa389ffae8"
920
+ },
921
+ "input": {
922
+ "after": -1,
923
+ "count": 8,
924
+ "hash": 8
925
+ },
926
+ "result": 5
927
+ },
928
+ {
929
+ "changes": [],
930
+ "execution": {
931
+ "stop": 276503,
932
+ "trace_length": 106,
933
+ "trace_sha256": "16c3881692e0d40994fd90d06b9d8f76e1afcc31645e046691d79e3c190a1389"
934
+ },
935
+ "input": {
936
+ "after": -1,
937
+ "count": 8,
938
+ "hash": 4294967295
939
+ },
940
+ "result": 2
941
+ },
942
+ {
943
+ "changes": [],
944
+ "execution": {
945
+ "stop": 276503,
946
+ "trace_length": 273,
947
+ "trace_sha256": "90ee63c83a2485b13cb0e194cbbd99bb6ed00887840d47983526fc90940024c6"
948
+ },
949
+ "input": {
950
+ "after": 0,
951
+ "count": 8,
952
+ "hash": 0
953
+ },
954
+ "result": 7
955
+ },
956
+ {
957
+ "changes": [],
958
+ "execution": {
959
+ "stop": 276503,
960
+ "trace_length": 126,
961
+ "trace_sha256": "981828225608290c72a409a8949670c097546599ca46ce8fc24a59618fcee0d4"
962
+ },
963
+ "input": {
964
+ "after": 0,
965
+ "count": 8,
966
+ "hash": 7
967
+ },
968
+ "result": 3
969
+ },
970
+ {
971
+ "changes": [],
972
+ "execution": {
973
+ "stop": 276503,
974
+ "trace_length": 208,
975
+ "trace_sha256": "a2fdd9042637022137a42d5c2aa956c576a189fae60346af123ab053b1667a01"
976
+ },
977
+ "input": {
978
+ "after": 0,
979
+ "count": 8,
980
+ "hash": 8
981
+ },
982
+ "result": 5
983
+ },
984
+ {
985
+ "changes": [],
986
+ "execution": {
987
+ "stop": 276503,
988
+ "trace_length": 85,
989
+ "trace_sha256": "07275f89d955031e581d7483475b3437da4d7604ac1548f60485da94286da2c4"
990
+ },
991
+ "input": {
992
+ "after": 0,
993
+ "count": 8,
994
+ "hash": 4294967295
995
+ },
996
+ "result": 2
997
+ },
998
+ {
999
+ "changes": [],
1000
+ "execution": {
1001
+ "stop": 276503,
1002
+ "trace_length": 197,
1003
+ "trace_sha256": "a56441628139ddd6fa00ea08ab44559d845360a74fe10397854ae10280780d4f"
1004
+ },
1005
+ "input": {
1006
+ "after": 2,
1007
+ "count": 8,
1008
+ "hash": 0
1009
+ },
1010
+ "result": 7
1011
+ },
1012
+ {
1013
+ "changes": [],
1014
+ "execution": {
1015
+ "stop": 276503,
1016
+ "trace_length": 50,
1017
+ "trace_sha256": "ac0d3df14881d08d2393cb2a19b89ca4ac420cf5efef2c7ad0d2090ce70c561b"
1018
+ },
1019
+ "input": {
1020
+ "after": 2,
1021
+ "count": 8,
1022
+ "hash": 7
1023
+ },
1024
+ "result": 3
1025
+ },
1026
+ {
1027
+ "changes": [],
1028
+ "execution": {
1029
+ "stop": 276503,
1030
+ "trace_length": 132,
1031
+ "trace_sha256": "0971368401626828b5ffd5d6ae9abac1c2d4cc276a9acecf8fefaa074e253288"
1032
+ },
1033
+ "input": {
1034
+ "after": 2,
1035
+ "count": 8,
1036
+ "hash": 8
1037
+ },
1038
+ "result": 5
1039
+ },
1040
+ {
1041
+ "changes": [],
1042
+ "execution": {
1043
+ "stop": 276503,
1044
+ "trace_length": 211,
1045
+ "trace_sha256": "46b86a6db111183a33587a2e16337468c10ce14d927fa046c5d0e6506cb67e9b"
1046
+ },
1047
+ "input": {
1048
+ "after": 2,
1049
+ "count": 8,
1050
+ "hash": 4294967295
1051
+ },
1052
+ "result": -1
1053
+ },
1054
+ {
1055
+ "changes": [],
1056
+ "execution": {
1057
+ "stop": 276503,
1058
+ "trace_length": 156,
1059
+ "trace_sha256": "907a9644f896ad8962f7596b839831e582c5a79fefaf6c1ad2bc20648b58d82c"
1060
+ },
1061
+ "input": {
1062
+ "after": 3,
1063
+ "count": 8,
1064
+ "hash": 0
1065
+ },
1066
+ "result": 7
1067
+ },
1068
+ {
1069
+ "changes": [],
1070
+ "execution": {
1071
+ "stop": 276503,
1072
+ "trace_length": 50,
1073
+ "trace_sha256": "ac0d3df14881d08d2393cb2a19b89ca4ac420cf5efef2c7ad0d2090ce70c561b"
1074
+ },
1075
+ "input": {
1076
+ "after": 3,
1077
+ "count": 8,
1078
+ "hash": 7
1079
+ },
1080
+ "result": 4
1081
+ },
1082
+ {
1083
+ "changes": [],
1084
+ "execution": {
1085
+ "stop": 276503,
1086
+ "trace_length": 91,
1087
+ "trace_sha256": "f2bcff3fa710535a380aac469557f1ed96362376da4102a167f0e2aac64c0008"
1088
+ },
1089
+ "input": {
1090
+ "after": 3,
1091
+ "count": 8,
1092
+ "hash": 8
1093
+ },
1094
+ "result": 5
1095
+ },
1096
+ {
1097
+ "changes": [],
1098
+ "execution": {
1099
+ "stop": 276503,
1100
+ "trace_length": 170,
1101
+ "trace_sha256": "cea8f7a76b39fc428fa54f006546fd4668ca4e08a54b006e6d5e29845c5e244a"
1102
+ },
1103
+ "input": {
1104
+ "after": 3,
1105
+ "count": 8,
1106
+ "hash": 4294967295
1107
+ },
1108
+ "result": -1
1109
+ },
1110
+ {
1111
+ "changes": [],
1112
+ "execution": {
1113
+ "stop": 276503,
1114
+ "trace_length": 23,
1115
+ "trace_sha256": "b737f6cc0f970f38387f132cb26cd794cbebdf3d7765b391852aa9359b819176"
1116
+ },
1117
+ "input": {
1118
+ "after": 7,
1119
+ "count": 8,
1120
+ "hash": 0
1121
+ },
1122
+ "result": -1
1123
+ },
1124
+ {
1125
+ "changes": [],
1126
+ "execution": {
1127
+ "stop": 276503,
1128
+ "trace_length": 23,
1129
+ "trace_sha256": "b737f6cc0f970f38387f132cb26cd794cbebdf3d7765b391852aa9359b819176"
1130
+ },
1131
+ "input": {
1132
+ "after": 7,
1133
+ "count": 8,
1134
+ "hash": 7
1135
+ },
1136
+ "result": -1
1137
+ },
1138
+ {
1139
+ "changes": [],
1140
+ "execution": {
1141
+ "stop": 276503,
1142
+ "trace_length": 23,
1143
+ "trace_sha256": "b737f6cc0f970f38387f132cb26cd794cbebdf3d7765b391852aa9359b819176"
1144
+ },
1145
+ "input": {
1146
+ "after": 7,
1147
+ "count": 8,
1148
+ "hash": 8
1149
+ },
1150
+ "result": -1
1151
+ },
1152
+ {
1153
+ "changes": [],
1154
+ "execution": {
1155
+ "stop": 276503,
1156
+ "trace_length": 23,
1157
+ "trace_sha256": "b737f6cc0f970f38387f132cb26cd794cbebdf3d7765b391852aa9359b819176"
1158
+ },
1159
+ "input": {
1160
+ "after": 7,
1161
+ "count": 8,
1162
+ "hash": 4294967295
1163
+ },
1164
+ "result": -1
1165
+ }
1166
+ ],
1167
+ "sha256": "a589351dfe517470a1b121dd2164714987d9e4577bf00c6486e1540035d7a79d",
1168
+ "source": {
1169
+ "archive": "zUrT43_qvm.pk3",
1170
+ "archive_sha256": "b59bf0c5bedf11d50e0edd220da7eade96de40601e98ae14c54c819047df0796",
1171
+ "member": {
1172
+ "bytes": 983300,
1173
+ "comment_hex": "",
1174
+ "compressed_bytes": 246560,
1175
+ "compression": 8,
1176
+ "crc32": "98ea1768",
1177
+ "create_system": 0,
1178
+ "create_version": 63,
1179
+ "date_time": [
1180
+ 2018,
1181
+ 6,
1182
+ 18,
1183
+ 22,
1184
+ 11,
1185
+ 50
1186
+ ],
1187
+ "directory": false,
1188
+ "entry_index": 2,
1189
+ "external_attr": 32,
1190
+ "extra_hex": "0a0020000000000001001800d1e24e974007d40116dcbf962f1fd20116dcbf962f1fd201",
1191
+ "extract_version": 20,
1192
+ "flags": 0,
1193
+ "header_offset": 221309,
1194
+ "internal_attr": 0,
1195
+ "occurrence": 0,
1196
+ "output": "assets/extracted/zUrT43_qvm.pk3/members/000002/vm/qagame.qvm",
1197
+ "path": "vm/qagame.qvm",
1198
+ "sha256": "a589351dfe517470a1b121dd2164714987d9e4577bf00c6486e1540035d7a79d",
1199
+ "type": "member",
1200
+ "volume": 0
1201
+ }
1202
+ }
1203
+ }
docs/research/qvm-resumer-audit.json CHANGED
@@ -8587,6 +8587,17 @@
8587
  "repeated_calls_opt_in": false,
8588
  "repeated_calls_setting": "default_false"
8589
  },
 
 
 
 
 
 
 
 
 
 
 
8590
  {
8591
  "backward_conditional_branches": [],
8592
  "calls": [
@@ -10025,10 +10036,10 @@
10025
  }
10026
  },
10027
  "summary": {
10028
- "call_expressions": 202,
10029
- "files": 154,
10030
  "legacy_expressions": 158,
10031
- "nonliteral_ranges": 27,
10032
  "unresolved_mode_expressions": 3
10033
  }
10034
  }
 
8587
  "repeated_calls_opt_in": false,
8588
  "repeated_calls_setting": "default_false"
8589
  },
8590
+ {
8591
+ "backward_conditional_branches": [],
8592
+ "calls": [],
8593
+ "explicit_result_offsets": null,
8594
+ "helper": "qvm_trace_support.resume",
8595
+ "line": 11,
8596
+ "literal_range": null,
8597
+ "path": "scripts/qvm_camera_world_support.py",
8598
+ "repeated_calls_opt_in": true,
8599
+ "repeated_calls_setting": "literal_true"
8600
+ },
8601
  {
8602
  "backward_conditional_branches": [],
8603
  "calls": [
 
10036
  }
10037
  },
10038
  "summary": {
10039
+ "call_expressions": 203,
10040
+ "files": 155,
10041
  "legacy_expressions": 158,
10042
+ "nonliteral_ranges": 28,
10043
  "unresolved_mode_expressions": 3
10044
  }
10045
  }
scripts/analyze_qvm_entity_hash.py ADDED
@@ -0,0 +1,15 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ #!/usr/bin/env python3
2
+ import itertools
3
+ from pathlib import Path
4
+ from qvm_research_support import source
5
+ from qvm_camera_world_support import find_class,POOL
6
+ from analyze_qvm import write_json
7
+ ENTITIES=[{'active':0,'name':1,'hash':7},{'active':1,'name':0,'hash':7},{'active':2,'name':1,'hash':0xffffffff},{'active':1,'name':1,'hash':7},{'active':-1,'name':2,'hash':7},{'active':1,'name':1,'hash':8},{'active':0,'name':1,'hash':8},{'active':1,'name':1,'hash':0}]
8
+ def main():
9
+ q,raw,h,ins=source();rows=[]
10
+ for count,after,hash in itertools.product([0,1,4,8],[-1,0,2,3,7],[0,7,8,0xffffffff]):
11
+ m={34992508:count}
12
+ for j,e in enumerate(ENTITIES):m.update({POOL+880*j+532:e['active'],POOL+880*j+536:e['name'],POOL+880*j+540:e['hash']})
13
+ m,value,p,b=find_class(ins,m,{8:0 if after<0 else POOL+880*after,12:hash});rows.append({'input':dict(count=count,after=after,hash=hash),'result':-1 if value==0 else (value-POOL)//880,**p})
14
+ write_json(Path('docs/research/qvm-entity-hash.json'),{'source':q['source'],'sha256':q['sha256'],'entities':ENTITIES,'probes':rows,'limits':'Actual276433 over80 cases. Nonzero active and class pointer plus equal raw hash select first entity after cursor. No class text comparison: collisions remain indistinguishable. Safe finite entity bounds only; native/runtime integration unverified.'})
15
+ if __name__=='__main__':main()
scripts/qvm_camera_world_support.py ADDED
@@ -0,0 +1,16 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ """Coherent finite camera/world helpers, with corrected nested child reentry."""
2
+ from qvm_exit_rules_support import E,POOL
3
+ from qvm_trace_support import resume
4
+ from qvm_string_memory_support import frame_args
5
+ from qvm_byte_memory_support import write_bytes
6
+ B=E+0x60000
7
+ S=B+0x30000
8
+
9
+ def run(ins,m,start,stop,frame,args=None,b=None,handlers=None,base=B):
10
+ m,b=frame_args(m,b or {},{base+frame+o:v for o,v in (args or {}).items()})
11
+ before=dict(m);m,e=resume(ins,start+1,stop,m,base,handlers=handlers or {},byte_inputs=b,repeated_calls=True,sync_child_words=True,coherent_memory=True,byte_handlers=True,capture_byte_memory=True,segment_limit=4096,limit=32768)
12
+ changes=[{'address':a,'before':v&0xffffffff,'after':m[a]&0xffffffff} for a,v in before.items() if (m[a]&0xffffffff)!=(v&0xffffffff) and not B<=a<B+0x20000]
13
+ return m,e['return'],{'execution':{k:e[k] for k in ['stop','trace_length','trace_sha256']},'changes':changes},e['byte_memory']
14
+ def string(m,b,address,data):write_bytes(m,b,{address+j:v for j,v in enumerate(bytes(data)+b'\0')})
15
+
16
+ def find_class(ins,m,args,b=None,base=B):return run(ins,m,276433,276503,12,args,b,base=base)
scripts/test_qvm_entity_hash.py ADDED
@@ -0,0 +1,12 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import json,unittest
2
+ from pathlib import Path
3
+ class HashTests(unittest.TestCase):
4
+ def test_independent_first_match_and_cursor(self):
5
+ r=json.loads(Path('docs/research/qvm-entity-hash.json').read_text());self.assertEqual(len(r['probes']),80)
6
+ for p in r['probes']:
7
+ a=p['input'];ids=[j for j,e in enumerate(r['entities'][:a['count']]) if j>a['after'] and e['active']!=0 and e['name']!=0 and e['hash']==a['hash']];self.assertEqual(p['result'],ids[0] if ids else -1)
8
+ def test_read_only_and_hash_collision_order(self):
9
+ r=json.loads(Path('docs/research/qvm-entity-hash.json').read_text())
10
+ for p in r['probes']:self.assertEqual(p['changes'],[])
11
+ rows={tuple(p['input'][k] for k in ['count','after','hash']):p['result'] for p in r['probes']};self.assertEqual(rows[(8,2,7)],3);self.assertEqual(rows[(8,3,7)],4)
12
+ if __name__=='__main__':unittest.main()
xtask/checks.tsv CHANGED
@@ -2333,3 +2333,8 @@ report scripts/analyze_rust_event_construct.py docs/research/rust-event-construc
2333
  edge docs/research/rust-event-construct.json scripts/test_rust_event_construct.py
2334
  group rust-event-construct scripts/analyze_rust_event_construct.py
2335
  edge scripts/analyze_rust_event_construct.py scripts/analyze_qvm_resumer_audit.py
 
 
 
 
 
 
2333
  edge docs/research/rust-event-construct.json scripts/test_rust_event_construct.py
2334
  group rust-event-construct scripts/analyze_rust_event_construct.py
2335
  edge scripts/analyze_rust_event_construct.py scripts/analyze_qvm_resumer_audit.py
2336
+ report scripts/analyze_qvm_entity_hash.py docs/research/qvm-entity-hash.json
2337
+ edge docs/research/qvm-entity-hash.json scripts/test_qvm_entity_hash.py
2338
+ group entity-hash scripts/analyze_qvm_entity_hash.py
2339
+ edge scripts/analyze_qvm_entity_hash.py scripts/analyze_qvm_resumer_audit.py
2340
+ edge scripts/qvm_camera_world_support.py scripts/analyze_qvm_resumer_audit.py