{"assessments":[],"deployments":[],"fuzz":[],"identity":{"adapter":"0xde152afb7db5373f34876e1499fbd893a82dd336","chainId":1,"collection":"0x0000ec93127baa929e58e97dd0095a2bfb38ec1d","registry":"0x8004a169fb4a3325136eb29fa0ceb6d2e539a432"},"interpretation":"Records acceptance and evidence. Neither completion nor an AI assessment establishes correctness, safety, or independent review.","jobId":"c3792acf-e0c4-4268-9eea-c533b7c87935","kind":"shape:chain","nodes":[{"acceptedSubmissionHash":"3f7e355d00d7f776bb4b03e5e5e0e57a8155f4da739899cdcae0a66df90de085","dependsOn":["audit_imported_code"],"execution":{"network":false,"profile":"foundry","requires":[],"skillHash":"2d7d84a1a9972f1497e5bc68a704cbf42294d08c62d2868f102ffe3b909b9b51","skillId":"adapt-contract-project","tools":[]},"key":"adapt_contract_project","kind":"code","role":"implement","skillHash":"2d7d84a1a9972f1497e5bc68a704cbf42294d08c62d2868f102ffe3b909b9b51","skillId":"adapt-contract-project","state":"accepted"},{"acceptedSubmissionHash":"bdff2a6f54e008dbe8c08640ed9933d90baec340a8a85b820d36947f6f7e827b","dependsOn":["adapt_contract_project"],"execution":{"network":false,"profile":"foundry","requires":[],"skillHash":"e5ac2cb1fd91a56aa40b16487fc230c48de0d317c8266140331dd3219bb40a85","skillId":"audit-specialist","tools":[]},"key":"audit_economics","kind":"code","role":"review","skillHash":"e5ac2cb1fd91a56aa40b16487fc230c48de0d317c8266140331dd3219bb40a85","skillId":"audit-specialist","state":"accepted"},{"acceptedSubmissionHash":"2f80f92b2698e2cfe2acf0dfe42e634c660ba0c888387ada8d5fccfab035b1a4","dependsOn":["adapt_contract_project"],"execution":{"network":false,"profile":"foundry","requires":[],"skillHash":"e5ac2cb1fd91a56aa40b16487fc230c48de0d317c8266140331dd3219bb40a85","skillId":"audit-specialist","tools":[]},"key":"audit_flow","kind":"code","role":"review","skillHash":"e5ac2cb1fd91a56aa40b16487fc230c48de0d317c8266140331dd3219bb40a85","skillId":"audit-specialist","state":"accepted"},{"acceptedSubmissionHash":"6db416b09ebecd06709b942523116df30a58f20a12a09760074de233fd4181fe","dependsOn":[],"execution":{"network":false,"profile":"foundry","requires":[],"skillHash":"9897597976b0e72440db7ca402d225aea20f3d37205ba53e7df2400ff80f29cc","skillId":"audit-imported-code","tools":[]},"key":"audit_imported_code","kind":"code","role":"review","skillHash":"9897597976b0e72440db7ca402d225aea20f3d37205ba53e7df2400ff80f29cc","skillId":"audit-imported-code","state":"accepted"},{"acceptedSubmissionHash":"946ff2667e23c860d64ef704083084e53b001e7b9b568c5fff114ad8daab277c","dependsOn":["adapt_contract_project","write_foundry_tests","manifest","audit_math","audit_permissions","audit_economics","audit_flow"],"execution":{"network":false,"profile":"foundry","requires":[],"skillHash":"af3aa01159bbf354f621cafa5c0006f6169e0938a8b015be508b7377dbf165bc","skillId":"audit-judge","tools":[]},"key":"audit_judge","kind":"code","role":"review","skillHash":"af3aa01159bbf354f621cafa5c0006f6169e0938a8b015be508b7377dbf165bc","skillId":"audit-judge","state":"accepted"},{"acceptedSubmissionHash":"2b52ebc9252d56137c70ca5674dac712b7a88156fe44a0a2d1a277c7139dc871","dependsOn":["adapt_contract_project"],"execution":{"network":false,"profile":"foundry","requires":[],"skillHash":"e5ac2cb1fd91a56aa40b16487fc230c48de0d317c8266140331dd3219bb40a85","skillId":"audit-specialist","tools":[]},"key":"audit_math","kind":"code","role":"review","skillHash":"e5ac2cb1fd91a56aa40b16487fc230c48de0d317c8266140331dd3219bb40a85","skillId":"audit-specialist","state":"accepted"},{"acceptedSubmissionHash":"774316c04dcf749a7628d4620c7200084170618800d80fcc669aed255601c0a8","dependsOn":["adapt_contract_project"],"execution":{"network":false,"profile":"foundry","requires":[],"skillHash":"e5ac2cb1fd91a56aa40b16487fc230c48de0d317c8266140331dd3219bb40a85","skillId":"audit-specialist","tools":[]},"key":"audit_permissions","kind":"code","role":"review","skillHash":"e5ac2cb1fd91a56aa40b16487fc230c48de0d317c8266140331dd3219bb40a85","skillId":"audit-specialist","state":"accepted"},{"acceptedSubmissionHash":"cf1fa51bec0500bd8eb0830bddfb9ded3092f836431375ade3159305996a9a86","dependsOn":["adapt_contract_project"],"execution":{"network":false,"profile":"foundry","requires":[],"tools":[]},"key":"manifest","kind":"code","role":"integrate","skillHash":null,"skillId":null,"state":"accepted"},{"acceptedSubmissionHash":"018ba3739a6938805e3d7c75ab6704157c7fdc9784975f8e32b70d0ea3a78667","dependsOn":["adapt_contract_project"],"execution":{"network":false,"profile":"foundry","requires":[],"skillHash":"4c76766b00591dfe982fe85d3de589fdb2f810e5137c301155d1c5e36a1d3b23","skillId":"write-foundry-tests","tools":[]},"key":"write_foundry_tests","kind":"code","role":"tests","skillHash":"4c76766b00591dfe982fe85d3de589fdb2f810e5137c301155d1c5e36a1d3b23","skillId":"write-foundry-tests","state":"accepted"}],"objective":"Launch the Sworn registry (symbol SWORN) from this repository on Ethereum mainnet, deployed in this order and with no other contracts: Renderer (no constructor arguments), Composer (no constructor arguments), then Registry with constructor arguments curator 0xcb0b0531e86a9ac36fa865ca8e3dbccf047fda91 (WhitelistCurator), idmd 0x0000ec93127baa929e58e97dd0095a2bfb38ec1d (IdentityMD), imd 0xd34a99bc0f67ae1bbd63c660e6d0b0dd03e263b7 (IMD), intake 0xa43e6f75ee006411f79ac1c84120606c2330de82 (Intake v2), attester 0x5598aa9146215bc13eb26f2c692ad1461fd32982 (the IMD oracle signer), renderer $contract:Renderer, composer $contract:Composer, burnExecutor 0xe29386719C155B6847aD5a4E97C6674f10ffc750 (IMD BurnExecutor V2; see the burn rule below). The three contracts have no owner roles. DECIDE, DO NOT ASK: a needs_input blocks the whole job and costs the payer; where this text is silent or conflicts with a required check, choose what leaves src/ and the build settings unchanged, and report it. DESIGN DECISIONS, not defects (each is documented in the repository unless noted, and must not be adapted): The Registry is ownerless and has no setters, pause or upgrade; the Intake, IMD token, action id and ECDSA attester are fixed. Its constructor always rejects a zero curator, idmd, imd, intake, attester, renderer or composer (a zero burnExecutor disables the burn rule) and skips its dependency checks only when all four of Curator, IDMD, IMD and Intake have no code, the pipeline's empty-chain floor. Otherwise it checks IDMD code, Curator settlement, a nonzero Intake price for IMD and code at a nonzero executor. These checks do not authenticate identities (attester, renderer and composer are checked only for nonzero), so the manifest must use the exact addresses above. Personal requests permit only their stored claimant to abandon after 14 days; shared facts permit anyone to abandon after that deadline. Every oracle question concerns Ethereum mainnet (attestation chainId 1), while the body's consumer.chainId and the EIP-712 signing domain use the deployment chain. Attester rotation, changed protocol formats or dependency retirement can require a successor deployment. Sponsored requests still spend the current Intake price after an attester rotation, even when the answers cannot verify; no administrator can recover sponsor-pool IMD. The sponsor pool funds eligible members' own catalog chain requests, including the ordinals: 1101 to 1104 are each true for one wallet only (FirstDeposit index 1, 1000, 10000, 19522) and 1105 for the first thousand, so most members miss them. Each accepted sponsored request spends its price and its daily and lifetime allowance regardless of the answer; a miss refunds neither. Burn rule, live on mainnet: after the Intake request, claimSponsored and upgradeSponsored call the executor's previewBridge() with at most 600,000 gas. If it returns at least 69 IMD and a fee of at most 0.005 ETH, msg.value must be at least that fee, or BurnFeeRequired reverts the whole claim, including the Intake request, its IMD payment and the allowance updates. With enough ETH the registry forwards all of msg.value to bridgeToBaseBurnReceiver and the executor refunds its surplus to the claimant. On 2026-10-16 the preview was 454.94 IMD for 0.000219 ETH at block 26,202,203 (the block the docs pin) and 455.40 IMD for 0.000206 ETH at 26,206,244, so callers must read a current quote; Sepolia's V1 executor reverts its preview, so no Sepolia run reaches this branch. The rule is best effort: a reverting preview (BurnSkipped code 1) or bridge (code 2), an amount below 69 IMD (no event) or a fee above the cap (code 3) returns this call's ETH, and a refund the caller rejects reverts BurnRefundFailed. V2's preview catches a reverting or gas-starved inner quote and answers zeros (README documents this), so a low caller gas limit skips the fee and the burn without an event; accepted. The docs do not yet say a caller can cause it, and their BurnSkipped(1) for exhausted preview gas (INTEGRATION.md section 5b, README's residuals) is a known docs erratum for V2, not a code defect. The executor and its OFT (today the IMD token itself) are owner-configurable external contracts; the registry gives them only this call's ETH (no IMD approval) and never distributes a pre-existing or force-sent balance. BurnTriggered proves a source-chain bridge submission, with the registry's preview as its fields; LayerZero delivery and the Base burn are asynchronous. Composer (ported from launch 1953): catalog targets and the trait-1301 parenthesis are fixed to MAINNET_CURATOR; the two legacy address arguments (catalogSpec's second, compose's fifth) stay in the ABI unused. On chain 1, community windows use the registry's block.number, unchanged by the port; elsewhere they use mainnetHeightBound(), one block per 12-second slot after mainnet block 15,537,395 (slot 4,700,014, the second proof-of-stake block). That bound is not a mainnet-head oracle: its slack (76,427 blocks, about 10.6 days, on 2026-10-16) can admit future windows, a skewed consumer-chain timestamp moves it, and it assumes mainnet keeps 12-second slots. Those limits are accepted off mainnet. Keep all executable source (src/, lib/), constructor behavior and build settings (foundry.toml, remappings.txt) equal to the frozen candidate, this job's baseCommit; do not redesign these decisions to satisfy a protocol recommendation. Adapt nothing in src/. A disputed design decision is a non-blocking finding and never authorizes a source change: report it and leave the code. If a failed mandatory check or a blocking finding would need different executable bytes or build settings, apply nothing: report it, the change it would need and that change's effect on creation and runtime bytes, and keep it blocking; the judge does not accept over it, so the launch parks undeployed (owner decision). Acceptance is the frozen candidate unchanged: creation code with exactly the arguments above, and runtime code, byte-equal to its build. Report every change the adapt step makes.","parentJobId":null,"planHash":"a83ca6becacf1d9548e191f0f0f353c9e8f1f1b97b6470d60cfa7da7b428b9f4","previousHash":"0000000000000000000000000000000000000000000000000000000000000000","projectId":"c3792acf-e0c4-4268-9eea-c533b7c87935","publication":{"commit":null,"deliveredAt":null,"repoUrl":"https://github.com/identity-md-launches/launch-2147-launch-sworn-registry-symbol"},"receiptIdentity":{"adapter":"0xde152afb7db5373f34876e1499fbd893a82dd336","chainId":1,"collection":"0x0000ec93127baa929e58e97dd0095a2bfb38ec1d","registry":"0x8004a169fb4a3325136eb29fa0ceb6d2e539a432"},"registry":"0xb6d0a187b050fa5bb0b87033a203f37becf4a775","research":[],"schema":"identitymd-work-v1","signals":[{"agentId":"51493","feedbackHash":"2960cb0beb4e2b4bbe42f068176aac7c07ff5b67af24abf79437f4d988dedcab","nodeKey":"adapt_contract_project","submissionHash":"3f7e355d00d7f776bb4b03e5e5e0e57a8155f4da739899cdcae0a66df90de085","tag1":"verification:checks","tag2":"acceptance-v2","value":1},{"agentId":"51143","feedbackHash":"55154c41d551655b46b724140008f5e23fe7fd3a4988350a4996354e784c6771","nodeKey":"audit_economics","submissionHash":"bdff2a6f54e008dbe8c08640ed9933d90baec340a8a85b820d36947f6f7e827b","tag1":"review:submission","tag2":"acceptance-v2","value":1},{"agentId":"51032","feedbackHash":"3f8182f91076ac238bd6fbf6159d6885332c7390060d1fc5c62f30cd86ecf8fe","nodeKey":"audit_flow","submissionHash":"2f80f92b2698e2cfe2acf0dfe42e634c660ba0c888387ada8d5fccfab035b1a4","tag1":"review:submission","tag2":"acceptance-v2","value":1},{"agentId":"51493","feedbackHash":"9f900b1c69613e308bab1a235699a52015593428847de85d3f60f6da682c425c","nodeKey":"audit_imported_code","submissionHash":"6db416b09ebecd06709b942523116df30a58f20a12a09760074de233fd4181fe","tag1":"review:submission","tag2":"acceptance-v2","value":1},{"agentId":"51315","feedbackHash":"b1a18a09bc0955add2cfdd8206a7e4e2104f1035544a4483e4011608c12377bf","nodeKey":"audit_judge","submissionHash":"946ff2667e23c860d64ef704083084e53b001e7b9b568c5fff114ad8daab277c","tag1":"review:submission","tag2":"acceptance-v2","value":1},{"agentId":"51878","feedbackHash":"8aaf944412e963d22c5688dd9cd8bcf1569d8621f01e3882f15d9b42b1ab691a","nodeKey":"audit_math","submissionHash":"2b52ebc9252d56137c70ca5674dac712b7a88156fe44a0a2d1a277c7139dc871","tag1":"review:submission","tag2":"acceptance-v2","value":1},{"agentId":"51873","feedbackHash":"0a552bd2986658174c9b4a5144a53aef3445947024d6de63052f73b01f7bdd99","nodeKey":"audit_permissions","submissionHash":"774316c04dcf749a7628d4620c7200084170618800d80fcc669aed255601c0a8","tag1":"review:submission","tag2":"acceptance-v2","value":1},{"agentId":"51353","feedbackHash":"b46f28c0ab59654df36e5f8f347cb677a25f7f7cde1c7f1014631693604357ad","nodeKey":"manifest","submissionHash":"cf1fa51bec0500bd8eb0830bddfb9ded3092f836431375ade3159305996a9a86","tag1":"verification:checks","tag2":"acceptance-v2","value":1},{"agentId":"51492","feedbackHash":"568f21d126d626ea475071f0e7393d95704df7858db5836607ba26d8d6f0241f","nodeKey":"write_foundry_tests","submissionHash":"018ba3739a6938805e3d7c75ab6704157c7fdc9784975f8e32b70d0ea3a78667","tag1":"verification:checks","tag2":"acceptance-v2","value":1}],"site":null,"snapshotHash":"6e8d2c15782c138b3ade2b88d10ac610deab96db7595653ea9323d591555f36f","state":"completed","submissions":[{"artifacts":[],"attempt":1,"bundleHash":"a15cff5dbbfa9dd11bec6be2e0186024268d9f626de91661ec2a7da7d7bf7536","device":"be85220723d9ce9d","findings":[],"hash":"018ba3739a6938805e3d7c75ab6704157c7fdc9784975f8e32b70d0ea3a78667","nodeId":"dc48c464-7fd2-41d3-91fe-64ff0b134d3c","outcome":"completed","summary":"I added `test/Manifest.t.sol` with 4 tests, and they all pass with the verifier's fuzz seed. The full suite of 184 tests also passed with that seed, but that run was before I added the new file. I didn't re-run everything afterwards; only the new file was run against the finished code.\n\nThe new file checks the launch exactly as briefed:\n- **One-call deploy on an empty chain:** Renderer, Composer, then Registry are deployed in a single call with the exact constructor addresses. The test checks the name and symbol (\"Sworn\"/SWORN), that every stored address matches, and that each runtime is within the size limit.\n- **Zero arguments:** a fuzz test sets each of the 8 arguments to zero in turn. The seven required ones must revert with `ZeroAddress`, and a zero `burnExecutor` must deploy with the burn rule switched off.\n- **Partly-empty chain:** if Curator has code but IDMD doesn't, the dependency checks run and the deploy reverts with `DependencyHasNoCode`.\n- **Unchecked identities:** a test records that the attester, renderer and composer are only checked for being nonzero. Wrong addresses deploy without complaint, so the manifest has to use the exact ones.\n\nThe suite that was already there covers the burn rule, the sponsor pool, attestations, and invariants over the value the contract holds. I didn't find any defects that needed reporting, so I wrote no `.imd-findings.json`. I made no changes to `src/`, `lib/` or any build settings.","treeHash":"0b5b476650055e7c2f72127eccf612c85d508e6c","usage":{"cachedInputTokens":325087,"inputTokens":16,"model":"claude-opus-5-5","outputTokens":4266,"runtime":"claude","turns":9,"wallClockMs":179316}},{"artifacts":[],"attempt":1,"bundleHash":null,"device":"2a6239e0c1b8c774","findings":[],"hash":"2b52ebc9252d56137c70ca5674dac712b7a88156fe44a0a2d1a277c7139dc871","nodeId":"be945bf9-edec-408a-97a6-a5c6ba7fbb7f","outcome":"completed","summary":"The review is complete. `.imd-findings.json` holds an empty findings list and a coverage record for all 16 entry points plus four invariants. The working tree is otherwise unchanged.\n\n**Outcome.** The Math Precision, Boundary and Numerical Gap passes found no substantiated defect in the frozen candidate. Nothing needs a source or build-setting change, so the launch can proceed on the unchanged bytes.\n\n**What I verified**\n- **Build and suite.** The project builds with the pinned solc 0.8.24 settings, and the full offline suite passes with 184 tests and 17 opt-in fork skips.\n- **Callback budget.** The repo's cold-gas tests, re-run, put the worst `onResult` case at 170,446 gas against the 200,000 stipend, a 15% margin.\n- **Composer bounds.** A scratch probe validated and composed maximal specs of every kind, with uint256.max thresholds and 256-byte items. All stayed under the 1,000-character question and 512-character definition limits, with bodies of 1.2 to 2.1 KB.\n- **Renderer indexing.** A fuzz over every family tier value and community counts up to 2^256-1 never reverted. The data tables have exactly the N+1 start entries the slicer reads, and the eighth-power path length is only computed below 8,192.\n- **Burn rule edges.** The 69 IMD, 0.005 ETH and fee-equality thresholds are inclusive as documented, and every skip path returns exactly this call's ETH.\n- **Shared facts.** The T3 envelope check matches the protocol's own `abi.decode(address[])`, and the hash equality forces the applied list length to equal the stored count, so the head-bounded loop cannot read out of bounds.\n- **Docs versus constants.** The 14-day abandon window, 7,200-block guards, fees, nine-per-token cap, UTC day key, 32 metadata ids and 39 rings all agree between code and documents.\n\n**Known items not re-reported.** The uint16 spec-id exhaustion at 65,535 is already recorded as finding 602ef563, pinned by a test and left unfixed under the frozen-candidate rule. The low-gas preview skip and the off-mainnet height slack are accepted design decisions per the assignment.\n\n**Not reached.** No mainnet fork run was possible offline, so the live executor's 800,000-gas bridge path and the real Curator reads rest on the repository's fork tests and documentation rather than my own execution.","treeHash":null,"usage":{"cachedInputTokens":1791226,"inputTokens":418,"model":"claude-fable-5-1","outputTokens":39904,"runtime":"claude","turns":39,"wallClockMs":665913}},{"artifacts":[],"attempt":1,"bundleHash":null,"device":"2a9662a76cb5f51d","findings":[],"hash":"2f80f92b2698e2cfe2acf0dfe42e634c660ba0c888387ada8d5fccfab035b1a4","nodeId":"3b7305ff-fe36-4556-8a5d-787e254c132e","outcome":"completed","summary":"The review is complete. The findings file holds an empty findings list and 21 coverage rows, one per listed entry point plus five invariant rows. The working tree is otherwise untouched.\n\n**Outcome: no defect in the Execution Trace, Periphery or First Principles areas survived verification.** The code behaves as the brief and INTEGRATION.md describe it.\n\nWhat I checked and how it held:\n\n- **Callback path.** The pending record is cleared before any check, every calldata slice is guarded by an earlier length check, and the question hash binds claimant, trait and window. Both callbacks refuse any caller but the Intake and emit a miss for unknown ids.\n- **Sentinels and coupling.** Claimant zero is reachable only through `requestSharedFact`, Intake ids are never zero, and every reverse index is dropped only when it still names the cleared request. A paid miss followed by a sponsored retry, and a shared-fact caller at the exact head boundary, behaved correctly in a scratch test I ran and removed.\n- **Sponsored and burn flow.** All allowance writes precede the Intake request and roll back on any revert. The burn is best effort as documented, and the registry keeps no ETH except by force-send.\n- **Live dependencies.** Mainnet reads today show the Curator settled, the Intake price at 0.5 IMD, code at IDMD and the executor, and a callback stipend of 200,000 gas, so the constructor's checks pass. The executor's current preview is below the 69 IMD floor, so the burn branch is a plain refund right now.\n- **Periphery.** The Composer's canonical document and body match the plane's key order and the fixtures. Every Renderer table index stays inside the HiveData bounds. Worst-case composed questions stay under the 1,000-byte cap, so a registered spec is always requestable.\n- **Manifest.** No launch.json exists yet. The brief's eight arguments match the constructor's declared order, all are nonzero, and both contract references point backward.\n\nBaseline suite: 184 tests pass, 17 fork tests skip without an RPC. Nothing was unreached.","treeHash":null,"usage":{"cachedInputTokens":1171884,"inputTokens":322,"model":"claude-fable-5-1","outputTokens":42756,"runtime":"claude","turns":30,"wallClockMs":695737}},{"artifacts":[],"attempt":1,"bundleHash":"bda8fa7b8a3f59b0098e5f72511f361b019287dfd4e7944ede17b429493d1408","device":"74979c69cdd583ad","findings":[],"hash":"3f7e355d00d7f776bb4b03e5e5e0e57a8155f4da739899cdcae0a66df90de085","nodeId":"a46ebb40-bd85-459d-8291-3ac855ecdd7b","outcome":"completed","summary":"The project launches as it is: I changed nothing in `src/`, `lib/` or the build settings. Creation and runtime code are byte-equal to the frozen candidate's build.\n\n**What I added:**\n- **`test/SpecIdCap.t.sol`**: two tests that reproduce the low audit finding (602ef563). Registering spec id 65535 still works, and the next `registerSpec` call reverts with an overflow error. Since the registry has no owner or upgrade path, that block is permanent.\n- **`ADAPTATION.md`**: says there were no source changes, explains why the contracts already fit the launch, gives the manifest arguments, and records both audit findings.\n\n**The audit findings:**\n- **The spec-id limit (low)** is real but I left it unfixed and non-blocking. The fix would mean wider id types in `src/` (or a cap with a clear error), which changes both the creation and runtime bytes, and the brief forbids that. The impact is that community specs stop after 55,535 registrations. Forcing that early costs about 355,000 IMD, and no funds are at risk.\n- **The review-scope note (info)** needed no action. Its manifest and its \"no changes needed\" conclusion match mine.\n\n**Why it already fits the launch:**\n- Renderer and Composer take no constructor arguments.\n- Registry takes the 8 addresses in the brief's order, and its constructor is nonpayable.\n- On the empty chain the launch checks use, Registry's constructor skips its dependency checks, so it doesn't revert there.\n- There are no owner roles, no pause or upgrade, and none of the forbidden opcodes.\n\n**Checks:** `forge build` passes. The test suite with the job's fuzz seed gives 182 passed and 0 failed, and the 2 new tests pass. I left out the tests under `test/fork/`, because they need a network and verification runs without one.","treeHash":"28720287216e69fcb4ca4e82ae7c6e76351cb47c","usage":{"cachedInputTokens":301618,"inputTokens":16,"model":"claude-opus-5-5","outputTokens":3783,"runtime":"claude","turns":8,"wallClockMs":187057}},{"artifacts":[],"attempt":1,"bundleHash":null,"device":"74979c69cdd583ad","findings":[{"citation":"resolved","description":"nextSpecId is a uint16 that starts at FIRST_SPEC_ID = 10001. Solidity 0.8 checked arithmetic makes the post-increment revert once nextSpecId reaches 65535. After that, registerSpec reverts for every caller and the registry has no owner or upgrade path, so community specs end permanently. Anyone can bring this forward by paying 6.4 IMD per spec, about 355,424 IMD in total. Non-blocking: the fix would mean wider id types in src/, which the frozen-candidate rule forbids, so this is reported and the code is left as it is.","line":635,"path":"src/Registry.sol","reproduction":"State: nextSpecId == 65535, after 55,534 successful registerSpec calls. Call registerSpec(validSpec) once: it returns id 65535 and nextSpecId++ is evaluated with nextSpecId == 65535, so it overflows and the call reverts Panic(0x11). Every later registerSpec(validSpec) also reverts. Expected: either a documented cap with a clear error, or ids wide enough never to run out.","severity":"low","snippet":"        traitId = nextSpecId++;","title":"Community spec ids are uint16: registerSpec reverts permanently after 55,535 specs"},{"citation":"resolved","description":"Read in full: src/Registry.sol. Read in part: src/Composer.sol (validateSpec, mainnetHeightBound, the function list) and src/Types.sol. Scanned with grep only, for delegatecall, selfdestruct and tx.origin, with no hits: src/Renderer.sol, HiveData.sol, TemplateData.sol and the interfaces. Not reached on chain (no fork run): WhitelistCurator, IDMD, IMD, Intake v2 and BurnExecutor V2. Checked in Registry: access control on onResult and onFailure (msg.sender == intake), pending-request binding and clearing, the attestation checks (signer, chainId 1, panel, window, expiry, questionHash), abandon permissions, nonReentrant on every function that moves value, the sponsor pool's daily, per-token and per-trait limits, and the burn rule's refund paths. None of the launch-forbidden features were found: no owner, pause, mint after launch, proxy, DELEGATECALL or SELFDESTRUCT. Every documented design decision was observed as described and is not reported. The local suite passes: forge test without test/fork gives 182 passed, 0 failed. Manifest to use, unchanged: Renderer [], Composer [], Registry [0xcb0b0531e86a9ac36fa865ca8e3dbccf047fda91, 0x0000ec93127baa929e58e97dd0095a2bfb38ec1d, 0xd34a99bc0f67ae1bbd63c660e6d0b0dd03e263b7, 0xa43e6f75ee006411f79ac1c84120606c2330de82, 0x5598aa9146215bc13eb26f2c692ad1461fd32982, $contract:Renderer, $contract:Composer, 0xe29386719C155B6847aD5a4E97C6674f10ffc750]. No adapt changes are needed.","line":31,"path":"src/Registry.sol","reproduction":"Informational; nothing to reproduce. The constructor order matches the eight arguments above.","severity":"info","snippet":"contract Registry is ERC721, IERC4906, ReentrancyGuard, IOracleConsumer {","title":"Review scope: contracts read and not reached"}],"hash":"6db416b09ebecd06709b942523116df30a58f20a12a09760074de233fd4181fe","nodeId":"dcf412a7-b848-4577-8c7f-842fc45a2af9","outcome":"completed","summary":"The review is finished and nothing blocks the launch. I found one low-severity defect, recorded it with the scope note in `.imd-findings.json`, and changed no tracked files.\n\n**Finding (low, non-blocking):** `src/Registry.sol:635`, `traitId = nextSpecId++;`. Community spec ids are `uint16` and start at 10001, so the 55,535th `registerSpec` call reverts with an overflow (`Panic(0x11)`), and so does every call after it. The registry has no owner or upgrade path, so community specs would end for good. Anyone could force this early by paying 6.4 IMD per spec, about 355k IMD in total. Fixing it would mean changing `src/`, which the frozen-candidate rule forbids, so I reported it and left the code as it is. I wrote no proof test because the finding is below high.\n\n**What was read:**\n- **In full:** `Registry.sol`.\n- **In part:** `Composer.sol` (`validateSpec`, `mainnetHeightBound` and the list of functions) and `Types.sol`.\n- **Searched only, for `delegatecall`, `selfdestruct` and `tx.origin` (none found):** `Renderer.sol`, `HiveData.sol`, `TemplateData.sol` and the interfaces.\n- **Not reached:** the live mainnet contracts (WhitelistCurator, IDMD, IMD, Intake v2 and BurnExecutor V2). I didn't run the fork tests.\n\n**What I checked in `Registry.sol`:**\n- Only the Intake can call `onResult` and `onFailure`.\n- Pending requests are bound to their claimant and cleared correctly.\n- Every attestation check is there: signer, chainId 1, panel size and quorum, block window, expiry and `questionHash`.\n- Only the stored claimant can abandon a personal request; anyone can abandon a shared fact.\n- Every function that moves IMD or ETH is protected against reentrancy.\n- The sponsor pool's daily, per-IDMD-token and per-trait limits hold.\n- The burn rule refunds the caller's ETH on each skip path.\n\nNone of the features the launch forbids are present: no owner, pause, minting after launch, proxy, DELEGATECALL or SELFDESTRUCT. Each documented design decision matched its description, so none is reported as a defect.\n\nThe local test suite passes: 182 passed, 0 failed (fork tests excluded). The adapt step needs no changes. The manifest should deploy the frozen candidate as is: Renderer with no arguments, Composer with no arguments, then Registry with the eight constructor arguments exactly as the task lists them.","treeHash":null,"usage":{"cachedInputTokens":283343,"inputTokens":12,"model":"claude-opus-5-5","outputTokens":4280,"runtime":"claude","turns":6,"wallClockMs":181988}},{"artifacts":[],"attempt":1,"bundleHash":null,"device":"42a6bb6aa496cd6b","findings":[],"hash":"774316c04dcf749a7628d4620c7200084170618800d80fcc669aed255601c0a8","nodeId":"37291975-c556-477e-ba6d-d79e505f0456","outcome":"completed","summary":"The review is complete and the findings file is written. The working tree is clean apart from the ignored findings file.\n\n**Outcome: no substantiated defect in the assigned area.** The findings list is empty and the coverage record answers all 16 verifier entry points plus three invariants, every row `holds` with a one-line reason.\n\n**What I checked**\n\n- Permission model: the three contracts have no owner, setter, pause, upgrade, receive or fallback. All dependency addresses are written once in the constructor. The only callers with special effect are the fixed Intake (callbacks) and the fixed attester key (signatures), both verified against the Intake v2 reference, whose `complete` is writer-only and binds the request id.\n- Trust gaps: callbacks for requests the registry never made are rejected by the pending check, cross-claimant and cross-trait attestations fail on `questionHash`, the EIP-712 domain binds chain and contract, and the pool can only leave through member-gated catalog chain requests at the Intake price.\n- Asymmetry: paid versus sponsored paths, personal versus shared pending records, `onResult` versus `onFailure`, and `claimSponsored` versus `upgradeSponsored` were diffed side by side. The IDMD path is strictly more restrictive than `claimSponsored` and grants nothing extra, which the documentation states as design.\n- Burn rule: the registry's assumptions about BurnExecutor V2 match its source. The preview is a non-reverting view, the bridge is permissionless and `nonReentrant`, and surplus returns to the claimant.\n\n**Verification**\n\n- `forge build` succeeds with the frozen settings and the hermetic suite passes (184 tests, fork tests skipped as there is no RPC).\n- Three scratch probes confirmed documented behavior rather than defects: a stranger can discard a late shared-fact answer after 14 days, the IDMD counter never binds beyond the per-wallet cap, and a non-member cannot move pool IMD. The scratch directory was removed afterwards.\n\n**Not reached in depth:** Renderer output (outside my area), fork behavior against mainnet, and the Composer question-length bound for maximal specs beyond the repository's existing fuzz test. No `launch.json` exists yet; the manifest step must use the exact addresses from the brief because attester, renderer and composer are checked only for being nonzero.","treeHash":null,"usage":{"cachedInputTokens":1538451,"inputTokens":418,"model":"claude-fable-5-1","outputTokens":36811,"runtime":"claude","turns":32,"wallClockMs":674045}},{"artifacts":[],"attempt":1,"bundleHash":null,"device":"e3a598aae0640402","findings":[{"citation":"resolved","description":"registerSpec assigns the next sequential id to whichever registration is mined first; it takes no expected-id or commitment argument, nextSpecId is public, and spec names are not unique. A community that announces its spec by id before the registration lands can be front-run (or simply raced in the same block) by another registrant who pays the same 6.4 IMD, takes the announced id, and may reuse the exact display name. Every claimant who then calls upgrade([announcedId], maxPrice) pays priceOf (0.5 IMD today) for the substituted question, which the registry never refunds; specs are immutable, so the id stays poisoned. This is the economics specialist's finding, reproduced; the flow, math and permissions specialists reported nothing and I found no further defect in my own pass (constructor dependency checks confirmed live on mainnet at block 26,217,613: Curator settled, Intake price 0.5 IMD, code at IDMD and the V2 executor). Non-blocking: any in-contract remedy (an expectedId argument or a commit step) changes the ABI and therefore Registry's creation and runtime bytes, which this launch forbids. The practical mitigation is off-chain: integrators must publish the id from the SpecRegistered event or the registerSpec return value and compare specOf(id) before paying, never an announced number.","line":635,"path":"src/Registry.sol","reproduction":"State: fresh Registry on chain 1 with the test mocks (MockCurator, MockIDMD, MockIMD, MockIntake at price 0.5e18, zero burn executor), nextSpecId() == 10001; Alice, Mallory and Bob each hold 10 IMD approved to the registry. 1) Alice announces her spec will be 10001. 2) Mallory's registerSpec(kind 1, target 0xdead, item 'event Deposited(address indexed contributor, uint256 indexed hour, uint256 amount)', arg 'contributor', threshold type(uint256).max, window 25,000,000..25,100,000, name 'Depositor') is mined first and returns 10001; Alice's registerSpec with the same name, target 0xcB0b…FDA91 and threshold 1 returns 10002. 3) Bob calls upgrade([10001], 0.5e18). Expected: Bob buys Alice's question. Actual: 0.5e18 IMD leaves Bob (balance drops exactly 0.5e18), pendingOf(bob, 10001) != 0 with the Intake request carrying Mallory's question, specOf(10001).target == 0xdead and threshold == 2^256-1 while traitName(10001) == 'Depositor'; no count can reach the threshold, so the answer ends in Missed(reason 8) with no refund. Reproduced in a Foundry test (test/scratch/SpecIdRace.t.sol, since removed) asserting mId == 10001, aId == 10002, the 0.5e18 debit and specOf(10001) being Mallory's spec; it passed on the current code, demonstrating the behaviour.","severity":"low","snippet":"        traitId = nextSpecId++;","title":"Sequential community spec ids can be front-run: a claimant who pays for an announced id buys a substituted question"}],"hash":"946ff2667e23c860d64ef704083084e53b001e7b9b568c5fff114ad8daab277c","nodeId":"57481796-d876-49ce-ad16-27a7dd2f52b4","outcome":"completed","summary":"The review is complete and written to `.imd-findings.json`.\n\n**Outcome.** One finding kept, at low severity, and nothing blocking. The frozen candidate can be accepted unchanged.\n\n**What I did**\n\n- Built the tree and ran the full suite offline. All 188 tests passed, with 17 opt-in fork tests skipped.\n- Reproduced the economics specialist's finding in a scratch Foundry test, then removed the test. Sequential ids in `registerSpec` let a front-runner take an announced spec id with a different question, so a claimant who pays for that id buys the substituted question with no refund. It is non-blocking: any in-contract remedy changes the ABI and so the creation and runtime bytes, and the mitigation is off-chain, reading the id from the SpecRegistered event and checking `specOf` before paying.\n- Read through the chain-1 RPC to confirm the constructor's live dependency checks pass today: Curator settled, Intake price 0.5 IMD, code at IDMD and the V2 executor.\n- Did my own pass over the Registry, Composer and Renderer with the supplied checklists: callback authentication and replay, EIP-712 domain and type string, decode bounds, window and panel checks, the sponsor pool limits, the burn and refund paths with reentrancy, ERC-721 overrides, spec validation, and the hive renderer's table indexing. I found no further defect.\n\n**Coverage.** All 16 listed entry points are answered, 15 as holds and `registerSpec` referencing the finding, plus two invariant rows for the live constructor checks and the burn quote.\n\n**One observation, not a defect.** The executor's preview currently returns about 32.6 IMD, below the 69 IMD floor, so a sponsored claim today refunds its ETH and skips the burn without an event, exactly as the accepted design describes.","treeHash":null,"usage":{"cachedInputTokens":1196837,"inputTokens":354,"model":"claude-fable-5-1","outputTokens":29970,"runtime":"claude","turns":28,"wallClockMs":526251}},{"artifacts":[],"attempt":1,"bundleHash":null,"device":"a4c81f495eb81dd0","findings":[{"citation":"resolved","description":"registerSpec assigns the next sequential id to whichever registration is mined first and takes no expected-id or commitment argument. nextSpecId is public, so a community announces its coming spec by id before the registration lands. A front-runner (mempool ordering or an ordinary race in the same block) registers a different spec first for the same 6.4 IMD, taking the announced id, and may reuse the exact display name because names are not unique. The announced spec then lands under the next id. Every claimant who then calls upgrade([announcedId], maxPrice) pays priceOf (0.5 IMD today) for the substituted question: with an unreachable threshold or a wrong target the answer is a Missed(reason 8) and the price is gone; with a reachable one the claimant receives a trait they did not ask for, rendered under the expected name. The registry never refunds a request and specs are immutable, so the loss is per misdirected claim and the id is poisoned permanently. Economic flow affected: claimant IMD paid through the Intake (Economic Security: legitimate feature turned against users; Invariant: the view promise nextSpecId -> write registerSpec diverges under reordering). This is a non-blocking finding: any in-contract remedy (an expectedId argument that reverts on mismatch, or a nameless two-step commit) changes the ABI and therefore the creation and runtime bytes of Registry, which the launch forbids; the practical mitigation is off-chain: integrators must publish and verify the id from SpecRegistered / the registerSpec return value and compare specOf(id) before paying, never an announced number.","line":635,"path":"src/Registry.sol","reproduction":"State: fresh registry on chain 1, nextSpecId() == 10001; Alice, Mallory and Bob each hold and approve 10 IMD. 1) Alice announces her spec will be 10001 and broadcasts registerSpec(kind 1, target Curator, item 'event Deposited(...)', arg 'contributor', threshold 1, window 25,000,000-25,100,000, name 'Depositor'). 2) Mallory's registerSpec with the same name but target 0xdead and threshold type(uint256).max is mined first and returns 10001; Alice's returns 10002. 3) Bob calls upgrade([10001], 0.5e18). Expected: Bob buys Alice's question. Actual: 0.5 IMD leaves Bob, the Intake request carries Mallory's question (specOf(10001).target == 0xdead, threshold == 2^256-1, traitName(10001) == 'Depositor'); the answer can never reach the threshold, so the request ends in Missed(reason 8) with no refund. Verified with a Foundry test (MockIMD/MockIntake/MockCurator from test/mocks) asserting mId == 10001, aId == 10002, Bob's balance drops by 0.5e18 and specOf(10001) is Mallory's spec.","severity":"low","snippet":"        traitId = nextSpecId++;\n        _specs[traitId] = spec;","title":"Sequential community spec ids can be front-run, so claimants pay 0.5 IMD for a substituted question under the announced id"}],"hash":"bdff2a6f54e008dbe8c08640ed9933d90baec340a8a85b820d36947f6f7e827b","nodeId":"180c451f-4d60-4303-a3b2-b44259b9f8d6","outcome":"completed","summary":"The review is complete. The findings file is written and valid, the scratch test is removed, and the working tree holds nothing new outside `.imd-findings.json` (which a global ignore rule hides from status but which is present, 9,148 bytes, and parses).\n\n**Outcome:** one low-severity economic defect; everything else in the Economic Security, Invariant and Flow Gap areas holds or is an accepted, documented design decision.\n\n**Finding 1 (low), `src/Registry.sol:635`.** Community spec ids are sequential and `registerSpec` takes no expected-id argument. A front-runner can take an announced id with a different spec under the same display name, so later `upgrade([id])` callers pay the Intake price for a substituted question with no refund. Confirmed with a Foundry scenario: the front-runner gets id 10001, the announced spec lands at 10002, and a claimant loses 0.5 IMD on a question with an unreachable threshold. Any in-contract remedy changes the ABI and bytes, so it stays non-blocking. The off-chain mitigation is to publish and verify ids from the registration event and compare `specOf` before paying.\n\n**What holds, with the concrete reasoning recorded in the coverage rows:**\n- Pool conservation: IMD leaves only through the Intake at its price on the two sponsored paths; paid paths pull and forward the same amount in one transaction; no sweep or withdrawal exists.\n- Registry ETH balance is unchanged by every burn-rule branch. The preview and bridge quote read the same state in the same transaction, so the bridge-time fee equals the preview and surplus returns to the claimant.\n- Daily and lifetime pool allowances are written once in `_fromPool`, shared by both pool entry points, rolled back on any revert, and never reset.\n- A (claimant, trait) pair is pending or verified at most once; verified entries are permanent; stale or replayed callbacks hit a deleted record.\n- `_rule` windows and thresholds match `Composer.catalogSpec` for every catalog id, and the shared-fact answer encoding matches the oracle reference's `abi.decode(address[])`.\n\n**Not reported, because the task marks them accepted:** pool spending on guaranteed misses (ordinals 1101 to 1104), no refunds after attester rotation or dependency retirement, the best-effort burn with gas-starved preview, executor owner powers, and post-14-day abandon of shared facts by anyone. One harmless observation: `upgradeSponsored` is strictly dominated by `claimSponsored` since both share the same per-wallet limits.\n\n**Coverage:** all 16 listed entry points have a row (15 holds, 1 finding), plus 5 invariant rows. Nothing was left unreached. The full existing suite passed as a baseline before review.","treeHash":null,"usage":{"cachedInputTokens":1909779,"inputTokens":482,"model":"claude-fable-5-1","outputTokens":40820,"runtime":"claude","turns":37,"wallClockMs":842014}},{"artifacts":[],"attempt":1,"bundleHash":"b4f1b3aad94c90df39361eeeedc7ff321978c906194584bb62cff0275b619058","device":"60f85cbc35c28a7e","findings":[],"hash":"cf1fa51bec0500bd8eb0830bddfb9ded3092f836431375ade3159305996a9a86","nodeId":"af5cc548-0181-40c5-913c-a7ef0604f611","outcome":"completed","summary":"Created [launch.json](/root/.identitymd-722/work/c3792acf-e0c4-4268-9eea-c533b7c87935/af5cc548-0181-40c5-913c-a7ef0604f611/launch.json) with Renderer → Composer → Registry and the exact approved arguments.\n\nOnly the manifest changed; source and build settings remain unchanged.\n\nValidation passed: manifest/ABI checks, `forge build`, and seeded `forge test`: **184 passed, 0 failed, 17 fork tests skipped**.","treeHash":"36760e0fedb0bcd7ef2c9917652df601b4bdc336","usage":{"cachedInputTokens":615296,"inputTokens":60769,"model":"gpt-6-astra","outputTokens":5329,"runtime":"codex","turns":5,"wallClockMs":198111}}],"verification":[{"checks":[{"durationMs":36668,"exitCode":0,"name":"build","output":"Compiling 85 files with Solc 0.8.24\nSolc 0.8.24 finished in 35.71s\nCompiler run successful with warnings:\nWarning (5159): \"selfdestruct\" has been deprecated. Note that, starting from the Cancun hard fork, the underlying opcode no longer deletes the code and data associated with an account and only transfers its Ether to the beneficiary, unless executed in the same transaction in which the contract was created (see EIP-6780). Any use in newly deployed contracts is strongly discouraged even if the new behavior is taken into account. Future changes to the EVM might further reduce the functionality of the opcode.\n  --> test/mocks/MockBurnExecutor.sol:10:9:\n   |\n10 |         selfdestruct(payable(to));\n   |         ^^^^^^^^^^^^\n\nWarning (2018): Function state mutability can be restricted to pure\n  --> test/Goldens.t.sol:67:5:\n   |\n67 |     function _widthCard() internal view returns (Card memory c) {\n   |     ^ (Relevant source part starts here and spans across multiple lines).\n\nWarning (2018): Function state mutability can be restricted to pure\n   --> test/Goldens.t.sol:345:5:\n    |\n345 |     function _card(\n    |     ^ (Relevant source part starts here and spans across multiple lines).\n\n","passed":true},{"durationMs":26716,"exitCode":0,"name":"test","output":"No files changed, compilation skipped\n\nRan 6 tests for test/fork/BurnRule.fork.t.sol:BurnRuleForkTest\n[SKIP] test_fork_coldFreeClaimExactFeeFromNonpayableContractClaimant() (gas: 0)\n[SKIP] test_fork_coldFreeClaimWithSurplusBurnsAndExecutorReturnsTheSurplus() (gas: 0)\n[SKIP] test_fork_coldFreeClaimWithoutTheFeeReverts() (gas: 0)\n[SKIP] test_fork_executorConfigurationAndPinnedQuote() (gas: 0)\n[SKIP] test_fork_realExecutorAndOFTForceRefundSurplusToNonpayableRecipient() (gas: 0)\n[SKIP] test_fork_realExecutorExactFeeForNonpayableRecipient() (gas: 0)\nSuite result: ok. 0 passed; 0 failed; 6 skipped; finished in 5.18ms (179.31µs CPU time)\n\nRan 2 tests for test/SpecIdCap.t.sol:SpecIdCapTest\n[PASS] test_lastIdBelowCapStillRegisters() (gas: 502900)\n[PASS] test_registerSpecRevertsAtUint16Max() (gas: 293122)\nSuite result: ok. 2 passed; 0 failed; 0 skipped; finished in 8.36ms (589.38µs CPU time)\n\nRan 8 tests for test/Rename.t.sol:RenameTest\n[PASS] test_catalogSpecNamesMatchTheTable() (gas: 496540)\n[PASS] test_collectionNameAndSymbol() (gas: 25005)\n[PASS] test_composerStaysUnderTheSizeLimitWithHeadroom() (gas: 13473)\n[PASS] test_metadataCarriesTheFinalFamilyNames() (gas: 3753529)\n[PASS] test_nameTableIsTheFinalTable() (gas: 609580)\n[PASS] test_noWorkingNameSurvivesInTheNameTable() (gas: 1060323)\n[PASS] test_unknownIdHasNoName() (gas: 25179)\n[PASS] test_upgradeRefusesTopWeightsAsASharedFact() (gas: 1641444)\nSuite result: ok. 8 passed; 0 failed; 0 skipped; finished in 26.50ms (20.83ms CPU time)\n\nRan 8 tests for test/SepoliaRehearsal.t.sol:SepoliaRehearsalTest\n[PASS] testFuzz_heightBoundIsMonotone(uint64,uint64) (runs: 256, μ: 21004, ~: 20954)\n[PASS] test_catalogBodiesAndHashesStayMainnetAndIgnoreCuratorArgument() (gas: 3035811)\n[PASS] test_directReadsStillUseTheSepoliaCuratorAndIDMD() (gas: 1078460)\n[PASS] test_gameWindowAndDeployBlockNonceRegisterOnSepolia() (gas: 777584)\n[PASS] test_heightBoundCoversMeasuredMainnetHeadsAndAnchor() (gas: 97722)\n[PASS] test_mainnetUsesTheExactDeploymentHeightGuards() (gas: 890202)\n[PASS] test_sepoliaClaimantVerifies701ThroughMockIntake() (gas: 2226434)\n[PASS] test_sepoliaStillRejectsInvalidWindows() (gas: 1247014)\nSuite result: ok. 8 passed; 0 failed; 0 skipped; finished in 38.83ms (38.75ms CPU time)\n\nRan 3 tests for test/Attestations.t.sol:AttestationsTest\n[PASS] test_allFiveRecoverTheAttesterUnderTheirOwnDomainOnly() (gas: 5269883)\n[PASS] test_loaderRejectsUnknownAnswerTypeNames() (gas: 4845)\n[PASS] test_protocolVectorDigestAndSelector() (gas: 2162970)\nSuite result: ok. 3 passed; 0 failed; 0 skipped; finished in 47.98ms (22.51ms CPU time)\n\nRan 7 tests for test/Templates.t.sol:TemplatesTest\n[PASS] test_allTenBodiesAreByteExact() (gas: 1457597)\n[PASS] test_allTenQuestionHashesEqualThePlanes() (gas: 2185841)\n[PASS] test_bodyIsDeterministicInClaimantAndDiffersAcrossClaimants() (gas: 464392)\n[PASS] test_directAndUnknownIdsHaveNoBody() (gas: 60713)\n[PASS] test_hexMinAndCatalogWindows() (gas: 147416)\n[PASS] test_sepoliaChangesOnlyConsumerChainAcrossAllTenBodies() (gas: 3075316)\n[PASS] test_traitNamesAndClasses() (gas: 112489)\nSuite result: ok. 7 passed; 0 failed; 0 skipped; finished in 60.03ms (54.65ms CPU time)\n\nRan 4 tests for test/Manifest.t.sol:ManifestTest\n[PASS] testFuzz_zeroRequiredArgumentReverts(uint8) (runs: 256, μ: 43591, ~: 43394)\nLogs:\n  Bound result 0\n\n[PASS] test_attesterRendererComposerOnlyCheckedForNonzero() (gas: 42452)\n[PASS] test_exactManifestDeploysOnEmptyChainInOneCall() (gas: 131541)\n[PASS] test_partialFloorChecksDependencies() (gas: 39697)\nSuite result: ok. 4 passed; 0 failed; 0 skipped; finished in 620.69ms (627.54ms CPU time)\n\nRan 10 tests for test/ReReview.t.sol:ReReviewTest\n[PASS] test_coldGas_firstCommunityVerificationWithACard() (gas: 2415584)\nLogs:\n  cold onResult gas, first community verification with a card: 133357\n\n[PASS] test_coldGas_sharedFact64Catalog() (gas: 1740251)\nLogs:\n  cold onResult gas, 64-address shared fact (catalog 1201): 164088\n\n[PASS] test_coldGas_sharedFact64Community() (gas: 2108985)\nLogs:\n  cold onResult gas, 64-address shared fact (community T3): 170446\n\n[PASS] test_communityAttributesAppearOnlyForVerifiedSpecs() (gas: 4751043)\n[PASS] test_constructorReadsIsSettledWithoutWriting() (gas: 137310)\n[PASS] test_hugeSignatureOnCommunitySharedFactAndCardRequestClearsUnderStipend() (gas: 12243108)\n[PASS] test_lowerOrdinalAcquiredLaterReplacesTheHigherOne() (gas: 8479122)\n[PASS] test_sameSignedEvidenceSatisfiesAnotherRequestWithTheSameQuestion() (gas: 3262910)\n[PASS] test_specIdsEndAt65534() (gas: 909597)\n[PASS] test_unusedFixedValIsRefusedAndAnEmptyFilterIsNotSerialised() (gas: 1334489)\nSuite result: ok. 10 passed; 0 failed; 0 skipped; finished in 724.59ms (76.10ms CPU time)\n\nRan 2 tests for test/Floor.t.sol:FloorTest\n[PASS] test_mainnetEmptyChainFloor() (gas: 72687056)\n[PASS] test_sepoliaEmptyChainFloor() (gas: 72687024)\nSuite result: ok. 2 passed; 0 failed; 0 skipped; finished in 724.60ms (480.40ms CPU time)\n\nRan 19 tests for test/Goldens.t.sol:GoldensTest\n[PASS] test_escapeJsonNeutralisesMarkup() (gas: 42645)\n[PASS] test_goldenSyntheticCollector() (gas: 20831323)\n[PASS] test_goldenSyntheticDirect() (gas: 5078827)\n[PASS] test_goldenSyntheticFullhouse() (gas: 21514473)\n[PASS] test_goldenSyntheticHoney() (gas: 23746288)\n[PASS] test_goldenSyntheticNewcomer() (gas: 3219081)\n[PASS] test_goldenSyntheticOracle() (gas: 8915956)\n[PASS] test_goldenSyntheticOutsider() (gas: 5211326)\n[PASS] test_goldenSyntheticWidthThroughTheRenderer() (gas: 24718798)\n[PASS] test_imageCommunityPathFollowsTheStepTable() (gas: 13547491)\n[PASS] test_imageIdsOutsideTheCatalogRenderWithoutReverting() (gas: 763825)\n[PASS] test_imageIsPureAndDeterministic() (gas: 16076101)\n[PASS] test_imageOverflowPathAbsentAtOrBelow39AndNeverOverflows() (gas: 13459611)\n[PASS] test_imageRareDotOnlyAtATopTierRareId() (gas: 17170837)\n[PASS] test_imageRingsByCommunityCount() (gas: 5559349)\n[PASS] test_imageStepsUseExponentiationNotXor() (gas: 6674005)\n[PASS] test_reportRendererRuntimeSize() (gas: 129606)\nLogs:\n  Renderer runtime bytes: 21570\n\n[PASS] test_reportTokenURIGas() (gas: 29841499)\nLogs:\n  tokenURI gas synthetic_width: 10810085\n  tokenURI gas synthetic_fullhouse: 9147472\n  tokenURI gas synthetic_honey: 9589924\n\n[PASS] test_templateArtifactsMatchTheCompiledConstants() (gas: 297819)\nSuite result: ok. 19 passed; 0 failed; 0 skipped; finished in 724.39ms (964.76ms CPU time)\n\nRan 32 tests for test/Adversarial.t.sol:AdversarialTest\n[PASS] test_abandonedSharedFactCanBeRequestedAgainAndTheLateAnswerIsIgnored() (gas: 3063452)\n[PASS] test_attestationForAnotherClaimantIsAMissForThisRequest() (gas: 3244206)\n[PASS] test_attestationForAnotherTraitWithTheSameWindowIsAMiss() (gas: 3247257)\n[PASS] test_callbackStarvedOfGasIsNotDeliveredAndStaysPending() (gas: 1692953)\n[PASS] test_cardShowsAtMostThirtyTwoCommunityIdsAndCountsThemAll() (gas: 86215566)\n[PASS] test_claimSponsoredWhilePendingOrVerifiedReverts() (gas: 2104530)\n[PASS] test_communityT3SpecIsASharedFactWithItsOwnHead() (gas: 2423017)\n[PASS] test_everyTemplateVerifiesUnderTheStipendWithACard() (gas: 11730795)\n[PASS] test_expiryAtTheExactSecondStillPassesAndOneLaterDoesNot() (gas: 3241538)\n[PASS] test_fuzz_abandonedPoolRequestKeepsPoolUsedAndLateCallbackIsIgnored(bool) (runs: 256, μ: 1907637, ~: 1891912)\n[PASS] test_fuzz_anyFieldAlteredAfterSigningIsASignatureMiss(uint8,uint256) (runs: 512, μ: 1652915, ~: 1654318)\nLogs:\n  Bound result 7\n\n[PASS] test_fuzz_applySharedFactOnlyWithinTheHead(uint8,uint8) (runs: 256, μ: 1781714, ~: 1762608)\nLogs:\n  Bound result 57\n  Bound result 1\n\n[PASS] test_fuzz_boolAnswerMustBeExactlyZeroOrOne(uint256) (runs: 512, μ: 2076244, ~: 2075770)\n[PASS] test_fuzz_countAnswerAgainstTheThreshold(uint256,bytes1,bool) (runs: 512, μ: 1655357, ~: 1637738)\n[PASS] test_fuzz_expiryAndClockSkewBoundaries(uint64,uint64) (runs: 512, μ: 1649807, ~: 1641465)\n[PASS] test_fuzz_hasTraitAndTraitsOfNeverRevert(address,uint16,uint8,bool,uint8) (runs: 512, μ: 324470, ~: 333478)\n[PASS] test_fuzz_maximalSpecRegistersComposesAndFitsTheBody(uint8,uint256,uint256) (runs: 64, μ: 2367720, ~: 2697774)\nLogs:\n  Bound result 3\n  Bound result 32\n\n[PASS] test_fuzz_panelAndQuorumBoundaries(uint16,uint16,uint16) (runs: 512, μ: 1654964, ~: 1640580)\n[PASS] test_fuzz_panelTraitNeedsElevenAndSeven(uint16,uint16,uint16) (runs: 512, μ: 2083229, ~: 2069565)\n[PASS] test_fuzz_specBodyIsDeterministicAndClaimantBound(address,address) (runs: 256, μ: 864577, ~: 864577)\n[PASS] test_fuzz_upgradeChargesExactlyKTimesPriceAndLeavesThePoolAlone(uint8,uint256) (runs: 256, μ: 4998306, ~: 4217863)\nLogs:\n  Bound result 4\n  Bound result 86828994639583334273\n\n[PASS] test_fuzz_upgradeRejectsEveryIdThatIsNotAnOracleTrait(uint16) (runs: 256, μ: 209813, ~: 209312)\n[PASS] test_fuzz_windowMustEqualTheCanonicalOne(uint64,uint64) (runs: 512, μ: 1641003, ~: 1641002)\n[PASS] test_onFailureRecordsWhatItIsToldAndStoresNothing() (gas: 3064198)\n[PASS] test_questionHashIsBoundToTheClaimantAndTheTrait() (gas: 690361)\n[PASS] test_reentrantTokenCannotReenterAnyIMDMovingFunction() (gas: 7517031)\n[PASS] test_sharedFactWorstCaseEnvelopeUnderTheStipend() (gas: 3983876)\n[PASS] test_signatureShapesThatDoNotRecover() (gas: 9338096)\n[PASS] test_tokenURIDependsOnlyOnTheClaimantsFacts() (gas: 14700480)\n[PASS] test_traitClassForEveryCatalogIdAndRevertsForUnknown() (gas: 703103)\n[PASS] test_upgradeSponsoredDrawsAllNineOverNineDaysAndRefusesDuplicates() (gas: 12560682)\n[PASS] test_verifiedWindowIsTheCanonicalWindowForEveryOracleId() (gas: 16465073)\nSuite result: ok. 32 passed; 0 failed; 0 skipped; finished in 726.34ms (5.92s CPU time)\n\nRan 11 tests for test/fork/Mainnet.fork.t.sol:MainnetForkTest\n[SKIP] test_fork_attestationSignedForAnotherConsumerMissesOnTheRealIntake() (gas: 0)\n[SKIP] test_fork_curatorIsSettledWithTheBriefsConstants() (gas: 0)\n[SKIP] test_fork_firstContributorIsAnHourZeroEarlyBird() (gas: 0)\n[SKIP] test_fork_intakeV2SellsTheActionAsTheBriefRecords() (gas: 0)\n[SKIP] test_fork_lastContributorIsNoEarlyBird() (gas: 0)\n[SKIP] test_fork_memberMintsAndRendersAgainstTheRealCurator() (gas: 0)\n[SKIP] test_fork_nonMemberReadsZeroFalseAndHasNoCuratorTrait() (gas: 0)\n[SKIP] test_fork_operatorTraitReadsTheRealCollectionAndGuardsZero() (gas: 0)\n[SKIP] test_fork_pinnedBlockIsTheOneRecorded() (gas: 0)\n[SKIP] test_fork_thousandthContributorJoinedInsideTheFirstThousandWindow() (gas: 0)\n[SKIP] test_fork_upgradeThroughTheRealIntakeThenCompleteFromTheWriter() (gas: 0)\nSuite result: ok. 0 passed; 0 failed; 11 skipped; finished in 752.95ms (13.57ms CPU time)\n\nRan 8 tests for test/Artifacts.t.sol:ArtifactsTest\n[PASS] test_constructorAcceptsUnavailableCuratorOnEmptyFloor() (gas: 16156)\n[PASS] test_constructorRejectsUnsettledOrUnavailableCurator() (gas: 262986)\n[PASS] test_constructorRejectsZeroAddressesAndStoresTheRest() (gas: 8024)\n[PASS] test_deployScriptUsesMainnetConstantsOnEveryOtherChain() (gas: 60662450)\n[PASS] test_deployScriptUsesSepoliaConstantsAndNonzeroExecutor() (gas: 31208855)\n[PASS] test_noForbiddenOpcodesInRuntime() (gas: 56309448)\n[PASS] test_noImmutableReferencesInAnyArtifact() (gas: 92554609)\n[PASS] test_twoDeploymentsHaveIdenticalRuntimeCode() (gas: 3577724)\nSuite result: ok. 8 passed; 0 failed; 0 skipped; finished in 753.07ms (358.40ms CPU time)\n\nRan 17 tests for test/RegistryRules.t.sol:RegistryRulesTest\n[PASS] test_constructorPriceCheckIsPassiveAndAcceptsAnyNonzeroPrice() (gas: 147502)\n[PASS] test_constructorRejectsEachSingleMistypedDependency() (gas: 19912)\n[PASS] test_constructorRejectsPartiallyCodedDependencyFloor() (gas: 19824)\n[PASS] test_constructorRejectsUnavailableIntake() (gas: 26489)\n[PASS] test_constructorRejectsWrongAsset() (gas: 548859)\n[PASS] test_constructorRejectsZeroIntakePrice() (gas: 42182)\n[PASS] test_fuzz_bothPoolPathsShareOneAllowancePerUtcDay(bool,bool,uint32) (runs: 256, μ: 3241610, ~: 3226887)\nLogs:\n  Bound result 66494\n\n[PASS] test_idmdCounterFollowsTransfersAndStopsAtNine() (gas: 15434120)\n[PASS] test_idmdHolderMustAlsoBeAListMember() (gas: 1763951)\n[PASS] test_memberClaimsOnDeploymentDayWithoutCardOrIdmd() (gas: 1675022)\n[PASS] test_noVerdictConsumesTheDayAndLifetimePair() (gas: 3269502)\n[PASS] test_paidUpgradeAndSharedFactDoNotUseOrObeyPoolDailyLimit() (gas: 8189294)\n[PASS] test_revertingIntakeDoesNotConsumePoolAllowances() (gas: 2028592)\n[PASS] test_specAndFirstClaimCostSixPointNineIMD() (gas: 1880817)\n[PASS] test_specRequiresFullFeeAndAllowance() (gas: 798883)\n[PASS] test_sponsoredUpgradeRequiresExactlyOneTrait() (gas: 1780326)\n[PASS] test_switchingIdmdDoesNotBypassDailyLimit() (gas: 3192030)\nSuite result: ok. 17 passed; 0 failed; 0 skipped; finished in 753.15ms (401.59ms CPU time)\n\nRan 29 tests for test/Registry.t.sol:RegistryTest\n[PASS] test_abandonOnlyAfterFourteenDaysAndStaleCallbackLeavesSuccessor() (gas: 3333466)\n[PASS] test_anyoneReadsAnyWalletAndNothingUsesTxOrigin() (gas: 1943257)\n[PASS] test_attestationForAnotherConsumerOrChainIsNeverAccepted() (gas: 3213846)\n[PASS] test_callbacksRejectEveryoneButTheIntake() (gas: 1630434)\n[PASS] test_claimSponsoredRules() (gas: 5264004)\n[PASS] test_directTraitsAreLiveAndNeedNoCard() (gas: 605974)\n[PASS] test_fuzz_tiersAreMonotone(uint8,bool,uint32,uint128,uint32,uint8) (runs: 256, μ: 710229, ~: 695959)\n[PASS] test_mainnetQuestionAcceptedUnderSepoliaConsumerDomain() (gas: 1726675)\n[PASS] test_mainnetSignatureCannotAnswerSepoliaConsumer() (gas: 1667544)\n[PASS] test_malformedEnvelopeIsNotDeliveredAndStaysPending() (gas: 1561112)\n[PASS] test_mintOncePerWalletAndTransfersKeepClaimant() (gas: 956472)\n[PASS] test_mintWithoutFeeReverts() (gas: 47096)\n[PASS] test_missReasons() (gas: 29440347)\n[PASS] test_noReceiveOrFallback() (gas: 57774)\n[PASS] test_nonMemberIsNeverAnEarlyBird() (gas: 232419)\n[PASS] test_onFailureClearsAndAllowsRetry() (gas: 3006144)\n[PASS] test_onResultGasWorstCase() (gas: 2334293)\nLogs:\n  onResult worst-case gas: 164955\n\n[PASS] test_poolIsTheBalanceAndOnlyLeavesThroughSponsoredRequests() (gas: 5657704)\n[PASS] test_reentrantTokenCannotReenterMint() (gas: 2358744)\n[PASS] test_registerSpecAssignsSequentialIdsAndIsImmutable() (gas: 1231919)\n[PASS] test_sepoliaQuestionMissesWithReasonThreeUnderSepoliaDomain() (gas: 1654372)\n[PASS] test_sharedFactBadEnvelopeIsAMissAndCanBeRequestedAgain() (gas: 6925553)\n[PASS] test_sharedFactFlow() (gas: 2478075)\n[PASS] test_specGuards() (gas: 1337374)\n[PASS] test_strangerCannotDiscardLateValidAnswer() (gas: 1727693)\n[PASS] test_supportsERC4906AndERC721() (gas: 25952)\n[PASS] test_upgradeGuards() (gas: 6034862)\n[PASS] test_upgradeHappyPathMarksTraitAndRefreshesCard() (gas: 2537520)\n[PASS] test_upgradeWithoutCardAttachesToClaimant() (gas: 1895253)\nSuite result: ok. 29 passed; 0 failed; 0 skipped; finished in 753.15ms (802.43ms CPU time)\n\nRan 10 tests for test/ReviewChanges.t.sol:ReviewChangesTest\n[PASS] test_fuzz_emptyFixedArgRequiresZeroValueForT1AndT2(uint256) (runs: 256, μ: 3038988, ~: 3038661)\nLogs:\n  Bound result 13165032196946398837740972896530906301928499526543833370752551818056115\n\n[PASS] test_fuzz_ordinalShowsLowestVerifiedId(uint8) (runs: 256, μ: 4954476, ~: 4866857)\nLogs:\n  Bound result 19\n\n[PASS] test_hugeAnswerClearsUintBoolAndSharedRequestsUnderStipend() (gas: 26379788)\n[PASS] test_hugeSignatureClearsPendingAndAllowsImmediateRetry() (gas: 6838211)\n[PASS] test_metadataReportsMinimaEvenWhenSignedPanelIsLarger() (gas: 6306433)\n[PASS] test_scalarAnswerLengthPrecedesChainSignerAndClaimedType() (gas: 17767584)\n[PASS] test_sharedAnswerUpperBoundPrecedesChainAndSigner() (gas: 4503532)\n[PASS] test_signatureLengthPrecedesAnswerLengthAndChain() (gas: 37652039)\n[PASS] test_unknownRequestStillPrecedesDynamicSizeChecks() (gas: 12871822)\n[PASS] test_validationPrecedenceAfterSizes() (gas: 18086010)\nSuite result: ok. 10 passed; 0 failed; 0 skipped; finished in 753.20ms (1.61s CPU time)\n\nRan 24 tests for test/BurnRule.t.sol:BurnRuleTest\n[PASS] testFuzz_belowThresholdRefundsWithoutFee(bool,uint96,uint96) (runs: 256, μ: 1561564, ~: 1547450)\nLogs:\n  Bound result 10991\n  Bound result 13091\n\n[PASS] testFuzz_dueForwardsWholeValueAndExecutorForceRefunds(bool,uint96,uint96) (runs: 256, μ: 1830715, ~: 1816220)\nLogs:\n  Bound result 79228162445264337593543961327\n  Bound result 13091\n\n[PASS] testFuzz_dueWithoutEnoughFeeRevertsAtomically(bool,uint96,uint96) (runs: 256, μ: 3241388, ~: 3211359)\nLogs:\n  Bound result 79228162445264337593543961327\n  Bound result 13091\n\n[PASS] testFuzz_failedPreviewOrBridgeSkipsAndRefunds(bool,uint8,uint96) (runs: 256, μ: 1763395, ~: 1598383)\nLogs:\n  Bound result 5\n  Bound result 13091\n\n[PASS] testFuzz_nonpayableContractWorksWithNoValueExactFeeAndSurplus(bool,uint8) (runs: 256, μ: 1945856, ~: 1976404)\nLogs:\n  Bound result 2\n\n[PASS] testFuzz_previewExceedingTheBudgetSkipsWithCodeOneAndRefunds(bool,uint96) (runs: 256, μ: 2168267, ~: 2181690)\nLogs:\n  Bound result 100322123176966250\n\n[PASS] testFuzz_quoteAboveCapSkipsWithCodeThree(bool,uint96,uint96) (runs: 256, μ: 1565426, ~: 1551124)\nLogs:\n  Bound result 79228162514259337596170982129\n  Bound result 264337514315787821\n\n[PASS] testFuzz_unsetExecutorDisablesBurnAndRefunds(bool,uint96) (runs: 256, μ: 1584688, ~: 1598430)\nLogs:\n  Bound result 100322123176966250\n\n[PASS] test_constantsAndStorage() (gas: 29216)\n[PASS] test_constructorRejectsNonzeroExecutorWithoutCodeAndAcceptsZeroOrCode() (gas: 22214)\n[PASS] test_exactFeeAndCapAreInclusive() (gas: 1708610)\n[PASS] test_executorReentryIsGuarded() (gas: 1770521)\n[PASS] test_executorSurplusCallReentryIsGuarded() (gas: 2351890)\n[PASS] test_executorSurplusIsForcedOnARejectingRecipient() (gas: 1984962)\n[PASS] test_existingChecksAndIntakeFailurePrecedeBurnFeeCheck() (gas: 579753)\n[PASS] test_gasArgumentsIncludeOnlyTheValueStipend() (gas: 1694399)\n[PASS] test_noFeeAtExactThresholdReverts() (gas: 1537275)\n[PASS] test_nonpayableContractAcceptsZeroRefundOnPreviewFailure() (gas: 1791339)\n[PASS] test_paidFunctionsRejectOneWeiWhereZeroValueSucceeds() (gas: 3763404)\n[PASS] test_previewUsingMostOfTheBudgetIsQuotedAndBurns() (gas: 2236765)\n[PASS] test_registryRefundReentryIsGuarded() (gas: 2174439)\n[PASS] test_rejectedNonzeroRegistryRefundRevertsAllEffects() (gas: 1949413)\n[PASS] test_zeroQuoteStillTriggersWhenDue() (gas: 1643756)\n[PASS] test_zeroValueHasNoStipend() (gas: 1564856)\nSuite result: ok. 24 passed; 0 failed; 0 skipped; finished in 753.19ms (4.99s CPU time)\n\nRan 1 test for test/Invariants.t.sol:InvariantsTest\n[PASS]\nInvariantsTest invariants:\n[PASS] invariant_oneCardPerClaimantWithImmutableClaimant\n[PASS] invariant_poolOnlyLeavesThroughSponsoredRequests\n InvariantsTest invariants (runs: 256, calls: 16384, reverts: 0)\n\n╭----------+-------------------+-------+---------+----------╮\n| Contract | Selector          | Calls | Reverts | Discards |\n+===========================================================+\n| Handler  | claimSponsored    | 3216  | 0       | 0        |\n|----------+-------------------+-------+---------+----------|\n| Handler  | mintCard          | 3254  | 0       | 0        |\n|----------+-------------------+-------+---------+----------|\n| Handler  | sponsor           | 3358  | 0       | 0        |\n|----------+-------------------+-------+---------+----------|\n| Handler  | transfer          | 3237  | 0       | 0        |\n|----------+-------------------+-------+---------+----------|\n| Handler  | upgradeAndDeliver | 3319  | 0       | 0        |\n╰----------+-------------------+-------+---------+----------╯\n\nLogs:\n  Bound result 805521517275466379\n  Bound result 1683624725442130856\n  Bound result 13347\n  Bound result 11656\n  Bound result 1663224203\n  Bound result 1325555598382842085\n  Bound result 465158205540956382\n  Bound result 1790877788340376156\n  Bound result 5593\n  Bound result 601\n\nSuite result: ok. 1 passed; 0 failed; 0 skipped; finished in 10.07s (10.06s CPU time)\n\nRan 1 test for test/BurnInvariant.t.sol:BurnInvariantTest\n[PASS] invariant_registryRetainsNoClaimETHAndPoolOnlyFundsOracleRequests() (runs: 256, calls: 16384, reverts: 0)\n\n╭-------------+----------+-------+---------+----------╮\n| Contract    | Selector | Calls | Reverts | Discards |\n+=====================================================+\n| BurnHandler | claim    | 16384 | 0       | 0        |\n╰-------------+----------+-------+---------+----------╯\n\nLogs:\n  Bound result 66048508775152929047\n  Bound result 3388213489663698\n  Bound result 48955652701\n  Bound result 74264337592978034889\n  Bound result 329\n  Bound result 7976\n  Bound result 74264337592978034889\n  Bound result 4329670727698909\n  Bound result 12614629211367587\n  Bound result 1122777314\n  Bound result 4329670727698909\n  Bound result 15154\n  Bound result 74264337592978034889\n  Bound result 4329670727698909\n  Bound result 1743\n  Bound result 74264337592978034889\n  Bound result 130178016878662\n  Bound result 10965144925723734\n  Bound result 8209\n  Bound result 2360\n  Bound result 130178016878661\n  Bound result 74264337592978034889\n  Bound result 3379\n  Bound result 4333632135824622\n  Bound result 74264337592978034889\n  Bound result 4329670727698909\n  Bound result 4333632135824622\n  Bound result 74264337592978034889\n  Bound result 599290590\n  Bound result 17668259291645668\n  Bound result 93355459706789530984\n  Bound result 4329670727698909\n  Bound result 4333632135824622\n  Bound result 128870748648585734087\n  Bound result 4329670727698909\n  Bound result 6699\n  Bound result 74264337592978034889\n  Bound result 4329670727698909\n  Bound result 2290\n  Bound result 74264337592978034889\n  Bound result 20240\n  Bound result 13408\n  Bound result 74264337592978034889\n  Bound result 4329670727698909\n  Bound result 5\n  Bound result 7271\n  Bound result 4329670727698909\n  Bound result 4333632135824622\n  Bound result 3\n  Bound result 8155401335\n  Bound result 5\n  Bound result 13359\n  Bound result 4329670727698909\n  Bound result 257\n  Bound result 74264337592978034889\n  Bound result 23048\n  Bound result 4333632135824622\n  Bound result 74264337592978034889\n  Bound result 7674\n  Bound result 4333632135824622\n  Bound result 5663\n  Bound result 23428\n  Bound result 4333632135824622\n  Bound result 66048508775152929047\n  Bound result 583\n  Bound result 5266236305527838\n  Bound result 22516\n  Bound result 21868\n  Bound result 107079576609643\n  Bound result 128870748648585734087\n  Bound result 4099\n  Bound result 19999999999950251\n  Bound result 4634\n  Bound result 4329670727698909\n  Bound result 13287430266606581\n  Bound result 15805\n  Bound result 4329670727698909\n  Bound result 792209076546097\n  Bound result 74264337592978034889\n  Bound result 4329670727698909\n  Bound result 2671407626939995\n  Bound result 701406685\n  Bound result 20900\n  Bound result 2436\n  Bound result 111056049307915099832\n  Bound result 14234\n  Bound result 4333632135824622\n  Bound result 1889567282\n  Bound result 2931\n  Bound result 4333632135824622\n  Bound result 7390\n  Bound result 1262205113503512\n  Bound result 1281139557766130\n  Bound result 74264337592978034889\n  Bound result 88\n  Bound result 8980\n  Bound result 9\n  Bound result 4524883261688014\n  Bound result 5439262988029634\n  Bound result 18834\n  Bound result 4329670727698909\n  Bound result 5272\n  Bound result 74264337592978034889\n  Bound result 4329670727698909\n  Bound result 623\n  Bound result 74264337592978034889\n  Bound result 285510556414776\n  Bound result 4333632135824622\n  Bound result 74264337592978034889\n  Bound result 4329670727698909\n  Bound result 4207096747\n  Bound result 128959758704593641317\n  Bound result 11118\n  Bound result 19775270856966611\n  Bound result 74264337592978034889\n  Bound result 1429\n  Bound result 3833\n  Bound result 74264337592978034889\n  Bound result 12939\n  Bound result 10602\n  Bound result 66344749760447516749\n  Bound result 9365\n  Bound result 4333632135824622\n  Bound result 135484575771211364119\n  Bound result 4329670727698909\n  Bound result 4333632135824622\n  Bound result 133718614811353998520\n  Bound result 4329670727698909\n  Bound result 10312025658547596\n  Bound result 13057\n  Bound result 5891\n  Bound result 4333632135824622\n  Bound result 31141493852577320385\n  Bound result 4329670727698909\n  Bound result 6340112313097831\n  Bound result 74264337592978034889\n  Bound result 8093366063670438\n  Bound result 4333632135824622\n  Bound result 74264337592978034889\n  Bound result 8911795617600745\n  Bound result 4333632135824622\n  Bound result 49149627578684911632\n  Bound result 5987267153499943\n  Bound result 4333632135824622\n  Bound result 12534\n  Bound result 19375\n  Bound result 3072492744\n  Bound result 74264337592978034889\n  Bound result 15381\n  Bound result 4333632135824622\n  Bound result 104576654123671593635\n  Bound result 4329670727698909\n  Bound result 4333632135824622\n  Bound result 91794440961031532117\n  Bound result 1699\n  Bound result 4333632135824622\n  Bound result 77776751418742782532\n  Bound result 20056663\n  Bound result 13618163254146247\n  Bound result 1003\n  Bound result 4329670727698909\n  Bound result 4333632135824622\n  Bound result 74264337592978034889\n  Bound result 4329670727698909\n  Bound result 28142141643098\n  Bound result 74264337592978034889\n  Bound result 4329670727698909\n  Bound result 4333632135824622\n  Bound result 5035\n  Bound result 4329670727698909\n  Bound result 19294128242415007\n  Bound result 1264811664\n  Bound result 1981027022817166\n  Bound result 4333632135824622\n  Bound result 74264337592978034888\n  Bound result 2608\n  Bound result 63633\n  Bound result 3317\n  Bound result 4329670727698909\n  Bound result 394166318\n  Bound result 3733\n  Bound result 7898\n  Bound result 14411366952071991\n  Bound result 125\n  Bound result 4329670727698909\n  Bound result 4333632135824622\n  Bound result 89054801195391628547\n  Bound result 7096024114141734\n  Bound result 4333632135824620\n  Bound result 18621\n  Bound result 5292262000763832\n  Bound result 4333632135824622\n  Bound result 74264337592978034889\n  Bound result 4329670727698909\n  Bound result 4333632135824622\n\nSuite result: ok. 1 passed; 0 failed; 0 skipped; finished in 22.63s (22.62s CPU time)\n\nRan 3 tests for test/InvariantsExtended.t.sol:InvariantsExtendedTest\n[PASS]\nInvariantsExtendedTest invariants:\n[PASS] invariant_markedExactlyWhenAPassingAttestationWasDelivered\n[PASS] invariant_oneCardPerClaimant\n[PASS] invariant_poolDailyAndLifetimeLimits\n[PASS] invariant_poolIsFeesPlusDonationsMinusSponsoredRequests\n[PASS] invariant_sharedFactsAreHashesStoredOnlyOnDelivery\n[PASS] invariant_specsAreImmutable\n InvariantsExtendedTest invariants (runs: 96, calls: 4608, reverts: 0)\n\n╭-------------+-------------------+-------+---------+----------╮\n| Contract    | Selector          | Calls | Reverts | Discards |\n+==============================================================+\n| FullHandler | abandonLate       | 262   | 0       | 0        |\n|-------------+-------------------+-------+---------+----------|\n| FullHandler | advanceTime       | 263   | 0       | 0        |\n|-------------+-------------------+-------+---------+----------|\n| FullHandler | applyShared       | 284   | 0       | 0        |\n|-------------+-------------------+-------+---------+----------|\n| FullHandler | claimSponsored    | 286   | 0       | 0        |\n|-------------+-------------------+-------+---------+----------|\n| FullHandler | deliverFalse      | 255   | 0       | 0        |\n|-------------+-------------------+-------+---------+----------|\n| FullHandler | deliverTampered   | 285   | 0       | 0        |\n|-------------+-------------------+-------+---------+----------|\n| FullHandler | deliverTrue       | 292   | 0       | 0        |\n|-------------+-------------------+-------+---------+----------|\n| FullHandler | donate            | 286   | 0       | 0        |\n|-------------+-------------------+-------+---------+----------|\n| FullHandler | failRequest       | 251   | 0       | 0        |\n|-------------+-------------------+-------+---------+----------|\n| FullHandler | mintCard          | 257   | 0       | 0        |\n|-------------+-------------------+-------+---------+----------|\n| FullHandler | registerSpec      | 278   | 0       | 0        |\n|-------------+-------------------+-------+---------+----------|\n| FullHandler | replayConsumed    | 269   | 0       | 0        |\n|-------------+-------------------+-------+---------+----------|\n| FullHandler | requestSharedFact | 258   | 0       | 0        |\n|-------------+-------------------+-------+---------+----------|\n| FullHandler | sponsor           | 299   | 0       | 0        |\n|-------------+-------------------+-------+---------+----------|\n| FullHandler | transfer          | 259   | 0       | 0        |\n|-------------+-------------------+-------+---------+----------|\n| FullHandler | upgradePaid       | 254   | 0       | 0        |\n|-------------+-------------------+-------+---------+----------|\n| FullHandler | upgradeSponsored  | 270   | 0       | 0        |\n╰-------------+-------------------+-------+---------+----------╯\n\nLogs:\n  Bound result 1\n  Bound result 5\n  Bound result 8981\n  Bound result 256\n  Bound result 1600000000000000042\n  Bound result 4439\n  Bound result 8\n  Bound result 2\n  Bound result 5\n  Bound result 1015484790083359675\n\n[PASS] test_handlerReplayOfAConsumedIdChangesNothing() (gas: 1920763)\n[PASS] test_handlerSponsoredSelectionAcceptsMaxSeed() (gas: 1764003)\nLogs:\n  Bound result 3000000000000000000\n\nSuite result: ok. 3 passed; 0 failed; 0 skipped; finished in 26.22s (26.21s CPU time)\n\nRan 20 test suites in 26.23s (67.14s CPU time): 188 tests passed, 0 failed, 17 skipped (205 total tests)\n","passed":true},{"durationMs":525,"exitCode":0,"name":"source-index","output":"{\"v\":1,\"entryPoints\":[\"Registry.abandon(bytes32)\",\"Registry.applySharedFact(uint16,address[])\",\"Registry.approve(address,uint256)\",\"Registry.claimSponsored(uint16)\",\"Registry.mintCard()\",\"Registry.onFailure(bytes32,uint8,bytes32,uint16,uint16,bytes)\",\"Registry.onResult(bytes32,(bytes32,uint256,bytes32,uint8,bytes,uint256,uint64,uint64,bytes32,bytes32,uint16,uint16,uint16,uint64,uint64),bytes)\",\"Registry.registerSpec((uint8,address,string,string,string,uint256,string,uint8,uint256,uint64,uint64,string))\",\"Registry.requestSharedFact(uint16,uint256)\",\"Registry.safeTransferFrom(address,address,uint256)\",\"Registry.safeTransferFrom(address,address,uint256,bytes)\",\"Registry.setApprovalForAll(address,bool)\",\"Registry.sponsor(uint256)\",\"Registry.transferFrom(address,address,uint256)\",\"Registry.upgrade(uint16[],uint256)\",\"Registry.upgradeSponsored(uint256,uint16[])\"],\"files\":{\".gitignore\":8,\".gitmodules\":6,\"ADAPTATION.md\":45,\"CATALOG.md\":268,\"CONCEPT.md\":262,\"DISCLOSURE.md\":58,\"INTEGRATION.md\":467,\"LICENSE\":21,\"README.md\":439,\"TEMPLATES.md\":158,\"foundry.toml\":44,\"reference/Intake.sol\":5175,\"reference/IntakeV2.sol\":5240,\"reference/PROVENANCE.md\":44,\"reference/abi/IMD.json\":1684,\"reference/abi/IdentityMD.json\":894,\"reference/abi/Intake.json\":955,\"reference/abi/IntakeV2.json\":1070,\"reference/abi/WhitelistCurator.json\":794,\"reference/anchors/headers.json\":61,\"reference/attestations/2026-10-10-link-pilot.json\":92,\"reference/attestations/2026-10-10-meatbag-consumer.json\":104,\"reference/attestations/2026-10-11-feed-consumer-v2.json\":105,\"reference/attestations/2026-10-11-nonce-false.json\":92,\"reference/attestations/2026-10-11-nonce-true.json\":92,\"reference/attestations/README.md\":29,\"reference/burn/BurnExecutorV2.sol.txt\":314,\"reference/burn/abi.json\":1001,\"reference/burn/provenance.json\":17,\"reference/intake/completions.json\":147,\"reference/list-record/src/ListRecord.sol\":169,\"reference/list-record/src/ListRecordRenderer.sol\":126,\"reference/list-record/src/interfaces/IListRecordRenderer.sol\":29,\"reference/list-record/src/lib/SSTORE2.sol\":39,\"reference/list-record/src/lib/Str.sol\":54,\"reference/list-record/test/Renderer.t.sol\":165,\"reference/list-record/test/RendererMechanism.t.sol\":203,\"reference/list-record/test/Template.t.sol\":293,\"reference/list-record/test/fixtures/golden_synthetic_held_svg.txt\":1,\"reference/list-record/test/fixtures/golden_synthetic_held_uri.txt\":1,\"reference/list-record/test/fixtures/golden_synthetic_transferred_svg.txt\":1,\"reference/list-record/test/fixtures/golden_synthetic_transferred_uri.txt\":1,\"reference/list-record/test/fixtures/golden_synthetic_width_svg.txt\":1,\"reference/list-record/test/fixtures/golden_synthetic_width_uri.txt\":1,\"reference/plane/checks/1001-hour-savior.json\":81,\"reference/plane/checks/1102-ordinal-1000.json\":81,\"reference/plane/checks/1105-first-thousand.json\":81,\"reference/plane/checks/1201-top-32.json\":82,\"reference/plane/checks/1301-not-born-yesterday.json\":86,\"reference/plane/checks/701-still-here.json\":81,\"reference/plane/checks/801-last-stand.json\":81,\"reference/plane/checks/T2-log-sum-composed.json\":81,\"reference/plane/checks/T4-call-compare-reference.json\":81,\"reference/plane/checks/T5-community-composed.json\":86,\"reference/plane/questionHashes.json\":92,\"reference/plane/quotes/1001-hour-savior.json\":20,\"reference/plane/quotes/1102-ordinal-1000.json\":20,\"reference/plane/quotes/1105-first-thousand.json\":20,\"reference/plane/quotes/1201-top-32.json\":20,\"reference/plane/quotes/1301-not-born-yesterday.json\":20,\"reference/plane/quotes/701-still-here.json\":20,\"reference/plane/quotes/801-last-stand.json\":20,\"reference/plane/quotes/T2-log-sum-composed.json\":20,\"reference/plane/quotes/T4-call-compare-reference.json\":20,\"reference/plane/quotes/T5-community-composed.json\":20,\"remappings.txt\":2,\"script/Deploy.s.sol\":48,\"src/Composer.sol\":636,\"src/HiveData.sol\":75,\"src/Registry.sol\":761,\"src/Renderer.sol\":427,\"src/TemplateData.sol\":16,\"src/Types.sol\":41,\"src/interfaces/IBurnExecutor.sol\":12,\"src/interfaces/IIDMD.sol\":8,\"src/interfaces/IIntake.sol\":29,\"src/interfaces/IOracleConsumer.sol\":38,\"src/interfaces/IWhitelistCurator.sol\":53,\"template/blob.hex\":1,\"template/offsets.txt\":1,\"templates/fixtures/1001-hour-savior.json\":22,\"templates/fixtures/1102-ordinal-1000.json\":22,\"templates/fixtures/1105-first-thousand.json\":22,\"templates/fixtures/1201-top-32.json\":22,\"templates/fixtures/1301-not-born-yesterday.json\":24,\"templates/fixtures/701-still-here.json\":22,\"templates/fixtures/801-last-stand.json\":22,\"templates/fixtures/T2-log-sum-composed.json\":23,\"templates/fixtures/T4-call-compare-reference.json\":21,\"templates/fixtures/T5-community-composed.json\":24,\"test/.gitkeep\":0,\"test/Adversarial.t.sol\":832,\"test/Artifacts.t.sol\":209,\"test/Attestations.t.sol\":196,\"test/Base.t.sol\":158,\"test/BurnInvariant.t.sol\":120,\"test/BurnRule.t.sol\":405,\"test/Floor.t.sol\":134,\"test/Goldens.t.sol\":444,\"test/Invariants.t.sol\":124,\"test/InvariantsExtended.t.sol\":520,\"test/Manifest.t.sol\":89,\"test/NOTES.md\":582,\"test/ReReview.t.sol\":263,\"test/Registry.t.sol\":822,\"test/RegistryRules.t.sol\":335,\"test/Rename.t.sol\":224,\"test/ReviewChanges.t.sol\":215,\"test/SepoliaRehearsal.t.sol\":249,\"test/SpecIdCap.t.sol\":46,\"test/Templates.t.sol\":171,\"test/fixtures/golden_synthetic_collector_preimage.txt\":1,\"test/fixtures/golden_synthetic_collector_svg.txt\":1,\"test/fixtures/golden_synthetic_collector_uri.txt\":1,\"test/fixtures/golden_synthetic_direct_preimage.txt\":1,\"test/fixtures/golden_synthetic_direct_svg.txt\":1,\"test/fixtures/golden_synthetic_direct_uri.txt\":1,\"test/fixtures/golden_synthetic_fullhouse_preimage.txt\":1,\"test/fixtures/golden_synthetic_fullhouse_svg.txt\":1,\"test/fixtures/golden_synthetic_fullhouse_uri.txt\":1,\"test/fixtures/golden_synthetic_honey_preimage.txt\":1,\"test/fixtures/golden_synthetic_honey_svg.txt\":1,\"test/fixtures/golden_synthetic_honey_uri.txt\":1,\"test/fixtures/golden_synthetic_newcomer_preimage.txt\":1,\"test/fixtures/golden_synthetic_newcomer_svg.txt\":1,\"test/fixtures/golden_synthetic_newcomer_uri.txt\":1,\"test/fixtures/golden_synthetic_oracle_preimage.txt\":1,\"test/fixtures/golden_synthetic_oracle_svg.txt\":1,\"test/fixtures/golden_synthetic_oracle_uri.txt\":1,\"test/fixtures/golden_synthetic_outsider_preimage.txt\":1,\"test/fixtures/golden_synthetic_outsider_svg.txt\":1,\"test/fixtures/golden_synthetic_outsider_uri.txt\":1,\"test/fixtures/golden_synthetic_width_preimage.txt\":1,\"test/fixtures/golden_synthetic_width_svg.txt\":1,\"test/fixtures/golden_synthetic_width_uri.txt\":1,\"test/fork/BurnRule.fork.t.sol\":193,\"test/fork/Mainnet.fork.t.sol\":338,\"test/mocks/MockBurnExecutor.sol\":157,\"test/mocks/Mocks.sol\":231,\"tools/gen_template.py\":898,\"tools/test_gen_template.py\":334},\"excluded\":[\"lib/\",\"node_modules/\"],\"truncated\":false}","passed":true}],"detail":"all checks passed","evaluation":"checks","profile":"foundry","status":"accepted","submissionHash":"018ba3739a6938805e3d7c75ab6704157c7fdc9784975f8e32b70d0ea3a78667","verifiedTreeHash":"0b5b476650055e7c2f72127eccf612c85d508e6c","verifierVersion":"0.1.0+745c1db4"},{"checks":[{"durationMs":30930,"exitCode":0,"name":"build","output":"Compiling 84 files with Solc 0.8.24\nSolc 0.8.24 finished in 30.13s\nCompiler run successful with warnings:\nWarning (5159): \"selfdestruct\" has been deprecated. Note that, starting from the Cancun hard fork, the underlying opcode no longer deletes the code and data associated with an account and only transfers its Ether to the beneficiary, unless executed in the same transaction in which the contract was created (see EIP-6780). Any use in newly deployed contracts is strongly discouraged even if the new behavior is taken into account. Future changes to the EVM might further reduce the functionality of the opcode.\n  --> test/mocks/MockBurnExecutor.sol:10:9:\n   |\n10 |         selfdestruct(payable(to));\n   |         ^^^^^^^^^^^^\n\nWarning (2018): Function state mutability can be restricted to pure\n  --> test/Goldens.t.sol:67:5:\n   |\n67 |     function _widthCard() internal view returns (Card memory c) {\n   |     ^ (Relevant source part starts here and spans across multiple lines).\n\nWarning (2018): Function state mutability can be restricted to pure\n   --> test/Goldens.t.sol:345:5:\n    |\n345 |     function _card(\n    |     ^ (Relevant source part starts here and spans across multiple lines).\n\n","passed":true},{"durationMs":25731,"exitCode":0,"name":"test","output":"No files changed, compilation skipped\n\nRan 6 tests for test/fork/BurnRule.fork.t.sol:BurnRuleForkTest\n[SKIP] test_fork_coldFreeClaimExactFeeFromNonpayableContractClaimant() (gas: 0)\n[SKIP] test_fork_coldFreeClaimWithSurplusBurnsAndExecutorReturnsTheSurplus() (gas: 0)\n[SKIP] test_fork_coldFreeClaimWithoutTheFeeReverts() (gas: 0)\n[SKIP] test_fork_executorConfigurationAndPinnedQuote() (gas: 0)\n[SKIP] test_fork_realExecutorAndOFTForceRefundSurplusToNonpayableRecipient() (gas: 0)\n[SKIP] test_fork_realExecutorExactFeeForNonpayableRecipient() (gas: 0)\nSuite result: ok. 0 passed; 0 failed; 6 skipped; finished in 4.01ms (2.39ms CPU time)\n\nRan 2 tests for test/SpecIdCap.t.sol:SpecIdCapTest\n[PASS] test_lastIdBelowCapStillRegisters() (gas: 502900)\n[PASS] test_registerSpecRevertsAtUint16Max() (gas: 293122)\nSuite result: ok. 2 passed; 0 failed; 0 skipped; finished in 26.74ms (922.88µs CPU time)\n\nRan 8 tests for test/SepoliaRehearsal.t.sol:SepoliaRehearsalTest\n[PASS] testFuzz_heightBoundIsMonotone(uint64,uint64) (runs: 256, μ: 21001, ~: 20954)\n[PASS] test_catalogBodiesAndHashesStayMainnetAndIgnoreCuratorArgument() (gas: 3035811)\n[PASS] test_directReadsStillUseTheSepoliaCuratorAndIDMD() (gas: 1078460)\n[PASS] test_gameWindowAndDeployBlockNonceRegisterOnSepolia() (gas: 777584)\n[PASS] test_heightBoundCoversMeasuredMainnetHeadsAndAnchor() (gas: 97722)\n[PASS] test_mainnetUsesTheExactDeploymentHeightGuards() (gas: 890202)\n[PASS] test_sepoliaClaimantVerifies701ThroughMockIntake() (gas: 2226434)\n[PASS] test_sepoliaStillRejectsInvalidWindows() (gas: 1247014)\nSuite result: ok. 8 passed; 0 failed; 0 skipped; finished in 33.79ms (34.48ms CPU time)\n\nRan 7 tests for test/Templates.t.sol:TemplatesTest\n[PASS] test_allTenBodiesAreByteExact() (gas: 1457597)\n[PASS] test_allTenQuestionHashesEqualThePlanes() (gas: 2185841)\n[PASS] test_bodyIsDeterministicInClaimantAndDiffersAcrossClaimants() (gas: 464392)\n[PASS] test_directAndUnknownIdsHaveNoBody() (gas: 60713)\n[PASS] test_hexMinAndCatalogWindows() (gas: 147416)\n[PASS] test_sepoliaChangesOnlyConsumerChainAcrossAllTenBodies() (gas: 3075316)\n[PASS] test_traitNamesAndClasses() (gas: 112489)\nSuite result: ok. 7 passed; 0 failed; 0 skipped; finished in 41.46ms (40.75ms CPU time)\n\nRan 10 tests for test/ReReview.t.sol:ReReviewTest\n[PASS] test_coldGas_firstCommunityVerificationWithACard() (gas: 2415584)\nLogs:\n  cold onResult gas, first community verification with a card: 133357\n\n[PASS] test_coldGas_sharedFact64Catalog() (gas: 1740251)\nLogs:\n  cold onResult gas, 64-address shared fact (catalog 1201): 164088\n\n[PASS] test_coldGas_sharedFact64Community() (gas: 2108985)\nLogs:\n  cold onResult gas, 64-address shared fact (community T3): 170446\n\n[PASS] test_communityAttributesAppearOnlyForVerifiedSpecs() (gas: 4751043)\n[PASS] test_constructorReadsIsSettledWithoutWriting() (gas: 137310)\n[PASS] test_hugeSignatureOnCommunitySharedFactAndCardRequestClearsUnderStipend() (gas: 12243108)\n[PASS] test_lowerOrdinalAcquiredLaterReplacesTheHigherOne() (gas: 8479122)\n[PASS] test_sameSignedEvidenceSatisfiesAnotherRequestWithTheSameQuestion() (gas: 3262910)\n[PASS] test_specIdsEndAt65534() (gas: 909597)\n[PASS] test_unusedFixedValIsRefusedAndAnEmptyFilterIsNotSerialised() (gas: 1334489)\nSuite result: ok. 10 passed; 0 failed; 0 skipped; finished in 124.50ms (102.87ms CPU time)\n\nRan 2 tests for test/Floor.t.sol:FloorTest\n[PASS] test_mainnetEmptyChainFloor() (gas: 72687056)\n[PASS] test_sepoliaEmptyChainFloor() (gas: 72687024)\nSuite result: ok. 2 passed; 0 failed; 0 skipped; finished in 451.78ms (593.07ms CPU time)\n\nRan 8 tests for test/Artifacts.t.sol:ArtifactsTest\n[PASS] test_constructorAcceptsUnavailableCuratorOnEmptyFloor() (gas: 16156)\n[PASS] test_constructorRejectsUnsettledOrUnavailableCurator() (gas: 262986)\n[PASS] test_constructorRejectsZeroAddressesAndStoresTheRest() (gas: 8024)\n[PASS] test_deployScriptUsesMainnetConstantsOnEveryOtherChain() (gas: 60662450)\n[PASS] test_deployScriptUsesSepoliaConstantsAndNonzeroExecutor() (gas: 31208855)\n[PASS] test_noForbiddenOpcodesInRuntime() (gas: 56309448)\n[PASS] test_noImmutableReferencesInAnyArtifact() (gas: 92554609)\n[PASS] test_twoDeploymentsHaveIdenticalRuntimeCode() (gas: 3577724)\nSuite result: ok. 8 passed; 0 failed; 0 skipped; finished in 879.92ms (410.05ms CPU time)\n\nRan 29 tests for test/Registry.t.sol:RegistryTest\n[PASS] test_abandonOnlyAfterFourteenDaysAndStaleCallbackLeavesSuccessor() (gas: 3333466)\n[PASS] test_anyoneReadsAnyWalletAndNothingUsesTxOrigin() (gas: 1943257)\n[PASS] test_attestationForAnotherConsumerOrChainIsNeverAccepted() (gas: 3213846)\n[PASS] test_callbacksRejectEveryoneButTheIntake() (gas: 1630434)\n[PASS] test_claimSponsoredRules() (gas: 5264004)\n[PASS] test_directTraitsAreLiveAndNeedNoCard() (gas: 605974)\n[PASS] test_fuzz_tiersAreMonotone(uint8,bool,uint32,uint128,uint32,uint8) (runs: 256, μ: 709278, ~: 695481)\n[PASS] test_mainnetQuestionAcceptedUnderSepoliaConsumerDomain() (gas: 1726675)\n[PASS] test_mainnetSignatureCannotAnswerSepoliaConsumer() (gas: 1667544)\n[PASS] test_malformedEnvelopeIsNotDeliveredAndStaysPending() (gas: 1561112)\n[PASS] test_mintOncePerWalletAndTransfersKeepClaimant() (gas: 956472)\n[PASS] test_mintWithoutFeeReverts() (gas: 47096)\n[PASS] test_missReasons() (gas: 29440347)\n[PASS] test_noReceiveOrFallback() (gas: 57774)\n[PASS] test_nonMemberIsNeverAnEarlyBird() (gas: 232419)\n[PASS] test_onFailureClearsAndAllowsRetry() (gas: 3006144)\n[PASS] test_onResultGasWorstCase() (gas: 2334293)\nLogs:\n  onResult worst-case gas: 164955\n\n[PASS] test_poolIsTheBalanceAndOnlyLeavesThroughSponsoredRequests() (gas: 5657704)\n[PASS] test_reentrantTokenCannotReenterMint() (gas: 2358744)\n[PASS] test_registerSpecAssignsSequentialIdsAndIsImmutable() (gas: 1231919)\n[PASS] test_sepoliaQuestionMissesWithReasonThreeUnderSepoliaDomain() (gas: 1654372)\n[PASS] test_sharedFactBadEnvelopeIsAMissAndCanBeRequestedAgain() (gas: 6925553)\n[PASS] test_sharedFactFlow() (gas: 2478075)\n[PASS] test_specGuards() (gas: 1337374)\n[PASS] test_strangerCannotDiscardLateValidAnswer() (gas: 1727693)\n[PASS] test_supportsERC4906AndERC721() (gas: 25952)\n[PASS] test_upgradeGuards() (gas: 6034862)\n[PASS] test_upgradeHappyPathMarksTraitAndRefreshesCard() (gas: 2537520)\n[PASS] test_upgradeWithoutCardAttachesToClaimant() (gas: 1895253)\nSuite result: ok. 29 passed; 0 failed; 0 skipped; finished in 879.90ms (386.15ms CPU time)\n\nRan 11 tests for test/fork/Mainnet.fork.t.sol:MainnetForkTest\n[SKIP] test_fork_attestationSignedForAnotherConsumerMissesOnTheRealIntake() (gas: 0)\n[SKIP] test_fork_curatorIsSettledWithTheBriefsConstants() (gas: 0)\n[SKIP] test_fork_firstContributorIsAnHourZeroEarlyBird() (gas: 0)\n[SKIP] test_fork_intakeV2SellsTheActionAsTheBriefRecords() (gas: 0)\n[SKIP] test_fork_lastContributorIsNoEarlyBird() (gas: 0)\n[SKIP] test_fork_memberMintsAndRendersAgainstTheRealCurator() (gas: 0)\n[SKIP] test_fork_nonMemberReadsZeroFalseAndHasNoCuratorTrait() (gas: 0)\n[SKIP] test_fork_operatorTraitReadsTheRealCollectionAndGuardsZero() (gas: 0)\n[SKIP] test_fork_pinnedBlockIsTheOneRecorded() (gas: 0)\n[SKIP] test_fork_thousandthContributorJoinedInsideTheFirstThousandWindow() (gas: 0)\n[SKIP] test_fork_upgradeThroughTheRealIntakeThenCompleteFromTheWriter() (gas: 0)\nSuite result: ok. 0 passed; 0 failed; 11 skipped; finished in 1.04s (4.51ms CPU time)\n\nRan 17 tests for test/RegistryRules.t.sol:RegistryRulesTest\n[PASS] test_constructorPriceCheckIsPassiveAndAcceptsAnyNonzeroPrice() (gas: 147502)\n[PASS] test_constructorRejectsEachSingleMistypedDependency() (gas: 19912)\n[PASS] test_constructorRejectsPartiallyCodedDependencyFloor() (gas: 19824)\n[PASS] test_constructorRejectsUnavailableIntake() (gas: 26489)\n[PASS] test_constructorRejectsWrongAsset() (gas: 548859)\n[PASS] test_constructorRejectsZeroIntakePrice() (gas: 42182)\n[PASS] test_fuzz_bothPoolPathsShareOneAllowancePerUtcDay(bool,bool,uint32) (runs: 256, μ: 3241626, ~: 3226887)\nLogs:\n  Bound result 66494\n\n[PASS] test_idmdCounterFollowsTransfersAndStopsAtNine() (gas: 15434120)\n[PASS] test_idmdHolderMustAlsoBeAListMember() (gas: 1763951)\n[PASS] test_memberClaimsOnDeploymentDayWithoutCardOrIdmd() (gas: 1675022)\n[PASS] test_noVerdictConsumesTheDayAndLifetimePair() (gas: 3269502)\n[PASS] test_paidUpgradeAndSharedFactDoNotUseOrObeyPoolDailyLimit() (gas: 8189294)\n[PASS] test_revertingIntakeDoesNotConsumePoolAllowances() (gas: 2028592)\n[PASS] test_specAndFirstClaimCostSixPointNineIMD() (gas: 1880817)\n[PASS] test_specRequiresFullFeeAndAllowance() (gas: 798883)\n[PASS] test_sponsoredUpgradeRequiresExactlyOneTrait() (gas: 1780326)\n[PASS] test_switchingIdmdDoesNotBypassDailyLimit() (gas: 3192030)\nSuite result: ok. 17 passed; 0 failed; 0 skipped; finished in 1.04s (503.36ms CPU time)\n\nRan 10 tests for test/ReviewChanges.t.sol:ReviewChangesTest\n[PASS] test_fuzz_emptyFixedArgRequiresZeroValueForT1AndT2(uint256) (runs: 256, μ: 3038973, ~: 3038661)\nLogs:\n  Bound result 13165032196946398837740972896530906301928499526543833370752551818056115\n\n[PASS] test_fuzz_ordinalShowsLowestVerifiedId(uint8) (runs: 256, μ: 4954476, ~: 4866857)\nLogs:\n  Bound result 16\n\n[PASS] test_hugeAnswerClearsUintBoolAndSharedRequestsUnderStipend() (gas: 26379788)\n[PASS] test_hugeSignatureClearsPendingAndAllowsImmediateRetry() (gas: 6838211)\n[PASS] test_metadataReportsMinimaEvenWhenSignedPanelIsLarger() (gas: 6306433)\n[PASS] test_scalarAnswerLengthPrecedesChainSignerAndClaimedType() (gas: 17767584)\n[PASS] test_sharedAnswerUpperBoundPrecedesChainAndSigner() (gas: 4503532)\n[PASS] test_signatureLengthPrecedesAnswerLengthAndChain() (gas: 37652039)\n[PASS] test_unknownRequestStillPrecedesDynamicSizeChecks() (gas: 12871822)\n[PASS] test_validationPrecedenceAfterSizes() (gas: 18086010)\nSuite result: ok. 10 passed; 0 failed; 0 skipped; finished in 1.29s (1.85s CPU time)\n\nRan 19 tests for test/Goldens.t.sol:GoldensTest\n[PASS] test_escapeJsonNeutralisesMarkup() (gas: 42645)\n[PASS] test_goldenSyntheticCollector() (gas: 20831323)\n[PASS] test_goldenSyntheticDirect() (gas: 5078827)\n[PASS] test_goldenSyntheticFullhouse() (gas: 21514473)\n[PASS] test_goldenSyntheticHoney() (gas: 23746288)\n[PASS] test_goldenSyntheticNewcomer() (gas: 3219081)\n[PASS] test_goldenSyntheticOracle() (gas: 8915956)\n[PASS] test_goldenSyntheticOutsider() (gas: 5211326)\n[PASS] test_goldenSyntheticWidthThroughTheRenderer() (gas: 24718798)\n[PASS] test_imageCommunityPathFollowsTheStepTable() (gas: 13547491)\n[PASS] test_imageIdsOutsideTheCatalogRenderWithoutReverting() (gas: 763825)\n[PASS] test_imageIsPureAndDeterministic() (gas: 16076101)\n[PASS] test_imageOverflowPathAbsentAtOrBelow39AndNeverOverflows() (gas: 13459611)\n[PASS] test_imageRareDotOnlyAtATopTierRareId() (gas: 17170837)\n[PASS] test_imageRingsByCommunityCount() (gas: 5559349)\n[PASS] test_imageStepsUseExponentiationNotXor() (gas: 6674005)\n[PASS] test_reportRendererRuntimeSize() (gas: 129606)\nLogs:\n  Renderer runtime bytes: 21570\n\n[PASS] test_reportTokenURIGas() (gas: 29841499)\nLogs:\n  tokenURI gas synthetic_width: 10810085\n  tokenURI gas synthetic_fullhouse: 9147472\n  tokenURI gas synthetic_honey: 9589924\n\n[PASS] test_templateArtifactsMatchTheCompiledConstants() (gas: 297819)\nSuite result: ok. 19 passed; 0 failed; 0 skipped; finished in 1.29s (1.04s CPU time)\n\nRan 3 tests for test/Attestations.t.sol:AttestationsTest\n[PASS] test_allFiveRecoverTheAttesterUnderTheirOwnDomainOnly() (gas: 5269883)\n[PASS] test_loaderRejectsUnknownAnswerTypeNames() (gas: 4845)\n[PASS] test_protocolVectorDigestAndSelector() (gas: 2162970)\nSuite result: ok. 3 passed; 0 failed; 0 skipped; finished in 1.29s (56.39ms CPU time)\n\nRan 8 tests for test/Rename.t.sol:RenameTest\n[PASS] test_catalogSpecNamesMatchTheTable() (gas: 496540)\n[PASS] test_collectionNameAndSymbol() (gas: 25005)\n[PASS] test_composerStaysUnderTheSizeLimitWithHeadroom() (gas: 13473)\n[PASS] test_metadataCarriesTheFinalFamilyNames() (gas: 3753529)\n[PASS] test_nameTableIsTheFinalTable() (gas: 609580)\n[PASS] test_noWorkingNameSurvivesInTheNameTable() (gas: 1060323)\n[PASS] test_unknownIdHasNoName() (gas: 25179)\n[PASS] test_upgradeRefusesTopWeightsAsASharedFact() (gas: 1641444)\nSuite result: ok. 8 passed; 0 failed; 0 skipped; finished in 1.29s (33.26ms CPU time)\n\nRan 24 tests for test/BurnRule.t.sol:BurnRuleTest\n[PASS] testFuzz_belowThresholdRefundsWithoutFee(bool,uint96,uint96) (runs: 256, μ: 1561564, ~: 1547450)\nLogs:\n  Bound result 10991\n  Bound result 13091\n\n[PASS] testFuzz_dueForwardsWholeValueAndExecutorForceRefunds(bool,uint96,uint96) (runs: 256, μ: 1830715, ~: 1816220)\nLogs:\n  Bound result 79228162445264337594695180986\n  Bound result 264337514315787821\n\n[PASS] testFuzz_dueWithoutEnoughFeeRevertsAtomically(bool,uint96,uint96) (runs: 256, μ: 3241388, ~: 3211359)\nLogs:\n  Bound result 79228162445264337593543961327\n  Bound result 13091\n\n[PASS] testFuzz_failedPreviewOrBridgeSkipsAndRefunds(bool,uint8,uint96) (runs: 256, μ: 1763395, ~: 1598383)\nLogs:\n  Bound result 5\n  Bound result 13091\n\n[PASS] testFuzz_nonpayableContractWorksWithNoValueExactFeeAndSurplus(bool,uint8) (runs: 256, μ: 1945856, ~: 1976404)\nLogs:\n  Bound result 1\n\n[PASS] testFuzz_previewExceedingTheBudgetSkipsWithCodeOneAndRefunds(bool,uint96) (runs: 256, μ: 2168267, ~: 2181690)\nLogs:\n  Bound result 100322123176966250\n\n[PASS] testFuzz_quoteAboveCapSkipsWithCodeThree(bool,uint96,uint96) (runs: 256, μ: 1565426, ~: 1551124)\nLogs:\n  Bound result 79228162514259337593543961326\n  Bound result 13091\n\n[PASS] testFuzz_unsetExecutorDisablesBurnAndRefunds(bool,uint96) (runs: 256, μ: 1584688, ~: 1598430)\nLogs:\n  Bound result 100322123176966250\n\n[PASS] test_constantsAndStorage() (gas: 29216)\n[PASS] test_constructorRejectsNonzeroExecutorWithoutCodeAndAcceptsZeroOrCode() (gas: 22214)\n[PASS] test_exactFeeAndCapAreInclusive() (gas: 1708610)\n[PASS] test_executorReentryIsGuarded() (gas: 1770521)\n[PASS] test_executorSurplusCallReentryIsGuarded() (gas: 2351890)\n[PASS] test_executorSurplusIsForcedOnARejectingRecipient() (gas: 1984962)\n[PASS] test_existingChecksAndIntakeFailurePrecedeBurnFeeCheck() (gas: 579753)\n[PASS] test_gasArgumentsIncludeOnlyTheValueStipend() (gas: 1694399)\n[PASS] test_noFeeAtExactThresholdReverts() (gas: 1537275)\n[PASS] test_nonpayableContractAcceptsZeroRefundOnPreviewFailure() (gas: 1791339)\n[PASS] test_paidFunctionsRejectOneWeiWhereZeroValueSucceeds() (gas: 3763404)\n[PASS] test_previewUsingMostOfTheBudgetIsQuotedAndBurns() (gas: 2236765)\n[PASS] test_registryRefundReentryIsGuarded() (gas: 2174439)\n[PASS] test_rejectedNonzeroRegistryRefundRevertsAllEffects() (gas: 1949413)\n[PASS] test_zeroQuoteStillTriggersWhenDue() (gas: 1643756)\n[PASS] test_zeroValueHasNoStipend() (gas: 1564856)\nSuite result: ok. 24 passed; 0 failed; 0 skipped; finished in 1.29s (3.72s CPU time)\n\nRan 32 tests for test/Adversarial.t.sol:AdversarialTest\n[PASS] test_abandonedSharedFactCanBeRequestedAgainAndTheLateAnswerIsIgnored() (gas: 3063452)\n[PASS] test_attestationForAnotherClaimantIsAMissForThisRequest() (gas: 3244206)\n[PASS] test_attestationForAnotherTraitWithTheSameWindowIsAMiss() (gas: 3247257)\n[PASS] test_callbackStarvedOfGasIsNotDeliveredAndStaysPending() (gas: 1692953)\n[PASS] test_cardShowsAtMostThirtyTwoCommunityIdsAndCountsThemAll() (gas: 86215566)\n[PASS] test_claimSponsoredWhilePendingOrVerifiedReverts() (gas: 2104530)\n[PASS] test_communityT3SpecIsASharedFactWithItsOwnHead() (gas: 2423017)\n[PASS] test_everyTemplateVerifiesUnderTheStipendWithACard() (gas: 11730795)\n[PASS] test_expiryAtTheExactSecondStillPassesAndOneLaterDoesNot() (gas: 3241538)\n[PASS] test_fuzz_abandonedPoolRequestKeepsPoolUsedAndLateCallbackIsIgnored(bool) (runs: 256, μ: 1907637, ~: 1891912)\n[PASS] test_fuzz_anyFieldAlteredAfterSigningIsASignatureMiss(uint8,uint256) (runs: 512, μ: 1652915, ~: 1654318)\nLogs:\n  Bound result 1\n\n[PASS] test_fuzz_applySharedFactOnlyWithinTheHead(uint8,uint8) (runs: 256, μ: 1781714, ~: 1762608)\nLogs:\n  Bound result 57\n  Bound result 1\n\n[PASS] test_fuzz_boolAnswerMustBeExactlyZeroOrOne(uint256) (runs: 512, μ: 2076326, ~: 2075770)\n[PASS] test_fuzz_countAnswerAgainstTheThreshold(uint256,bytes1,bool) (runs: 512, μ: 1655360, ~: 1637738)\n[PASS] test_fuzz_expiryAndClockSkewBoundaries(uint64,uint64) (runs: 512, μ: 1649979, ~: 1641471)\n[PASS] test_fuzz_hasTraitAndTraitsOfNeverRevert(address,uint16,uint8,bool,uint8) (runs: 512, μ: 324500, ~: 333467)\n[PASS] test_fuzz_maximalSpecRegistersComposesAndFitsTheBody(uint8,uint256,uint256) (runs: 64, μ: 2369652, ~: 2697774)\nLogs:\n  Bound result 3\n  Bound result 32\n\n[PASS] test_fuzz_panelAndQuorumBoundaries(uint16,uint16,uint16) (runs: 512, μ: 1655663, ~: 1640592)\n[PASS] test_fuzz_panelTraitNeedsElevenAndSeven(uint16,uint16,uint16) (runs: 512, μ: 2083903, ~: 2069577)\n[PASS] test_fuzz_specBodyIsDeterministicAndClaimantBound(address,address) (runs: 256, μ: 864577, ~: 864577)\n[PASS] test_fuzz_upgradeChargesExactlyKTimesPriceAndLeavesThePoolAlone(uint8,uint256) (runs: 256, μ: 4998297, ~: 4217773)\nLogs:\n  Bound result 4\n  Bound result 86828994639583334273\n\n[PASS] test_fuzz_upgradeRejectsEveryIdThatIsNotAnOracleTrait(uint16) (runs: 256, μ: 209829, ~: 209312)\n[PASS] test_fuzz_windowMustEqualTheCanonicalOne(uint64,uint64) (runs: 512, μ: 1641003, ~: 1641002)\n[PASS] test_onFailureRecordsWhatItIsToldAndStoresNothing() (gas: 3064198)\n[PASS] test_questionHashIsBoundToTheClaimantAndTheTrait() (gas: 690361)\n[PASS] test_reentrantTokenCannotReenterAnyIMDMovingFunction() (gas: 7517031)\n[PASS] test_sharedFactWorstCaseEnvelopeUnderTheStipend() (gas: 3983876)\n[PASS] test_signatureShapesThatDoNotRecover() (gas: 9338096)\n[PASS] test_tokenURIDependsOnlyOnTheClaimantsFacts() (gas: 14700480)\n[PASS] test_traitClassForEveryCatalogIdAndRevertsForUnknown() (gas: 703103)\n[PASS] test_upgradeSponsoredDrawsAllNineOverNineDaysAndRefusesDuplicates() (gas: 12560682)\n[PASS] test_verifiedWindowIsTheCanonicalWindowForEveryOracleId() (gas: 16465073)\nSuite result: ok. 32 passed; 0 failed; 0 skipped; finished in 1.29s (10.31s CPU time)\n\nRan 1 test for test/Invariants.t.sol:InvariantsTest\n[PASS]\nInvariantsTest invariants:\n[PASS] invariant_oneCardPerClaimantWithImmutableClaimant\n[PASS] invariant_poolOnlyLeavesThroughSponsoredRequests\n InvariantsTest invariants (runs: 256, calls: 16384, reverts: 0)\n\n╭----------+-------------------+-------+---------+----------╮\n| Contract | Selector          | Calls | Reverts | Discards |\n+===========================================================+\n| Handler  | claimSponsored    | 3216  | 0       | 0        |\n|----------+-------------------+-------+---------+----------|\n| Handler  | mintCard          | 3254  | 0       | 0        |\n|----------+-------------------+-------+---------+----------|\n| Handler  | sponsor           | 3358  | 0       | 0        |\n|----------+-------------------+-------+---------+----------|\n| Handler  | transfer          | 3237  | 0       | 0        |\n|----------+-------------------+-------+---------+----------|\n| Handler  | upgradeAndDeliver | 3319  | 0       | 0        |\n╰----------+-------------------+-------+---------+----------╯\n\nLogs:\n  Bound result 805521517275466379\n  Bound result 25770733824283706\n  Bound result 8388\n  Bound result 7592\n  Bound result 1370020076737307531\n  Bound result 1325555598382842085\n  Bound result 159237351512294384\n  Bound result 641\n  Bound result 6143\n  Bound result 601\n\nSuite result: ok. 1 passed; 0 failed; 0 skipped; finished in 10.71s (10.71s CPU time)\n\nRan 1 test for test/BurnInvariant.t.sol:BurnInvariantTest\n[PASS] invariant_registryRetainsNoClaimETHAndPoolOnlyFundsOracleRequests() (runs: 256, calls: 16384, reverts: 0)\n\n╭-------------+----------+-------+---------+----------╮\n| Contract    | Selector | Calls | Reverts | Discards |\n+=====================================================+\n| BurnHandler | claim    | 16384 | 0       | 0        |\n╰-------------+----------+-------+---------+----------╯\n\nLogs:\n  Bound result 66048508775152929047\n  Bound result 3388213489663698\n  Bound result 48955652701\n  Bound result 74264337592978034889\n  Bound result 329\n  Bound result 7976\n  Bound result 74264337592978034889\n  Bound result 4329670727698909\n  Bound result 4678238774179872\n  Bound result 1122777314\n  Bound result 4329670727698909\n  Bound result 15154\n  Bound result 74264337592978034889\n  Bound result 4329670727698909\n  Bound result 1743\n  Bound result 74264337592978034889\n  Bound result 130178016878662\n  Bound result 19999999999950126\n  Bound result 8209\n  Bound result 2360\n  Bound result 130178016878661\n  Bound result 74264337592978034889\n  Bound result 3379\n  Bound result 4333632135824622\n  Bound result 74264337592978034889\n  Bound result 4329670727698909\n  Bound result 4333632135824622\n  Bound result 74264337592978034889\n  Bound result 599290590\n  Bound result 4747240909852812\n  Bound result 93355459706789530984\n  Bound result 4329670727698909\n  Bound result 4333632135824622\n  Bound result 56671268779418242477\n  Bound result 4329670727698909\n  Bound result 6699\n  Bound result 74264337592978034889\n  Bound result 4329670727698909\n  Bound result 2290\n  Bound result 74264337592978034889\n  Bound result 20240\n  Bound result 13408\n  Bound result 74264337592978034889\n  Bound result 4329670727698909\n  Bound result 5\n  Bound result 7271\n  Bound result 4329670727698909\n  Bound result 4333632135824622\n  Bound result 3\n  Bound result 8155401335\n  Bound result 5\n  Bound result 13359\n  Bound result 4329670727698909\n  Bound result 257\n  Bound result 74264337592978034889\n  Bound result 23048\n  Bound result 4333632135824622\n  Bound result 74264337592978034889\n  Bound result 7674\n  Bound result 4333632135824622\n  Bound result 5663\n  Bound result 23428\n  Bound result 4333632135824622\n  Bound result 66048508775152929047\n  Bound result 583\n  Bound result 5266236305527838\n  Bound result 22516\n  Bound result 21868\n  Bound result 107079576609643\n  Bound result 12397197290166204537\n  Bound result 4099\n  Bound result 599290591\n  Bound result 6191542\n  Bound result 4329670727698909\n  Bound result 18719329242768236\n  Bound result 15869\n  Bound result 4329670727698909\n  Bound result 792209076546098\n  Bound result 74264337592978034889\n  Bound result 4329670727698909\n  Bound result 2671407626939978\n  Bound result 701406687\n  Bound result 20902\n  Bound result 2436\n  Bound result 111056049307915099834\n  Bound result 14234\n  Bound result 4333632135824622\n  Bound result 1889567282\n  Bound result 2930\n  Bound result 4333632135824622\n  Bound result 7372\n  Bound result 1262205113503528\n  Bound result 1281139557766129\n  Bound result 74264337592978034889\n  Bound result 89\n  Bound result 16365\n  Bound result 9\n  Bound result 4524883261688014\n  Bound result 5439262988029634\n  Bound result 6440\n  Bound result 4329670727698909\n  Bound result 5271\n  Bound result 74264337592978034889\n  Bound result 4329670727698909\n  Bound result 1566\n  Bound result 74264337592978034889\n  Bound result 285510556414777\n  Bound result 4333632135824622\n  Bound result 74264337592978034889\n  Bound result 4329670727698909\n  Bound result 4207096748\n  Bound result 128959758704593641317\n  Bound result 11118\n  Bound result 19775270856966611\n  Bound result 74264337592978034889\n  Bound result 635\n  Bound result 3384\n  Bound result 74264337592978034889\n  Bound result 12875\n  Bound result 10534\n  Bound result 31141493852577320379\n  Bound result 9270\n  Bound result 4333632135824622\n  Bound result 41202672070761447030\n  Bound result 4329670727698909\n  Bound result 4333632135824622\n  Bound result 127452729333875247036\n  Bound result 4329670727698909\n  Bound result 95804816879174\n  Bound result 13165\n  Bound result 5811\n  Bound result 4333632135824622\n  Bound result 43278170595261578942\n  Bound result 4329670727698909\n  Bound result 2756849121475739\n  Bound result 74264337592978034889\n  Bound result 7149035685786631\n  Bound result 4333632135824622\n  Bound result 74264337592978034889\n  Bound result 9999999999999301\n  Bound result 4333632135824622\n  Bound result 118525391588326925724\n  Bound result 68988964882\n  Bound result 4333632135824622\n  Bound result 12078\n  Bound result 19214\n  Bound result 18786819312579554\n  Bound result 74264337592978034889\n  Bound result 14663\n  Bound result 4333632135824622\n  Bound result 10802760299427905927\n  Bound result 4329670727698909\n  Bound result 4333632135824622\n  Bound result 80688064855491801305\n  Bound result 5000000000000001\n  Bound result 4333632135824622\n  Bound result 77776751418742782532\n  Bound result 20056663\n  Bound result 13618163254146247\n  Bound result 952\n  Bound result 4329670727698909\n  Bound result 4333632135824622\n  Bound result 74264337592978034889\n  Bound result 4329670727698909\n  Bound result 1972\n  Bound result 74264337592978034889\n  Bound result 4329670727698909\n  Bound result 4333632135824622\n  Bound result 4779\n  Bound result 4329670727698909\n  Bound result 5270\n  Bound result 7298\n  Bound result 5878464939789820\n  Bound result 4333632135824622\n  Bound result 74264337592978034888\n  Bound result 2608\n  Bound result 63633\n  Bound result 2396\n  Bound result 4329670727698909\n  Bound result 18154\n  Bound result 3276\n  Bound result 7113\n  Bound result 6948351786569604\n  Bound result 7857\n  Bound result 4329670727698909\n  Bound result 4333632135824622\n  Bound result 89054801195391628547\n  Bound result 7096024114141734\n  Bound result 4333632135824620\n  Bound result 80929228330400590059\n  Bound result 3711639813272418\n  Bound result 4333632135824622\n  Bound result 74264337592978034889\n  Bound result 4329670727698909\n  Bound result 4333632135824622\n\nSuite result: ok. 1 passed; 0 failed; 0 skipped; finished in 22.09s (22.08s CPU time)\n\nRan 3 tests for test/InvariantsExtended.t.sol:InvariantsExtendedTest\n[PASS]\nInvariantsExtendedTest invariants:\n[PASS] invariant_markedExactlyWhenAPassingAttestationWasDelivered\n[PASS] invariant_oneCardPerClaimant\n[PASS] invariant_poolDailyAndLifetimeLimits\n[PASS] invariant_poolIsFeesPlusDonationsMinusSponsoredRequests\n[PASS] invariant_sharedFactsAreHashesStoredOnlyOnDelivery\n[PASS] invariant_specsAreImmutable\n InvariantsExtendedTest invariants (runs: 96, calls: 4608, reverts: 0)\n\n╭-------------+-------------------+-------+---------+----------╮\n| Contract    | Selector          | Calls | Reverts | Discards |\n+==============================================================+\n| FullHandler | abandonLate       | 262   | 0       | 0        |\n|-------------+-------------------+-------+---------+----------|\n| FullHandler | advanceTime       | 263   | 0       | 0        |\n|-------------+-------------------+-------+---------+----------|\n| FullHandler | applyShared       | 284   | 0       | 0        |\n|-------------+-------------------+-------+---------+----------|\n| FullHandler | claimSponsored    | 286   | 0       | 0        |\n|-------------+-------------------+-------+---------+----------|\n| FullHandler | deliverFalse      | 255   | 0       | 0        |\n|-------------+-------------------+-------+---------+----------|\n| FullHandler | deliverTampered   | 285   | 0       | 0        |\n|-------------+-------------------+-------+---------+----------|\n| FullHandler | deliverTrue       | 292   | 0       | 0        |\n|-------------+-------------------+-------+---------+----------|\n| FullHandler | donate            | 286   | 0       | 0        |\n|-------------+-------------------+-------+---------+----------|\n| FullHandler | failRequest       | 251   | 0       | 0        |\n|-------------+-------------------+-------+---------+----------|\n| FullHandler | mintCard          | 257   | 0       | 0        |\n|-------------+-------------------+-------+---------+----------|\n| FullHandler | registerSpec      | 278   | 0       | 0        |\n|-------------+-------------------+-------+---------+----------|\n| FullHandler | replayConsumed    | 269   | 0       | 0        |\n|-------------+-------------------+-------+---------+----------|\n| FullHandler | requestSharedFact | 258   | 0       | 0        |\n|-------------+-------------------+-------+---------+----------|\n| FullHandler | sponsor           | 299   | 0       | 0        |\n|-------------+-------------------+-------+---------+----------|\n| FullHandler | transfer          | 259   | 0       | 0        |\n|-------------+-------------------+-------+---------+----------|\n| FullHandler | upgradePaid       | 254   | 0       | 0        |\n|-------------+-------------------+-------+---------+----------|\n| FullHandler | upgradeSponsored  | 270   | 0       | 0        |\n╰-------------+-------------------+-------+---------+----------╯\n\nLogs:\n  Bound result 1\n  Bound result 5\n  Bound result 9416\n  Bound result 601\n  Bound result 400000000000022056\n  Bound result 2344\n  Bound result 1\n  Bound result 5\n  Bound result 1015484790083359675\n  Bound result 5\n  Bound result 0\n\n[PASS] test_handlerReplayOfAConsumedIdChangesNothing() (gas: 1920763)\n[PASS] test_handlerSponsoredSelectionAcceptsMaxSeed() (gas: 1764003)\nLogs:\n  Bound result 3000000000000000000\n\nSuite result: ok. 3 passed; 0 failed; 0 skipped; finished in 25.25s (25.25s CPU time)\n\nRan 19 test suites in 25.29s (70.30s CPU time): 184 tests passed, 0 failed, 17 skipped (201 total tests)\n","passed":true},{"durationMs":511,"exitCode":0,"name":"source-index","output":"{\"v\":1,\"entryPoints\":[\"Registry.abandon(bytes32)\",\"Registry.applySharedFact(uint16,address[])\",\"Registry.approve(address,uint256)\",\"Registry.claimSponsored(uint16)\",\"Registry.mintCard()\",\"Registry.onFailure(bytes32,uint8,bytes32,uint16,uint16,bytes)\",\"Registry.onResult(bytes32,(bytes32,uint256,bytes32,uint8,bytes,uint256,uint64,uint64,bytes32,bytes32,uint16,uint16,uint16,uint64,uint64),bytes)\",\"Registry.registerSpec((uint8,address,string,string,string,uint256,string,uint8,uint256,uint64,uint64,string))\",\"Registry.requestSharedFact(uint16,uint256)\",\"Registry.safeTransferFrom(address,address,uint256)\",\"Registry.safeTransferFrom(address,address,uint256,bytes)\",\"Registry.setApprovalForAll(address,bool)\",\"Registry.sponsor(uint256)\",\"Registry.transferFrom(address,address,uint256)\",\"Registry.upgrade(uint16[],uint256)\",\"Registry.upgradeSponsored(uint256,uint16[])\"],\"files\":{\".gitignore\":8,\".gitmodules\":6,\"ADAPTATION.md\":45,\"CATALOG.md\":268,\"CONCEPT.md\":262,\"DISCLOSURE.md\":58,\"INTEGRATION.md\":467,\"LICENSE\":21,\"README.md\":439,\"TEMPLATES.md\":158,\"foundry.toml\":44,\"reference/Intake.sol\":5175,\"reference/IntakeV2.sol\":5240,\"reference/PROVENANCE.md\":44,\"reference/abi/IMD.json\":1684,\"reference/abi/IdentityMD.json\":894,\"reference/abi/Intake.json\":955,\"reference/abi/IntakeV2.json\":1070,\"reference/abi/WhitelistCurator.json\":794,\"reference/anchors/headers.json\":61,\"reference/attestations/2026-10-10-link-pilot.json\":92,\"reference/attestations/2026-10-10-meatbag-consumer.json\":104,\"reference/attestations/2026-10-11-feed-consumer-v2.json\":105,\"reference/attestations/2026-10-11-nonce-false.json\":92,\"reference/attestations/2026-10-11-nonce-true.json\":92,\"reference/attestations/README.md\":29,\"reference/burn/BurnExecutorV2.sol.txt\":314,\"reference/burn/abi.json\":1001,\"reference/burn/provenance.json\":17,\"reference/intake/completions.json\":147,\"reference/list-record/src/ListRecord.sol\":169,\"reference/list-record/src/ListRecordRenderer.sol\":126,\"reference/list-record/src/interfaces/IListRecordRenderer.sol\":29,\"reference/list-record/src/lib/SSTORE2.sol\":39,\"reference/list-record/src/lib/Str.sol\":54,\"reference/list-record/test/Renderer.t.sol\":165,\"reference/list-record/test/RendererMechanism.t.sol\":203,\"reference/list-record/test/Template.t.sol\":293,\"reference/list-record/test/fixtures/golden_synthetic_held_svg.txt\":1,\"reference/list-record/test/fixtures/golden_synthetic_held_uri.txt\":1,\"reference/list-record/test/fixtures/golden_synthetic_transferred_svg.txt\":1,\"reference/list-record/test/fixtures/golden_synthetic_transferred_uri.txt\":1,\"reference/list-record/test/fixtures/golden_synthetic_width_svg.txt\":1,\"reference/list-record/test/fixtures/golden_synthetic_width_uri.txt\":1,\"reference/plane/checks/1001-hour-savior.json\":81,\"reference/plane/checks/1102-ordinal-1000.json\":81,\"reference/plane/checks/1105-first-thousand.json\":81,\"reference/plane/checks/1201-top-32.json\":82,\"reference/plane/checks/1301-not-born-yesterday.json\":86,\"reference/plane/checks/701-still-here.json\":81,\"reference/plane/checks/801-last-stand.json\":81,\"reference/plane/checks/T2-log-sum-composed.json\":81,\"reference/plane/checks/T4-call-compare-reference.json\":81,\"reference/plane/checks/T5-community-composed.json\":86,\"reference/plane/questionHashes.json\":92,\"reference/plane/quotes/1001-hour-savior.json\":20,\"reference/plane/quotes/1102-ordinal-1000.json\":20,\"reference/plane/quotes/1105-first-thousand.json\":20,\"reference/plane/quotes/1201-top-32.json\":20,\"reference/plane/quotes/1301-not-born-yesterday.json\":20,\"reference/plane/quotes/701-still-here.json\":20,\"reference/plane/quotes/801-last-stand.json\":20,\"reference/plane/quotes/T2-log-sum-composed.json\":20,\"reference/plane/quotes/T4-call-compare-reference.json\":20,\"reference/plane/quotes/T5-community-composed.json\":20,\"remappings.txt\":2,\"script/Deploy.s.sol\":48,\"src/Composer.sol\":636,\"src/HiveData.sol\":75,\"src/Registry.sol\":761,\"src/Renderer.sol\":427,\"src/TemplateData.sol\":16,\"src/Types.sol\":41,\"src/interfaces/IBurnExecutor.sol\":12,\"src/interfaces/IIDMD.sol\":8,\"src/interfaces/IIntake.sol\":29,\"src/interfaces/IOracleConsumer.sol\":38,\"src/interfaces/IWhitelistCurator.sol\":53,\"template/blob.hex\":1,\"template/offsets.txt\":1,\"templates/fixtures/1001-hour-savior.json\":22,\"templates/fixtures/1102-ordinal-1000.json\":22,\"templates/fixtures/1105-first-thousand.json\":22,\"templates/fixtures/1201-top-32.json\":22,\"templates/fixtures/1301-not-born-yesterday.json\":24,\"templates/fixtures/701-still-here.json\":22,\"templates/fixtures/801-last-stand.json\":22,\"templates/fixtures/T2-log-sum-composed.json\":23,\"templates/fixtures/T4-call-compare-reference.json\":21,\"templates/fixtures/T5-community-composed.json\":24,\"test/.gitkeep\":0,\"test/Adversarial.t.sol\":832,\"test/Artifacts.t.sol\":209,\"test/Attestations.t.sol\":196,\"test/Base.t.sol\":158,\"test/BurnInvariant.t.sol\":120,\"test/BurnRule.t.sol\":405,\"test/Floor.t.sol\":134,\"test/Goldens.t.sol\":444,\"test/Invariants.t.sol\":124,\"test/InvariantsExtended.t.sol\":520,\"test/NOTES.md\":582,\"test/ReReview.t.sol\":263,\"test/Registry.t.sol\":822,\"test/RegistryRules.t.sol\":335,\"test/Rename.t.sol\":224,\"test/ReviewChanges.t.sol\":215,\"test/SepoliaRehearsal.t.sol\":249,\"test/SpecIdCap.t.sol\":46,\"test/Templates.t.sol\":171,\"test/fixtures/golden_synthetic_collector_preimage.txt\":1,\"test/fixtures/golden_synthetic_collector_svg.txt\":1,\"test/fixtures/golden_synthetic_collector_uri.txt\":1,\"test/fixtures/golden_synthetic_direct_preimage.txt\":1,\"test/fixtures/golden_synthetic_direct_svg.txt\":1,\"test/fixtures/golden_synthetic_direct_uri.txt\":1,\"test/fixtures/golden_synthetic_fullhouse_preimage.txt\":1,\"test/fixtures/golden_synthetic_fullhouse_svg.txt\":1,\"test/fixtures/golden_synthetic_fullhouse_uri.txt\":1,\"test/fixtures/golden_synthetic_honey_preimage.txt\":1,\"test/fixtures/golden_synthetic_honey_svg.txt\":1,\"test/fixtures/golden_synthetic_honey_uri.txt\":1,\"test/fixtures/golden_synthetic_newcomer_preimage.txt\":1,\"test/fixtures/golden_synthetic_newcomer_svg.txt\":1,\"test/fixtures/golden_synthetic_newcomer_uri.txt\":1,\"test/fixtures/golden_synthetic_oracle_preimage.txt\":1,\"test/fixtures/golden_synthetic_oracle_svg.txt\":1,\"test/fixtures/golden_synthetic_oracle_uri.txt\":1,\"test/fixtures/golden_synthetic_outsider_preimage.txt\":1,\"test/fixtures/golden_synthetic_outsider_svg.txt\":1,\"test/fixtures/golden_synthetic_outsider_uri.txt\":1,\"test/fixtures/golden_synthetic_width_preimage.txt\":1,\"test/fixtures/golden_synthetic_width_svg.txt\":1,\"test/fixtures/golden_synthetic_width_uri.txt\":1,\"test/fork/BurnRule.fork.t.sol\":193,\"test/fork/Mainnet.fork.t.sol\":338,\"test/mocks/MockBurnExecutor.sol\":157,\"test/mocks/Mocks.sol\":231,\"tools/gen_template.py\":898,\"tools/test_gen_template.py\":334},\"excluded\":[\"lib/\",\"node_modules/\"],\"truncated\":false}","passed":true}],"detail":"all checks passed","evaluation":"checks","profile":"foundry","status":"accepted","submissionHash":"3f7e355d00d7f776bb4b03e5e5e0e57a8155f4da739899cdcae0a66df90de085","verifiedTreeHash":"28720287216e69fcb4ca4e82ae7c6e76351cb47c","verifierVersion":"0.1.0+745c1db4"},{"checks":[{"durationMs":30448,"exitCode":0,"name":"build","output":"Compiling 84 files with Solc 0.8.24\nSolc 0.8.24 finished in 29.60s\nCompiler run successful with warnings:\nWarning (5159): \"selfdestruct\" has been deprecated. Note that, starting from the Cancun hard fork, the underlying opcode no longer deletes the code and data associated with an account and only transfers its Ether to the beneficiary, unless executed in the same transaction in which the contract was created (see EIP-6780). Any use in newly deployed contracts is strongly discouraged even if the new behavior is taken into account. Future changes to the EVM might further reduce the functionality of the opcode.\n  --> test/mocks/MockBurnExecutor.sol:10:9:\n   |\n10 |         selfdestruct(payable(to));\n   |         ^^^^^^^^^^^^\n\nWarning (2018): Function state mutability can be restricted to pure\n  --> test/Goldens.t.sol:67:5:\n   |\n67 |     function _widthCard() internal view returns (Card memory c) {\n   |     ^ (Relevant source part starts here and spans across multiple lines).\n\nWarning (2018): Function state mutability can be restricted to pure\n   --> test/Goldens.t.sol:345:5:\n    |\n345 |     function _card(\n    |     ^ (Relevant source part starts here and spans across multiple lines).\n\n","passed":true},{"durationMs":23953,"exitCode":0,"name":"test","output":"No files changed, compilation skipped\n\nRan 2 tests for test/SpecIdCap.t.sol:SpecIdCapTest\n[PASS] test_lastIdBelowCapStillRegisters() (gas: 502900)\n[PASS] test_registerSpecRevertsAtUint16Max() (gas: 293122)\nSuite result: ok. 2 passed; 0 failed; 0 skipped; finished in 4.08ms (841.49µs CPU time)\n\nRan 11 tests for test/fork/Mainnet.fork.t.sol:MainnetForkTest\n[SKIP] test_fork_attestationSignedForAnotherConsumerMissesOnTheRealIntake() (gas: 0)\n[SKIP] test_fork_curatorIsSettledWithTheBriefsConstants() (gas: 0)\n[SKIP] test_fork_firstContributorIsAnHourZeroEarlyBird() (gas: 0)\n[SKIP] test_fork_intakeV2SellsTheActionAsTheBriefRecords() (gas: 0)\n[SKIP] test_fork_lastContributorIsNoEarlyBird() (gas: 0)\n[SKIP] test_fork_memberMintsAndRendersAgainstTheRealCurator() (gas: 0)\n[SKIP] test_fork_nonMemberReadsZeroFalseAndHasNoCuratorTrait() (gas: 0)\n[SKIP] test_fork_operatorTraitReadsTheRealCollectionAndGuardsZero() (gas: 0)\n[SKIP] test_fork_pinnedBlockIsTheOneRecorded() (gas: 0)\n[SKIP] test_fork_thousandthContributorJoinedInsideTheFirstThousandWindow() (gas: 0)\n[SKIP] test_fork_upgradeThroughTheRealIntakeThenCompleteFromTheWriter() (gas: 0)\nSuite result: ok. 0 passed; 0 failed; 11 skipped; finished in 4.40ms (234.10µs CPU time)\n\nRan 3 tests for test/Attestations.t.sol:AttestationsTest\n[PASS] test_allFiveRecoverTheAttesterUnderTheirOwnDomainOnly() (gas: 5269883)\n[PASS] test_loaderRejectsUnknownAnswerTypeNames() (gas: 4845)\n[PASS] test_protocolVectorDigestAndSelector() (gas: 2162970)\nSuite result: ok. 3 passed; 0 failed; 0 skipped; finished in 14.21ms (16.95ms CPU time)\n\nRan 8 tests for test/Rename.t.sol:RenameTest\n[PASS] test_catalogSpecNamesMatchTheTable() (gas: 496540)\n[PASS] test_collectionNameAndSymbol() (gas: 25005)\n[PASS] test_composerStaysUnderTheSizeLimitWithHeadroom() (gas: 13473)\n[PASS] test_metadataCarriesTheFinalFamilyNames() (gas: 3753529)\n[PASS] test_nameTableIsTheFinalTable() (gas: 609580)\n[PASS] test_noWorkingNameSurvivesInTheNameTable() (gas: 1060323)\n[PASS] test_unknownIdHasNoName() (gas: 25179)\n[PASS] test_upgradeRefusesTopWeightsAsASharedFact() (gas: 1641444)\nSuite result: ok. 8 passed; 0 failed; 0 skipped; finished in 20.60ms (33.18ms CPU time)\n\nRan 8 tests for test/SepoliaRehearsal.t.sol:SepoliaRehearsalTest\n[PASS] testFuzz_heightBoundIsMonotone(uint64,uint64) (runs: 256, μ: 21001, ~: 20954)\n[PASS] test_catalogBodiesAndHashesStayMainnetAndIgnoreCuratorArgument() (gas: 3035811)\n[PASS] test_directReadsStillUseTheSepoliaCuratorAndIDMD() (gas: 1078460)\n[PASS] test_gameWindowAndDeployBlockNonceRegisterOnSepolia() (gas: 777584)\n[PASS] test_heightBoundCoversMeasuredMainnetHeadsAndAnchor() (gas: 97722)\n[PASS] test_mainnetUsesTheExactDeploymentHeightGuards() (gas: 890202)\n[PASS] test_sepoliaClaimantVerifies701ThroughMockIntake() (gas: 2226434)\n[PASS] test_sepoliaStillRejectsInvalidWindows() (gas: 1247014)\nSuite result: ok. 8 passed; 0 failed; 0 skipped; finished in 32.97ms (40.38ms CPU time)\n\nRan 6 tests for test/fork/BurnRule.fork.t.sol:BurnRuleForkTest\n[SKIP] test_fork_coldFreeClaimExactFeeFromNonpayableContractClaimant() (gas: 0)\n[SKIP] test_fork_coldFreeClaimWithSurplusBurnsAndExecutorReturnsTheSurplus() (gas: 0)\n[SKIP] test_fork_coldFreeClaimWithoutTheFeeReverts() (gas: 0)\n[SKIP] test_fork_executorConfigurationAndPinnedQuote() (gas: 0)\n[SKIP] test_fork_realExecutorAndOFTForceRefundSurplusToNonpayableRecipient() (gas: 0)\n[SKIP] test_fork_realExecutorExactFeeForNonpayableRecipient() (gas: 0)\nSuite result: ok. 0 passed; 0 failed; 6 skipped; finished in 305.80ms (310.65µs CPU time)\n\nRan 17 tests for test/RegistryRules.t.sol:RegistryRulesTest\n[PASS] test_constructorPriceCheckIsPassiveAndAcceptsAnyNonzeroPrice() (gas: 147502)\n[PASS] test_constructorRejectsEachSingleMistypedDependency() (gas: 19912)\n[PASS] test_constructorRejectsPartiallyCodedDependencyFloor() (gas: 19824)\n[PASS] test_constructorRejectsUnavailableIntake() (gas: 26489)\n[PASS] test_constructorRejectsWrongAsset() (gas: 548859)\n[PASS] test_constructorRejectsZeroIntakePrice() (gas: 42182)\n[PASS] test_fuzz_bothPoolPathsShareOneAllowancePerUtcDay(bool,bool,uint32) (runs: 256, μ: 3241626, ~: 3226887)\nLogs:\n  Bound result 66494\n\n[PASS] test_idmdCounterFollowsTransfersAndStopsAtNine() (gas: 15434120)\n[PASS] test_idmdHolderMustAlsoBeAListMember() (gas: 1763951)\n[PASS] test_memberClaimsOnDeploymentDayWithoutCardOrIdmd() (gas: 1675022)\n[PASS] test_noVerdictConsumesTheDayAndLifetimePair() (gas: 3269502)\n[PASS] test_paidUpgradeAndSharedFactDoNotUseOrObeyPoolDailyLimit() (gas: 8189294)\n[PASS] test_revertingIntakeDoesNotConsumePoolAllowances() (gas: 2028592)\n[PASS] test_specAndFirstClaimCostSixPointNineIMD() (gas: 1880817)\n[PASS] test_specRequiresFullFeeAndAllowance() (gas: 798883)\n[PASS] test_sponsoredUpgradeRequiresExactlyOneTrait() (gas: 1780326)\n[PASS] test_switchingIdmdDoesNotBypassDailyLimit() (gas: 3192030)\nSuite result: ok. 17 passed; 0 failed; 0 skipped; finished in 424.11ms (410.88ms CPU time)\n\nRan 2 tests for test/Floor.t.sol:FloorTest\n[PASS] test_mainnetEmptyChainFloor() (gas: 72687056)\n[PASS] test_sepoliaEmptyChainFloor() (gas: 72687024)\nSuite result: ok. 2 passed; 0 failed; 0 skipped; finished in 428.60ms (537.77ms CPU time)\n\nRan 7 tests for test/Templates.t.sol:TemplatesTest\n[PASS] test_allTenBodiesAreByteExact() (gas: 1457597)\n[PASS] test_allTenQuestionHashesEqualThePlanes() (gas: 2185841)\n[PASS] test_bodyIsDeterministicInClaimantAndDiffersAcrossClaimants() (gas: 464392)\n[PASS] test_directAndUnknownIdsHaveNoBody() (gas: 60713)\n[PASS] test_hexMinAndCatalogWindows() (gas: 147416)\n[PASS] test_sepoliaChangesOnlyConsumerChainAcrossAllTenBodies() (gas: 3075316)\n[PASS] test_traitNamesAndClasses() (gas: 112489)\nSuite result: ok. 7 passed; 0 failed; 0 skipped; finished in 827.66ms (36.98ms CPU time)\n\nRan 8 tests for test/Artifacts.t.sol:ArtifactsTest\n[PASS] test_constructorAcceptsUnavailableCuratorOnEmptyFloor() (gas: 16156)\n[PASS] test_constructorRejectsUnsettledOrUnavailableCurator() (gas: 262986)\n[PASS] test_constructorRejectsZeroAddressesAndStoresTheRest() (gas: 8024)\n[PASS] test_deployScriptUsesMainnetConstantsOnEveryOtherChain() (gas: 60662450)\n[PASS] test_deployScriptUsesSepoliaConstantsAndNonzeroExecutor() (gas: 31208855)\n[PASS] test_noForbiddenOpcodesInRuntime() (gas: 56309448)\n[PASS] test_noImmutableReferencesInAnyArtifact() (gas: 92554609)\n[PASS] test_twoDeploymentsHaveIdenticalRuntimeCode() (gas: 3577724)\nSuite result: ok. 8 passed; 0 failed; 0 skipped; finished in 851.65ms (431.17ms CPU time)\n\nRan 10 tests for test/ReReview.t.sol:ReReviewTest\n[PASS] test_coldGas_firstCommunityVerificationWithACard() (gas: 2415584)\nLogs:\n  cold onResult gas, first community verification with a card: 133357\n\n[PASS] test_coldGas_sharedFact64Catalog() (gas: 1740251)\nLogs:\n  cold onResult gas, 64-address shared fact (catalog 1201): 164088\n\n[PASS] test_coldGas_sharedFact64Community() (gas: 2108985)\nLogs:\n  cold onResult gas, 64-address shared fact (community T3): 170446\n\n[PASS] test_communityAttributesAppearOnlyForVerifiedSpecs() (gas: 4751043)\n[PASS] test_constructorReadsIsSettledWithoutWriting() (gas: 137310)\n[PASS] test_hugeSignatureOnCommunitySharedFactAndCardRequestClearsUnderStipend() (gas: 12243108)\n[PASS] test_lowerOrdinalAcquiredLaterReplacesTheHigherOne() (gas: 8479122)\n[PASS] test_sameSignedEvidenceSatisfiesAnotherRequestWithTheSameQuestion() (gas: 3262910)\n[PASS] test_specIdsEndAt65534() (gas: 909597)\n[PASS] test_unusedFixedValIsRefusedAndAnEmptyFilterIsNotSerialised() (gas: 1334489)\nSuite result: ok. 10 passed; 0 failed; 0 skipped; finished in 851.91ms (112.43ms CPU time)\n\nRan 19 tests for test/Goldens.t.sol:GoldensTest\n[PASS] test_escapeJsonNeutralisesMarkup() (gas: 42645)\n[PASS] test_goldenSyntheticCollector() (gas: 20831323)\n[PASS] test_goldenSyntheticDirect() (gas: 5078827)\n[PASS] test_goldenSyntheticFullhouse() (gas: 21514473)\n[PASS] test_goldenSyntheticHoney() (gas: 23746288)\n[PASS] test_goldenSyntheticNewcomer() (gas: 3219081)\n[PASS] test_goldenSyntheticOracle() (gas: 8915956)\n[PASS] test_goldenSyntheticOutsider() (gas: 5211326)\n[PASS] test_goldenSyntheticWidthThroughTheRenderer() (gas: 24718798)\n[PASS] test_imageCommunityPathFollowsTheStepTable() (gas: 13547491)\n[PASS] test_imageIdsOutsideTheCatalogRenderWithoutReverting() (gas: 763825)\n[PASS] test_imageIsPureAndDeterministic() (gas: 16076101)\n[PASS] test_imageOverflowPathAbsentAtOrBelow39AndNeverOverflows() (gas: 13459611)\n[PASS] test_imageRareDotOnlyAtATopTierRareId() (gas: 17170837)\n[PASS] test_imageRingsByCommunityCount() (gas: 5559349)\n[PASS] test_imageStepsUseExponentiationNotXor() (gas: 6674005)\n[PASS] test_reportRendererRuntimeSize() (gas: 129606)\nLogs:\n  Renderer runtime bytes: 21570\n\n[PASS] test_reportTokenURIGas() (gas: 29841499)\nLogs:\n  tokenURI gas synthetic_width: 10810085\n  tokenURI gas synthetic_fullhouse: 9147472\n  tokenURI gas synthetic_honey: 9589924\n\n[PASS] test_templateArtifactsMatchTheCompiledConstants() (gas: 297819)\nSuite result: ok. 19 passed; 0 failed; 0 skipped; finished in 962.14ms (2.28s CPU time)\n\nRan 29 tests for test/Registry.t.sol:RegistryTest\n[PASS] test_abandonOnlyAfterFourteenDaysAndStaleCallbackLeavesSuccessor() (gas: 3333466)\n[PASS] test_anyoneReadsAnyWalletAndNothingUsesTxOrigin() (gas: 1943257)\n[PASS] test_attestationForAnotherConsumerOrChainIsNeverAccepted() (gas: 3213846)\n[PASS] test_callbacksRejectEveryoneButTheIntake() (gas: 1630434)\n[PASS] test_claimSponsoredRules() (gas: 5264004)\n[PASS] test_directTraitsAreLiveAndNeedNoCard() (gas: 605974)\n[PASS] test_fuzz_tiersAreMonotone(uint8,bool,uint32,uint128,uint32,uint8) (runs: 256, μ: 709278, ~: 695481)\n[PASS] test_mainnetQuestionAcceptedUnderSepoliaConsumerDomain() (gas: 1726675)\n[PASS] test_mainnetSignatureCannotAnswerSepoliaConsumer() (gas: 1667544)\n[PASS] test_malformedEnvelopeIsNotDeliveredAndStaysPending() (gas: 1561112)\n[PASS] test_mintOncePerWalletAndTransfersKeepClaimant() (gas: 956472)\n[PASS] test_mintWithoutFeeReverts() (gas: 47096)\n[PASS] test_missReasons() (gas: 29440347)\n[PASS] test_noReceiveOrFallback() (gas: 57774)\n[PASS] test_nonMemberIsNeverAnEarlyBird() (gas: 232419)\n[PASS] test_onFailureClearsAndAllowsRetry() (gas: 3006144)\n[PASS] test_onResultGasWorstCase() (gas: 2334293)\nLogs:\n  onResult worst-case gas: 164955\n\n[PASS] test_poolIsTheBalanceAndOnlyLeavesThroughSponsoredRequests() (gas: 5657704)\n[PASS] test_reentrantTokenCannotReenterMint() (gas: 2358744)\n[PASS] test_registerSpecAssignsSequentialIdsAndIsImmutable() (gas: 1231919)\n[PASS] test_sepoliaQuestionMissesWithReasonThreeUnderSepoliaDomain() (gas: 1654372)\n[PASS] test_sharedFactBadEnvelopeIsAMissAndCanBeRequestedAgain() (gas: 6925553)\n[PASS] test_sharedFactFlow() (gas: 2478075)\n[PASS] test_specGuards() (gas: 1337374)\n[PASS] test_strangerCannotDiscardLateValidAnswer() (gas: 1727693)\n[PASS] test_supportsERC4906AndERC721() (gas: 25952)\n[PASS] test_upgradeGuards() (gas: 6034862)\n[PASS] test_upgradeHappyPathMarksTraitAndRefreshesCard() (gas: 2537520)\n[PASS] test_upgradeWithoutCardAttachesToClaimant() (gas: 1895253)\nSuite result: ok. 29 passed; 0 failed; 0 skipped; finished in 1.03s (1.02s CPU time)\n\nRan 24 tests for test/BurnRule.t.sol:BurnRuleTest\n[PASS] testFuzz_belowThresholdRefundsWithoutFee(bool,uint96,uint96) (runs: 256, μ: 1561564, ~: 1547450)\nLogs:\n  Bound result 2627031794\n  Bound result 264337514315787821\n\n[PASS] testFuzz_dueForwardsWholeValueAndExecutorForceRefunds(bool,uint96,uint96) (runs: 256, μ: 1830715, ~: 1816220)\nLogs:\n  Bound result 79228162445264337593543961327\n  Bound result 13091\n\n[PASS] testFuzz_dueWithoutEnoughFeeRevertsAtomically(bool,uint96,uint96) (runs: 256, μ: 3241388, ~: 3211359)\nLogs:\n  Bound result 79228162445264337593543961327\n  Bound result 13091\n\n[PASS] testFuzz_failedPreviewOrBridgeSkipsAndRefunds(bool,uint8,uint96) (runs: 256, μ: 1763395, ~: 1598383)\nLogs:\n  Bound result 2\n  Bound result 264337514315787821\n\n[PASS] testFuzz_nonpayableContractWorksWithNoValueExactFeeAndSurplus(bool,uint8) (runs: 256, μ: 1945856, ~: 1976404)\nLogs:\n  Bound result 1\n\n[PASS] testFuzz_previewExceedingTheBudgetSkipsWithCodeOneAndRefunds(bool,uint96) (runs: 256, μ: 2168267, ~: 2181690)\nLogs:\n  Bound result 264337514315787821\n\n[PASS] testFuzz_quoteAboveCapSkipsWithCodeThree(bool,uint96,uint96) (runs: 256, μ: 1565426, ~: 1551124)\nLogs:\n  Bound result 79228162514259337593543961326\n  Bound result 13091\n\n[PASS] testFuzz_unsetExecutorDisablesBurnAndRefunds(bool,uint96) (runs: 256, μ: 1584688, ~: 1598430)\nLogs:\n  Bound result 100322123176966250\n\n[PASS] test_constantsAndStorage() (gas: 29216)\n[PASS] test_constructorRejectsNonzeroExecutorWithoutCodeAndAcceptsZeroOrCode() (gas: 22214)\n[PASS] test_exactFeeAndCapAreInclusive() (gas: 1708610)\n[PASS] test_executorReentryIsGuarded() (gas: 1770521)\n[PASS] test_executorSurplusCallReentryIsGuarded() (gas: 2351890)\n[PASS] test_executorSurplusIsForcedOnARejectingRecipient() (gas: 1984962)\n[PASS] test_existingChecksAndIntakeFailurePrecedeBurnFeeCheck() (gas: 579753)\n[PASS] test_gasArgumentsIncludeOnlyTheValueStipend() (gas: 1694399)\n[PASS] test_noFeeAtExactThresholdReverts() (gas: 1537275)\n[PASS] test_nonpayableContractAcceptsZeroRefundOnPreviewFailure() (gas: 1791339)\n[PASS] test_paidFunctionsRejectOneWeiWhereZeroValueSucceeds() (gas: 3763404)\n[PASS] test_previewUsingMostOfTheBudgetIsQuotedAndBurns() (gas: 2236765)\n[PASS] test_registryRefundReentryIsGuarded() (gas: 2174439)\n[PASS] test_rejectedNonzeroRegistryRefundRevertsAllEffects() (gas: 1949413)\n[PASS] test_zeroQuoteStillTriggersWhenDue() (gas: 1643756)\n[PASS] test_zeroValueHasNoStipend() (gas: 1564856)\nSuite result: ok. 24 passed; 0 failed; 0 skipped; finished in 1.03s (4.44s CPU time)\n\nRan 32 tests for test/Adversarial.t.sol:AdversarialTest\n[PASS] test_abandonedSharedFactCanBeRequestedAgainAndTheLateAnswerIsIgnored() (gas: 3063452)\n[PASS] test_attestationForAnotherClaimantIsAMissForThisRequest() (gas: 3244206)\n[PASS] test_attestationForAnotherTraitWithTheSameWindowIsAMiss() (gas: 3247257)\n[PASS] test_callbackStarvedOfGasIsNotDeliveredAndStaysPending() (gas: 1692953)\n[PASS] test_cardShowsAtMostThirtyTwoCommunityIdsAndCountsThemAll() (gas: 86215566)\n[PASS] test_claimSponsoredWhilePendingOrVerifiedReverts() (gas: 2104530)\n[PASS] test_communityT3SpecIsASharedFactWithItsOwnHead() (gas: 2423017)\n[PASS] test_everyTemplateVerifiesUnderTheStipendWithACard() (gas: 11730795)\n[PASS] test_expiryAtTheExactSecondStillPassesAndOneLaterDoesNot() (gas: 3241538)\n[PASS] test_fuzz_abandonedPoolRequestKeepsPoolUsedAndLateCallbackIsIgnored(bool) (runs: 256, μ: 1907637, ~: 1891912)\n[PASS] test_fuzz_anyFieldAlteredAfterSigningIsASignatureMiss(uint8,uint256) (runs: 512, μ: 1652915, ~: 1654318)\nLogs:\n  Bound result 7\n\n[PASS] test_fuzz_applySharedFactOnlyWithinTheHead(uint8,uint8) (runs: 256, μ: 1781714, ~: 1762608)\nLogs:\n  Bound result 5\n  Bound result 3\n\n[PASS] test_fuzz_boolAnswerMustBeExactlyZeroOrOne(uint256) (runs: 512, μ: 2076326, ~: 2075770)\n[PASS] test_fuzz_countAnswerAgainstTheThreshold(uint256,bytes1,bool) (runs: 512, μ: 1655360, ~: 1637738)\n[PASS] test_fuzz_expiryAndClockSkewBoundaries(uint64,uint64) (runs: 512, μ: 1649979, ~: 1641471)\n[PASS] test_fuzz_hasTraitAndTraitsOfNeverRevert(address,uint16,uint8,bool,uint8) (runs: 512, μ: 324500, ~: 333467)\n[PASS] test_fuzz_maximalSpecRegistersComposesAndFitsTheBody(uint8,uint256,uint256) (runs: 64, μ: 2369652, ~: 2697774)\nLogs:\n  Bound result 3\n  Bound result 32\n\n[PASS] test_fuzz_panelAndQuorumBoundaries(uint16,uint16,uint16) (runs: 512, μ: 1655663, ~: 1640592)\n[PASS] test_fuzz_panelTraitNeedsElevenAndSeven(uint16,uint16,uint16) (runs: 512, μ: 2083903, ~: 2069577)\n[PASS] test_fuzz_specBodyIsDeterministicAndClaimantBound(address,address) (runs: 256, μ: 864577, ~: 864577)\n[PASS] test_fuzz_upgradeChargesExactlyKTimesPriceAndLeavesThePoolAlone(uint8,uint256) (runs: 256, μ: 4998297, ~: 4217773)\nLogs:\n  Bound result 1\n  Bound result 43527167479140976765\n\n[PASS] test_fuzz_upgradeRejectsEveryIdThatIsNotAnOracleTrait(uint16) (runs: 256, μ: 209829, ~: 209312)\n[PASS] test_fuzz_windowMustEqualTheCanonicalOne(uint64,uint64) (runs: 512, μ: 1641003, ~: 1641002)\n[PASS] test_onFailureRecordsWhatItIsToldAndStoresNothing() (gas: 3064198)\n[PASS] test_questionHashIsBoundToTheClaimantAndTheTrait() (gas: 690361)\n[PASS] test_reentrantTokenCannotReenterAnyIMDMovingFunction() (gas: 7517031)\n[PASS] test_sharedFactWorstCaseEnvelopeUnderTheStipend() (gas: 3983876)\n[PASS] test_signatureShapesThatDoNotRecover() (gas: 9338096)\n[PASS] test_tokenURIDependsOnlyOnTheClaimantsFacts() (gas: 14700480)\n[PASS] test_traitClassForEveryCatalogIdAndRevertsForUnknown() (gas: 703103)\n[PASS] test_upgradeSponsoredDrawsAllNineOverNineDaysAndRefusesDuplicates() (gas: 12560682)\n[PASS] test_verifiedWindowIsTheCanonicalWindowForEveryOracleId() (gas: 16465073)\nSuite result: ok. 32 passed; 0 failed; 0 skipped; finished in 1.03s (6.22s CPU time)\n\nRan 10 tests for test/ReviewChanges.t.sol:ReviewChangesTest\n[PASS] test_fuzz_emptyFixedArgRequiresZeroValueForT1AndT2(uint256) (runs: 256, μ: 3038973, ~: 3038661)\nLogs:\n  Bound result 51966\n\n[PASS] test_fuzz_ordinalShowsLowestVerifiedId(uint8) (runs: 256, μ: 4954476, ~: 4866857)\nLogs:\n  Bound result 16\n\n[PASS] test_hugeAnswerClearsUintBoolAndSharedRequestsUnderStipend() (gas: 26379788)\n[PASS] test_hugeSignatureClearsPendingAndAllowsImmediateRetry() (gas: 6838211)\n[PASS] test_metadataReportsMinimaEvenWhenSignedPanelIsLarger() (gas: 6306433)\n[PASS] test_scalarAnswerLengthPrecedesChainSignerAndClaimedType() (gas: 17767584)\n[PASS] test_sharedAnswerUpperBoundPrecedesChainAndSigner() (gas: 4503532)\n[PASS] test_signatureLengthPrecedesAnswerLengthAndChain() (gas: 37652039)\n[PASS] test_unknownRequestStillPrecedesDynamicSizeChecks() (gas: 12871822)\n[PASS] test_validationPrecedenceAfterSizes() (gas: 18086010)\nSuite result: ok. 10 passed; 0 failed; 0 skipped; finished in 1.03s (1.63s CPU time)\n\nRan 1 test for test/Invariants.t.sol:InvariantsTest\n[PASS]\nInvariantsTest invariants:\n[PASS] invariant_oneCardPerClaimantWithImmutableClaimant\n[PASS] invariant_poolOnlyLeavesThroughSponsoredRequests\n InvariantsTest invariants (runs: 256, calls: 16384, reverts: 0)\n\n╭----------+-------------------+-------+---------+----------╮\n| Contract | Selector          | Calls | Reverts | Discards |\n+===========================================================+\n| Handler  | claimSponsored    | 3216  | 0       | 0        |\n|----------+-------------------+-------+---------+----------|\n| Handler  | mintCard          | 3254  | 0       | 0        |\n|----------+-------------------+-------+---------+----------|\n| Handler  | sponsor           | 3358  | 0       | 0        |\n|----------+-------------------+-------+---------+----------|\n| Handler  | transfer          | 3237  | 0       | 0        |\n|----------+-------------------+-------+---------+----------|\n| Handler  | upgradeAndDeliver | 3319  | 0       | 0        |\n╰----------+-------------------+-------+---------+----------╯\n\nLogs:\n  Bound result 805521517275466379\n  Bound result 713274989578683911\n  Bound result 3033974657\n  Bound result 23120\n  Bound result 1370020076737307531\n  Bound result 1325555598382842085\n  Bound result 315468179116284262\n  Bound result 100000000000000641\n  Bound result 12004\n  Bound result 601\n\nSuite result: ok. 1 passed; 0 failed; 0 skipped; finished in 9.96s (9.94s CPU time)\n\nRan 1 test for test/BurnInvariant.t.sol:BurnInvariantTest\n[PASS] invariant_registryRetainsNoClaimETHAndPoolOnlyFundsOracleRequests() (runs: 256, calls: 16384, reverts: 0)\n\n╭-------------+----------+-------+---------+----------╮\n| Contract    | Selector | Calls | Reverts | Discards |\n+=====================================================+\n| BurnHandler | claim    | 16384 | 0       | 0        |\n╰-------------+----------+-------+---------+----------╯\n\nLogs:\n  Bound result 66048508775152929047\n  Bound result 3388213489663698\n  Bound result 48955652701\n  Bound result 74264337592978034889\n  Bound result 329\n  Bound result 7976\n  Bound result 74264337592978034889\n  Bound result 4329670727698909\n  Bound result 12726498599447939\n  Bound result 1122777314\n  Bound result 4329670727698909\n  Bound result 15154\n  Bound result 74264337592978034889\n  Bound result 4329670727698909\n  Bound result 1743\n  Bound result 74264337592978034889\n  Bound result 130178016878662\n  Bound result 19999999999950125\n  Bound result 8209\n  Bound result 2360\n  Bound result 130178016878661\n  Bound result 74264337592978034889\n  Bound result 3379\n  Bound result 4333632135824622\n  Bound result 74264337592978034889\n  Bound result 4329670727698909\n  Bound result 4333632135824622\n  Bound result 74264337592978034889\n  Bound result 599290590\n  Bound result 1048586\n  Bound result 3498\n  Bound result 4329670727698909\n  Bound result 4333632135824622\n  Bound result 37248604778731419927\n  Bound result 4329670727698909\n  Bound result 6484\n  Bound result 74264337592978034889\n  Bound result 4329670727698909\n  Bound result 42688053\n  Bound result 74264337592978034889\n  Bound result 6298808024725180\n  Bound result 198532\n  Bound result 74264337592978034889\n  Bound result 4329670727698909\n  Bound result 5\n  Bound result 128977092963287247490\n  Bound result 4329670727698909\n  Bound result 4333632135824622\n  Bound result 3\n  Bound result 8155401335\n  Bound result 5\n  Bound result 13250\n  Bound result 4329670727698909\n  Bound result 4170\n  Bound result 74264337592978034889\n  Bound result 8980\n  Bound result 4333632135824622\n  Bound result 74264337592978034889\n  Bound result 7307\n  Bound result 4333632135824622\n  Bound result 5613\n  Bound result 23214\n  Bound result 4333632135824622\n  Bound result 12082347694705331206\n  Bound result 947\n  Bound result 16047\n  Bound result 1590109535755964702\n  Bound result 9292346634709820\n  Bound result 7832\n  Bound result 136826393166847509527\n  Bound result 3743\n  Bound result 17668259291645660\n  Bound result 26200000\n  Bound result 4329670727698909\n  Bound result 1174177797014410\n  Bound result 15467\n  Bound result 4329670727698909\n  Bound result 4780376622290745\n  Bound result 74264337592978034889\n  Bound result 4329670727698909\n  Bound result 1048583\n  Bound result 3655\n  Bound result 20841\n  Bound result 1868\n  Bound result 111056049307915099832\n  Bound result 14233\n  Bound result 4333632135824622\n  Bound result 1903\n  Bound result 2975\n  Bound result 4333632135824622\n  Bound result 7390\n  Bound result 5286188051586411\n  Bound result 1281139557766130\n  Bound result 74264337592978034889\n  Bound result 88\n  Bound result 8980\n  Bound result 9\n  Bound result 4524883261688014\n  Bound result 5439262988029634\n  Bound result 18834\n  Bound result 4329670727698909\n  Bound result 5272\n  Bound result 74264337592978034889\n  Bound result 4329670727698909\n  Bound result 623\n  Bound result 74264337592978034889\n  Bound result 285510556414776\n  Bound result 4333632135824622\n  Bound result 74264337592978034889\n  Bound result 4329670727698909\n  Bound result 4207096747\n  Bound result 128959758704593641317\n  Bound result 11118\n  Bound result 19775270856966611\n  Bound result 74264337592978034889\n  Bound result 1429\n  Bound result 3833\n  Bound result 74264337592978034889\n  Bound result 12939\n  Bound result 10602\n  Bound result 85617670845121780861\n  Bound result 9365\n  Bound result 4333632135824622\n  Bound result 18048848340226307230\n  Bound result 4329670727698909\n  Bound result 4333632135824622\n  Bound result 43379231758516807160\n  Bound result 4329670727698909\n  Bound result 16453302894516146\n  Bound result 13057\n  Bound result 5891\n  Bound result 4333632135824622\n  Bound result 31141493852577320373\n  Bound result 4329670727698909\n  Bound result 1594705978547247\n  Bound result 74264337592978034889\n  Bound result 8093366063670438\n  Bound result 4333632135824622\n  Bound result 74264337592978034889\n  Bound result 1048593\n  Bound result 4333632135824622\n  Bound result 49149627578684911615\n  Bound result 21797\n  Bound result 4333632135824622\n  Bound result 12571\n  Bound result 19373\n  Bound result 649\n  Bound result 74264337592978034889\n  Bound result 15361\n  Bound result 4333632135824622\n  Bound result 80482283893750513588\n  Bound result 4329670727698909\n  Bound result 4333632135824622\n  Bound result 14999999999999999992\n  Bound result 1699\n  Bound result 4333632135824622\n  Bound result 77776751418742782532\n  Bound result 20056663\n  Bound result 13618163254146247\n  Bound result 1003\n  Bound result 4329670727698909\n  Bound result 4333632135824622\n  Bound result 74264337592978034889\n  Bound result 4329670727698909\n  Bound result 28142141643097\n  Bound result 74264337592978034889\n  Bound result 4329670727698909\n  Bound result 4333632135824622\n  Bound result 5018\n  Bound result 4329670727698909\n  Bound result 21527\n  Bound result 854\n  Bound result 3257395624154164\n  Bound result 4333632135824622\n  Bound result 74264337592978034888\n  Bound result 2608\n  Bound result 63633\n  Bound result 3273\n  Bound result 4329670727698909\n  Bound result 394166319\n  Bound result 3715\n  Bound result 1714254489\n  Bound result 11883789608241906\n  Bound result 77\n  Bound result 4329670727698909\n  Bound result 4333632135824622\n  Bound result 89054801195391628547\n  Bound result 7096024114141734\n  Bound result 4333632135824620\n  Bound result 88607120082107293861\n  Bound result 2857839850459390\n  Bound result 4333632135824622\n  Bound result 74264337592978034889\n  Bound result 4329670727698909\n  Bound result 4333632135824622\n\nSuite result: ok. 1 passed; 0 failed; 0 skipped; finished in 19.81s (19.76s CPU time)\n\nRan 3 tests for test/InvariantsExtended.t.sol:InvariantsExtendedTest\n[PASS]\nInvariantsExtendedTest invariants:\n[PASS] invariant_markedExactlyWhenAPassingAttestationWasDelivered\n[PASS] invariant_oneCardPerClaimant\n[PASS] invariant_poolDailyAndLifetimeLimits\n[PASS] invariant_poolIsFeesPlusDonationsMinusSponsoredRequests\n[PASS] invariant_sharedFactsAreHashesStoredOnlyOnDelivery\n[PASS] invariant_specsAreImmutable\n InvariantsExtendedTest invariants (runs: 96, calls: 4608, reverts: 0)\n\n╭-------------+-------------------+-------+---------+----------╮\n| Contract    | Selector          | Calls | Reverts | Discards |\n+==============================================================+\n| FullHandler | abandonLate       | 262   | 0       | 0        |\n|-------------+-------------------+-------+---------+----------|\n| FullHandler | advanceTime       | 263   | 0       | 0        |\n|-------------+-------------------+-------+---------+----------|\n| FullHandler | applyShared       | 284   | 0       | 0        |\n|-------------+-------------------+-------+---------+----------|\n| FullHandler | claimSponsored    | 286   | 0       | 0        |\n|-------------+-------------------+-------+---------+----------|\n| FullHandler | deliverFalse      | 255   | 0       | 0        |\n|-------------+-------------------+-------+---------+----------|\n| FullHandler | deliverTampered   | 285   | 0       | 0        |\n|-------------+-------------------+-------+---------+----------|\n| FullHandler | deliverTrue       | 292   | 0       | 0        |\n|-------------+-------------------+-------+---------+----------|\n| FullHandler | donate            | 286   | 0       | 0        |\n|-------------+-------------------+-------+---------+----------|\n| FullHandler | failRequest       | 251   | 0       | 0        |\n|-------------+-------------------+-------+---------+----------|\n| FullHandler | mintCard          | 257   | 0       | 0        |\n|-------------+-------------------+-------+---------+----------|\n| FullHandler | registerSpec      | 278   | 0       | 0        |\n|-------------+-------------------+-------+---------+----------|\n| FullHandler | replayConsumed    | 269   | 0       | 0        |\n|-------------+-------------------+-------+---------+----------|\n| FullHandler | requestSharedFact | 258   | 0       | 0        |\n|-------------+-------------------+-------+---------+----------|\n| FullHandler | sponsor           | 299   | 0       | 0        |\n|-------------+-------------------+-------+---------+----------|\n| FullHandler | transfer          | 259   | 0       | 0        |\n|-------------+-------------------+-------+---------+----------|\n| FullHandler | upgradePaid       | 254   | 0       | 0        |\n|-------------+-------------------+-------+---------+----------|\n| FullHandler | upgradeSponsored  | 270   | 0       | 0        |\n╰-------------+-------------------+-------+---------+----------╯\n\nLogs:\n  Bound result 1\n  Bound result 5\n  Bound result 16541\n  Bound result 601\n  Bound result 14539\n  Bound result 2488\n  Bound result 23\n  Bound result 4\n  Bound result 4\n  Bound result 1015484790083359675\n\n[PASS] test_handlerReplayOfAConsumedIdChangesNothing() (gas: 1920763)\n[PASS] test_handlerSponsoredSelectionAcceptsMaxSeed() (gas: 1764003)\nLogs:\n  Bound result 3000000000000000000\n\nSuite result: ok. 3 passed; 0 failed; 0 skipped; finished in 23.50s (23.49s CPU time)\n\nRan 19 test suites in 23.50s (62.10s CPU time): 184 tests passed, 0 failed, 17 skipped (201 total tests)\n","passed":true},{"durationMs":536,"exitCode":0,"name":"source-index","output":"{\"v\":1,\"entryPoints\":[\"Registry.abandon(bytes32)\",\"Registry.applySharedFact(uint16,address[])\",\"Registry.approve(address,uint256)\",\"Registry.claimSponsored(uint16)\",\"Registry.mintCard()\",\"Registry.onFailure(bytes32,uint8,bytes32,uint16,uint16,bytes)\",\"Registry.onResult(bytes32,(bytes32,uint256,bytes32,uint8,bytes,uint256,uint64,uint64,bytes32,bytes32,uint16,uint16,uint16,uint64,uint64),bytes)\",\"Registry.registerSpec((uint8,address,string,string,string,uint256,string,uint8,uint256,uint64,uint64,string))\",\"Registry.requestSharedFact(uint16,uint256)\",\"Registry.safeTransferFrom(address,address,uint256)\",\"Registry.safeTransferFrom(address,address,uint256,bytes)\",\"Registry.setApprovalForAll(address,bool)\",\"Registry.sponsor(uint256)\",\"Registry.transferFrom(address,address,uint256)\",\"Registry.upgrade(uint16[],uint256)\",\"Registry.upgradeSponsored(uint256,uint16[])\"],\"files\":{\".gitignore\":8,\".gitmodules\":6,\"ADAPTATION.md\":45,\"CATALOG.md\":268,\"CONCEPT.md\":262,\"DISCLOSURE.md\":58,\"INTEGRATION.md\":467,\"LICENSE\":21,\"README.md\":439,\"TEMPLATES.md\":158,\"foundry.toml\":44,\"launch.json\":27,\"reference/Intake.sol\":5175,\"reference/IntakeV2.sol\":5240,\"reference/PROVENANCE.md\":44,\"reference/abi/IMD.json\":1684,\"reference/abi/IdentityMD.json\":894,\"reference/abi/Intake.json\":955,\"reference/abi/IntakeV2.json\":1070,\"reference/abi/WhitelistCurator.json\":794,\"reference/anchors/headers.json\":61,\"reference/attestations/2026-10-10-link-pilot.json\":92,\"reference/attestations/2026-10-10-meatbag-consumer.json\":104,\"reference/attestations/2026-10-11-feed-consumer-v2.json\":105,\"reference/attestations/2026-10-11-nonce-false.json\":92,\"reference/attestations/2026-10-11-nonce-true.json\":92,\"reference/attestations/README.md\":29,\"reference/burn/BurnExecutorV2.sol.txt\":314,\"reference/burn/abi.json\":1001,\"reference/burn/provenance.json\":17,\"reference/intake/completions.json\":147,\"reference/list-record/src/ListRecord.sol\":169,\"reference/list-record/src/ListRecordRenderer.sol\":126,\"reference/list-record/src/interfaces/IListRecordRenderer.sol\":29,\"reference/list-record/src/lib/SSTORE2.sol\":39,\"reference/list-record/src/lib/Str.sol\":54,\"reference/list-record/test/Renderer.t.sol\":165,\"reference/list-record/test/RendererMechanism.t.sol\":203,\"reference/list-record/test/Template.t.sol\":293,\"reference/list-record/test/fixtures/golden_synthetic_held_svg.txt\":1,\"reference/list-record/test/fixtures/golden_synthetic_held_uri.txt\":1,\"reference/list-record/test/fixtures/golden_synthetic_transferred_svg.txt\":1,\"reference/list-record/test/fixtures/golden_synthetic_transferred_uri.txt\":1,\"reference/list-record/test/fixtures/golden_synthetic_width_svg.txt\":1,\"reference/list-record/test/fixtures/golden_synthetic_width_uri.txt\":1,\"reference/plane/checks/1001-hour-savior.json\":81,\"reference/plane/checks/1102-ordinal-1000.json\":81,\"reference/plane/checks/1105-first-thousand.json\":81,\"reference/plane/checks/1201-top-32.json\":82,\"reference/plane/checks/1301-not-born-yesterday.json\":86,\"reference/plane/checks/701-still-here.json\":81,\"reference/plane/checks/801-last-stand.json\":81,\"reference/plane/checks/T2-log-sum-composed.json\":81,\"reference/plane/checks/T4-call-compare-reference.json\":81,\"reference/plane/checks/T5-community-composed.json\":86,\"reference/plane/questionHashes.json\":92,\"reference/plane/quotes/1001-hour-savior.json\":20,\"reference/plane/quotes/1102-ordinal-1000.json\":20,\"reference/plane/quotes/1105-first-thousand.json\":20,\"reference/plane/quotes/1201-top-32.json\":20,\"reference/plane/quotes/1301-not-born-yesterday.json\":20,\"reference/plane/quotes/701-still-here.json\":20,\"reference/plane/quotes/801-last-stand.json\":20,\"reference/plane/quotes/T2-log-sum-composed.json\":20,\"reference/plane/quotes/T4-call-compare-reference.json\":20,\"reference/plane/quotes/T5-community-composed.json\":20,\"remappings.txt\":2,\"script/Deploy.s.sol\":48,\"src/Composer.sol\":636,\"src/HiveData.sol\":75,\"src/Registry.sol\":761,\"src/Renderer.sol\":427,\"src/TemplateData.sol\":16,\"src/Types.sol\":41,\"src/interfaces/IBurnExecutor.sol\":12,\"src/interfaces/IIDMD.sol\":8,\"src/interfaces/IIntake.sol\":29,\"src/interfaces/IOracleConsumer.sol\":38,\"src/interfaces/IWhitelistCurator.sol\":53,\"template/blob.hex\":1,\"template/offsets.txt\":1,\"templates/fixtures/1001-hour-savior.json\":22,\"templates/fixtures/1102-ordinal-1000.json\":22,\"templates/fixtures/1105-first-thousand.json\":22,\"templates/fixtures/1201-top-32.json\":22,\"templates/fixtures/1301-not-born-yesterday.json\":24,\"templates/fixtures/701-still-here.json\":22,\"templates/fixtures/801-last-stand.json\":22,\"templates/fixtures/T2-log-sum-composed.json\":23,\"templates/fixtures/T4-call-compare-reference.json\":21,\"templates/fixtures/T5-community-composed.json\":24,\"test/.gitkeep\":0,\"test/Adversarial.t.sol\":832,\"test/Artifacts.t.sol\":209,\"test/Attestations.t.sol\":196,\"test/Base.t.sol\":158,\"test/BurnInvariant.t.sol\":120,\"test/BurnRule.t.sol\":405,\"test/Floor.t.sol\":134,\"test/Goldens.t.sol\":444,\"test/Invariants.t.sol\":124,\"test/InvariantsExtended.t.sol\":520,\"test/NOTES.md\":582,\"test/ReReview.t.sol\":263,\"test/Registry.t.sol\":822,\"test/RegistryRules.t.sol\":335,\"test/Rename.t.sol\":224,\"test/ReviewChanges.t.sol\":215,\"test/SepoliaRehearsal.t.sol\":249,\"test/SpecIdCap.t.sol\":46,\"test/Templates.t.sol\":171,\"test/fixtures/golden_synthetic_collector_preimage.txt\":1,\"test/fixtures/golden_synthetic_collector_svg.txt\":1,\"test/fixtures/golden_synthetic_collector_uri.txt\":1,\"test/fixtures/golden_synthetic_direct_preimage.txt\":1,\"test/fixtures/golden_synthetic_direct_svg.txt\":1,\"test/fixtures/golden_synthetic_direct_uri.txt\":1,\"test/fixtures/golden_synthetic_fullhouse_preimage.txt\":1,\"test/fixtures/golden_synthetic_fullhouse_svg.txt\":1,\"test/fixtures/golden_synthetic_fullhouse_uri.txt\":1,\"test/fixtures/golden_synthetic_honey_preimage.txt\":1,\"test/fixtures/golden_synthetic_honey_svg.txt\":1,\"test/fixtures/golden_synthetic_honey_uri.txt\":1,\"test/fixtures/golden_synthetic_newcomer_preimage.txt\":1,\"test/fixtures/golden_synthetic_newcomer_svg.txt\":1,\"test/fixtures/golden_synthetic_newcomer_uri.txt\":1,\"test/fixtures/golden_synthetic_oracle_preimage.txt\":1,\"test/fixtures/golden_synthetic_oracle_svg.txt\":1,\"test/fixtures/golden_synthetic_oracle_uri.txt\":1,\"test/fixtures/golden_synthetic_outsider_preimage.txt\":1,\"test/fixtures/golden_synthetic_outsider_svg.txt\":1,\"test/fixtures/golden_synthetic_outsider_uri.txt\":1,\"test/fixtures/golden_synthetic_width_preimage.txt\":1,\"test/fixtures/golden_synthetic_width_svg.txt\":1,\"test/fixtures/golden_synthetic_width_uri.txt\":1,\"test/fork/BurnRule.fork.t.sol\":193,\"test/fork/Mainnet.fork.t.sol\":338,\"test/mocks/MockBurnExecutor.sol\":157,\"test/mocks/Mocks.sol\":231,\"tools/gen_template.py\":898,\"tools/test_gen_template.py\":334},\"excluded\":[\"lib/\",\"node_modules/\"],\"truncated\":false}","passed":true}],"detail":"all checks passed","evaluation":"checks","profile":"foundry","status":"accepted","submissionHash":"cf1fa51bec0500bd8eb0830bddfb9ded3092f836431375ade3159305996a9a86","verifiedTreeHash":"36760e0fedb0bcd7ef2c9917652df601b4bdc336","verifierVersion":"0.1.0+745c1db4"}]}