From 4858bb38da10cd8a1cd25ef85e7c14f4e2b529dd Mon Sep 17 00:00:00 2001 From: Chafik Boukhalfa Date: Mon, 12 Oct 2026 07:29:28 +0400 Subject: [PATCH] Add cold-verified static44 and selective bit finite witness --- .gitattributes | 4 + .github/workflows/static44-selective.yml | 37 + .../CROSS-PLATFORM.json | 41 + .../PR531-DEPENDENCY-COPY.json | 86 + .../static44-selective-validation/README.md | 20 + .../SOURCE-BLOB-AUDIT.json | 881 + .../linux-python312/RECEIPT.json | 111 + .../linux-python312/RESULT.json | 70 + .../linux-python312/STAGES.json | 92 + .../assembly/EXACT-ASSEMBLY.json | 197 + .../linux-python312/bit-global/INVOICE.json | 49 + .../bit-global/RESOURCE-RESULT.json | 63 + .../bit-native/NATIVE-REVIEW.json | 27 + .../linux-python312/bit-word/BUILD.json | 157 + .../complex-audit/ASYNC-AUDIT.json | 47 + .../complex-audit/OWNERS-AND-PROFILE.json | 40 + .../complex-audit/PREFIX-AND-INVOICE.json | 106 + .../complex-local/CLIFFORD-REVIEW.json | 20 + .../INDEPENDENT-LOCAL-REPLAY.json | 58 + .../complex-local/LEMMA-A.json | 287 + .../static44/SCALAR-AUDIT.json | 56 + .../macos-python314/RECEIPT.json | 111 + .../macos-python314/RESULT.json | 70 + .../macos-python314/STAGES.json | 92 + .../assembly/EXACT-ASSEMBLY.json | 197 + .../macos-python314/bit-global/INVOICE.json | 49 + .../bit-global/RESOURCE-RESULT.json | 63 + .../bit-native/NATIVE-REVIEW.json | 27 + .../macos-python314/bit-word/BUILD.json | 157 + .../complex-audit/ASYNC-AUDIT.json | 47 + .../complex-audit/OWNERS-AND-PROFILE.json | 40 + .../complex-audit/PREFIX-AND-INVOICE.json | 106 + .../complex-local/CLIFFORD-REVIEW.json | 20 + .../INDEPENDENT-LOCAL-REPLAY.json | 58 + .../complex-local/LEMMA-A.json | 287 + .../static44/SCALAR-AUDIT.json | 56 + research/static44-selective/EXPECTED.json | 47 + research/static44-selective/LICENSE | 201 + research/static44-selective/MANIFEST.json | 245 + research/static44-selective/NOTICE.md | 28 + research/static44-selective/README.md | 47 + research/static44-selective/SOURCES.json | 265 + research/static44-selective/code/assemble.py | 177 + research/static44-selective/code/build_bit.py | 103 + .../code/build_preload60.py | 48 + .../static44-selective/code/phases_full.py | 39 + research/static44-selective/code/run.py | 16 + .../static44-selective/code/run_global.py | 25 + .../static44-selective/code/run_native.py | 41 + .../static44-selective/data/FRAME-RECIPE.json | 358 + .../data/NINE-GEOMETRY.json.gz | Bin 0 -> 116096 bytes .../static44-selective/data/OWNERS.json.gz | Bin 0 -> 411704 bytes research/static44-selective/data/PLAN.json | 14089 +++++++++ .../static44-selective/data/SLICE-RECIPE.json | 1845 ++ .../static44-selective/proof/CONSTRUCTION.md | 63 + .../proof/PR510-MUTABLE-SOURCE-CARRYOVER.md | 125 + .../e8-bit-carrier-skeleton/EXPECTED.json | 91 + .../vendor/e8-bit-carrier-skeleton/LICENSE | 201 + .../e8-bit-carrier-skeleton/MANIFEST.sha256 | 93 + .../vendor/e8-bit-carrier-skeleton/NOTICE.md | 69 + .../vendor/e8-bit-carrier-skeleton/README.md | 164 + .../e8-bit-carrier-skeleton/SOURCE-pr370.json | 69 + .../e8-bit-carrier-skeleton/SOURCE-pr381.json | 13 + .../e8-bit-carrier-skeleton/SOURCE-pr386.json | 17 + .../e8-bit-carrier-skeleton/SOURCE-pr436.json | 13 + .../e8-bit-carrier-skeleton/SOURCE-pr445.json | 25 + .../e8-bit-carrier-skeleton/SOURCE-pr448.json | 13 + .../e8-bit-carrier-skeleton/SOURCE-pr451.json | 25 + .../e8-bit-carrier-skeleton/SOURCE-pr458.json | 13 + .../e8-bit-carrier-skeleton/SOURCE-pr471.json | 13 + .../e8-bit-carrier-skeleton/SOURCE-pr472.json | 73 + .../e8-bit-carrier-skeleton/SOURCE-pr473.json | 13 + .../e8-bit-carrier-skeleton/SOURCE-pr478.json | 13 + .../e8-bit-carrier-skeleton/SOURCE-pr483.json | 13 + .../e8-bit-carrier-skeleton/SOURCE-pr484.json | 13 + .../code/bit/checkers/columns_h.cpp | 48 + .../code/bit/checkers/columns_k.cpp | 62 + .../code/bit/checkers/gram_frames.py | 54 + .../code/bit/checkers/json.hpp | 25526 ++++++++++++++++ .../code/bit/checkers/legality_h.cpp | 13 + .../code/bit/export_records.py | 72 + .../code/bit/independent/checkword.py | 143 + .../code/bit/independent/interface.py | 84 + .../code/bit/independent/mutate.py | 31 + .../code/bit/independent/mutate_mut.py | 136 + .../code/bit/independent/relax.py | 33 + .../code/bit/mutate_records.py | 34 + .../code/bit/mutate_records_mut.py | 68 + .../code/bit/regression/stage_cohort.py | 12 + .../e8-bit-carrier-skeleton/code/cited.py | 23 + .../code/eleven/adapt.py | 76 + .../code/eleven/assemble.py | 102 + .../code/eleven/audit.py | 215 + .../code/eleven/emit.py | 288 + .../code/eleven/local_audit.py | 48 + .../hub/e8-r715-whole-hosted/code/assemble.py | 121 + .../hub/e8-r715-whole-hosted/code/audit.py | 213 + .../hub/e8-r715-whole-hosted/code/emit.py | 286 + .../e8-r715-whole-hosted/code/local_audit.py | 46 + .../e8-r715-whole-hosted/data/hosting.json | 519 + .../data/residual-isometries.json | 1344 + .../e8-r715-whole-hosted/data/word.json.gz | Bin 0 -> 55740 bytes .../hub/e8-r740-replica32/code/bank_routes.py | 65 + .../code/hub/e8-r740-replica32/code/e8core.py | 203 + .../code/engines/base_two_moment.py | 63 + .../e8-r740-replica32/code/engines/moment.py | 113 + .../e8-r740-replica32/code/engines/outer.py | 58 + .../code/hub/e8-r740-replica32/code/tile_m.py | 93 + .../data/residual-isometries.json | 1974 ++ .../hub/e8-r740-replica32/data/word.json.gz | Bin 0 -> 54461 bytes .../hub/idle-axis-hosting/hosting_core.py | 138 + .../code/hub/r740-hosted-eleven/code/emit.py | 261 + .../hub/r740-hosted-eleven/code/geometry.py | 111 + .../hub/r740-hosted-eleven/code/row_bound.py | 47 + .../r740-hosted-eleven/data/selection.json | 499 + .../code/hub/r740-hosted-rank149/code/emit.py | 261 + .../data/residual-isometries.json | 2230 ++ .../r740-hosted-rank149/data/selection.json | 661 + .../hub/r740-hosted-rank149/data/word.json.gz | Bin 0 -> 54626 bytes .../code/nine/geometry.py | 121 + .../code/pricing/base_two_moment.py | 63 + .../code/pricing/moment.py | 113 + .../code/pricing/outer.py | 58 + .../code/pricing/prime_witnesses.py | 99 + .../code/provenance.py | 28 + .../code/skeleton/e8.py | 131 + .../code/skeleton/gen.py | 438 + .../code/skeleton/geom.py | 148 + .../code/skeleton/wordkit.py | 336 + .../data/bit/bitE8-r865.json.gz | Bin 0 -> 33865 bytes .../data/bit/bitE8mut-r489.json.gz | Bin 0 -> 49154 bytes .../data/complex-b.json | 83 + .../data/complex/pr448/EXPECTED.json | 10 + .../data/complex/pr458/EXPECTED.json | 81 + .../data/complex/pr471/EXPECTED.json | 29 + .../data/complex/pr473/EXPECTED.json | 177 + .../data/complex/pr478/EXPECTED.json | 178 + .../data/complex/pr483/EXPECTED.json | 178 + .../data/complex/pr484/EXPECTED.json | 732 + .../data/eleven/hosting.json | 221 + .../data/eleven/residual-isometries.json | 101 + .../data/skeleton/d4part-pairs.json | 1 + .../data/skeleton/plan-skB.json | 1 + .../discovery/README.md | 25 + .../discovery/d4part.py | 49 + .../discovery/host_select.py | 77 + .../e8-bit-carrier-skeleton/discovery/plan.py | 210 + .../portable-include/bits/stdc++.h | 38 + .../e8-bit-carrier-skeleton/requirements.txt | 2 + .../vendor/e8-bit-carrier-skeleton/verify.sh | 150 + .../vendor/e8-r480-dead-totals/EXPECTED.json | 75 + .../vendor/e8-r480-dead-totals/LICENSE | 201 + .../vendor/e8-r480-dead-totals/MANIFEST.json | 13 + .../vendor/e8-r480-dead-totals/NOTICE.md | 21 + .../vendor/e8-r480-dead-totals/README.md | 113 + .../vendor/e8-r480-dead-totals/code/adapt.py | 41 + .../data/bitE8mut-r480.json.gz | Bin 0 -> 49414 bytes .../data/hosting-r480.json | 240 + .../vendor/e8-r480-dead-totals/verify.py | 223 + .../vendor/e8-r480-nine-stage/EXPECTED.json | 102 + .../vendor/e8-r480-nine-stage/LICENSE | 201 + .../vendor/e8-r480-nine-stage/MANIFEST.json | 32 + .../vendor/e8-r480-nine-stage/NOTICE.md | 32 + .../vendor/e8-r480-nine-stage/README.md | 155 + .../vendor/e8-r480-nine-stage/SOURCE.json | 107 + .../vendor/e8-r480-nine-stage/code/adapt.py | 25 + .../e8-r480-nine-stage/code/assemble9.py | 66 + .../code/findings/flowlp2.py | 38 + .../code/findings/levels.py | 34 + .../e8-r480-nine-stage/code/findings/piv0.py | 31 + .../data/selection9-r480.json | 150 + .../code/audit_hosted_k.py | 157 + .../code/audit_parent_k.py | 165 + .../code/bank_routes_k.py | 35 + .../e8-r715-eleven-stage-whole/code/emit_k.py | 130 + .../code/global_k.py | 264 + .../code/hosting_k.py | 69 + .../e8-r740-replica32/code/bank_routes.py | 65 + .../vendor/e8-r740-replica32/code/config.py | 2 + .../vendor/e8-r740-replica32/code/e8core.py | 203 + .../code/engines/base_two_moment.py | 63 + .../e8-r740-replica32/code/engines/moment.py | 113 + .../e8-r740-replica32/code/engines/outer.py | 58 + .../vendor/e8-r740-replica32/code/tile_m.py | 93 + .../vendor/idle-axis-hosting/hosting_core.py | 138 + .../vendor/e8-r480-nine-stage/verify.py | 178 + .../vendor/pr531/EXPECTED.json | 55 + .../static44-selective/vendor/pr531/LICENSE | 201 + .../vendor/pr531/LOCAL-VALIDATION.json | 10802 +++++++ .../vendor/pr531/MANIFEST.json | 82 + .../static44-selective/vendor/pr531/NOTICE.md | 24 + .../static44-selective/vendor/pr531/README.md | 119 + .../vendor/pr531/SOURCES.json | 63 + .../vendor/pr531/code/adapters_local.py | 60 + .../vendor/pr531/code/assemble.py | 42 + .../vendor/pr531/code/audit_and_transport.py | 222 + .../vendor/pr531/code/audit_local.py | 144 + .../code/audit_same_partition_frontier.py | 168 + .../pr531/code/audit_supplier_hosted.py | 155 + .../vendor/pr531/code/build_selected.py | 51 + .../vendor/pr531/code/coalesce_frames.py | 270 + .../vendor/pr531/code/construct_504.py | 333 + .../vendor/pr531/code/emit_local.py | 156 + .../vendor/pr531/code/emit_supplier_hosted.py | 100 + .../vendor/pr531/code/invoice_final.py | 299 + .../vendor/pr531/code/phases_delta.py | 158 + .../pr531/code/prepare_supplier_base.py | 95 + .../pr531/evidence/BEFORE-COALESCING.json.gz | Bin 0 -> 38304 bytes .../vendor/pr531/evidence/COALESCING.json | 6710 ++++ .../pr531/evidence/DISCOVERY-MOMENT.json | 15 + .../evidence/ENTRANCE-SELECTION-SCREEN.json | 56 + .../vendor/pr531/evidence/FAST-REPLAY.json | 45 + .../pr531/evidence/LINE-GAUGE-SELECTION.json | 810 + .../evidence/PR523-FIXED-WORD-CEILING.json | 1077 + .../pr531/evidence/PUBLIC-SNAPSHOT.json | 47 + .../evidence/SAME-PARTITION-FRONTIER.json | 10715 +++++++ .../pr531/evidence/VERIFICATION-SCOPE.json | 28 + .../pr531/evidence/audit/ASYNC-AUDIT.json | 37 + .../pr531/evidence/audit/EXACT-ASSEMBLY.json | 127 + .../pr531/evidence/audit/GLOBAL-PREFIX.json | 14 + .../evidence/audit/IDLE-REMAINDER-FRAMES.json | 15 + .../evidence/audit/OWNERS-AND-PROFILE.json | 39 + .../evidence/audit/PREFIX-AND-INVOICE.json | 105 + .../evidence/hosted/ACTUAL-SIGMAS.json.gz | Bin 0 -> 134121 bytes .../evidence/hosted/GLOBAL-TEMPLATE.json.gz | Bin 0 -> 814178 bytes .../vendor/pr531/evidence/hosted/HOSTED.json | 49 + .../hosted/IDLE-REMAINDER-FRAMES.json.gz | Bin 0 -> 53886 bytes .../evidence/local/CANONICAL-WORD.json.gz | Bin 0 -> 75113 bytes .../evidence/local/CLIFFORD-RECIPES.json | 1 + .../pr531/evidence/local/CLIFFORD-REVIEW.json | 6756 ++++ .../pr531/evidence/local/FULL-WORD.json.gz | Bin 0 -> 38164 bytes .../local/INDEPENDENT-LOCAL-REPLAY.json | 60 + .../vendor/pr531/evidence/local/LEMMA-A.json | 85 + .../pr531/evidence/local/LOCAL-CHECKS.json | 38 + .../evidence/local/LOCAL-PROGRAMS.json.gz | Bin 0 -> 187483 bytes .../evidence/local/RESIDUAL-ADAPTERS.json | 1 + .../evidence/local/SCALAR-FRAME-AUDIT.json | 533 + .../vendor/pr531/inputs/ASYNC-6.json | 12123 ++++++++ .../vendor/pr531/inputs/OWNER-PLAN.json | 13293 ++++++++ .../vendor/pr531/inputs/OWNERS.json.gz | Bin 0 -> 405076 bytes .../vendor/pr531/inputs/PR493-EXPECTED.json | 91 + .../vendor/pr531/inputs/PR523-ANCESTRY.json | 118 + .../pr531/inputs/PR523-EXACT-ASSEMBLY.json | 127 + .../inputs/PR523-PREFIX-AND-INVOICE.json | 69 + .../vendor/pr531/inputs/SELECTION.json | 484 + .../split-centres/CANONICAL-WORD.json.gz | Bin 0 -> 84988 bytes .../split-centres/GLOBAL-TEMPLATE.json.gz | Bin 0 -> 422351 bytes .../work/complex-nine-native/DATA-PHASES.json | 1 + .../pr361/code/engines/base_two_moment.py | 63 + .../work/pr361/code/engines/moment.py | 113 + .../work/pr361/code/engines/outer.py | 58 + .../inputs/hamming/PACKET-PROGRAMS.json.gz | Bin 0 -> 3400 bytes .../pr531/inputs/hamming/PROTOTYPE.json | 21364 +++++++++++++ .../phase-baseline/CANONICAL-WORD.json.gz | Bin 0 -> 84988 bytes .../phase-baseline/CLIFFORD-RECIPES.json | 1 + .../phase-baseline/CLIFFORD-REVIEW.json | 21 + .../inputs/phase-baseline/LOCAL-CHECKS.json | 40 + .../pr531/proof/DELIVERY-AND-COALESCING.md | 277 + .../vendor/pr531/proof/GLOBAL-HOSTING.md | 119 + .../vendor/pr531/proof/LOCAL-CONSTRUCTION.md | 261 + .../pr531/vendor/clifford/clifford_exact.py | 149 + .../vendor/pr531/vendor/gk/gk_common.py | 94 + .../vendor/pr531/vendor/gk/gk_word.py | 194 + .../vendor/pr531/verify_fast.py | 132 + .../vendor/static44/LICENSE | 201 + .../vendor/static44/META-SOURCES.json | 24 + .../vendor/static44/NOTICE-upstream.md | 70 + .../vendor/static44/PROOF.md | 61 + .../vendor/static44/README.md | 7 + .../vendor/static44/RECIPE.json | 168 + .../vendor/static44/SOURCE-MANIFEST.json | 16 + .../vendor/static44/audit_scalar.py | 55 + .../vendor/static44/build.py | 30 + .../vendor/static44/gk/gk_common.py | 94 + .../vendor/static44/gk/gk_word.py | 194 + .../vendor/static44/inputs/BASE535.json.gz | Bin 0 -> 36660 bytes .../vendor/static44/inputs/OLD-RECIPE.json | 1163 + .../vendor/static44/inputs/RAW504.json.gz | Bin 0 -> 32146 bytes .../vendor/static44/replay.py | 9 + research/static44-selective/verify.py | 60 + 280 files changed, 158726 insertions(+) create mode 100644 .github/workflows/static44-selective.yml create mode 100644 research/static44-selective-validation/CROSS-PLATFORM.json create mode 100644 research/static44-selective-validation/PR531-DEPENDENCY-COPY.json create mode 100644 research/static44-selective-validation/README.md create mode 100644 research/static44-selective-validation/SOURCE-BLOB-AUDIT.json create mode 100644 research/static44-selective-validation/linux-python312/RECEIPT.json create mode 100644 research/static44-selective-validation/linux-python312/RESULT.json create mode 100644 research/static44-selective-validation/linux-python312/STAGES.json create mode 100644 research/static44-selective-validation/linux-python312/assembly/EXACT-ASSEMBLY.json create mode 100644 research/static44-selective-validation/linux-python312/bit-global/INVOICE.json create mode 100644 research/static44-selective-validation/linux-python312/bit-global/RESOURCE-RESULT.json create mode 100644 research/static44-selective-validation/linux-python312/bit-native/NATIVE-REVIEW.json create mode 100644 research/static44-selective-validation/linux-python312/bit-word/BUILD.json create mode 100644 research/static44-selective-validation/linux-python312/complex-audit/ASYNC-AUDIT.json create mode 100644 research/static44-selective-validation/linux-python312/complex-audit/OWNERS-AND-PROFILE.json create mode 100644 research/static44-selective-validation/linux-python312/complex-audit/PREFIX-AND-INVOICE.json create mode 100644 research/static44-selective-validation/linux-python312/complex-local/CLIFFORD-REVIEW.json create mode 100644 research/static44-selective-validation/linux-python312/complex-local/INDEPENDENT-LOCAL-REPLAY.json create mode 100644 research/static44-selective-validation/linux-python312/complex-local/LEMMA-A.json create mode 100644 research/static44-selective-validation/linux-python312/static44/SCALAR-AUDIT.json create mode 100644 research/static44-selective-validation/macos-python314/RECEIPT.json create mode 100644 research/static44-selective-validation/macos-python314/RESULT.json create mode 100644 research/static44-selective-validation/macos-python314/STAGES.json create mode 100644 research/static44-selective-validation/macos-python314/assembly/EXACT-ASSEMBLY.json create mode 100644 research/static44-selective-validation/macos-python314/bit-global/INVOICE.json create mode 100644 research/static44-selective-validation/macos-python314/bit-global/RESOURCE-RESULT.json create mode 100644 research/static44-selective-validation/macos-python314/bit-native/NATIVE-REVIEW.json create mode 100644 research/static44-selective-validation/macos-python314/bit-word/BUILD.json create mode 100644 research/static44-selective-validation/macos-python314/complex-audit/ASYNC-AUDIT.json create mode 100644 research/static44-selective-validation/macos-python314/complex-audit/OWNERS-AND-PROFILE.json create mode 100644 research/static44-selective-validation/macos-python314/complex-audit/PREFIX-AND-INVOICE.json create mode 100644 research/static44-selective-validation/macos-python314/complex-local/CLIFFORD-REVIEW.json create mode 100644 research/static44-selective-validation/macos-python314/complex-local/INDEPENDENT-LOCAL-REPLAY.json create mode 100644 research/static44-selective-validation/macos-python314/complex-local/LEMMA-A.json create mode 100644 research/static44-selective-validation/macos-python314/static44/SCALAR-AUDIT.json create mode 100644 research/static44-selective/EXPECTED.json create mode 100644 research/static44-selective/LICENSE create mode 100644 research/static44-selective/MANIFEST.json create mode 100644 research/static44-selective/NOTICE.md create mode 100644 research/static44-selective/README.md create mode 100644 research/static44-selective/SOURCES.json create mode 100644 research/static44-selective/code/assemble.py create mode 100644 research/static44-selective/code/build_bit.py create mode 100644 research/static44-selective/code/build_preload60.py create mode 100644 research/static44-selective/code/phases_full.py create mode 100644 research/static44-selective/code/run.py create mode 100644 research/static44-selective/code/run_global.py create mode 100644 research/static44-selective/code/run_native.py create mode 100644 research/static44-selective/data/FRAME-RECIPE.json create mode 100644 research/static44-selective/data/NINE-GEOMETRY.json.gz create mode 100644 research/static44-selective/data/OWNERS.json.gz create mode 100644 research/static44-selective/data/PLAN.json create mode 100644 research/static44-selective/data/SLICE-RECIPE.json create mode 100644 research/static44-selective/proof/CONSTRUCTION.md create mode 100644 research/static44-selective/proof/PR510-MUTABLE-SOURCE-CARRYOVER.md create mode 100644 research/static44-selective/vendor/e8-bit-carrier-skeleton/EXPECTED.json create mode 100644 research/static44-selective/vendor/e8-bit-carrier-skeleton/LICENSE create mode 100644 research/static44-selective/vendor/e8-bit-carrier-skeleton/MANIFEST.sha256 create mode 100644 research/static44-selective/vendor/e8-bit-carrier-skeleton/NOTICE.md create mode 100644 research/static44-selective/vendor/e8-bit-carrier-skeleton/README.md create mode 100644 research/static44-selective/vendor/e8-bit-carrier-skeleton/SOURCE-pr370.json create mode 100644 research/static44-selective/vendor/e8-bit-carrier-skeleton/SOURCE-pr381.json create mode 100644 research/static44-selective/vendor/e8-bit-carrier-skeleton/SOURCE-pr386.json create mode 100644 research/static44-selective/vendor/e8-bit-carrier-skeleton/SOURCE-pr436.json create mode 100644 research/static44-selective/vendor/e8-bit-carrier-skeleton/SOURCE-pr445.json create mode 100644 research/static44-selective/vendor/e8-bit-carrier-skeleton/SOURCE-pr448.json create mode 100644 research/static44-selective/vendor/e8-bit-carrier-skeleton/SOURCE-pr451.json create mode 100644 research/static44-selective/vendor/e8-bit-carrier-skeleton/SOURCE-pr458.json create mode 100644 research/static44-selective/vendor/e8-bit-carrier-skeleton/SOURCE-pr471.json create mode 100644 research/static44-selective/vendor/e8-bit-carrier-skeleton/SOURCE-pr472.json create mode 100644 research/static44-selective/vendor/e8-bit-carrier-skeleton/SOURCE-pr473.json create mode 100644 research/static44-selective/vendor/e8-bit-carrier-skeleton/SOURCE-pr478.json create mode 100644 research/static44-selective/vendor/e8-bit-carrier-skeleton/SOURCE-pr483.json create mode 100644 research/static44-selective/vendor/e8-bit-carrier-skeleton/SOURCE-pr484.json create mode 100644 research/static44-selective/vendor/e8-bit-carrier-skeleton/code/bit/checkers/columns_h.cpp create mode 100644 research/static44-selective/vendor/e8-bit-carrier-skeleton/code/bit/checkers/columns_k.cpp create mode 100644 research/static44-selective/vendor/e8-bit-carrier-skeleton/code/bit/checkers/gram_frames.py create mode 100644 research/static44-selective/vendor/e8-bit-carrier-skeleton/code/bit/checkers/json.hpp create mode 100644 research/static44-selective/vendor/e8-bit-carrier-skeleton/code/bit/checkers/legality_h.cpp create mode 100644 research/static44-selective/vendor/e8-bit-carrier-skeleton/code/bit/export_records.py create mode 100644 research/static44-selective/vendor/e8-bit-carrier-skeleton/code/bit/independent/checkword.py create mode 100644 research/static44-selective/vendor/e8-bit-carrier-skeleton/code/bit/independent/interface.py create mode 100644 research/static44-selective/vendor/e8-bit-carrier-skeleton/code/bit/independent/mutate.py create mode 100644 research/static44-selective/vendor/e8-bit-carrier-skeleton/code/bit/independent/mutate_mut.py create mode 100644 research/static44-selective/vendor/e8-bit-carrier-skeleton/code/bit/independent/relax.py create mode 100644 research/static44-selective/vendor/e8-bit-carrier-skeleton/code/bit/mutate_records.py create mode 100644 research/static44-selective/vendor/e8-bit-carrier-skeleton/code/bit/mutate_records_mut.py create mode 100644 research/static44-selective/vendor/e8-bit-carrier-skeleton/code/bit/regression/stage_cohort.py create mode 100644 research/static44-selective/vendor/e8-bit-carrier-skeleton/code/cited.py create mode 100644 research/static44-selective/vendor/e8-bit-carrier-skeleton/code/eleven/adapt.py create mode 100644 research/static44-selective/vendor/e8-bit-carrier-skeleton/code/eleven/assemble.py create mode 100644 research/static44-selective/vendor/e8-bit-carrier-skeleton/code/eleven/audit.py create mode 100644 research/static44-selective/vendor/e8-bit-carrier-skeleton/code/eleven/emit.py create mode 100644 research/static44-selective/vendor/e8-bit-carrier-skeleton/code/eleven/local_audit.py create mode 100644 research/static44-selective/vendor/e8-bit-carrier-skeleton/code/hub/e8-r715-whole-hosted/code/assemble.py create mode 100644 research/static44-selective/vendor/e8-bit-carrier-skeleton/code/hub/e8-r715-whole-hosted/code/audit.py create mode 100644 research/static44-selective/vendor/e8-bit-carrier-skeleton/code/hub/e8-r715-whole-hosted/code/emit.py create mode 100644 research/static44-selective/vendor/e8-bit-carrier-skeleton/code/hub/e8-r715-whole-hosted/code/local_audit.py create mode 100644 research/static44-selective/vendor/e8-bit-carrier-skeleton/code/hub/e8-r715-whole-hosted/data/hosting.json create mode 100644 research/static44-selective/vendor/e8-bit-carrier-skeleton/code/hub/e8-r715-whole-hosted/data/residual-isometries.json create mode 100644 research/static44-selective/vendor/e8-bit-carrier-skeleton/code/hub/e8-r715-whole-hosted/data/word.json.gz create mode 100644 research/static44-selective/vendor/e8-bit-carrier-skeleton/code/hub/e8-r740-replica32/code/bank_routes.py create mode 100644 research/static44-selective/vendor/e8-bit-carrier-skeleton/code/hub/e8-r740-replica32/code/e8core.py create mode 100644 research/static44-selective/vendor/e8-bit-carrier-skeleton/code/hub/e8-r740-replica32/code/engines/base_two_moment.py create mode 100644 research/static44-selective/vendor/e8-bit-carrier-skeleton/code/hub/e8-r740-replica32/code/engines/moment.py create mode 100644 research/static44-selective/vendor/e8-bit-carrier-skeleton/code/hub/e8-r740-replica32/code/engines/outer.py create mode 100644 research/static44-selective/vendor/e8-bit-carrier-skeleton/code/hub/e8-r740-replica32/code/tile_m.py create mode 100644 research/static44-selective/vendor/e8-bit-carrier-skeleton/code/hub/e8-r740-replica32/data/residual-isometries.json create mode 100644 research/static44-selective/vendor/e8-bit-carrier-skeleton/code/hub/e8-r740-replica32/data/word.json.gz create mode 100644 research/static44-selective/vendor/e8-bit-carrier-skeleton/code/hub/idle-axis-hosting/hosting_core.py create mode 100644 research/static44-selective/vendor/e8-bit-carrier-skeleton/code/hub/r740-hosted-eleven/code/emit.py create mode 100644 research/static44-selective/vendor/e8-bit-carrier-skeleton/code/hub/r740-hosted-eleven/code/geometry.py create mode 100644 research/static44-selective/vendor/e8-bit-carrier-skeleton/code/hub/r740-hosted-eleven/code/row_bound.py create mode 100644 research/static44-selective/vendor/e8-bit-carrier-skeleton/code/hub/r740-hosted-eleven/data/selection.json create mode 100644 research/static44-selective/vendor/e8-bit-carrier-skeleton/code/hub/r740-hosted-rank149/code/emit.py create mode 100644 research/static44-selective/vendor/e8-bit-carrier-skeleton/code/hub/r740-hosted-rank149/data/residual-isometries.json create mode 100644 research/static44-selective/vendor/e8-bit-carrier-skeleton/code/hub/r740-hosted-rank149/data/selection.json create mode 100644 research/static44-selective/vendor/e8-bit-carrier-skeleton/code/hub/r740-hosted-rank149/data/word.json.gz create mode 100644 research/static44-selective/vendor/e8-bit-carrier-skeleton/code/nine/geometry.py create mode 100644 research/static44-selective/vendor/e8-bit-carrier-skeleton/code/pricing/base_two_moment.py create mode 100644 research/static44-selective/vendor/e8-bit-carrier-skeleton/code/pricing/moment.py create mode 100644 research/static44-selective/vendor/e8-bit-carrier-skeleton/code/pricing/outer.py create mode 100644 research/static44-selective/vendor/e8-bit-carrier-skeleton/code/pricing/prime_witnesses.py create mode 100644 research/static44-selective/vendor/e8-bit-carrier-skeleton/code/provenance.py create mode 100644 research/static44-selective/vendor/e8-bit-carrier-skeleton/code/skeleton/e8.py create mode 100644 research/static44-selective/vendor/e8-bit-carrier-skeleton/code/skeleton/gen.py create mode 100644 research/static44-selective/vendor/e8-bit-carrier-skeleton/code/skeleton/geom.py create mode 100644 research/static44-selective/vendor/e8-bit-carrier-skeleton/code/skeleton/wordkit.py create mode 100644 research/static44-selective/vendor/e8-bit-carrier-skeleton/data/bit/bitE8-r865.json.gz create mode 100644 research/static44-selective/vendor/e8-bit-carrier-skeleton/data/bit/bitE8mut-r489.json.gz create mode 100644 research/static44-selective/vendor/e8-bit-carrier-skeleton/data/complex-b.json create mode 100644 research/static44-selective/vendor/e8-bit-carrier-skeleton/data/complex/pr448/EXPECTED.json create mode 100644 research/static44-selective/vendor/e8-bit-carrier-skeleton/data/complex/pr458/EXPECTED.json create mode 100644 research/static44-selective/vendor/e8-bit-carrier-skeleton/data/complex/pr471/EXPECTED.json create mode 100644 research/static44-selective/vendor/e8-bit-carrier-skeleton/data/complex/pr473/EXPECTED.json create mode 100644 research/static44-selective/vendor/e8-bit-carrier-skeleton/data/complex/pr478/EXPECTED.json create mode 100644 research/static44-selective/vendor/e8-bit-carrier-skeleton/data/complex/pr483/EXPECTED.json create mode 100644 research/static44-selective/vendor/e8-bit-carrier-skeleton/data/complex/pr484/EXPECTED.json create mode 100644 research/static44-selective/vendor/e8-bit-carrier-skeleton/data/eleven/hosting.json create mode 100644 research/static44-selective/vendor/e8-bit-carrier-skeleton/data/eleven/residual-isometries.json create mode 100644 research/static44-selective/vendor/e8-bit-carrier-skeleton/data/skeleton/d4part-pairs.json create mode 100644 research/static44-selective/vendor/e8-bit-carrier-skeleton/data/skeleton/plan-skB.json create mode 100644 research/static44-selective/vendor/e8-bit-carrier-skeleton/discovery/README.md create mode 100644 research/static44-selective/vendor/e8-bit-carrier-skeleton/discovery/d4part.py create mode 100644 research/static44-selective/vendor/e8-bit-carrier-skeleton/discovery/host_select.py create mode 100644 research/static44-selective/vendor/e8-bit-carrier-skeleton/discovery/plan.py create mode 100644 research/static44-selective/vendor/e8-bit-carrier-skeleton/portable-include/bits/stdc++.h create mode 100644 research/static44-selective/vendor/e8-bit-carrier-skeleton/requirements.txt create mode 100644 research/static44-selective/vendor/e8-bit-carrier-skeleton/verify.sh create mode 100644 research/static44-selective/vendor/e8-r480-dead-totals/EXPECTED.json create mode 100644 research/static44-selective/vendor/e8-r480-dead-totals/LICENSE create mode 100644 research/static44-selective/vendor/e8-r480-dead-totals/MANIFEST.json create mode 100644 research/static44-selective/vendor/e8-r480-dead-totals/NOTICE.md create mode 100644 research/static44-selective/vendor/e8-r480-dead-totals/README.md create mode 100644 research/static44-selective/vendor/e8-r480-dead-totals/code/adapt.py create mode 100644 research/static44-selective/vendor/e8-r480-dead-totals/data/bitE8mut-r480.json.gz create mode 100644 research/static44-selective/vendor/e8-r480-dead-totals/data/hosting-r480.json create mode 100644 research/static44-selective/vendor/e8-r480-dead-totals/verify.py create mode 100644 research/static44-selective/vendor/e8-r480-nine-stage/EXPECTED.json create mode 100644 research/static44-selective/vendor/e8-r480-nine-stage/LICENSE create mode 100644 research/static44-selective/vendor/e8-r480-nine-stage/MANIFEST.json create mode 100644 research/static44-selective/vendor/e8-r480-nine-stage/NOTICE.md create mode 100644 research/static44-selective/vendor/e8-r480-nine-stage/README.md create mode 100644 research/static44-selective/vendor/e8-r480-nine-stage/SOURCE.json create mode 100644 research/static44-selective/vendor/e8-r480-nine-stage/code/adapt.py create mode 100644 research/static44-selective/vendor/e8-r480-nine-stage/code/assemble9.py create mode 100644 research/static44-selective/vendor/e8-r480-nine-stage/code/findings/flowlp2.py create mode 100644 research/static44-selective/vendor/e8-r480-nine-stage/code/findings/levels.py create mode 100644 research/static44-selective/vendor/e8-r480-nine-stage/code/findings/piv0.py create mode 100644 research/static44-selective/vendor/e8-r480-nine-stage/data/selection9-r480.json create mode 100644 research/static44-selective/vendor/e8-r480-nine-stage/vendor/e8-r715-eleven-stage-whole/code/audit_hosted_k.py create mode 100644 research/static44-selective/vendor/e8-r480-nine-stage/vendor/e8-r715-eleven-stage-whole/code/audit_parent_k.py create mode 100644 research/static44-selective/vendor/e8-r480-nine-stage/vendor/e8-r715-eleven-stage-whole/code/bank_routes_k.py create mode 100644 research/static44-selective/vendor/e8-r480-nine-stage/vendor/e8-r715-eleven-stage-whole/code/emit_k.py create mode 100644 research/static44-selective/vendor/e8-r480-nine-stage/vendor/e8-r715-eleven-stage-whole/code/global_k.py create mode 100644 research/static44-selective/vendor/e8-r480-nine-stage/vendor/e8-r715-eleven-stage-whole/code/hosting_k.py create mode 100644 research/static44-selective/vendor/e8-r480-nine-stage/vendor/e8-r740-replica32/code/bank_routes.py create mode 100644 research/static44-selective/vendor/e8-r480-nine-stage/vendor/e8-r740-replica32/code/config.py create mode 100644 research/static44-selective/vendor/e8-r480-nine-stage/vendor/e8-r740-replica32/code/e8core.py create mode 100644 research/static44-selective/vendor/e8-r480-nine-stage/vendor/e8-r740-replica32/code/engines/base_two_moment.py create mode 100644 research/static44-selective/vendor/e8-r480-nine-stage/vendor/e8-r740-replica32/code/engines/moment.py create mode 100644 research/static44-selective/vendor/e8-r480-nine-stage/vendor/e8-r740-replica32/code/engines/outer.py create mode 100644 research/static44-selective/vendor/e8-r480-nine-stage/vendor/e8-r740-replica32/code/tile_m.py create mode 100644 research/static44-selective/vendor/e8-r480-nine-stage/vendor/idle-axis-hosting/hosting_core.py create mode 100644 research/static44-selective/vendor/e8-r480-nine-stage/verify.py create mode 100644 research/static44-selective/vendor/pr531/EXPECTED.json create mode 100644 research/static44-selective/vendor/pr531/LICENSE create mode 100644 research/static44-selective/vendor/pr531/LOCAL-VALIDATION.json create mode 100644 research/static44-selective/vendor/pr531/MANIFEST.json create mode 100644 research/static44-selective/vendor/pr531/NOTICE.md create mode 100644 research/static44-selective/vendor/pr531/README.md create mode 100644 research/static44-selective/vendor/pr531/SOURCES.json create mode 100644 research/static44-selective/vendor/pr531/code/adapters_local.py create mode 100644 research/static44-selective/vendor/pr531/code/assemble.py create mode 100644 research/static44-selective/vendor/pr531/code/audit_and_transport.py create mode 100644 research/static44-selective/vendor/pr531/code/audit_local.py create mode 100644 research/static44-selective/vendor/pr531/code/audit_same_partition_frontier.py create mode 100644 research/static44-selective/vendor/pr531/code/audit_supplier_hosted.py create mode 100644 research/static44-selective/vendor/pr531/code/build_selected.py create mode 100644 research/static44-selective/vendor/pr531/code/coalesce_frames.py create mode 100644 research/static44-selective/vendor/pr531/code/construct_504.py create mode 100644 research/static44-selective/vendor/pr531/code/emit_local.py create mode 100644 research/static44-selective/vendor/pr531/code/emit_supplier_hosted.py create mode 100644 research/static44-selective/vendor/pr531/code/invoice_final.py create mode 100644 research/static44-selective/vendor/pr531/code/phases_delta.py create mode 100644 research/static44-selective/vendor/pr531/code/prepare_supplier_base.py create mode 100644 research/static44-selective/vendor/pr531/evidence/BEFORE-COALESCING.json.gz create mode 100644 research/static44-selective/vendor/pr531/evidence/COALESCING.json create mode 100644 research/static44-selective/vendor/pr531/evidence/DISCOVERY-MOMENT.json create mode 100644 research/static44-selective/vendor/pr531/evidence/ENTRANCE-SELECTION-SCREEN.json create mode 100644 research/static44-selective/vendor/pr531/evidence/FAST-REPLAY.json create mode 100644 research/static44-selective/vendor/pr531/evidence/LINE-GAUGE-SELECTION.json create mode 100644 research/static44-selective/vendor/pr531/evidence/PR523-FIXED-WORD-CEILING.json create mode 100644 research/static44-selective/vendor/pr531/evidence/PUBLIC-SNAPSHOT.json create mode 100644 research/static44-selective/vendor/pr531/evidence/SAME-PARTITION-FRONTIER.json create mode 100644 research/static44-selective/vendor/pr531/evidence/VERIFICATION-SCOPE.json create mode 100644 research/static44-selective/vendor/pr531/evidence/audit/ASYNC-AUDIT.json create mode 100644 research/static44-selective/vendor/pr531/evidence/audit/EXACT-ASSEMBLY.json create mode 100644 research/static44-selective/vendor/pr531/evidence/audit/GLOBAL-PREFIX.json create mode 100644 research/static44-selective/vendor/pr531/evidence/audit/IDLE-REMAINDER-FRAMES.json create mode 100644 research/static44-selective/vendor/pr531/evidence/audit/OWNERS-AND-PROFILE.json create mode 100644 research/static44-selective/vendor/pr531/evidence/audit/PREFIX-AND-INVOICE.json create mode 100644 research/static44-selective/vendor/pr531/evidence/hosted/ACTUAL-SIGMAS.json.gz create mode 100644 research/static44-selective/vendor/pr531/evidence/hosted/GLOBAL-TEMPLATE.json.gz create mode 100644 research/static44-selective/vendor/pr531/evidence/hosted/HOSTED.json create mode 100644 research/static44-selective/vendor/pr531/evidence/hosted/IDLE-REMAINDER-FRAMES.json.gz create mode 100644 research/static44-selective/vendor/pr531/evidence/local/CANONICAL-WORD.json.gz create mode 100644 research/static44-selective/vendor/pr531/evidence/local/CLIFFORD-RECIPES.json create mode 100644 research/static44-selective/vendor/pr531/evidence/local/CLIFFORD-REVIEW.json create mode 100644 research/static44-selective/vendor/pr531/evidence/local/FULL-WORD.json.gz create mode 100644 research/static44-selective/vendor/pr531/evidence/local/INDEPENDENT-LOCAL-REPLAY.json create mode 100644 research/static44-selective/vendor/pr531/evidence/local/LEMMA-A.json create mode 100644 research/static44-selective/vendor/pr531/evidence/local/LOCAL-CHECKS.json create mode 100644 research/static44-selective/vendor/pr531/evidence/local/LOCAL-PROGRAMS.json.gz create mode 100644 research/static44-selective/vendor/pr531/evidence/local/RESIDUAL-ADAPTERS.json create mode 100644 research/static44-selective/vendor/pr531/evidence/local/SCALAR-FRAME-AUDIT.json create mode 100644 research/static44-selective/vendor/pr531/inputs/ASYNC-6.json create mode 100644 research/static44-selective/vendor/pr531/inputs/OWNER-PLAN.json create mode 100644 research/static44-selective/vendor/pr531/inputs/OWNERS.json.gz create mode 100644 research/static44-selective/vendor/pr531/inputs/PR493-EXPECTED.json create mode 100644 research/static44-selective/vendor/pr531/inputs/PR523-ANCESTRY.json create mode 100644 research/static44-selective/vendor/pr531/inputs/PR523-EXACT-ASSEMBLY.json create mode 100644 research/static44-selective/vendor/pr531/inputs/PR523-PREFIX-AND-INVOICE.json create mode 100644 research/static44-selective/vendor/pr531/inputs/SELECTION.json create mode 100644 research/static44-selective/vendor/pr531/inputs/data-base/split-centres/CANONICAL-WORD.json.gz create mode 100644 research/static44-selective/vendor/pr531/inputs/data-base/split-centres/GLOBAL-TEMPLATE.json.gz create mode 100644 research/static44-selective/vendor/pr531/inputs/data-base/work/complex-nine-native/DATA-PHASES.json create mode 100644 research/static44-selective/vendor/pr531/inputs/data-base/work/pr361/code/engines/base_two_moment.py create mode 100644 research/static44-selective/vendor/pr531/inputs/data-base/work/pr361/code/engines/moment.py create mode 100644 research/static44-selective/vendor/pr531/inputs/data-base/work/pr361/code/engines/outer.py create mode 100644 research/static44-selective/vendor/pr531/inputs/hamming/PACKET-PROGRAMS.json.gz create mode 100644 research/static44-selective/vendor/pr531/inputs/hamming/PROTOTYPE.json create mode 100644 research/static44-selective/vendor/pr531/inputs/phase-baseline/CANONICAL-WORD.json.gz create mode 100644 research/static44-selective/vendor/pr531/inputs/phase-baseline/CLIFFORD-RECIPES.json create mode 100644 research/static44-selective/vendor/pr531/inputs/phase-baseline/CLIFFORD-REVIEW.json create mode 100644 research/static44-selective/vendor/pr531/inputs/phase-baseline/LOCAL-CHECKS.json create mode 100644 research/static44-selective/vendor/pr531/proof/DELIVERY-AND-COALESCING.md create mode 100644 research/static44-selective/vendor/pr531/proof/GLOBAL-HOSTING.md create mode 100644 research/static44-selective/vendor/pr531/proof/LOCAL-CONSTRUCTION.md create mode 100644 research/static44-selective/vendor/pr531/vendor/clifford/clifford_exact.py create mode 100644 research/static44-selective/vendor/pr531/vendor/gk/gk_common.py create mode 100644 research/static44-selective/vendor/pr531/vendor/gk/gk_word.py create mode 100644 research/static44-selective/vendor/pr531/verify_fast.py create mode 100644 research/static44-selective/vendor/static44/LICENSE create mode 100644 research/static44-selective/vendor/static44/META-SOURCES.json create mode 100644 research/static44-selective/vendor/static44/NOTICE-upstream.md create mode 100644 research/static44-selective/vendor/static44/PROOF.md create mode 100644 research/static44-selective/vendor/static44/README.md create mode 100644 research/static44-selective/vendor/static44/RECIPE.json create mode 100644 research/static44-selective/vendor/static44/SOURCE-MANIFEST.json create mode 100644 research/static44-selective/vendor/static44/audit_scalar.py create mode 100644 research/static44-selective/vendor/static44/build.py create mode 100644 research/static44-selective/vendor/static44/gk/gk_common.py create mode 100644 research/static44-selective/vendor/static44/gk/gk_word.py create mode 100644 research/static44-selective/vendor/static44/inputs/BASE535.json.gz create mode 100644 research/static44-selective/vendor/static44/inputs/OLD-RECIPE.json create mode 100644 research/static44-selective/vendor/static44/inputs/RAW504.json.gz create mode 100644 research/static44-selective/vendor/static44/replay.py create mode 100644 research/static44-selective/verify.py diff --git a/.gitattributes b/.gitattributes index 314f2a9c94..5cf0fe9716 100644 --- a/.gitattributes +++ b/.gitattributes @@ -43,3 +43,7 @@ research/e8-complex-gauge-kernel/** -text -whitespace research/e8-lemma-a-lean/** -text -whitespace research/e8-lemma-g-lean/** -text -whitespace research/community-formal-20261012-audit/** -text -whitespace + +# Preserve the exact source-bound dual-supplier proof package and receipts. +research/static44-selective/** -text -whitespace +research/static44-selective-validation/** -text -whitespace diff --git a/.github/workflows/static44-selective.yml b/.github/workflows/static44-selective.yml new file mode 100644 index 0000000000..2f6a042bea --- /dev/null +++ b/.github/workflows/static44-selective.yml @@ -0,0 +1,37 @@ +name: Static44 selective both suppliers +on: + push: + paths: + - 'research/static44-selective/**' + - '.github/workflows/static44-selective.yml' + pull_request: + paths: + - 'research/static44-selective/**' + - '.github/workflows/static44-selective.yml' + workflow_dispatch: +permissions: + contents: read +jobs: + verify: + runs-on: ubuntu-24.04 + timeout-minutes: 15 + strategy: + fail-fast: false + matrix: + python-version: ['3.11', '3.14'] + steps: + - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 + with: + persist-credentials: false + - uses: actions/setup-python@5fda3b95a4ea91299a34e894583c3862153e4b97 + with: + python-version: ${{ matrix.python-version }} + - name: Install native and Python prerequisites + run: | + sudo apt-get update + sudo apt-get install -y g++ libboost-dev + python -m pip install numpy sympy + - name: Rebuild both suppliers, phases, owners and exact assembly + run: python -B research/static44-selective/verify.py --work "$RUNNER_TEMP/static44-selective" --boost-include /usr/include + - name: Require unchanged tracked sources + run: git diff --exit-code diff --git a/research/static44-selective-validation/CROSS-PLATFORM.json b/research/static44-selective-validation/CROSS-PLATFORM.json new file mode 100644 index 0000000000..b04cd8db14 --- /dev/null +++ b/research/static44-selective-validation/CROSS-PLATFORM.json @@ -0,0 +1,41 @@ +{ + "status": "PASS_BOTH_PLATFORMS_ALL_DETERMINISTIC_RESULT_FIELDS_IDENTICAL", + "fields": [ + "binding_component", + "bit_charged_prefix_bits", + "bit_charged_two_level_bits", + "bit_global_profile", + "bit_local_profile", + "bit_lower", + "bit_payload_prefix_bits", + "bit_prefix_bits", + "bit_program_sha256", + "bit_template_sha256", + "bit_two_level_bits", + "bit_word_sha256", + "complex_charged_prefix_bits", + "complex_deficit", + "complex_global_profile", + "complex_helper_roles", + "complex_live", + "complex_local_profile", + "complex_lower", + "complex_phase_sha256", + "complex_physical", + "complex_prefix_bits", + "complex_program_sha256", + "complex_template_sha256", + "complex_word_sha256", + "endpoint_adapters", + "kappa", + "kappa_decimal", + "manifest_sha256", + "phase_edges", + "scope", + "status" + ], + "macos_seconds": 161.61358100001235, + "linux_seconds": 205.89637290197425, + "manifest_sha256": "9cbdd9329a903b9b0f2b967ec7df5d7cac17f0288b480bfb81448f764b14a7e1", + "kappa_decimal": "0.001588602246663212" +} diff --git a/research/static44-selective-validation/PR531-DEPENDENCY-COPY.json b/research/static44-selective-validation/PR531-DEPENDENCY-COPY.json new file mode 100644 index 0000000000..2db1d44e0b --- /dev/null +++ b/research/static44-selective-validation/PR531-DEPENDENCY-COPY.json @@ -0,0 +1,86 @@ +{ + "status": "PASS_EXACT_PREVIOUSLY_SOURCE_AUDITED_DEPENDENCY", + "source_pr": 538, + "source_head": "a1460516226555dd375d9adb82a8e1dcbfe1ca79", + "path": "research/direct504-kernel92-lifts/vendor/pr531", + "files": { + "SOURCES.json": "9e8182e6e659f4671fe0873e324b622cc871df7344157093df40476c8687be5f", + "EXPECTED.json": "0c4c7df98633ace6dd3f1604462dd509945f6b2d463a0b045442b785906101f1", + "LICENSE": "c71d239df91726fc519c6eb72d318ec65820627232b2f796219e87dcf35d0ab4", + "README.md": "305497b4bf15e691bf0ea504f628a397ea40b814053948ca32c84ce5c16e6f5b", + "verify_fast.py": "ea4e33a17419009f0872fac42f7ae5a2f2090c4487cc9815721d907d1e9b1cae", + "LOCAL-VALIDATION.json": "e7dcbbe16d3a51288dddcc9022ba852ea6c9d428f8391c72d9b61429168a5561", + "MANIFEST.json": "c1997405c5c0ccd9bdb0a30b0eb9a5a2dc7dc7ce7b59c6a83a2152b80f6410d1", + "NOTICE.md": "a92f49c5ced455160fbedcc8954e3c9255e3605e88ad12ae5a84f1c4302986f1", + "proof/DELIVERY-AND-COALESCING.md": "7e719f01416cf312272dfabca8b355d327128859c01d686056e0833e83870bc7", + "proof/LOCAL-CONSTRUCTION.md": "3b1fc44f6f8290361cb24526cf91c3174c734f5da3cc9fb94559a96168d39e70", + "proof/GLOBAL-HOSTING.md": "c47b61bf2e998583e4626eec068439600f3464aab2ddbdb0ac044b0136d7b502", + "evidence/LINE-GAUGE-SELECTION.json": "1ecec9dd594653d54448ba9e2fd7b7b830e26bfd159d3b268672f80d8cb06250", + "evidence/FAST-REPLAY.json": "b95028b7cd5a830bd5d702d5193f0bc93d981426ca6f8916eea7a2bf9dcc53a7", + "evidence/COALESCING.json": "f9175c204c084e083ba2f8f4bc66dc71feb75d90b1b57b36dfacbffe89568ae0", + "evidence/PR523-FIXED-WORD-CEILING.json": "e971df6465b6a37d2042bd7e2169419578d68d7177c060599b16b3f67292935f", + "evidence/PUBLIC-SNAPSHOT.json": "d859621516bb33d1c77ea9413b53930fab42447360b7e6246ba839b95a834abb", + "evidence/SAME-PARTITION-FRONTIER.json": "3a02123a292730c1dfea8d6c1c8238115b4b07d19c8b8f119b54c345cd1f46af", + "evidence/DISCOVERY-MOMENT.json": "d964db94f4a11840bbea57a47c203a2fe6b51a381072d403d1c1504ac2ba0c7b", + "evidence/VERIFICATION-SCOPE.json": "424ea699b0849c3e8dd41d585b271906cbbbbddb4c3464fd20dde30133bae367", + "evidence/ENTRANCE-SELECTION-SCREEN.json": "2d5c7db49077ea50f0877f1bd3a5839e5c49a7c75519ebaf549bce0e828b7b99", + "evidence/BEFORE-COALESCING.json.gz": "5381265008ec84dc0b3eb2870040215b8470620d234573c15e836dba928d910e", + "code/emit_supplier_hosted.py": "53c0b653b3a5100756d6a9473c90101b8c3ab72723d7047983906ab997bdf920", + "code/audit_same_partition_frontier.py": "3a2a072304c0c112b4938070515035b49595c86565b454806fdcbbfacf0e1bd2", + "code/audit_and_transport.py": "a4fc272266785e1fffd44775c6fa6df783c4352de4c3f1d925cf953a23b84e7f", + "code/invoice_final.py": "96b6bed96ca8b60dfc064cd1c7962c45a5cb53c4e52cd90aaea6ccf8d109db97", + "code/construct_504.py": "a0d96ede40b957c38dcb64296d5f4a76c23dfb8c8875e01a80b5f1bdf6e8360e", + "code/assemble.py": "71b4cbbbc5acdfe06ac67879cf54ea761e29e52143af1cd8410ad672a5cc190b", + "code/emit_local.py": "eefc76e0bee003015fe21ac685c2cce658033d5444add404d2d509c7d6f39bac", + "code/audit_supplier_hosted.py": "301e9b5c593b6d583065337eb7b3ef207cf039e265f099f89080a4bf25856b43", + "code/audit_local.py": "69b12c45d0a961175a824c1967353c7f3b94818a7dd6ac7bbcf56a6d1a5ed8e8", + "code/adapters_local.py": "4e89a5c517cd87ff6a5aa9b7334c0d74821179ae5777d31284da25b9d8abf113", + "code/prepare_supplier_base.py": "f5eae94aca965d0008bc07cff8245ccb7509042ccad457d3bcb7d51c1e9409f0", + "code/build_selected.py": "7fa8f981cbf3b01ac960226e6afc6be7bd76d94d9c01796941979deb77bd8875", + "code/phases_delta.py": "15723107eff03013b2e797fd9fa3635b1b46c5d1c8112d19fada98c178d4acb6", + "code/coalesce_frames.py": "b3e53a17f2519e1afc5bee9b6518252eeb0cb7c56b6e0a1554fdfb54f2908915", + "inputs/OWNERS.json.gz": "5e27eaf098214e3ab8159e322241aa90a1ae77b0bff78b426512b87f9f60c91f", + "inputs/OWNER-PLAN.json": "13d5284e3d95fd4718b538f7d0d1e6f8db3236d4608a755dce6deade440f4185", + "inputs/PR523-ANCESTRY.json": "0bfce40d86c849f18e8872ee9e8462b0a69a34ed04e01e942a6614645f686f4b", + "inputs/PR523-PREFIX-AND-INVOICE.json": "bb43ef04791037a37d2596c395e81191991fde6581326118995cf4318ee472a3", + "inputs/PR493-EXPECTED.json": "3494ba83280cc86548fe0cc6695c50d23e6b6ffca85aeb1a33337c1196e280cb", + "inputs/SELECTION.json": "46cfad0c5a4b8dacc18ed02b5e259f2168e6a93a8dff6ffb447fb0f20917a9bd", + "inputs/PR523-EXACT-ASSEMBLY.json": "39900354203609a142d159096ccc221ddb21c1f714b2b74b9b1b325beaf15259", + "inputs/ASYNC-6.json": "8a128d7c435f01d9f920c1353711eb0721ce3cbdd0b8799bf69b2d676266dbd3", + "inputs/phase-baseline/CANONICAL-WORD.json.gz": "addf598581d2a20e13d0c18110607515ad90b06125616a2349e53a47bb5b6c80", + "inputs/phase-baseline/LOCAL-CHECKS.json": "ead7163869ecb9fc276f477c0ec0ed85dc74d7901ce04f91213bcf7ee1f20382", + "inputs/phase-baseline/CLIFFORD-REVIEW.json": "468a5df1937e82a0b8e8c1c2540e18480f354154325353c5596c68e7435c89c2", + "inputs/phase-baseline/CLIFFORD-RECIPES.json": "1f37afd5a9e14b113ba56e0ac8a5200a6b41c695d2cd308dc0fd6ec46a4c73d2", + "inputs/hamming/PACKET-PROGRAMS.json.gz": "d833ae0390d165d7da0c639a3c7aeb77156c2ddb52447087cb49b9d03b19e9b9", + "inputs/hamming/PROTOTYPE.json": "327d2a868043e846381aa58a33053c24425e8cad522ff401b10ec8af1d649a3f", + "inputs/data-base/split-centres/CANONICAL-WORD.json.gz": "addf598581d2a20e13d0c18110607515ad90b06125616a2349e53a47bb5b6c80", + "inputs/data-base/split-centres/GLOBAL-TEMPLATE.json.gz": "5b913207775fcd87090cfa8776e8bd2bb872426923345fe1a1a4e1ea84bfae2c", + "inputs/data-base/work/complex-nine-native/DATA-PHASES.json": "c5916ff312678f12aba403847643fbbc29f643acec60bdf836fa56cd3e8251fa", + "inputs/data-base/work/pr361/code/engines/base_two_moment.py": "aee70c242a2f1d225528fabe2002e1564d1dc884797c07d28a831c7878ee9098", + "inputs/data-base/work/pr361/code/engines/moment.py": "81cbc864e106418fc7854322746f72180cb8110ff39f74450a3b8d55a82c1482", + "inputs/data-base/work/pr361/code/engines/outer.py": "c1ebb52163a7219504c728a5c2b098bf1e50bf20148a2879c5a74c3cadc7c03c", + "vendor/clifford/clifford_exact.py": "2982ead07721e83358dc67c6f49c2b4c16a236a6bebdfd72f58221be1f5d0962", + "vendor/gk/gk_word.py": "f027a9273bcf4e0971258c160b7d3b3c196366b32a529cff6e6a0e666b03826b", + "vendor/gk/gk_common.py": "e68d190fd436b2f3955decb590adb53344d5d4ea0a19d62d86df1e4b55ecd198", + "evidence/hosted/HOSTED.json": "a0b29d73f2beb821a59f356150a7a9475394643bf9fd8eb5a67a6fc4d46ad2f5", + "evidence/hosted/ACTUAL-SIGMAS.json.gz": "dbced27348bd0ae2fb937a9c1fd03e2181d7268ccdea5d80ebbe6ec3fed314d9", + "evidence/hosted/IDLE-REMAINDER-FRAMES.json.gz": "a21fb2c7395b7193d46752f7bd9cc670fbfffc7287f8370bd9f6df0aed6b21eb", + "evidence/hosted/GLOBAL-TEMPLATE.json.gz": "0c5ea47883fafc2aa0b2b9711e7c52a3fc8fdf96c84eb3043834e34ced550473", + "evidence/local/CANONICAL-WORD.json.gz": "de2be0f4b6d24ace368fd5b834b7a00f9625d0a1824c4ff969f2db5f115db667", + "evidence/local/RESIDUAL-ADAPTERS.json": "83a91fb9cbbe600328cd399f67fdb6ffb698ed3b20d050916d21f3af48b0db20", + "evidence/local/LOCAL-PROGRAMS.json.gz": "755a5c4ebe958fd9f7b5d4a6e7a506d2c802e31c4d9da46b63db1994c4d8ffa6", + "evidence/local/LOCAL-CHECKS.json": "c6807681d40cb46c21a50edc1058044ddc758f2dd3e6b0bab16d7cb28d41732f", + "evidence/local/CLIFFORD-REVIEW.json": "a917bb1abdc864b404dc4a869af3e29aaab2270d392b662cb60b70ebbe5d1975", + "evidence/local/LEMMA-A.json": "f789357f75d562ec9c6f2ef75ced6f4286df2840b493600147b34a36ad0fa460", + "evidence/local/INDEPENDENT-LOCAL-REPLAY.json": "4149f3d2ec3041965c5d72869748090d9aeed422f36d753550c543bb7808b30b", + "evidence/local/CLIFFORD-RECIPES.json": "1ac0a7d07a487bf58e59e82a8a656a3a3edca5731af9029ad7874b535407ceb9", + "evidence/local/FULL-WORD.json.gz": "bd6b004c4948d5ce80d4f81477338fe30434c2a94586463fdcc531df0dbc9509", + "evidence/local/SCALAR-FRAME-AUDIT.json": "5bf884b9c5c9e65658974a8f5548f93a583fb48461e8125fa68893aa2b403718", + "evidence/audit/OWNERS-AND-PROFILE.json": "e5f11e7b920f9985f085546c641dbac5b8d98231d562e1e030ab2566ccea4bd6", + "evidence/audit/PREFIX-AND-INVOICE.json": "ce1bfa49be88ae67a404f606a11db2232b7e1f2610d4418058e39749d86d8478", + "evidence/audit/GLOBAL-PREFIX.json": "378275e21f7ff147cd7cb0b33c972e75139d949195ddf13dd71b55a77a0f7cfb", + "evidence/audit/ASYNC-AUDIT.json": "01ea0015d4e08170ac65f1cdd051be64e07f622eba62eadbf39524317388cba7", + "evidence/audit/IDLE-REMAINDER-FRAMES.json": "7923ed6a528f006c353fe7e0639fd230ad140ca835b8e64ceadc7aefb0300ea8", + "evidence/audit/EXACT-ASSEMBLY.json": "550c6703e73b2dcfaae986706ceb1ac67ecd93dec8b591954abe51c7fa3b7a03" + } +} diff --git a/research/static44-selective-validation/README.md b/research/static44-selective-validation/README.md new file mode 100644 index 0000000000..82f2e9e357 --- /dev/null +++ b/research/static44-selective-validation/README.md @@ -0,0 +1,20 @@ +# Cold verification receipts + +The complete immutable package passed on macOS arm64/Python 3.14.8 in +161.61 seconds and Linux aarch64/Python 3.12.3 in 205.90 seconds. Both runs +compiled the original native C++ bit checkers with genuine Boost headers. +`CROSS-PLATFORM.json` compares every deterministic top-level result field, +including all recorded word, program, template, phase and package hashes. + +Each platform directory contains the full stage list and hash-bound receipt, +result, exact bit reconstruction, native and global bit admission, complex +scalar/phase/wrapper/owner admission, finite invoices and final exact assembly. +The complete logs and bulky reconstructed artifacts can be regenerated using +the package's single offline command. Stage timings and Python versions differ; +the mathematical results and recorded content hashes agree. + +`SOURCE-BLOB-AUDIT.json` checks 146 inherited bit/static44 files against their +original source commits. `PR531-DEPENDENCY-COPY.json` checks all 78 files of +the previously source-audited complex dependency against our pinned PR538 copy. +The frozen package is `../static44-selective/`; receipts are separate so their +creation does not alter the validated package manifest. CI is a separate check. diff --git a/research/static44-selective-validation/SOURCE-BLOB-AUDIT.json b/research/static44-selective-validation/SOURCE-BLOB-AUDIT.json new file mode 100644 index 0000000000..d6de04a739 --- /dev/null +++ b/research/static44-selective-validation/SOURCE-BLOB-AUDIT.json @@ -0,0 +1,881 @@ +{ + "status": "PASS_ORIGINAL_GIT_BLOBS", + "files": [ + { + "local": "vendor/e8-bit-carrier-skeleton/MANIFEST.sha256", + "commit": "64edee18af02aab0c1696b677a0287dd0146381b", + "path": "research/e8-bit-carrier-skeleton/MANIFEST.sha256", + "sha256": "7f25c41d0400ef5adf763eae6e166003a9b59e5a655b860c04b052f6731c7297" + }, + { + "local": "vendor/e8-bit-carrier-skeleton/SOURCE-pr436.json", + "commit": "64edee18af02aab0c1696b677a0287dd0146381b", + "path": "research/e8-bit-carrier-skeleton/SOURCE-pr436.json", + "sha256": "4a4f99f5bdb7530a0dcf9433f7f02afbf2abf908e718f7c63ffa5503d4f49693" + }, + { + "local": "vendor/e8-bit-carrier-skeleton/EXPECTED.json", + "commit": "64edee18af02aab0c1696b677a0287dd0146381b", + "path": "research/e8-bit-carrier-skeleton/EXPECTED.json", + "sha256": "3494ba83280cc86548fe0cc6695c50d23e6b6ffca85aeb1a33337c1196e280cb" + }, + { + "local": "vendor/e8-bit-carrier-skeleton/LICENSE", + "commit": "64edee18af02aab0c1696b677a0287dd0146381b", + "path": "research/e8-bit-carrier-skeleton/LICENSE", + "sha256": "c71d239df91726fc519c6eb72d318ec65820627232b2f796219e87dcf35d0ab4" + }, + { + "local": "vendor/e8-bit-carrier-skeleton/requirements.txt", + "commit": "64edee18af02aab0c1696b677a0287dd0146381b", + "path": "research/e8-bit-carrier-skeleton/requirements.txt", + "sha256": "6023d480f929cdfa4e2f35e361eea003451cd6695af806935a32038b0115abb5" + }, + { + "local": "vendor/e8-bit-carrier-skeleton/SOURCE-pr483.json", + "commit": "64edee18af02aab0c1696b677a0287dd0146381b", + "path": "research/e8-bit-carrier-skeleton/SOURCE-pr483.json", + "sha256": "24e3eab4a985e115adb7f8665a401423e9636e9f16cc4373ec68cc86950445a8" + }, + { + "local": "vendor/e8-bit-carrier-skeleton/SOURCE-pr381.json", + "commit": "64edee18af02aab0c1696b677a0287dd0146381b", + "path": "research/e8-bit-carrier-skeleton/SOURCE-pr381.json", + "sha256": "16b1977240ca9acb58fa64572fb4231a423bc10bbf3e7bb30f1c8201fe369ba5" + }, + { + "local": "vendor/e8-bit-carrier-skeleton/SOURCE-pr471.json", + "commit": "64edee18af02aab0c1696b677a0287dd0146381b", + "path": "research/e8-bit-carrier-skeleton/SOURCE-pr471.json", + "sha256": "499d861e090c9e646d978dd67890a8e58a9ff6bf08512684e66605179132076b" + }, + { + "local": "vendor/e8-bit-carrier-skeleton/SOURCE-pr386.json", + "commit": "64edee18af02aab0c1696b677a0287dd0146381b", + "path": "research/e8-bit-carrier-skeleton/SOURCE-pr386.json", + "sha256": "87c659ba932525631a40be14dca28a6a2efade8641f23bb08d6e1567fc991131" + }, + { + "local": "vendor/e8-bit-carrier-skeleton/SOURCE-pr451.json", + "commit": "64edee18af02aab0c1696b677a0287dd0146381b", + "path": "research/e8-bit-carrier-skeleton/SOURCE-pr451.json", + "sha256": "a639956eec858341987a815b7464ef472505300db754b5f9ac012dd01d18c8df" + }, + { + "local": "vendor/e8-bit-carrier-skeleton/verify.sh", + "commit": "64edee18af02aab0c1696b677a0287dd0146381b", + "path": "research/e8-bit-carrier-skeleton/verify.sh", + "sha256": "0f9248aa3611dfe2b5d59dbe992c6f7d21a0cc4f1de2b5ed05a6110191191224" + }, + { + "local": "vendor/e8-bit-carrier-skeleton/SOURCE-pr484.json", + "commit": "64edee18af02aab0c1696b677a0287dd0146381b", + "path": "research/e8-bit-carrier-skeleton/SOURCE-pr484.json", + "sha256": "b92f43fbcba3921a1aa37bcb9f05cf5fa612ff708785e05512438a6317bf0867" + }, + { + "local": "vendor/e8-bit-carrier-skeleton/README.md", + "commit": "64edee18af02aab0c1696b677a0287dd0146381b", + "path": "research/e8-bit-carrier-skeleton/README.md", + "sha256": "e5212e8058c92a2b02cc12b4e174a65ce1cef7b4d7977ae770e64f5ff91b7204" + }, + { + "local": "vendor/e8-bit-carrier-skeleton/SOURCE-pr473.json", + "commit": "64edee18af02aab0c1696b677a0287dd0146381b", + "path": "research/e8-bit-carrier-skeleton/SOURCE-pr473.json", + "sha256": "2515c4f23dfa22a21913d92597669770f7f44c2a5b3ef069ef68a0c89779a656" + }, + { + "local": "vendor/e8-bit-carrier-skeleton/SOURCE-pr445.json", + "commit": "64edee18af02aab0c1696b677a0287dd0146381b", + "path": "research/e8-bit-carrier-skeleton/SOURCE-pr445.json", + "sha256": "e6f4a272442bb71ef68aaa3545b271236f9c99297e444fa01c62b0b5fb6a170f" + }, + { + "local": "vendor/e8-bit-carrier-skeleton/SOURCE-pr448.json", + "commit": "64edee18af02aab0c1696b677a0287dd0146381b", + "path": "research/e8-bit-carrier-skeleton/SOURCE-pr448.json", + "sha256": "c771fa9be492408a78d6d970c839e68c4dfd1b66f4f4a4748e3d12726a43cf27" + }, + { + "local": "vendor/e8-bit-carrier-skeleton/SOURCE-pr370.json", + "commit": "64edee18af02aab0c1696b677a0287dd0146381b", + "path": "research/e8-bit-carrier-skeleton/SOURCE-pr370.json", + "sha256": "03de1d341196cfa8cf1d39f3cc8648b25bb5f39c3c602a728cfbd089e8253ac0" + }, + { + "local": "vendor/e8-bit-carrier-skeleton/SOURCE-pr472.json", + "commit": "64edee18af02aab0c1696b677a0287dd0146381b", + "path": "research/e8-bit-carrier-skeleton/SOURCE-pr472.json", + "sha256": "6753bcf50c91806b75dd4dbe3963a79699a614d0dab8ce32b261cc3e76b288b1" + }, + { + "local": "vendor/e8-bit-carrier-skeleton/SOURCE-pr458.json", + "commit": "64edee18af02aab0c1696b677a0287dd0146381b", + "path": "research/e8-bit-carrier-skeleton/SOURCE-pr458.json", + "sha256": "cbdea984a46ab5de354b95e73fd76c1918fdc6676c658398a552772c4dc3dcaf" + }, + { + "local": "vendor/e8-bit-carrier-skeleton/NOTICE.md", + "commit": "64edee18af02aab0c1696b677a0287dd0146381b", + "path": "research/e8-bit-carrier-skeleton/NOTICE.md", + "sha256": "5f4b7fcbf99f572be28b6da612ce775363908cdfc7810f7aca167be01c86e49a" + }, + { + "local": "vendor/e8-bit-carrier-skeleton/SOURCE-pr478.json", + "commit": "64edee18af02aab0c1696b677a0287dd0146381b", + "path": "research/e8-bit-carrier-skeleton/SOURCE-pr478.json", + "sha256": "9c7c4ea678865a955b0c89f0952927159976fdf55cadc6a488dec5757f03fe7d" + }, + { + "local": "vendor/e8-bit-carrier-skeleton/discovery/plan.py", + "commit": "64edee18af02aab0c1696b677a0287dd0146381b", + "path": "research/e8-bit-carrier-skeleton/discovery/plan.py", + "sha256": "40e8dea1b4b71c5afd5993625f57bcac089dd2f72dfbc4dbc23ce917e5a61010" + }, + { + "local": "vendor/e8-bit-carrier-skeleton/discovery/README.md", + "commit": "64edee18af02aab0c1696b677a0287dd0146381b", + "path": "research/e8-bit-carrier-skeleton/discovery/README.md", + "sha256": "b09aa45d5651720e10326cde559c863ba3ea45fe2fb6b4aaa3bfaa66a8fcf69f" + }, + { + "local": "vendor/e8-bit-carrier-skeleton/discovery/d4part.py", + "commit": "64edee18af02aab0c1696b677a0287dd0146381b", + "path": "research/e8-bit-carrier-skeleton/discovery/d4part.py", + "sha256": "a64927c340a4772ce0682b349e0c90c80d1a766000ccf397fb41b36a31929179" + }, + { + "local": "vendor/e8-bit-carrier-skeleton/discovery/host_select.py", + "commit": "64edee18af02aab0c1696b677a0287dd0146381b", + "path": "research/e8-bit-carrier-skeleton/discovery/host_select.py", + "sha256": "2aaaac18e083d289d4341e734c32571c89c51fefba04b388d407c7372b906dc7" + }, + { + "local": "vendor/e8-bit-carrier-skeleton/code/cited.py", + "commit": "64edee18af02aab0c1696b677a0287dd0146381b", + "path": "research/e8-bit-carrier-skeleton/code/cited.py", + "sha256": "a4c2dd4755f2a45ceda327b36d9ee400c2804893000626ca8ff3f6ee296fd842" + }, + { + "local": "vendor/e8-bit-carrier-skeleton/code/provenance.py", + "commit": "64edee18af02aab0c1696b677a0287dd0146381b", + "path": "research/e8-bit-carrier-skeleton/code/provenance.py", + "sha256": "e28fd87d0e34a6f6f6f1fddb6c4891deac220662c954de855d7aa5a7f9cceca4" + }, + { + "local": "vendor/e8-bit-carrier-skeleton/data/complex-b.json", + "commit": "64edee18af02aab0c1696b677a0287dd0146381b", + "path": "research/e8-bit-carrier-skeleton/data/complex-b.json", + "sha256": "dce3f4b76aa3f6c3ba826ce556ffa61398b33e81e4d1a226dd2a36ce684fb02e" + }, + { + "local": "vendor/e8-bit-carrier-skeleton/data/bit/bitE8-r865.json.gz", + "commit": "64edee18af02aab0c1696b677a0287dd0146381b", + "path": "research/e8-bit-carrier-skeleton/data/bit/bitE8-r865.json.gz", + "sha256": "1fb726ea3818fe0837cceb0dd22a71a0814f064e5e781628104610d6468e0e55" + }, + { + "local": "vendor/e8-bit-carrier-skeleton/data/bit/bitE8mut-r489.json.gz", + "commit": "64edee18af02aab0c1696b677a0287dd0146381b", + "path": "research/e8-bit-carrier-skeleton/data/bit/bitE8mut-r489.json.gz", + "sha256": "835eb96e147740fc7454f8cfb3dbd34ae89524b1dbd89a61e9288eae8ab6a5b9" + }, + { + "local": "vendor/e8-bit-carrier-skeleton/data/eleven/hosting.json", + "commit": "64edee18af02aab0c1696b677a0287dd0146381b", + "path": "research/e8-bit-carrier-skeleton/data/eleven/hosting.json", + "sha256": "61f790657c465d16d3455f48f90f816797b9ea08bf02dbd0c90d2cf41836257e" + }, + { + "local": "vendor/e8-bit-carrier-skeleton/data/eleven/residual-isometries.json", + "commit": "64edee18af02aab0c1696b677a0287dd0146381b", + "path": "research/e8-bit-carrier-skeleton/data/eleven/residual-isometries.json", + "sha256": "0fa5b353a0321af2ce4e2045db1d4c2d6418a11663894e2afcdb1eaa1984bddc" + }, + { + "local": "vendor/e8-bit-carrier-skeleton/data/skeleton/d4part-pairs.json", + "commit": "64edee18af02aab0c1696b677a0287dd0146381b", + "path": "research/e8-bit-carrier-skeleton/data/skeleton/d4part-pairs.json", + "sha256": "d69ffe3326140bc541b8f1639e02db43a5835ab8ca02cc742b5bee2bf2ef1ba9" + }, + { + "local": "vendor/e8-bit-carrier-skeleton/data/skeleton/plan-skB.json", + "commit": "64edee18af02aab0c1696b677a0287dd0146381b", + "path": "research/e8-bit-carrier-skeleton/data/skeleton/plan-skB.json", + "sha256": "f6162bb4d8092bc233700fa7ebc6a0d79f2893135aee18e998369044abb3f44b" + }, + { + "local": "vendor/e8-bit-carrier-skeleton/data/complex/pr458/EXPECTED.json", + "commit": "64edee18af02aab0c1696b677a0287dd0146381b", + "path": "research/e8-bit-carrier-skeleton/data/complex/pr458/EXPECTED.json", + "sha256": "a4312cb0c53c2066a28b683a971a41e7d76c5f6d828a96481c3ae7b3c01bb2f3" + }, + { + "local": "vendor/e8-bit-carrier-skeleton/data/complex/pr473/EXPECTED.json", + "commit": "64edee18af02aab0c1696b677a0287dd0146381b", + "path": "research/e8-bit-carrier-skeleton/data/complex/pr473/EXPECTED.json", + "sha256": "70e515f0a5a2f9508cd030d35a99f90981a6eccc027c9ad5a3c77f5860310910" + }, + { + "local": "vendor/e8-bit-carrier-skeleton/data/complex/pr484/EXPECTED.json", + "commit": "64edee18af02aab0c1696b677a0287dd0146381b", + "path": "research/e8-bit-carrier-skeleton/data/complex/pr484/EXPECTED.json", + "sha256": "0c93018a23bc573c7d155d4786e0c3978e95be0fda974076697939a1a1d8e5be" + }, + { + "local": "vendor/e8-bit-carrier-skeleton/data/complex/pr483/EXPECTED.json", + "commit": "64edee18af02aab0c1696b677a0287dd0146381b", + "path": "research/e8-bit-carrier-skeleton/data/complex/pr483/EXPECTED.json", + "sha256": "799fa4ab2f785c478c3cdcb6c1c0428a5ce6e3ddbe4a4b2fd88630d811a593f6" + }, + { + "local": "vendor/e8-bit-carrier-skeleton/data/complex/pr448/EXPECTED.json", + "commit": "64edee18af02aab0c1696b677a0287dd0146381b", + "path": "research/e8-bit-carrier-skeleton/data/complex/pr448/EXPECTED.json", + "sha256": "18b42250c3faf6f0df76fcab6c3a483582192ad7bb09cb1985f4b0bb91d67024" + }, + { + "local": "vendor/e8-bit-carrier-skeleton/data/complex/pr478/EXPECTED.json", + "commit": "64edee18af02aab0c1696b677a0287dd0146381b", + "path": "research/e8-bit-carrier-skeleton/data/complex/pr478/EXPECTED.json", + "sha256": "07bd05d14c71df8925b0b03510b2b337334b73ac425a94e03b2ec34ed2680164" + }, + { + "local": "vendor/e8-bit-carrier-skeleton/data/complex/pr471/EXPECTED.json", + "commit": "64edee18af02aab0c1696b677a0287dd0146381b", + "path": "research/e8-bit-carrier-skeleton/data/complex/pr471/EXPECTED.json", + "sha256": "188f9d1a7450496dbfd8d64381febd20b0597141537eb1a003435297df2d1720" + }, + { + "local": "vendor/e8-bit-carrier-skeleton/code/bit/mutate_records.py", + "commit": "64edee18af02aab0c1696b677a0287dd0146381b", + "path": "research/e8-bit-carrier-skeleton/code/bit/mutate_records.py", + "sha256": "b0e75d6550412a7be4017695e6b237392b611bb852ad8ff309d6682c9f166a4e" + }, + { + "local": "vendor/e8-bit-carrier-skeleton/code/bit/mutate_records_mut.py", + "commit": "64edee18af02aab0c1696b677a0287dd0146381b", + "path": "research/e8-bit-carrier-skeleton/code/bit/mutate_records_mut.py", + "sha256": "a9e085ec60d5657cd5d77832e3d95004e81b9f4f249d9e0fc95e345366cb2d2e" + }, + { + "local": "vendor/e8-bit-carrier-skeleton/code/bit/export_records.py", + "commit": "64edee18af02aab0c1696b677a0287dd0146381b", + "path": "research/e8-bit-carrier-skeleton/code/bit/export_records.py", + "sha256": "8a5999601f917dbb492bb9ae9a344611f18cc7cedc53dc3c76496a369e530eb3" + }, + { + "local": "vendor/e8-bit-carrier-skeleton/code/eleven/audit.py", + "commit": "64edee18af02aab0c1696b677a0287dd0146381b", + "path": "research/e8-bit-carrier-skeleton/code/eleven/audit.py", + "sha256": "5ad832830c19ec6c904d1b64480f6b1e71c5673fdd38d487d17e179b1d197c09" + }, + { + "local": "vendor/e8-bit-carrier-skeleton/code/eleven/local_audit.py", + "commit": "64edee18af02aab0c1696b677a0287dd0146381b", + "path": "research/e8-bit-carrier-skeleton/code/eleven/local_audit.py", + "sha256": "95275473d7f9811011bda760dd0f04de5169c2a6922456dc9a5725a5d671f941" + }, + { + "local": "vendor/e8-bit-carrier-skeleton/code/eleven/assemble.py", + "commit": "64edee18af02aab0c1696b677a0287dd0146381b", + "path": "research/e8-bit-carrier-skeleton/code/eleven/assemble.py", + "sha256": "c47889a606701ae592374dd82a13cee8c5a4e8449b7facfdad2d90563a30a18c" + }, + { + "local": "vendor/e8-bit-carrier-skeleton/code/eleven/adapt.py", + "commit": "64edee18af02aab0c1696b677a0287dd0146381b", + "path": "research/e8-bit-carrier-skeleton/code/eleven/adapt.py", + "sha256": "d8a8c13b484d985f0133a5d06de4a78b8477314f922b9f693ba73640b7184d6b" + }, + { + "local": "vendor/e8-bit-carrier-skeleton/code/eleven/emit.py", + "commit": "64edee18af02aab0c1696b677a0287dd0146381b", + "path": "research/e8-bit-carrier-skeleton/code/eleven/emit.py", + "sha256": "b0b25955875625ed63f82690f83aef976e3e9a978ae6620b23a23fc1207acd46" + }, + { + "local": "vendor/e8-bit-carrier-skeleton/code/skeleton/gen.py", + "commit": "64edee18af02aab0c1696b677a0287dd0146381b", + "path": "research/e8-bit-carrier-skeleton/code/skeleton/gen.py", + "sha256": "7cdcf48078ed4beacd2e240aa8145e4aa6984558748d07659cb1b252786e073a" + }, + { + "local": "vendor/e8-bit-carrier-skeleton/code/skeleton/geom.py", + "commit": "64edee18af02aab0c1696b677a0287dd0146381b", + "path": "research/e8-bit-carrier-skeleton/code/skeleton/geom.py", + "sha256": "bb356568fa05e7bfd5fcd9012903611cf742729a99b4dc3a13685355b2678ae3" + }, + { + "local": "vendor/e8-bit-carrier-skeleton/code/skeleton/e8.py", + "commit": "64edee18af02aab0c1696b677a0287dd0146381b", + "path": "research/e8-bit-carrier-skeleton/code/skeleton/e8.py", + "sha256": "721d859a6517d665ca84d03ef89668da3aae7433ffb0ee47faf37f2aeb85450e" + }, + { + "local": "vendor/e8-bit-carrier-skeleton/code/skeleton/wordkit.py", + "commit": "64edee18af02aab0c1696b677a0287dd0146381b", + "path": "research/e8-bit-carrier-skeleton/code/skeleton/wordkit.py", + "sha256": "2b6c12d96f24a4e81f2c807827c2b74cf80037367fc8034e8c871dd5ce008351" + }, + { + "local": "vendor/e8-bit-carrier-skeleton/code/nine/geometry.py", + "commit": "64edee18af02aab0c1696b677a0287dd0146381b", + "path": "research/e8-bit-carrier-skeleton/code/nine/geometry.py", + "sha256": "36eeda3184bd009e89462b65c8725d10860c444f8da8f1f87e5f6e50120011ca" + }, + { + "local": "vendor/e8-bit-carrier-skeleton/code/pricing/base_two_moment.py", + "commit": "64edee18af02aab0c1696b677a0287dd0146381b", + "path": "research/e8-bit-carrier-skeleton/code/pricing/base_two_moment.py", + "sha256": "aee70c242a2f1d225528fabe2002e1564d1dc884797c07d28a831c7878ee9098" + }, + { + "local": "vendor/e8-bit-carrier-skeleton/code/pricing/moment.py", + "commit": "64edee18af02aab0c1696b677a0287dd0146381b", + "path": "research/e8-bit-carrier-skeleton/code/pricing/moment.py", + "sha256": "81cbc864e106418fc7854322746f72180cb8110ff39f74450a3b8d55a82c1482" + }, + { + "local": "vendor/e8-bit-carrier-skeleton/code/pricing/prime_witnesses.py", + "commit": "64edee18af02aab0c1696b677a0287dd0146381b", + "path": "research/e8-bit-carrier-skeleton/code/pricing/prime_witnesses.py", + "sha256": "98cd03bc9582e7bd0ab194c191ea8eea940539e510051443ab9fd3e572a364ab" + }, + { + "local": "vendor/e8-bit-carrier-skeleton/code/pricing/outer.py", + "commit": "64edee18af02aab0c1696b677a0287dd0146381b", + "path": "research/e8-bit-carrier-skeleton/code/pricing/outer.py", + "sha256": "c1ebb52163a7219504c728a5c2b098bf1e50bf20148a2879c5a74c3cadc7c03c" + }, + { + "local": "vendor/e8-bit-carrier-skeleton/code/hub/idle-axis-hosting/hosting_core.py", + "commit": "64edee18af02aab0c1696b677a0287dd0146381b", + "path": "research/e8-bit-carrier-skeleton/code/hub/idle-axis-hosting/hosting_core.py", + "sha256": "d8b90cd5d152df3c7c351230863d9e61816ad5e1f21d69bea1a86a5daad559a3" + }, + { + "local": "vendor/e8-bit-carrier-skeleton/code/hub/r740-hosted-eleven/code/geometry.py", + "commit": "64edee18af02aab0c1696b677a0287dd0146381b", + "path": "research/e8-bit-carrier-skeleton/code/hub/r740-hosted-eleven/code/geometry.py", + "sha256": "9554182d67e434ea84b4430f909a2c400abc755d8487b51454a8e6968e62859d" + }, + { + "local": "vendor/e8-bit-carrier-skeleton/code/hub/r740-hosted-eleven/code/emit.py", + "commit": "64edee18af02aab0c1696b677a0287dd0146381b", + "path": "research/e8-bit-carrier-skeleton/code/hub/r740-hosted-eleven/code/emit.py", + "sha256": "ac63ee481f3d75cb9f0658faaa2412db81d55bc44d9f1ff1c0329ce1e75aa0d4" + }, + { + "local": "vendor/e8-bit-carrier-skeleton/code/hub/r740-hosted-eleven/code/row_bound.py", + "commit": "64edee18af02aab0c1696b677a0287dd0146381b", + "path": "research/e8-bit-carrier-skeleton/code/hub/r740-hosted-eleven/code/row_bound.py", + "sha256": "de4a9b9cd797e1a05da56f62cfe725c8728cea3a4aa031b7d1b0a68f869760d6" + }, + { + "local": "vendor/e8-bit-carrier-skeleton/code/hub/r740-hosted-eleven/data/selection.json", + "commit": "64edee18af02aab0c1696b677a0287dd0146381b", + "path": "research/e8-bit-carrier-skeleton/code/hub/r740-hosted-eleven/data/selection.json", + "sha256": "52dbbb68e8c147690d15eaa1d952df05d074b0c121885a4159d9f6732f391872" + }, + { + "local": "vendor/e8-bit-carrier-skeleton/code/hub/e8-r740-replica32/code/e8core.py", + "commit": "64edee18af02aab0c1696b677a0287dd0146381b", + "path": "research/e8-bit-carrier-skeleton/code/hub/e8-r740-replica32/code/e8core.py", + "sha256": "1cb286196c1530d06f50f0997febc5993b388f33464e295611b920ba30a24eeb" + }, + { + "local": "vendor/e8-bit-carrier-skeleton/code/hub/e8-r740-replica32/code/bank_routes.py", + "commit": "64edee18af02aab0c1696b677a0287dd0146381b", + "path": "research/e8-bit-carrier-skeleton/code/hub/e8-r740-replica32/code/bank_routes.py", + "sha256": "7c6997c455bd55acca3a1603797c34e7733d557c27a7694a1429ff15773a505d" + }, + { + "local": "vendor/e8-bit-carrier-skeleton/code/hub/e8-r740-replica32/code/tile_m.py", + "commit": "64edee18af02aab0c1696b677a0287dd0146381b", + "path": "research/e8-bit-carrier-skeleton/code/hub/e8-r740-replica32/code/tile_m.py", + "sha256": "d6ae4a556472d403773cd2117c992bfc10e1187112da1b3893f3fae628a131dd" + }, + { + "local": "vendor/e8-bit-carrier-skeleton/code/hub/e8-r740-replica32/data/word.json.gz", + "commit": "64edee18af02aab0c1696b677a0287dd0146381b", + "path": "research/e8-bit-carrier-skeleton/code/hub/e8-r740-replica32/data/word.json.gz", + "sha256": "d8d6d3d3f336720302bc40b3c1504fe3c3583a7a8d707bb9bd7b21f85e5e69c6" + }, + { + "local": "vendor/e8-bit-carrier-skeleton/code/hub/e8-r740-replica32/data/residual-isometries.json", + "commit": "64edee18af02aab0c1696b677a0287dd0146381b", + "path": "research/e8-bit-carrier-skeleton/code/hub/e8-r740-replica32/data/residual-isometries.json", + "sha256": "e12ed7ddd13cee101ba74a083b54665fd64d0b122b0bad5b83d817dcc8bae9d8" + }, + { + "local": "vendor/e8-bit-carrier-skeleton/code/hub/e8-r740-replica32/code/engines/base_two_moment.py", + "commit": "64edee18af02aab0c1696b677a0287dd0146381b", + "path": "research/e8-bit-carrier-skeleton/code/hub/e8-r740-replica32/code/engines/base_two_moment.py", + "sha256": "aee70c242a2f1d225528fabe2002e1564d1dc884797c07d28a831c7878ee9098" + }, + { + "local": "vendor/e8-bit-carrier-skeleton/code/hub/e8-r740-replica32/code/engines/moment.py", + "commit": "64edee18af02aab0c1696b677a0287dd0146381b", + "path": "research/e8-bit-carrier-skeleton/code/hub/e8-r740-replica32/code/engines/moment.py", + "sha256": "81cbc864e106418fc7854322746f72180cb8110ff39f74450a3b8d55a82c1482" + }, + { + "local": "vendor/e8-bit-carrier-skeleton/code/hub/e8-r740-replica32/code/engines/outer.py", + "commit": "64edee18af02aab0c1696b677a0287dd0146381b", + "path": "research/e8-bit-carrier-skeleton/code/hub/e8-r740-replica32/code/engines/outer.py", + "sha256": "c1ebb52163a7219504c728a5c2b098bf1e50bf20148a2879c5a74c3cadc7c03c" + }, + { + "local": "vendor/e8-bit-carrier-skeleton/code/hub/r740-hosted-rank149/code/emit.py", + "commit": "64edee18af02aab0c1696b677a0287dd0146381b", + "path": "research/e8-bit-carrier-skeleton/code/hub/r740-hosted-rank149/code/emit.py", + "sha256": "ac63ee481f3d75cb9f0658faaa2412db81d55bc44d9f1ff1c0329ce1e75aa0d4" + }, + { + "local": "vendor/e8-bit-carrier-skeleton/code/hub/r740-hosted-rank149/data/word.json.gz", + "commit": "64edee18af02aab0c1696b677a0287dd0146381b", + "path": "research/e8-bit-carrier-skeleton/code/hub/r740-hosted-rank149/data/word.json.gz", + "sha256": "41626789888ee070e1b435fa380b10ab9b88e3cf7d8d8e166ecef17269bbcf47" + }, + { + "local": "vendor/e8-bit-carrier-skeleton/code/hub/r740-hosted-rank149/data/residual-isometries.json", + "commit": "64edee18af02aab0c1696b677a0287dd0146381b", + "path": "research/e8-bit-carrier-skeleton/code/hub/r740-hosted-rank149/data/residual-isometries.json", + "sha256": "b23fda74a7979179e8fd83ee9870c1e232442cc90c05077adaabfe31d050d1e4" + }, + { + "local": "vendor/e8-bit-carrier-skeleton/code/hub/r740-hosted-rank149/data/selection.json", + "commit": "64edee18af02aab0c1696b677a0287dd0146381b", + "path": "research/e8-bit-carrier-skeleton/code/hub/r740-hosted-rank149/data/selection.json", + "sha256": "4d9c2cf6a3d31a6faa287731e0721cb16601b0bc5c1a186b9645bfb5760ce8db" + }, + { + "local": "vendor/e8-bit-carrier-skeleton/code/hub/e8-r715-whole-hosted/code/audit.py", + "commit": "64edee18af02aab0c1696b677a0287dd0146381b", + "path": "research/e8-bit-carrier-skeleton/code/hub/e8-r715-whole-hosted/code/audit.py", + "sha256": "d28062127a9b0d3866a3b79aad98a307233b20ebdb94cfb9f197d726b82ffea5" + }, + { + "local": "vendor/e8-bit-carrier-skeleton/code/hub/e8-r715-whole-hosted/code/local_audit.py", + "commit": "64edee18af02aab0c1696b677a0287dd0146381b", + "path": "research/e8-bit-carrier-skeleton/code/hub/e8-r715-whole-hosted/code/local_audit.py", + "sha256": "23eda3fe3d774e7f2dbf4dbdd4ff90d69ae7d1762ff95c8629cdc7667aa3fe71" + }, + { + "local": "vendor/e8-bit-carrier-skeleton/code/hub/e8-r715-whole-hosted/code/assemble.py", + "commit": "64edee18af02aab0c1696b677a0287dd0146381b", + "path": "research/e8-bit-carrier-skeleton/code/hub/e8-r715-whole-hosted/code/assemble.py", + "sha256": "abb60c35e448e0f94073f38a0352d11249aaf7bb8dbd7352414ae60a1d2b79c3" + }, + { + "local": "vendor/e8-bit-carrier-skeleton/code/hub/e8-r715-whole-hosted/code/emit.py", + "commit": "64edee18af02aab0c1696b677a0287dd0146381b", + "path": "research/e8-bit-carrier-skeleton/code/hub/e8-r715-whole-hosted/code/emit.py", + "sha256": "98d77cefbc3a76f9f10bd7df3a2590ab88b411f6afe77b5f8d73f1602eb2bef3" + }, + { + "local": "vendor/e8-bit-carrier-skeleton/code/hub/e8-r715-whole-hosted/data/hosting.json", + "commit": "64edee18af02aab0c1696b677a0287dd0146381b", + "path": "research/e8-bit-carrier-skeleton/code/hub/e8-r715-whole-hosted/data/hosting.json", + "sha256": "765382d4fefd594e94c8c5826ec6300422ce9f79c816d7f7323ef85e99320f28" + }, + { + "local": "vendor/e8-bit-carrier-skeleton/code/hub/e8-r715-whole-hosted/data/word.json.gz", + "commit": "64edee18af02aab0c1696b677a0287dd0146381b", + "path": "research/e8-bit-carrier-skeleton/code/hub/e8-r715-whole-hosted/data/word.json.gz", + "sha256": "b2af02f593cd161bea64e6cd793508386914136be519f80726c071697379d5a9" + }, + { + "local": "vendor/e8-bit-carrier-skeleton/code/hub/e8-r715-whole-hosted/data/residual-isometries.json", + "commit": "64edee18af02aab0c1696b677a0287dd0146381b", + "path": "research/e8-bit-carrier-skeleton/code/hub/e8-r715-whole-hosted/data/residual-isometries.json", + "sha256": "750221cc66badd0ed0a74e7aad2d59f91f89c107370af21c6d929fbdd4a08a9f" + }, + { + "local": "vendor/e8-bit-carrier-skeleton/code/bit/checkers/gram_frames.py", + "commit": "64edee18af02aab0c1696b677a0287dd0146381b", + "path": "research/e8-bit-carrier-skeleton/code/bit/checkers/gram_frames.py", + "sha256": "223a5a07731fc315a90a3e48177796babc155c1d9985c7ae5017eff6af2a0608" + }, + { + "local": "vendor/e8-bit-carrier-skeleton/code/bit/checkers/json.hpp", + "commit": "64edee18af02aab0c1696b677a0287dd0146381b", + "path": "research/e8-bit-carrier-skeleton/code/bit/checkers/json.hpp", + "sha256": "aaf127c04cb31c406e5b04a63f1ae89369fccde6d8fa7cdda1ed4f32dfc5de63" + }, + { + "local": "vendor/e8-bit-carrier-skeleton/code/bit/checkers/legality_h.cpp", + "commit": "64edee18af02aab0c1696b677a0287dd0146381b", + "path": "research/e8-bit-carrier-skeleton/code/bit/checkers/legality_h.cpp", + "sha256": "6c1ef2b24e57781d6951c172a1024fc4300e6fd392c9d6672079a7806ab663b3" + }, + { + "local": "vendor/e8-bit-carrier-skeleton/code/bit/checkers/columns_k.cpp", + "commit": "64edee18af02aab0c1696b677a0287dd0146381b", + "path": "research/e8-bit-carrier-skeleton/code/bit/checkers/columns_k.cpp", + "sha256": "1c344d18fcd494eeca93e259f10cafae7705780e6592f6dcb35b34752dab9bc2" + }, + { + "local": "vendor/e8-bit-carrier-skeleton/code/bit/checkers/columns_h.cpp", + "commit": "64edee18af02aab0c1696b677a0287dd0146381b", + "path": "research/e8-bit-carrier-skeleton/code/bit/checkers/columns_h.cpp", + "sha256": "d1297f9052be4f2496e1ff2a77e4db2c0cdbd7d460d489b4c03e50bf317238ce" + }, + { + "local": "vendor/e8-bit-carrier-skeleton/code/bit/independent/mutate_mut.py", + "commit": "64edee18af02aab0c1696b677a0287dd0146381b", + "path": "research/e8-bit-carrier-skeleton/code/bit/independent/mutate_mut.py", + "sha256": "3b002c19a5dcca76a5594f2a30fac7c01d2b45fc96b3e7cfbfd8b720f5ffb4e8" + }, + { + "local": "vendor/e8-bit-carrier-skeleton/code/bit/independent/interface.py", + "commit": "64edee18af02aab0c1696b677a0287dd0146381b", + "path": "research/e8-bit-carrier-skeleton/code/bit/independent/interface.py", + "sha256": "2c63a039f97e3a11ce5a6b83302d4f5beda160c1db14164a5a9b0855aeb19d3c" + }, + { + "local": "vendor/e8-bit-carrier-skeleton/code/bit/independent/mutate.py", + "commit": "64edee18af02aab0c1696b677a0287dd0146381b", + "path": "research/e8-bit-carrier-skeleton/code/bit/independent/mutate.py", + "sha256": "0ff65aace5da4b57d96235bf830f8f11969322e75134d498aeb70e9753ec6b0d" + }, + { + "local": "vendor/e8-bit-carrier-skeleton/code/bit/independent/relax.py", + "commit": "64edee18af02aab0c1696b677a0287dd0146381b", + "path": "research/e8-bit-carrier-skeleton/code/bit/independent/relax.py", + "sha256": "d6e9f58de3fa41f538516b6227c249d61fb30f0f6843027cc8a07a1a372fa6b6" + }, + { + "local": "vendor/e8-bit-carrier-skeleton/code/bit/independent/checkword.py", + "commit": "64edee18af02aab0c1696b677a0287dd0146381b", + "path": "research/e8-bit-carrier-skeleton/code/bit/independent/checkword.py", + "sha256": "11bf9620ca9db16d52d9fe806b814fc9ec9a89c4d7645354d1861d96f6e805ad" + }, + { + "local": "vendor/e8-bit-carrier-skeleton/code/bit/regression/stage_cohort.py", + "commit": "64edee18af02aab0c1696b677a0287dd0146381b", + "path": "research/e8-bit-carrier-skeleton/code/bit/regression/stage_cohort.py", + "sha256": "6c288f6f234b528c1a7c0a4adfb724e91e0fe6b18c8dffad96af3f973de1829a" + }, + { + "local": "vendor/e8-bit-carrier-skeleton/portable-include/bits/stdc++.h", + "commit": "64edee18af02aab0c1696b677a0287dd0146381b", + "path": "research/e8-bit-carrier-skeleton/portable-include/bits/stdc++.h", + "sha256": "420094be2af295eed03a983dd66debbbe9cfb78d8252859f4498a615a0074b99" + }, + { + "local": "vendor/e8-r480-dead-totals/EXPECTED.json", + "commit": "64edee18af02aab0c1696b677a0287dd0146381b", + "path": "research/e8-r480-dead-totals/EXPECTED.json", + "sha256": "5e4a6b141ffd110a539f3be05be1bd249dc5ecec898cdd838642c71f9c42ac9b" + }, + { + "local": "vendor/e8-r480-dead-totals/LICENSE", + "commit": "64edee18af02aab0c1696b677a0287dd0146381b", + "path": "research/e8-r480-dead-totals/LICENSE", + "sha256": "c71d239df91726fc519c6eb72d318ec65820627232b2f796219e87dcf35d0ab4" + }, + { + "local": "vendor/e8-r480-dead-totals/README.md", + "commit": "64edee18af02aab0c1696b677a0287dd0146381b", + "path": "research/e8-r480-dead-totals/README.md", + "sha256": "8a2c494ffe729b903a87548a4ac68a56ceb81d45e4f786985f18c1091897fe2f" + }, + { + "local": "vendor/e8-r480-dead-totals/MANIFEST.json", + "commit": "64edee18af02aab0c1696b677a0287dd0146381b", + "path": "research/e8-r480-dead-totals/MANIFEST.json", + "sha256": "5cf65e9dd0af2de68498c360bd118eb38e926fd9c7da1bc6bb054ee9ec64e262" + }, + { + "local": "vendor/e8-r480-dead-totals/verify.py", + "commit": "64edee18af02aab0c1696b677a0287dd0146381b", + "path": "research/e8-r480-dead-totals/verify.py", + "sha256": "c28ad846dcb012d270c0bf4f9e998696d319c20bfaedf2963fd5138b3369fd66" + }, + { + "local": "vendor/e8-r480-dead-totals/NOTICE.md", + "commit": "64edee18af02aab0c1696b677a0287dd0146381b", + "path": "research/e8-r480-dead-totals/NOTICE.md", + "sha256": "90e0b76e6f7c15bda8d854ec5bc6e07e4553ec1f73c86b17c35bd77b0abc4438" + }, + { + "local": "vendor/e8-r480-dead-totals/code/adapt.py", + "commit": "64edee18af02aab0c1696b677a0287dd0146381b", + "path": "research/e8-r480-dead-totals/code/adapt.py", + "sha256": "04ec15262595e502796efc1f100f1efd4f28585add48377af1bda702a12c0e40" + }, + { + "local": "vendor/e8-r480-dead-totals/data/hosting-r480.json", + "commit": "64edee18af02aab0c1696b677a0287dd0146381b", + "path": "research/e8-r480-dead-totals/data/hosting-r480.json", + "sha256": "29d55f5389a6bd7650e083b8318e725b505d8a6460a7afb4ddb08824675b6827" + }, + { + "local": "vendor/e8-r480-dead-totals/data/bitE8mut-r480.json.gz", + "commit": "64edee18af02aab0c1696b677a0287dd0146381b", + "path": "research/e8-r480-dead-totals/data/bitE8mut-r480.json.gz", + "sha256": "92e399e9a486b55229b5624632ac54f800dd9e022f2aee97f1e5f264bbc0ef5c" + }, + { + "local": "vendor/e8-r480-nine-stage/EXPECTED.json", + "commit": "64edee18af02aab0c1696b677a0287dd0146381b", + "path": "research/e8-r480-nine-stage/EXPECTED.json", + "sha256": "883f7a1a84f31d9e4430e348bc8d9c1ec10210b206ff602dbe126349056af13d" + }, + { + "local": "vendor/e8-r480-nine-stage/LICENSE", + "commit": "64edee18af02aab0c1696b677a0287dd0146381b", + "path": "research/e8-r480-nine-stage/LICENSE", + "sha256": "c71d239df91726fc519c6eb72d318ec65820627232b2f796219e87dcf35d0ab4" + }, + { + "local": "vendor/e8-r480-nine-stage/SOURCE.json", + "commit": "64edee18af02aab0c1696b677a0287dd0146381b", + "path": "research/e8-r480-nine-stage/SOURCE.json", + "sha256": "c58978211d35c902e8dcf65f94220060959eae97d58e68f245d566bfb33fdef7" + }, + { + "local": "vendor/e8-r480-nine-stage/README.md", + "commit": "64edee18af02aab0c1696b677a0287dd0146381b", + "path": "research/e8-r480-nine-stage/README.md", + "sha256": "14ba6d703dde9429c82c546199affe855c147ccfd5012fc13da9f18cdf0b5dda" + }, + { + "local": "vendor/e8-r480-nine-stage/MANIFEST.json", + "commit": "64edee18af02aab0c1696b677a0287dd0146381b", + "path": "research/e8-r480-nine-stage/MANIFEST.json", + "sha256": "4da5a1b9b3249368cb9fcca792b0771775ee7f21ca58614ddc6bb974b94733c4" + }, + { + "local": "vendor/e8-r480-nine-stage/verify.py", + "commit": "64edee18af02aab0c1696b677a0287dd0146381b", + "path": "research/e8-r480-nine-stage/verify.py", + "sha256": "28c369decf805aa5ea9a1e7c9d8b373a814f57cea8098ab9ed31c3fa6d3af86c" + }, + { + "local": "vendor/e8-r480-nine-stage/NOTICE.md", + "commit": "64edee18af02aab0c1696b677a0287dd0146381b", + "path": "research/e8-r480-nine-stage/NOTICE.md", + "sha256": "f3e97a9876a4d79af9260acc95df9e6b88e46f761a6c4b7a4e75e959468cf47e" + }, + { + "local": "vendor/e8-r480-nine-stage/code/assemble9.py", + "commit": "64edee18af02aab0c1696b677a0287dd0146381b", + "path": "research/e8-r480-nine-stage/code/assemble9.py", + "sha256": "4bf6768224a3fac81ccda26df24f3763f9a4fbc35ad62bef2888595cdae519fe" + }, + { + "local": "vendor/e8-r480-nine-stage/code/adapt.py", + "commit": "64edee18af02aab0c1696b677a0287dd0146381b", + "path": "research/e8-r480-nine-stage/code/adapt.py", + "sha256": "27b6b77cc4ebf439f9019e63a22dedc1ef72ee65fe120aad3d17316b1df06d7b" + }, + { + "local": "vendor/e8-r480-nine-stage/data/selection9-r480.json", + "commit": "64edee18af02aab0c1696b677a0287dd0146381b", + "path": "research/e8-r480-nine-stage/data/selection9-r480.json", + "sha256": "8176db518bed23ea8121543bfb18085ec6633064142ba40ac5db00f63b06553d" + }, + { + "local": "vendor/e8-r480-nine-stage/vendor/idle-axis-hosting/hosting_core.py", + "commit": "64edee18af02aab0c1696b677a0287dd0146381b", + "path": "research/e8-r480-nine-stage/vendor/idle-axis-hosting/hosting_core.py", + "sha256": "d8b90cd5d152df3c7c351230863d9e61816ad5e1f21d69bea1a86a5daad559a3" + }, + { + "local": "vendor/e8-r480-nine-stage/vendor/e8-r740-replica32/code/config.py", + "commit": "64edee18af02aab0c1696b677a0287dd0146381b", + "path": "research/e8-r480-nine-stage/vendor/e8-r740-replica32/code/config.py", + "sha256": "283d7fad45155ee91e704d63ec947cf4a60aeff5cc43510bc0e835f7da7d8767" + }, + { + "local": "vendor/e8-r480-nine-stage/vendor/e8-r740-replica32/code/e8core.py", + "commit": "64edee18af02aab0c1696b677a0287dd0146381b", + "path": "research/e8-r480-nine-stage/vendor/e8-r740-replica32/code/e8core.py", + "sha256": "1cb286196c1530d06f50f0997febc5993b388f33464e295611b920ba30a24eeb" + }, + { + "local": "vendor/e8-r480-nine-stage/vendor/e8-r740-replica32/code/bank_routes.py", + "commit": "64edee18af02aab0c1696b677a0287dd0146381b", + "path": "research/e8-r480-nine-stage/vendor/e8-r740-replica32/code/bank_routes.py", + "sha256": "7c6997c455bd55acca3a1603797c34e7733d557c27a7694a1429ff15773a505d" + }, + { + "local": "vendor/e8-r480-nine-stage/vendor/e8-r740-replica32/code/tile_m.py", + "commit": "64edee18af02aab0c1696b677a0287dd0146381b", + "path": "research/e8-r480-nine-stage/vendor/e8-r740-replica32/code/tile_m.py", + "sha256": "d6ae4a556472d403773cd2117c992bfc10e1187112da1b3893f3fae628a131dd" + }, + { + "local": "vendor/e8-r480-nine-stage/vendor/e8-r740-replica32/code/engines/base_two_moment.py", + "commit": "64edee18af02aab0c1696b677a0287dd0146381b", + "path": "research/e8-r480-nine-stage/vendor/e8-r740-replica32/code/engines/base_two_moment.py", + "sha256": "aee70c242a2f1d225528fabe2002e1564d1dc884797c07d28a831c7878ee9098" + }, + { + "local": "vendor/e8-r480-nine-stage/vendor/e8-r740-replica32/code/engines/moment.py", + "commit": "64edee18af02aab0c1696b677a0287dd0146381b", + "path": "research/e8-r480-nine-stage/vendor/e8-r740-replica32/code/engines/moment.py", + "sha256": "81cbc864e106418fc7854322746f72180cb8110ff39f74450a3b8d55a82c1482" + }, + { + "local": "vendor/e8-r480-nine-stage/vendor/e8-r740-replica32/code/engines/outer.py", + "commit": "64edee18af02aab0c1696b677a0287dd0146381b", + "path": "research/e8-r480-nine-stage/vendor/e8-r740-replica32/code/engines/outer.py", + "sha256": "c1ebb52163a7219504c728a5c2b098bf1e50bf20148a2879c5a74c3cadc7c03c" + }, + { + "local": "vendor/e8-r480-nine-stage/vendor/e8-r715-eleven-stage-whole/code/bank_routes_k.py", + "commit": "64edee18af02aab0c1696b677a0287dd0146381b", + "path": "research/e8-r480-nine-stage/vendor/e8-r715-eleven-stage-whole/code/bank_routes_k.py", + "sha256": "ea678a7befda10c6f1b9dd38a36fe1437c6468472bd649f60b9f01522047e0bf" + }, + { + "local": "vendor/e8-r480-nine-stage/vendor/e8-r715-eleven-stage-whole/code/global_k.py", + "commit": "64edee18af02aab0c1696b677a0287dd0146381b", + "path": "research/e8-r480-nine-stage/vendor/e8-r715-eleven-stage-whole/code/global_k.py", + "sha256": "6368196a393ac25bb2918880e4c4bd31ed733b762c27b6873ab391cbc0c5c3c8" + }, + { + "local": "vendor/e8-r480-nine-stage/vendor/e8-r715-eleven-stage-whole/code/emit_k.py", + "commit": "64edee18af02aab0c1696b677a0287dd0146381b", + "path": "research/e8-r480-nine-stage/vendor/e8-r715-eleven-stage-whole/code/emit_k.py", + "sha256": "298b16c3d4f58a468ad1a64564c8500cb281414a3f3c0428fd467908eeb4a4b4" + }, + { + "local": "vendor/e8-r480-nine-stage/vendor/e8-r715-eleven-stage-whole/code/audit_hosted_k.py", + "commit": "64edee18af02aab0c1696b677a0287dd0146381b", + "path": "research/e8-r480-nine-stage/vendor/e8-r715-eleven-stage-whole/code/audit_hosted_k.py", + "sha256": "57e558c80a2fea6e291587b04afd76dfaee3550729997798b61f33daf90b8ec9" + }, + { + "local": "vendor/e8-r480-nine-stage/vendor/e8-r715-eleven-stage-whole/code/audit_parent_k.py", + "commit": "64edee18af02aab0c1696b677a0287dd0146381b", + "path": "research/e8-r480-nine-stage/vendor/e8-r715-eleven-stage-whole/code/audit_parent_k.py", + "sha256": "374e1d983589463bbfa06b6e9f2ffafb9d2c14acf97b1f858593a3cef90e93d2" + }, + { + "local": "vendor/e8-r480-nine-stage/vendor/e8-r715-eleven-stage-whole/code/hosting_k.py", + "commit": "64edee18af02aab0c1696b677a0287dd0146381b", + "path": "research/e8-r480-nine-stage/vendor/e8-r715-eleven-stage-whole/code/hosting_k.py", + "sha256": "081c3b95b18d900d97ce82af64fb428f085b6adc6d8ca93ea920797dad7eb81e" + }, + { + "local": "vendor/e8-r480-nine-stage/code/findings/flowlp2.py", + "commit": "64edee18af02aab0c1696b677a0287dd0146381b", + "path": "research/e8-r480-nine-stage/code/findings/flowlp2.py", + "sha256": "2e778aa9adaee190f9b72a6dac45b5fdeac04110baa00cdc1b0ff49e2ae84554" + }, + { + "local": "vendor/e8-r480-nine-stage/code/findings/piv0.py", + "commit": "64edee18af02aab0c1696b677a0287dd0146381b", + "path": "research/e8-r480-nine-stage/code/findings/piv0.py", + "sha256": "b6dea0162404d7a54d1e20c4b14720f00239eb4512187e09e6eb8e075887a00e" + }, + { + "local": "vendor/e8-r480-nine-stage/code/findings/levels.py", + "commit": "64edee18af02aab0c1696b677a0287dd0146381b", + "path": "research/e8-r480-nine-stage/code/findings/levels.py", + "sha256": "366a56e07b61df63b46eb50dba4843e9416a63eb993106f1d139742d575767db" + }, + { + "local": "vendor/static44/build.py", + "commit": "6fd04b2e266b7915b69f96f27758cfce520aa40a", + "path": "research/trace-curvature-preload/appendix/static44/build.py", + "sha256": "b15192ff50fd99f5ca3cb5857b5e129c98a212de60ae76aafb1614139743c35a" + }, + { + "local": "vendor/static44/SOURCE-MANIFEST.json", + "commit": "6fd04b2e266b7915b69f96f27758cfce520aa40a", + "path": "research/trace-curvature-preload/appendix/static44/SOURCE-MANIFEST.json", + "sha256": "4f5d92b4cd76eff0845a9f14d33131441535a232b5c91f00535aa076d44c45a8" + }, + { + "local": "vendor/static44/PROOF.md", + "commit": "6fd04b2e266b7915b69f96f27758cfce520aa40a", + "path": "research/trace-curvature-preload/appendix/static44/PROOF.md", + "sha256": "abfa6548b223893866094631aed61174575dc1b17bdd60627b2c55e6b9477e4f" + }, + { + "local": "vendor/static44/LICENSE", + "commit": "6fd04b2e266b7915b69f96f27758cfce520aa40a", + "path": "research/trace-curvature-preload/appendix/static44/LICENSE", + "sha256": "c71d239df91726fc519c6eb72d318ec65820627232b2f796219e87dcf35d0ab4" + }, + { + "local": "vendor/static44/RECIPE.json", + "commit": "6fd04b2e266b7915b69f96f27758cfce520aa40a", + "path": "research/trace-curvature-preload/appendix/static44/RECIPE.json", + "sha256": "8735ac9beadff3edcb4a4df8dae174415e0f83d9b4df8556c33ba7fd777505fa" + }, + { + "local": "vendor/static44/README.md", + "commit": "6fd04b2e266b7915b69f96f27758cfce520aa40a", + "path": "research/trace-curvature-preload/appendix/static44/README.md", + "sha256": "51d6ef7ad3e12e72daf29e0260a11cd985a0148fe1efa0574a533dae726c553c" + }, + { + "local": "vendor/static44/NOTICE-upstream.md", + "commit": "6fd04b2e266b7915b69f96f27758cfce520aa40a", + "path": "research/trace-curvature-preload/appendix/static44/NOTICE-upstream.md", + "sha256": "1547136e6d269fdcef2b68c10a97a786a79a4732a12738363f679bfb282430cd" + }, + { + "local": "vendor/static44/META-SOURCES.json", + "commit": "6fd04b2e266b7915b69f96f27758cfce520aa40a", + "path": "research/trace-curvature-preload/appendix/static44/META-SOURCES.json", + "sha256": "c8aeb9313f2c671a9a8766c249ceb6cffa106dfdab3ab761da8e8c534b115090" + }, + { + "local": "vendor/static44/replay.py", + "commit": "6fd04b2e266b7915b69f96f27758cfce520aa40a", + "path": "research/trace-curvature-preload/appendix/static44/replay.py", + "sha256": "fd1ce7d1f8974b473aef8c6cec1e0c590e01d0d215b073e5573a771ce42fc74d" + }, + { + "local": "vendor/static44/audit_scalar.py", + "commit": "6fd04b2e266b7915b69f96f27758cfce520aa40a", + "path": "research/trace-curvature-preload/appendix/static44/audit_scalar.py", + "sha256": "a1cd720d281c7a9db7f17919c637cdcb8558e9f3c96e929706f0c21f317a7943" + }, + { + "local": "vendor/static44/gk/gk_word.py", + "commit": "6fd04b2e266b7915b69f96f27758cfce520aa40a", + "path": "research/trace-curvature-preload/appendix/static44/gk/gk_word.py", + "sha256": "f027a9273bcf4e0971258c160b7d3b3c196366b32a529cff6e6a0e666b03826b" + }, + { + "local": "vendor/static44/gk/gk_common.py", + "commit": "6fd04b2e266b7915b69f96f27758cfce520aa40a", + "path": "research/trace-curvature-preload/appendix/static44/gk/gk_common.py", + "sha256": "e68d190fd436b2f3955decb590adb53344d5d4ea0a19d62d86df1e4b55ecd198" + }, + { + "local": "vendor/static44/inputs/RAW504.json.gz", + "commit": "6fd04b2e266b7915b69f96f27758cfce520aa40a", + "path": "research/trace-curvature-preload/appendix/static44/inputs/RAW504.json.gz", + "sha256": "1c6144791dbedf6427e3ee7b4c24fb05b5bf407f6346592f50f8dd8d9638108d" + }, + { + "local": "vendor/static44/inputs/OLD-RECIPE.json", + "commit": "6fd04b2e266b7915b69f96f27758cfce520aa40a", + "path": "research/trace-curvature-preload/appendix/static44/inputs/OLD-RECIPE.json", + "sha256": "7e5c179246261edd9e1019e81e6e979537f02559da773b993a318f771cb7d763" + }, + { + "local": "vendor/static44/inputs/BASE535.json.gz", + "commit": "6fd04b2e266b7915b69f96f27758cfce520aa40a", + "path": "research/trace-curvature-preload/appendix/static44/inputs/BASE535.json.gz", + "sha256": "edfffb8e8735e0d1f07c81d818022b705ef0889c2bccc193a2f7a661b9f7d390" + }, + { + "local": "code/build_preload60.py", + "commit": "6fd04b2e266b7915b69f96f27758cfce520aa40a", + "path": "research/trace-curvature-preload/code/build_preload60.py", + "sha256": "105641136b565003118f362bb67086e1eeb4910aed6af593a011f60c2b2962b6" + } + ] +} diff --git a/research/static44-selective-validation/linux-python312/RECEIPT.json b/research/static44-selective-validation/linux-python312/RECEIPT.json new file mode 100644 index 0000000000..3f46d0bd24 --- /dev/null +++ b/research/static44-selective-validation/linux-python312/RECEIPT.json @@ -0,0 +1,111 @@ +{ + "status": "PASS_STATIC44_SELECTIVE_BOTH_SUPPLIERS", + "stages": [ + { + "name": "bit-preloads", + "exit_code": 0, + "seconds": 0.9074918648693711, + "log_sha256": "782bf2d65d4c3378fdb46b0b48d8690a919536ec460b70470f87f6706b253071" + }, + { + "name": "bit-slice-and-frame-recipe", + "exit_code": 0, + "seconds": 2.1365828898269683, + "log_sha256": "9336356e773640e19d54bf0d313b61d9cea74cd231c06898cc0680660c93e2f6" + }, + { + "name": "bit-native-physical-and-controls", + "exit_code": 0, + "seconds": 10.22912884899415, + "log_sha256": "c7eba4814afd639b4e61a010b8123089e7dbfeb3aa48e4f51ab33b4974807682" + }, + { + "name": "bit-global-owners-and-invoice", + "exit_code": 0, + "seconds": 81.37832002784126, + "log_sha256": "9a85bb9331821226b8ca11759762ecf8cd76977254d0341f69a6b0d6f800158e" + }, + { + "name": "complex-static44-construction-and-controls", + "exit_code": 0, + "seconds": 4.62480652006343, + "log_sha256": "710d00e4459f1986cc56699cfdbf25e20b16c4fbebf485475f725c8edf7e47d7" + }, + { + "name": "complex-scalar-frame-transport", + "exit_code": 0, + "seconds": 0.5183203970082104, + "log_sha256": "82bb6efe5540ae5d0a671c16200ef54296403eba6ec03f0f6e21bb3eac13bad7" + }, + { + "name": "complex-emit-local", + "exit_code": 0, + "seconds": 0.4616203219629824, + "log_sha256": "bafe3eefa5f0be32c9d9e6ef0fca3a74d9a6f71dbd0e125fe3c84a577227c62f" + }, + { + "name": "complex-independent-local", + "exit_code": 0, + "seconds": 1.6966129310894758, + "log_sha256": "b694b4b22abb9d1de9a70bbbdf9e9b0e030ec00a7eddc264e4c18376dd859cee" + }, + { + "name": "complex-normalized-wrappers", + "exit_code": 0, + "seconds": 0.8561742911115289, + "log_sha256": "4638570164b60b9d83753f6fd3a6359713fc062971e022bdea919f8d479b298a" + }, + { + "name": "complex-every-local-phase", + "exit_code": 0, + "seconds": 94.79280381207354, + "log_sha256": "258ac9619e3b61105229f298db5d5d8691104704fa4fa3dad8d9196dfe0c7756" + }, + { + "name": "complex-bind-retained-data", + "exit_code": 0, + "seconds": 0.9399486819747835, + "log_sha256": "afcbc7484189a58a7eb441101f523d91da2346ef69e4eb80fbf27cf0da775432" + }, + { + "name": "complex-emit-whole-owners", + "exit_code": 0, + "seconds": 2.0066600861027837, + "log_sha256": "b91e4aad1f3cc48a5de15bb5beb4a5578573825b6265da6922419c1195c384b6" + }, + { + "name": "complex-independent-owners-and-controls", + "exit_code": 0, + "seconds": 4.658715368015692, + "log_sha256": "bcbf4f82bfaf42c9b6f9c43b44132f4cffe6d15d24fce0e02db34b3e87af476f" + }, + { + "name": "complex-finite-invoice", + "exit_code": 0, + "seconds": 0.43338969396427274, + "log_sha256": "8d11e3a9a6e87f3b5a1b2828ce567e428cc8f23caf38710b2f4f2052d025e854" + }, + { + "name": "both-moments-and-outer-assembly", + "exit_code": 0, + "seconds": 0.21600864292122424, + "log_sha256": "ad5788bc94b378964df5786e653d22e6b4040be7e468149a233a26f0d3b64f89" + } + ], + "artifacts": { + "RESULT.json": "2fbc5ac72af273059b42dc83ca871295235400518e5b8f13ccf780435bd6ec2c", + "bit-word/BUILD.json": "917a7c0c3b4e2ac8207a4368aee16ad32abd285c53682cc036d7d022f31d8a43", + "bit-native/NATIVE-REVIEW.json": "b1cd61bced1c782e265aefd16f3547cc60caaa4a882751f7fdeb581d2624ac57", + "bit-global/RESOURCE-RESULT.json": "de579f7010938730b18c9bbd3057e9d39c4daed3ba7c1b3d6967b20388e9940c", + "bit-global/INVOICE.json": "7746beb3112a4eb03de4489f32a51b1dead4c229b00fdb04324f5f6aa5493a49", + "static44/SCALAR-AUDIT.json": "6572afd4b38edd37f4c33f2a16b1117a627dcb81e75f6a09b8687e9f042f518a", + "complex-local/INDEPENDENT-LOCAL-REPLAY.json": "3bc0417372614ad75dce16b77c628878361bdd16134db1aa7e20ca0a32b3e86e", + "complex-local/CLIFFORD-REVIEW.json": "ea188b179ffbf28376a03ee562d1e9ff1fed35a508613c5f8bf4f3c7841c7995", + "complex-local/LEMMA-A.json": "bc9d150517bae20490620f6d18b1af68a7d57ca5efe772613a9ee5ccd09107d8", + "complex-audit/ASYNC-AUDIT.json": "bcbf4f82bfaf42c9b6f9c43b44132f4cffe6d15d24fce0e02db34b3e87af476f", + "complex-audit/OWNERS-AND-PROFILE.json": "13ce120714ab6e1bd73d79177a3a987284559f86831ade897ed0a5c0af11f93d", + "complex-audit/PREFIX-AND-INVOICE.json": "8d11e3a9a6e87f3b5a1b2828ce567e428cc8f23caf38710b2f4f2052d025e854", + "assembly/EXACT-ASSEMBLY.json": "eaacbe5a9b971b20f59503a5e948c1ba76c5e082f81a012c9cc7394494bc4db5" + }, + "manifest_sha256": "9cbdd9329a903b9b0f2b967ec7df5d7cac17f0288b480bfb81448f764b14a7e1" +} diff --git a/research/static44-selective-validation/linux-python312/RESULT.json b/research/static44-selective-validation/linux-python312/RESULT.json new file mode 100644 index 0000000000..4fc651f6c0 --- /dev/null +++ b/research/static44-selective-validation/linux-python312/RESULT.json @@ -0,0 +1,70 @@ +{ + "kappa": "397150561665803/250000000000000000", + "kappa_decimal": "0.001588602246663212", + "complex_lower": "31864911873350496687/20000000000000000000000", + "bit_lower": "1591129919227630331373/1000000000000000000000000", + "binding_component": "bit", + "status": "PASS_STATIC44_SELECTIVE_BOTH_SUPPLIERS", + "bit_local_profile": { + "1": 1270, + "2": 1320, + "3": 50, + "4": 170, + "6": 130, + "8": 9 + }, + "bit_global_profile": { + "1": 365760, + "2": 395520, + "3": 14400, + "4": 64320, + "6": 52800, + "7": 23040, + "8": 2592 + }, + "bit_word_sha256": "275447d211596b5a7bc1435bb1597cf70300679b27a127a78eb1efbf83506af0", + "bit_template_sha256": "e24da8e68fed26ea2045632b43c20c7e73be4b49f803565097ad7575074f13b2", + "bit_program_sha256": "4d8c9875292c2134832ec46534ad160b4503f3c967cf1bee2d6a5cb75c2d102d", + "bit_payload_prefix_bits": 101, + "bit_prefix_bits": 191, + "bit_charged_prefix_bits": 192, + "bit_two_level_bits": 421, + "bit_charged_two_level_bits": 512, + "complex_local_profile": { + "1": 2204, + "2": 728, + "3": 184, + "4": 280, + "5": 56, + "6": 56, + "8": 8 + }, + "complex_global_profile": { + "1": 158688, + "2": 52864, + "3": 15171, + "4": 20160, + "5": 4032, + "6": 4032, + "7": 208, + "8": 576, + "39": 1, + "48": 1660 + }, + "complex_word_sha256": "9fc4a1445b2dc49d6331ecc7638a95289feb0b1cf94d8ee74daa285a234ccd49", + "complex_program_sha256": "c88fe1770b76cf0dc1c3a90a95baefd898e95012248984c69bf0ca87cf3fafba", + "complex_phase_sha256": "9ca2571e17012130b8b3359339f235df9c995dd3b92f86c44e45a2c2da77ac31", + "complex_template_sha256": "7460157d9add0bf66616009d32e25f58f8b1a30edb9f13eb730bf532b61dbf8b", + "complex_live": 7168, + "complex_physical": 7682, + "complex_deficit": 2560, + "complex_helper_roles": 36288, + "complex_prefix_bits": 225, + "complex_charged_prefix_bits": 512, + "phase_edges": 2929, + "endpoint_adapters": 224, + "seconds": 205.89637290197425, + "python": "3.12.3 (main, Aug 31 2026, 10:18:26) [GCC 13.3.0]", + "manifest_sha256": "9cbdd9329a903b9b0f2b967ec7df5d7cac17f0288b480bfb81448f764b14a7e1", + "scope": "Conditional finite witness under the retained all-size compiler, common-label/mutable-basis, whole-call hosting, restored-work, precision/tape and analytic-transfer contracts. Fresh changed-bit admission and complex admission and finite invoices are separately hash-bound. The unchanged complex data controller remains a cited dependency. No unconditional theorem is claimed." +} diff --git a/research/static44-selective-validation/linux-python312/STAGES.json b/research/static44-selective-validation/linux-python312/STAGES.json new file mode 100644 index 0000000000..c3e4378020 --- /dev/null +++ b/research/static44-selective-validation/linux-python312/STAGES.json @@ -0,0 +1,92 @@ +[ + { + "name": "bit-preloads", + "exit_code": 0, + "seconds": 0.9074918648693711, + "log_sha256": "782bf2d65d4c3378fdb46b0b48d8690a919536ec460b70470f87f6706b253071" + }, + { + "name": "bit-slice-and-frame-recipe", + "exit_code": 0, + "seconds": 2.1365828898269683, + "log_sha256": "9336356e773640e19d54bf0d313b61d9cea74cd231c06898cc0680660c93e2f6" + }, + { + "name": "bit-native-physical-and-controls", + "exit_code": 0, + "seconds": 10.22912884899415, + "log_sha256": "c7eba4814afd639b4e61a010b8123089e7dbfeb3aa48e4f51ab33b4974807682" + }, + { + "name": "bit-global-owners-and-invoice", + "exit_code": 0, + "seconds": 81.37832002784126, + "log_sha256": "9a85bb9331821226b8ca11759762ecf8cd76977254d0341f69a6b0d6f800158e" + }, + { + "name": "complex-static44-construction-and-controls", + "exit_code": 0, + "seconds": 4.62480652006343, + "log_sha256": "710d00e4459f1986cc56699cfdbf25e20b16c4fbebf485475f725c8edf7e47d7" + }, + { + "name": "complex-scalar-frame-transport", + "exit_code": 0, + "seconds": 0.5183203970082104, + "log_sha256": "82bb6efe5540ae5d0a671c16200ef54296403eba6ec03f0f6e21bb3eac13bad7" + }, + { + "name": "complex-emit-local", + "exit_code": 0, + "seconds": 0.4616203219629824, + "log_sha256": "bafe3eefa5f0be32c9d9e6ef0fca3a74d9a6f71dbd0e125fe3c84a577227c62f" + }, + { + "name": "complex-independent-local", + "exit_code": 0, + "seconds": 1.6966129310894758, + "log_sha256": "b694b4b22abb9d1de9a70bbbdf9e9b0e030ec00a7eddc264e4c18376dd859cee" + }, + { + "name": "complex-normalized-wrappers", + "exit_code": 0, + "seconds": 0.8561742911115289, + "log_sha256": "4638570164b60b9d83753f6fd3a6359713fc062971e022bdea919f8d479b298a" + }, + { + "name": "complex-every-local-phase", + "exit_code": 0, + "seconds": 94.79280381207354, + "log_sha256": "258ac9619e3b61105229f298db5d5d8691104704fa4fa3dad8d9196dfe0c7756" + }, + { + "name": "complex-bind-retained-data", + "exit_code": 0, + "seconds": 0.9399486819747835, + "log_sha256": "afcbc7484189a58a7eb441101f523d91da2346ef69e4eb80fbf27cf0da775432" + }, + { + "name": "complex-emit-whole-owners", + "exit_code": 0, + "seconds": 2.0066600861027837, + "log_sha256": "b91e4aad1f3cc48a5de15bb5beb4a5578573825b6265da6922419c1195c384b6" + }, + { + "name": "complex-independent-owners-and-controls", + "exit_code": 0, + "seconds": 4.658715368015692, + "log_sha256": "bcbf4f82bfaf42c9b6f9c43b44132f4cffe6d15d24fce0e02db34b3e87af476f" + }, + { + "name": "complex-finite-invoice", + "exit_code": 0, + "seconds": 0.43338969396427274, + "log_sha256": "8d11e3a9a6e87f3b5a1b2828ce567e428cc8f23caf38710b2f4f2052d025e854" + }, + { + "name": "both-moments-and-outer-assembly", + "exit_code": 0, + "seconds": 0.21600864292122424, + "log_sha256": "ad5788bc94b378964df5786e653d22e6b4040be7e468149a233a26f0d3b64f89" + } +] diff --git a/research/static44-selective-validation/linux-python312/assembly/EXACT-ASSEMBLY.json b/research/static44-selective-validation/linux-python312/assembly/EXACT-ASSEMBLY.json new file mode 100644 index 0000000000..a0f66a8c8f --- /dev/null +++ b/research/static44-selective-validation/linux-python312/assembly/EXACT-ASSEMBLY.json @@ -0,0 +1,197 @@ +{ + "status": "PASS_FRESH_SELECTIVE_BIT_AND_STATIC44_COMPLEX", + "complex_lower": "31864911873350496687/20000000000000000000000", + "complex_decimal": "0.001593245593667524834350", + "next_b_rejected": "1593245593667524834351/1000000000000000000000000", + "exact_moment_receipts": [ + { + "endpoint": "31864911873350496687/20000000000000000000000", + "accept": true, + "mercator": [ + "-5828437493451975866073536608490779414606081/13479973333575319897333507543509815336818572211270286240551805124608", + "-22767333958796780726849752376917107088305/52656145834278593348959013841835216159447547700274555627155488768" + ], + "base_two": [ + "-4323783538606397171921/10000000000000000000000000000000000000000000000", + "-2161886769303198585893/5000000000000000000000000000000000000000000000" + ] + }, + { + "endpoint": "1593245593667524834351/1000000000000000000000000", + "accept": false, + "mercator": [ + "71366765605997290665181971332725038784158651/26959946667150639794667015087019630673637144422540572481103610249216", + "71366765605997290665181971332725038784158653/26959946667150639794667015087019630673637144422540572481103610249216" + ], + "base_two": [ + "26471396461755964636181/10000000000000000000000000000000000000000000000", + "26471406461755964636317/10000000000000000000000000000000000000000000000" + ] + } + ], + "bit_lower": "1591129919227630331373/1000000000000000000000000", + "bit_decimal": "0.001591129919227630331373", + "bit_exact_moment_receipts": [ + { + "endpoint": "1591129919227630331373/1000000000000000000000000", + "accept": true, + "mercator": [ + "-1052793423823053172190430053228514309970581/1684996666696914987166688442938726917102321526408785780068975640576", + "-8422347390584425377523440425828114479764647/13479973333575319897333507543509815336818572211270286240551805124608" + ], + "base_two": [ + "-624804855575928079741/1000000000000000000000000000000000000000000000", + "-6248038555759280797311/10000000000000000000000000000000000000000000000" + ] + }, + { + "endpoint": "795564959613815165687/500000000000000000000000", + "accept": false, + "mercator": [ + "34713501129766560866906385872276824186945225/13479973333575319897333507543509815336818572211270286240551805124608", + "17356750564883280433453192936138412093472613/6739986666787659948666753771754907668409286105635143120275902562304" + ], + "base_two": [ + "2575190144449705326857/1000000000000000000000000000000000000000000000", + "25751911444497053268669/10000000000000000000000000000000000000000000000" + ] + } + ], + "bit_result_sha256": "7746beb3112a4eb03de4489f32a51b1dead4c229b00fdb04324f5f6aa5493a49", + "complex_dependency": { + "source_pr": 541, + "commit": "6fd04b2e266b7915b69f96f27758cfce520aa40a", + "local_word": "static44", + "new_global_owners": true + }, + "bit_dependency": { + "pull_request": 510, + "commit": "64edee18af02aab0c1696b677a0287dd0146381b", + "changed_word": "preload60 plus response slicing and 10 selective frame changes", + "fresh_bit_receipt_sha256": "7746beb3112a4eb03de4489f32a51b1dead4c229b00fdb04324f5f6aa5493a49" + }, + "bit_prefix_bits": 192, + "bit_charged_two_level_coefficient_bits": 512, + "external_row_allowance": 20161, + "kappa": "397150561665803/250000000000000000", + "kappa_decimal": "0.001588602246663212", + "binding_component": "bit", + "improvements": { + "PR535": { + "baseline": "1584931111785787/1000000000000000000", + "relative_gain": "3671134877425/1584931111785787", + "percent_display": "0.23162741" + }, + "PR541": { + "baseline": "396803113660173/250000000000000000", + "relative_gain": "31586182330/36073010332743", + "percent_display": "0.08756181" + }, + "PR542_candidate": { + "baseline": "793733736881443/500000000000000000", + "relative_gain": "567386450163/793733736881443", + "percent_display": "0.07148322" + }, + "PR531": { + "baseline": "1517760977820331/1000000000000000000", + "relative_gain": "70841268842881/1517760977820331", + "percent_display": "4.66748519" + }, + "rejected_POST208_checkpoint": { + "baseline": "771820390859371/500000000000000000", + "relative_gain": "22480732472235/771820390859371", + "percent_display": "2.91268963" + }, + "PR533": { + "baseline": "381051987698311/250000000000000000", + "relative_gain": "16098573967492/381051987698311", + "percent_display": "4.22477103" + } + }, + "strict_outer_constraints": { + "bit_positive": "97114863234108295054753288264492227373059069228140622470432029091519486024423058229402478547669507024713486568115721328709852535000868921936653465064970066168493/61035156250000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "complex_above_bit": "129130520013093760554328923007772626940930771859377529567970908480513975576941770597521452330492975286513431884278671290147464999131078063346534935029933831507/61035156250000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "complex_below_one_over32": "593135088126649503313/20000000000000000000000", + "beta_positive": "1/1000000000000000000", + "beta_below_one": "999999999999999999/1000000000000000000", + "leaf_saving_above_bit": "129130520013093663310335168886383811633313584359377529567970908480513975576941770597521452330492975286513431884278671290147464999131078063346534935029933831507/61035156250000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "q_positive": "48557431617054147430261780898137818631776246349578083862156945317619120541779500023181753249411695282954264736388353639641439699384713132258474197531616111147593034935029933831507/30517578125000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "q_below_internal": "97114863234108295054753288264492227373059069228140622470432029091519486024423058229402478547669507024713486568115721328709852535000868921936653465064970066168493/30517578125000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "q_below_leaf": "64565260006546928770030818551486960569945056671916137843054682380879458220499976818246750588304717045735263611646360358560300615286867741525802468383888852406965064970066168493/30517578125000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "c_positive": "48557431617054155059656312148137818631776246349578083862156945317619120541779500023181753249411695282954264736388353639641439699384713132258474197531616111147593034935029933831507/30517578125000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "c_below_one": "30469020693382945844940343687851862181368223753650421916137843054682380879458220499976818246750588304717045735263611646360358560300615286867741525802468383888852406965064970066168493/30517578125000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "q_below_reservations": "1/4000000000000000000", + "lambda_above_tau": "97114863234108295054753288264492227373059069228140622470432029091519486024423058229402478547669507024713486568115721328709852535000868921936653465064970066168493/61035156250000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "lambda_above_sigma": "129130520013093857669192157116067681694219036351604902627040136621136446008970862117007476753551204688991979553785696003634033114852406773199069935898855768160465064970066168493/61035156250000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "lambda_above_internal": "97114863234108295054753288264492227373059069228140622470432029091519486024423058229402478547669507024713486568115721328709852535000868921936653465064970066168493/61035156250000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "lambda_prime_above_lambda": "97114863234108295054753288264492227373059069228140622470432029091519486024423058229402478547669507024713486568115721328709852535000868921936653465064970066168493/61035156250000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "compact_leaf": "64565260006546928770030818551486960569945056671916137843054682380879458220499976818246750588304717045735263611646360358560300615286867741525802468383888852406965064970066168493/30517578125000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "compact_reservations": "1/4000000000000000000", + "lambda_prime_below_one": "48557431617054147430261780898137818631776246349578083862156945317619120541779500023181753249411695282954264736388353639641439699384713132258474197531616111147593034935029933831507/30517578125000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "epsilon_positive": "30517578124999999969482421875000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000/30566135556617054147430261780898137818631776246349578083862156945317619120541779500023181753249411695282954264736388353639641439699384713132258474197531616111147593034935029933831507", + "epsilon_below_one": "48557431617054177947839905898137818631776246349578083862156945317619120541779500023181753249411695282954264736388353639641439699384713132258474197531616111147593034935029933831507/30566135556617054147430261780898137818631776246349578083862156945317619120541779500023181753249411695282954264736388353639641439699384713132258474197531616111147593034935029933831507", + "guard_width": "48557431617054177947839905898137818631776246349578083862156945317619120541779500023181753249411695282954264736388353639641439699384713132258474197531616111147593034935029933831507/30566135556617054147430261780898137818631776246349578083862156945317619120541779500023181753249411695282954264736388353639641439699384713132258474197531616111147593034935029933831507", + "K_geometry": "22936741025367054155059656312148137818631776246349578083862156945317619120541779500023181753249411695282954264736388353639641439699384713132258474197531616111147593034935029933831507/30566135556617054147430261780898137818631776246349578083862156945317619120541779500023181753249411695282954264736388353639641439699384713132258474197531616111147593034935029933831507000000000000000000", + "K_dominates_log": "1566368761840456613261254210680118179745804329078718233238087063485194731600727571147181700246199847089435854418601882473779837516011596536033370907964612222229639916239155570448837582740969876403/986004372794098520884847154222520574794573427301599293027811514365084487759412241936231669459658441783321105314077043665794885151593055262330918522501019874553148162417259030123597000000000000000000", + "record_suffix": "48557431617054177947839905898137818631776246349578083862156945317619120541779500023181753249411695282954264736388353639641439699384713132258474197531616111147593034935029933831507/30566135556617054147430261780898137818631776246349578083862156945317619120541779500023181753249411695282954264736388353639641439699384713132258474197531616111147593034935029933831507", + "phase_local": "388459452936433393016583690568048401623948189898486852265479316191374880472079054867834905453514062240452364641695133834177252858689351418426353880868215756922270081948623359504462965064970066168493/244529084452936433179442094247185102549054209970796624670897255562540952964334236000185454025995293562263634117891106829117131517595077705058067793580252928889180744279480239470652056000000000000000000", + "phase_boundary": "77691890587286654150408292819966362380580213261187115547674866158612509004690254719471684657279212429545070328809670540472038782627187371972119016665872645577674658364431782982818165064970066168493/48905816890587286635888418849437020509810841994159324934179451112508190592866847200037090805199058712452726823578221365823426303519015541011613558716050585777836148855896047894130411200000000000000000", + "gamma_sublinear": "1/2000000000000000000", + "cell_above_band": "61035156249999999908398708193382945852569738219101862181368223753650421916137843054682380879458220499976818246750588304717045735263611646360358560300615286867741525802468383888852406965064970066168493/122264542226468216589721047123592551274527104985398312335448627781270476482167118000092727012997646781131817058945553414558565758797538852529033896790126464444590372139740119735326028000000000000000000", + "prime_interval_packing": "48557431617054177947839905898137818631776246349578083862156945317619120541779500023181753249411695282954264736388353639641439699384713132258474197531616111147593034935029933831507/30566135556617054147430261780898137818631776246349578083862156945317619120541779500023181753249411695282954264736388353639641439699384713132258474197531616111147593034935029933831507", + "alpha_positive": "97114863234108325329544255179221489833290711801018349092537644285660157221402054728744385957043890542726776223365011996328614662381072624875508695678519090036711872338443756515420965064970066168493/61132271113234108294860523561796275637263552492699156167724313890635238241083559000046363506498823390565908529472776707279282879398769426264516948395063232222295186069870059867663014000000000000000000", + "alpha_below_one": "61035156249999999969530979306617054147430261780898137818631776246349578083862156945317619120541779500023181753249411695282954264736388353639641439699384713132258474197531616111147593034935029933831507/61132271113234108294860523561796275637263552492699156167724313890635238241083559000046363506498823390565908529472776707279282879398769426264516948395063232222295186069870059867663014000000000000000000", + "alpha_below_one_fourth": "15185952915074418748385586635269847419482597411373770692838540828373149403049487695282846490667661957098750356144829164823492105187311283941253728403087288965537084645129071210400332534935029933831507/61132271113234108294860523561796275637263552492699156167724313890635238241083559000046363506498823390565908529472776707279282879398769426264516948395063232222295186069870059867663014000000000000000000", + "delta_positive": "1/8000000000000000000", + "delta_below_one_eighth": "999999999999999999/8000000000000000000", + "short_record_fallback": "1859676723156780949548791488148496333714856382687503144997988410152821503283022486623463351310287706357468226582106334075735340729630920298467155998884584142970559389772693113937178760956953548914849539665048881838914778235352987011587651750977455215900248058528360660394630647198949683674645989900177246340660241307067590648529928358689465891049/1865608859656802621303116563775521107094224624410984990470102352619483588900255096436961776931726788042172501509789328225075771466026898994888822888032935553658910707698671260609833190917968750000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "small_field_exposure": "1/1000000000000000000", + "artificial_boundary": "1712092050623491465771375785647331982834724465109067410823073373239376357966260358837436489569587686998178618202877089718785914934969786701383466667740177570510221376828436764098659227104805089801494521/244529084452936433179442094247185102549054209970796624670897255562540952964334236000185454025995293562263634117891106829117131517595077705058067793580252928889180744279480239470652056000000000000000000", + "literal_scalar_guard": "1", + "row_product_gap": "23971789/25", + "balanced_prefix_above_kappa": "9418138366797352389554911812544671819307271787514932165697874073890108853749591021912178261789165212459824228360212385783413148589000753232736980211204482942835664926380439754144879/7641533889154263536857565445224534454657944061587394520965539236329404780135444875005795438312352923820738566184097088409910359924846178283064618549382904027786898258733757483457876750000000000000000", + "coordinate_movement_above_kappa": "154276889918109507878288264492227373059069228140622470432029091519486024423058229402478547669507024713486568115721328709852535000868921936653465064970066168493/61035156250000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "compact_phase_layer_above_kappa": "7106417910572355410789385469280549458597310903710150578929339350242816294456584587625531293907249154556342648704461189494011154656618299798689446647286315660195066670586729082748009/30566135556617054147430261780898137818631776246349578083862156945317619120541779500023181753249411695282954264736388353639641439699384713132258474197531616111147593034935029933831507000000000000000000", + "bulk_exposure_above_kappa": "154276889918109507878288264492227373059069228140622470432029091519486024423058229402478547669507024713486568115721328709852535000868921936653465064970066168493/61035156250000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "Gaussian_arithmetic_above_kappa": "148549749954430005728605869096938809124673815968729938883021185637895387717278015201073795611006228322299603983844854576871013556351100537786290995770885373615003312469498922463478593/244529084452936433179442094247185102549054209970796624670897255562540952964334236000185454025995293562263634117891106829117131517595077705058067793580252928889180744279480239470652056000000000000000000", + "scalar_work_above_kappa": "270814292180898222318326916220531360399200920954128251218469813419165864199445133201166522624003875103431421042790407991429579315148639390315324892561011838059593684609239042198804621/244529084452936433179442094247185102549054209970796624670897255562540952964334236000185454025995293562263634117891106829117131517595077705058067793580252928889180744279480239470652056000000000000000000", + "dimension_above_kappa": "7617255173345736457301783859072817934896967750957277298341732551185527385562429198884313415437238098091439695605068124049913868435366207500348530039617849204950081952470725459377788176380439754144879/7641533889154263536857565445224534454657944061587394520965539236329404780135444875005795438312352923820738566184097088409910359924846178283064618549382904027786898258733757483457876750000000000000000" + }, + "outer_controls": [ + "next_grid", + "zero_eta", + "zero_beta", + "unit_beta" + ], + "bootstrap": [ + { + "gap": "154406232642551417669126788918532907962649/62500000000000000000000000000000000000000000000", + "cutoff_log2": "5898381815166" + }, + { + "gap": "61420094118196383762884744721061767565213025436763892317231107/15625000000000000000000000000000000000000000000000000000000000000000000", + "cutoff_log2": "2329815861224026216" + }, + { + "gap": "24431837348309816224939047511319055633883286559873138551195470856171543707979097201/3906250000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "cutoff_log2": "920259507998458524076819" + }, + { + "gap": "9718556846649699977128680424506384512350203988555922906008945835809345501979409407161080053828256922443/976562500000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "cutoff_log2": "363495491706643690361695805628" + }, + { + "gap": "3865871642604717715360887432554977887558528127005097025208759856963703189652298212528514492818300199838066398137463248445449/244140625000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "cutoff_log2": "143577948766247350557796599645617695" + }, + { + "gap": "1537776008610507772626940930771859377529567970908480513975576941770597521452330492975286513431884278671290147464999131078063346534935029933831507/61035156250000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "cutoff_log2": "56712195452921956632520177956592343117305" + } + ], + "complex_template_sha256": "7460157d9add0bf66616009d32e25f58f8b1a30edb9f13eb730bf532b61dbf8b", + "owner_audit_sha256": "13ce120714ab6e1bd73d79177a3a987284559f86831ade897ed0a5c0af11f93d", + "invoice_sha256": "8d11e3a9a6e87f3b5a1b2828ce567e428cc8f23caf38710b2f4f2052d025e854", + "bit_scope": "The changed bit word is freshly reconstructed, replayed and admitted by the native local and hosted-global checkers. The static44 complex supplier is freshly rebuilt and admitted separately.", + "scope": "Conditional finite witness under the retained all-size compiler, common-label/mutable-basis, whole-call hosting, restored-work, precision/tape and analytic-transfer contracts. Fresh changed-bit admission and complex admission and finite invoices are separately hash-bound. The unchanged complex data controller remains a cited dependency. No unconditional theorem is claimed." +} diff --git a/research/static44-selective-validation/linux-python312/bit-global/INVOICE.json b/research/static44-selective-validation/linux-python312/bit-global/INVOICE.json new file mode 100644 index 0000000000..74e3594ab8 --- /dev/null +++ b/research/static44-selective-validation/linux-python312/bit-global/INVOICE.json @@ -0,0 +1,49 @@ +{ + "status": "PASS_NINE_STAGE_WHOLE_HOSTED_BIT_PRICE_AND_CITED_ASSEMBLY", + "R": 480, + "stages": 9, + "replicas": 32, + "bit_lower": "1591129919227630331373/1000000000000000000000000", + "bit_lower_decimal": "0.001591129919227630331373", + "next_grid_point_rejected": "795564959613815165687/500000000000000000000000", + "bit": { + "live": 30720, + "physical": 30729, + "maxchild": 8, + "rank_mass": 1956096, + "hosted_residuals": 138240, + "bank_assignments": 0, + "prefix_bits": 191, + "charged_prefix_bits": 192, + "coefficient_bits": 191, + "two_level_coefficient_bits": 421, + "charged_two_level_coefficient_bits": 512, + "row_coefficient": 18355, + "halving_depth": 2 + }, + "bit_profile": { + "1": 365760, + "2": 395520, + "3": 14400, + "4": 64320, + "6": 52800, + "7": 23040, + "8": 2592 + }, + "emitted_program_sha256": "4d8c9875292c2134832ec46534ad160b4503f3c967cf1bee2d6a5cb75c2d102d", + "kappa": { + "pr484": { + "complex_lower": "663394767670133/500000000000000000", + "kappa": "662515748707749/500000000000000000", + "kappa_decimal": "0.001325031497415498", + "binding_component": "complex", + "strict_outer_constraints": 47, + "outer_controls": [ + "next_grid", + "zero_eta", + "zero_beta", + "unit_beta" + ] + } + } +} diff --git a/research/static44-selective-validation/linux-python312/bit-global/RESOURCE-RESULT.json b/research/static44-selective-validation/linux-python312/bit-global/RESOURCE-RESULT.json new file mode 100644 index 0000000000..e01935b89a --- /dev/null +++ b/research/static44-selective-validation/linux-python312/bit-global/RESOURCE-RESULT.json @@ -0,0 +1,63 @@ +{ + "status": "PASS_CHANGED_TRACE_SLICE_NINE_STAGE_PHYSICAL_CONTROLLER", + "stages": [ + { + "name": "01-global", + "seconds": 20.17004895210266 + }, + { + "name": "02-adapt", + "seconds": 0.013932466506958008 + }, + { + "name": "03-parent-audit", + "seconds": 13.032644271850586 + }, + { + "name": "04-host", + "seconds": 20.149041175842285 + }, + { + "name": "05-host-audit", + "seconds": 27.86565852165222 + }, + { + "name": "06-invoice", + "seconds": 0.12231111526489258 + } + ], + "profile": { + "1": 365760, + "2": 395520, + "3": 14400, + "4": 64320, + "6": 52800, + "7": 23040, + "8": 2592 + }, + "live": 30720, + "deficit": 9984, + "template_sha256": "e24da8e68fed26ea2045632b43c20c7e73be4b49f803565097ad7575074f13b2", + "emitted_program_sha256": "4d8c9875292c2134832ec46534ad160b4503f3c967cf1bee2d6a5cb75c2d102d", + "emitted_events": 10497600, + "parent_controls": 17, + "hosting_controls": 16, + "global_prefix_bits": 191, + "bit_invoice": { + "live": 30720, + "physical": 30729, + "maxchild": 8, + "rank_mass": 1956096, + "hosted_residuals": 138240, + "bank_assignments": 0, + "prefix_bits": 191, + "charged_prefix_bits": 192, + "coefficient_bits": 191, + "two_level_coefficient_bits": 421, + "charged_two_level_coefficient_bits": 512, + "row_coefficient": 18355, + "halving_depth": 2 + }, + "bit_lower": "1591129919227630331373/1000000000000000000000000", + "scope": "Changed nine-stage word, literal whole residual routing and parent/hosted audits. Strict scalar invoice and both moment engines passed; its old cited complex supplier is only a regression. Final outer assembly with the selected new complex supplier remains separate." +} diff --git a/research/static44-selective-validation/linux-python312/bit-native/NATIVE-REVIEW.json b/research/static44-selective-validation/linux-python312/bit-native/NATIVE-REVIEW.json new file mode 100644 index 0000000000..941615cc8c --- /dev/null +++ b/research/static44-selective-validation/linux-python312/bit-native/NATIVE-REVIEW.json @@ -0,0 +1,27 @@ +{ + "status": "PASS_NATIVE_TRACE_SLICE_LOCAL_FRAME_COLUMNS_PREFIX_AND_CONTROLS", + "word_sha256": "275447d211596b5a7bc1435bb1597cf70300679b27a127a78eb1efbf83506af0", + "checker_source_sha256": { + "legality_h.cpp": "6c1ef2b24e57781d6951c172a1024fc4300e6fd392c9d6672079a7806ab663b3", + "columns_h.cpp": "d1297f9052be4f2496e1ff2a77e4db2c0cdbd7d460d489b4c03e50bf317238ce", + "columns_k.cpp": "1c344d18fcd494eeca93e259f10cafae7705780e6592f6dcb35b34752dab9bc2", + "gram_frames.py": "223a5a07731fc315a90a3e48177796babc155c1d9985c7ae5017eff6af2a0608" + }, + "local_paid_profile": { + "1": 1270, + "2": 1320, + "3": 50, + "4": 170, + "6": 130, + "8": 9 + }, + "formal_columns_nine_stage": 1440, + "formal_columns_five_stage": 960, + "nine_stage_bridge_controls": 18, + "structural_record_controls": 6, + "mutable_source_controls": 3, + "payload_prefix_bits": 101, + "gram_frames_audit_passed": true, + "actual_checker_configuration": "HDIM8 NCOPY9 VPORTS120 RHELP480 KPAIRS4", + "scope": "Changed native scalar/frame/interface/Gram/prefix evidence. Global routing, full finite invoice and exact outer assembly are separate. Compiler source is unmodified." +} diff --git a/research/static44-selective-validation/linux-python312/bit-word/BUILD.json b/research/static44-selective-validation/linux-python312/bit-word/BUILD.json new file mode 100644 index 0000000000..a986511a96 --- /dev/null +++ b/research/static44-selective-validation/linux-python312/bit-word/BUILD.json @@ -0,0 +1,157 @@ +{ + "status": "PASS_EXACT_SLICE_AND_TEN_FROZEN_FRAME_MOVES", + "removed_gates": 227, + "moves": [ + { + "section": "A", + "index": 2503, + "delta": { + "1": 1, + "3": -1, + "4": -1, + "6": 1 + }, + "cost_interval": [ + "-41764279471825114450888335046521245831310110911057153009117/26959946667150639794667015087019630673637144422540572481103610249216", + "-41764279471825114450888335046521245831310110911057153009113/26959946667150639794667015087019630673637144422540572481103610249216" + ] + }, + { + "section": "A", + "index": 2494, + "delta": { + "1": 1, + "3": -1, + "4": -1, + "6": 1 + }, + "cost_interval": [ + "-41764279471825114450888335046521245831310110911057153009117/26959946667150639794667015087019630673637144422540572481103610249216", + "-41764279471825114450888335046521245831310110911057153009113/26959946667150639794667015087019630673637144422540572481103610249216" + ] + }, + { + "section": "A", + "index": 2464, + "delta": { + "1": 1, + "3": -1, + "4": -1, + "6": 1 + }, + "cost_interval": [ + "-41764279471825114450888335046521245831310110911057153009117/26959946667150639794667015087019630673637144422540572481103610249216", + "-41764279471825114450888335046521245831310110911057153009113/26959946667150639794667015087019630673637144422540572481103610249216" + ] + }, + { + "section": "A", + "index": 2455, + "delta": { + "1": 1, + "3": -1, + "4": -1, + "6": 1 + }, + "cost_interval": [ + "-41764279471825114450888335046521245831310110911057153009117/26959946667150639794667015087019630673637144422540572481103610249216", + "-41764279471825114450888335046521245831310110911057153009113/26959946667150639794667015087019630673637144422540572481103610249216" + ] + }, + { + "section": "A", + "index": 2427, + "delta": { + "1": 1, + "3": -1, + "4": -1, + "6": 1 + }, + "cost_interval": [ + "-41764279471825114450888335046521245831310110911057153009117/26959946667150639794667015087019630673637144422540572481103610249216", + "-41764279471825114450888335046521245831310110911057153009113/26959946667150639794667015087019630673637144422540572481103610249216" + ] + }, + { + "section": "A", + "index": 2418, + "delta": { + "1": 1, + "3": -1, + "4": -1, + "6": 1 + }, + "cost_interval": [ + "-41764279471825114450888335046521245831310110911057153009117/26959946667150639794667015087019630673637144422540572481103610249216", + "-41764279471825114450888335046521245831310110911057153009113/26959946667150639794667015087019630673637144422540572481103610249216" + ] + }, + { + "section": "A", + "index": 2390, + "delta": { + "1": 1, + "3": -1, + "4": -1, + "6": 1 + }, + "cost_interval": [ + "-41764279471825114450888335046521245831310110911057153009117/26959946667150639794667015087019630673637144422540572481103610249216", + "-41764279471825114450888335046521245831310110911057153009113/26959946667150639794667015087019630673637144422540572481103610249216" + ] + }, + { + "section": "A", + "index": 2360, + "delta": { + "1": 1, + "3": -1, + "4": -1, + "6": 1 + }, + "cost_interval": [ + "-41764279471825114450888335046521245831310110911057153009117/26959946667150639794667015087019630673637144422540572481103610249216", + "-41764279471825114450888335046521245831310110911057153009113/26959946667150639794667015087019630673637144422540572481103610249216" + ] + }, + { + "section": "A", + "index": 2331, + "delta": { + "1": 1, + "3": -1, + "4": -1, + "6": 1 + }, + "cost_interval": [ + "-41764279471825114450888335046521245831310110911057153009117/26959946667150639794667015087019630673637144422540572481103610249216", + "-41764279471825114450888335046521245831310110911057153009113/26959946667150639794667015087019630673637144422540572481103610249216" + ] + }, + { + "section": "A", + "index": 2270, + "delta": { + "1": 1, + "3": -1, + "4": -1, + "6": 1 + }, + "cost_interval": [ + "-41764279471825114450888335046521245831310110911057153009117/26959946667150639794667015087019630673637144422540572481103610249216", + "-41764279471825114450888335046521245831310110911057153009113/26959946667150639794667015087019630673637144422540572481103610249216" + ] + } + ], + "all_dirty_columns": 720, + "local_profile": { + "1": 1270, + "2": 1320, + "4": 170, + "3": 50, + "8": 9, + "6": 130 + }, + "word_sha256": "275447d211596b5a7bc1435bb1597cf70300679b27a127a78eb1efbf83506af0", + "source_sha256": "db5cd7ab49e2e58a2924a2a9e68ee69d8165b4d5c008b6f546577f4791019dca" +} diff --git a/research/static44-selective-validation/linux-python312/complex-audit/ASYNC-AUDIT.json b/research/static44-selective-validation/linux-python312/complex-audit/ASYNC-AUDIT.json new file mode 100644 index 0000000000..1ec741b9e3 --- /dev/null +++ b/research/static44-selective-validation/linux-python312/complex-audit/ASYNC-AUDIT.json @@ -0,0 +1,47 @@ +{ + "status": "PASS_INDEPENDENT_ASYNC_WHOLE_OWNER_CONTROLLER_PHASES_AND_SPECTATORS", + "template_sha256": "7460157d9add0bf66616009d32e25f58f8b1a30edb9f13eb730bf532b61dbf8b", + "complex_template_sha256": "7460157d9add0bf66616009d32e25f58f8b1a30edb9f13eb730bf532b61dbf8b", + "complex_live": 7168, + "complex_profile": { + "1": 158688, + "2": 52864, + "3": 15171, + "4": 20160, + "5": 4032, + "6": 4032, + "7": 208, + "8": 576, + "39": 1, + "48": 1660 + }, + "complex_hosted_residuals": 36288, + "physical": 7682, + "rank_mass": 520704, + "deficit": 2560, + "entering_helper_roles": 15264, + "cross_replica_helper_roles": 28194, + "one_owner_per_complete_invocation": true, + "helper_busy_family_window_checks": 36288, + "complete_invocations": 72, + "actual_orthogonal_73column_maps": 3024, + "actual_sigma_stream_sha256": "7a0ca623c4087a8db66c8b42f746ce5d08711cdb34db4cf7da155d6aa562ba38", + "all_actual_residual_and_spectator_charts": true, + "idle_remainders": 4240, + "mutations_rejected": [ + "alias two whole owners", + "helper on active data family", + "owner in private namespace", + "wrong residual width", + "wrong spectator coordinate", + "omit idle remainder", + "understate physical reserve" + ], + "mutation_controls_run": true, + "widths": { + "5": 56, + "8": 156, + "9": 292 + }, + "scope": "Independent exact asynchronous chronology, per-replica phase projection, owner/chart/paid-profile audit. Uses the new selected local program bound by fresh scalar, phase and residual-wrapper receipts; all-size compilation and complete coefficient invoice are separate inherited obligations." +} diff --git a/research/static44-selective-validation/linux-python312/complex-audit/OWNERS-AND-PROFILE.json b/research/static44-selective-validation/linux-python312/complex-audit/OWNERS-AND-PROFILE.json new file mode 100644 index 0000000000..7f4e0c1c23 --- /dev/null +++ b/research/static44-selective-validation/linux-python312/complex-audit/OWNERS-AND-PROFILE.json @@ -0,0 +1,40 @@ +{ + "status": "PASS_INDEPENDENT_ASYNC_OWNERS_AND_PROFILE", + "template_sha256": "7460157d9add0bf66616009d32e25f58f8b1a30edb9f13eb730bf532b61dbf8b", + "paid_profile": { + "1": 158688, + "2": 52864, + "3": 15171, + "4": 20160, + "5": 4032, + "6": 4032, + "7": 208, + "8": 576, + "39": 1, + "48": 1660 + }, + "live": 7168, + "physical": 7682, + "rank_mass": 520704, + "deficit": 2560, + "hosted_residuals": 36288, + "banked_residuals": 0, + "all_live_owners_per_call_distinct": true, + "owners_per_call": 728, + "actual_helper_owner_charts": 36288, + "actual_73column_sigmas": 3024, + "cross_replica_helper_roles": 28194, + "explicit_idle_remainder_children": 4240, + "source_idle_children_charged": 16128, + "source_artifacts": { + "split-centres/CANONICAL-WORD.json.gz": "9fc4a1445b2dc49d6331ecc7638a95289feb0b1cf94d8ee74daa285a234ccd49", + "split-centres/LOCAL-PROGRAMS.json.gz": "c88fe1770b76cf0dc1c3a90a95baefd898e95012248984c69bf0ca87cf3fafba", + "split-centres/LOCAL-CHECKS.json": "87d911fbf6c9ba23e1a0fc385b9b3168d894320c86b2c04219303afafd3cb223", + "split-centres/RESIDUAL-ADAPTERS.json": "e4fce8ca73ad20a86711837dd6fe1efad5a335689352791a635969e4d1be4391", + "split-centres/CLIFFORD-RECIPES.json": "9ca2571e17012130b8b3359339f235df9c995dd3b92f86c44e45a2c2da77ac31", + "split-centres/CLIFFORD-REVIEW.json": "ea188b179ffbf28376a03ee562d1e9ff1fed35a508613c5f8bf4f3c7841c7995", + "split-centres/INDEPENDENT-LOCAL-REPLAY.json": "3bc0417372614ad75dce16b77c628878361bdd16134db1aa7e20ca0a32b3e86e", + "work/complex-nine-native/DATA-PHASES.json": "c5916ff312678f12aba403847643fbbc29f643acec60bdf836fa56cd3e8251fa" + }, + "controller_audit_sha256": "bcbf4f82bfaf42c9b6f9c43b44132f4cffe6d15d24fce0e02db34b3e87af476f" +} diff --git a/research/static44-selective-validation/linux-python312/complex-audit/PREFIX-AND-INVOICE.json b/research/static44-selective-validation/linux-python312/complex-audit/PREFIX-AND-INVOICE.json new file mode 100644 index 0000000000..da51b55fda --- /dev/null +++ b/research/static44-selective-validation/linux-python312/complex-audit/PREFIX-AND-INVOICE.json @@ -0,0 +1,106 @@ +{ + "status": "PASS_INDEPENDENT_ASYNC_SCALAR_PREFIX_AND_FINITE_INVOICE", + "template_sha256": "7460157d9add0bf66616009d32e25f58f8b1a30edb9f13eb730bf532b61dbf8b", + "parent_template_sha256": "9da5ae54fa032b2731c08cc006101a908236a0100841559ee709d85283c388e3", + "owner_audit_sha256": "13ce120714ab6e1bd73d79177a3a987284559f86831ade897ed0a5c0af11f93d", + "controller_audit_sha256": "bcbf4f82bfaf42c9b6f9c43b44132f4cffe6d15d24fce0e02db34b3e87af476f", + "independent_local_replay_sha256": "3bc0417372614ad75dce16b77c628878361bdd16134db1aa7e20ca0a32b3e86e", + "canonical_word_sha256": "9fc4a1445b2dc49d6331ecc7638a95289feb0b1cf94d8ee74daa285a234ccd49", + "local_programs_sha256": "c88fe1770b76cf0dc1c3a90a95baefd898e95012248984c69bf0ca87cf3fafba", + "local_checks_sha256": "87d911fbf6c9ba23e1a0fc385b9b3168d894320c86b2c04219303afafd3cb223", + "global_prefix_bits": 225, + "charged_prefix_bits": 512, + "complete_invocation_sweeps": 72, + "bridge_sweeps": 72, + "row_prefix_extra": 1024, + "local": { + "backward": { + "events": 22111, + "macros": 16918, + "real_component_primitives": 168324, + "prefix_l1": "1014379822882", + "prefix_bits": 40, + "coefficient_work_primitive_count": 83390, + "all_exact_columns": 728, + "dirty_helper_columns": 504, + "all_dirty_helper_columns_restored": true, + "private_centres_and_coefficient_work_cleared": true, + "pre_wrappers": 212, + "post_wrappers": 212, + "endpoint_evidence": "Hash-bound fresh INDEPENDENT-LOCAL-REPLAY.json" + }, + "forward": { + "events": 22111, + "macros": 16918, + "real_component_primitives": 168276, + "prefix_l1": "86491024246", + "prefix_bits": 37, + "coefficient_work_primitive_count": 83358, + "all_exact_columns": 728, + "dirty_helper_columns": 504, + "all_dirty_helper_columns_restored": true, + "private_centres_and_coefficient_work_cleared": true, + "pre_wrappers": 212, + "post_wrappers": 212, + "endpoint_evidence": "Hash-bound fresh INDEPENDENT-LOCAL-REPLAY.json" + } + }, + "helpers": 504, + "centres": 8, + "live": 7168, + "physical": 7682, + "physical_stock_identity": { + "data_and_owner_families": 7168, + "local_helpers": 504, + "private_centres": 8, + "coefficient_work": 2 + }, + "entering_helpers": 212, + "entrance_rank": 380, + "width_inventory": { + "5": 56, + "8": 156, + "9": 292 + }, + "local_adapters": 343392, + "local_primitive_bound": 8905643676036, + "wrapper_elementary_factors_charged": 4396032, + "factors_per_wrapper": 144, + "compiler": 25934336, + "unhosted_pervertex": 1593316402662104, + "hosted_rebased_pervertex": 1593316402362728, + "conservative_pervertex_used": 3109608246274904, + "retained_prior_overcharge": { + "sha256": "bb43ef04791037a37d2596c395e81191991fde6581326118995cf4318ee472a3", + "previous_pervertex_allowance": 1516291843612800, + "added_complete_new_pervertex": 1593316402662104, + "policy": "Retain old allowance and add the entire fresh recount." + }, + "finite": { + "physical_stock_bits": 2641, + "router_bits": 7985, + "literal_bits": 35282, + "physical_row_coefficient": 16467, + "retained_row_coefficient": 20161, + "required_C0_bits": 200012, + "halving_integer_inequality": [ + 5329, + 4608 + ], + "G_exponent": 30000, + "E_exponent": 100000, + "C0_exponent": 210000 + }, + "strict_checks": { + "local_primitive_bound": true, + "logical": true, + "router": true, + "literal": true, + "mass": true, + "precision": true, + "tape": true, + "row": true, + "halving": true + }, + "scope": "Fresh emitted primitive/Horner, prefix, wrapper and finite recount, using the hash-bound independent local all-column/frame replay and actual whole-owner audit. No old INTEGRATION receipt is used to certify the changed word. The inherited all-size compiler, precision/tape and analytic-transfer contracts remain conditional. Retained payload 512 and physical row allowance 20161 are unchanged." +} diff --git a/research/static44-selective-validation/linux-python312/complex-local/CLIFFORD-REVIEW.json b/research/static44-selective-validation/linux-python312/complex-local/CLIFFORD-REVIEW.json new file mode 100644 index 0000000000..da74e9b9ec --- /dev/null +++ b/research/static44-selective-validation/linux-python312/complex-local/CLIFFORD-REVIEW.json @@ -0,0 +1,20 @@ +{ + "status": "PASS_NEW_WORD_EXACT_LOCAL_PHASE_RECIPES", + "canonical_word_sha256": "9fc4a1445b2dc49d6331ecc7638a95289feb0b1cf94d8ee74daa285a234ccd49", + "frames": 999, + "directed_edges": 2929, + "ranks": { + "1": 1751, + "2": 670, + "8": 16, + "3": 142, + "4": 280, + "5": 14, + "6": 56 + }, + "endpoint_adapters": 224, + "all_child_equalities_include_global_phase": true, + "recipe_sha256": "9ca2571e17012130b8b3359339f235df9c995dd3b92f86c44e45a2c2da77ac31", + "seconds": 94.75522270007059, + "scope": "Every local frame and center transition. Expanded scalar-interface integration and global emitted program are separate obligations." +} diff --git a/research/static44-selective-validation/linux-python312/complex-local/INDEPENDENT-LOCAL-REPLAY.json b/research/static44-selective-validation/linux-python312/complex-local/INDEPENDENT-LOCAL-REPLAY.json new file mode 100644 index 0000000000..19094a76ca --- /dev/null +++ b/research/static44-selective-validation/linux-python312/complex-local/INDEPENDENT-LOCAL-REPLAY.json @@ -0,0 +1,58 @@ +{ + "status": "PASS_INDEPENDENT_LOCAL_SCALAR_FRAME_AND_WRAPPER_REPLAY", + "canonical_word_sha256": "9fc4a1445b2dc49d6331ecc7638a95289feb0b1cf94d8ee74daa285a234ccd49", + "local_programs_sha256": "c88fe1770b76cf0dc1c3a90a95baefd898e95012248984c69bf0ca87cf3fafba", + "v": 112, + "helpers": 504, + "local": { + "forward": { + "all_exact_columns": 728, + "prefix_l1_upper": "86491024246", + "prefix_bits_upper": 37, + "charged_payload_bits": 192, + "private_work_erased": true + }, + "backward": { + "all_exact_columns": 728, + "prefix_l1_upper": "1014379822882", + "prefix_bits_upper": 40, + "charged_payload_bits": 192, + "private_work_erased": true + } + }, + "paid_profiles": { + "forward": { + "1": 2204, + "4": 280, + "8": 8, + "3": 184, + "2": 728, + "6": 56, + "5": 56 + }, + "backward": { + "1": 2204, + "4": 280, + "8": 8, + "3": 184, + "2": 728, + "6": 56, + "5": 56 + } + }, + "entering_helpers": 212, + "negative_controls_rejected": [ + "wrong_scale", + "missing_center", + "wrong_common_frame", + "wrong_child_rank", + "missing_pre_wrapper", + "missing_post_wrapper", + "wrapper_with_wrong_frame", + "wrapper_in_wrong_phase", + "wrapper_on_a_data_register", + "wrapper_on_a_target_register", + "wrapper_on_a_centre_register" + ], + "scope": "Literal forward and inverse-transpose replay on every arbitrary data/helper column, physical frame incidence, ordered paid wrappers, cleared private work and prefix coefficients. Global hosting and outer exponent are separate." +} diff --git a/research/static44-selective-validation/linux-python312/complex-local/LEMMA-A.json b/research/static44-selective-validation/linux-python312/complex-local/LEMMA-A.json new file mode 100644 index 0000000000..4701120c11 --- /dev/null +++ b/research/static44-selective-validation/linux-python312/complex-local/LEMMA-A.json @@ -0,0 +1,287 @@ +{ + "status": "PASS_RESIDUAL_WRAPPERS_ARE_EXACT", + "frames": 23, + "wrappers_reject": [ + "wrong global phase", + "wrong translation", + "wrong quadratic form", + "sides swapped", + "wrong width" + ], + "all_even_weight": true, + "all_totally_isotropic": false, + "detail": [ + { + "frame": 2, + "entrance_rank": 1, + "residual_width": 8, + "vectors": [ + 75 + ], + "all_even_weight": true, + "totally_isotropic": true + }, + { + "frame": 3, + "entrance_rank": 1, + "residual_width": 8, + "vectors": [ + 102 + ], + "all_even_weight": true, + "totally_isotropic": true + }, + { + "frame": 4, + "entrance_rank": 1, + "residual_width": 8, + "vectors": [ + 120 + ], + "all_even_weight": true, + "totally_isotropic": true + }, + { + "frame": 5, + "entrance_rank": 1, + "residual_width": 8, + "vectors": [ + 85 + ], + "all_even_weight": true, + "totally_isotropic": true + }, + { + "frame": 6, + "entrance_rank": 1, + "residual_width": 8, + "vectors": [ + 459 + ], + "all_even_weight": true, + "totally_isotropic": true + }, + { + "frame": 7, + "entrance_rank": 1, + "residual_width": 8, + "vectors": [ + 486 + ], + "all_even_weight": true, + "totally_isotropic": true + }, + { + "frame": 422, + "entrance_rank": 1, + "residual_width": 8, + "vectors": [ + 45 + ], + "all_even_weight": true, + "totally_isotropic": true + }, + { + "frame": 423, + "entrance_rank": 1, + "residual_width": 8, + "vectors": [ + 51 + ], + "all_even_weight": true, + "totally_isotropic": true + }, + { + "frame": 424, + "entrance_rank": 1, + "residual_width": 8, + "vectors": [ + 30 + ], + "all_even_weight": true, + "totally_isotropic": true + }, + { + "frame": 425, + "entrance_rank": 4, + "residual_width": 5, + "vectors": [ + 413, + 72, + 48, + 3 + ], + "all_even_weight": true, + "totally_isotropic": false + }, + { + "frame": 426, + "entrance_rank": 4, + "residual_width": 5, + "vectors": [ + 407, + 66, + 36, + 9 + ], + "all_even_weight": true, + "totally_isotropic": false + }, + { + "frame": 427, + "entrance_rank": 4, + "residual_width": 5, + "vectors": [ + 455, + 33, + 18, + 12 + ], + "all_even_weight": true, + "totally_isotropic": false + }, + { + "frame": 428, + "entrance_rank": 4, + "residual_width": 5, + "vectors": [ + 258, + 130, + 85, + 45 + ], + "all_even_weight": true, + "totally_isotropic": false + }, + { + "frame": 429, + "entrance_rank": 4, + "residual_width": 5, + "vectors": [ + 264, + 136, + 85, + 51 + ], + "all_even_weight": true, + "totally_isotropic": false + }, + { + "frame": 430, + "entrance_rank": 4, + "residual_width": 5, + "vectors": [ + 427, + 96, + 24, + 6 + ], + "all_even_weight": true, + "totally_isotropic": false + }, + { + "frame": 431, + "entrance_rank": 4, + "residual_width": 5, + "vectors": [ + 288, + 160, + 75, + 30 + ], + "all_even_weight": true, + "totally_isotropic": false + }, + { + "frame": 432, + "entrance_rank": 4, + "residual_width": 5, + "vectors": [ + 423, + 65, + 20, + 10 + ], + "all_even_weight": true, + "totally_isotropic": false + }, + { + "frame": 433, + "entrance_rank": 4, + "residual_width": 5, + "vectors": [ + 257, + 129, + 102, + 30 + ], + "all_even_weight": true, + "totally_isotropic": false + }, + { + "frame": 434, + "entrance_rank": 4, + "residual_width": 5, + "vectors": [ + 399, + 68, + 34, + 17 + ], + "all_even_weight": true, + "totally_isotropic": false + }, + { + "frame": 435, + "entrance_rank": 4, + "residual_width": 5, + "vectors": [ + 260, + 132, + 75, + 51 + ], + "all_even_weight": true, + "totally_isotropic": false + }, + { + "frame": 436, + "entrance_rank": 4, + "residual_width": 5, + "vectors": [ + 411, + 80, + 40, + 5 + ], + "all_even_weight": true, + "totally_isotropic": false + }, + { + "frame": 437, + "entrance_rank": 4, + "residual_width": 5, + "vectors": [ + 272, + 144, + 75, + 45 + ], + "all_even_weight": true, + "totally_isotropic": false + }, + { + "frame": 438, + "entrance_rank": 4, + "residual_width": 5, + "vectors": [ + 320, + 192, + 45, + 30 + ], + "all_even_weight": true, + "totally_isotropic": false + } + ] +} diff --git a/research/static44-selective-validation/linux-python312/static44/SCALAR-AUDIT.json b/research/static44-selective-validation/linux-python312/static44/SCALAR-AUDIT.json new file mode 100644 index 0000000000..8867c80263 --- /dev/null +++ b/research/static44-selective-validation/linux-python312/static44/SCALAR-AUDIT.json @@ -0,0 +1,56 @@ +{ + "status": "PASS_EXACT_RATIONAL_FORWARD_AND_INVERSE_TRANSPOSE", + "word_sha256": "412734181cf76b0974b3127f5e1c2a3c374dd8d9aefa428b70c21b3c77de098e", + "selection_sha256": "16ecc4a5c08af6750ee8610b722f74eba82a9eeb9703f0f0e0ace08ce5c82ad3", + "columns_each_orientation": 728, + "compensations": 9760, + "program_operations": 16894, + "kernel_pivots": 44, + "controls": { + "264": "REJECTED_OMITTED_KERNEL_CORRECTION", + "265": "REJECTED_OMITTED_KERNEL_CORRECTION", + "312": "REJECTED_OMITTED_KERNEL_CORRECTION", + "313": "REJECTED_OMITTED_KERNEL_CORRECTION", + "314": "REJECTED_OMITTED_KERNEL_CORRECTION", + "315": "REJECTED_OMITTED_KERNEL_CORRECTION", + "350": "REJECTED_OMITTED_KERNEL_CORRECTION", + "351": "REJECTED_OMITTED_KERNEL_CORRECTION", + "276": "REJECTED_OMITTED_KERNEL_CORRECTION", + "277": "REJECTED_OMITTED_KERNEL_CORRECTION", + "324": "REJECTED_OMITTED_KERNEL_CORRECTION", + "325": "REJECTED_OMITTED_KERNEL_CORRECTION", + "326": "REJECTED_OMITTED_KERNEL_CORRECTION", + "327": "REJECTED_OMITTED_KERNEL_CORRECTION", + "338": "REJECTED_OMITTED_KERNEL_CORRECTION", + "339": "REJECTED_OMITTED_KERNEL_CORRECTION", + "262": "REJECTED_OMITTED_KERNEL_CORRECTION", + "263": "REJECTED_OMITTED_KERNEL_CORRECTION", + "322": "REJECTED_OMITTED_KERNEL_CORRECTION", + "323": "REJECTED_OMITTED_KERNEL_CORRECTION", + "328": "REJECTED_OMITTED_KERNEL_CORRECTION", + "329": "REJECTED_OMITTED_KERNEL_CORRECTION", + "352": "REJECTED_OMITTED_KERNEL_CORRECTION", + "353": "REJECTED_OMITTED_KERNEL_CORRECTION", + "274": "REJECTED_OMITTED_KERNEL_CORRECTION", + "275": "REJECTED_OMITTED_KERNEL_CORRECTION", + "310": "REJECTED_OMITTED_KERNEL_CORRECTION", + "311": "REJECTED_OMITTED_KERNEL_CORRECTION", + "316": "REJECTED_OMITTED_KERNEL_CORRECTION", + "317": "REJECTED_OMITTED_KERNEL_CORRECTION", + "340": "REJECTED_OMITTED_KERNEL_CORRECTION", + "341": "REJECTED_OMITTED_KERNEL_CORRECTION", + "299": "REJECTED_OMITTED_KERNEL_CORRECTION", + "301": "REJECTED_OMITTED_KERNEL_CORRECTION", + "347": "REJECTED_OMITTED_KERNEL_CORRECTION", + "349": "REJECTED_OMITTED_KERNEL_CORRECTION", + "359": "REJECTED_OMITTED_KERNEL_CORRECTION", + "361": "REJECTED_OMITTED_KERNEL_CORRECTION", + "370": "REJECTED_OMITTED_KERNEL_CORRECTION", + "371": "REJECTED_OMITTED_KERNEL_CORRECTION", + "372": "REJECTED_OMITTED_KERNEL_CORRECTION", + "373": "REJECTED_OMITTED_KERNEL_CORRECTION", + "375": "REJECTED_OMITTED_KERNEL_CORRECTION", + "377": "REJECTED_OMITTED_KERNEL_CORRECTION" + }, + "scope": "Exact local scalar identity and preserved frame-zero compensation; physical owner routing, complete invoice and outer kappa separate." +} diff --git a/research/static44-selective-validation/macos-python314/RECEIPT.json b/research/static44-selective-validation/macos-python314/RECEIPT.json new file mode 100644 index 0000000000..50cf11bb3b --- /dev/null +++ b/research/static44-selective-validation/macos-python314/RECEIPT.json @@ -0,0 +1,111 @@ +{ + "status": "PASS_STATIC44_SELECTIVE_BOTH_SUPPLIERS", + "stages": [ + { + "name": "bit-preloads", + "exit_code": 0, + "seconds": 0.7457647090777755, + "log_sha256": "782bf2d65d4c3378fdb46b0b48d8690a919536ec460b70470f87f6706b253071" + }, + { + "name": "bit-slice-and-frame-recipe", + "exit_code": 0, + "seconds": 1.783350917045027, + "log_sha256": "9336356e773640e19d54bf0d313b61d9cea74cd231c06898cc0680660c93e2f6" + }, + { + "name": "bit-native-physical-and-controls", + "exit_code": 0, + "seconds": 5.288471290958114, + "log_sha256": "33dc62aa6894b0a3f7fb3dd3cde608df27cf97f1a09aa4d2eb1e74081c9ef4ae" + }, + { + "name": "bit-global-owners-and-invoice", + "exit_code": 0, + "seconds": 58.052369458950125, + "log_sha256": "470d89e8f25be1da7b56509801bb8a935dffdeb4c917985be67d8786806d2e7d" + }, + { + "name": "complex-static44-construction-and-controls", + "exit_code": 0, + "seconds": 3.59511983289849, + "log_sha256": "710d00e4459f1986cc56699cfdbf25e20b16c4fbebf485475f725c8edf7e47d7" + }, + { + "name": "complex-scalar-frame-transport", + "exit_code": 0, + "seconds": 0.39819070789963007, + "log_sha256": "5f4b16ae403561e19d7c10802e19f7c07d17ade53521d1e2329be6beb32e523e" + }, + { + "name": "complex-emit-local", + "exit_code": 0, + "seconds": 0.3730636249529198, + "log_sha256": "bafe3eefa5f0be32c9d9e6ef0fca3a74d9a6f71dbd0e125fe3c84a577227c62f" + }, + { + "name": "complex-independent-local", + "exit_code": 0, + "seconds": 1.1616120419930667, + "log_sha256": "b694b4b22abb9d1de9a70bbbdf9e9b0e030ec00a7eddc264e4c18376dd859cee" + }, + { + "name": "complex-normalized-wrappers", + "exit_code": 0, + "seconds": 0.7303642079932615, + "log_sha256": "4638570164b60b9d83753f6fd3a6359713fc062971e022bdea919f8d479b298a" + }, + { + "name": "complex-every-local-phase", + "exit_code": 0, + "seconds": 83.66197854094207, + "log_sha256": "97a8fda02e64577d19b991e4630f0f3789389970027a9ba69ce3daa8162f96f6" + }, + { + "name": "complex-bind-retained-data", + "exit_code": 0, + "seconds": 0.6394550000550225, + "log_sha256": "afcbc7484189a58a7eb441101f523d91da2346ef69e4eb80fbf27cf0da775432" + }, + { + "name": "complex-emit-whole-owners", + "exit_code": 0, + "seconds": 1.5421535420464352, + "log_sha256": "852ccc06065532fbcaadb4d1f6ffa78d487a1552e07be733308062718834bc54" + }, + { + "name": "complex-independent-owners-and-controls", + "exit_code": 0, + "seconds": 3.086858917027712, + "log_sha256": "bcbf4f82bfaf42c9b6f9c43b44132f4cffe6d15d24fce0e02db34b3e87af476f" + }, + { + "name": "complex-finite-invoice", + "exit_code": 0, + "seconds": 0.3052047499222681, + "log_sha256": "963c6ae5fbb4ae5f5ec48c30da20a27dcb1791f23784e6b2d69daa8ddfb07f8f" + }, + { + "name": "both-moments-and-outer-assembly", + "exit_code": 0, + "seconds": 0.21438820799812675, + "log_sha256": "ad5788bc94b378964df5786e653d22e6b4040be7e468149a233a26f0d3b64f89" + } + ], + "artifacts": { + "RESULT.json": "d1429f7949ad7ac34a6dc594e539172ba3b897b1cc1cc25dd3173f85d15026f6", + "bit-word/BUILD.json": "917a7c0c3b4e2ac8207a4368aee16ad32abd285c53682cc036d7d022f31d8a43", + "bit-native/NATIVE-REVIEW.json": "b1cd61bced1c782e265aefd16f3547cc60caaa4a882751f7fdeb581d2624ac57", + "bit-global/RESOURCE-RESULT.json": "4752f9eaac6a7e933ac706a60c9b08d57e240f6054d73be9bda0eddfd3d983a4", + "bit-global/INVOICE.json": "7746beb3112a4eb03de4489f32a51b1dead4c229b00fdb04324f5f6aa5493a49", + "static44/SCALAR-AUDIT.json": "9436f9b92196015e357e4974011cf1d0f960abb7f26b95eedac339a02c919624", + "complex-local/INDEPENDENT-LOCAL-REPLAY.json": "3bc0417372614ad75dce16b77c628878361bdd16134db1aa7e20ca0a32b3e86e", + "complex-local/CLIFFORD-REVIEW.json": "4ccf687be08469bac2e35345c5acd10095e25eb378f69043cbd34a3044732db0", + "complex-local/LEMMA-A.json": "bc9d150517bae20490620f6d18b1af68a7d57ca5efe772613a9ee5ccd09107d8", + "complex-audit/ASYNC-AUDIT.json": "bcbf4f82bfaf42c9b6f9c43b44132f4cffe6d15d24fce0e02db34b3e87af476f", + "complex-audit/OWNERS-AND-PROFILE.json": "2bf241e562b49e9069c9306e0edfedf46e9cc843c68f69bd35585f5f860122f4", + "complex-audit/PREFIX-AND-INVOICE.json": "963c6ae5fbb4ae5f5ec48c30da20a27dcb1791f23784e6b2d69daa8ddfb07f8f", + "assembly/EXACT-ASSEMBLY.json": "e12f14b8ff55e97a91d152f0033fecba71bf558691891d0d5724c4898879f313" + }, + "manifest_sha256": "9cbdd9329a903b9b0f2b967ec7df5d7cac17f0288b480bfb81448f764b14a7e1" +} diff --git a/research/static44-selective-validation/macos-python314/RESULT.json b/research/static44-selective-validation/macos-python314/RESULT.json new file mode 100644 index 0000000000..0d96fa2953 --- /dev/null +++ b/research/static44-selective-validation/macos-python314/RESULT.json @@ -0,0 +1,70 @@ +{ + "kappa": "397150561665803/250000000000000000", + "kappa_decimal": "0.001588602246663212", + "complex_lower": "31864911873350496687/20000000000000000000000", + "bit_lower": "1591129919227630331373/1000000000000000000000000", + "binding_component": "bit", + "status": "PASS_STATIC44_SELECTIVE_BOTH_SUPPLIERS", + "bit_local_profile": { + "1": 1270, + "2": 1320, + "3": 50, + "4": 170, + "6": 130, + "8": 9 + }, + "bit_global_profile": { + "1": 365760, + "2": 395520, + "3": 14400, + "4": 64320, + "6": 52800, + "7": 23040, + "8": 2592 + }, + "bit_word_sha256": "275447d211596b5a7bc1435bb1597cf70300679b27a127a78eb1efbf83506af0", + "bit_template_sha256": "e24da8e68fed26ea2045632b43c20c7e73be4b49f803565097ad7575074f13b2", + "bit_program_sha256": "4d8c9875292c2134832ec46534ad160b4503f3c967cf1bee2d6a5cb75c2d102d", + "bit_payload_prefix_bits": 101, + "bit_prefix_bits": 191, + "bit_charged_prefix_bits": 192, + "bit_two_level_bits": 421, + "bit_charged_two_level_bits": 512, + "complex_local_profile": { + "1": 2204, + "2": 728, + "3": 184, + "4": 280, + "5": 56, + "6": 56, + "8": 8 + }, + "complex_global_profile": { + "1": 158688, + "2": 52864, + "3": 15171, + "4": 20160, + "5": 4032, + "6": 4032, + "7": 208, + "8": 576, + "39": 1, + "48": 1660 + }, + "complex_word_sha256": "9fc4a1445b2dc49d6331ecc7638a95289feb0b1cf94d8ee74daa285a234ccd49", + "complex_program_sha256": "c88fe1770b76cf0dc1c3a90a95baefd898e95012248984c69bf0ca87cf3fafba", + "complex_phase_sha256": "9ca2571e17012130b8b3359339f235df9c995dd3b92f86c44e45a2c2da77ac31", + "complex_template_sha256": "7460157d9add0bf66616009d32e25f58f8b1a30edb9f13eb730bf532b61dbf8b", + "complex_live": 7168, + "complex_physical": 7682, + "complex_deficit": 2560, + "complex_helper_roles": 36288, + "complex_prefix_bits": 225, + "complex_charged_prefix_bits": 512, + "phase_edges": 2929, + "endpoint_adapters": 224, + "seconds": 161.61358100001235, + "python": "3.14.8 (main, Sep 30 2026, 17:55:09) [Clang 21.0.0 (clang-2100.3.34.2)]", + "manifest_sha256": "9cbdd9329a903b9b0f2b967ec7df5d7cac17f0288b480bfb81448f764b14a7e1", + "scope": "Conditional finite witness under the retained all-size compiler, common-label/mutable-basis, whole-call hosting, restored-work, precision/tape and analytic-transfer contracts. Fresh changed-bit admission and complex admission and finite invoices are separately hash-bound. The unchanged complex data controller remains a cited dependency. No unconditional theorem is claimed." +} diff --git a/research/static44-selective-validation/macos-python314/STAGES.json b/research/static44-selective-validation/macos-python314/STAGES.json new file mode 100644 index 0000000000..c7842e7cfb --- /dev/null +++ b/research/static44-selective-validation/macos-python314/STAGES.json @@ -0,0 +1,92 @@ +[ + { + "name": "bit-preloads", + "exit_code": 0, + "seconds": 0.7457647090777755, + "log_sha256": "782bf2d65d4c3378fdb46b0b48d8690a919536ec460b70470f87f6706b253071" + }, + { + "name": "bit-slice-and-frame-recipe", + "exit_code": 0, + "seconds": 1.783350917045027, + "log_sha256": "9336356e773640e19d54bf0d313b61d9cea74cd231c06898cc0680660c93e2f6" + }, + { + "name": "bit-native-physical-and-controls", + "exit_code": 0, + "seconds": 5.288471290958114, + "log_sha256": "33dc62aa6894b0a3f7fb3dd3cde608df27cf97f1a09aa4d2eb1e74081c9ef4ae" + }, + { + "name": "bit-global-owners-and-invoice", + "exit_code": 0, + "seconds": 58.052369458950125, + "log_sha256": "470d89e8f25be1da7b56509801bb8a935dffdeb4c917985be67d8786806d2e7d" + }, + { + "name": "complex-static44-construction-and-controls", + "exit_code": 0, + "seconds": 3.59511983289849, + "log_sha256": "710d00e4459f1986cc56699cfdbf25e20b16c4fbebf485475f725c8edf7e47d7" + }, + { + "name": "complex-scalar-frame-transport", + "exit_code": 0, + "seconds": 0.39819070789963007, + "log_sha256": "5f4b16ae403561e19d7c10802e19f7c07d17ade53521d1e2329be6beb32e523e" + }, + { + "name": "complex-emit-local", + "exit_code": 0, + "seconds": 0.3730636249529198, + "log_sha256": "bafe3eefa5f0be32c9d9e6ef0fca3a74d9a6f71dbd0e125fe3c84a577227c62f" + }, + { + "name": "complex-independent-local", + "exit_code": 0, + "seconds": 1.1616120419930667, + "log_sha256": "b694b4b22abb9d1de9a70bbbdf9e9b0e030ec00a7eddc264e4c18376dd859cee" + }, + { + "name": "complex-normalized-wrappers", + "exit_code": 0, + "seconds": 0.7303642079932615, + "log_sha256": "4638570164b60b9d83753f6fd3a6359713fc062971e022bdea919f8d479b298a" + }, + { + "name": "complex-every-local-phase", + "exit_code": 0, + "seconds": 83.66197854094207, + "log_sha256": "97a8fda02e64577d19b991e4630f0f3789389970027a9ba69ce3daa8162f96f6" + }, + { + "name": "complex-bind-retained-data", + "exit_code": 0, + "seconds": 0.6394550000550225, + "log_sha256": "afcbc7484189a58a7eb441101f523d91da2346ef69e4eb80fbf27cf0da775432" + }, + { + "name": "complex-emit-whole-owners", + "exit_code": 0, + "seconds": 1.5421535420464352, + "log_sha256": "852ccc06065532fbcaadb4d1f6ffa78d487a1552e07be733308062718834bc54" + }, + { + "name": "complex-independent-owners-and-controls", + "exit_code": 0, + "seconds": 3.086858917027712, + "log_sha256": "bcbf4f82bfaf42c9b6f9c43b44132f4cffe6d15d24fce0e02db34b3e87af476f" + }, + { + "name": "complex-finite-invoice", + "exit_code": 0, + "seconds": 0.3052047499222681, + "log_sha256": "963c6ae5fbb4ae5f5ec48c30da20a27dcb1791f23784e6b2d69daa8ddfb07f8f" + }, + { + "name": "both-moments-and-outer-assembly", + "exit_code": 0, + "seconds": 0.21438820799812675, + "log_sha256": "ad5788bc94b378964df5786e653d22e6b4040be7e468149a233a26f0d3b64f89" + } +] diff --git a/research/static44-selective-validation/macos-python314/assembly/EXACT-ASSEMBLY.json b/research/static44-selective-validation/macos-python314/assembly/EXACT-ASSEMBLY.json new file mode 100644 index 0000000000..edb1b83f6f --- /dev/null +++ b/research/static44-selective-validation/macos-python314/assembly/EXACT-ASSEMBLY.json @@ -0,0 +1,197 @@ +{ + "status": "PASS_FRESH_SELECTIVE_BIT_AND_STATIC44_COMPLEX", + "complex_lower": "31864911873350496687/20000000000000000000000", + "complex_decimal": "0.001593245593667524834350", + "next_b_rejected": "1593245593667524834351/1000000000000000000000000", + "exact_moment_receipts": [ + { + "endpoint": "31864911873350496687/20000000000000000000000", + "accept": true, + "mercator": [ + "-5828437493451975866073536608490779414606081/13479973333575319897333507543509815336818572211270286240551805124608", + "-22767333958796780726849752376917107088305/52656145834278593348959013841835216159447547700274555627155488768" + ], + "base_two": [ + "-4323783538606397171921/10000000000000000000000000000000000000000000000", + "-2161886769303198585893/5000000000000000000000000000000000000000000000" + ] + }, + { + "endpoint": "1593245593667524834351/1000000000000000000000000", + "accept": false, + "mercator": [ + "71366765605997290665181971332725038784158651/26959946667150639794667015087019630673637144422540572481103610249216", + "71366765605997290665181971332725038784158653/26959946667150639794667015087019630673637144422540572481103610249216" + ], + "base_two": [ + "26471396461755964636181/10000000000000000000000000000000000000000000000", + "26471406461755964636317/10000000000000000000000000000000000000000000000" + ] + } + ], + "bit_lower": "1591129919227630331373/1000000000000000000000000", + "bit_decimal": "0.001591129919227630331373", + "bit_exact_moment_receipts": [ + { + "endpoint": "1591129919227630331373/1000000000000000000000000", + "accept": true, + "mercator": [ + "-1052793423823053172190430053228514309970581/1684996666696914987166688442938726917102321526408785780068975640576", + "-8422347390584425377523440425828114479764647/13479973333575319897333507543509815336818572211270286240551805124608" + ], + "base_two": [ + "-624804855575928079741/1000000000000000000000000000000000000000000000", + "-6248038555759280797311/10000000000000000000000000000000000000000000000" + ] + }, + { + "endpoint": "795564959613815165687/500000000000000000000000", + "accept": false, + "mercator": [ + "34713501129766560866906385872276824186945225/13479973333575319897333507543509815336818572211270286240551805124608", + "17356750564883280433453192936138412093472613/6739986666787659948666753771754907668409286105635143120275902562304" + ], + "base_two": [ + "2575190144449705326857/1000000000000000000000000000000000000000000000", + "25751911444497053268669/10000000000000000000000000000000000000000000000" + ] + } + ], + "bit_result_sha256": "7746beb3112a4eb03de4489f32a51b1dead4c229b00fdb04324f5f6aa5493a49", + "complex_dependency": { + "source_pr": 541, + "commit": "6fd04b2e266b7915b69f96f27758cfce520aa40a", + "local_word": "static44", + "new_global_owners": true + }, + "bit_dependency": { + "pull_request": 510, + "commit": "64edee18af02aab0c1696b677a0287dd0146381b", + "changed_word": "preload60 plus response slicing and 10 selective frame changes", + "fresh_bit_receipt_sha256": "7746beb3112a4eb03de4489f32a51b1dead4c229b00fdb04324f5f6aa5493a49" + }, + "bit_prefix_bits": 192, + "bit_charged_two_level_coefficient_bits": 512, + "external_row_allowance": 20161, + "kappa": "397150561665803/250000000000000000", + "kappa_decimal": "0.001588602246663212", + "binding_component": "bit", + "improvements": { + "PR535": { + "baseline": "1584931111785787/1000000000000000000", + "relative_gain": "3671134877425/1584931111785787", + "percent_display": "0.23162741" + }, + "PR541": { + "baseline": "396803113660173/250000000000000000", + "relative_gain": "31586182330/36073010332743", + "percent_display": "0.08756181" + }, + "PR542_candidate": { + "baseline": "793733736881443/500000000000000000", + "relative_gain": "567386450163/793733736881443", + "percent_display": "0.07148322" + }, + "PR531": { + "baseline": "1517760977820331/1000000000000000000", + "relative_gain": "70841268842881/1517760977820331", + "percent_display": "4.66748519" + }, + "rejected_POST208_checkpoint": { + "baseline": "771820390859371/500000000000000000", + "relative_gain": "22480732472235/771820390859371", + "percent_display": "2.91268963" + }, + "PR533": { + "baseline": "381051987698311/250000000000000000", + "relative_gain": "16098573967492/381051987698311", + "percent_display": "4.22477103" + } + }, + "strict_outer_constraints": { + "bit_positive": "97114863234108295054753288264492227373059069228140622470432029091519486024423058229402478547669507024713486568115721328709852535000868921936653465064970066168493/61035156250000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "complex_above_bit": "129130520013093760554328923007772626940930771859377529567970908480513975576941770597521452330492975286513431884278671290147464999131078063346534935029933831507/61035156250000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "complex_below_one_over32": "593135088126649503313/20000000000000000000000", + "beta_positive": "1/1000000000000000000", + "beta_below_one": "999999999999999999/1000000000000000000", + "leaf_saving_above_bit": "129130520013093663310335168886383811633313584359377529567970908480513975576941770597521452330492975286513431884278671290147464999131078063346534935029933831507/61035156250000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "q_positive": "48557431617054147430261780898137818631776246349578083862156945317619120541779500023181753249411695282954264736388353639641439699384713132258474197531616111147593034935029933831507/30517578125000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "q_below_internal": "97114863234108295054753288264492227373059069228140622470432029091519486024423058229402478547669507024713486568115721328709852535000868921936653465064970066168493/30517578125000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "q_below_leaf": "64565260006546928770030818551486960569945056671916137843054682380879458220499976818246750588304717045735263611646360358560300615286867741525802468383888852406965064970066168493/30517578125000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "c_positive": "48557431617054155059656312148137818631776246349578083862156945317619120541779500023181753249411695282954264736388353639641439699384713132258474197531616111147593034935029933831507/30517578125000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "c_below_one": "30469020693382945844940343687851862181368223753650421916137843054682380879458220499976818246750588304717045735263611646360358560300615286867741525802468383888852406965064970066168493/30517578125000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "q_below_reservations": "1/4000000000000000000", + "lambda_above_tau": "97114863234108295054753288264492227373059069228140622470432029091519486024423058229402478547669507024713486568115721328709852535000868921936653465064970066168493/61035156250000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "lambda_above_sigma": "129130520013093857669192157116067681694219036351604902627040136621136446008970862117007476753551204688991979553785696003634033114852406773199069935898855768160465064970066168493/61035156250000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "lambda_above_internal": "97114863234108295054753288264492227373059069228140622470432029091519486024423058229402478547669507024713486568115721328709852535000868921936653465064970066168493/61035156250000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "lambda_prime_above_lambda": "97114863234108295054753288264492227373059069228140622470432029091519486024423058229402478547669507024713486568115721328709852535000868921936653465064970066168493/61035156250000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "compact_leaf": "64565260006546928770030818551486960569945056671916137843054682380879458220499976818246750588304717045735263611646360358560300615286867741525802468383888852406965064970066168493/30517578125000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "compact_reservations": "1/4000000000000000000", + "lambda_prime_below_one": "48557431617054147430261780898137818631776246349578083862156945317619120541779500023181753249411695282954264736388353639641439699384713132258474197531616111147593034935029933831507/30517578125000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "epsilon_positive": "30517578124999999969482421875000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000/30566135556617054147430261780898137818631776246349578083862156945317619120541779500023181753249411695282954264736388353639641439699384713132258474197531616111147593034935029933831507", + "epsilon_below_one": "48557431617054177947839905898137818631776246349578083862156945317619120541779500023181753249411695282954264736388353639641439699384713132258474197531616111147593034935029933831507/30566135556617054147430261780898137818631776246349578083862156945317619120541779500023181753249411695282954264736388353639641439699384713132258474197531616111147593034935029933831507", + "guard_width": "48557431617054177947839905898137818631776246349578083862156945317619120541779500023181753249411695282954264736388353639641439699384713132258474197531616111147593034935029933831507/30566135556617054147430261780898137818631776246349578083862156945317619120541779500023181753249411695282954264736388353639641439699384713132258474197531616111147593034935029933831507", + "K_geometry": "22936741025367054155059656312148137818631776246349578083862156945317619120541779500023181753249411695282954264736388353639641439699384713132258474197531616111147593034935029933831507/30566135556617054147430261780898137818631776246349578083862156945317619120541779500023181753249411695282954264736388353639641439699384713132258474197531616111147593034935029933831507000000000000000000", + "K_dominates_log": "1566368761840456613261254210680118179745804329078718233238087063485194731600727571147181700246199847089435854418601882473779837516011596536033370907964612222229639916239155570448837582740969876403/986004372794098520884847154222520574794573427301599293027811514365084487759412241936231669459658441783321105314077043665794885151593055262330918522501019874553148162417259030123597000000000000000000", + "record_suffix": "48557431617054177947839905898137818631776246349578083862156945317619120541779500023181753249411695282954264736388353639641439699384713132258474197531616111147593034935029933831507/30566135556617054147430261780898137818631776246349578083862156945317619120541779500023181753249411695282954264736388353639641439699384713132258474197531616111147593034935029933831507", + "phase_local": "388459452936433393016583690568048401623948189898486852265479316191374880472079054867834905453514062240452364641695133834177252858689351418426353880868215756922270081948623359504462965064970066168493/244529084452936433179442094247185102549054209970796624670897255562540952964334236000185454025995293562263634117891106829117131517595077705058067793580252928889180744279480239470652056000000000000000000", + "phase_boundary": "77691890587286654150408292819966362380580213261187115547674866158612509004690254719471684657279212429545070328809670540472038782627187371972119016665872645577674658364431782982818165064970066168493/48905816890587286635888418849437020509810841994159324934179451112508190592866847200037090805199058712452726823578221365823426303519015541011613558716050585777836148855896047894130411200000000000000000", + "gamma_sublinear": "1/2000000000000000000", + "cell_above_band": "61035156249999999908398708193382945852569738219101862181368223753650421916137843054682380879458220499976818246750588304717045735263611646360358560300615286867741525802468383888852406965064970066168493/122264542226468216589721047123592551274527104985398312335448627781270476482167118000092727012997646781131817058945553414558565758797538852529033896790126464444590372139740119735326028000000000000000000", + "prime_interval_packing": "48557431617054177947839905898137818631776246349578083862156945317619120541779500023181753249411695282954264736388353639641439699384713132258474197531616111147593034935029933831507/30566135556617054147430261780898137818631776246349578083862156945317619120541779500023181753249411695282954264736388353639641439699384713132258474197531616111147593034935029933831507", + "alpha_positive": "97114863234108325329544255179221489833290711801018349092537644285660157221402054728744385957043890542726776223365011996328614662381072624875508695678519090036711872338443756515420965064970066168493/61132271113234108294860523561796275637263552492699156167724313890635238241083559000046363506498823390565908529472776707279282879398769426264516948395063232222295186069870059867663014000000000000000000", + "alpha_below_one": "61035156249999999969530979306617054147430261780898137818631776246349578083862156945317619120541779500023181753249411695282954264736388353639641439699384713132258474197531616111147593034935029933831507/61132271113234108294860523561796275637263552492699156167724313890635238241083559000046363506498823390565908529472776707279282879398769426264516948395063232222295186069870059867663014000000000000000000", + "alpha_below_one_fourth": "15185952915074418748385586635269847419482597411373770692838540828373149403049487695282846490667661957098750356144829164823492105187311283941253728403087288965537084645129071210400332534935029933831507/61132271113234108294860523561796275637263552492699156167724313890635238241083559000046363506498823390565908529472776707279282879398769426264516948395063232222295186069870059867663014000000000000000000", + "delta_positive": "1/8000000000000000000", + "delta_below_one_eighth": "999999999999999999/8000000000000000000", + "short_record_fallback": "1859676723156780949548791488148496333714856382687503144997988410152821503283022486623463351310287706357468226582106334075735340729630920298467155998884584142970559389772693113937178760956953548914849539665048881838914778235352987011587651750977455215900248058528360660394630647198949683674645989900177246340660241307067590648529928358689465891049/1865608859656802621303116563775521107094224624410984990470102352619483588900255096436961776931726788042172501509789328225075771466026898994888822888032935553658910707698671260609833190917968750000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "small_field_exposure": "1/1000000000000000000", + "artificial_boundary": "1712092050623491465771375785647331982834724465109067410823073373239376357966260358837436489569587686998178618202877089718785914934969786701383466667740177570510221376828436764098659227104805089801494521/244529084452936433179442094247185102549054209970796624670897255562540952964334236000185454025995293562263634117891106829117131517595077705058067793580252928889180744279480239470652056000000000000000000", + "literal_scalar_guard": "1", + "row_product_gap": "23971789/25", + "balanced_prefix_above_kappa": "9418138366797352389554911812544671819307271787514932165697874073890108853749591021912178261789165212459824228360212385783413148589000753232736980211204482942835664926380439754144879/7641533889154263536857565445224534454657944061587394520965539236329404780135444875005795438312352923820738566184097088409910359924846178283064618549382904027786898258733757483457876750000000000000000", + "coordinate_movement_above_kappa": "154276889918109507878288264492227373059069228140622470432029091519486024423058229402478547669507024713486568115721328709852535000868921936653465064970066168493/61035156250000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "compact_phase_layer_above_kappa": "7106417910572355410789385469280549458597310903710150578929339350242816294456584587625531293907249154556342648704461189494011154656618299798689446647286315660195066670586729082748009/30566135556617054147430261780898137818631776246349578083862156945317619120541779500023181753249411695282954264736388353639641439699384713132258474197531616111147593034935029933831507000000000000000000", + "bulk_exposure_above_kappa": "154276889918109507878288264492227373059069228140622470432029091519486024423058229402478547669507024713486568115721328709852535000868921936653465064970066168493/61035156250000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "Gaussian_arithmetic_above_kappa": "148549749954430005728605869096938809124673815968729938883021185637895387717278015201073795611006228322299603983844854576871013556351100537786290995770885373615003312469498922463478593/244529084452936433179442094247185102549054209970796624670897255562540952964334236000185454025995293562263634117891106829117131517595077705058067793580252928889180744279480239470652056000000000000000000", + "scalar_work_above_kappa": "270814292180898222318326916220531360399200920954128251218469813419165864199445133201166522624003875103431421042790407991429579315148639390315324892561011838059593684609239042198804621/244529084452936433179442094247185102549054209970796624670897255562540952964334236000185454025995293562263634117891106829117131517595077705058067793580252928889180744279480239470652056000000000000000000", + "dimension_above_kappa": "7617255173345736457301783859072817934896967750957277298341732551185527385562429198884313415437238098091439695605068124049913868435366207500348530039617849204950081952470725459377788176380439754144879/7641533889154263536857565445224534454657944061587394520965539236329404780135444875005795438312352923820738566184097088409910359924846178283064618549382904027786898258733757483457876750000000000000000" + }, + "outer_controls": [ + "next_grid", + "zero_eta", + "zero_beta", + "unit_beta" + ], + "bootstrap": [ + { + "gap": "154406232642551417669126788918532907962649/62500000000000000000000000000000000000000000000", + "cutoff_log2": "5898381815166" + }, + { + "gap": "61420094118196383762884744721061767565213025436763892317231107/15625000000000000000000000000000000000000000000000000000000000000000000", + "cutoff_log2": "2329815861224026216" + }, + { + "gap": "24431837348309816224939047511319055633883286559873138551195470856171543707979097201/3906250000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "cutoff_log2": "920259507998458524076819" + }, + { + "gap": "9718556846649699977128680424506384512350203988555922906008945835809345501979409407161080053828256922443/976562500000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "cutoff_log2": "363495491706643690361695805628" + }, + { + "gap": "3865871642604717715360887432554977887558528127005097025208759856963703189652298212528514492818300199838066398137463248445449/244140625000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "cutoff_log2": "143577948766247350557796599645617695" + }, + { + "gap": "1537776008610507772626940930771859377529567970908480513975576941770597521452330492975286513431884278671290147464999131078063346534935029933831507/61035156250000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "cutoff_log2": "56712195452921956632520177956592343117305" + } + ], + "complex_template_sha256": "7460157d9add0bf66616009d32e25f58f8b1a30edb9f13eb730bf532b61dbf8b", + "owner_audit_sha256": "2bf241e562b49e9069c9306e0edfedf46e9cc843c68f69bd35585f5f860122f4", + "invoice_sha256": "963c6ae5fbb4ae5f5ec48c30da20a27dcb1791f23784e6b2d69daa8ddfb07f8f", + "bit_scope": "The changed bit word is freshly reconstructed, replayed and admitted by the native local and hosted-global checkers. The static44 complex supplier is freshly rebuilt and admitted separately.", + "scope": "Conditional finite witness under the retained all-size compiler, common-label/mutable-basis, whole-call hosting, restored-work, precision/tape and analytic-transfer contracts. Fresh changed-bit admission and complex admission and finite invoices are separately hash-bound. The unchanged complex data controller remains a cited dependency. No unconditional theorem is claimed." +} diff --git a/research/static44-selective-validation/macos-python314/bit-global/INVOICE.json b/research/static44-selective-validation/macos-python314/bit-global/INVOICE.json new file mode 100644 index 0000000000..74e3594ab8 --- /dev/null +++ b/research/static44-selective-validation/macos-python314/bit-global/INVOICE.json @@ -0,0 +1,49 @@ +{ + "status": "PASS_NINE_STAGE_WHOLE_HOSTED_BIT_PRICE_AND_CITED_ASSEMBLY", + "R": 480, + "stages": 9, + "replicas": 32, + "bit_lower": "1591129919227630331373/1000000000000000000000000", + "bit_lower_decimal": "0.001591129919227630331373", + "next_grid_point_rejected": "795564959613815165687/500000000000000000000000", + "bit": { + "live": 30720, + "physical": 30729, + "maxchild": 8, + "rank_mass": 1956096, + "hosted_residuals": 138240, + "bank_assignments": 0, + "prefix_bits": 191, + "charged_prefix_bits": 192, + "coefficient_bits": 191, + "two_level_coefficient_bits": 421, + "charged_two_level_coefficient_bits": 512, + "row_coefficient": 18355, + "halving_depth": 2 + }, + "bit_profile": { + "1": 365760, + "2": 395520, + "3": 14400, + "4": 64320, + "6": 52800, + "7": 23040, + "8": 2592 + }, + "emitted_program_sha256": "4d8c9875292c2134832ec46534ad160b4503f3c967cf1bee2d6a5cb75c2d102d", + "kappa": { + "pr484": { + "complex_lower": "663394767670133/500000000000000000", + "kappa": "662515748707749/500000000000000000", + "kappa_decimal": "0.001325031497415498", + "binding_component": "complex", + "strict_outer_constraints": 47, + "outer_controls": [ + "next_grid", + "zero_eta", + "zero_beta", + "unit_beta" + ] + } + } +} diff --git a/research/static44-selective-validation/macos-python314/bit-global/RESOURCE-RESULT.json b/research/static44-selective-validation/macos-python314/bit-global/RESOURCE-RESULT.json new file mode 100644 index 0000000000..b6d418cfb9 --- /dev/null +++ b/research/static44-selective-validation/macos-python314/bit-global/RESOURCE-RESULT.json @@ -0,0 +1,63 @@ +{ + "status": "PASS_CHANGED_TRACE_SLICE_NINE_STAGE_PHYSICAL_CONTROLLER", + "stages": [ + { + "name": "01-global", + "seconds": 16.205650806427002 + }, + { + "name": "02-adapt", + "seconds": 0.017433881759643555 + }, + { + "name": "03-parent-audit", + "seconds": 7.732814073562622 + }, + { + "name": "04-host", + "seconds": 15.108046770095825 + }, + { + "name": "05-host-audit", + "seconds": 18.846422910690308 + }, + { + "name": "06-invoice", + "seconds": 0.11100482940673828 + } + ], + "profile": { + "1": 365760, + "2": 395520, + "3": 14400, + "4": 64320, + "6": 52800, + "7": 23040, + "8": 2592 + }, + "live": 30720, + "deficit": 9984, + "template_sha256": "e24da8e68fed26ea2045632b43c20c7e73be4b49f803565097ad7575074f13b2", + "emitted_program_sha256": "4d8c9875292c2134832ec46534ad160b4503f3c967cf1bee2d6a5cb75c2d102d", + "emitted_events": 10497600, + "parent_controls": 17, + "hosting_controls": 16, + "global_prefix_bits": 191, + "bit_invoice": { + "live": 30720, + "physical": 30729, + "maxchild": 8, + "rank_mass": 1956096, + "hosted_residuals": 138240, + "bank_assignments": 0, + "prefix_bits": 191, + "charged_prefix_bits": 192, + "coefficient_bits": 191, + "two_level_coefficient_bits": 421, + "charged_two_level_coefficient_bits": 512, + "row_coefficient": 18355, + "halving_depth": 2 + }, + "bit_lower": "1591129919227630331373/1000000000000000000000000", + "scope": "Changed nine-stage word, literal whole residual routing and parent/hosted audits. Strict scalar invoice and both moment engines passed; its old cited complex supplier is only a regression. Final outer assembly with the selected new complex supplier remains separate." +} diff --git a/research/static44-selective-validation/macos-python314/bit-native/NATIVE-REVIEW.json b/research/static44-selective-validation/macos-python314/bit-native/NATIVE-REVIEW.json new file mode 100644 index 0000000000..941615cc8c --- /dev/null +++ b/research/static44-selective-validation/macos-python314/bit-native/NATIVE-REVIEW.json @@ -0,0 +1,27 @@ +{ + "status": "PASS_NATIVE_TRACE_SLICE_LOCAL_FRAME_COLUMNS_PREFIX_AND_CONTROLS", + "word_sha256": "275447d211596b5a7bc1435bb1597cf70300679b27a127a78eb1efbf83506af0", + "checker_source_sha256": { + "legality_h.cpp": "6c1ef2b24e57781d6951c172a1024fc4300e6fd392c9d6672079a7806ab663b3", + "columns_h.cpp": "d1297f9052be4f2496e1ff2a77e4db2c0cdbd7d460d489b4c03e50bf317238ce", + "columns_k.cpp": "1c344d18fcd494eeca93e259f10cafae7705780e6592f6dcb35b34752dab9bc2", + "gram_frames.py": "223a5a07731fc315a90a3e48177796babc155c1d9985c7ae5017eff6af2a0608" + }, + "local_paid_profile": { + "1": 1270, + "2": 1320, + "3": 50, + "4": 170, + "6": 130, + "8": 9 + }, + "formal_columns_nine_stage": 1440, + "formal_columns_five_stage": 960, + "nine_stage_bridge_controls": 18, + "structural_record_controls": 6, + "mutable_source_controls": 3, + "payload_prefix_bits": 101, + "gram_frames_audit_passed": true, + "actual_checker_configuration": "HDIM8 NCOPY9 VPORTS120 RHELP480 KPAIRS4", + "scope": "Changed native scalar/frame/interface/Gram/prefix evidence. Global routing, full finite invoice and exact outer assembly are separate. Compiler source is unmodified." +} diff --git a/research/static44-selective-validation/macos-python314/bit-word/BUILD.json b/research/static44-selective-validation/macos-python314/bit-word/BUILD.json new file mode 100644 index 0000000000..a986511a96 --- /dev/null +++ b/research/static44-selective-validation/macos-python314/bit-word/BUILD.json @@ -0,0 +1,157 @@ +{ + "status": "PASS_EXACT_SLICE_AND_TEN_FROZEN_FRAME_MOVES", + "removed_gates": 227, + "moves": [ + { + "section": "A", + "index": 2503, + "delta": { + "1": 1, + "3": -1, + "4": -1, + "6": 1 + }, + "cost_interval": [ + "-41764279471825114450888335046521245831310110911057153009117/26959946667150639794667015087019630673637144422540572481103610249216", + "-41764279471825114450888335046521245831310110911057153009113/26959946667150639794667015087019630673637144422540572481103610249216" + ] + }, + { + "section": "A", + "index": 2494, + "delta": { + "1": 1, + "3": -1, + "4": -1, + "6": 1 + }, + "cost_interval": [ + "-41764279471825114450888335046521245831310110911057153009117/26959946667150639794667015087019630673637144422540572481103610249216", + "-41764279471825114450888335046521245831310110911057153009113/26959946667150639794667015087019630673637144422540572481103610249216" + ] + }, + { + "section": "A", + "index": 2464, + "delta": { + "1": 1, + "3": -1, + "4": -1, + "6": 1 + }, + "cost_interval": [ + "-41764279471825114450888335046521245831310110911057153009117/26959946667150639794667015087019630673637144422540572481103610249216", + "-41764279471825114450888335046521245831310110911057153009113/26959946667150639794667015087019630673637144422540572481103610249216" + ] + }, + { + "section": "A", + "index": 2455, + "delta": { + "1": 1, + "3": -1, + "4": -1, + "6": 1 + }, + "cost_interval": [ + "-41764279471825114450888335046521245831310110911057153009117/26959946667150639794667015087019630673637144422540572481103610249216", + "-41764279471825114450888335046521245831310110911057153009113/26959946667150639794667015087019630673637144422540572481103610249216" + ] + }, + { + "section": "A", + "index": 2427, + "delta": { + "1": 1, + "3": -1, + "4": -1, + "6": 1 + }, + "cost_interval": [ + "-41764279471825114450888335046521245831310110911057153009117/26959946667150639794667015087019630673637144422540572481103610249216", + "-41764279471825114450888335046521245831310110911057153009113/26959946667150639794667015087019630673637144422540572481103610249216" + ] + }, + { + "section": "A", + "index": 2418, + "delta": { + "1": 1, + "3": -1, + "4": -1, + "6": 1 + }, + "cost_interval": [ + "-41764279471825114450888335046521245831310110911057153009117/26959946667150639794667015087019630673637144422540572481103610249216", + "-41764279471825114450888335046521245831310110911057153009113/26959946667150639794667015087019630673637144422540572481103610249216" + ] + }, + { + "section": "A", + "index": 2390, + "delta": { + "1": 1, + "3": -1, + "4": -1, + "6": 1 + }, + "cost_interval": [ + "-41764279471825114450888335046521245831310110911057153009117/26959946667150639794667015087019630673637144422540572481103610249216", + "-41764279471825114450888335046521245831310110911057153009113/26959946667150639794667015087019630673637144422540572481103610249216" + ] + }, + { + "section": "A", + "index": 2360, + "delta": { + "1": 1, + "3": -1, + "4": -1, + "6": 1 + }, + "cost_interval": [ + "-41764279471825114450888335046521245831310110911057153009117/26959946667150639794667015087019630673637144422540572481103610249216", + "-41764279471825114450888335046521245831310110911057153009113/26959946667150639794667015087019630673637144422540572481103610249216" + ] + }, + { + "section": "A", + "index": 2331, + "delta": { + "1": 1, + "3": -1, + "4": -1, + "6": 1 + }, + "cost_interval": [ + "-41764279471825114450888335046521245831310110911057153009117/26959946667150639794667015087019630673637144422540572481103610249216", + "-41764279471825114450888335046521245831310110911057153009113/26959946667150639794667015087019630673637144422540572481103610249216" + ] + }, + { + "section": "A", + "index": 2270, + "delta": { + "1": 1, + "3": -1, + "4": -1, + "6": 1 + }, + "cost_interval": [ + "-41764279471825114450888335046521245831310110911057153009117/26959946667150639794667015087019630673637144422540572481103610249216", + "-41764279471825114450888335046521245831310110911057153009113/26959946667150639794667015087019630673637144422540572481103610249216" + ] + } + ], + "all_dirty_columns": 720, + "local_profile": { + "1": 1270, + "2": 1320, + "4": 170, + "3": 50, + "8": 9, + "6": 130 + }, + "word_sha256": "275447d211596b5a7bc1435bb1597cf70300679b27a127a78eb1efbf83506af0", + "source_sha256": "db5cd7ab49e2e58a2924a2a9e68ee69d8165b4d5c008b6f546577f4791019dca" +} diff --git a/research/static44-selective-validation/macos-python314/complex-audit/ASYNC-AUDIT.json b/research/static44-selective-validation/macos-python314/complex-audit/ASYNC-AUDIT.json new file mode 100644 index 0000000000..1ec741b9e3 --- /dev/null +++ b/research/static44-selective-validation/macos-python314/complex-audit/ASYNC-AUDIT.json @@ -0,0 +1,47 @@ +{ + "status": "PASS_INDEPENDENT_ASYNC_WHOLE_OWNER_CONTROLLER_PHASES_AND_SPECTATORS", + "template_sha256": "7460157d9add0bf66616009d32e25f58f8b1a30edb9f13eb730bf532b61dbf8b", + "complex_template_sha256": "7460157d9add0bf66616009d32e25f58f8b1a30edb9f13eb730bf532b61dbf8b", + "complex_live": 7168, + "complex_profile": { + "1": 158688, + "2": 52864, + "3": 15171, + "4": 20160, + "5": 4032, + "6": 4032, + "7": 208, + "8": 576, + "39": 1, + "48": 1660 + }, + "complex_hosted_residuals": 36288, + "physical": 7682, + "rank_mass": 520704, + "deficit": 2560, + "entering_helper_roles": 15264, + "cross_replica_helper_roles": 28194, + "one_owner_per_complete_invocation": true, + "helper_busy_family_window_checks": 36288, + "complete_invocations": 72, + "actual_orthogonal_73column_maps": 3024, + "actual_sigma_stream_sha256": "7a0ca623c4087a8db66c8b42f746ce5d08711cdb34db4cf7da155d6aa562ba38", + "all_actual_residual_and_spectator_charts": true, + "idle_remainders": 4240, + "mutations_rejected": [ + "alias two whole owners", + "helper on active data family", + "owner in private namespace", + "wrong residual width", + "wrong spectator coordinate", + "omit idle remainder", + "understate physical reserve" + ], + "mutation_controls_run": true, + "widths": { + "5": 56, + "8": 156, + "9": 292 + }, + "scope": "Independent exact asynchronous chronology, per-replica phase projection, owner/chart/paid-profile audit. Uses the new selected local program bound by fresh scalar, phase and residual-wrapper receipts; all-size compilation and complete coefficient invoice are separate inherited obligations." +} diff --git a/research/static44-selective-validation/macos-python314/complex-audit/OWNERS-AND-PROFILE.json b/research/static44-selective-validation/macos-python314/complex-audit/OWNERS-AND-PROFILE.json new file mode 100644 index 0000000000..e25bf9e5db --- /dev/null +++ b/research/static44-selective-validation/macos-python314/complex-audit/OWNERS-AND-PROFILE.json @@ -0,0 +1,40 @@ +{ + "status": "PASS_INDEPENDENT_ASYNC_OWNERS_AND_PROFILE", + "template_sha256": "7460157d9add0bf66616009d32e25f58f8b1a30edb9f13eb730bf532b61dbf8b", + "paid_profile": { + "1": 158688, + "2": 52864, + "3": 15171, + "4": 20160, + "5": 4032, + "6": 4032, + "7": 208, + "8": 576, + "39": 1, + "48": 1660 + }, + "live": 7168, + "physical": 7682, + "rank_mass": 520704, + "deficit": 2560, + "hosted_residuals": 36288, + "banked_residuals": 0, + "all_live_owners_per_call_distinct": true, + "owners_per_call": 728, + "actual_helper_owner_charts": 36288, + "actual_73column_sigmas": 3024, + "cross_replica_helper_roles": 28194, + "explicit_idle_remainder_children": 4240, + "source_idle_children_charged": 16128, + "source_artifacts": { + "split-centres/CANONICAL-WORD.json.gz": "9fc4a1445b2dc49d6331ecc7638a95289feb0b1cf94d8ee74daa285a234ccd49", + "split-centres/LOCAL-PROGRAMS.json.gz": "c88fe1770b76cf0dc1c3a90a95baefd898e95012248984c69bf0ca87cf3fafba", + "split-centres/LOCAL-CHECKS.json": "87d911fbf6c9ba23e1a0fc385b9b3168d894320c86b2c04219303afafd3cb223", + "split-centres/RESIDUAL-ADAPTERS.json": "e4fce8ca73ad20a86711837dd6fe1efad5a335689352791a635969e4d1be4391", + "split-centres/CLIFFORD-RECIPES.json": "9ca2571e17012130b8b3359339f235df9c995dd3b92f86c44e45a2c2da77ac31", + "split-centres/CLIFFORD-REVIEW.json": "4ccf687be08469bac2e35345c5acd10095e25eb378f69043cbd34a3044732db0", + "split-centres/INDEPENDENT-LOCAL-REPLAY.json": "3bc0417372614ad75dce16b77c628878361bdd16134db1aa7e20ca0a32b3e86e", + "work/complex-nine-native/DATA-PHASES.json": "c5916ff312678f12aba403847643fbbc29f643acec60bdf836fa56cd3e8251fa" + }, + "controller_audit_sha256": "bcbf4f82bfaf42c9b6f9c43b44132f4cffe6d15d24fce0e02db34b3e87af476f" +} diff --git a/research/static44-selective-validation/macos-python314/complex-audit/PREFIX-AND-INVOICE.json b/research/static44-selective-validation/macos-python314/complex-audit/PREFIX-AND-INVOICE.json new file mode 100644 index 0000000000..5b18fdf06b --- /dev/null +++ b/research/static44-selective-validation/macos-python314/complex-audit/PREFIX-AND-INVOICE.json @@ -0,0 +1,106 @@ +{ + "status": "PASS_INDEPENDENT_ASYNC_SCALAR_PREFIX_AND_FINITE_INVOICE", + "template_sha256": "7460157d9add0bf66616009d32e25f58f8b1a30edb9f13eb730bf532b61dbf8b", + "parent_template_sha256": "9da5ae54fa032b2731c08cc006101a908236a0100841559ee709d85283c388e3", + "owner_audit_sha256": "2bf241e562b49e9069c9306e0edfedf46e9cc843c68f69bd35585f5f860122f4", + "controller_audit_sha256": "bcbf4f82bfaf42c9b6f9c43b44132f4cffe6d15d24fce0e02db34b3e87af476f", + "independent_local_replay_sha256": "3bc0417372614ad75dce16b77c628878361bdd16134db1aa7e20ca0a32b3e86e", + "canonical_word_sha256": "9fc4a1445b2dc49d6331ecc7638a95289feb0b1cf94d8ee74daa285a234ccd49", + "local_programs_sha256": "c88fe1770b76cf0dc1c3a90a95baefd898e95012248984c69bf0ca87cf3fafba", + "local_checks_sha256": "87d911fbf6c9ba23e1a0fc385b9b3168d894320c86b2c04219303afafd3cb223", + "global_prefix_bits": 225, + "charged_prefix_bits": 512, + "complete_invocation_sweeps": 72, + "bridge_sweeps": 72, + "row_prefix_extra": 1024, + "local": { + "backward": { + "events": 22111, + "macros": 16918, + "real_component_primitives": 168324, + "prefix_l1": "1014379822882", + "prefix_bits": 40, + "coefficient_work_primitive_count": 83390, + "all_exact_columns": 728, + "dirty_helper_columns": 504, + "all_dirty_helper_columns_restored": true, + "private_centres_and_coefficient_work_cleared": true, + "pre_wrappers": 212, + "post_wrappers": 212, + "endpoint_evidence": "Hash-bound fresh INDEPENDENT-LOCAL-REPLAY.json" + }, + "forward": { + "events": 22111, + "macros": 16918, + "real_component_primitives": 168276, + "prefix_l1": "86491024246", + "prefix_bits": 37, + "coefficient_work_primitive_count": 83358, + "all_exact_columns": 728, + "dirty_helper_columns": 504, + "all_dirty_helper_columns_restored": true, + "private_centres_and_coefficient_work_cleared": true, + "pre_wrappers": 212, + "post_wrappers": 212, + "endpoint_evidence": "Hash-bound fresh INDEPENDENT-LOCAL-REPLAY.json" + } + }, + "helpers": 504, + "centres": 8, + "live": 7168, + "physical": 7682, + "physical_stock_identity": { + "data_and_owner_families": 7168, + "local_helpers": 504, + "private_centres": 8, + "coefficient_work": 2 + }, + "entering_helpers": 212, + "entrance_rank": 380, + "width_inventory": { + "5": 56, + "8": 156, + "9": 292 + }, + "local_adapters": 343392, + "local_primitive_bound": 8905643676036, + "wrapper_elementary_factors_charged": 4396032, + "factors_per_wrapper": 144, + "compiler": 25934336, + "unhosted_pervertex": 1593316402662104, + "hosted_rebased_pervertex": 1593316402362728, + "conservative_pervertex_used": 3109608246274904, + "retained_prior_overcharge": { + "sha256": "bb43ef04791037a37d2596c395e81191991fde6581326118995cf4318ee472a3", + "previous_pervertex_allowance": 1516291843612800, + "added_complete_new_pervertex": 1593316402662104, + "policy": "Retain old allowance and add the entire fresh recount." + }, + "finite": { + "physical_stock_bits": 2641, + "router_bits": 7985, + "literal_bits": 35282, + "physical_row_coefficient": 16467, + "retained_row_coefficient": 20161, + "required_C0_bits": 200012, + "halving_integer_inequality": [ + 5329, + 4608 + ], + "G_exponent": 30000, + "E_exponent": 100000, + "C0_exponent": 210000 + }, + "strict_checks": { + "local_primitive_bound": true, + "logical": true, + "router": true, + "literal": true, + "mass": true, + "precision": true, + "tape": true, + "row": true, + "halving": true + }, + "scope": "Fresh emitted primitive/Horner, prefix, wrapper and finite recount, using the hash-bound independent local all-column/frame replay and actual whole-owner audit. No old INTEGRATION receipt is used to certify the changed word. The inherited all-size compiler, precision/tape and analytic-transfer contracts remain conditional. Retained payload 512 and physical row allowance 20161 are unchanged." +} diff --git a/research/static44-selective-validation/macos-python314/complex-local/CLIFFORD-REVIEW.json b/research/static44-selective-validation/macos-python314/complex-local/CLIFFORD-REVIEW.json new file mode 100644 index 0000000000..11a5237fdd --- /dev/null +++ b/research/static44-selective-validation/macos-python314/complex-local/CLIFFORD-REVIEW.json @@ -0,0 +1,20 @@ +{ + "status": "PASS_NEW_WORD_EXACT_LOCAL_PHASE_RECIPES", + "canonical_word_sha256": "9fc4a1445b2dc49d6331ecc7638a95289feb0b1cf94d8ee74daa285a234ccd49", + "frames": 999, + "directed_edges": 2929, + "ranks": { + "1": 1751, + "2": 670, + "8": 16, + "3": 142, + "4": 280, + "5": 14, + "6": 56 + }, + "endpoint_adapters": 224, + "all_child_equalities_include_global_phase": true, + "recipe_sha256": "9ca2571e17012130b8b3359339f235df9c995dd3b92f86c44e45a2c2da77ac31", + "seconds": 83.62696195906028, + "scope": "Every local frame and center transition. Expanded scalar-interface integration and global emitted program are separate obligations." +} diff --git a/research/static44-selective-validation/macos-python314/complex-local/INDEPENDENT-LOCAL-REPLAY.json b/research/static44-selective-validation/macos-python314/complex-local/INDEPENDENT-LOCAL-REPLAY.json new file mode 100644 index 0000000000..19094a76ca --- /dev/null +++ b/research/static44-selective-validation/macos-python314/complex-local/INDEPENDENT-LOCAL-REPLAY.json @@ -0,0 +1,58 @@ +{ + "status": "PASS_INDEPENDENT_LOCAL_SCALAR_FRAME_AND_WRAPPER_REPLAY", + "canonical_word_sha256": "9fc4a1445b2dc49d6331ecc7638a95289feb0b1cf94d8ee74daa285a234ccd49", + "local_programs_sha256": "c88fe1770b76cf0dc1c3a90a95baefd898e95012248984c69bf0ca87cf3fafba", + "v": 112, + "helpers": 504, + "local": { + "forward": { + "all_exact_columns": 728, + "prefix_l1_upper": "86491024246", + "prefix_bits_upper": 37, + "charged_payload_bits": 192, + "private_work_erased": true + }, + "backward": { + "all_exact_columns": 728, + "prefix_l1_upper": "1014379822882", + "prefix_bits_upper": 40, + "charged_payload_bits": 192, + "private_work_erased": true + } + }, + "paid_profiles": { + "forward": { + "1": 2204, + "4": 280, + "8": 8, + "3": 184, + "2": 728, + "6": 56, + "5": 56 + }, + "backward": { + "1": 2204, + "4": 280, + "8": 8, + "3": 184, + "2": 728, + "6": 56, + "5": 56 + } + }, + "entering_helpers": 212, + "negative_controls_rejected": [ + "wrong_scale", + "missing_center", + "wrong_common_frame", + "wrong_child_rank", + "missing_pre_wrapper", + "missing_post_wrapper", + "wrapper_with_wrong_frame", + "wrapper_in_wrong_phase", + "wrapper_on_a_data_register", + "wrapper_on_a_target_register", + "wrapper_on_a_centre_register" + ], + "scope": "Literal forward and inverse-transpose replay on every arbitrary data/helper column, physical frame incidence, ordered paid wrappers, cleared private work and prefix coefficients. Global hosting and outer exponent are separate." +} diff --git a/research/static44-selective-validation/macos-python314/complex-local/LEMMA-A.json b/research/static44-selective-validation/macos-python314/complex-local/LEMMA-A.json new file mode 100644 index 0000000000..4701120c11 --- /dev/null +++ b/research/static44-selective-validation/macos-python314/complex-local/LEMMA-A.json @@ -0,0 +1,287 @@ +{ + "status": "PASS_RESIDUAL_WRAPPERS_ARE_EXACT", + "frames": 23, + "wrappers_reject": [ + "wrong global phase", + "wrong translation", + "wrong quadratic form", + "sides swapped", + "wrong width" + ], + "all_even_weight": true, + "all_totally_isotropic": false, + "detail": [ + { + "frame": 2, + "entrance_rank": 1, + "residual_width": 8, + "vectors": [ + 75 + ], + "all_even_weight": true, + "totally_isotropic": true + }, + { + "frame": 3, + "entrance_rank": 1, + "residual_width": 8, + "vectors": [ + 102 + ], + "all_even_weight": true, + "totally_isotropic": true + }, + { + "frame": 4, + "entrance_rank": 1, + "residual_width": 8, + "vectors": [ + 120 + ], + "all_even_weight": true, + "totally_isotropic": true + }, + { + "frame": 5, + "entrance_rank": 1, + "residual_width": 8, + "vectors": [ + 85 + ], + "all_even_weight": true, + "totally_isotropic": true + }, + { + "frame": 6, + "entrance_rank": 1, + "residual_width": 8, + "vectors": [ + 459 + ], + "all_even_weight": true, + "totally_isotropic": true + }, + { + "frame": 7, + "entrance_rank": 1, + "residual_width": 8, + "vectors": [ + 486 + ], + "all_even_weight": true, + "totally_isotropic": true + }, + { + "frame": 422, + "entrance_rank": 1, + "residual_width": 8, + "vectors": [ + 45 + ], + "all_even_weight": true, + "totally_isotropic": true + }, + { + "frame": 423, + "entrance_rank": 1, + "residual_width": 8, + "vectors": [ + 51 + ], + "all_even_weight": true, + "totally_isotropic": true + }, + { + "frame": 424, + "entrance_rank": 1, + "residual_width": 8, + "vectors": [ + 30 + ], + "all_even_weight": true, + "totally_isotropic": true + }, + { + "frame": 425, + "entrance_rank": 4, + "residual_width": 5, + "vectors": [ + 413, + 72, + 48, + 3 + ], + "all_even_weight": true, + "totally_isotropic": false + }, + { + "frame": 426, + "entrance_rank": 4, + "residual_width": 5, + "vectors": [ + 407, + 66, + 36, + 9 + ], + "all_even_weight": true, + "totally_isotropic": false + }, + { + "frame": 427, + "entrance_rank": 4, + "residual_width": 5, + "vectors": [ + 455, + 33, + 18, + 12 + ], + "all_even_weight": true, + "totally_isotropic": false + }, + { + "frame": 428, + "entrance_rank": 4, + "residual_width": 5, + "vectors": [ + 258, + 130, + 85, + 45 + ], + "all_even_weight": true, + "totally_isotropic": false + }, + { + "frame": 429, + "entrance_rank": 4, + "residual_width": 5, + "vectors": [ + 264, + 136, + 85, + 51 + ], + "all_even_weight": true, + "totally_isotropic": false + }, + { + "frame": 430, + "entrance_rank": 4, + "residual_width": 5, + "vectors": [ + 427, + 96, + 24, + 6 + ], + "all_even_weight": true, + "totally_isotropic": false + }, + { + "frame": 431, + "entrance_rank": 4, + "residual_width": 5, + "vectors": [ + 288, + 160, + 75, + 30 + ], + "all_even_weight": true, + "totally_isotropic": false + }, + { + "frame": 432, + "entrance_rank": 4, + "residual_width": 5, + "vectors": [ + 423, + 65, + 20, + 10 + ], + "all_even_weight": true, + "totally_isotropic": false + }, + { + "frame": 433, + "entrance_rank": 4, + "residual_width": 5, + "vectors": [ + 257, + 129, + 102, + 30 + ], + "all_even_weight": true, + "totally_isotropic": false + }, + { + "frame": 434, + "entrance_rank": 4, + "residual_width": 5, + "vectors": [ + 399, + 68, + 34, + 17 + ], + "all_even_weight": true, + "totally_isotropic": false + }, + { + "frame": 435, + "entrance_rank": 4, + "residual_width": 5, + "vectors": [ + 260, + 132, + 75, + 51 + ], + "all_even_weight": true, + "totally_isotropic": false + }, + { + "frame": 436, + "entrance_rank": 4, + "residual_width": 5, + "vectors": [ + 411, + 80, + 40, + 5 + ], + "all_even_weight": true, + "totally_isotropic": false + }, + { + "frame": 437, + "entrance_rank": 4, + "residual_width": 5, + "vectors": [ + 272, + 144, + 75, + 45 + ], + "all_even_weight": true, + "totally_isotropic": false + }, + { + "frame": 438, + "entrance_rank": 4, + "residual_width": 5, + "vectors": [ + 320, + 192, + 45, + 30 + ], + "all_even_weight": true, + "totally_isotropic": false + } + ] +} diff --git a/research/static44-selective-validation/macos-python314/static44/SCALAR-AUDIT.json b/research/static44-selective-validation/macos-python314/static44/SCALAR-AUDIT.json new file mode 100644 index 0000000000..7753a5306e --- /dev/null +++ b/research/static44-selective-validation/macos-python314/static44/SCALAR-AUDIT.json @@ -0,0 +1,56 @@ +{ + "status": "PASS_EXACT_RATIONAL_FORWARD_AND_INVERSE_TRANSPOSE", + "word_sha256": "3bfb5ec13b794f66bdf4eebd885657ec3ea074b51ff19dcd0f91daa61f886536", + "selection_sha256": "16ecc4a5c08af6750ee8610b722f74eba82a9eeb9703f0f0e0ace08ce5c82ad3", + "columns_each_orientation": 728, + "compensations": 9760, + "program_operations": 16894, + "kernel_pivots": 44, + "controls": { + "264": "REJECTED_OMITTED_KERNEL_CORRECTION", + "265": "REJECTED_OMITTED_KERNEL_CORRECTION", + "312": "REJECTED_OMITTED_KERNEL_CORRECTION", + "313": "REJECTED_OMITTED_KERNEL_CORRECTION", + "314": "REJECTED_OMITTED_KERNEL_CORRECTION", + "315": "REJECTED_OMITTED_KERNEL_CORRECTION", + "350": "REJECTED_OMITTED_KERNEL_CORRECTION", + "351": "REJECTED_OMITTED_KERNEL_CORRECTION", + "276": "REJECTED_OMITTED_KERNEL_CORRECTION", + "277": "REJECTED_OMITTED_KERNEL_CORRECTION", + "324": "REJECTED_OMITTED_KERNEL_CORRECTION", + "325": "REJECTED_OMITTED_KERNEL_CORRECTION", + "326": "REJECTED_OMITTED_KERNEL_CORRECTION", + "327": "REJECTED_OMITTED_KERNEL_CORRECTION", + "338": "REJECTED_OMITTED_KERNEL_CORRECTION", + "339": "REJECTED_OMITTED_KERNEL_CORRECTION", + "262": "REJECTED_OMITTED_KERNEL_CORRECTION", + "263": "REJECTED_OMITTED_KERNEL_CORRECTION", + "322": "REJECTED_OMITTED_KERNEL_CORRECTION", + "323": "REJECTED_OMITTED_KERNEL_CORRECTION", + "328": "REJECTED_OMITTED_KERNEL_CORRECTION", + "329": "REJECTED_OMITTED_KERNEL_CORRECTION", + "352": "REJECTED_OMITTED_KERNEL_CORRECTION", + "353": "REJECTED_OMITTED_KERNEL_CORRECTION", + "274": "REJECTED_OMITTED_KERNEL_CORRECTION", + "275": "REJECTED_OMITTED_KERNEL_CORRECTION", + "310": "REJECTED_OMITTED_KERNEL_CORRECTION", + "311": "REJECTED_OMITTED_KERNEL_CORRECTION", + "316": "REJECTED_OMITTED_KERNEL_CORRECTION", + "317": "REJECTED_OMITTED_KERNEL_CORRECTION", + "340": "REJECTED_OMITTED_KERNEL_CORRECTION", + "341": "REJECTED_OMITTED_KERNEL_CORRECTION", + "299": "REJECTED_OMITTED_KERNEL_CORRECTION", + "301": "REJECTED_OMITTED_KERNEL_CORRECTION", + "347": "REJECTED_OMITTED_KERNEL_CORRECTION", + "349": "REJECTED_OMITTED_KERNEL_CORRECTION", + "359": "REJECTED_OMITTED_KERNEL_CORRECTION", + "361": "REJECTED_OMITTED_KERNEL_CORRECTION", + "370": "REJECTED_OMITTED_KERNEL_CORRECTION", + "371": "REJECTED_OMITTED_KERNEL_CORRECTION", + "372": "REJECTED_OMITTED_KERNEL_CORRECTION", + "373": "REJECTED_OMITTED_KERNEL_CORRECTION", + "375": "REJECTED_OMITTED_KERNEL_CORRECTION", + "377": "REJECTED_OMITTED_KERNEL_CORRECTION" + }, + "scope": "Exact local scalar identity and preserved frame-zero compensation; physical owner routing, complete invoice and outer kappa separate." +} diff --git a/research/static44-selective/EXPECTED.json b/research/static44-selective/EXPECTED.json new file mode 100644 index 0000000000..d6ca3ca276 --- /dev/null +++ b/research/static44-selective/EXPECTED.json @@ -0,0 +1,47 @@ +{ + "kappa": "397150561665803/250000000000000000", + "kappa_decimal": "0.001588602246663212", + "complex_lower": "31864911873350496687/20000000000000000000000", + "bit_lower": "1591129919227630331373/1000000000000000000000000", + "binding_component": "bit", + "status": "PASS_STATIC44_SELECTIVE_BOTH_SUPPLIERS", + "bit_local_profile": { + "1": 1270, + "2": 1320, + "3": 50, + "4": 170, + "6": 130, + "8": 9 + }, + "bit_global_profile": { + "1": 365760, + "2": 395520, + "3": 14400, + "4": 64320, + "6": 52800, + "7": 23040, + "8": 2592 + }, + "bit_word_sha256": "275447d211596b5a7bc1435bb1597cf70300679b27a127a78eb1efbf83506af0", + "bit_payload_prefix_bits": 101, + "bit_prefix_bits": 191, + "bit_charged_prefix_bits": 192, + "bit_two_level_bits": 421, + "bit_charged_two_level_bits": 512, + "complex_global_profile": { + "1": 158688, + "2": 52864, + "3": 15171, + "4": 20160, + "5": 4032, + "6": 4032, + "7": 208, + "8": 576, + "39": 1, + "48": 1660 + }, + "complex_live": 7168, + "complex_deficit": 2560, + "complex_helper_roles": 36288, + "endpoint_adapters": 224 +} diff --git a/research/static44-selective/LICENSE b/research/static44-selective/LICENSE new file mode 100644 index 0000000000..261eeb9e9f --- /dev/null +++ b/research/static44-selective/LICENSE @@ -0,0 +1,201 @@ + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright [yyyy] [name of copyright owner] + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. diff --git a/research/static44-selective/MANIFEST.json b/research/static44-selective/MANIFEST.json new file mode 100644 index 0000000000..2a0871b5c9 --- /dev/null +++ b/research/static44-selective/MANIFEST.json @@ -0,0 +1,245 @@ +{ + "SOURCES.json": "c174ba76d22a9211dde15473b103f092fcc34cffb8c1026e42b9fe5a00106820", + "EXPECTED.json": "8f48531cb1ccc6c1fe7c80ba5990f8aea4278dbe9394bcc4d3f471a3e8d75f1c", + "LICENSE": "c71d239df91726fc519c6eb72d318ec65820627232b2f796219e87dcf35d0ab4", + "README.md": "0c9ac7e68d974e8fe0fe7aa40a164758a7c2e57a424d4d82290a141437cb0a40", + "verify.py": "9b382481dc10e659a8999a8718986896d64eaa41794d505bcb5d192b18907527", + "NOTICE.md": "9217b11e4ad37d5a414ef90823b4e834c027078a24497f3ed7f86179f4cb3240", + "proof/PR510-MUTABLE-SOURCE-CARRYOVER.md": "b2b597491874d6e4ad3ead49bf9a15515745de578bc8c200ab60cf6ec9bac1f2", + "proof/CONSTRUCTION.md": "7673365c38fa9cf4e26c8e3714177d5b4223e7c356ca9cfb28da517f3b558774", + "code/run.py": "a32781a6319b96759aa8be71b3a797463051ebdedeba289a08ff3d88fa129f35", + "code/build_bit.py": "261feb785342a3ca89b804a453c02540b9563d6d815aa2882fa4e408567e85b6", + "code/assemble.py": "9122d9de13ef5fbebea2454bc1cad877c83cf39faa9d03d53f59801572a16d9c", + "code/build_preload60.py": "105641136b565003118f362bb67086e1eeb4910aed6af593a011f60c2b2962b6", + "code/run_native.py": "4e06ccc72d7e2298e652a0c2745d82b611dabc7e52f0cc20037d53258570b942", + "code/phases_full.py": "a273c325ffd6793d5b63b79a289a9d2bbc9292e6940fb5a926924f3708627af4", + "code/run_global.py": "080c31b884140488bbb9c44c52be2b3187af82d1ae5545328927865657c6fa8c", + "data/PLAN.json": "f5e285823588889c69ef4d37c85179f038dfee95c56c5f5ad8aae28706efe8af", + "data/FRAME-RECIPE.json": "e638ce10c29c3bf8754044a85ea8b90a1ee6c549fc981fe63f055f7d96026c72", + "data/OWNERS.json.gz": "14109d8474419da2714f21e08367ae2750cf1879d50f6a9ed96ce12a314dd8e1", + "data/SLICE-RECIPE.json": "66ae4a87537fc20fe8c7f5adac80a4a9dd9fa037fc73a7385be61648ecba8a60", + "data/NINE-GEOMETRY.json.gz": "8a04c048a6ad87f8004fc650263dcac6de7d815e6f00eb93b1b36c1623f34a43", + "vendor/pr531/SOURCES.json": "9e8182e6e659f4671fe0873e324b622cc871df7344157093df40476c8687be5f", + "vendor/pr531/EXPECTED.json": "0c4c7df98633ace6dd3f1604462dd509945f6b2d463a0b045442b785906101f1", + "vendor/pr531/LICENSE": "c71d239df91726fc519c6eb72d318ec65820627232b2f796219e87dcf35d0ab4", + "vendor/pr531/README.md": "305497b4bf15e691bf0ea504f628a397ea40b814053948ca32c84ce5c16e6f5b", + "vendor/pr531/verify_fast.py": "ea4e33a17419009f0872fac42f7ae5a2f2090c4487cc9815721d907d1e9b1cae", + "vendor/pr531/LOCAL-VALIDATION.json": "e7dcbbe16d3a51288dddcc9022ba852ea6c9d428f8391c72d9b61429168a5561", + "vendor/pr531/MANIFEST.json": "c1997405c5c0ccd9bdb0a30b0eb9a5a2dc7dc7ce7b59c6a83a2152b80f6410d1", + "vendor/pr531/NOTICE.md": "a92f49c5ced455160fbedcc8954e3c9255e3605e88ad12ae5a84f1c4302986f1", + "vendor/e8-bit-carrier-skeleton/MANIFEST.sha256": "7f25c41d0400ef5adf763eae6e166003a9b59e5a655b860c04b052f6731c7297", + "vendor/e8-bit-carrier-skeleton/SOURCE-pr436.json": "4a4f99f5bdb7530a0dcf9433f7f02afbf2abf908e718f7c63ffa5503d4f49693", + "vendor/e8-bit-carrier-skeleton/EXPECTED.json": "3494ba83280cc86548fe0cc6695c50d23e6b6ffca85aeb1a33337c1196e280cb", + "vendor/e8-bit-carrier-skeleton/LICENSE": "c71d239df91726fc519c6eb72d318ec65820627232b2f796219e87dcf35d0ab4", + "vendor/e8-bit-carrier-skeleton/requirements.txt": "6023d480f929cdfa4e2f35e361eea003451cd6695af806935a32038b0115abb5", + "vendor/e8-bit-carrier-skeleton/SOURCE-pr483.json": "24e3eab4a985e115adb7f8665a401423e9636e9f16cc4373ec68cc86950445a8", + "vendor/e8-bit-carrier-skeleton/SOURCE-pr381.json": "16b1977240ca9acb58fa64572fb4231a423bc10bbf3e7bb30f1c8201fe369ba5", + "vendor/e8-bit-carrier-skeleton/SOURCE-pr471.json": "499d861e090c9e646d978dd67890a8e58a9ff6bf08512684e66605179132076b", + "vendor/e8-bit-carrier-skeleton/SOURCE-pr386.json": "87c659ba932525631a40be14dca28a6a2efade8641f23bb08d6e1567fc991131", + "vendor/e8-bit-carrier-skeleton/SOURCE-pr451.json": "a639956eec858341987a815b7464ef472505300db754b5f9ac012dd01d18c8df", + "vendor/e8-bit-carrier-skeleton/verify.sh": "0f9248aa3611dfe2b5d59dbe992c6f7d21a0cc4f1de2b5ed05a6110191191224", + "vendor/e8-bit-carrier-skeleton/SOURCE-pr484.json": "b92f43fbcba3921a1aa37bcb9f05cf5fa612ff708785e05512438a6317bf0867", + "vendor/e8-bit-carrier-skeleton/README.md": "e5212e8058c92a2b02cc12b4e174a65ce1cef7b4d7977ae770e64f5ff91b7204", + "vendor/e8-bit-carrier-skeleton/SOURCE-pr473.json": "2515c4f23dfa22a21913d92597669770f7f44c2a5b3ef069ef68a0c89779a656", + "vendor/e8-bit-carrier-skeleton/SOURCE-pr445.json": "e6f4a272442bb71ef68aaa3545b271236f9c99297e444fa01c62b0b5fb6a170f", + "vendor/e8-bit-carrier-skeleton/SOURCE-pr448.json": "c771fa9be492408a78d6d970c839e68c4dfd1b66f4f4a4748e3d12726a43cf27", + "vendor/e8-bit-carrier-skeleton/SOURCE-pr370.json": "03de1d341196cfa8cf1d39f3cc8648b25bb5f39c3c602a728cfbd089e8253ac0", + "vendor/e8-bit-carrier-skeleton/SOURCE-pr472.json": "6753bcf50c91806b75dd4dbe3963a79699a614d0dab8ce32b261cc3e76b288b1", + "vendor/e8-bit-carrier-skeleton/SOURCE-pr458.json": "cbdea984a46ab5de354b95e73fd76c1918fdc6676c658398a552772c4dc3dcaf", + "vendor/e8-bit-carrier-skeleton/NOTICE.md": "5f4b7fcbf99f572be28b6da612ce775363908cdfc7810f7aca167be01c86e49a", + "vendor/e8-bit-carrier-skeleton/SOURCE-pr478.json": "9c7c4ea678865a955b0c89f0952927159976fdf55cadc6a488dec5757f03fe7d", + "vendor/e8-r480-nine-stage/EXPECTED.json": "883f7a1a84f31d9e4430e348bc8d9c1ec10210b206ff602dbe126349056af13d", + "vendor/e8-r480-nine-stage/LICENSE": "c71d239df91726fc519c6eb72d318ec65820627232b2f796219e87dcf35d0ab4", + "vendor/e8-r480-nine-stage/SOURCE.json": "c58978211d35c902e8dcf65f94220060959eae97d58e68f245d566bfb33fdef7", + "vendor/e8-r480-nine-stage/README.md": "14ba6d703dde9429c82c546199affe855c147ccfd5012fc13da9f18cdf0b5dda", + "vendor/e8-r480-nine-stage/MANIFEST.json": "4da5a1b9b3249368cb9fcca792b0771775ee7f21ca58614ddc6bb974b94733c4", + "vendor/e8-r480-nine-stage/verify.py": "28c369decf805aa5ea9a1e7c9d8b373a814f57cea8098ab9ed31c3fa6d3af86c", + "vendor/e8-r480-nine-stage/NOTICE.md": "f3e97a9876a4d79af9260acc95df9e6b88e46f761a6c4b7a4e75e959468cf47e", + "vendor/e8-r480-dead-totals/EXPECTED.json": "5e4a6b141ffd110a539f3be05be1bd249dc5ecec898cdd838642c71f9c42ac9b", + "vendor/e8-r480-dead-totals/LICENSE": "c71d239df91726fc519c6eb72d318ec65820627232b2f796219e87dcf35d0ab4", + "vendor/e8-r480-dead-totals/README.md": "8a2c494ffe729b903a87548a4ac68a56ceb81d45e4f786985f18c1091897fe2f", + "vendor/e8-r480-dead-totals/MANIFEST.json": "5cf65e9dd0af2de68498c360bd118eb38e926fd9c7da1bc6bb054ee9ec64e262", + "vendor/e8-r480-dead-totals/verify.py": "c28ad846dcb012d270c0bf4f9e998696d319c20bfaedf2963fd5138b3369fd66", + "vendor/e8-r480-dead-totals/NOTICE.md": "90e0b76e6f7c15bda8d854ec5bc6e07e4553ec1f73c86b17c35bd77b0abc4438", + "vendor/static44/build.py": "b15192ff50fd99f5ca3cb5857b5e129c98a212de60ae76aafb1614139743c35a", + "vendor/static44/SOURCE-MANIFEST.json": "4f5d92b4cd76eff0845a9f14d33131441535a232b5c91f00535aa076d44c45a8", + "vendor/static44/PROOF.md": "abfa6548b223893866094631aed61174575dc1b17bdd60627b2c55e6b9477e4f", + "vendor/static44/LICENSE": "c71d239df91726fc519c6eb72d318ec65820627232b2f796219e87dcf35d0ab4", + "vendor/static44/RECIPE.json": "8735ac9beadff3edcb4a4df8dae174415e0f83d9b4df8556c33ba7fd777505fa", + "vendor/static44/README.md": "51d6ef7ad3e12e72daf29e0260a11cd985a0148fe1efa0574a533dae726c553c", + "vendor/static44/NOTICE-upstream.md": "1547136e6d269fdcef2b68c10a97a786a79a4732a12738363f679bfb282430cd", + "vendor/static44/META-SOURCES.json": "c8aeb9313f2c671a9a8766c249ceb6cffa106dfdab3ab761da8e8c534b115090", + "vendor/static44/replay.py": "fd1ce7d1f8974b473aef8c6cec1e0c590e01d0d215b073e5573a771ce42fc74d", + "vendor/static44/audit_scalar.py": "a1cd720d281c7a9db7f17919c637cdcb8558e9f3c96e929706f0c21f317a7943", + "vendor/static44/gk/gk_word.py": "f027a9273bcf4e0971258c160b7d3b3c196366b32a529cff6e6a0e666b03826b", + "vendor/static44/gk/gk_common.py": "e68d190fd436b2f3955decb590adb53344d5d4ea0a19d62d86df1e4b55ecd198", + "vendor/static44/inputs/RAW504.json.gz": "1c6144791dbedf6427e3ee7b4c24fb05b5bf407f6346592f50f8dd8d9638108d", + "vendor/static44/inputs/OLD-RECIPE.json": "7e5c179246261edd9e1019e81e6e979537f02559da773b993a318f771cb7d763", + "vendor/static44/inputs/BASE535.json.gz": "edfffb8e8735e0d1f07c81d818022b705ef0889c2bccc193a2f7a661b9f7d390", + "vendor/e8-r480-dead-totals/code/adapt.py": "04ec15262595e502796efc1f100f1efd4f28585add48377af1bda702a12c0e40", + "vendor/e8-r480-dead-totals/data/hosting-r480.json": "29d55f5389a6bd7650e083b8318e725b505d8a6460a7afb4ddb08824675b6827", + "vendor/e8-r480-dead-totals/data/bitE8mut-r480.json.gz": "92e399e9a486b55229b5624632ac54f800dd9e022f2aee97f1e5f264bbc0ef5c", + "vendor/e8-r480-nine-stage/code/assemble9.py": "4bf6768224a3fac81ccda26df24f3763f9a4fbc35ad62bef2888595cdae519fe", + "vendor/e8-r480-nine-stage/code/adapt.py": "27b6b77cc4ebf439f9019e63a22dedc1ef72ee65fe120aad3d17316b1df06d7b", + "vendor/e8-r480-nine-stage/data/selection9-r480.json": "8176db518bed23ea8121543bfb18085ec6633064142ba40ac5db00f63b06553d", + "vendor/e8-r480-nine-stage/vendor/idle-axis-hosting/hosting_core.py": "d8b90cd5d152df3c7c351230863d9e61816ad5e1f21d69bea1a86a5daad559a3", + "vendor/e8-r480-nine-stage/vendor/e8-r740-replica32/code/config.py": "283d7fad45155ee91e704d63ec947cf4a60aeff5cc43510bc0e835f7da7d8767", + "vendor/e8-r480-nine-stage/vendor/e8-r740-replica32/code/e8core.py": "1cb286196c1530d06f50f0997febc5993b388f33464e295611b920ba30a24eeb", + "vendor/e8-r480-nine-stage/vendor/e8-r740-replica32/code/bank_routes.py": "7c6997c455bd55acca3a1603797c34e7733d557c27a7694a1429ff15773a505d", + "vendor/e8-r480-nine-stage/vendor/e8-r740-replica32/code/tile_m.py": "d6ae4a556472d403773cd2117c992bfc10e1187112da1b3893f3fae628a131dd", + "vendor/e8-r480-nine-stage/vendor/e8-r740-replica32/code/engines/base_two_moment.py": "aee70c242a2f1d225528fabe2002e1564d1dc884797c07d28a831c7878ee9098", + "vendor/e8-r480-nine-stage/vendor/e8-r740-replica32/code/engines/moment.py": "81cbc864e106418fc7854322746f72180cb8110ff39f74450a3b8d55a82c1482", + "vendor/e8-r480-nine-stage/vendor/e8-r740-replica32/code/engines/outer.py": "c1ebb52163a7219504c728a5c2b098bf1e50bf20148a2879c5a74c3cadc7c03c", + "vendor/e8-r480-nine-stage/vendor/e8-r715-eleven-stage-whole/code/bank_routes_k.py": "ea678a7befda10c6f1b9dd38a36fe1437c6468472bd649f60b9f01522047e0bf", + "vendor/e8-r480-nine-stage/vendor/e8-r715-eleven-stage-whole/code/global_k.py": "6368196a393ac25bb2918880e4c4bd31ed733b762c27b6873ab391cbc0c5c3c8", + "vendor/e8-r480-nine-stage/vendor/e8-r715-eleven-stage-whole/code/emit_k.py": "298b16c3d4f58a468ad1a64564c8500cb281414a3f3c0428fd467908eeb4a4b4", + "vendor/e8-r480-nine-stage/vendor/e8-r715-eleven-stage-whole/code/audit_hosted_k.py": "57e558c80a2fea6e291587b04afd76dfaee3550729997798b61f33daf90b8ec9", + "vendor/e8-r480-nine-stage/vendor/e8-r715-eleven-stage-whole/code/audit_parent_k.py": "374e1d983589463bbfa06b6e9f2ffafb9d2c14acf97b1f858593a3cef90e93d2", + "vendor/e8-r480-nine-stage/vendor/e8-r715-eleven-stage-whole/code/hosting_k.py": "081c3b95b18d900d97ce82af64fb428f085b6adc6d8ca93ea920797dad7eb81e", + "vendor/e8-r480-nine-stage/code/findings/flowlp2.py": "2e778aa9adaee190f9b72a6dac45b5fdeac04110baa00cdc1b0ff49e2ae84554", + "vendor/e8-r480-nine-stage/code/findings/piv0.py": "b6dea0162404d7a54d1e20c4b14720f00239eb4512187e09e6eb8e075887a00e", + "vendor/e8-r480-nine-stage/code/findings/levels.py": "366a56e07b61df63b46eb50dba4843e9416a63eb993106f1d139742d575767db", + "vendor/e8-bit-carrier-skeleton/discovery/plan.py": "40e8dea1b4b71c5afd5993625f57bcac089dd2f72dfbc4dbc23ce917e5a61010", + "vendor/e8-bit-carrier-skeleton/discovery/README.md": "b09aa45d5651720e10326cde559c863ba3ea45fe2fb6b4aaa3bfaa66a8fcf69f", + "vendor/e8-bit-carrier-skeleton/discovery/d4part.py": "a64927c340a4772ce0682b349e0c90c80d1a766000ccf397fb41b36a31929179", + "vendor/e8-bit-carrier-skeleton/discovery/host_select.py": "2aaaac18e083d289d4341e734c32571c89c51fefba04b388d407c7372b906dc7", + "vendor/e8-bit-carrier-skeleton/code/cited.py": "a4c2dd4755f2a45ceda327b36d9ee400c2804893000626ca8ff3f6ee296fd842", + "vendor/e8-bit-carrier-skeleton/code/provenance.py": "e28fd87d0e34a6f6f6f1fddb6c4891deac220662c954de855d7aa5a7f9cceca4", + "vendor/e8-bit-carrier-skeleton/data/complex-b.json": "dce3f4b76aa3f6c3ba826ce556ffa61398b33e81e4d1a226dd2a36ce684fb02e", + "vendor/e8-bit-carrier-skeleton/data/bit/bitE8-r865.json.gz": "1fb726ea3818fe0837cceb0dd22a71a0814f064e5e781628104610d6468e0e55", + "vendor/e8-bit-carrier-skeleton/data/bit/bitE8mut-r489.json.gz": "835eb96e147740fc7454f8cfb3dbd34ae89524b1dbd89a61e9288eae8ab6a5b9", + "vendor/e8-bit-carrier-skeleton/data/eleven/hosting.json": "61f790657c465d16d3455f48f90f816797b9ea08bf02dbd0c90d2cf41836257e", + "vendor/e8-bit-carrier-skeleton/data/eleven/residual-isometries.json": "0fa5b353a0321af2ce4e2045db1d4c2d6418a11663894e2afcdb1eaa1984bddc", + "vendor/e8-bit-carrier-skeleton/data/skeleton/d4part-pairs.json": "d69ffe3326140bc541b8f1639e02db43a5835ab8ca02cc742b5bee2bf2ef1ba9", + "vendor/e8-bit-carrier-skeleton/data/skeleton/plan-skB.json": "f6162bb4d8092bc233700fa7ebc6a0d79f2893135aee18e998369044abb3f44b", + "vendor/e8-bit-carrier-skeleton/data/complex/pr458/EXPECTED.json": "a4312cb0c53c2066a28b683a971a41e7d76c5f6d828a96481c3ae7b3c01bb2f3", + "vendor/e8-bit-carrier-skeleton/data/complex/pr473/EXPECTED.json": "70e515f0a5a2f9508cd030d35a99f90981a6eccc027c9ad5a3c77f5860310910", + "vendor/e8-bit-carrier-skeleton/data/complex/pr484/EXPECTED.json": "0c93018a23bc573c7d155d4786e0c3978e95be0fda974076697939a1a1d8e5be", + "vendor/e8-bit-carrier-skeleton/data/complex/pr483/EXPECTED.json": "799fa4ab2f785c478c3cdcb6c1c0428a5ce6e3ddbe4a4b2fd88630d811a593f6", + "vendor/e8-bit-carrier-skeleton/data/complex/pr448/EXPECTED.json": "18b42250c3faf6f0df76fcab6c3a483582192ad7bb09cb1985f4b0bb91d67024", + "vendor/e8-bit-carrier-skeleton/data/complex/pr478/EXPECTED.json": "07bd05d14c71df8925b0b03510b2b337334b73ac425a94e03b2ec34ed2680164", + "vendor/e8-bit-carrier-skeleton/data/complex/pr471/EXPECTED.json": "188f9d1a7450496dbfd8d64381febd20b0597141537eb1a003435297df2d1720", + "vendor/e8-bit-carrier-skeleton/code/bit/mutate_records.py": "b0e75d6550412a7be4017695e6b237392b611bb852ad8ff309d6682c9f166a4e", + "vendor/e8-bit-carrier-skeleton/code/bit/mutate_records_mut.py": "a9e085ec60d5657cd5d77832e3d95004e81b9f4f249d9e0fc95e345366cb2d2e", + "vendor/e8-bit-carrier-skeleton/code/bit/export_records.py": "8a5999601f917dbb492bb9ae9a344611f18cc7cedc53dc3c76496a369e530eb3", + "vendor/e8-bit-carrier-skeleton/code/eleven/audit.py": "5ad832830c19ec6c904d1b64480f6b1e71c5673fdd38d487d17e179b1d197c09", + "vendor/e8-bit-carrier-skeleton/code/eleven/local_audit.py": "95275473d7f9811011bda760dd0f04de5169c2a6922456dc9a5725a5d671f941", + "vendor/e8-bit-carrier-skeleton/code/eleven/assemble.py": "c47889a606701ae592374dd82a13cee8c5a4e8449b7facfdad2d90563a30a18c", + "vendor/e8-bit-carrier-skeleton/code/eleven/adapt.py": "d8a8c13b484d985f0133a5d06de4a78b8477314f922b9f693ba73640b7184d6b", + "vendor/e8-bit-carrier-skeleton/code/eleven/emit.py": "b0b25955875625ed63f82690f83aef976e3e9a978ae6620b23a23fc1207acd46", + "vendor/e8-bit-carrier-skeleton/code/skeleton/gen.py": "7cdcf48078ed4beacd2e240aa8145e4aa6984558748d07659cb1b252786e073a", + "vendor/e8-bit-carrier-skeleton/code/skeleton/geom.py": "bb356568fa05e7bfd5fcd9012903611cf742729a99b4dc3a13685355b2678ae3", + "vendor/e8-bit-carrier-skeleton/code/skeleton/e8.py": "721d859a6517d665ca84d03ef89668da3aae7433ffb0ee47faf37f2aeb85450e", + "vendor/e8-bit-carrier-skeleton/code/skeleton/wordkit.py": "2b6c12d96f24a4e81f2c807827c2b74cf80037367fc8034e8c871dd5ce008351", + "vendor/e8-bit-carrier-skeleton/code/nine/geometry.py": "36eeda3184bd009e89462b65c8725d10860c444f8da8f1f87e5f6e50120011ca", + "vendor/e8-bit-carrier-skeleton/code/pricing/base_two_moment.py": "aee70c242a2f1d225528fabe2002e1564d1dc884797c07d28a831c7878ee9098", + "vendor/e8-bit-carrier-skeleton/code/pricing/moment.py": "81cbc864e106418fc7854322746f72180cb8110ff39f74450a3b8d55a82c1482", + "vendor/e8-bit-carrier-skeleton/code/pricing/prime_witnesses.py": "98cd03bc9582e7bd0ab194c191ea8eea940539e510051443ab9fd3e572a364ab", + "vendor/e8-bit-carrier-skeleton/code/pricing/outer.py": "c1ebb52163a7219504c728a5c2b098bf1e50bf20148a2879c5a74c3cadc7c03c", + "vendor/e8-bit-carrier-skeleton/code/hub/idle-axis-hosting/hosting_core.py": "d8b90cd5d152df3c7c351230863d9e61816ad5e1f21d69bea1a86a5daad559a3", + "vendor/e8-bit-carrier-skeleton/code/hub/r740-hosted-eleven/code/geometry.py": "9554182d67e434ea84b4430f909a2c400abc755d8487b51454a8e6968e62859d", + "vendor/e8-bit-carrier-skeleton/code/hub/r740-hosted-eleven/code/emit.py": "ac63ee481f3d75cb9f0658faaa2412db81d55bc44d9f1ff1c0329ce1e75aa0d4", + "vendor/e8-bit-carrier-skeleton/code/hub/r740-hosted-eleven/code/row_bound.py": "de4a9b9cd797e1a05da56f62cfe725c8728cea3a4aa031b7d1b0a68f869760d6", + "vendor/e8-bit-carrier-skeleton/code/hub/r740-hosted-eleven/data/selection.json": "52dbbb68e8c147690d15eaa1d952df05d074b0c121885a4159d9f6732f391872", + "vendor/e8-bit-carrier-skeleton/code/hub/e8-r740-replica32/code/e8core.py": "1cb286196c1530d06f50f0997febc5993b388f33464e295611b920ba30a24eeb", + "vendor/e8-bit-carrier-skeleton/code/hub/e8-r740-replica32/code/bank_routes.py": "7c6997c455bd55acca3a1603797c34e7733d557c27a7694a1429ff15773a505d", + "vendor/e8-bit-carrier-skeleton/code/hub/e8-r740-replica32/code/tile_m.py": "d6ae4a556472d403773cd2117c992bfc10e1187112da1b3893f3fae628a131dd", + "vendor/e8-bit-carrier-skeleton/code/hub/e8-r740-replica32/data/word.json.gz": "d8d6d3d3f336720302bc40b3c1504fe3c3583a7a8d707bb9bd7b21f85e5e69c6", + "vendor/e8-bit-carrier-skeleton/code/hub/e8-r740-replica32/data/residual-isometries.json": "e12ed7ddd13cee101ba74a083b54665fd64d0b122b0bad5b83d817dcc8bae9d8", + "vendor/e8-bit-carrier-skeleton/code/hub/e8-r740-replica32/code/engines/base_two_moment.py": "aee70c242a2f1d225528fabe2002e1564d1dc884797c07d28a831c7878ee9098", + "vendor/e8-bit-carrier-skeleton/code/hub/e8-r740-replica32/code/engines/moment.py": "81cbc864e106418fc7854322746f72180cb8110ff39f74450a3b8d55a82c1482", + "vendor/e8-bit-carrier-skeleton/code/hub/e8-r740-replica32/code/engines/outer.py": "c1ebb52163a7219504c728a5c2b098bf1e50bf20148a2879c5a74c3cadc7c03c", + "vendor/e8-bit-carrier-skeleton/code/hub/r740-hosted-rank149/code/emit.py": "ac63ee481f3d75cb9f0658faaa2412db81d55bc44d9f1ff1c0329ce1e75aa0d4", + "vendor/e8-bit-carrier-skeleton/code/hub/r740-hosted-rank149/data/word.json.gz": "41626789888ee070e1b435fa380b10ab9b88e3cf7d8d8e166ecef17269bbcf47", + "vendor/e8-bit-carrier-skeleton/code/hub/r740-hosted-rank149/data/residual-isometries.json": "b23fda74a7979179e8fd83ee9870c1e232442cc90c05077adaabfe31d050d1e4", + "vendor/e8-bit-carrier-skeleton/code/hub/r740-hosted-rank149/data/selection.json": "4d9c2cf6a3d31a6faa287731e0721cb16601b0bc5c1a186b9645bfb5760ce8db", + "vendor/e8-bit-carrier-skeleton/code/hub/e8-r715-whole-hosted/code/audit.py": "d28062127a9b0d3866a3b79aad98a307233b20ebdb94cfb9f197d726b82ffea5", + "vendor/e8-bit-carrier-skeleton/code/hub/e8-r715-whole-hosted/code/local_audit.py": "23eda3fe3d774e7f2dbf4dbdd4ff90d69ae7d1762ff95c8629cdc7667aa3fe71", + "vendor/e8-bit-carrier-skeleton/code/hub/e8-r715-whole-hosted/code/assemble.py": "abb60c35e448e0f94073f38a0352d11249aaf7bb8dbd7352414ae60a1d2b79c3", + "vendor/e8-bit-carrier-skeleton/code/hub/e8-r715-whole-hosted/code/emit.py": "98d77cefbc3a76f9f10bd7df3a2590ab88b411f6afe77b5f8d73f1602eb2bef3", + "vendor/e8-bit-carrier-skeleton/code/hub/e8-r715-whole-hosted/data/hosting.json": "765382d4fefd594e94c8c5826ec6300422ce9f79c816d7f7323ef85e99320f28", + "vendor/e8-bit-carrier-skeleton/code/hub/e8-r715-whole-hosted/data/word.json.gz": "b2af02f593cd161bea64e6cd793508386914136be519f80726c071697379d5a9", + "vendor/e8-bit-carrier-skeleton/code/hub/e8-r715-whole-hosted/data/residual-isometries.json": "750221cc66badd0ed0a74e7aad2d59f91f89c107370af21c6d929fbdd4a08a9f", + "vendor/e8-bit-carrier-skeleton/code/bit/checkers/gram_frames.py": "223a5a07731fc315a90a3e48177796babc155c1d9985c7ae5017eff6af2a0608", + "vendor/e8-bit-carrier-skeleton/code/bit/checkers/json.hpp": "aaf127c04cb31c406e5b04a63f1ae89369fccde6d8fa7cdda1ed4f32dfc5de63", + "vendor/e8-bit-carrier-skeleton/code/bit/checkers/legality_h.cpp": "6c1ef2b24e57781d6951c172a1024fc4300e6fd392c9d6672079a7806ab663b3", + "vendor/e8-bit-carrier-skeleton/code/bit/checkers/columns_k.cpp": "1c344d18fcd494eeca93e259f10cafae7705780e6592f6dcb35b34752dab9bc2", + "vendor/e8-bit-carrier-skeleton/code/bit/checkers/columns_h.cpp": "d1297f9052be4f2496e1ff2a77e4db2c0cdbd7d460d489b4c03e50bf317238ce", + "vendor/e8-bit-carrier-skeleton/code/bit/independent/mutate_mut.py": "3b002c19a5dcca76a5594f2a30fac7c01d2b45fc96b3e7cfbfd8b720f5ffb4e8", + "vendor/e8-bit-carrier-skeleton/code/bit/independent/interface.py": "2c63a039f97e3a11ce5a6b83302d4f5beda160c1db14164a5a9b0855aeb19d3c", + "vendor/e8-bit-carrier-skeleton/code/bit/independent/mutate.py": "0ff65aace5da4b57d96235bf830f8f11969322e75134d498aeb70e9753ec6b0d", + "vendor/e8-bit-carrier-skeleton/code/bit/independent/relax.py": "d6e9f58de3fa41f538516b6227c249d61fb30f0f6843027cc8a07a1a372fa6b6", + "vendor/e8-bit-carrier-skeleton/code/bit/independent/checkword.py": "11bf9620ca9db16d52d9fe806b814fc9ec9a89c4d7645354d1861d96f6e805ad", + "vendor/e8-bit-carrier-skeleton/code/bit/regression/stage_cohort.py": "6c288f6f234b528c1a7c0a4adfb724e91e0fe6b18c8dffad96af3f973de1829a", + "vendor/e8-bit-carrier-skeleton/portable-include/bits/stdc++.h": "420094be2af295eed03a983dd66debbbe9cfb78d8252859f4498a615a0074b99", + "vendor/pr531/proof/DELIVERY-AND-COALESCING.md": "7e719f01416cf312272dfabca8b355d327128859c01d686056e0833e83870bc7", + "vendor/pr531/proof/LOCAL-CONSTRUCTION.md": "3b1fc44f6f8290361cb24526cf91c3174c734f5da3cc9fb94559a96168d39e70", + "vendor/pr531/proof/GLOBAL-HOSTING.md": "c47b61bf2e998583e4626eec068439600f3464aab2ddbdb0ac044b0136d7b502", + "vendor/pr531/evidence/LINE-GAUGE-SELECTION.json": "1ecec9dd594653d54448ba9e2fd7b7b830e26bfd159d3b268672f80d8cb06250", + "vendor/pr531/evidence/FAST-REPLAY.json": "b95028b7cd5a830bd5d702d5193f0bc93d981426ca6f8916eea7a2bf9dcc53a7", + "vendor/pr531/evidence/COALESCING.json": "f9175c204c084e083ba2f8f4bc66dc71feb75d90b1b57b36dfacbffe89568ae0", + "vendor/pr531/evidence/PR523-FIXED-WORD-CEILING.json": "e971df6465b6a37d2042bd7e2169419578d68d7177c060599b16b3f67292935f", + "vendor/pr531/evidence/PUBLIC-SNAPSHOT.json": "d859621516bb33d1c77ea9413b53930fab42447360b7e6246ba839b95a834abb", + "vendor/pr531/evidence/SAME-PARTITION-FRONTIER.json": "3a02123a292730c1dfea8d6c1c8238115b4b07d19c8b8f119b54c345cd1f46af", + "vendor/pr531/evidence/DISCOVERY-MOMENT.json": "d964db94f4a11840bbea57a47c203a2fe6b51a381072d403d1c1504ac2ba0c7b", + "vendor/pr531/evidence/VERIFICATION-SCOPE.json": "424ea699b0849c3e8dd41d585b271906cbbbbddb4c3464fd20dde30133bae367", + "vendor/pr531/evidence/ENTRANCE-SELECTION-SCREEN.json": "2d5c7db49077ea50f0877f1bd3a5839e5c49a7c75519ebaf549bce0e828b7b99", + "vendor/pr531/evidence/BEFORE-COALESCING.json.gz": "5381265008ec84dc0b3eb2870040215b8470620d234573c15e836dba928d910e", + "vendor/pr531/code/emit_supplier_hosted.py": "53c0b653b3a5100756d6a9473c90101b8c3ab72723d7047983906ab997bdf920", + "vendor/pr531/code/audit_same_partition_frontier.py": "3a2a072304c0c112b4938070515035b49595c86565b454806fdcbbfacf0e1bd2", + "vendor/pr531/code/audit_and_transport.py": "a4fc272266785e1fffd44775c6fa6df783c4352de4c3f1d925cf953a23b84e7f", + "vendor/pr531/code/invoice_final.py": "96b6bed96ca8b60dfc064cd1c7962c45a5cb53c4e52cd90aaea6ccf8d109db97", + "vendor/pr531/code/construct_504.py": "a0d96ede40b957c38dcb64296d5f4a76c23dfb8c8875e01a80b5f1bdf6e8360e", + "vendor/pr531/code/assemble.py": "71b4cbbbc5acdfe06ac67879cf54ea761e29e52143af1cd8410ad672a5cc190b", + "vendor/pr531/code/emit_local.py": "eefc76e0bee003015fe21ac685c2cce658033d5444add404d2d509c7d6f39bac", + "vendor/pr531/code/audit_supplier_hosted.py": "301e9b5c593b6d583065337eb7b3ef207cf039e265f099f89080a4bf25856b43", + "vendor/pr531/code/audit_local.py": "69b12c45d0a961175a824c1967353c7f3b94818a7dd6ac7bbcf56a6d1a5ed8e8", + "vendor/pr531/code/adapters_local.py": "4e89a5c517cd87ff6a5aa9b7334c0d74821179ae5777d31284da25b9d8abf113", + "vendor/pr531/code/prepare_supplier_base.py": "f5eae94aca965d0008bc07cff8245ccb7509042ccad457d3bcb7d51c1e9409f0", + "vendor/pr531/code/build_selected.py": "7fa8f981cbf3b01ac960226e6afc6be7bd76d94d9c01796941979deb77bd8875", + "vendor/pr531/code/phases_delta.py": "15723107eff03013b2e797fd9fa3635b1b46c5d1c8112d19fada98c178d4acb6", + "vendor/pr531/code/coalesce_frames.py": "b3e53a17f2519e1afc5bee9b6518252eeb0cb7c56b6e0a1554fdfb54f2908915", + "vendor/pr531/inputs/OWNERS.json.gz": "5e27eaf098214e3ab8159e322241aa90a1ae77b0bff78b426512b87f9f60c91f", + "vendor/pr531/inputs/OWNER-PLAN.json": "13d5284e3d95fd4718b538f7d0d1e6f8db3236d4608a755dce6deade440f4185", + "vendor/pr531/inputs/PR523-ANCESTRY.json": "0bfce40d86c849f18e8872ee9e8462b0a69a34ed04e01e942a6614645f686f4b", + "vendor/pr531/inputs/PR523-PREFIX-AND-INVOICE.json": "bb43ef04791037a37d2596c395e81191991fde6581326118995cf4318ee472a3", + "vendor/pr531/inputs/PR493-EXPECTED.json": "3494ba83280cc86548fe0cc6695c50d23e6b6ffca85aeb1a33337c1196e280cb", + "vendor/pr531/inputs/SELECTION.json": "46cfad0c5a4b8dacc18ed02b5e259f2168e6a93a8dff6ffb447fb0f20917a9bd", + "vendor/pr531/inputs/PR523-EXACT-ASSEMBLY.json": "39900354203609a142d159096ccc221ddb21c1f714b2b74b9b1b325beaf15259", + "vendor/pr531/inputs/ASYNC-6.json": "8a128d7c435f01d9f920c1353711eb0721ce3cbdd0b8799bf69b2d676266dbd3", + "vendor/pr531/inputs/phase-baseline/CANONICAL-WORD.json.gz": "addf598581d2a20e13d0c18110607515ad90b06125616a2349e53a47bb5b6c80", + "vendor/pr531/inputs/phase-baseline/LOCAL-CHECKS.json": "ead7163869ecb9fc276f477c0ec0ed85dc74d7901ce04f91213bcf7ee1f20382", + "vendor/pr531/inputs/phase-baseline/CLIFFORD-REVIEW.json": "468a5df1937e82a0b8e8c1c2540e18480f354154325353c5596c68e7435c89c2", + "vendor/pr531/inputs/phase-baseline/CLIFFORD-RECIPES.json": "1f37afd5a9e14b113ba56e0ac8a5200a6b41c695d2cd308dc0fd6ec46a4c73d2", + "vendor/pr531/inputs/hamming/PACKET-PROGRAMS.json.gz": "d833ae0390d165d7da0c639a3c7aeb77156c2ddb52447087cb49b9d03b19e9b9", + "vendor/pr531/inputs/hamming/PROTOTYPE.json": "327d2a868043e846381aa58a33053c24425e8cad522ff401b10ec8af1d649a3f", + "vendor/pr531/inputs/data-base/split-centres/CANONICAL-WORD.json.gz": "addf598581d2a20e13d0c18110607515ad90b06125616a2349e53a47bb5b6c80", + "vendor/pr531/inputs/data-base/split-centres/GLOBAL-TEMPLATE.json.gz": "5b913207775fcd87090cfa8776e8bd2bb872426923345fe1a1a4e1ea84bfae2c", + "vendor/pr531/inputs/data-base/work/complex-nine-native/DATA-PHASES.json": "c5916ff312678f12aba403847643fbbc29f643acec60bdf836fa56cd3e8251fa", + "vendor/pr531/inputs/data-base/work/pr361/code/engines/base_two_moment.py": "aee70c242a2f1d225528fabe2002e1564d1dc884797c07d28a831c7878ee9098", + "vendor/pr531/inputs/data-base/work/pr361/code/engines/moment.py": "81cbc864e106418fc7854322746f72180cb8110ff39f74450a3b8d55a82c1482", + "vendor/pr531/inputs/data-base/work/pr361/code/engines/outer.py": "c1ebb52163a7219504c728a5c2b098bf1e50bf20148a2879c5a74c3cadc7c03c", + "vendor/pr531/vendor/clifford/clifford_exact.py": "2982ead07721e83358dc67c6f49c2b4c16a236a6bebdfd72f58221be1f5d0962", + "vendor/pr531/vendor/gk/gk_word.py": "f027a9273bcf4e0971258c160b7d3b3c196366b32a529cff6e6a0e666b03826b", + "vendor/pr531/vendor/gk/gk_common.py": "e68d190fd436b2f3955decb590adb53344d5d4ea0a19d62d86df1e4b55ecd198", + "vendor/pr531/evidence/hosted/HOSTED.json": "a0b29d73f2beb821a59f356150a7a9475394643bf9fd8eb5a67a6fc4d46ad2f5", + "vendor/pr531/evidence/hosted/ACTUAL-SIGMAS.json.gz": "dbced27348bd0ae2fb937a9c1fd03e2181d7268ccdea5d80ebbe6ec3fed314d9", + "vendor/pr531/evidence/hosted/IDLE-REMAINDER-FRAMES.json.gz": "a21fb2c7395b7193d46752f7bd9cc670fbfffc7287f8370bd9f6df0aed6b21eb", + "vendor/pr531/evidence/hosted/GLOBAL-TEMPLATE.json.gz": "0c5ea47883fafc2aa0b2b9711e7c52a3fc8fdf96c84eb3043834e34ced550473", + "vendor/pr531/evidence/local/CANONICAL-WORD.json.gz": "de2be0f4b6d24ace368fd5b834b7a00f9625d0a1824c4ff969f2db5f115db667", + "vendor/pr531/evidence/local/RESIDUAL-ADAPTERS.json": "83a91fb9cbbe600328cd399f67fdb6ffb698ed3b20d050916d21f3af48b0db20", + "vendor/pr531/evidence/local/LOCAL-PROGRAMS.json.gz": "755a5c4ebe958fd9f7b5d4a6e7a506d2c802e31c4d9da46b63db1994c4d8ffa6", + "vendor/pr531/evidence/local/LOCAL-CHECKS.json": "c6807681d40cb46c21a50edc1058044ddc758f2dd3e6b0bab16d7cb28d41732f", + "vendor/pr531/evidence/local/CLIFFORD-REVIEW.json": "a917bb1abdc864b404dc4a869af3e29aaab2270d392b662cb60b70ebbe5d1975", + "vendor/pr531/evidence/local/LEMMA-A.json": "f789357f75d562ec9c6f2ef75ced6f4286df2840b493600147b34a36ad0fa460", + "vendor/pr531/evidence/local/INDEPENDENT-LOCAL-REPLAY.json": "4149f3d2ec3041965c5d72869748090d9aeed422f36d753550c543bb7808b30b", + "vendor/pr531/evidence/local/CLIFFORD-RECIPES.json": "1ac0a7d07a487bf58e59e82a8a656a3a3edca5731af9029ad7874b535407ceb9", + "vendor/pr531/evidence/local/FULL-WORD.json.gz": "bd6b004c4948d5ce80d4f81477338fe30434c2a94586463fdcc531df0dbc9509", + "vendor/pr531/evidence/local/SCALAR-FRAME-AUDIT.json": "5bf884b9c5c9e65658974a8f5548f93a583fb48461e8125fa68893aa2b403718", + "vendor/pr531/evidence/audit/OWNERS-AND-PROFILE.json": "e5f11e7b920f9985f085546c641dbac5b8d98231d562e1e030ab2566ccea4bd6", + "vendor/pr531/evidence/audit/PREFIX-AND-INVOICE.json": "ce1bfa49be88ae67a404f606a11db2232b7e1f2610d4418058e39749d86d8478", + "vendor/pr531/evidence/audit/GLOBAL-PREFIX.json": "378275e21f7ff147cd7cb0b33c972e75139d949195ddf13dd71b55a77a0f7cfb", + "vendor/pr531/evidence/audit/ASYNC-AUDIT.json": "01ea0015d4e08170ac65f1cdd051be64e07f622eba62eadbf39524317388cba7", + "vendor/pr531/evidence/audit/IDLE-REMAINDER-FRAMES.json": "7923ed6a528f006c353fe7e0639fd230ad140ca835b8e64ceadc7aefb0300ea8", + "vendor/pr531/evidence/audit/EXACT-ASSEMBLY.json": "550c6703e73b2dcfaae986706ceb1ac67ecd93dec8b591954abe51c7fa3b7a03" +} diff --git a/research/static44-selective/NOTICE.md b/research/static44-selective/NOTICE.md new file mode 100644 index 0000000000..621b305f2e --- /dev/null +++ b/research/static44-selective/NOTICE.md @@ -0,0 +1,28 @@ +# Attribution and scope of changes + +Prepared for chafreaky with OpenAI Codex assistance. Apache-2.0; see LICENSE. +All notices in the inherited files are preserved. In particular, original +PR493/503/510 bit checker and invoice sources are copied from PR510, without +replacing contributor names or assistance notices. + +- PR541 by Dugongue contributes the 60-preload construction and the static44 + local appendix, including its fixed selection and scalar controls. Their + constructor and appendix are copied unchanged. The static44 appendix's + local-only scope remains accurately described in its original README. +- PR542 by rohanarun contributes the suffix-response slicing method. Its + 227 zero-response gate deletions are recomputed exactly in `build_bit.py`. +- PR535 by icekylinx supplies the post-center rank-four baseline inside the + static44 appendix. PR531 and its attributed PR484 lineage supply the complex + geometry, gauges, kernel primitives, local/global checkers and data controller. +- PR493/503/510 and their credited predecessors supply the native bit checkers, + mutable-source semantics, global hosting and exact invoice machinery. +- New here: ten fixed exact-cost bit frame changes, their exact replay; the + static44 global owner allocation and complete phase/owner admission; and + the composition and cold verification of both changed suppliers. + +`run_native.py` and `run_global.py` adapt PR541's orchestration for the new +profiles and actual checked prefix. `assemble.py` adapts the attributed +PR531/535/541 assembly to both fresh invoices and a 192-bit charged bit prefix. +The retained two-level charge is 512 bits. The independent native, owner, +invoice, moment and outer checkers are unchanged. `code/run.py` and +`code/phases_full.py` are carried from our attributed PR538 package. diff --git a/research/static44-selective/README.md b/research/static44-selective/README.md new file mode 100644 index 0000000000..cdcaf5541b --- /dev/null +++ b/research/static44-selective/README.md @@ -0,0 +1,47 @@ +# Static44 complex supplier and selectively reframed R480 bit supplier + +This conditional finite witness obtains **κ = 0.001588602246663212** with +complex exponent **b = 0.001593245593667524834350** and bit exponent +**c = 0.001591129919227630331373**. The bit supplier binds. This is about +0.0876% above PR541 and 0.0715% above PR542's candidate at the pinned heads. + +The bit construction combines PR541's 60 commuting preloads, PR542's exact +zero-response slicing, and ten new frame changes selected with negative +outward rational moment-cost intervals. The complex construction takes +PR541's explicitly local-only static44 appendix through a new literal owner +allocation, full local phase compilation, physical admission and finite invoice. +Both changed suppliers are rebuilt here. All search decisions are frozen; +verification needs neither a solver nor network access. + +Run from any directory, using Python with NumPy and SymPy, a C++17 compiler, +and genuine Boost headers: + +```sh +python -B verify.py --work /tmp/static44-selective-replay --boost-include /usr/include +``` + +On Homebrew macOS, use `--boost-include /opt/homebrew/include`. The output +directory must not exist. Do not use Python `-O`. + +The replay checks all 728 complex scalar columns in each orientation, 44 +omitted-pivot controls, every used local phase edge and 224 endpoint adapters, +residual wrappers, the literal global owner controller and seven owner mutants. +For the bit side it recompiles the unmodified inherited native checkers, +checks 960 five-stage and 1,440 nine-stage formal columns, 18 bridge controls, +six structural and three mutable-source record mutants, then rebuilds all +138,240 whole-hosted helper occurrences with 17 parent and 16 hosting mutants. +Both independent rational moment engines reject the next 10^-24 endpoint; +the final composition checks all 47 strict outer constraints and four controls. + +`EXPECTED.json` freezes the claimed result and profiles; `MANIFEST.json` binds +all package inputs, and `SOURCES.json` records the unchanged inherited files. +`RESULT.json`, `RECEIPT.json`, individual stage logs and detailed audits are +written outside the package. Only gzip's platform metadata byte is normalized +for cross-version serialization; the mathematical checkers are unchanged. + +This is a conditional finite witness, not an unconditional all-size theorem or +a proof of κ = 1. The unchanged complex data controller and its data-phase +certificate are retained from the PR531 dependency. All-size compilation, +common-label/mutable-basis realization, restored work, precision/tape and +analytic-transfer contracts remain inherited obligations. See +[the construction proof](proof/CONSTRUCTION.md) and the attributed source notices. diff --git a/research/static44-selective/SOURCES.json b/research/static44-selective/SOURCES.json new file mode 100644 index 0000000000..1382aec724 --- /dev/null +++ b/research/static44-selective/SOURCES.json @@ -0,0 +1,265 @@ +{ + "sources": [ + { + "pr": 510, + "commit": "64edee18af02aab0c1696b677a0287dd0146381b", + "paths": [ + "e8-bit-carrier-skeleton", + "e8-r480-dead-totals", + "e8-r480-nine-stage" + ], + "change": "Original full source directories copied unchanged." + }, + { + "pr": 531, + "commit": "c609855ff92acc8cae3aa0808a4ecb624165f548", + "path": "vendor/pr531", + "change": "Previously source-audited minimal offline dependency from PR538; original code, data controller, phases, and provenance retained." + }, + { + "pr": 541, + "commit": "6fd04b2e266b7915b69f96f27758cfce520aa40a", + "paths": [ + "vendor/static44", + "code/build_preload60.py", + "data/NINE-GEOMETRY.json.gz" + ], + "change": "Static44 appendix, preload constructor and geometry copied unchanged; native/global/assembly wrappers adapted separately." + }, + { + "pr": 542, + "commit": "98b6fc590a46b1067353fd04c89158f36580f2b7", + "path": "scripts/slice.py", + "change": "Exact zero-response deletion adapted in build_bit.py; no retarget search used." + } + ], + "inherited_files": { + "vendor/pr531/SOURCES.json": "9e8182e6e659f4671fe0873e324b622cc871df7344157093df40476c8687be5f", + "vendor/pr531/EXPECTED.json": "0c4c7df98633ace6dd3f1604462dd509945f6b2d463a0b045442b785906101f1", + "vendor/pr531/LICENSE": "c71d239df91726fc519c6eb72d318ec65820627232b2f796219e87dcf35d0ab4", + "vendor/pr531/README.md": "305497b4bf15e691bf0ea504f628a397ea40b814053948ca32c84ce5c16e6f5b", + "vendor/pr531/verify_fast.py": "ea4e33a17419009f0872fac42f7ae5a2f2090c4487cc9815721d907d1e9b1cae", + "vendor/pr531/LOCAL-VALIDATION.json": "e7dcbbe16d3a51288dddcc9022ba852ea6c9d428f8391c72d9b61429168a5561", + "vendor/pr531/MANIFEST.json": "c1997405c5c0ccd9bdb0a30b0eb9a5a2dc7dc7ce7b59c6a83a2152b80f6410d1", + "vendor/pr531/NOTICE.md": "a92f49c5ced455160fbedcc8954e3c9255e3605e88ad12ae5a84f1c4302986f1", + "vendor/e8-bit-carrier-skeleton/MANIFEST.sha256": "7f25c41d0400ef5adf763eae6e166003a9b59e5a655b860c04b052f6731c7297", + "vendor/e8-bit-carrier-skeleton/SOURCE-pr436.json": "4a4f99f5bdb7530a0dcf9433f7f02afbf2abf908e718f7c63ffa5503d4f49693", + "vendor/e8-bit-carrier-skeleton/EXPECTED.json": "3494ba83280cc86548fe0cc6695c50d23e6b6ffca85aeb1a33337c1196e280cb", + "vendor/e8-bit-carrier-skeleton/LICENSE": "c71d239df91726fc519c6eb72d318ec65820627232b2f796219e87dcf35d0ab4", + "vendor/e8-bit-carrier-skeleton/requirements.txt": "6023d480f929cdfa4e2f35e361eea003451cd6695af806935a32038b0115abb5", + "vendor/e8-bit-carrier-skeleton/SOURCE-pr483.json": "24e3eab4a985e115adb7f8665a401423e9636e9f16cc4373ec68cc86950445a8", + "vendor/e8-bit-carrier-skeleton/SOURCE-pr381.json": "16b1977240ca9acb58fa64572fb4231a423bc10bbf3e7bb30f1c8201fe369ba5", + "vendor/e8-bit-carrier-skeleton/SOURCE-pr471.json": "499d861e090c9e646d978dd67890a8e58a9ff6bf08512684e66605179132076b", + "vendor/e8-bit-carrier-skeleton/SOURCE-pr386.json": "87c659ba932525631a40be14dca28a6a2efade8641f23bb08d6e1567fc991131", + "vendor/e8-bit-carrier-skeleton/SOURCE-pr451.json": "a639956eec858341987a815b7464ef472505300db754b5f9ac012dd01d18c8df", + "vendor/e8-bit-carrier-skeleton/verify.sh": "0f9248aa3611dfe2b5d59dbe992c6f7d21a0cc4f1de2b5ed05a6110191191224", + "vendor/e8-bit-carrier-skeleton/SOURCE-pr484.json": "b92f43fbcba3921a1aa37bcb9f05cf5fa612ff708785e05512438a6317bf0867", + "vendor/e8-bit-carrier-skeleton/README.md": "e5212e8058c92a2b02cc12b4e174a65ce1cef7b4d7977ae770e64f5ff91b7204", + "vendor/e8-bit-carrier-skeleton/SOURCE-pr473.json": "2515c4f23dfa22a21913d92597669770f7f44c2a5b3ef069ef68a0c89779a656", + "vendor/e8-bit-carrier-skeleton/SOURCE-pr445.json": "e6f4a272442bb71ef68aaa3545b271236f9c99297e444fa01c62b0b5fb6a170f", + "vendor/e8-bit-carrier-skeleton/SOURCE-pr448.json": "c771fa9be492408a78d6d970c839e68c4dfd1b66f4f4a4748e3d12726a43cf27", + "vendor/e8-bit-carrier-skeleton/SOURCE-pr370.json": "03de1d341196cfa8cf1d39f3cc8648b25bb5f39c3c602a728cfbd089e8253ac0", + "vendor/e8-bit-carrier-skeleton/SOURCE-pr472.json": "6753bcf50c91806b75dd4dbe3963a79699a614d0dab8ce32b261cc3e76b288b1", + "vendor/e8-bit-carrier-skeleton/SOURCE-pr458.json": "cbdea984a46ab5de354b95e73fd76c1918fdc6676c658398a552772c4dc3dcaf", + "vendor/e8-bit-carrier-skeleton/NOTICE.md": "5f4b7fcbf99f572be28b6da612ce775363908cdfc7810f7aca167be01c86e49a", + "vendor/e8-bit-carrier-skeleton/SOURCE-pr478.json": "9c7c4ea678865a955b0c89f0952927159976fdf55cadc6a488dec5757f03fe7d", + "vendor/e8-r480-nine-stage/EXPECTED.json": "883f7a1a84f31d9e4430e348bc8d9c1ec10210b206ff602dbe126349056af13d", + "vendor/e8-r480-nine-stage/LICENSE": "c71d239df91726fc519c6eb72d318ec65820627232b2f796219e87dcf35d0ab4", + "vendor/e8-r480-nine-stage/SOURCE.json": "c58978211d35c902e8dcf65f94220060959eae97d58e68f245d566bfb33fdef7", + "vendor/e8-r480-nine-stage/README.md": "14ba6d703dde9429c82c546199affe855c147ccfd5012fc13da9f18cdf0b5dda", + "vendor/e8-r480-nine-stage/MANIFEST.json": "4da5a1b9b3249368cb9fcca792b0771775ee7f21ca58614ddc6bb974b94733c4", + "vendor/e8-r480-nine-stage/verify.py": "28c369decf805aa5ea9a1e7c9d8b373a814f57cea8098ab9ed31c3fa6d3af86c", + "vendor/e8-r480-nine-stage/NOTICE.md": "f3e97a9876a4d79af9260acc95df9e6b88e46f761a6c4b7a4e75e959468cf47e", + "vendor/e8-r480-dead-totals/EXPECTED.json": "5e4a6b141ffd110a539f3be05be1bd249dc5ecec898cdd838642c71f9c42ac9b", + "vendor/e8-r480-dead-totals/LICENSE": "c71d239df91726fc519c6eb72d318ec65820627232b2f796219e87dcf35d0ab4", + "vendor/e8-r480-dead-totals/README.md": "8a2c494ffe729b903a87548a4ac68a56ceb81d45e4f786985f18c1091897fe2f", + "vendor/e8-r480-dead-totals/MANIFEST.json": "5cf65e9dd0af2de68498c360bd118eb38e926fd9c7da1bc6bb054ee9ec64e262", + "vendor/e8-r480-dead-totals/verify.py": "c28ad846dcb012d270c0bf4f9e998696d319c20bfaedf2963fd5138b3369fd66", + "vendor/e8-r480-dead-totals/NOTICE.md": "90e0b76e6f7c15bda8d854ec5bc6e07e4553ec1f73c86b17c35bd77b0abc4438", + "vendor/static44/build.py": "b15192ff50fd99f5ca3cb5857b5e129c98a212de60ae76aafb1614139743c35a", + "vendor/static44/SOURCE-MANIFEST.json": "4f5d92b4cd76eff0845a9f14d33131441535a232b5c91f00535aa076d44c45a8", + "vendor/static44/PROOF.md": "abfa6548b223893866094631aed61174575dc1b17bdd60627b2c55e6b9477e4f", + "vendor/static44/LICENSE": "c71d239df91726fc519c6eb72d318ec65820627232b2f796219e87dcf35d0ab4", + "vendor/static44/RECIPE.json": "8735ac9beadff3edcb4a4df8dae174415e0f83d9b4df8556c33ba7fd777505fa", + "vendor/static44/README.md": "51d6ef7ad3e12e72daf29e0260a11cd985a0148fe1efa0574a533dae726c553c", + "vendor/static44/NOTICE-upstream.md": "1547136e6d269fdcef2b68c10a97a786a79a4732a12738363f679bfb282430cd", + "vendor/static44/META-SOURCES.json": "c8aeb9313f2c671a9a8766c249ceb6cffa106dfdab3ab761da8e8c534b115090", + "vendor/static44/replay.py": "fd1ce7d1f8974b473aef8c6cec1e0c590e01d0d215b073e5573a771ce42fc74d", + "vendor/static44/audit_scalar.py": "a1cd720d281c7a9db7f17919c637cdcb8558e9f3c96e929706f0c21f317a7943", + "vendor/static44/gk/gk_word.py": "f027a9273bcf4e0971258c160b7d3b3c196366b32a529cff6e6a0e666b03826b", + "vendor/static44/gk/gk_common.py": "e68d190fd436b2f3955decb590adb53344d5d4ea0a19d62d86df1e4b55ecd198", + "vendor/static44/inputs/RAW504.json.gz": "1c6144791dbedf6427e3ee7b4c24fb05b5bf407f6346592f50f8dd8d9638108d", + "vendor/static44/inputs/OLD-RECIPE.json": "7e5c179246261edd9e1019e81e6e979537f02559da773b993a318f771cb7d763", + "vendor/static44/inputs/BASE535.json.gz": "edfffb8e8735e0d1f07c81d818022b705ef0889c2bccc193a2f7a661b9f7d390", + "vendor/e8-r480-dead-totals/code/adapt.py": "04ec15262595e502796efc1f100f1efd4f28585add48377af1bda702a12c0e40", + "vendor/e8-r480-dead-totals/data/hosting-r480.json": "29d55f5389a6bd7650e083b8318e725b505d8a6460a7afb4ddb08824675b6827", + "vendor/e8-r480-dead-totals/data/bitE8mut-r480.json.gz": "92e399e9a486b55229b5624632ac54f800dd9e022f2aee97f1e5f264bbc0ef5c", + "vendor/e8-r480-nine-stage/code/assemble9.py": "4bf6768224a3fac81ccda26df24f3763f9a4fbc35ad62bef2888595cdae519fe", + "vendor/e8-r480-nine-stage/code/adapt.py": "27b6b77cc4ebf439f9019e63a22dedc1ef72ee65fe120aad3d17316b1df06d7b", + "vendor/e8-r480-nine-stage/data/selection9-r480.json": "8176db518bed23ea8121543bfb18085ec6633064142ba40ac5db00f63b06553d", + "vendor/e8-r480-nine-stage/vendor/idle-axis-hosting/hosting_core.py": "d8b90cd5d152df3c7c351230863d9e61816ad5e1f21d69bea1a86a5daad559a3", + "vendor/e8-r480-nine-stage/vendor/e8-r740-replica32/code/config.py": "283d7fad45155ee91e704d63ec947cf4a60aeff5cc43510bc0e835f7da7d8767", + "vendor/e8-r480-nine-stage/vendor/e8-r740-replica32/code/e8core.py": "1cb286196c1530d06f50f0997febc5993b388f33464e295611b920ba30a24eeb", + "vendor/e8-r480-nine-stage/vendor/e8-r740-replica32/code/bank_routes.py": "7c6997c455bd55acca3a1603797c34e7733d557c27a7694a1429ff15773a505d", + "vendor/e8-r480-nine-stage/vendor/e8-r740-replica32/code/tile_m.py": "d6ae4a556472d403773cd2117c992bfc10e1187112da1b3893f3fae628a131dd", + "vendor/e8-r480-nine-stage/vendor/e8-r740-replica32/code/engines/base_two_moment.py": "aee70c242a2f1d225528fabe2002e1564d1dc884797c07d28a831c7878ee9098", + "vendor/e8-r480-nine-stage/vendor/e8-r740-replica32/code/engines/moment.py": "81cbc864e106418fc7854322746f72180cb8110ff39f74450a3b8d55a82c1482", + "vendor/e8-r480-nine-stage/vendor/e8-r740-replica32/code/engines/outer.py": "c1ebb52163a7219504c728a5c2b098bf1e50bf20148a2879c5a74c3cadc7c03c", + "vendor/e8-r480-nine-stage/vendor/e8-r715-eleven-stage-whole/code/bank_routes_k.py": "ea678a7befda10c6f1b9dd38a36fe1437c6468472bd649f60b9f01522047e0bf", + "vendor/e8-r480-nine-stage/vendor/e8-r715-eleven-stage-whole/code/global_k.py": "6368196a393ac25bb2918880e4c4bd31ed733b762c27b6873ab391cbc0c5c3c8", + "vendor/e8-r480-nine-stage/vendor/e8-r715-eleven-stage-whole/code/emit_k.py": "298b16c3d4f58a468ad1a64564c8500cb281414a3f3c0428fd467908eeb4a4b4", + "vendor/e8-r480-nine-stage/vendor/e8-r715-eleven-stage-whole/code/audit_hosted_k.py": "57e558c80a2fea6e291587b04afd76dfaee3550729997798b61f33daf90b8ec9", + "vendor/e8-r480-nine-stage/vendor/e8-r715-eleven-stage-whole/code/audit_parent_k.py": "374e1d983589463bbfa06b6e9f2ffafb9d2c14acf97b1f858593a3cef90e93d2", + "vendor/e8-r480-nine-stage/vendor/e8-r715-eleven-stage-whole/code/hosting_k.py": "081c3b95b18d900d97ce82af64fb428f085b6adc6d8ca93ea920797dad7eb81e", + "vendor/e8-r480-nine-stage/code/findings/flowlp2.py": "2e778aa9adaee190f9b72a6dac45b5fdeac04110baa00cdc1b0ff49e2ae84554", + "vendor/e8-r480-nine-stage/code/findings/piv0.py": "b6dea0162404d7a54d1e20c4b14720f00239eb4512187e09e6eb8e075887a00e", + "vendor/e8-r480-nine-stage/code/findings/levels.py": "366a56e07b61df63b46eb50dba4843e9416a63eb993106f1d139742d575767db", + "vendor/e8-bit-carrier-skeleton/discovery/plan.py": "40e8dea1b4b71c5afd5993625f57bcac089dd2f72dfbc4dbc23ce917e5a61010", + "vendor/e8-bit-carrier-skeleton/discovery/README.md": "b09aa45d5651720e10326cde559c863ba3ea45fe2fb6b4aaa3bfaa66a8fcf69f", + "vendor/e8-bit-carrier-skeleton/discovery/d4part.py": "a64927c340a4772ce0682b349e0c90c80d1a766000ccf397fb41b36a31929179", + "vendor/e8-bit-carrier-skeleton/discovery/host_select.py": "2aaaac18e083d289d4341e734c32571c89c51fefba04b388d407c7372b906dc7", + "vendor/e8-bit-carrier-skeleton/code/cited.py": "a4c2dd4755f2a45ceda327b36d9ee400c2804893000626ca8ff3f6ee296fd842", + "vendor/e8-bit-carrier-skeleton/code/provenance.py": "e28fd87d0e34a6f6f6f1fddb6c4891deac220662c954de855d7aa5a7f9cceca4", + "vendor/e8-bit-carrier-skeleton/data/complex-b.json": "dce3f4b76aa3f6c3ba826ce556ffa61398b33e81e4d1a226dd2a36ce684fb02e", + "vendor/e8-bit-carrier-skeleton/data/bit/bitE8-r865.json.gz": "1fb726ea3818fe0837cceb0dd22a71a0814f064e5e781628104610d6468e0e55", + "vendor/e8-bit-carrier-skeleton/data/bit/bitE8mut-r489.json.gz": "835eb96e147740fc7454f8cfb3dbd34ae89524b1dbd89a61e9288eae8ab6a5b9", + "vendor/e8-bit-carrier-skeleton/data/eleven/hosting.json": "61f790657c465d16d3455f48f90f816797b9ea08bf02dbd0c90d2cf41836257e", + "vendor/e8-bit-carrier-skeleton/data/eleven/residual-isometries.json": "0fa5b353a0321af2ce4e2045db1d4c2d6418a11663894e2afcdb1eaa1984bddc", + "vendor/e8-bit-carrier-skeleton/data/skeleton/d4part-pairs.json": "d69ffe3326140bc541b8f1639e02db43a5835ab8ca02cc742b5bee2bf2ef1ba9", + "vendor/e8-bit-carrier-skeleton/data/skeleton/plan-skB.json": "f6162bb4d8092bc233700fa7ebc6a0d79f2893135aee18e998369044abb3f44b", + "vendor/e8-bit-carrier-skeleton/data/complex/pr458/EXPECTED.json": "a4312cb0c53c2066a28b683a971a41e7d76c5f6d828a96481c3ae7b3c01bb2f3", + "vendor/e8-bit-carrier-skeleton/data/complex/pr473/EXPECTED.json": "70e515f0a5a2f9508cd030d35a99f90981a6eccc027c9ad5a3c77f5860310910", + "vendor/e8-bit-carrier-skeleton/data/complex/pr484/EXPECTED.json": "0c93018a23bc573c7d155d4786e0c3978e95be0fda974076697939a1a1d8e5be", + "vendor/e8-bit-carrier-skeleton/data/complex/pr483/EXPECTED.json": "799fa4ab2f785c478c3cdcb6c1c0428a5ce6e3ddbe4a4b2fd88630d811a593f6", + "vendor/e8-bit-carrier-skeleton/data/complex/pr448/EXPECTED.json": "18b42250c3faf6f0df76fcab6c3a483582192ad7bb09cb1985f4b0bb91d67024", + "vendor/e8-bit-carrier-skeleton/data/complex/pr478/EXPECTED.json": "07bd05d14c71df8925b0b03510b2b337334b73ac425a94e03b2ec34ed2680164", + "vendor/e8-bit-carrier-skeleton/data/complex/pr471/EXPECTED.json": "188f9d1a7450496dbfd8d64381febd20b0597141537eb1a003435297df2d1720", + "vendor/e8-bit-carrier-skeleton/code/bit/mutate_records.py": "b0e75d6550412a7be4017695e6b237392b611bb852ad8ff309d6682c9f166a4e", + "vendor/e8-bit-carrier-skeleton/code/bit/mutate_records_mut.py": "a9e085ec60d5657cd5d77832e3d95004e81b9f4f249d9e0fc95e345366cb2d2e", + "vendor/e8-bit-carrier-skeleton/code/bit/export_records.py": "8a5999601f917dbb492bb9ae9a344611f18cc7cedc53dc3c76496a369e530eb3", + "vendor/e8-bit-carrier-skeleton/code/eleven/audit.py": "5ad832830c19ec6c904d1b64480f6b1e71c5673fdd38d487d17e179b1d197c09", + "vendor/e8-bit-carrier-skeleton/code/eleven/local_audit.py": "95275473d7f9811011bda760dd0f04de5169c2a6922456dc9a5725a5d671f941", + "vendor/e8-bit-carrier-skeleton/code/eleven/assemble.py": "c47889a606701ae592374dd82a13cee8c5a4e8449b7facfdad2d90563a30a18c", + "vendor/e8-bit-carrier-skeleton/code/eleven/adapt.py": "d8a8c13b484d985f0133a5d06de4a78b8477314f922b9f693ba73640b7184d6b", + "vendor/e8-bit-carrier-skeleton/code/eleven/emit.py": "b0b25955875625ed63f82690f83aef976e3e9a978ae6620b23a23fc1207acd46", + "vendor/e8-bit-carrier-skeleton/code/skeleton/gen.py": "7cdcf48078ed4beacd2e240aa8145e4aa6984558748d07659cb1b252786e073a", + "vendor/e8-bit-carrier-skeleton/code/skeleton/geom.py": "bb356568fa05e7bfd5fcd9012903611cf742729a99b4dc3a13685355b2678ae3", + "vendor/e8-bit-carrier-skeleton/code/skeleton/e8.py": "721d859a6517d665ca84d03ef89668da3aae7433ffb0ee47faf37f2aeb85450e", + "vendor/e8-bit-carrier-skeleton/code/skeleton/wordkit.py": "2b6c12d96f24a4e81f2c807827c2b74cf80037367fc8034e8c871dd5ce008351", + "vendor/e8-bit-carrier-skeleton/code/nine/geometry.py": "36eeda3184bd009e89462b65c8725d10860c444f8da8f1f87e5f6e50120011ca", + "vendor/e8-bit-carrier-skeleton/code/pricing/base_two_moment.py": "aee70c242a2f1d225528fabe2002e1564d1dc884797c07d28a831c7878ee9098", + "vendor/e8-bit-carrier-skeleton/code/pricing/moment.py": "81cbc864e106418fc7854322746f72180cb8110ff39f74450a3b8d55a82c1482", + "vendor/e8-bit-carrier-skeleton/code/pricing/prime_witnesses.py": "98cd03bc9582e7bd0ab194c191ea8eea940539e510051443ab9fd3e572a364ab", + "vendor/e8-bit-carrier-skeleton/code/pricing/outer.py": "c1ebb52163a7219504c728a5c2b098bf1e50bf20148a2879c5a74c3cadc7c03c", + "vendor/e8-bit-carrier-skeleton/code/hub/idle-axis-hosting/hosting_core.py": "d8b90cd5d152df3c7c351230863d9e61816ad5e1f21d69bea1a86a5daad559a3", + "vendor/e8-bit-carrier-skeleton/code/hub/r740-hosted-eleven/code/geometry.py": "9554182d67e434ea84b4430f909a2c400abc755d8487b51454a8e6968e62859d", + "vendor/e8-bit-carrier-skeleton/code/hub/r740-hosted-eleven/code/emit.py": "ac63ee481f3d75cb9f0658faaa2412db81d55bc44d9f1ff1c0329ce1e75aa0d4", + "vendor/e8-bit-carrier-skeleton/code/hub/r740-hosted-eleven/code/row_bound.py": "de4a9b9cd797e1a05da56f62cfe725c8728cea3a4aa031b7d1b0a68f869760d6", + "vendor/e8-bit-carrier-skeleton/code/hub/r740-hosted-eleven/data/selection.json": "52dbbb68e8c147690d15eaa1d952df05d074b0c121885a4159d9f6732f391872", + "vendor/e8-bit-carrier-skeleton/code/hub/e8-r740-replica32/code/e8core.py": "1cb286196c1530d06f50f0997febc5993b388f33464e295611b920ba30a24eeb", + "vendor/e8-bit-carrier-skeleton/code/hub/e8-r740-replica32/code/bank_routes.py": "7c6997c455bd55acca3a1603797c34e7733d557c27a7694a1429ff15773a505d", + "vendor/e8-bit-carrier-skeleton/code/hub/e8-r740-replica32/code/tile_m.py": "d6ae4a556472d403773cd2117c992bfc10e1187112da1b3893f3fae628a131dd", + "vendor/e8-bit-carrier-skeleton/code/hub/e8-r740-replica32/data/word.json.gz": "d8d6d3d3f336720302bc40b3c1504fe3c3583a7a8d707bb9bd7b21f85e5e69c6", + "vendor/e8-bit-carrier-skeleton/code/hub/e8-r740-replica32/data/residual-isometries.json": "e12ed7ddd13cee101ba74a083b54665fd64d0b122b0bad5b83d817dcc8bae9d8", + "vendor/e8-bit-carrier-skeleton/code/hub/e8-r740-replica32/code/engines/base_two_moment.py": "aee70c242a2f1d225528fabe2002e1564d1dc884797c07d28a831c7878ee9098", + "vendor/e8-bit-carrier-skeleton/code/hub/e8-r740-replica32/code/engines/moment.py": "81cbc864e106418fc7854322746f72180cb8110ff39f74450a3b8d55a82c1482", + "vendor/e8-bit-carrier-skeleton/code/hub/e8-r740-replica32/code/engines/outer.py": "c1ebb52163a7219504c728a5c2b098bf1e50bf20148a2879c5a74c3cadc7c03c", + "vendor/e8-bit-carrier-skeleton/code/hub/r740-hosted-rank149/code/emit.py": "ac63ee481f3d75cb9f0658faaa2412db81d55bc44d9f1ff1c0329ce1e75aa0d4", + "vendor/e8-bit-carrier-skeleton/code/hub/r740-hosted-rank149/data/word.json.gz": "41626789888ee070e1b435fa380b10ab9b88e3cf7d8d8e166ecef17269bbcf47", + "vendor/e8-bit-carrier-skeleton/code/hub/r740-hosted-rank149/data/residual-isometries.json": "b23fda74a7979179e8fd83ee9870c1e232442cc90c05077adaabfe31d050d1e4", + "vendor/e8-bit-carrier-skeleton/code/hub/r740-hosted-rank149/data/selection.json": "4d9c2cf6a3d31a6faa287731e0721cb16601b0bc5c1a186b9645bfb5760ce8db", + "vendor/e8-bit-carrier-skeleton/code/hub/e8-r715-whole-hosted/code/audit.py": "d28062127a9b0d3866a3b79aad98a307233b20ebdb94cfb9f197d726b82ffea5", + "vendor/e8-bit-carrier-skeleton/code/hub/e8-r715-whole-hosted/code/local_audit.py": "23eda3fe3d774e7f2dbf4dbdd4ff90d69ae7d1762ff95c8629cdc7667aa3fe71", + "vendor/e8-bit-carrier-skeleton/code/hub/e8-r715-whole-hosted/code/assemble.py": "abb60c35e448e0f94073f38a0352d11249aaf7bb8dbd7352414ae60a1d2b79c3", + "vendor/e8-bit-carrier-skeleton/code/hub/e8-r715-whole-hosted/code/emit.py": "98d77cefbc3a76f9f10bd7df3a2590ab88b411f6afe77b5f8d73f1602eb2bef3", + "vendor/e8-bit-carrier-skeleton/code/hub/e8-r715-whole-hosted/data/hosting.json": "765382d4fefd594e94c8c5826ec6300422ce9f79c816d7f7323ef85e99320f28", + "vendor/e8-bit-carrier-skeleton/code/hub/e8-r715-whole-hosted/data/word.json.gz": "b2af02f593cd161bea64e6cd793508386914136be519f80726c071697379d5a9", + "vendor/e8-bit-carrier-skeleton/code/hub/e8-r715-whole-hosted/data/residual-isometries.json": "750221cc66badd0ed0a74e7aad2d59f91f89c107370af21c6d929fbdd4a08a9f", + "vendor/e8-bit-carrier-skeleton/code/bit/checkers/gram_frames.py": "223a5a07731fc315a90a3e48177796babc155c1d9985c7ae5017eff6af2a0608", + "vendor/e8-bit-carrier-skeleton/code/bit/checkers/json.hpp": "aaf127c04cb31c406e5b04a63f1ae89369fccde6d8fa7cdda1ed4f32dfc5de63", + "vendor/e8-bit-carrier-skeleton/code/bit/checkers/legality_h.cpp": "6c1ef2b24e57781d6951c172a1024fc4300e6fd392c9d6672079a7806ab663b3", + "vendor/e8-bit-carrier-skeleton/code/bit/checkers/columns_k.cpp": "1c344d18fcd494eeca93e259f10cafae7705780e6592f6dcb35b34752dab9bc2", + "vendor/e8-bit-carrier-skeleton/code/bit/checkers/columns_h.cpp": "d1297f9052be4f2496e1ff2a77e4db2c0cdbd7d460d489b4c03e50bf317238ce", + "vendor/e8-bit-carrier-skeleton/code/bit/independent/mutate_mut.py": "3b002c19a5dcca76a5594f2a30fac7c01d2b45fc96b3e7cfbfd8b720f5ffb4e8", + "vendor/e8-bit-carrier-skeleton/code/bit/independent/interface.py": "2c63a039f97e3a11ce5a6b83302d4f5beda160c1db14164a5a9b0855aeb19d3c", + "vendor/e8-bit-carrier-skeleton/code/bit/independent/mutate.py": "0ff65aace5da4b57d96235bf830f8f11969322e75134d498aeb70e9753ec6b0d", + "vendor/e8-bit-carrier-skeleton/code/bit/independent/relax.py": "d6e9f58de3fa41f538516b6227c249d61fb30f0f6843027cc8a07a1a372fa6b6", + "vendor/e8-bit-carrier-skeleton/code/bit/independent/checkword.py": "11bf9620ca9db16d52d9fe806b814fc9ec9a89c4d7645354d1861d96f6e805ad", + "vendor/e8-bit-carrier-skeleton/code/bit/regression/stage_cohort.py": "6c288f6f234b528c1a7c0a4adfb724e91e0fe6b18c8dffad96af3f973de1829a", + "vendor/e8-bit-carrier-skeleton/portable-include/bits/stdc++.h": "420094be2af295eed03a983dd66debbbe9cfb78d8252859f4498a615a0074b99", + "vendor/pr531/proof/DELIVERY-AND-COALESCING.md": "7e719f01416cf312272dfabca8b355d327128859c01d686056e0833e83870bc7", + "vendor/pr531/proof/LOCAL-CONSTRUCTION.md": "3b1fc44f6f8290361cb24526cf91c3174c734f5da3cc9fb94559a96168d39e70", + "vendor/pr531/proof/GLOBAL-HOSTING.md": "c47b61bf2e998583e4626eec068439600f3464aab2ddbdb0ac044b0136d7b502", + "vendor/pr531/evidence/LINE-GAUGE-SELECTION.json": "1ecec9dd594653d54448ba9e2fd7b7b830e26bfd159d3b268672f80d8cb06250", + "vendor/pr531/evidence/FAST-REPLAY.json": "b95028b7cd5a830bd5d702d5193f0bc93d981426ca6f8916eea7a2bf9dcc53a7", + "vendor/pr531/evidence/COALESCING.json": "f9175c204c084e083ba2f8f4bc66dc71feb75d90b1b57b36dfacbffe89568ae0", + "vendor/pr531/evidence/PR523-FIXED-WORD-CEILING.json": "e971df6465b6a37d2042bd7e2169419578d68d7177c060599b16b3f67292935f", + "vendor/pr531/evidence/PUBLIC-SNAPSHOT.json": "d859621516bb33d1c77ea9413b53930fab42447360b7e6246ba839b95a834abb", + "vendor/pr531/evidence/SAME-PARTITION-FRONTIER.json": "3a02123a292730c1dfea8d6c1c8238115b4b07d19c8b8f119b54c345cd1f46af", + "vendor/pr531/evidence/DISCOVERY-MOMENT.json": "d964db94f4a11840bbea57a47c203a2fe6b51a381072d403d1c1504ac2ba0c7b", + "vendor/pr531/evidence/VERIFICATION-SCOPE.json": "424ea699b0849c3e8dd41d585b271906cbbbbddb4c3464fd20dde30133bae367", + "vendor/pr531/evidence/ENTRANCE-SELECTION-SCREEN.json": "2d5c7db49077ea50f0877f1bd3a5839e5c49a7c75519ebaf549bce0e828b7b99", + "vendor/pr531/evidence/BEFORE-COALESCING.json.gz": "5381265008ec84dc0b3eb2870040215b8470620d234573c15e836dba928d910e", + "vendor/pr531/code/emit_supplier_hosted.py": "53c0b653b3a5100756d6a9473c90101b8c3ab72723d7047983906ab997bdf920", + "vendor/pr531/code/audit_same_partition_frontier.py": "3a2a072304c0c112b4938070515035b49595c86565b454806fdcbbfacf0e1bd2", + "vendor/pr531/code/audit_and_transport.py": "a4fc272266785e1fffd44775c6fa6df783c4352de4c3f1d925cf953a23b84e7f", + "vendor/pr531/code/invoice_final.py": "96b6bed96ca8b60dfc064cd1c7962c45a5cb53c4e52cd90aaea6ccf8d109db97", + "vendor/pr531/code/construct_504.py": "a0d96ede40b957c38dcb64296d5f4a76c23dfb8c8875e01a80b5f1bdf6e8360e", + "vendor/pr531/code/assemble.py": "71b4cbbbc5acdfe06ac67879cf54ea761e29e52143af1cd8410ad672a5cc190b", + "vendor/pr531/code/emit_local.py": "eefc76e0bee003015fe21ac685c2cce658033d5444add404d2d509c7d6f39bac", + "vendor/pr531/code/audit_supplier_hosted.py": "301e9b5c593b6d583065337eb7b3ef207cf039e265f099f89080a4bf25856b43", + "vendor/pr531/code/audit_local.py": "69b12c45d0a961175a824c1967353c7f3b94818a7dd6ac7bbcf56a6d1a5ed8e8", + "vendor/pr531/code/adapters_local.py": "4e89a5c517cd87ff6a5aa9b7334c0d74821179ae5777d31284da25b9d8abf113", + "vendor/pr531/code/prepare_supplier_base.py": "f5eae94aca965d0008bc07cff8245ccb7509042ccad457d3bcb7d51c1e9409f0", + "vendor/pr531/code/build_selected.py": "7fa8f981cbf3b01ac960226e6afc6be7bd76d94d9c01796941979deb77bd8875", + "vendor/pr531/code/phases_delta.py": "15723107eff03013b2e797fd9fa3635b1b46c5d1c8112d19fada98c178d4acb6", + "vendor/pr531/code/coalesce_frames.py": "b3e53a17f2519e1afc5bee9b6518252eeb0cb7c56b6e0a1554fdfb54f2908915", + "vendor/pr531/inputs/OWNERS.json.gz": "5e27eaf098214e3ab8159e322241aa90a1ae77b0bff78b426512b87f9f60c91f", + "vendor/pr531/inputs/OWNER-PLAN.json": "13d5284e3d95fd4718b538f7d0d1e6f8db3236d4608a755dce6deade440f4185", + "vendor/pr531/inputs/PR523-ANCESTRY.json": "0bfce40d86c849f18e8872ee9e8462b0a69a34ed04e01e942a6614645f686f4b", + "vendor/pr531/inputs/PR523-PREFIX-AND-INVOICE.json": "bb43ef04791037a37d2596c395e81191991fde6581326118995cf4318ee472a3", + "vendor/pr531/inputs/PR493-EXPECTED.json": "3494ba83280cc86548fe0cc6695c50d23e6b6ffca85aeb1a33337c1196e280cb", + "vendor/pr531/inputs/SELECTION.json": "46cfad0c5a4b8dacc18ed02b5e259f2168e6a93a8dff6ffb447fb0f20917a9bd", + "vendor/pr531/inputs/PR523-EXACT-ASSEMBLY.json": "39900354203609a142d159096ccc221ddb21c1f714b2b74b9b1b325beaf15259", + "vendor/pr531/inputs/ASYNC-6.json": "8a128d7c435f01d9f920c1353711eb0721ce3cbdd0b8799bf69b2d676266dbd3", + "vendor/pr531/inputs/phase-baseline/CANONICAL-WORD.json.gz": "addf598581d2a20e13d0c18110607515ad90b06125616a2349e53a47bb5b6c80", + "vendor/pr531/inputs/phase-baseline/LOCAL-CHECKS.json": "ead7163869ecb9fc276f477c0ec0ed85dc74d7901ce04f91213bcf7ee1f20382", + "vendor/pr531/inputs/phase-baseline/CLIFFORD-REVIEW.json": "468a5df1937e82a0b8e8c1c2540e18480f354154325353c5596c68e7435c89c2", + "vendor/pr531/inputs/phase-baseline/CLIFFORD-RECIPES.json": "1f37afd5a9e14b113ba56e0ac8a5200a6b41c695d2cd308dc0fd6ec46a4c73d2", + "vendor/pr531/inputs/hamming/PACKET-PROGRAMS.json.gz": "d833ae0390d165d7da0c639a3c7aeb77156c2ddb52447087cb49b9d03b19e9b9", + "vendor/pr531/inputs/hamming/PROTOTYPE.json": "327d2a868043e846381aa58a33053c24425e8cad522ff401b10ec8af1d649a3f", + "vendor/pr531/inputs/data-base/split-centres/CANONICAL-WORD.json.gz": "addf598581d2a20e13d0c18110607515ad90b06125616a2349e53a47bb5b6c80", + "vendor/pr531/inputs/data-base/split-centres/GLOBAL-TEMPLATE.json.gz": "5b913207775fcd87090cfa8776e8bd2bb872426923345fe1a1a4e1ea84bfae2c", + "vendor/pr531/inputs/data-base/work/complex-nine-native/DATA-PHASES.json": "c5916ff312678f12aba403847643fbbc29f643acec60bdf836fa56cd3e8251fa", + "vendor/pr531/inputs/data-base/work/pr361/code/engines/base_two_moment.py": "aee70c242a2f1d225528fabe2002e1564d1dc884797c07d28a831c7878ee9098", + "vendor/pr531/inputs/data-base/work/pr361/code/engines/moment.py": "81cbc864e106418fc7854322746f72180cb8110ff39f74450a3b8d55a82c1482", + "vendor/pr531/inputs/data-base/work/pr361/code/engines/outer.py": "c1ebb52163a7219504c728a5c2b098bf1e50bf20148a2879c5a74c3cadc7c03c", + "vendor/pr531/vendor/clifford/clifford_exact.py": "2982ead07721e83358dc67c6f49c2b4c16a236a6bebdfd72f58221be1f5d0962", + "vendor/pr531/vendor/gk/gk_word.py": "f027a9273bcf4e0971258c160b7d3b3c196366b32a529cff6e6a0e666b03826b", + "vendor/pr531/vendor/gk/gk_common.py": "e68d190fd436b2f3955decb590adb53344d5d4ea0a19d62d86df1e4b55ecd198", + "vendor/pr531/evidence/hosted/HOSTED.json": "a0b29d73f2beb821a59f356150a7a9475394643bf9fd8eb5a67a6fc4d46ad2f5", + "vendor/pr531/evidence/hosted/ACTUAL-SIGMAS.json.gz": "dbced27348bd0ae2fb937a9c1fd03e2181d7268ccdea5d80ebbe6ec3fed314d9", + "vendor/pr531/evidence/hosted/IDLE-REMAINDER-FRAMES.json.gz": "a21fb2c7395b7193d46752f7bd9cc670fbfffc7287f8370bd9f6df0aed6b21eb", + "vendor/pr531/evidence/hosted/GLOBAL-TEMPLATE.json.gz": "0c5ea47883fafc2aa0b2b9711e7c52a3fc8fdf96c84eb3043834e34ced550473", + "vendor/pr531/evidence/local/CANONICAL-WORD.json.gz": "de2be0f4b6d24ace368fd5b834b7a00f9625d0a1824c4ff969f2db5f115db667", + "vendor/pr531/evidence/local/RESIDUAL-ADAPTERS.json": "83a91fb9cbbe600328cd399f67fdb6ffb698ed3b20d050916d21f3af48b0db20", + "vendor/pr531/evidence/local/LOCAL-PROGRAMS.json.gz": "755a5c4ebe958fd9f7b5d4a6e7a506d2c802e31c4d9da46b63db1994c4d8ffa6", + "vendor/pr531/evidence/local/LOCAL-CHECKS.json": "c6807681d40cb46c21a50edc1058044ddc758f2dd3e6b0bab16d7cb28d41732f", + "vendor/pr531/evidence/local/CLIFFORD-REVIEW.json": "a917bb1abdc864b404dc4a869af3e29aaab2270d392b662cb60b70ebbe5d1975", + "vendor/pr531/evidence/local/LEMMA-A.json": "f789357f75d562ec9c6f2ef75ced6f4286df2840b493600147b34a36ad0fa460", + "vendor/pr531/evidence/local/INDEPENDENT-LOCAL-REPLAY.json": "4149f3d2ec3041965c5d72869748090d9aeed422f36d753550c543bb7808b30b", + "vendor/pr531/evidence/local/CLIFFORD-RECIPES.json": "1ac0a7d07a487bf58e59e82a8a656a3a3edca5731af9029ad7874b535407ceb9", + "vendor/pr531/evidence/local/FULL-WORD.json.gz": "bd6b004c4948d5ce80d4f81477338fe30434c2a94586463fdcc531df0dbc9509", + "vendor/pr531/evidence/local/SCALAR-FRAME-AUDIT.json": "5bf884b9c5c9e65658974a8f5548f93a583fb48461e8125fa68893aa2b403718", + "vendor/pr531/evidence/audit/OWNERS-AND-PROFILE.json": "e5f11e7b920f9985f085546c641dbac5b8d98231d562e1e030ab2566ccea4bd6", + "vendor/pr531/evidence/audit/PREFIX-AND-INVOICE.json": "ce1bfa49be88ae67a404f606a11db2232b7e1f2610d4418058e39749d86d8478", + "vendor/pr531/evidence/audit/GLOBAL-PREFIX.json": "378275e21f7ff147cd7cb0b33c972e75139d949195ddf13dd71b55a77a0f7cfb", + "vendor/pr531/evidence/audit/ASYNC-AUDIT.json": "01ea0015d4e08170ac65f1cdd051be64e07f622eba62eadbf39524317388cba7", + "vendor/pr531/evidence/audit/IDLE-REMAINDER-FRAMES.json": "7923ed6a528f006c353fe7e0639fd230ad140ca835b8e64ceadc7aefb0300ea8", + "vendor/pr531/evidence/audit/EXACT-ASSEMBLY.json": "550c6703e73b2dcfaae986706ceb1ac67ecd93dec8b591954abe51c7fa3b7a03", + "code/build_preload60.py": "105641136b565003118f362bb67086e1eeb4910aed6af593a011f60c2b2962b6", + "code/phases_full.py": "a273c325ffd6793d5b63b79a289a9d2bbc9292e6940fb5a926924f3708627af4", + "code/run.py": "a32781a6319b96759aa8be71b3a797463051ebdedeba289a08ff3d88fa129f35", + "data/NINE-GEOMETRY.json.gz": "8a04c048a6ad87f8004fc650263dcac6de7d815e6f00eb93b1b36c1623f34a43" + } +} diff --git a/research/static44-selective/code/assemble.py b/research/static44-selective/code/assemble.py new file mode 100644 index 0000000000..0893254a53 --- /dev/null +++ b/research/static44-selective/code/assemble.py @@ -0,0 +1,177 @@ +"""Compose fresh selective-frame bit and globally admitted static44 complex suppliers. + +Prepared for icekylinx with GPT-6 Astra assistance, Apache-2.0. +Adapted from the attributed PR531 assembly. Both rational moment engines and +the 47-constraint outer engine remain pinned inherited implementations. +Both changed operators are freshly reconstructed; the complex data controller is retained. +Adaptation: fresh bit invoice and source hashes replace the cited bit receipt. +Usage: assemble_meta.py PACKAGE BIT_RESULT OUTDIR COMPLEX_AUDIT COMPLEX_HOSTED +""" +import hashlib +import importlib.util +import json +import sys +from fractions import Fraction as Q +from pathlib import Path + +if not __debug__: + raise SystemExit('Run with assertions enabled.') +assert __debug__, 'Run with assertions enabled.' +ROOT, B, O, CA, CH = map(Path, sys.argv[1:6]); O.mkdir(parents=True, exist_ok=True) +BIT_COMMIT = '64edee18af02aab0c1696b677a0287dd0146381b' +BIT_EXPECTED_SHA256 = '19b861f69f7602e47b390d472b487d044bff4230b250520807537c213ad0249f' + + +def sha(path): + return hashlib.sha256(path.read_bytes()).hexdigest() + + +def load(name): + path = ROOT / 'vendor/e8-bit-carrier-skeleton/code/hub/e8-r740-replica32/code/engines' / (name + '.py') + spec = importlib.util.spec_from_file_location('combined_' + name, path) + module = importlib.util.module_from_spec(spec) + spec.loader.exec_module(module) + return module + + +def decimal(value, places): + scaled = value * 10 ** places + assert scaled.denominator == 1 + digits = str(scaled.numerator).zfill(places + 1) + return digits[:-places] + '.' + digits[-places:] + + +M, Other, Outer = [load(name) for name in ['moment', 'base_two_moment', 'outer']] +owner = json.loads((CA / 'OWNERS-AND-PROFILE.json').read_text()) +inv = json.loads((CA / 'PREFIX-AND-INVOICE.json').read_text()) +host = json.loads((CH / 'HOSTED.json').read_text()) +assert owner['template_sha256'] == inv['template_sha256'] == host['template_sha256'] +assert inv['owner_audit_sha256'] == sha(CA / 'OWNERS-AND-PROFILE.json') +assert all(inv['strict_checks'].values()) +P = {int(rank): count for rank, count in owner['paid_profile'].items()} +m, W = 73, owner['live'] +assert m * W - sum(rank * count for rank, count in P.items()) == 2560 + + +def two_moments(profile, dimension, live, lower): + """Keep the full rational sign intervals for both independent engines.""" + fallback = 32 * dimension * dimension * sum(profile.values()) + receipts = [] + for endpoint, accept in [(lower, True), (lower + Q(1, 10**24), False)]: + lo, hi = M.moment(profile, dimension, live, endpoint, True) + a, b = Other.moment(dimension, live, list(profile.items()), endpoint) + f, g = Other.moment(dimension, live, [(1, fallback)], endpoint) + a += f / 10**16 + b += g / 10**16 + assert (hi < 1 and b < 1) if accept else (lo > 1 and a > 1) + receipts.append(dict(endpoint=str(endpoint), accept=accept, + mercator=[str(lo - 1), str(hi - 1)], + base_two=[str(a - 1), str(b - 1)])) + return receipts + + +cert = M.certify(P, m, W, True) +b, bp = Q(cert['lower']), Q(cert['upper']) +assert bp - b == Q(1, 10**24) +complex_receipts = two_moments(P, m, W, b) + +# These checks bind and reprice the freshly reconstructed bit invoice. +# Native local and global physical admission are separately source-bound. +bit = json.loads(B.read_text()) +assert bit['status'] == 'PASS_NINE_STAGE_WHOLE_HOSTED_BIT_PRICE_AND_CITED_ASSEMBLY' +bitP = {int(rank): count for rank, count in bit['bit_profile'].items()} +bit_inv = bit['bit'] +bm, bW = 64, bit_inv['live'] +assert (bm, bW, bit['stages'], bit['replicas']) == (64, 30720, 9, 32) +assert sum(rank * count for rank, count in bitP.items()) == bit_inv['rank_mass'] +assert bm * bW - bit_inv['rank_mass'] == 9984 +assert max(bitP) == bit_inv['maxchild'] == 8 +assert bm * bm > 2 * 64 * max(bitP) +assert bit_inv['physical'] == bW + 9 == 30729 +assert bit_inv['hosted_residuals'] == 480 * 9 * 32 +assert bit_inv['bank_assignments'] == 0 +assert bit_inv['prefix_bits'] < 256 +assert bit_inv['prefix_bits'] < bit_inv['charged_prefix_bits'] == 192 +assert bit_inv['two_level_coefficient_bits'] < bit_inv['charged_two_level_coefficient_bits'] == 512 +assert bit_inv['row_coefficient'] < 20161 +c = Q(bit['bit_lower']) +assert c == Q(bit['bit_lower_decimal']) +bit_receipts = two_moments(bitP, bm, bW, c) + +eta = beta = grid = Q(1, 10**18) +s = min(c, (1 - beta) * b) - Q(1, 10**24) +assert 0 < s < c and s < (1 - beta) * b +coeff = bit_inv['charged_two_level_coefficient_bits'] +row = max(20161, bit_inv['row_coefficient'], inv['finite']['physical_row_coefficient']) +chain, cuts = [Q(384599, 10**10)], [] + + +def ceil(value): + return -(-value.numerator // value.denominator) + + +for _ in range(6): + old = chain[-1] + a = (1 - s) * s + s * old + gap = min(s - a, 1 - a - s, 1 - a - s * (1 - old), 1 - s) + assert old < a < s < 1 - a and gap > 0 + cut = max(ceil(36 / gap**2), ceil(2 * (4 + coeff) / gap)) + assert cut * gap**2 >= 36 and cut * gap >= 2 * (4 + coeff) + cuts.append(dict(gap=str(gap), cutoff_log2=str(cut))) + chain.append(a) +q = chain[-1] * (1 - 2 * eta) +margin = (1 - eta) * q / (1 + q) +ticks = margin / grid +kap = grid * ((ticks.numerator - 1) // ticks.denominator) +bridge = {'semantic': {'C0': {'base': 2, 'exponent': 210000}, 'strict_literal_gap': 1}, + 'rows': {'degree_gap': Q(10**6) - Q(51 * row, 25)}} +assembly = Outer.assembly(chain[-1], b, bridge, kap, eta=eta, beta=beta) +assert len(assembly['strict_constraints']) == 47 +assert all(value > 0 for value in assembly['strict_constraints'].values()) +controls = [] +for name, k, e, be in [('next_grid', kap + grid, eta, beta), + ('zero_eta', kap, Q(0), beta), + ('zero_beta', kap, eta, Q(0)), + ('unit_beta', kap, eta, Q(1))]: + try: + Outer.assembly(chain[-1], b, bridge, k, eta=e, beta=be) + except AssertionError: + controls.append(name) + else: + raise AssertionError(name) + +baselines = {'PR535': Q('0.001584931111785787'), 'PR541': Q('0.001587212454640692'), 'PR542_candidate': Q('0.001587467473762886'), + 'PR531': Q('0.001517760977820331'), + 'rejected_POST208_checkpoint': Q('0.001543640781718742'), + 'PR533': Q('0.001524207950793244')} +res = dict( + status='PASS_FRESH_SELECTIVE_BIT_AND_STATIC44_COMPLEX', + complex_lower=str(b), complex_decimal=decimal(b, 24), + next_b_rejected=str(bp), exact_moment_receipts=complex_receipts, + bit_lower=str(c), bit_decimal=decimal(c, 24), + bit_exact_moment_receipts=bit_receipts, + bit_result_sha256=sha(B), + complex_dependency={'source_pr':541,'commit':'6fd04b2e266b7915b69f96f27758cfce520aa40a','local_word':'static44','new_global_owners':True}, + bit_dependency={'pull_request':510,'commit':BIT_COMMIT,'changed_word':'preload60 plus response slicing and 10 selective frame changes','fresh_bit_receipt_sha256':sha(B)}, + bit_prefix_bits=bit_inv['charged_prefix_bits'], + bit_charged_two_level_coefficient_bits=coeff, + external_row_allowance=row, + kappa=str(kap), kappa_decimal=decimal(kap, 18), + binding_component='bit' if c < (1 - beta) * b else 'complex', + improvements={name: {'baseline': str(value), + 'relative_gain': str(kap / value - 1), + 'percent_display': f'{float(100 * (kap / value - 1)):.8f}'} + for name, value in baselines.items()}, + strict_outer_constraints={k: str(v) for k, v in assembly['strict_constraints'].items()}, + outer_controls=controls, bootstrap=cuts, + complex_template_sha256=host['template_sha256'], + owner_audit_sha256=sha(CA / 'OWNERS-AND-PROFILE.json'), + invoice_sha256=sha(CA / 'PREFIX-AND-INVOICE.json'), + bit_scope='The changed bit word is freshly reconstructed, replayed and admitted by the native local and hosted-global checkers. The static44 complex supplier is freshly rebuilt and admitted separately.', + scope='Conditional finite witness under the retained all-size compiler, ' + 'common-label/mutable-basis, whole-call hosting, restored-work, ' + 'precision/tape and analytic-transfer contracts. Fresh changed-bit admission ' + 'and complex admission and finite invoices are separately hash-bound. The unchanged complex data controller remains a cited dependency. No unconditional theorem is claimed.') +(O / 'EXACT-ASSEMBLY.json').write_text(json.dumps(res, indent=2) + '\n') +print(res['status'], 'b', res['complex_decimal'], 'kappa', res['kappa_decimal']) +print(json.dumps(res['improvements'], sort_keys=True)) diff --git a/research/static44-selective/code/build_bit.py b/research/static44-selective/code/build_bit.py new file mode 100644 index 0000000000..ee939f54ff --- /dev/null +++ b/research/static44-selective/code/build_bit.py @@ -0,0 +1,103 @@ +"""Replay zero-response slicing and ten frozen exact-cost frame changes. + +Prepared for chafreaky with Codex assistance, Apache-2.0. +The suffix-response deletion is adapted from rohanarun's PR542 slice.py. +The fixed two-sided frame recipe and exact interval checks are new here. +No optimizer or floating-point decisions are used in this replay. +""" +import argparse, copy, gzip, hashlib, importlib.util, json +from collections import Counter +from fractions import Fraction as Q +from functools import lru_cache +from pathlib import Path + +if not __debug__: raise SystemExit('Assertions must remain enabled') +ap=argparse.ArgumentParser();ap.add_argument('package',type=Path);ap.add_argument('source',type=Path);ap.add_argument('out',type=Path);a=ap.parse_args() +assert not a.out.exists();a.out.mkdir(parents=True) +read=lambda p:json.loads(p.read_bytes()) +w=json.loads(gzip.decompress(a.source.read_bytes()));original=copy.deepcopy(w) +recipe=read(a.package/'data/FRAME-RECIPE.json');slicing=read(a.package/'data/SLICE-RECIPE.json') +V=w['v'];N=2*V+w['R'];assert (V,N)==(120,720) +resp=[0]*N +for j in range(V):resp[V+j]=1<=0 else y);hi+=n*(y if n>=0 else x) + assert hi<0 and [str(lo),str(hi)]==move['cost_interval'] + receipts.append(dict(section=sec,index=i,delta=delta,cost_interval=[str(lo),str(hi)])) +assert len(receipts)==10 +H1=replay();assert dict(H1)=={int(k):v for k,v in recipe['after'].items()} +for key in ('D','B','scatter','ret','start','final','lines','frames'):assert w[key]==original[key] +assert w['C']==[[1,d,list(ss)] for f,d,ss in reversed(w['A'])] +raw=json.dumps(w,sort_keys=True,separators=(',',':')).encode() +assert hashlib.sha256(raw).hexdigest()==recipe['word_content_sha256'] +blob=gzip.compress(raw,mtime=0);blob=blob[:9]+bytes([255])+blob[10:] +assert hashlib.sha256(blob).hexdigest()==recipe['word_sha256'] +(a.out/'WORD.json.gz').write_bytes(blob) +result=dict(status='PASS_EXACT_SLICE_AND_TEN_FROZEN_FRAME_MOVES',removed_gates=len(dead),moves=receipts,all_dirty_columns=N,local_profile=dict(H1),word_sha256=hashlib.sha256(blob).hexdigest(),source_sha256=hashlib.sha256(a.source.read_bytes()).hexdigest()) +(a.out/'BUILD.json').write_text(json.dumps(result,indent=2)+'\n');print(result['status'],flush=True) diff --git a/research/static44-selective/code/build_preload60.py b/research/static44-selective/code/build_preload60.py new file mode 100644 index 0000000000..5a1b518a58 --- /dev/null +++ b/research/static44-selective/code/build_preload60.py @@ -0,0 +1,48 @@ +from pathlib import Path +from fractions import Fraction as Q +from collections import Counter +import json,gzip,hashlib,copy,sys,argparse +parser=argparse.ArgumentParser();parser.add_argument('--input',type=Path,required=True);parser.add_argument('--out',type=Path,required=True);args=parser.parse_args();src,out=args.input,args.out;w=json.loads(gzip.decompress(src.read_bytes()));V=w['v'];N=2*V+w['R'];old=copy.deepcopy(w);prefix=[];moves=[];A=[];assert hashlib.sha256(json.dumps(w,sort_keys=True,separators=(',',':')).encode()).hexdigest()=='8639e22008c24a5690dd250eba702fe5fca85ddd036dcbec20baba77b7e213ba', 'pinned source word' +for i,(f,t,ss)in enumerate(w['A']): + if len(ss)==2 and all(sdim[a]:H[dim[f]-dim[a]]+=1 + cur[r]=f + def gates(sec): + for f,t,ss in z[sec]: + assert len({t,*ss})==1+len(ss) + for r in [t,*ss]:climb(r,f) + for s in ss:val[t]^=val[s] + gates('D');gates('A');tops.extend(dim[cur[q]]for q in z['ret']);snap=[val[q]for q in z['ret']] + for t,ks in enumerate(z['scatter']): + for k in ks:val[V+t]^=snap[k] + gates('B');gates('C') + for r,f in enumerate(z['final']):climb(r,f) + for r in range(N):assert val[r]==((1<Ck|d*`prU}JkqnY0XUPHr!bp&u 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 literal 0 HcmV?d00001 diff --git a/research/static44-selective/data/OWNERS.json.gz b/research/static44-selective/data/OWNERS.json.gz new file mode 100644 index 0000000000000000000000000000000000000000..d67931c32ad287f8459c867d37c903a4a463401b GIT binary patch literal 411704 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

X&XNsei>oB3 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œMRqp^yQl@i7w+v-j~p>+s7~-vbIcg#;`~ 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�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

7On$u}hp(8dQ*liObyuD1JWyi?BQ&{k@M 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�fY3p>1k?{kK;=xYb~^yZnx&!?^<*pecZ6}y_|>rt+m6}ZP0>HSjgDR zComhj#}~#_`pwjLYi62yZ{WUZNahF?YpzEj!8g&|0UUZG8{K=XdPZkJtOp7m- zx`1dyIKs(N-0~Hko2HID80S6?H&=E({akm^B3&9f$E&hmWXHT(7D?4$$33)>@4x>t z2WUmu?>3=9=s}{bmX>n_hJ&ZlpdY^~QEIEwiU8RN2rq)I6jLBA0pYetxG01h7yn-B zY~`!vfU|9)`#T{-F(fUPD`UX}Il;n%`O_1t5 zXd9Xv1M~NPn80+P%f)*CFXp0z<_e<(&9ZuaTGZ1&dHy~3$_XFZE=^xyHg_GhJZXd* z>s(@zFElFa1{9Z>>66P2x!kE(gHsncnFMb zH?#R&N37VSEpC~q7vC3DT5O-a_M}Nk7*Tg!)@C1Jr>ySSm z9q+DNIL3B!nAwr{K5GT-Rb1{D@FKE{kZPXDpP zL@>gBCnREYMa#uTBKl!>l|tRfQAX`orGa|EAuUt9AG$9^A18}x|HDs>a;8!As9=NJ zPL6wxM@nE+U73hN@9hlB?f@0luVw5sw?HMqt?uO<&w2a5%7lrfJ zt<9$2YZsoCjlPo!IJEd{-y6r zruI3y3SuMP-n0lkl8;(w*&_8@IY4O@eDqNMb#G%!`SP;tdHSs%-^s}qfTKzzpULq` zQL(nBMT3m~L`?1sQxw8~mC`w4z;yo8I3cCFg+QevPe{dcmH`ESZehK}LDv`&dyteh z1Ak-;mQKt0(2ggfKC0m?$HNcz9mi;yULr{}^eDd^n(uW;zZmhZA&2RqIN@AOwwBOv zh9g1K2p3YbPxdSL+xLoF*R(9oGI4R-Z}f0&P*g&KW4IqVs}nFox)<<{C%0~5&l=T7 ziQybURUHi7{byx9vCy7kNPk3^Ykm)=aR8+$9-M7pA^FVi@E%+z^2Vq zNsxb?`zU66c*I{`bZKG8SYaB&tQADX7%RdXCP@kBTvK@+>xFZM0dfzK%)Hoh{sx(i zk<5T$K<&4R(5}Y;bbZ&fS=7&u0*hJITSEI}ut~d-;7A0L4c?3zA;rgsiM=ZRORUU1 z4a&bchPBpbD$ez$?dz)g+xNhmq2m2pofSSo%KWGn6%n8X$L5l*z+WE{OiH{$2A7H$9yO)%6GsJ_TY`JEv6CQq6Up`Pl&Ky=+9^3C29vhX_~dv}LQK^+w8)0_F-K#krmodwBiltOCY}!(TEr)+DF;FyCr|i9 zdKw30iQ6ldE4Fu3_Z{Dg;<;%`AV+(}u=Y$_CaBQ0Z(5&eo3IZNq2)+xeCimQ273sG zNf*;ktqGd&^Vfdl)!DpXd%Q&cPxjY+}2kE9yx)+zj;PpkF+X)?S!bPhF)}4 z01Cgmpoo*h_&wVRn)lWq6YQ*V^dYgjUa9?wM9OzwHHcF1#hfF=?b)0#(;#VIAyJ zT7pAbOA!dzo&%owun=(iEsPK_Dy7N8r2sb?AvlGm4*!LKJKa-Xg|r)$&U>TjZ4OjN5EKNmsq8f@U)7cIyvy@1@tz+b_=}W2^ax>RbjxY zX{7@aR=XXJ4Vzxs%fiLPr)~a?w`xG*0j}xiHAT3#*I{QrFM=@x+MCIyXinaSz%u3r zD^v)rmfB@4+QkS9_m**aVxV1kK_)fE8fwD`Xsn<~fCZA9N=A7Qel3#b`$fd30pv|; z1gb{R-0)fyLTCfu#$DFDHVn$Mm1X)D_ciVRhx>-#!+^Q~{dntO6^hw3&H29PN>89u zM&Ye?#;Ozp$TNn*0>bb++%W%Fjd+V13l{?mFfRcs91K6%I#?JOn0v-*fM{dXh|RUI zATbbz?QgyQt43^c9E%S_(#Ws+jI|gw;w=#R0ccoN@c!{l#&L}4Zt~BpKumxy;2Cyv5k>wuJ$I%UY!K=azu+YOiS?BTlM+PT&8W5eQg}p){u6 z{1=J;&)I-D7hNyG$S>h@SU4G8_wFZP{$jX|Ta17SV|c^6et;yOLMXz?nixzOED33_ zI1!&QV%Z>;H)37GC~F-8%YZCm5oLgBD*jm;J5ffr9o=Hz7!IX}^A)ruZ3}iR z%3~!(`jKjq=f zE$*NBmVhj403Y{8^xghOP%38Mam(jdk+fZa^l_5n{byKi#XVl`RdrpUtaHDGpw3I_ zbE(pXAE*vK=EtotyB|pY*m%!W^@~q4)%`~1?p)||68*A|er4Ztb_vI1q9lEZ9XeQ{ zjuvu`tU{ogV-n32tN1l@|Hi2J!W+fyE@oxM7q`L>%!gFBIcxnG?(E#;H2y>VRA@z_hM(cEWpOKZa9G>5_qJ6kh#V|iq^M763Xd)#C#xzz z%=p48oD$K7?T!9`M=;EUGIvaVDro-Wec0ddDsSFvj#&4|%KM~4H&L~BX+DyrEL1gn zhT(;6I5{FF+pAKJ*FKzuk%JZNTY6tx#evApvJnY+mzMIVVZxa|GQ6-y!mpdJaTMXH zk3e`DW=5BTalFcBH>BO3+Yt#U0exbz{#;p>*)!0MPtlG1)1IX;oT0+HV_5wy z58X-E$PMQX-I=UEwJoR-26voNP?JKc2_g!6nf5A~;dd&K1_n0wwbTBUj%8T4KAGXt zp<9Q{f8eiMhtzQ8(0%5F|K?w}E~(*NNaG<&FS~MtZH;r zVdHH!q32N<9)_8PrJ1U!-*5;f%%2xF=CM^WlW_Znn-t>HCHF^3mj2@LD1xScU4^xG zYt?A=t7d_5wf=Zi?>>%0Z+}XEfOzR~-YuQ0==mImet(p6*-OaGE|f{k9T;BxO2FPj z7jOQZ{A@HM>|UYc_z&0jj5gna44F^Pw)9bJSKJ3i4j(zMXnRU52`DaS06}2UuNm~ znv=1HvWy0SAkBYWu{8^~iI(+4^EA_CDxq_O7taW@7Z{nB`rm|sfpy&_`G)5Czg%I& z-yIKBCAmUnBFre{E$6!Mgyup6!k3;Pad*_6nSq&u;Y(rotU>sE%2PQe76wAVM=(#lAEVGoJ%pI9!8Bih|G(wKWTV!`3l7_qTbGN9C!GO?JB|?3p+sMg( zPr_%$CEyW&S1NQz;|^KiorE)RsMy-PS0V2&wFA-E17)Ijwdv*)%OE(ljFJKl^B~+5 z*t)ooWXptW$Bk^Aao1oa3uMJ?wXMwy3we*;M zgY3Gsd9ESv*V-;ac2*M$Aw?-elV=4kYa{Ztd+SHEXpg5^f35K|518|1_BSd0WtZg( zvczO*t1Q~PN9cPJtjA$7Xinl(zeL8uC&}1{uUNIG9^@UYsR2<|)&wW%etQfHxACz` z!goLIL-SI1*=O&*iId$s<}7ZUWeKU|(wtbF%a71@1_i+)n-?sm9a=#xpyb z$9iIv%3-!`>CYC8V|N9ULzI)F1l!831&wWd2^N* zIyolJ-lK|igoy+mCsEn=!<9s;T2v*1 zvUJ{}vgwS&Sw0YFS@%2j%r^tTEP0W?{h}Q8*%U*eBz11QSE+a=02z&0^OiBR2s60%^n^aiu4xK5H{#i? zVZ}c9c$Spz<#YiD;*))hfrF|VLc7Skb{x(!hh)Uzj5N)K)Jtx)>bSe!O#DUvBoS-I zVa*gfl3CS`6;Y?l&C z(j>m{j5a25LjO*qeD_Qg{h91s9=j0&x#!eWj(dI;sYhSg)wC5ouegW~+R<8C{$4o3 z)1bDtsJQ!CwsO+vX2dy0vc!q1gvQ_uI*wuawVv+@UdtqMWRxSH*2rwWcpT>m%RtK} zAo>){);h;OQoZuI0?M!z93Wgl4r;L{jVR^HBDop)-`YzAP@%N#S=yC9^SyN#*;!?* zEs*ZpV68Ant5_6B{w|=wDBqN8lK$mNx?JCtpshAN58vB*zPK8CXJ~oa@6UX3$3cN# zznXg&w{`(HEU$pD*zwvHS67}7KEw=b)Gzti>PbHW|1z7YNBifzE683W(`z1Qz4fU4 z!O!!OTOu6o-UoA}_+QfR=9Mkvm7OA;l=4|hZq5wx-zvKf0=ywE9OfCm+=(h`66W+_ zG}esmxiPLIWK-Hrvb%=7k?|vsX@Z$>hd=37e78T0Q12-!|GN)W-dV+r%|r0 z5ZC5i$oX22Ei`+;1u}F{D(CoHnA~JvsCbjnBk%43Lmhcp0l9x98io;jFR3-8v0rjPw#^Y?w)aLD>BbG+=rGn*JjFY zNQ+#}D_s;;f1&@_Q&xMkf^;Jdv8k&zb z*f9<5m%{pL%`W(e&#AWW-6b(_RYz;l2A8}=pGY0}o>;p2HqljGFfzybtC)v@iJsD< zyqHn=?nV@HX3KY}IL0JwovnukZ%dZyglnb}_k>Ye?h(_2m)hyJWCB-c(aGs`{eD5d zUqs!%yj%G*YJAmfLOAJCXogef*oT*?s)Cl}ayR6&XDS6k6{?9gIHwbAZ0bUivhGIX zMu^Xi{1WLjnNgr<$v86_9Sn+BZR%Fx|BC+av_kMwv*yfC{q<0IcP|p0c&2Fj{$L+7RLG`p;BahE0@Z&^E zdI{-Q(FqKK?JN0(i3^$+_;DN%3!cFEaZDt?&~gE%NBgrZg;telG7q4E0^M~`NwWgc zVsl(01Ko`umxpOX2IsH04!X8s9>*fNzWh}(Hf|jh6+@oo6i3uBJP3FSb1$C8bP~y> zDE6sAOIewiYPJJ`6qlGf{kU~tY|seRJ$+YQO0&4wW-x_Z`}q^v1zAAE;c~eL`Ito4 z?#ImEQDqZ8cv(W%gcMgh)8jQJe1kP6{1vY+NHlp)9A%-8eL#lOAi)Sf^UyF&bFsT- zT~2-&3I%MxuYUJx>br@jNqhJDya8v=>vi_ieV$Alu30y78J@&{+Q0EN;Yd=E?)>PE zGgF&18D&GyCB3M&Ry)7o%vD)vkaFDaQsru~DOJz3n+pW7;ghk^9CF#yceHRK-<4?G zkV|RbLWfcky)V(2kfZ;+g?>gE`JQ*Fm9M9qVxseX5JlO%VsuEfrs4>DK&)8BiTL?1 zp(l4GSbXuwq2+2xhCSESu$X6K$w$o$o_lk342z4qFP^zEtMgNah|Y-yb-ExdDuuh+ z4PTJOMpm|I0GTTT3?I9yy!V=nv93lht{GULvgF>CwEs=~Ye*5kXR9}#lcA$eE zc^Xl1kR0D;_OZ6R3{}u< z%^Q4mT@BEYed2fny?Pb6k1o-onsKG%(|w^ee4;H&GR!cQmfc`@&VS9;=Y4+fTB}pt zM_HViieC?OPA3J~*=0!LPw*8&Yxdq-B(DkNZIdR6Z~wN7g6UUfZ*gV@DEZW;b4=1l ze%H%Q&s5{5Ifw@@#wELog;5(9Y2_iuP$ny?hDOoFI8`s9 zhMV?0>GpNf&*J-faheCe$2knK$E|VPdy58Y!SCrjINyekcuq(_d(ZAiGBKMWb`j)! z;T!TdukwF+q5lw@S5vbfdj^xt)rdYt7ecB`(l57VJDaMUh1R_xc9NNjrtc5}`Qlt_ zG!8Tly-4a7)jDY}j>PP{E|tG;4R5w8cu|)94ntlC%1cNys-S2F$q){i8T1T_v>uzJ zb3%?u%yNQfA{fvy4a)=DBD9<*%2hsV%1!(n>8So)fW@0vCP>ctz3muhA} zlt0&~o&6K?@m7cyq&ygvo&2?^%g2$u@PQ9N416S-)|XD zC)}8I-}Pg9Wg{cyI5*OzY&c6DSF&wKq_DW)GSq)RArF)zDtu`@HI}=oQvR6t3fZ(I z4!);J8N>hdEuHwxd$GF*SECOugbcZzTg$asRX$4J+D-Ye_-pjB(dt}I!>Ryv{O;HJ zoGQk0amOCU>BIp(wY`29|XvYxa32|4_8kLr>F?6{z1(luz1vZDB$ z>QNTLY)%^Eqx@v-u0hB+yQhk%l$JAxY-NX;^8x(!m)K&+c*f3W@!Jctm61t}op0o~ z7ia4s(-^~$m8pJ`IW(O=cFA6zij176{yY=(W>fK#OVyv3zhtjQr9-Y!kKro!=B>(& zVBt~3Y@fv-rM=_Ba$U2!6e`Ja71bWyiZxlb+2?=W`Qe4J7PJTKIsBGMjqmSIG-ax_5VGRs`>AB2eW_M{|{%{1$KaxRgGza zfB!)t0usZGqWuk|;^|HOq!lU9?-V1!At^_gg^8-o|KEI*@L%7j02K!Jx#gwfSC7{Iu~#G%v*i!Ix{ z{BpBv8bl)CwJDXoPirkk5bK;s^FZHw7#v!a?jx@EG=^FnD;!3&)#88v(JT&>bW1T9 z=CSH9{tnhInkIM|3nMmT3wD$Uv7%Y02R1nSRiA{Xox>O2FXSPx3zUes%STCG$P{#Y_ z3Jk+IXH3$~A3NJl)z}5sdkTXa$5u@eZZ(5A#1JI@cxEZG4lda3tvSV_eeYUf9|97; zDq~i0I8_Va?=2kmmo2R$|11ft1^jlIe^xLwx_^1s3S|alQl0(RTj4276`)H&Ckk9I zq;D)_8jZa;{_6c>8+Q_diPKsv8DZH4R2J}|2aCZ!cFvI$=Ea?`V;nvW6w zvg)oi>|#bJ&An9dXTDB{Ak@%`C2pO8kr!Fr8!}QvBU?9~tYbHAk*<1KiR?x~7*PTca zHSDpE9-S7FLT2VUAT#sUV(B;LnzF0XWP~NWw1~ajvB>p!{0H8%U-DqQ)WK$q<5G4J zTRJiAoqhhI`Y&^PXrL3G6YGI#cYz0Iscd8&vvlU-f-I3aL;Z@`o$N$5cCyvpaawrT z;dvmn$-;(=*F#qYDbPkI0>?Dx8=98aM%D?-`x=@G?kmN_ znFX$qbM)j>sGrEyXj9Koe6GnI6K|HiMt-5EkV0M268)mSNp0hM6Zy3>!rXlC$vec$ z6b*wk+SMx*t06SOY-)|1x2J?cy~z??U*Dv@v8WhUPe}JP@j+-%stVat5H${cIuAE? zp*8mA!ej!i$9T!z5UF9ddmc;!qrJ!sww?+K&O>Ld2Y}(SoWblcv#tWs#TES7L>2msm%j^yZ>hClV%;X1 z350K_LV3u`8vz_wWJH{mfS7;Q2n}r z5a%7l>Av1X7J3Z<>9bPVVJh9L&@&K;IH7caOGZH?<)VmG4q%hA7CmNw9mw+bQULF` z3PL}tmw)-YuBS!6+4G6*Hmnc)UB6th`7f2PlnbWX0I4jru476T4uMYYTTPg0b-m)h zl*{_lNX|KOa)M#8bdN*eM zBa{o{F7ApXPKUYyLrB}O37L<(9n(|&SOvbw-1atgmHJ!_trB{fvqhpmq-a7HN@mtG@&b&?y-eA#FvLx zhvzp#$uK!w2b9XSA}~3G?+MrXnk$-D!Ral0vEGJ=FK`~ut+FTBm5?EYIggSegVJeY zo;py(Rf!Ud-#-kV61Cnr433)0m^%z+4O{Q-cE-I=JY(0QkU58{ z$-8$~J7MY|6m142jT*`^dNpyvl|5Ujo0xHV6$O!0KVD#l=;dfQR0LW{A>;7a98|M~ zBo{FQ_e97j#-#t59sijP(p;D+dKyiHMuM5br6Wx&&q*AnubuZS1)ZChB+Jv+UJcEa zJyUgL9BwPW^55vZF5Nw8%(y%qinB86cmDV+)0{Z{P-Ei{_rUskr3K{`Qjwm`@+(8w zd3j$IC%SZfu`}{w;)FNy|IW@+mAH3h6=Hf0u0-$79gOs1gpKK69sEdRzzok@Z7)ve zDkE{?aZq@*fBttQ((6I;s^Ube8MJ!%@1Gs!-LX`E4HoV2g`EmkLDh@{lpS52!zl&w zd9Cw~O3-1R;@>o0_autt8yaE1Ux*nd-mz1EcM2!e*OM!eCDQ>^#x91cIQaiTIzZ5F z)w|PMEdtkStOJa#*LT=` z%7g4^ndM;2sL`rOR?wm?2pJFVN@WFkz_?LaC6GAI4ssEqw3Wpfl@IS?C%TcuB=>=h zNJZ8Cmrp-w30!wc6Q&;fSHNUJ%#qJ@vn}KxqGcqaqI@>jo}sV83_g96g}k?t#ItFz$7q&(WH;icUmijElqj zH9U)Wf6VhfkxPO+52cR9%Vbzs!mW$PekrG)?1wh!zFPicrnmp#{*ybEyB@kNAA-|yq;Z$N`Rk&@8 z`R9hzdz~@qWKYy+Y6R}pHgLXFq8_r1jI)^=NM5rQbSVafBb#;qwfwBrj2URh%@&@~ zK~2cDLm#iQ13b>LA;DO;XslgjbL*nM*>COoccItqkfvT!`Y>wIXuC*gllcVmWsc3c z6vM+Q#{Bfp45)pO$3o zAPYk;FblNK$U-}I0mlj!5-|&zM$XuegzlCt%&l7-NL<;U7isDL9%nJJmppl*Q&y$t zQTg)S9!fsv|JGxBv^x_3oS3V+w8yyEvXdNV&y690L?Et?(Ki`Z6JdxEdUQ_lC}HCpz! z43F0)f@#!dow-%Rlu|5YZbt70CMA~}{UO~d_TRDhEujKBu6Ac;Dw*fBr<+1KYAPevhR?c9t7bjk9cA6;U*f{8iOrvp z-ljsKJtH#d&3h8NSH_1r&j-1Npcv&9W;We`_?)qQt~#vkl^-Gg*KkGa{CZ2jleP01 zN13{q@1Lye^X7n>j6A)+nHAae)ojOgNp(28JK>|Y{f=quD6%c@Rqgwcd$V3p+c>qQ z9S})02WIUV59#=R9&rjLo-uqA>3A(3adIXe(BxVx$f3v_d*=l3TDqDzDHAtfsyme8 zm20+Mmheo|_Po2`iGhVBJk-28>28}l|9JrhgK!^9HR2R^8}4KZa!k{hlVh=z6wcuY zm#s4l8%(Jx56Min>dT~j`E|>^&IjCGMq%SA9uw}Dpjsiq{t|f0%t}zAaMCo5jCW9u z$O!QtPqB}Q_h>p9Ml;{hN~LP^*BKda@z->zNIJ_Oz=V5GS9fDJ;y)8G;**2(s;z^U zuo$rvCt$?b9zJ$fV?>w=s9+m8w=f-aK=De8hdMe&c&aBZ7Bl#+_tvnymRcvd6*Bnl zOU0wS_!LSMIwxnL;*nzn{T=+7#QYaS4)P>YyPYqqPc4fu1~_YY5W>hi_RU^T#$#T4 z-NxDTT|0rMxqC_<;DYYA<+OdFp+~ksjijM0bU#IA{^~u?a~vL7e7R}LlB6C#a-MyB z)ErMvB<`on=gS9*gK?X1Ve>f@S{A{L=cZV8e~` z_^73cm63bf2bX(Gbw2DYzbW>l4HN7>Sl{K^h;FEK>bj-$oqY+?AI7(CzORtpb?+Sw zI7-e7_a+~ousr0+R6Um3lE8wlCbVVn{t@}o{C=I+(wG^|Z^B>Cf7$n{x=|=MIG*+X zaXM2ms#9#`Ahx!Of%|LXe2*CDIeJlcu5$KdyA4Ybi?)m7EDmmd$&Q=Vr$p2P4^F4^ zh}$@#jv}M>Li>qSAe-;8N_e!tm5P6yK18L-sZ3n zgZ-L$E(re8*;7b#zsIInG6rW&J@EOx)TQdCPOO5)+V}<=FS}_LCNAXr|9Brt$?Diz<8deU-Zn#uicXfqT_eK3B$W5M!3gfsC&s8Ho%^{(iI%{$2p&bsQ$H=HtkJQ2KlsH1o$uANui zvCU?|#m&yL)pCecWJU)%L_gL}zdE2+m^*4wZT;D%?qUsKrq4Uzt5owub>%iu%BWrz z-}A9H7SD2A%@s};W6c|g1Pe`hlY`iv34_o$* zl2fT=w12cx(5zXG+pH}Xb$+M|Q*s!#FS7XJPWM^KXx5xf*{m%Wa}LuBy`SQ>bTGq4 zMDtQnrW11?^~WOYe#*5K7Y=dakcBRfluOAr$StDELYHI8C2z3LpE|j~Mc(_yP&?e~ zt7viU+i~;#*^AeI6NWtJV(NWkpq=Rbm8FP0Ra9^5Al6kh<<`|K3ah1BmOC}d-HdMc z>)Q7^T&yw4l~P>kisay{-n3!GtXbnbaA1Rum+7g@O3Z(c$#Z;ei~F_NiMvU1fd^aOyD`OSHiigY-XDDs~TY`l-OS5J`7QyxWEw7N1{w*1Q!Xjqm^VuzxS4w1V#3>pp4c`2K`3(XBI4 ze?kM_xh@G2y$GVrh`g#7U2=?D|A0eQ+6KQ(pET#ldw`e`ZuA3u48W|4f8>;bp0fk+ zr@sabBn4D~B;S#tq8`eK;s;MdDoaT-X@pOQ=YxgNpUXnR4G9Pk`g2)Ggy=^JMZusB zrD59%#6-s39h#Cs9f*m90s}g>YFH#8Q(o~FIwGfdEAnbS>G?CltTsiy7GxI`F9!i8 zIzDE&ZHUl$F{bOGsWxKhVrY8|m_}8-!c_DLi1KITU91(%6DjL3Xk*t zGfn?9JI$dugya?f5?%#Uo&eArY|Xp&0)sL;q}nHaynsQO|A(^>gEIdQCpNO`V;+A# zcDu2Cn(PGx2_B(JW{bv9w<{dVY>pLR6pq1}0?gm`S(Zp0yH|ko0{vR>{fjT{81R_l zb5cYw>&o$G2L3b07QOGT}3urP8(A=?39ryy9|SC~{^jtwlbwaupzy9Nr#lDc}z zm6+wYP+H@{YD97(mW@JaOTY<(3v001+Gk+_XWEcHG^!2*I15JRl|_1B1S@Q4H7rOL z_0yf;4G~OgZpN~ibIx-_M#fzY&@Dc1HO;!NyXh-@jE6u{{;2M`=KSLoMatcC7Y(a;7J z0HJFD)@5hJ`vs z>0{vjDE9KbNC9Ga2hb@jHw>pDK47rp*4P1211AJ9R&~84)LB7?2_?K1DX_0IiBp5-*w$luv%4hKl%J$n7K7jVE#Se z!@_>{MzJJT-NAqxV;IuZEg1wX&Zu6Qj%KH;=mTBX077xOW1cL&`ep}OtwfjRaZioL zZd`k`r^Tw=Qp!9XcEMgtC5HW03q?S3taQ<@we;Vslk<(#U6N=sy4M#L9)-CY-`c0} z*GiLN>JEFrkQ&95z{8|+d|#_4XI)2en29R%-CNFDcWHzV1$?W-ERDJB5Qp%0{FQhk z_RMOOF7{-}iqTGX;Y=kwlhG#$^IQ~xF7=w_n1#)CohCF>l48akE+dMc4lfBq&Y7FP zba<%pd70czM)9(JRU|998y`X^u5+*mZ5p)!Ow+v1fjj1D9YQBwsz%nGkaapoWF12{ zemr8x#J^pMBIOT%QNqOUIRfA*+Kmp_x(rBUG7>2n1#IO|lWL&zG9W-`Q`LwH0xJU0 zS+**SVM+sLYF{5oi4dg$GnH^+MjeI@{ujFaU+9~^p>BQdNB*YTL)I%1_;u+mvW}Tu zC;U|@w5c95g-*gbTM+>wVay%RYaN8|3={2|7)AknhFNJ$=H?WRK(dChXk`3l1R{V_ zS0Z!n&_Q&p2u&L1MgpenV9rKH;q77( z-UKt?RGXS^kD`&#+vNOZbRqysV?#gv3*9{ot=QVTsQ|1-1jVF!%ed5njp+Tp9mrEt zhC*1@M)mi3J2J>a#Q?7y+pZCO2qy{n?V}02I@c*IGP$;U)7TMUW}s(NIWjJ_M`Cfz zq`APz8UUh^BpW`Z0wRD^13$eejihR}8G~5bbgjJ~9~H#_nLOK4=oC7@H$h5pafTt1 z@pQ;%0ia7itN6NoGthBV`Kp;h+~8tbUXL%ZuM1SwO-O_nnlY5?iowmB$&RB}uA)bC zK9=Co-I+=#gfVNySEbN}be_P(cI~~?71&Yh0t{{?_TqI(bP3&d;RSn-Uiq#-qB@tW z9zh+NM$f%UEk#P&I-N#R)BLV})&9_sukT-y?q@sx!aSL|7eW30ki!JGoc9OB;es~_ z<%R&^YafixIm&#p_P#X8>j6!KcHbx|=#`Lt?}Hv36Pa}2j(m_Kx{@o4#C{rdR>e^w zcHi^qb#@@qpuOmru?Q6#%#gEuIFc4^^MG?`+?7m_>%ml83gr1Oa5(6iGO=FeP-3w} z=hr_}E7Xn%X)C?v75W5;dt&xsjhq|en7BXW&9EBjJ~CG{3W{u3f1QK>G2}I2a$@3L z)ze{QUT1_a@*R!4K*@Ye0I9A}a8UwKj48BG5d3E@QY`AYsUt;|rnRPfirD%})A#?( z$$uuj5%0OfQcMEdAbjAMQjPw9Ce@({#gsu-{g9^1$P~b)S55eT%Py>@=g9>yQve&9 zxc(Mfp51+PSVD29cu9(sWdLBNSZ)FUJ5S@X``(`rVEHle_p!0n-oLMSjvrI6Q5@=u zI>~Yyj*<8j&qPKBx(w7=Zc8D38!De!k%~*1%5ieH(54rb;VR_*P1l+D-`2#}Ic+Th+kHCCFs6^}#m1+&Nc=S*t zvb^Mpbsgyu;J7!LFkOk#b(FY=i_$WRtG}u{jCgy~ri){HAE(Ln#8I(2mC4sE&!3@` zve8?k;)=ha`Q^x!9x1!N7*d-B(~5Z;JK?h@V-i+0!WpV?l~2CN9((uRVG0_0!TbmOl2FBi?=mhY9?EGuXpB#$R&0ElYU$^PuBcdq>v1n4PopJMrO4 z??=fp+--$6kACaaU08l`Pe)%vqCZNd#bRiY+ETY((WKs&Q6kPLUbTm6lX?72RH`aZ zTaI<)@6&E=7FN39mpF&B?|)2LYhRG~ftM@MoJW!w<67fMcyB&cBVCSp#?`K3sU7L7~@WVMQzwK9OX%n;#GSky|ZkUDtv`Xbltr`Db>PYHrDkd;(y**=@ybhf6OY4 zcc9R%qir;IHdt)qyrOQ>v(4N=FwZFJ4zJRvKBJUcDb!50v(g2#VYN;FtVEnzTh4r_ z!RGhtSo4X2(BkzvwkMP#^O**B7OzV&S&7i(9 zQ0%t+S_eXVAhhDFNZ2H9!)~EtYSk3(08{t(TBUZLbr+1ifY^N{C`w3%)=d?^(a9FL zDr*4BYb8B}@il-tXA;~P(%oF}5n~{FgEJ=4^D{XLO?&ID!)cV3&!qZ5ZlA{ncUT&r zek_(FJ>?wt%y*=(CTe2MqcZ=@Q~#M{h#9qums|KbmpQXx{#FftVBw`i;)gA5FpR8_ zFzK5>1$8R)j2E_LP)jSY z6GtjkBx#_=?3v-^y2dB6rwFT_T3OfJ;xRZjLyW$emN^q^IY*qlLY2HvZq6&VHD=xi z|E0^Hjr%svlYi!xGpQ_ZWb{n)Dccig=y9UenQzs&1klRi1|OLw-~Bu$D(7%6kokzK z%|mVx&2Ed;uSXtSXF3mVt%ks@1FT8X5IB2qo%Vb+9sB$<&+gyp>dey~Q^%#&h-nY> z+`rnxMvB#pWf>Gf=hoEm0s2xR7QK4AD3hXb_ivw+qA!>6img0KXV}91#F#VR^u;kH z!>Zx^H@pHPmnvU|{MiRu`_CpdyqA(b|=kM{~`H zp=P<&#}HmsbBw*kq+MZ~O-xYg|(#BioQ& z_@SvJgW*QcD^05R+ZA#8Zj02EAyMfJ^O^3fbe1V+0@7zd<7`9}ob$XG|Lqw8B;0+x zMShhAC$K%=IJz|~{#WxM0|s4XspZdsQG4Dd!Sx3McUZc=IsA}3t!Z>U+X^m~jPV7%J%Vx&zk3se;GN;T^aTI;Mdz8Sl(dv%Y{@hacVvDPC( z$JVqna|{t{qpJZ5dxXC}6OIag`%Jr#B1_;ZpFFldK+ch1nY5jeSUPx zMmQMh)nBS_pP}cmIMQClvvTDF4$S1yyU-G@Wp|)phxdX>g5{k>|CV1GB2Q@PLKD z*e=Sj@af)lSYH?qmU?=^_tP1M_#AkJyW{#EFL_bmvJ@R$yL9{_LuLBV_kP#m-gUw> z)U|~4?~huJ&P%_-XumeZIwr9|K3c#xA^7sufQ+fBN>ec(mKiO7Xg1yG^bHiT%A2jg z_ukY3diQbT7VdGN95+~QncDEG)yQ<3i%mJEnp7U2qwL;rpe74eSP_kJr)D+HuqaC* zu9qGfr~59#7);1rxpMp{(q9U1=+jRL(`1jF2hsjv6yR;MBdUh|4113Fkl*X4^~PMi zA{*&moHFmoL3?!jWxN>aG>=ND*_ona@_=s4#=ZCR*>$Eyo(|Nkk(_GlZ|iM>GA(NxI{)p~nU< zM+j!^2e|LO$`{y@HQW`!i;;iOWW*5`y8L~$dESw zcVwI9=X0#{1h2yQ_diE8ihxigZIUL#v{OW5ddAa#50>9ojxjT;J)R{UDIa7tCGPw@u7wh~L)X!MO;3h|eB%#04UPhl85Sh(`<6IQ&i=_4jC zV@pz6@q+3>14@4v3f2eo;&IrmXLoqjRzq##?&u8tnytJ1{6_qhI{khVmoC1Y(Wh7) zFMq5Qm&vtq?cAMskox7t+1k%D8aTad%MHp{tge)|-dLt#X8(Zum%3 z4Ocm4Y^rOoBEY*>z^y`*p1$?ye2koCrXW3i0c-|fg-d;$=M&funf{@QnRToAI|GmX z$n=d$-dbI1ju5?w{nkvG*c6Tkt;c$kN~z01_ctb{G|jl<8cNd1uF@w(Zwd^p%3H z@0|=kQ?bnV{;0OEs}EAoy#7f{R^L zM3Kn)xNHS(3VQfc2tUh~lwIzPY_@&~Wyh<)z6@@jQJtA|%LE+J<1SFb@OnMnn>&p>wKLT~xrDmqfb_bf}^)!j#O^nyZd}Aslm=LGZ zN{XL|nEZ}kV4D>~F-~Mf9=(j5bz-DSX!D&5bW%SDo?H4buD(7S8P%F?M8aezD;@Y! zl%F~AT962Z6rz;?vKN$X^=MivXa@%!fQH10?^^pw5;P#<|0ZSsB=2qhsl1-m{8z0TmYo!w{i@rX4IX2|qApW-`ug@mNDwfF5^xuPAoMMFxL%-r3zphTk`{@`9 zG3<@lkBG0KJRQoQA3#zlFNfO?{Z&3OK1|1$&utFn3c^voS*U*1R%3Lx27k3CL4GS4 zTooIXHx0pg(d!vK&W+A}Q{q^T2hmvn&f=-SyANOSAC0jruuFs4qlWgx1aRUpjru3% zK%)P0vbN^ax@aIdU34vH2GLW~B-4qMwqwI`lq;X-oCv)23%M4|iCbcCI5v+4YG)!e zFv%3}M52OVWXM=FYL8iW28P-**CW3G<(RgKnGx@KW_LRo&Lw_&Gf#$6)w000!b^(2 zn0YS6vU2`-iWF1|UC|r}CBOH_jl~qp$fyT~QIB@i_l-hco`?Mc-tc`Ev`HW@e>epw zUV_G$qVIIBul*O%Uf6c9%E0d+LW~D{3$HDv0^|&P5h~~YBrEYm3pf8DF|h$ zVu1Nvioo;eDD1z8hX#1s#3HO9mI_@a1DR;e&3 zsJWRK$BX4B%r;HreUJZ|+4-}j8Z8XO?}4{SOSqU7N*HtxfWq@<_%!7Lo3Da+#esJf z8^af#EYNE>zOfQRM9brI7l(uYccnvLHqVCju$7T zmyYvtc)+p`IFe=V=C9#6a9la*nVs*n5dRL#{)CU7zfwm^5e)V2C1sDHB6N7~5@5q8 zS)G#*kkjS-P{5Xln{U!H^J|~<0uZ(O3IZPUb4LdTt-Lq^j{#3T>No+90Z;wFg9eY0 z28E$$@R*s%A@Z~yBBp^Pi$ZU|YC_|&iC0e$WdM9RJ5SaF%G-Ie{vMPTBkQdmlEGP# zQhJS|DWA(rOmR_E;FgPYD=| z(B)Qmk`&i`;8fB6h}&nLGHmnt<8?5rX~eDOrj{rMt@hL+Ne%xnrILVE75yrPbRJ8s zbO}eB#a=1|J0`|Uch`(t4J)l}M-MHhu7-L@&ofmV;y$Y=26u;sU=Dv0@wuM>-85 zzk{8p-(}gs91ElC+LjVTrnN>&c~w1^aBGiOcT+D_1nCo>OBOry ze3|Y^iKaCZMlUSw(t_1o0Ar6_HiIJiPb$Kwh3}BG!cif99=WivOAEep(!_+33-e(8 zSxs!ZYW2{hSxVqHNf!en=svJ_-*I4=j4?aQUUmG5_6lXh36$Sl2m8-5taOHL>9=T! zd$SR%hXTz?L=pTn(Z2#~39s;p`{T7S-k=`3n}fkq$7ocSl=g$9=)0)tJ)^<$;8b1N zUe})DwqlzLlI6IL`EQBeE9`3#Ilj5k*TK#m0ty=;))y2npZ|EZx9-l>synI1#xGvV z4wVPXLiO9Xz1G9SC;11)FPw*uoSjcy3+Bm{o|l}-OqOEGQVZw?PN+x#dq*06@)?fk z^CCg)O6f@WB6O)G1avYsx$;4ueYpG+#3d*3*9uuXl2K&~i=+|f5j|1?R80v?IRiTt z(zVL42V62emtGOnp9My|Lw48MtkWILtn%3_S1RI31w#0b&F{3^n3(>Pu@LJNL;$p4 z3oR7i5;2X8>JX?syOVV*8pu~WaP6nuas1pU^nJ-RZq<1Feemi%K^6}xfN+=HwNPT` z<}(X2^sD3agV=%0tGXvVRO>$IdRv|PnM3b4)as~3^{%wWef^S4dI%YFF|&rkDs0I# zNz}PioGn61dm8HZ2V8G!P(RCVaRP!WkS;StgI{lHcLI-7o@rM7_Pcr=@!b{2O zuhlspsl`b27;1rfwZ*qt{@Je;+J?YXF4dHspizE9tEnyRipXL-J)$hV|E?ynkZj4O?>hNxgO*CY04^_DTx1& zn@y;V;D(CF?eJ&S1vhA=t6k!f<*DGUG$-lryvA8gGpB*?d!2yi54%|&7VH`g?lz_E zf6PKC<%Z*2_@i8$9%n#teEaZ}$?5#Yb^@5_99oC?5a`N9{~N;$y~zEEx2ZIE7r8*< z-KzCm(uGYRK|fn)90Wr2JxK|QYxe{Blm6#G)BhZh`*T1DNWKW!S*s@kdnVKT<2v#) z`QdRLO-wEjcid^+>AIN@GrnEiGIum1HK-=V8Y>Ll3pj!|{J~>A{F%nqGXTXG_nG2314toBn+l16moTvytJNQLYm&5=>#+)Al(W$bn( zIhBwBLCxnl%r!5W9`Awlv-{!PG13#6sUt(9`$Iy_@S85$$KE2h#uHx>wvw6#*x5Ue zxLKc0SEQ4w2$e4rfE19Mf>6XSx@Fb1w5z8~n6nl-Dm}?0%Q@V-gih$qa(8Xqx`n`w zV%*)#e=B<@DWkVnwa_eZEBj0`gk6OjX_@%*rn5w5-?bKgrai$$$F6AJDrLUt5Z*x< zP(ay|GG560%>tG3RbxA?YiUg}d~cZ56uiV((9(ggi)l;*p{$82*WYmX9+pbw_~w+m ztVWBWba3%m%3D$Cd^syueVA8l+??yCE{HZB5yr?)gvOB83a!+AH&Sa>5GDel=J1P> zL=4|sdlUxI%w|Cn23^K1G;z7Rx$Qra^L6fGK8^4{S^2kvL=3DCCvJv9vlH&~b#5R$ zqgl>KhfdZU#8WvbC=zYy0j4BwWAFKXf6x8wj+Vjz70dsy&}W;gL+&i_9Tfc#lgwz9%tIU8?E#GG7)cOMbC^x6q(}mc2vVCFG^? z-jl_Lht07z4s1?rTJL>Z;(K{USNGfsT$<&FCm_KQFFo%8#N1!bna;KMKe`symccnH zyi{MSQ!le~IL?dK7YA-6V=HA8zA2GvGV=4FrZt*n7mlJ4imxxlWU$NCdY9g3%Y?JN za?0e)?2sdcPSn5S9Hw-OIHzJ_Ra%M(ntDtcFoXJ&2wr`t)9F#__od1z<&{C8Or`0< zjFO)Cje`!Ue!xnfHHP=m;&NePe=SPM6dXzUvYE<%51#l=9+K>s#vwzF( zOCoH&b(oz|j`#WBW)vg5mC0gPMK&MdK z^Q+B#LC?@CjxXDa5n;snU2tFrmoocB$Rd7x6xP0$dW@L*S2{kay*S*Vs3(PQ$~8La zkwo0o%%Y~hMDh~^&jPL-Y;1A2bZ5M z6%+iK5y1VaSLdMu?no5o+AWEJR$bjrz&}|gd$k)RX7BfEE9_rU;}1)2E|nFp`l>KC z;aM16QKl9437KXfaVGxO|Lf&sihp+B)5jz7!g#YsR{}_BDR*9wT54k4zve~S^Gd^T zy6BiF<|A=R`LDv-Pti}cM_v^?_3Fq#tq&P^|1`xVlFu;AK75rq66Vv4VvhtV(2m5j zDEVna>mA;!qId)Rx;dGBJ*)LRiWrUSmWm%La9K?nV+VyPF0W`bd9ZpgiPLa6eVV2| ztuzvR^n!wVMG3OL*|c^t;#E#*L96yPjRoJ}nCM#kKFz+aV<%xG!=r+5 zp=WKffY0kV4p_b?9F)97>CC?@FO#Vsq!*)Xm^l#P-)5yvPo8Cak$pSk4t+V2m!Qij zH!T=6n7efx?#Q|vq~}XUBZzm*J6mh@>%*GbvAN)}dG4{{S+xh6GZEOo@YBp;dR&&m zR{7;?m>rMeO*Pd03S1^xm}`6upFH?h8>#_dD8^x>uV*lWdFszi7npQ>Ix_j1VoC&W ztM}G=28I+FR+kqgvrqDr$mxR%v^t^L4ae9jxKATZOZONb3=;b@($Y&uKYxc6PC8H$ zCimtR%q-sUK6N=8^=M16v5ZMAsln5%y#|cGD8qx#e&?MD{t-5X-sM9|8GfpEQSmV*1H#d4mjtxSB2wu>-6OdOmUz7ZBN2jbj~^m@d!+04brz&&NLc$IpU|d?4wK1 z+=LibF{7g`t1Mcw6kv zh%IG$f6k_1MCB!Ekm(zUE$oL0Dt-W zDn3Bp<`NMV(TIA^Pi0oS+_Rt%7H-xTS=Na!mS^F3GcmkG&v`*eH^XqqF>|z7x&ZcA z`?4AGW2xLe^)I}HH5rRNB(LRKOTH_dyAzPY#V4E%Epvo7-SSY}R>Hl)U(;HZPg>^T z3-ButcVshgXi}M5_AK0m)p3hIEM72wfQ}keZf|?hx#-0S>Fs`W82LB!TKJRoSmJOMzVEPO z=IJ1Zr{SOR1tEmR(+ANr@AqOsl&pDvkXz0{w+I88h@RvZVUv*D@Oe3RDzIdMtcf5PUKaC@~16)>K!mt=yN3-IbgO&CvadtoenmcV@) zvJ**4i71gj{dhSFQsn=T+9=_+Xx+HkEU@&38|9h(Rz(fMD^jTJ zDLVG4#I3KnrV<+cbXSqE(6nB?pNgl3ZW&Q7F&kx5|#qaf|&6ruC}*Ou|#jTc(aB1}sa&RO?x8 zyuw2T(N00(zcj=ss8+tUSINjf$%7XV&ZQ6Mx*dT&7bl9y;I%yZTq;N}6w*tJ1ZmKG zrBtPr`A^q3e_NTS8>$Ob_{;CR7AO1&y!Cb6^hwD$%bTExUs_ZV*b4jJ#R>leML^oG z#DMip(DPq9R1y9P`$5GCgh8Jn9a=KZY7rRu>poN~?nf5;(*_arubak{7_eCcM*Vt7 z6>-i@@kwzw$h97--h&Mtfu*xy(c99-cwkv+B?nmzB&&_iYC@LyRXziVquRXS z1OKq{@E$=k39Wwc2b&a@f?}OY5XG+3lLsl)S66mmVGeqs`>ZEeggH~C+4XuBj)0yx zO#wr*d;-FWpIUN)+0lIjUi$TfN_l#w4&bL5IfK(T#ya#NxRQkdgiXs+jxRym?qJf0XcFVWR!_77e3@E zS2mlFbRTiJ&&d&}>MJpcC)#e?>|Pgevt86+ULW*(@70-FiSpHqBM$n^oMa`;`zlU3 z+RO9I0j_D|ZjL{PrOJ^iNDchD)bk8<=LRV7&29*%;-Lj$Dl#!9pNfN1+rdUpuJ_)< zootJkL}iUG@fJpVf=E=k{O*0yfj)y;Mpghm{ru%JaF&B%-q% zkSwUgK&>3QmY>@#$#R<-HW5^Ku@xgF4@$smH#7L8Clq z<}uQ%`V;P!ur<1r>u>3&lTvcH+D9iWXN2m1{bUtv=cL46K-T3P1) z+1@g|;}2$!878B!WKRBb?=b@mp8D9E4f`KAU>(UdKF4aF>D?|m_C9k^ie*`O82R-1 zO{>8lG>{aA%b0*&7Hv`gftm+oKgtSQaDkoevA>4-U>8aW>{;b9*?xK19z}P9+wd z&azEafF>^^gi}bfv#l&ZzoNCrRxe`Egwz3-nzFkfQiqUJPvQf6&koOBI!`s(mv8}N zWx>|En-i6?I#uQQ>BD4VF4QY?9wWnAD60@^kqGAv@l~rg3uTDkXSFNMPT3vD;q-v+ zjM171UG(+FZw^4U`IR>%?-$eGQXHOL3iK0o{#eHvEhW(? zJhiev5Pw^p`I)DmQ}ggn(e=Fao477MZ?DY7w036(^W@218A4N*m5vW31xC4ZF(!b% zxppye_2TA%m#jwBiy@UtOtB*agtA=7=8~FodnWGnw{J9h>vS!vbSKJ^vV@(&J<10h%Nsm|luH*Wt9i=V0vf`E zlo7&lzyQEr-AP#qPVaQ%hhy$(D&Mrotg(Jn%l1Co|7E{|>xxULN<8T*zRqjy`JwnP z**9^^&u|RB1?F`k58DV$$!(w_U(bUQYeJpZ`tw74dD3>6E@wHu7632Vj@5dCEG=u# z=^d2-{ztqKhLYR$z+7%gtME?ri(ULy={zDxDqtJeqj4x~)fxsX%W+^OfV!zVSbT)x zFLkR*164}Tn$u8nmzP)&1x#UE-$AaV^MT_&Q%-jlehW~ScLv72rO4koD}BxDvmPEx zb7$dKpUe2lR&ZG61cZ0byxShaR`Q>vQ6vI4vljczMBMHNr&JiS-+2Yx}=qOf5*7+gCNa{?0nUoc9l`T}p6Qb1KNm}Gz=23W}z zc2gQj4K1mpwSv>=ieVp(&8g7KESw*4EOC`kA=j;wDo9xhnOJ4Hx-0C`*;FT*yn^p1 z*-gu6CN-EGBkNjmUJFg6^xj;5C+3{L*ZYiy{KcbSr*=E80~I^^1?fOPN2K`d-g$7& z5+}Ir(BP5(o4%ZtfXQjuMQSr-_>D5b9KWK7PqW4>Lf^p@8g}>+cq74Yd%AjS+$Q zUkbKkqmqrpdTb_w5Y^^Dijn0sHur{{ZLel9Tx3x5b1E zzojOat5q}$+_}|V!IztT(;OARy8g{pGcWtLIm%@q9eaP)C%X(=)v8NlKHo#==&+uP zI|ju;Z1<7tLA`#@@<792(Y?i*($?Aye5TkCncNb`>N)?PY?eN4`Mtd=x&FlL%ic&> z>q;Pd%M!xb7hXJb`(fDdpuva~k;QYKr&Qq$S2-h+H^K zV3BlZor8tIkF8OI={m}5&Zgg7tnp$y>nwUK=O;eXzAqjb_c?kc7|$rHt17-7kh+h5 zcu}5uu6mR}@_EB92zNO2J_0Bge~&v{xO1n7OP_aM_?L2S(-WHgtT<-&?w z@6Gz1CTd=a@^H0^B{*(O-AY^MiR)CZdc5w^^Em#yQtB{vcUODHXw!Q=9FTmj6mpfh zYpvOsewAi^ZszOH4xryF71&v;-j9s=_Tt7RtnMyFRD85Gb`h&D6eCvw)MQ-G9)qdZ zp$GQok37UC^X=Sj1StKaGBKn4>W9HIndh=pOM9GkIsnui$*pCFFoCm;3Csy_e`P zx4I4vJiHXxv+!0G^>ky_lH%aJ;wx{}rmx~nhl|%!fo1HNpU}@+k`HQrdmM6o*H-OP zO@qY8+>RELQup0d)iNT=Q|g6T7V1(+zAPxcnJ?(ZX>77xxYolJ+56y^ufbH;gVeyV z?h3a>n{M{T&$b{IVb(*qdnRXc^tf0NlPVy?>@LDL*wi%*J@6f$>at5+#=-LezHoS= z7-}R}&gOnlUE=hkTfCQYP#(A8kKN98!DA}_MkW`D01U67&n<}uQ*n$7S{N~JzqfZ-(c_c&za?(Ycx%P+PdcLn9{FrtI0 zqD0}C@nWG?$U5JfnF+57#lB~ws?^wYBgnFkD~%~KXSAvC`}Kc6k%bA2t6KPc2G*)p zig{2V<-V698)a$R0W;^VE!8m^1|locySz=I zoJ`Td09(J4$<1;oU$%E7PO{HFh&s_3UXLB)p7(lFV~Ir;kpnb|1b3d5$I6uHhGY(2 z_bvNQOgBY}jyosU z3!j0vIwr5_@VgD|`G4RM@D%&7*Xd}Hl2-J*N`SW~4o46rT+jPJ?5A@i1ZvJcBQ zKbxe&kJNryhp|lg*tB8Vwp3?kpj2Tw?g;g?{^Qq+LhvfgN#X7FD?9dw!qru(`Ic=F zC-Y6iPnV)M)uOgJSpc~nhr@aJV8L4wIY8f+YFF2sg+AbZG!LIELL#$o^wAoE>?#KN zWJ1myJZxU+RX;9V`VQ5^y%WR%i}MAlQdI>kba<<_x#9J~IN$41{CF!G(_~D#%A=qE z0J(1EXOsOu+az|m$0*NsOxcFXI314K-Gp(OwCtabHtW&@7uqvr!g0TN$PhUz^00-a z|Fktw_tTBej92qj7JI#4(Ct@MU?PRLx|s{l1(LYxNVFtkN-9#l zBO6SgoLj=shwJ~)V!!2i`|i+%j`X+q=lb_i>@i;Uj9`TvYL5C$*UMvB-=011Tw~b~ z^edSINk9J+v6971_Z|#IGbO>T*3&M{5ZVtSDEQ1u>x$okajuxfRrio%4E+5 zJJXAF@TBR1?_DvvF@;t*o5ewFvqVgkx~Ie}AM&`!;(Uv};ql<5XbCGQ1AZa%uWSlD zVT696lM&4hYn6W7oJ&Pd(>FIwCq5-!NQe>7PfLJ7{LTBBLR$%rYtZwGHD(!^?65ZF zz-A`_IvyS?x%&?pR~^n0MVU$eBxbZrmJW=$nHUwv8svUns@Z7hWsRSro*{U3_sz{P zsZNpkG9fy|_oo;+xj{z*>}4VOY45*e_*(-c3GRP(8o*NqEeY_#yWR`Z8E7NGB)MAf zr|)WKR-L-Kh+e~Q_p`^}8KDzH?$`A1Tof|_T1FyKP|+a(tt|n@g6bgaTaMKAz6Fj6 z*yItim=)(D(iC7Z$NNQdW~NMN_krLGB=fV$2-&fkn+a%FL$A6OohF0F&mw`x*vkuA zyENGtK?tBFaT62R)RwBAFR>Zze^w+N@cMxW0-J8rKF&3Imd|B;HLv~w7d*=U5~X}K zG@|tOKTGl_55EvZMw?jT+2nYFxz0`zUrq8JC@_o_^3_oBBZ0BSW0CIPQFHj(6Gm=A4edf#Jgi3!P{>;F6qF<>4ANmfX-G=Qt7zz zW6RSc=lza@BS9wosoNV=Za~Xh0^HdArxb5c3;|^j_ugqpt}*SD((XTV+W1N;nU14z z8rzbu&$0Y)<%F=yhOncOEbbtOAgTWH%$ZJ5Jwv3RIWNl`4$Dp+>PJi0ksu*A?q4HRLTWtM}6DM*_9>0J~a z-WnlGGu12#3LYSF;br#^`^bD1a;UCL{Y@DYHE5uF)U;tP|Qx=&~U(34@=$>i1?IE+0*pG59LQt$o>I2is~{c6GGS-!OsG4aPrz@Ov5_vb<`I~_qr+tDXr4U3+(2aB;| z(;KQl5JLMpq6@l<5tigRPNgTk)ChI*Bw6-5IXy%9H(B~8>4`{rEBBp;nY2Pka;aR0 zd+kHCUpOmFL2D7gzM-cM@EHK9MqbN)LC{ct_|5V3JGH<+@hVp!St5YYNFL(<&HstR zyCTrgH&WC6_Wy_hZ-*g{ci)2pV3H1bDiv8&os!Q2L>`_@=z6vYbj?lhUj4tq-qnP; z7b4#8iwuLTqCmN4TxH_!B1l7m-{+7EiQo%ic#$j|00zOr&k9G}IslEn;_dL<5RIRg zOf%YI*@dD@oRegF9MQNrlZ|h*GCWZk+4)odY zhctjo?L%nuGz=03Plz9g@4TAe51zc0HN!y}fEN~eJ78Ay_VeJsLg){r=znN5f60RNa0%raxum5#=)5fD$bi#7X-1+d~o z{`z3(``%SFWD@VJ^4wPO)EL>T zF2T-Ciz9{yBy@SW$a1|VW>Z=zjSExnFPl_`tMuIP%Vcjh5$U$)NKExUt9U2yvuDz* z8^0tbQPgWfZ3d%(z!5)%*HS0$gCq=jxORLnrvV>+SoW0`RILQmk;06VEnK89`T^SO z9XAr(|J-N0gqszwO3h^0^^Uo|$G0Q4Al!vLqPVfQ@R28$L5u+N1(x6~eF|N^f-b*- zE_X-Dmk5w@@^Pg6r!-RDg_MUlUxKtYIz5F>j|waivzW1HLE2^fEqpM0rNQFQeW$Am zXifh_!3NZr$9qmYV)>^=e@ZUVUV?_`m3C(p{+6HmTi*IV0Vnz-on$$* zn~pTU4v#Z=ZzJ>H>E?U1@#y9oge-O!6|!5}ZS<2iB=CYXeRxnG;}<%Fj&DhO5=kTp zfZ8H03+e?h(o6X!mIr0XP13K-`})%~6Rh!G?R}agqYe7=4-gsolh6#NqA-Ml-ob7| zN58ECraiH~&@1>FI~j#N6b8OBv*xKBZ-O|x(d!H?&i=O!I3P*T96o(8GZUgkqMvjR z{7qn|M@Plc?vWYVCBU2yt_?P&>Sq{7Mq>%`viYEw8<9?Sn3u z(sZe?<6C*yjpi{^$)h;uL>;MtZfQq)k_=%P4$m+pcc2y~&=DQ%tmX3gsWQY}1sjhd zSS+mLGgKMyqEh*gINJ1vqq5+2rxTRiVP3hY|37Ia``$VM-&JHC!c2bDQybLx)!uAN z(LG=SYcx?%pCeA|)qyibi$rL;{)%fL!ekZ=aW0*w6Aw%(*|<9NH6_5A(8ASa*p+O> z{8rMb$c))htND8+Z^Z0yWx``!xI{j~!XQmr`;r>>!7Wx;Ab6TyzOy`Wvrr|u~LN0B+Dec!}@3B;8^|#Wsa~)g@VhG23BP8>{XY4&&D( zB$treK1m`LJDl3250boEi`b%wY{rcM$bv@L?ar&eq`B`G!}(mmjGaWl+i`wW7u-sP zpH(@Pynb+o?Xu*vSQi_F&wSq30g4{m4{t3huVZ$L<@QVg51An3XNdB+WC+m54X$<| zd}h1z{)q-(q<2ntd*#BPGNb$H)Ky%zN77j>?X^~Tjs_D40pM2!Tk7ZvQkdC1Ny5E? zXIhVk_Xds9=5$iw->~FwSo}9E`x8rUy?*ARQJC*yBHANyO^;gy9t zpmxHqeGdbyQF6s`$?2Ivv_^B?#z{3n2tsMr&6*wk_D&+zpn#yxTXZ@g^?xFa`SjZs>ocWD_P=;s09C&`fAir1?VjB`{RpY!Ibdx| z1bQa9uNYlm)V!fuC1j_e%E6Idv)vW% z=rEO;q@yF_x)LswaOX*`J(sY3U5Y&ceK7Et3FXzqox>wZr6)e6>gcQ(CtGe~kq#de z7)Za|@S3%-k%+GJ&ch+Tp!CP5O#EUNP`mB-p92#%rGbu)DZ$aRn0%&dR8n(|p!Uc* z@})s|Z9SJu^xFnSre~bV^YwRCey(0u!&f5c(Y@JHpH$;z@J{}ocasLLituNzBC6RM zEl_~MZ;B+%e3Pnxafq+2q4v&)`SfG`RI&M8F0zaob)XuJT`=u-JqoF1wIMyv)(~_xE!#k zn0Ph}%ZFaIF_%FKl{Ll8o{p*wm-}d2RDlz+;82k9fLo8#dWwE%WXW9bJb7qhLm=l) z6~)CSrfFuL^!D0!axJ!~3Y@S7yMi}q+}5}p?%cD zR!4NKGbAD-9KIisI%P63?Iy2aGFf5beM*4$t4pBc$hJ1?9`56dQW?{w$1$W87pVOE zrDEY3@<0=HD{YdyQ4Eh%dit?1K8M@Q@&;Shrysv#Q|VYITR)rB81ZYu6Xq57te!cA zk9oRKrQVNBOfDf{Qe)YF#|;DdhDX&54XEFXSjoURAAH_!1m3tCht0QB`mvO_O1!{M@Z0q4O$|0BO_B zeVeAn4j#9ylgxW zX6n$qP1*aZYUM&N`}0{XS}xgJf-~vLjG6l0mbgZVfPDtuEXQ(X^Jx;gtPe^8pt5ik zux4IRK=8H1og||=Q-p0sPM0{9BU}HhrH%K^^Ae@?&vp$z@;;VZyvJ2cBt2GWSja17 zHww7oozBAh)5XHivKn`gw2c#hY+9aSvGb%KCa-#1<3(D<(Ir0oE}J6>bkhJm(nbzp zd|>ddNX?}GGDF$W@z__ldZ(L#h?m6!qjC^|P#_!a7}a4ajzc&8zDyvQkCDQX~vhtp(YHL3Et2TFWb^Rndx(@m;3VnTsQI zdHRT(OR-_W%&fGH-y*Vvbu|L3=6#%8oAEb#vq280J{%~ zd+YSgJ(f^}_nbMRwpTPZbR)Dvu2z#N?mOr0=gS)!aqI{(Qk^;fO70wkc9qvBdYp@5 zVOk-2vr48>PhGZ6{q$fR8I2~*!w52&{)&JHD3b;e_mj)5y;=KQ4AF34T)Ch9sBKJ# zqZmMEh^^bk=ot#!DgDDS{cq`>WB69#^+|>Jn%j^LhrN~dDcM`5^~)T@fUoxwTP`ZE z8eZ?IvW1LG z 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¨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�^gjQ$#r;>;%;sK?|{blCt3H}^1Qsx!PZW+Te+% z=f8z+Cs(l#zkGtj-f*8@NZ<_gS!Vcq_&zNvxdDe|Rd-RS98h5~0t%Hs1*m+535Ci5 zT~-9>nh_D~l4V-|Tj=xk-$I9f3&p*=nqm>@uCU=Dl+6uPW=}T|X0b-h7^jA6QBpK! zVM6Zn6pBM z&m~CE-Hk;t?y&2hn8<%O8~EJ5;}lbKWj)<(VoAm+@zHpF<#@eESMEgA7saJfgO$<7 zOmP7}8@(9H$qdRfjH{I!X3H@(f+uPP7xO4vnGn>u5>RIaA4ddiQEin|RS})eTyDzY z+;F_O>G)keHCaO7%BMspd?HQM=CAFSpRhYg5j#olUAdD{-~cvdur&3NlVLEsbG)PS z55>8}*h`RS!&xh{)yz7LM@pQbKX1%xR4mY2IA7hOpU(0yOX>rwE-d`oVH)pLj}!)6 zVkiJPm}^U3>h@4ofqxpl-OSOW2cd<}0UzOXI+q9Vn}~enXP{MAC0y3GVp1IlhGrJ^ z0A>l(MK>}>S0m@?K&x(&(~ob>)mV0ubQjQo%JiTIzJMlQ_l(Vrn9Ai0U9db; z=__S-o0O|i$#YG9;ecIhjc`p?BM6%;$80B`Ai!j0IFSATn;!17AUt?|>9%PRfm`Khg`6gFxszmasmi-pF^9{6`O`C&-opUW9xXS7bJLgU^^xf7~+0x5tO zgE*o2B79ZkrzXW}5u?To7ki zU(Sd>qs6BRPj7irj!!l34$^JDE#gj!+8oktHuc1uX!<77Z9{@*(?gnnrBwOa<-10h zmB8sKT>O*Sf3m3-()Bz&5k|G;Pm=D=P8{%~Da=de>aF+B^>V7wy<*HS$Q?xN8+BCk z%2S3B8Rr2{>DAR0gnKk4F7L{o^KInn^dI> zdjqcR7}!DFtHv!37_+W4F4Q`YF%{a1rei+vYsI#Keud^)a&_|VAAHb&RxwjVrflOr zyuLvlzgpFN#LeK$reo^(v@(%Wv$N!FWZgfJ(o>3Tr)A1Ek<#Ff_77^cNNG(vrkq!+ z1SxeoORh}TJqM+D20ctZk5+Zt%doJu_6!rB^i3a7(^v^P9yxQQ`xoHO8B(Q|*NyTX zq?*ytFl5M$^-Gs+1BPr##ZA|KJb!YsuTeJ25+7QwrYr#ndxC7lL}t+RrVzB|(8I)7 zKPy58+GfbfRK{5$X>f~las%0jGQD7f`;<) z;{zW>kj)kp_a@-Maue_ucZdfh+P9qQ9Jk$b5iFF^k|1O(Y_6(mC=XX}S4UhYdbpHI^D*(%^qN{sfZ@)N zoYMDj)~~nX(71DlQN6KTjwq~w-#;bQSnfWzX*BUyG5qp!L8w{8RcimiGoHS_v<|jZ za;)~dzzVlxoyD^wjqy|!?NCJw8?EPM+sQs^gyG_~x{`?L_UoSKol6M!q><8Oo(W~0 z%?Q_{kuqbR31=M`68Y6tcG@teK+bgFfHehUwQHu5W7*YfUZ!8L19EtdNXk-hC^@E2PU=woj|aWOB2z1m z8%dyMF@o+%G#YJ0Y{pA?4eP}+&ylwgmceq-mIgjF4pt>vnc`l;Xi z8-K$U{(rN-_z8cqc{vIHhFJ+41<8cnoh0Q+@|Ke~GGBFw+hLNgTr#^E*{rx#gLfWo zxbN?xb$wtmGH3bFZL;T3F+aesP5p%T#RGS`io*@bIg0!F4)su}j-`6~Osv-SW-Nbr zR`0pMU%XIzoZ*VfZnqcDZ{EC&x6gxI8V5QUgWM9%pKsB-0m>Y6y6(BpGU)WESb645 z_Cjh1aqbqKt^T@40OKuf`j)ILa`-m)bFQV1ln^(8Ir=AMFN&I#ye9ifoo@ELtpW** zWV1izLrPxk!~J`C)Agm_BA{`RC*ibi>~ro?u`%fdtG2Hj1w02wo6?dG@SW+Q_1Ji} zZfzu?bHka%YhlEv=pW;Ig&UMfl@Q5ml(z>RO1 z_)gzT?BzLlyzc48$?c)|{mYx#4R5c|Y<#WX(zt0?IuW07(Jo#u%-97{8^YXu9UcdE2 zM_(xCQnYY2AGN;b)i8TX*yW~?dayfZ{roetv5Nzk5;pwE@-`3oR@-5}3_Mc?HS`sV`z1hW3+-)nB!D`x4o|rOYQxO%ScWDp(%KO!8VYEg1&5@|fnG@W}i27qUhoY?cM0rOtgJ0;IyGS-~H9v?xH(LaX}P;3!iDux_eD)nKfi>F`(|SD4-32Gd}x00 zIYj2i0R~~s0P{XXIo!WB2{t~MoH!anN-XRccjMXs4?BfR&ZQrhw68>orR>m8Uo&Yo z$-k50HRpGzTf=$nVqpeZ^%G&OYj}KhY0Tx>!Cx|y%GbPFsC73SrknkYziTKfOzw6x zHw&)Cr^)chtK4Q-RRZUDrECs<7R9XW!N~sj^XI*N5)1K;{j}ZL;iOC>x2;PJ*7~

SbiU;MD7 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%0Ac+Pm28#52V1m2HC%}tzPHJ`&l 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 104; nine fresh total registers give R = 489 at 100 bits. + +## Scope + +Conditional on every interface #472's eleven-stage composition retains: the all-size bit/Gaussian compiler, +mutable-basis and target-label realization, whole-call correlated-helper hosting (#442), compressed windows, +restored work, common grid and tape, precision, row and analytic contracts. Complex savings are cited from their +PRs' receipts, not rebuilt; the primary κ also rests on #484's Lemmas A and G. The hosting selection is a frozen nomination of #442's integer programme +(`discovery/host_select.py`) and the plan a CP-SAT nomination (`discovery/plan.py`); neither is claimed optimal. +No unconditional multiplication theorem, Lean proof or κ = 1 result is claimed. + +## Credits + +Zhihao Chen (#425: the mutable-basis interface lemma; #386: nine-stage geometry); DreamingOfClouds (#463: the +carrier bound; #315: moment engines; #484: the primary complex supplier); DaysSky (#442: idle-axis hosting; #381: `columns_k`); chafreaky (#445, #451, +#472: eleven-stage geometry, row bound, pooled whole hosting, emitter, audit and invoice; #443's bank routes; +#458's complex supplier); Dylan Crow (#370: bitE8/1 format, independent checker, generalised official checkers); +icekylinx (#433: source rows written on the bit side); Dugongue (#471: complex supplier; #483: current +whole-residual frontier); higherbeing (#448, information only); eumemic (#436: R740 and the provenance tooling); Jacob Sussman (the E8 unit). Details in +`NOTICE.md`. + +Prepared by eumemic with substantial Anthropic Claude assistance. Apache-2.0 (`LICENSE`). diff --git a/research/static44-selective/vendor/e8-bit-carrier-skeleton/SOURCE-pr370.json b/research/static44-selective/vendor/e8-bit-carrier-skeleton/SOURCE-pr370.json new file mode 100644 index 0000000000..1b30f277af --- /dev/null +++ b/research/static44-selective/vendor/e8-bit-carrier-skeleton/SOURCE-pr370.json @@ -0,0 +1,69 @@ +{ + "schema": "source-pins/1", + "source": "https://github.com/CrocSwap/integer-mult-bounds/pull/370", + "head_repository": "utcorvusvolat-dotcom/e8-bit-kappa-8.7548e-4", + "commit": "b7fe9cdf2da009c947ff6b334c562bc190b30373", + "note": "PR #370 (Dylan Crow / utcorvusvolat-dotcom, with Anthropic Claude assistance): independent checker and its word-level controls, record exporter and record-level controls, PR #266's official cohort checkers as generalised there (NCOPY), Gram/prime-witness checker, PR #315's engines (DreamingOfClouds) as vendored there, the E8 label table (via its R865 word), LICENSE. Every file listed has, in this package, the git blob id it has at the commit above (git ls-tree -r -- ).", + "identical": { + "LICENSE": { + "source_path": "research/e8-bit/LICENSE", + "blob": "261eeb9e9f8b2b4b0d119366dda99c6fd7d35c64" + }, + "code/bit/independent/checkword.py": { + "source_path": "research/e8-bit/code/bit/independent/checkword.py", + "blob": "da4e0fe05067184d4dab1e130ae1384c1fa983f5" + }, + "code/bit/independent/mutate.py": { + "source_path": "research/e8-bit/code/bit/independent/mutate.py", + "blob": "eba592fd468e0d7e7e5100fe99da6eb548c5906b" + }, + "code/bit/export_records.py": { + "source_path": "research/e8-bit/code/bit/export_records.py", + "blob": "3632d370486a02f5456f7643ced03f8c925b2350" + }, + "code/bit/mutate_records.py": { + "source_path": "research/e8-bit/code/bit/mutate_records.py", + "blob": "6794516f665d36eac189894e350a5ad01113cb4c" + }, + "code/bit/regression/stage_cohort.py": { + "source_path": "research/e8-bit/code/bit/regression/stage_cohort.py", + "blob": "f6d7afe3e623208c4207b6a683a1e3e49249e31c" + }, + "code/bit/checkers/legality_h.cpp": { + "source_path": "research/e8-bit/code/bit/checkers/legality_h.cpp", + "blob": "cb1233c7e96b1aa8bbf4d2e4165d75ab0dca64b9" + }, + "code/bit/checkers/columns_h.cpp": { + "source_path": "research/e8-bit/code/bit/checkers/columns_h.cpp", + "blob": "00c5a3a5d81d083582f60f33dd2e7bea5049c37f" + }, + "code/bit/checkers/json.hpp": { + "source_path": "research/e8-bit/code/bit/checkers/json.hpp", + "blob": "82d69f7c5d044c9887c96b90c97f5639083ecd14" + }, + "code/bit/checkers/gram_frames.py": { + "source_path": "research/e8-bit/code/bit/checkers/gram_frames.py", + "blob": "b740d47295c02692260d7cc01874a49fe48f78ab" + }, + "code/pricing/moment.py": { + "source_path": "research/e8-bit/code/pricing/moment.py", + "blob": "7d697cb45203fe72d97037403d6da41f71f3b7fd" + }, + "code/pricing/base_two_moment.py": { + "source_path": "research/e8-bit/code/pricing/base_two_moment.py", + "blob": "14a90fa0e788217856f070382c9e61bd7c603c61" + }, + "code/pricing/outer.py": { + "source_path": "research/e8-bit/code/pricing/outer.py", + "blob": "43007488ad2c43187c77cc6798beff8b1cd76ad2" + }, + "code/pricing/prime_witnesses.py": { + "source_path": "research/e8-bit/code/pricing/prime_witnesses.py", + "blob": "7f16d930302ae879c562dd58e085d9747fcac077" + }, + "data/bit/bitE8-r865.json.gz": { + "source_path": "research/e8-bit/data/bit/bitE8-r865.json.gz", + "blob": "8bec1751f7e33c3a1e4673ef5dbc34d6f205321e" + } + } +} diff --git a/research/static44-selective/vendor/e8-bit-carrier-skeleton/SOURCE-pr381.json b/research/static44-selective/vendor/e8-bit-carrier-skeleton/SOURCE-pr381.json new file mode 100644 index 0000000000..fb0b0edd13 --- /dev/null +++ b/research/static44-selective/vendor/e8-bit-carrier-skeleton/SOURCE-pr381.json @@ -0,0 +1,13 @@ +{ + "schema": "source-pins/1", + "source": "https://github.com/CrocSwap/integer-mult-bounds/pull/381", + "head_repository": "DaysSky/integer-mult-bounds", + "commit": "00765b291d0f924f337298eb1e2930cb0878b95e", + "note": "PR #381 (DaysSky, assisted with Claude): the B_K formal-columns checker columns_k.cpp (KPAIRS). Every file listed has, in this package, the git blob id it has at the commit above (git ls-tree -r -- ).", + "identical": { + "code/bit/checkers/columns_k.cpp": { + "source_path": "research/e8-nine-stage-kappa/code/bit/checkers/columns_k.cpp", + "blob": "42bb232fbec4de703e70cc13dc2f39a3b43a3a01" + } + } +} diff --git a/research/static44-selective/vendor/e8-bit-carrier-skeleton/SOURCE-pr386.json b/research/static44-selective/vendor/e8-bit-carrier-skeleton/SOURCE-pr386.json new file mode 100644 index 0000000000..3744861904 --- /dev/null +++ b/research/static44-selective/vendor/e8-bit-carrier-skeleton/SOURCE-pr386.json @@ -0,0 +1,17 @@ +{ + "schema": "source-pins/1", + "source": "https://github.com/CrocSwap/integer-mult-bounds/pull/386", + "head_repository": "jacklightChen/integer-mult-bounds", + "commit": "dd11cf8069554f0333afde398f12a56c3a7c29dd", + "note": "PR #386 (Zhihao Chen / jacklightChen, with OpenAI Codex assistance): compressed nine-stage bit geometry (used here only as the parent geometry of the eleven-stage audit) and the portable bits/stdc++.h. Every file listed has, in this package, the git blob id it has at the commit above (git ls-tree -r -- ).", + "identical": { + "portable-include/bits/stdc++.h": { + "source_path": "research/e8-bit-complex-nine/portable-include/bits/stdc++.h", + "blob": "fc5664e929d9a81d9b4926bee049a93330be86ec" + }, + "code/nine/geometry.py": { + "source_path": "research/e8-bit-complex-nine/geometry.py", + "blob": "91594e0223e8fac49162b5aef834ffaa8e94a254" + } + } +} diff --git a/research/static44-selective/vendor/e8-bit-carrier-skeleton/SOURCE-pr436.json b/research/static44-selective/vendor/e8-bit-carrier-skeleton/SOURCE-pr436.json new file mode 100644 index 0000000000..f190527ae1 --- /dev/null +++ b/research/static44-selective/vendor/e8-bit-carrier-skeleton/SOURCE-pr436.json @@ -0,0 +1,13 @@ +{ + "schema": "source-pins/1", + "source": "https://github.com/CrocSwap/integer-mult-bounds/pull/436", + "head_repository": "eumemic/integer-mult-bounds", + "commit": "8f6b8297b08ad863940d5168a2db5402fad3690f", + "note": "PR #436 (eumemic, with Anthropic Claude assistance): the provenance checker. Every file listed has, in this package, the git blob id it has at the commit above (git ls-tree -r -- ).", + "identical": { + "code/provenance.py": { + "source_path": "research/e8-bit-elimination-reuse/code/provenance.py", + "blob": "9bfcb106230e454d9405ce5eb42dd2218d905ea6" + } + } +} diff --git a/research/static44-selective/vendor/e8-bit-carrier-skeleton/SOURCE-pr445.json b/research/static44-selective/vendor/e8-bit-carrier-skeleton/SOURCE-pr445.json new file mode 100644 index 0000000000..ae29de391a --- /dev/null +++ b/research/static44-selective/vendor/e8-bit-carrier-skeleton/SOURCE-pr445.json @@ -0,0 +1,25 @@ +{ + "schema": "source-pins/1", + "source": "https://github.com/CrocSwap/integer-mult-bounds/pull/445", + "head_repository": "chafreaky/integer-mult-bounds", + "commit": "40ab91daf2b5e87fc4071dedae1699d5d7e7cecc", + "note": "PR #445 (chafreaky, with OpenAI Codex assistance): eleven-stage compressed bit geometry, elementary orthogonal-cover row bound, and its eleven-stage emitter and frozen hosting selection (used unchanged for the PR #445 R740 control). Every file listed has, in this package, the git blob id it has at the commit above (git ls-tree -r -- ).", + "identical": { + "code/hub/r740-hosted-eleven/code/geometry.py": { + "source_path": "research/r740-hosted-eleven/code/geometry.py", + "blob": "b4ad5074014dc00a01143910eb1cd27fafe0e15c" + }, + "code/hub/r740-hosted-eleven/code/row_bound.py": { + "source_path": "research/r740-hosted-eleven/code/row_bound.py", + "blob": "11d3c0d48e4ea5a02ac3b6689f3c7d36f2972eb8" + }, + "code/hub/r740-hosted-eleven/code/emit.py": { + "source_path": "research/r740-hosted-eleven/code/emit.py", + "blob": "5ff0de0d6f088ac95e25a2a7aed8653e8cd0333e" + }, + "code/hub/r740-hosted-eleven/data/selection.json": { + "source_path": "research/r740-hosted-eleven/data/selection.json", + "blob": "8e548e5a9204a909d539ba36b866804b256d4c2b" + } + } +} diff --git a/research/static44-selective/vendor/e8-bit-carrier-skeleton/SOURCE-pr448.json b/research/static44-selective/vendor/e8-bit-carrier-skeleton/SOURCE-pr448.json new file mode 100644 index 0000000000..3648ab3692 --- /dev/null +++ b/research/static44-selective/vendor/e8-bit-carrier-skeleton/SOURCE-pr448.json @@ -0,0 +1,13 @@ +{ + "schema": "source-pins/1", + "source": "https://github.com/CrocSwap/integer-mult-bounds/pull/448", + "head_repository": "higherbeing/integer-mult-bounds", + "commit": "359022bcd71143e45d48def0dd005bf67f339aa7", + "note": "PR #448: its EXPECTED.json receipt (cited complex b). Every file listed has, in this package, the git blob id it has at the commit above (git ls-tree -r -- ).", + "identical": { + "data/complex/pr448/EXPECTED.json": { + "source_path": "research/cross-copy-hosting/EXPECTED.json", + "blob": "1574e6488b6fc59191ae49fcc0c089e48b196fbd" + } + } +} diff --git a/research/static44-selective/vendor/e8-bit-carrier-skeleton/SOURCE-pr451.json b/research/static44-selective/vendor/e8-bit-carrier-skeleton/SOURCE-pr451.json new file mode 100644 index 0000000000..fbd9881e09 --- /dev/null +++ b/research/static44-selective/vendor/e8-bit-carrier-skeleton/SOURCE-pr451.json @@ -0,0 +1,25 @@ +{ + "schema": "source-pins/1", + "source": "https://github.com/CrocSwap/integer-mult-bounds/pull/451", + "head_repository": "chafreaky/integer-mult-bounds", + "commit": "f3a38153678b55063fc005901cc968266166507d", + "note": "PR #451 (chafreaky, with OpenAI Codex assistance): its eleven-stage bit emitter (byte-identical to PR #445's), frozen hosting selection, R740 rank149 word and residual isometries, used unchanged for the PR #451 control. Every file listed has, in this package, the git blob id it has at the commit above (git ls-tree -r -- ).", + "identical": { + "code/hub/r740-hosted-rank149/code/emit.py": { + "source_path": "research/r740-hosted-rank149/code/emit.py", + "blob": "5ff0de0d6f088ac95e25a2a7aed8653e8cd0333e" + }, + "code/hub/r740-hosted-rank149/data/selection.json": { + "source_path": "research/r740-hosted-rank149/data/selection.json", + "blob": "c57069f7385c3b6aff4fe3c73c0a21bae727c76f" + }, + "code/hub/r740-hosted-rank149/data/word.json.gz": { + "source_path": "research/r740-hosted-rank149/data/word.json.gz", + "blob": "3c8489a29f0de2cad7dafaddc340a1ff197d5172" + }, + "code/hub/r740-hosted-rank149/data/residual-isometries.json": { + "source_path": "research/r740-hosted-rank149/data/residual-isometries.json", + "blob": "ec8b4131d203d7a288ca078ca559f922d38fe9d2" + } + } +} diff --git a/research/static44-selective/vendor/e8-bit-carrier-skeleton/SOURCE-pr458.json b/research/static44-selective/vendor/e8-bit-carrier-skeleton/SOURCE-pr458.json new file mode 100644 index 0000000000..c36c74cbea --- /dev/null +++ b/research/static44-selective/vendor/e8-bit-carrier-skeleton/SOURCE-pr458.json @@ -0,0 +1,13 @@ +{ + "schema": "source-pins/1", + "source": "https://github.com/CrocSwap/integer-mult-bounds/pull/458", + "head_repository": "chafreaky/integer-mult-bounds", + "commit": "44e9eae8287951c1e6dbbd3c553f5743fe2240b0", + "note": "PR #458: its EXPECTED.json receipt (cited complex b). Every file listed has, in this package, the git blob id it has at the commit above (git ls-tree -r -- ).", + "identical": { + "data/complex/pr458/EXPECTED.json": { + "source_path": "research/e8-complex-adapted-kernel/EXPECTED.json", + "blob": "e06a17c177eee0e0962c96ea61554239ef38ef4d" + } + } +} diff --git a/research/static44-selective/vendor/e8-bit-carrier-skeleton/SOURCE-pr471.json b/research/static44-selective/vendor/e8-bit-carrier-skeleton/SOURCE-pr471.json new file mode 100644 index 0000000000..0dc019cfb1 --- /dev/null +++ b/research/static44-selective/vendor/e8-bit-carrier-skeleton/SOURCE-pr471.json @@ -0,0 +1,13 @@ +{ + "schema": "source-pins/1", + "source": "https://github.com/CrocSwap/integer-mult-bounds/pull/471", + "head_repository": "Dugongue/integer-mult-bounds", + "commit": "56b3da6aa1295d37ce43f1753479bfe4737b7ac3", + "note": "PR #471: its EXPECTED.json receipt (cited complex b). Every file listed has, in this package, the git blob id it has at the commit above (git ls-tree -r -- ).", + "identical": { + "data/complex/pr471/EXPECTED.json": { + "source_path": "research/e8-tensor-normalization/EXPECTED.json", + "blob": "ed1e72239ebebdbfad847fb817e5546f980c1d8d" + } + } +} diff --git a/research/static44-selective/vendor/e8-bit-carrier-skeleton/SOURCE-pr472.json b/research/static44-selective/vendor/e8-bit-carrier-skeleton/SOURCE-pr472.json new file mode 100644 index 0000000000..31acb027ec --- /dev/null +++ b/research/static44-selective/vendor/e8-bit-carrier-skeleton/SOURCE-pr472.json @@ -0,0 +1,73 @@ +{ + "schema": "source-pins/1", + "source": "https://github.com/CrocSwap/integer-mult-bounds/pull/472", + "head_repository": "chafreaky/integer-mult-bounds", + "commit": "259c68488b7aa8a14cf3fcae7fc499381c9bf729", + "note": "PR #472 (chafreaky, with OpenAI Codex assistance) and the files its branch carries unchanged: research/e8-r715-whole-hosted (PR #472: eight-replica pooled whole-residual emitter, independent audit, local projector audit, assembly, R715 word, isometries, frozen hosting); research/e8-r740-replica32 (PR #443, chafreaky: bank routes, tiling, engine wrapper, the R740 rank138 word and its isometries; PR #315 engines by DreamingOfClouds); research/idle-axis-hosting/hosting_core.py (PR #442, DaysSky). Every file listed has, in this package, the git blob id it has at the commit above (git ls-tree -r -- ).", + "identical": { + "code/hub/e8-r740-replica32/code/bank_routes.py": { + "source_path": "research/e8-r740-replica32/code/bank_routes.py", + "blob": "9e43a876664a26899762f3b8e9a582e684a3650a" + }, + "code/hub/e8-r740-replica32/code/tile_m.py": { + "source_path": "research/e8-r740-replica32/code/tile_m.py", + "blob": "cd5fd9b5399f5e7afe5d2a95bd3504bd543c0d60" + }, + "code/hub/e8-r740-replica32/code/e8core.py": { + "source_path": "research/e8-r740-replica32/code/e8core.py", + "blob": "78983b368715e89fe8524a6dd2c13585d2b5394e" + }, + "code/hub/e8-r740-replica32/code/engines/moment.py": { + "source_path": "research/e8-r740-replica32/code/engines/moment.py", + "blob": "7d697cb45203fe72d97037403d6da41f71f3b7fd" + }, + "code/hub/e8-r740-replica32/code/engines/base_two_moment.py": { + "source_path": "research/e8-r740-replica32/code/engines/base_two_moment.py", + "blob": "14a90fa0e788217856f070382c9e61bd7c603c61" + }, + "code/hub/e8-r740-replica32/code/engines/outer.py": { + "source_path": "research/e8-r740-replica32/code/engines/outer.py", + "blob": "43007488ad2c43187c77cc6798beff8b1cd76ad2" + }, + "code/hub/e8-r740-replica32/data/word.json.gz": { + "source_path": "research/e8-r740-replica32/data/word.json.gz", + "blob": "85390b07e4747feddbf2e16f94b5e0a8a308c191" + }, + "code/hub/e8-r740-replica32/data/residual-isometries.json": { + "source_path": "research/e8-r740-replica32/data/residual-isometries.json", + "blob": "9b8b35cb1528a978e209e1098864cae48c57fd93" + }, + "code/hub/idle-axis-hosting/hosting_core.py": { + "source_path": "research/idle-axis-hosting/hosting_core.py", + "blob": "68b536daa9e6546c0aa046934bf840aaa3c3fde3" + }, + "code/hub/e8-r715-whole-hosted/code/emit.py": { + "source_path": "research/e8-r715-whole-hosted/code/emit.py", + "blob": "df74ad698a98419e828b37d4dfd7c036fc49a890" + }, + "code/hub/e8-r715-whole-hosted/code/audit.py": { + "source_path": "research/e8-r715-whole-hosted/code/audit.py", + "blob": "155b61f2944116423a5be6ae666276e1c1827fe5" + }, + "code/hub/e8-r715-whole-hosted/code/local_audit.py": { + "source_path": "research/e8-r715-whole-hosted/code/local_audit.py", + "blob": "931f884920125b334412f70cf30d9517b084dc7a" + }, + "code/hub/e8-r715-whole-hosted/code/assemble.py": { + "source_path": "research/e8-r715-whole-hosted/code/assemble.py", + "blob": "cd60b4bcfae515fccd7f21fd1ff5a7114a132eb9" + }, + "code/hub/e8-r715-whole-hosted/data/word.json.gz": { + "source_path": "research/e8-r715-whole-hosted/data/word.json.gz", + "blob": "f7d55b8bd45d385011ced25e632a3d922bb77bba" + }, + "code/hub/e8-r715-whole-hosted/data/residual-isometries.json": { + "source_path": "research/e8-r715-whole-hosted/data/residual-isometries.json", + "blob": "5864e4d680035401d53d32adab0369046d80b171" + }, + "code/hub/e8-r715-whole-hosted/data/hosting.json": { + "source_path": "research/e8-r715-whole-hosted/data/hosting.json", + "blob": "381fb06ccbe055f4fbdc7544dcf8c0bae8f96701" + } + } +} diff --git a/research/static44-selective/vendor/e8-bit-carrier-skeleton/SOURCE-pr473.json b/research/static44-selective/vendor/e8-bit-carrier-skeleton/SOURCE-pr473.json new file mode 100644 index 0000000000..821caf8f07 --- /dev/null +++ b/research/static44-selective/vendor/e8-bit-carrier-skeleton/SOURCE-pr473.json @@ -0,0 +1,13 @@ +{ + "schema": "source-pins/1", + "source": "https://github.com/CrocSwap/integer-mult-bounds/pull/473", + "head_repository": "rohanarun/integer-mult-bounds", + "commit": "c7590f1d861f0eaae725cc79901445385aab9125", + "note": "PR #473: its EXPECTED.json receipt (cited complex b; frontier kappa). Every file listed has, in this package, the git blob id it has at the commit above (git ls-tree -r -- ).", + "identical": { + "data/complex/pr473/EXPECTED.json": { + "source_path": "research/r715-replica84-complex79/EXPECTED.json", + "blob": "45ee9fde7fdf6b19b6303372068977201b4ef61c" + } + } +} diff --git a/research/static44-selective/vendor/e8-bit-carrier-skeleton/SOURCE-pr478.json b/research/static44-selective/vendor/e8-bit-carrier-skeleton/SOURCE-pr478.json new file mode 100644 index 0000000000..608323ccbe --- /dev/null +++ b/research/static44-selective/vendor/e8-bit-carrier-skeleton/SOURCE-pr478.json @@ -0,0 +1,13 @@ +{ + "schema": "source-pins/1", + "source": "https://github.com/CrocSwap/integer-mult-bounds/pull/478", + "head_repository": "Dugongue/integer-mult-bounds", + "commit": "bea1d52fd330c699903f81612ee58be81697d1eb", + "note": "PR #478: its EXPECTED.json receipt (cited complex b; frontier kappa). Every file listed has, in this package, the git blob id it has at the commit above (git ls-tree -r -- ).", + "identical": { + "data/complex/pr478/EXPECTED.json": { + "source_path": "research/tensor-r715-next/EXPECTED.json", + "blob": "77f5805cd8125602e8c50f4eaba1691440c611c2" + } + } +} diff --git a/research/static44-selective/vendor/e8-bit-carrier-skeleton/SOURCE-pr483.json b/research/static44-selective/vendor/e8-bit-carrier-skeleton/SOURCE-pr483.json new file mode 100644 index 0000000000..817396d9c8 --- /dev/null +++ b/research/static44-selective/vendor/e8-bit-carrier-skeleton/SOURCE-pr483.json @@ -0,0 +1,13 @@ +{ + "schema": "source-pins/1", + "source": "https://github.com/CrocSwap/integer-mult-bounds/pull/483", + "head_repository": "Dugongue/integer-mult-bounds", + "commit": "3738c3ce2d04d6a6c6363408ff9402286f592bc7", + "note": "PR #483: its EXPECTED.json receipt (cited complex b; frontier kappa). Every file listed has, in this package, the git blob id it has at the commit above (git ls-tree -r -- ).", + "identical": { + "data/complex/pr483/EXPECTED.json": { + "source_path": "research/tensor-response-r715/EXPECTED.json", + "blob": "f7ff643cd54a334bf46c82989ba155eb6e69adde" + } + } +} diff --git a/research/static44-selective/vendor/e8-bit-carrier-skeleton/SOURCE-pr484.json b/research/static44-selective/vendor/e8-bit-carrier-skeleton/SOURCE-pr484.json new file mode 100644 index 0000000000..76292df851 --- /dev/null +++ b/research/static44-selective/vendor/e8-bit-carrier-skeleton/SOURCE-pr484.json @@ -0,0 +1,13 @@ +{ + "schema": "source-pins/1", + "source": "https://github.com/CrocSwap/integer-mult-bounds/pull/484", + "head_repository": "DreamingOfClouds/integer-mult-bounds", + "commit": "035845ce95f31d0a2dcfb42b8c8e13411271fa5f", + "note": "PR #484: its EXPECTED.json receipt (cited complex b). Every file listed has, in this package, the git blob id it has at the commit above (git ls-tree -r -- ).", + "identical": { + "data/complex/pr484/EXPECTED.json": { + "source_path": "research/e8-complex-gauge-kernel/EXPECTED.json", + "blob": "7f93fcbb9f1c2799fd86dd308ec1e6f0ad2a3264" + } + } +} diff --git a/research/static44-selective/vendor/e8-bit-carrier-skeleton/code/bit/checkers/columns_h.cpp b/research/static44-selective/vendor/e8-bit-carrier-skeleton/code/bit/checkers/columns_h.cpp new file mode 100644 index 0000000000..00c5a3a5d8 --- /dev/null +++ b/research/static44-selective/vendor/e8-bit-carrier-skeleton/code/bit/checkers/columns_h.cpp @@ -0,0 +1,48 @@ +// Generalization (Dylan Crow, with Anthropic Claude assistance): the copied-centre count is the macro NCOPY, defaulting to +// HDIM, so the unmodified PR #346/#352 build (no -DNCOPY) is exactly the original checker. The E8 bit word has 9 +// retained totals at h = 8 (-DNCOPY=9). +#ifndef NCOPY +#define NCOPY HDIM +#endif +#include "json.hpp" +#include +#include +using boost::multiprecision::cpp_int; +#include +#include +#include +#include +#include +#include +#include +using J=nlohmann::json; +struct E{int kind,dst,src,c;}; +void need(bool x,const char*s){if(!x)throw std::runtime_error(s);} +int main(int argc,char**argv){try{ +need(argc==3,"usage RAW6_RECORDS OUTPUT");std::string pre=argv[1];int v=VPORTS,r=RHELP,loc=2*v+r,global=4*v+r,temp=global; +struct Raw{int op,a,b,c,f,z;};std::ifstream f(pre,std::ios::binary|std::ios::ate);size_t sz=f.tellg();need(sz%sizeof(Raw)==0,"stream alignment");std::vectorp(sz/sizeof(Raw));f.seekg(0);f.read((char*)p.data(),sz);std::vectore;std::mapH;for(auto q:p){if(q.op==0){if(q.f)H[q.f]++;}else if(q.op==1)e.push_back({0,q.a,q.b,q.c});else if(q.op==2){H[q.z]++;e.push_back({1,loc,q.a,0});}else if(q.op==3)e.push_back({2,loc,q.a,0});else need(false,"opcode");} +J prefix=J::array();cpp_int largestF=0,largestB=0;for(int rev=0;rev<2;rev++){std::vectornorms(loc+1,1);cpp_int maxrow=1;bool isopen=false;for(size_t z=0;zmaxrow)maxrow=norms[q.dst];}else if(k==1){need(!isopen,"boundcopy");norms[loc]=norms[q.src];isopen=true;}else {need(isopen,"bounderase");norms[loc]=0;isopen=false;}}need(!isopen,"prefix copy closure");if(rev)largestB=maxrow;else largestF=maxrow;prefix.push_back({{"reverse",bool(rev)},{"cancellation_free_signed_row_l1_upper",maxrow.convert_to()},{"bits",boost::multiprecision::msb(maxrow)+1}});} +cpp_int payload=64*largestF*largestF*largestF*largestB*largestB;need(payload<(cpp_int(1)<<104),"payloadfiniteprefix2^104"); +long long copies=0,adds=0,odd=0;bool open=false;int center=-1;long long reverseCopies=0; +for(auto q:e){need(q.kind>=0&&q.kind<=2,"kind");need(q.dst>=0&&q.dst<=loc,"local dst");if(q.kind==0){need(q.src>=0&&q.src<=loc&&q.dst!=q.src,"source distinct");need(q.dst!=loc,"copy immutable");need(q.src!=loc||open,"temp not open");if(open)need(q.dst!=center,"source changes inside copied-center block");adds++;odd+=q.c&1;} +else if(q.kind==1){need(!open&&q.dst==loc&&q.src>=0&&q.srca((size_t)(global+1)*words);auto row=[&](int i){return a.data()+(size_t)i*words;};for(int i=0;i=v&&i<2*v&&w==(size_t)(i-v)/64)want^=1ull<<((i-v)%64);need(x[w]==want,"local defining-decoder full formal column");}}} +if(stage==1||stage==2||stage==4){int b=stage==1?0:stage==2?1:2;for(auto q:bridges[b])for(int i=0;i(std::chrono::steady_clock::now()-t0).count()<<"s\n";} +for(int bank=0;bank<4;bank+=2)for(int i=0;i()},{"payload_prefix_bits",boost::multiprecision::msb(payload)+1},{"new_Q_categories",{28,29}},{"local_raw_H",H},{"negative_controls",controls},{"seconds",std::chrono::duration(std::chrono::steady_clock::now()-t0).count()}};std::ofstream(argv[2])< +#include +using boost::multiprecision::cpp_int; +#include +#include +#include +#include +#include +#include +#include +using J=nlohmann::json; +struct E{int kind,dst,src,c;}; +void need(bool x,const char*s){if(!x)throw std::runtime_error(s);} +int main(int argc,char**argv){try{ +need(argc==3,"usage RAW6_RECORDS OUTPUT");std::string pre=argv[1];int v=VPORTS,r=RHELP,loc=2*v+r,global=2*KPAIRS*v+r,temp=global;const int S=2*KPAIRS+1; +struct Raw{int op,a,b,c,f,z;};std::ifstream f(pre,std::ios::binary|std::ios::ate);size_t sz=f.tellg();need(sz%sizeof(Raw)==0,"stream alignment");std::vectorp(sz/sizeof(Raw));f.seekg(0);f.read((char*)p.data(),sz);std::vectore;std::mapH;for(auto q:p){if(q.op==0){if(q.f)H[q.f]++;}else if(q.op==1)e.push_back({0,q.a,q.b,q.c});else if(q.op==2){H[q.z]++;e.push_back({1,loc,q.a,0});}else if(q.op==3)e.push_back({2,loc,q.a,0});else need(false,"opcode");} +J prefix=J::array();cpp_int largestF=0,largestB=0;for(int rev=0;rev<2;rev++){std::vectornorms(loc+1,1);cpp_int maxrow=1;bool isopen=false;for(size_t z=0;zmaxrow)maxrow=norms[q.dst];}else if(k==1){need(!isopen,"boundcopy");norms[loc]=norms[q.src];isopen=true;}else {need(isopen,"bounderase");norms[loc]=0;isopen=false;}}need(!isopen,"prefix copy closure");if(rev)largestB=maxrow;else largestF=maxrow;prefix.push_back({{"reverse",bool(rev)},{"cancellation_free_signed_row_l1_upper",maxrow.convert_to()},{"bits",boost::multiprecision::msb(maxrow)+1}});} +cpp_int payload=64*largestF*largestF*largestF*largestB*largestB;need(payload<(cpp_int(1)<<104),"payloadfiniteprefix2^104"); +long long copies=0,adds=0,odd=0;bool open=false;int center=-1;long long reverseCopies=0; +for(auto q:e){need(q.kind>=0&&q.kind<=2,"kind");need(q.dst>=0&&q.dst<=loc,"local dst");if(q.kind==0){need(q.src>=0&&q.src<=loc&&q.dst!=q.src,"source distinct");need(q.dst!=loc,"copy immutable");need(q.src!=loc||open,"temp not open");if(open)need(q.dst!=center,"source changes inside copied-center block");adds++;odd+=q.c&1;} +else if(q.kind==1){need(!open&&q.dst==loc&&q.src>=0&&q.src>active;std::vectorbackward;std::vector>>after(S); +auto X=[](int p){return 2*(p-1);};auto Y=[](int p){return 2*(p-1)+1;}; +for(int t=0;t=3&&t%2==1);backward.push_back(b);active.push_back(b?std::array{Y(p),X(p)}:std::array{X(p),Y(p)});} +for(int q=2;q<=KPAIRS;q++){after[2*q-3].push_back({X(q-1),X(q),1});after[2*q-3].push_back({Y(q),Y(q-1),-1}); + after[2*q-2].push_back({Y(q),Y(q-1),1});after[2*q-2].push_back({X(q-1),X(q),-1});} +for(int p=KPAIRS;p>=2;p--){after[S-1].push_back({Y(p-1),Y(p),-1});after[S-1].push_back({X(p),X(p-1),1});} +int nbridges=0;for(auto&a:after)nbridges+=a.size();need(nbridges==6*(KPAIRS-1),"twin bridge count"); +size_t words=(global+63)/64;std::vectora((size_t)(global+1)*words);auto row=[&](int i){return a.data()+(size_t)i*words;};for(int i=0;i=v&&i<2*v&&w==(size_t)(i-v)/64)want^=1ull<<((i-v)%64);need(x[w]==want,"local defining-decoder full formal column");}}} +for(auto q:after[stage])for(int i=0;i(std::chrono::steady_clock::now()-t0).count()<<"s\n";} +for(int bank=0;bank<2*KPAIRS;bank+=2)for(int i=0;ib(2*KPAIRS);for(int z=0;z<2*KPAIRS;z++)b[z]=1u<()},{"payload_prefix_bits",boost::multiprecision::msb(payload)+1},{"new_Q_categories",{28,29}},{"local_raw_H",H},{"negative_controls",controls},{"seconds",std::chrono::duration(std::chrono::steady_clock::now()-t0).count()}};std::ofstream(argv[2])</2 in Construction-A (Hamming) coordinates, integer Gram 2 B G B^t = B B^t +Checks per frame: rank(B) = dim, A.B = 0 and |A| + dim = h (when A given), det(integer Gram) != 0 (exact Bareiss), and +the prime witness: |det| = residual * prod p^e over PR #315's allowed primes with 0 < residual < 2^80. With --new BASE +only frames absent from BASE are checked (prime_new.py's scope); otherwise every frame. +usage: python3 gram_frames.py WORDDIR --gram {triple9,e8ham} --h H [--new BASEDIR] [--positive]""" +import json, sys, argparse, importlib.util, os, collections +ap=argparse.ArgumentParser(); ap.add_argument('word'); ap.add_argument('--gram',required=True); ap.add_argument('--h',type=int,required=True) +ap.add_argument('--new'); ap.add_argument('--positive',action='store_true'); a=ap.parse_args() +HERE=os.path.dirname(os.path.abspath(__file__)) +s=importlib.util.spec_from_file_location('pw',os.path.join(HERE,'..','..','pricing','prime_witnesses.py')); pw=importlib.util.module_from_spec(s); s.loader.exec_module(pw) +def validate_record(row, dimension, determinant, allowed_primes): # PR #315 prime_check.validate_record, verbatim logic + assert type(row['dimension']) is int and type(row['determinant']) is int and type(row['residual']) is int, 'exact integer witness fields' + assert row['dimension'] == dimension and row['determinant'] == determinant != 0, 'exact determinant mismatch or singular basis' + assert 0 < row['residual'] < 2**80, 'retained prime lower bound' + product = row['residual'] + for prime, exponent in row['factors'].items(): + q = int(prime); assert q in allowed_primes and type(exponent) is int and exponent > 0, 'factor shape'; product *= q**exponent + assert product == abs(determinant), 'factor identity' +def gram(B): + if a.gram=='triple9': + s_=list(map(sum,B)); return [[9*sum(x*y for x,y in zip(B[i],B[j]))-s_[i]*s_[j] for j in range(len(B))] for i in range(len(B))] + if a.gram=='e8ham': + return [[sum(x*y for x,y in zip(B[i],B[j])) for j in range(len(B))] for i in range(len(B))] + raise SystemExit('unknown gram') +def rank_int(B): + M=[r[:] for r in B]; r=0 + for c in range(len(M[0]) if M else 0): + p=next((i for i in range(r,len(M)) if M[i][c]!=0),None) + if p is None: continue + M[r],M[p]=M[p],M[r] + for i in range(len(M)): + if i!=r and M[i][c]!=0: x,y=M[r][c],M[i][c]; M[i]=[u*x-w*y for u,w in zip(M[i],M[r])] + r+=1 + return r +fr=json.load(open(a.word+'/frames.json'))['frames'] +old=json.load(open(a.new+'/frames.json'))['frames'] if a.new else {} +keys=[k for k in fr if k not in old] +stats=collections.Counter(); primes=set(); bits=0; nonpos=0 +for k in keys: + B=fr[k]['B']; A=fr[k].get('A',[]); d=len(B); assert fr[k]['dim']==d + assert d==0 or rank_int(B)==d,('basis rank',k) + if A: assert all(sum(x*y for x,y in zip(r,b))==0 for r in A for b in B) and len(A)+d==a.h,('annihilator',k) + M=gram(B) if d else []; det=pw.det(M); assert det!=0,('degenerate frame',k) + if a.positive: # positive-definite ambient form: every leading principal minor positive + for j in range(1,d+1): + if pw.det([r[:j] for r in M[:j]])<=0: nonpos+=1; break + powers,residual=pw.factor_witness(det); row=dict(dimension=d,determinant=det,residual=residual,factors={p:e for p,e in powers.items() if e}) + validate_record(row,d,det,pw.PRIMES); primes.update(map(int,row['factors'])); bits=max(bits,abs(det).bit_length()); stats[d]+=1 +assert nonpos==0 +print('PASS %s Gram: %d frames checked, all nondegenerate%s; prime witnesses valid; max determinant bits %d; primes %s; by dim %s'%( + a.gram,sum(stats.values()),' and positive definite' if a.positive else '',bits,sorted(primes),dict(sorted(stats.items())))) diff --git a/research/static44-selective/vendor/e8-bit-carrier-skeleton/code/bit/checkers/json.hpp b/research/static44-selective/vendor/e8-bit-carrier-skeleton/code/bit/checkers/json.hpp new file mode 100644 index 0000000000..82d69f7c5d --- /dev/null +++ b/research/static44-selective/vendor/e8-bit-carrier-skeleton/code/bit/checkers/json.hpp @@ -0,0 +1,25526 @@ +// __ _____ _____ _____ +// __| | __| | | | JSON for Modern C++ +// | | |__ | | | | | | version 3.12.0 +// |_____|_____|_____|_|___| https://github.com/nlohmann/json +// +// SPDX-FileCopyrightText: 2013 - 2025 Niels Lohmann +// SPDX-License-Identifier: MIT + +/****************************************************************************\ + * Note on documentation: The source files contain links to the online * + * documentation of the public API at https://json.nlohmann.me. This URL * + * contains the most recent documentation and should also be applicable to * + * previous versions; documentation for deprecated functions is not * + * removed, but marked deprecated. See "Generate documentation" section in * + * file docs/README.md. * +\****************************************************************************/ + +#ifndef INCLUDE_NLOHMANN_JSON_HPP_ +#define INCLUDE_NLOHMANN_JSON_HPP_ + +#include // all_of, find, for_each +#include // nullptr_t, ptrdiff_t, size_t +#include // hash, less +#include // initializer_list +#ifndef JSON_NO_IO + #include // istream, ostream +#endif // JSON_NO_IO +#include // random_access_iterator_tag +#include // unique_ptr +#include // string, stoi, to_string +#include // declval, forward, move, pair, swap +#include // vector + +// #include +// __ _____ _____ _____ +// __| | __| | | | JSON for Modern C++ +// | | |__ | | | | | | version 3.12.0 +// |_____|_____|_____|_|___| https://github.com/nlohmann/json +// +// SPDX-FileCopyrightText: 2013 - 2025 Niels Lohmann +// SPDX-License-Identifier: MIT + + + +#include + +// #include +// __ _____ _____ _____ +// __| | __| | | | JSON for Modern C++ +// | | |__ | | | | | | version 3.12.0 +// |_____|_____|_____|_|___| https://github.com/nlohmann/json +// +// SPDX-FileCopyrightText: 2013 - 2025 Niels Lohmann +// SPDX-License-Identifier: MIT + + + +// This file contains all macro definitions affecting or depending on the ABI + +#ifndef JSON_SKIP_LIBRARY_VERSION_CHECK + #if defined(NLOHMANN_JSON_VERSION_MAJOR) && defined(NLOHMANN_JSON_VERSION_MINOR) && defined(NLOHMANN_JSON_VERSION_PATCH) + #if NLOHMANN_JSON_VERSION_MAJOR != 3 || NLOHMANN_JSON_VERSION_MINOR != 12 || NLOHMANN_JSON_VERSION_PATCH != 0 + #warning "Already included a different version of the library!" + #endif + #endif +#endif + +#define NLOHMANN_JSON_VERSION_MAJOR 3 // NOLINT(modernize-macro-to-enum) +#define NLOHMANN_JSON_VERSION_MINOR 12 // NOLINT(modernize-macro-to-enum) +#define NLOHMANN_JSON_VERSION_PATCH 0 // NOLINT(modernize-macro-to-enum) + +#ifndef JSON_DIAGNOSTICS + #define JSON_DIAGNOSTICS 0 +#endif + +#ifndef JSON_DIAGNOSTIC_POSITIONS + #define JSON_DIAGNOSTIC_POSITIONS 0 +#endif + +#ifndef JSON_USE_LEGACY_DISCARDED_VALUE_COMPARISON + #define JSON_USE_LEGACY_DISCARDED_VALUE_COMPARISON 0 +#endif + +#if JSON_DIAGNOSTICS + #define NLOHMANN_JSON_ABI_TAG_DIAGNOSTICS _diag +#else + #define NLOHMANN_JSON_ABI_TAG_DIAGNOSTICS +#endif + +#if JSON_DIAGNOSTIC_POSITIONS + #define NLOHMANN_JSON_ABI_TAG_DIAGNOSTIC_POSITIONS _dp +#else + #define NLOHMANN_JSON_ABI_TAG_DIAGNOSTIC_POSITIONS +#endif + +#if JSON_USE_LEGACY_DISCARDED_VALUE_COMPARISON + #define NLOHMANN_JSON_ABI_TAG_LEGACY_DISCARDED_VALUE_COMPARISON _ldvcmp +#else + #define NLOHMANN_JSON_ABI_TAG_LEGACY_DISCARDED_VALUE_COMPARISON +#endif + +#ifndef NLOHMANN_JSON_NAMESPACE_NO_VERSION + #define NLOHMANN_JSON_NAMESPACE_NO_VERSION 0 +#endif + +// Construct the namespace ABI tags component +#define NLOHMANN_JSON_ABI_TAGS_CONCAT_EX(a, b, c) json_abi ## a ## b ## c +#define NLOHMANN_JSON_ABI_TAGS_CONCAT(a, b, c) \ + NLOHMANN_JSON_ABI_TAGS_CONCAT_EX(a, b, c) + +#define NLOHMANN_JSON_ABI_TAGS \ + NLOHMANN_JSON_ABI_TAGS_CONCAT( \ + NLOHMANN_JSON_ABI_TAG_DIAGNOSTICS, \ + NLOHMANN_JSON_ABI_TAG_LEGACY_DISCARDED_VALUE_COMPARISON, \ + NLOHMANN_JSON_ABI_TAG_DIAGNOSTIC_POSITIONS) + +// Construct the namespace version component +#define NLOHMANN_JSON_NAMESPACE_VERSION_CONCAT_EX(major, minor, patch) \ + _v ## major ## _ ## minor ## _ ## patch +#define NLOHMANN_JSON_NAMESPACE_VERSION_CONCAT(major, minor, patch) \ + NLOHMANN_JSON_NAMESPACE_VERSION_CONCAT_EX(major, minor, patch) + +#if NLOHMANN_JSON_NAMESPACE_NO_VERSION +#define NLOHMANN_JSON_NAMESPACE_VERSION +#else +#define NLOHMANN_JSON_NAMESPACE_VERSION \ + NLOHMANN_JSON_NAMESPACE_VERSION_CONCAT(NLOHMANN_JSON_VERSION_MAJOR, \ + NLOHMANN_JSON_VERSION_MINOR, \ + NLOHMANN_JSON_VERSION_PATCH) +#endif + +// Combine namespace components +#define NLOHMANN_JSON_NAMESPACE_CONCAT_EX(a, b) a ## b +#define NLOHMANN_JSON_NAMESPACE_CONCAT(a, b) \ + NLOHMANN_JSON_NAMESPACE_CONCAT_EX(a, b) + +#ifndef NLOHMANN_JSON_NAMESPACE +#define NLOHMANN_JSON_NAMESPACE \ + nlohmann::NLOHMANN_JSON_NAMESPACE_CONCAT( \ + NLOHMANN_JSON_ABI_TAGS, \ + NLOHMANN_JSON_NAMESPACE_VERSION) +#endif + +#ifndef NLOHMANN_JSON_NAMESPACE_BEGIN +#define NLOHMANN_JSON_NAMESPACE_BEGIN \ + namespace nlohmann \ + { \ + inline namespace NLOHMANN_JSON_NAMESPACE_CONCAT( \ + NLOHMANN_JSON_ABI_TAGS, \ + NLOHMANN_JSON_NAMESPACE_VERSION) \ + { +#endif + +#ifndef NLOHMANN_JSON_NAMESPACE_END +#define NLOHMANN_JSON_NAMESPACE_END \ + } /* namespace (inline namespace) NOLINT(readability/namespace) */ \ + } // namespace nlohmann +#endif + +// #include +// __ _____ _____ _____ +// __| | __| | | | JSON for Modern C++ +// | | |__ | | | | | | version 3.12.0 +// |_____|_____|_____|_|___| https://github.com/nlohmann/json +// +// SPDX-FileCopyrightText: 2013 - 2025 Niels Lohmann +// SPDX-License-Identifier: MIT + + + +#include // transform +#include // array +#include // forward_list +#include // inserter, front_inserter, end +#include // map +#ifdef JSON_HAS_CPP_17 + #include // optional +#endif +#include // string +#include // tuple, make_tuple +#include // is_arithmetic, is_same, is_enum, underlying_type, is_convertible +#include // unordered_map +#include // pair, declval +#include // valarray + +// #include +// __ _____ _____ _____ +// __| | __| | | | JSON for Modern C++ +// | | |__ | | | | | | version 3.12.0 +// |_____|_____|_____|_|___| https://github.com/nlohmann/json +// +// SPDX-FileCopyrightText: 2013 - 2025 Niels Lohmann +// SPDX-License-Identifier: MIT + + + +#include // nullptr_t +#include // exception +#if JSON_DIAGNOSTICS + #include // accumulate +#endif +#include // runtime_error +#include // to_string +#include // vector + +// #include +// __ _____ _____ _____ +// __| | __| | | | JSON for Modern C++ +// | | |__ | | | | | | version 3.12.0 +// |_____|_____|_____|_|___| https://github.com/nlohmann/json +// +// SPDX-FileCopyrightText: 2013 - 2025 Niels Lohmann +// SPDX-License-Identifier: MIT + + + +#include // array +#include // size_t +#include // uint8_t +#include // string + +// #include +// __ _____ _____ _____ +// __| | __| | | | JSON for Modern C++ +// | | |__ | | | | | | version 3.12.0 +// |_____|_____|_____|_|___| https://github.com/nlohmann/json +// +// SPDX-FileCopyrightText: 2013 - 2025 Niels Lohmann +// SPDX-License-Identifier: MIT + + + +#include // declval, pair +// #include +// __ _____ _____ _____ +// __| | __| | | | JSON for Modern C++ +// | | |__ | | | | | | version 3.12.0 +// |_____|_____|_____|_|___| https://github.com/nlohmann/json +// +// SPDX-FileCopyrightText: 2013 - 2025 Niels Lohmann +// SPDX-License-Identifier: MIT + + + +#include + +// #include +// __ _____ _____ _____ +// __| | __| | | | JSON for Modern C++ +// | | |__ | | | | | | version 3.12.0 +// |_____|_____|_____|_|___| https://github.com/nlohmann/json +// +// SPDX-FileCopyrightText: 2013 - 2025 Niels Lohmann +// SPDX-License-Identifier: MIT + + + +// #include + + +NLOHMANN_JSON_NAMESPACE_BEGIN +namespace detail +{ + +template struct make_void +{ + using type = void; +}; +template using void_t = typename make_void::type; + +} // namespace detail +NLOHMANN_JSON_NAMESPACE_END + + +NLOHMANN_JSON_NAMESPACE_BEGIN +namespace detail +{ + +// https://en.cppreference.com/w/cpp/experimental/is_detected +struct nonesuch +{ + nonesuch() = delete; + ~nonesuch() = delete; + nonesuch(nonesuch const&) = delete; + nonesuch(nonesuch const&&) = delete; + void operator=(nonesuch const&) = delete; + void operator=(nonesuch&&) = delete; +}; + +template class Op, + class... Args> +struct detector +{ + using value_t = std::false_type; + using type = Default; +}; + +template class Op, class... Args> +struct detector>, Op, Args...> +{ + using value_t = std::true_type; + using type = Op; +}; + +template class Op, class... Args> +using is_detected = typename detector::value_t; + +template class Op, class... Args> +struct is_detected_lazy : is_detected { }; + +template class Op, class... Args> +using detected_t = typename detector::type; + +template class Op, class... Args> +using detected_or = detector; + +template class Op, class... Args> +using detected_or_t = typename detected_or::type; + +template class Op, class... Args> +using is_detected_exact = std::is_same>; + +template class Op, class... Args> +using is_detected_convertible = + std::is_convertible, To>; + +} // namespace detail +NLOHMANN_JSON_NAMESPACE_END + +// #include + + +// __ _____ _____ _____ +// __| | __| | | | JSON for Modern C++ +// | | |__ | | | | | | version 3.12.0 +// |_____|_____|_____|_|___| https://github.com/nlohmann/json +// +// SPDX-FileCopyrightText: 2013 - 2025 Niels Lohmann +// SPDX-FileCopyrightText: 2016 - 2021 Evan Nemerson +// SPDX-License-Identifier: MIT + +/* Hedley - https://nemequ.github.io/hedley + * Created by Evan Nemerson + */ + +#if !defined(JSON_HEDLEY_VERSION) || (JSON_HEDLEY_VERSION < 15) +#if defined(JSON_HEDLEY_VERSION) + #undef JSON_HEDLEY_VERSION +#endif +#define JSON_HEDLEY_VERSION 15 + +#if defined(JSON_HEDLEY_STRINGIFY_EX) + #undef JSON_HEDLEY_STRINGIFY_EX +#endif +#define JSON_HEDLEY_STRINGIFY_EX(x) #x + +#if defined(JSON_HEDLEY_STRINGIFY) + #undef JSON_HEDLEY_STRINGIFY +#endif +#define JSON_HEDLEY_STRINGIFY(x) JSON_HEDLEY_STRINGIFY_EX(x) + +#if defined(JSON_HEDLEY_CONCAT_EX) + #undef JSON_HEDLEY_CONCAT_EX +#endif +#define JSON_HEDLEY_CONCAT_EX(a,b) a##b + +#if defined(JSON_HEDLEY_CONCAT) + #undef JSON_HEDLEY_CONCAT +#endif +#define JSON_HEDLEY_CONCAT(a,b) JSON_HEDLEY_CONCAT_EX(a,b) + +#if defined(JSON_HEDLEY_CONCAT3_EX) + #undef JSON_HEDLEY_CONCAT3_EX +#endif +#define JSON_HEDLEY_CONCAT3_EX(a,b,c) a##b##c + +#if defined(JSON_HEDLEY_CONCAT3) + #undef JSON_HEDLEY_CONCAT3 +#endif +#define JSON_HEDLEY_CONCAT3(a,b,c) JSON_HEDLEY_CONCAT3_EX(a,b,c) + +#if defined(JSON_HEDLEY_VERSION_ENCODE) + #undef JSON_HEDLEY_VERSION_ENCODE +#endif +#define JSON_HEDLEY_VERSION_ENCODE(major,minor,revision) (((major) * 1000000) + ((minor) * 1000) + (revision)) + +#if defined(JSON_HEDLEY_VERSION_DECODE_MAJOR) + #undef JSON_HEDLEY_VERSION_DECODE_MAJOR +#endif +#define JSON_HEDLEY_VERSION_DECODE_MAJOR(version) ((version) / 1000000) + +#if defined(JSON_HEDLEY_VERSION_DECODE_MINOR) + #undef JSON_HEDLEY_VERSION_DECODE_MINOR +#endif +#define JSON_HEDLEY_VERSION_DECODE_MINOR(version) (((version) % 1000000) / 1000) + +#if defined(JSON_HEDLEY_VERSION_DECODE_REVISION) + #undef JSON_HEDLEY_VERSION_DECODE_REVISION +#endif +#define JSON_HEDLEY_VERSION_DECODE_REVISION(version) ((version) % 1000) + +#if defined(JSON_HEDLEY_GNUC_VERSION) + #undef JSON_HEDLEY_GNUC_VERSION +#endif +#if defined(__GNUC__) && defined(__GNUC_PATCHLEVEL__) + #define JSON_HEDLEY_GNUC_VERSION JSON_HEDLEY_VERSION_ENCODE(__GNUC__, __GNUC_MINOR__, __GNUC_PATCHLEVEL__) +#elif defined(__GNUC__) + #define JSON_HEDLEY_GNUC_VERSION JSON_HEDLEY_VERSION_ENCODE(__GNUC__, __GNUC_MINOR__, 0) +#endif + +#if defined(JSON_HEDLEY_GNUC_VERSION_CHECK) + #undef JSON_HEDLEY_GNUC_VERSION_CHECK +#endif +#if defined(JSON_HEDLEY_GNUC_VERSION) + #define JSON_HEDLEY_GNUC_VERSION_CHECK(major,minor,patch) (JSON_HEDLEY_GNUC_VERSION >= JSON_HEDLEY_VERSION_ENCODE(major, minor, patch)) +#else + #define JSON_HEDLEY_GNUC_VERSION_CHECK(major,minor,patch) (0) +#endif + +#if defined(JSON_HEDLEY_MSVC_VERSION) + #undef JSON_HEDLEY_MSVC_VERSION +#endif +#if defined(_MSC_FULL_VER) && (_MSC_FULL_VER >= 140000000) && !defined(__ICL) + #define JSON_HEDLEY_MSVC_VERSION JSON_HEDLEY_VERSION_ENCODE(_MSC_FULL_VER / 10000000, (_MSC_FULL_VER % 10000000) / 100000, (_MSC_FULL_VER % 100000) / 100) +#elif defined(_MSC_FULL_VER) && !defined(__ICL) + #define JSON_HEDLEY_MSVC_VERSION JSON_HEDLEY_VERSION_ENCODE(_MSC_FULL_VER / 1000000, (_MSC_FULL_VER % 1000000) / 10000, (_MSC_FULL_VER % 10000) / 10) +#elif defined(_MSC_VER) && !defined(__ICL) + #define JSON_HEDLEY_MSVC_VERSION JSON_HEDLEY_VERSION_ENCODE(_MSC_VER / 100, _MSC_VER % 100, 0) +#endif + +#if defined(JSON_HEDLEY_MSVC_VERSION_CHECK) + #undef JSON_HEDLEY_MSVC_VERSION_CHECK +#endif +#if !defined(JSON_HEDLEY_MSVC_VERSION) + #define JSON_HEDLEY_MSVC_VERSION_CHECK(major,minor,patch) (0) +#elif defined(_MSC_VER) && (_MSC_VER >= 1400) + #define JSON_HEDLEY_MSVC_VERSION_CHECK(major,minor,patch) (_MSC_FULL_VER >= ((major * 10000000) + (minor * 100000) + (patch))) +#elif defined(_MSC_VER) && (_MSC_VER >= 1200) + #define JSON_HEDLEY_MSVC_VERSION_CHECK(major,minor,patch) (_MSC_FULL_VER >= ((major * 1000000) + (minor * 10000) + (patch))) +#else + #define JSON_HEDLEY_MSVC_VERSION_CHECK(major,minor,patch) (_MSC_VER >= ((major * 100) + (minor))) +#endif + +#if defined(JSON_HEDLEY_INTEL_VERSION) + #undef JSON_HEDLEY_INTEL_VERSION +#endif +#if defined(__INTEL_COMPILER) && defined(__INTEL_COMPILER_UPDATE) && !defined(__ICL) + #define JSON_HEDLEY_INTEL_VERSION JSON_HEDLEY_VERSION_ENCODE(__INTEL_COMPILER / 100, __INTEL_COMPILER % 100, __INTEL_COMPILER_UPDATE) +#elif defined(__INTEL_COMPILER) && !defined(__ICL) + #define JSON_HEDLEY_INTEL_VERSION JSON_HEDLEY_VERSION_ENCODE(__INTEL_COMPILER / 100, __INTEL_COMPILER % 100, 0) +#endif + +#if defined(JSON_HEDLEY_INTEL_VERSION_CHECK) + #undef JSON_HEDLEY_INTEL_VERSION_CHECK +#endif +#if defined(JSON_HEDLEY_INTEL_VERSION) + #define JSON_HEDLEY_INTEL_VERSION_CHECK(major,minor,patch) (JSON_HEDLEY_INTEL_VERSION >= JSON_HEDLEY_VERSION_ENCODE(major, minor, patch)) +#else + #define JSON_HEDLEY_INTEL_VERSION_CHECK(major,minor,patch) (0) +#endif + +#if defined(JSON_HEDLEY_INTEL_CL_VERSION) + #undef JSON_HEDLEY_INTEL_CL_VERSION +#endif +#if defined(__INTEL_COMPILER) && defined(__INTEL_COMPILER_UPDATE) && defined(__ICL) + #define JSON_HEDLEY_INTEL_CL_VERSION JSON_HEDLEY_VERSION_ENCODE(__INTEL_COMPILER, __INTEL_COMPILER_UPDATE, 0) +#endif + +#if defined(JSON_HEDLEY_INTEL_CL_VERSION_CHECK) + #undef JSON_HEDLEY_INTEL_CL_VERSION_CHECK +#endif +#if defined(JSON_HEDLEY_INTEL_CL_VERSION) + #define JSON_HEDLEY_INTEL_CL_VERSION_CHECK(major,minor,patch) (JSON_HEDLEY_INTEL_CL_VERSION >= JSON_HEDLEY_VERSION_ENCODE(major, minor, patch)) +#else + #define JSON_HEDLEY_INTEL_CL_VERSION_CHECK(major,minor,patch) (0) +#endif + +#if defined(JSON_HEDLEY_PGI_VERSION) + #undef JSON_HEDLEY_PGI_VERSION +#endif +#if defined(__PGI) && defined(__PGIC__) && defined(__PGIC_MINOR__) && defined(__PGIC_PATCHLEVEL__) + #define JSON_HEDLEY_PGI_VERSION JSON_HEDLEY_VERSION_ENCODE(__PGIC__, __PGIC_MINOR__, __PGIC_PATCHLEVEL__) +#endif + +#if defined(JSON_HEDLEY_PGI_VERSION_CHECK) + #undef JSON_HEDLEY_PGI_VERSION_CHECK +#endif +#if defined(JSON_HEDLEY_PGI_VERSION) + #define JSON_HEDLEY_PGI_VERSION_CHECK(major,minor,patch) (JSON_HEDLEY_PGI_VERSION >= JSON_HEDLEY_VERSION_ENCODE(major, minor, patch)) +#else + #define JSON_HEDLEY_PGI_VERSION_CHECK(major,minor,patch) (0) +#endif + +#if defined(JSON_HEDLEY_SUNPRO_VERSION) + #undef JSON_HEDLEY_SUNPRO_VERSION +#endif +#if defined(__SUNPRO_C) && (__SUNPRO_C > 0x1000) + #define JSON_HEDLEY_SUNPRO_VERSION JSON_HEDLEY_VERSION_ENCODE((((__SUNPRO_C >> 16) & 0xf) * 10) + ((__SUNPRO_C >> 12) & 0xf), (((__SUNPRO_C >> 8) & 0xf) * 10) + ((__SUNPRO_C >> 4) & 0xf), (__SUNPRO_C & 0xf) * 10) +#elif defined(__SUNPRO_C) + #define JSON_HEDLEY_SUNPRO_VERSION JSON_HEDLEY_VERSION_ENCODE((__SUNPRO_C >> 8) & 0xf, (__SUNPRO_C >> 4) & 0xf, (__SUNPRO_C) & 0xf) +#elif defined(__SUNPRO_CC) && (__SUNPRO_CC > 0x1000) + #define JSON_HEDLEY_SUNPRO_VERSION JSON_HEDLEY_VERSION_ENCODE((((__SUNPRO_CC >> 16) & 0xf) * 10) + ((__SUNPRO_CC >> 12) & 0xf), (((__SUNPRO_CC >> 8) & 0xf) * 10) + ((__SUNPRO_CC >> 4) & 0xf), (__SUNPRO_CC & 0xf) * 10) +#elif defined(__SUNPRO_CC) + #define JSON_HEDLEY_SUNPRO_VERSION JSON_HEDLEY_VERSION_ENCODE((__SUNPRO_CC >> 8) & 0xf, (__SUNPRO_CC >> 4) & 0xf, (__SUNPRO_CC) & 0xf) +#endif + +#if defined(JSON_HEDLEY_SUNPRO_VERSION_CHECK) + #undef JSON_HEDLEY_SUNPRO_VERSION_CHECK +#endif +#if defined(JSON_HEDLEY_SUNPRO_VERSION) + #define JSON_HEDLEY_SUNPRO_VERSION_CHECK(major,minor,patch) (JSON_HEDLEY_SUNPRO_VERSION >= JSON_HEDLEY_VERSION_ENCODE(major, minor, patch)) +#else + #define JSON_HEDLEY_SUNPRO_VERSION_CHECK(major,minor,patch) (0) +#endif + +#if defined(JSON_HEDLEY_EMSCRIPTEN_VERSION) + #undef JSON_HEDLEY_EMSCRIPTEN_VERSION +#endif +#if defined(__EMSCRIPTEN__) + #define JSON_HEDLEY_EMSCRIPTEN_VERSION JSON_HEDLEY_VERSION_ENCODE(__EMSCRIPTEN_major__, __EMSCRIPTEN_minor__, __EMSCRIPTEN_tiny__) +#endif + +#if defined(JSON_HEDLEY_EMSCRIPTEN_VERSION_CHECK) + #undef JSON_HEDLEY_EMSCRIPTEN_VERSION_CHECK +#endif +#if defined(JSON_HEDLEY_EMSCRIPTEN_VERSION) + #define JSON_HEDLEY_EMSCRIPTEN_VERSION_CHECK(major,minor,patch) (JSON_HEDLEY_EMSCRIPTEN_VERSION >= JSON_HEDLEY_VERSION_ENCODE(major, minor, patch)) +#else + #define JSON_HEDLEY_EMSCRIPTEN_VERSION_CHECK(major,minor,patch) (0) +#endif + +#if defined(JSON_HEDLEY_ARM_VERSION) + #undef JSON_HEDLEY_ARM_VERSION +#endif +#if defined(__CC_ARM) && defined(__ARMCOMPILER_VERSION) + #define JSON_HEDLEY_ARM_VERSION JSON_HEDLEY_VERSION_ENCODE(__ARMCOMPILER_VERSION / 1000000, (__ARMCOMPILER_VERSION % 1000000) / 10000, (__ARMCOMPILER_VERSION % 10000) / 100) +#elif defined(__CC_ARM) && defined(__ARMCC_VERSION) + #define JSON_HEDLEY_ARM_VERSION JSON_HEDLEY_VERSION_ENCODE(__ARMCC_VERSION / 1000000, (__ARMCC_VERSION % 1000000) / 10000, (__ARMCC_VERSION % 10000) / 100) +#endif + +#if defined(JSON_HEDLEY_ARM_VERSION_CHECK) + #undef JSON_HEDLEY_ARM_VERSION_CHECK +#endif +#if defined(JSON_HEDLEY_ARM_VERSION) + #define JSON_HEDLEY_ARM_VERSION_CHECK(major,minor,patch) (JSON_HEDLEY_ARM_VERSION >= JSON_HEDLEY_VERSION_ENCODE(major, minor, patch)) +#else + #define JSON_HEDLEY_ARM_VERSION_CHECK(major,minor,patch) (0) +#endif + +#if defined(JSON_HEDLEY_IBM_VERSION) + #undef JSON_HEDLEY_IBM_VERSION +#endif +#if defined(__ibmxl__) + #define JSON_HEDLEY_IBM_VERSION JSON_HEDLEY_VERSION_ENCODE(__ibmxl_version__, __ibmxl_release__, __ibmxl_modification__) +#elif defined(__xlC__) && defined(__xlC_ver__) + #define JSON_HEDLEY_IBM_VERSION JSON_HEDLEY_VERSION_ENCODE(__xlC__ >> 8, __xlC__ & 0xff, (__xlC_ver__ >> 8) & 0xff) +#elif defined(__xlC__) + #define JSON_HEDLEY_IBM_VERSION JSON_HEDLEY_VERSION_ENCODE(__xlC__ >> 8, __xlC__ & 0xff, 0) +#endif + +#if defined(JSON_HEDLEY_IBM_VERSION_CHECK) + #undef JSON_HEDLEY_IBM_VERSION_CHECK +#endif +#if defined(JSON_HEDLEY_IBM_VERSION) + #define JSON_HEDLEY_IBM_VERSION_CHECK(major,minor,patch) (JSON_HEDLEY_IBM_VERSION >= JSON_HEDLEY_VERSION_ENCODE(major, minor, patch)) +#else + #define JSON_HEDLEY_IBM_VERSION_CHECK(major,minor,patch) (0) +#endif + +#if defined(JSON_HEDLEY_TI_VERSION) + #undef JSON_HEDLEY_TI_VERSION +#endif +#if \ + defined(__TI_COMPILER_VERSION__) && \ + ( \ + defined(__TMS470__) || defined(__TI_ARM__) || \ + defined(__MSP430__) || \ + defined(__TMS320C2000__) \ + ) +#if (__TI_COMPILER_VERSION__ >= 16000000) + #define JSON_HEDLEY_TI_VERSION JSON_HEDLEY_VERSION_ENCODE(__TI_COMPILER_VERSION__ / 1000000, (__TI_COMPILER_VERSION__ % 1000000) / 1000, (__TI_COMPILER_VERSION__ % 1000)) +#endif +#endif + +#if defined(JSON_HEDLEY_TI_VERSION_CHECK) + #undef JSON_HEDLEY_TI_VERSION_CHECK +#endif +#if defined(JSON_HEDLEY_TI_VERSION) + #define JSON_HEDLEY_TI_VERSION_CHECK(major,minor,patch) (JSON_HEDLEY_TI_VERSION >= JSON_HEDLEY_VERSION_ENCODE(major, minor, patch)) +#else + #define JSON_HEDLEY_TI_VERSION_CHECK(major,minor,patch) (0) +#endif + +#if defined(JSON_HEDLEY_TI_CL2000_VERSION) + #undef JSON_HEDLEY_TI_CL2000_VERSION +#endif +#if defined(__TI_COMPILER_VERSION__) && defined(__TMS320C2000__) + #define JSON_HEDLEY_TI_CL2000_VERSION JSON_HEDLEY_VERSION_ENCODE(__TI_COMPILER_VERSION__ / 1000000, (__TI_COMPILER_VERSION__ % 1000000) / 1000, (__TI_COMPILER_VERSION__ % 1000)) +#endif + +#if defined(JSON_HEDLEY_TI_CL2000_VERSION_CHECK) + #undef JSON_HEDLEY_TI_CL2000_VERSION_CHECK +#endif +#if defined(JSON_HEDLEY_TI_CL2000_VERSION) + #define JSON_HEDLEY_TI_CL2000_VERSION_CHECK(major,minor,patch) (JSON_HEDLEY_TI_CL2000_VERSION >= JSON_HEDLEY_VERSION_ENCODE(major, minor, patch)) +#else + #define JSON_HEDLEY_TI_CL2000_VERSION_CHECK(major,minor,patch) (0) +#endif + +#if defined(JSON_HEDLEY_TI_CL430_VERSION) + #undef JSON_HEDLEY_TI_CL430_VERSION +#endif +#if defined(__TI_COMPILER_VERSION__) && defined(__MSP430__) + #define JSON_HEDLEY_TI_CL430_VERSION JSON_HEDLEY_VERSION_ENCODE(__TI_COMPILER_VERSION__ / 1000000, (__TI_COMPILER_VERSION__ % 1000000) / 1000, (__TI_COMPILER_VERSION__ % 1000)) +#endif + +#if defined(JSON_HEDLEY_TI_CL430_VERSION_CHECK) + #undef JSON_HEDLEY_TI_CL430_VERSION_CHECK +#endif +#if defined(JSON_HEDLEY_TI_CL430_VERSION) + #define JSON_HEDLEY_TI_CL430_VERSION_CHECK(major,minor,patch) (JSON_HEDLEY_TI_CL430_VERSION >= JSON_HEDLEY_VERSION_ENCODE(major, minor, patch)) +#else + #define JSON_HEDLEY_TI_CL430_VERSION_CHECK(major,minor,patch) (0) +#endif + +#if defined(JSON_HEDLEY_TI_ARMCL_VERSION) + #undef JSON_HEDLEY_TI_ARMCL_VERSION +#endif +#if defined(__TI_COMPILER_VERSION__) && (defined(__TMS470__) || defined(__TI_ARM__)) + #define JSON_HEDLEY_TI_ARMCL_VERSION JSON_HEDLEY_VERSION_ENCODE(__TI_COMPILER_VERSION__ / 1000000, (__TI_COMPILER_VERSION__ % 1000000) / 1000, (__TI_COMPILER_VERSION__ % 1000)) +#endif + +#if defined(JSON_HEDLEY_TI_ARMCL_VERSION_CHECK) + #undef JSON_HEDLEY_TI_ARMCL_VERSION_CHECK +#endif +#if defined(JSON_HEDLEY_TI_ARMCL_VERSION) + #define JSON_HEDLEY_TI_ARMCL_VERSION_CHECK(major,minor,patch) (JSON_HEDLEY_TI_ARMCL_VERSION >= JSON_HEDLEY_VERSION_ENCODE(major, minor, patch)) +#else + #define JSON_HEDLEY_TI_ARMCL_VERSION_CHECK(major,minor,patch) (0) +#endif + +#if defined(JSON_HEDLEY_TI_CL6X_VERSION) + #undef JSON_HEDLEY_TI_CL6X_VERSION +#endif +#if defined(__TI_COMPILER_VERSION__) && defined(__TMS320C6X__) + #define JSON_HEDLEY_TI_CL6X_VERSION JSON_HEDLEY_VERSION_ENCODE(__TI_COMPILER_VERSION__ / 1000000, (__TI_COMPILER_VERSION__ % 1000000) / 1000, (__TI_COMPILER_VERSION__ % 1000)) +#endif + +#if defined(JSON_HEDLEY_TI_CL6X_VERSION_CHECK) + #undef JSON_HEDLEY_TI_CL6X_VERSION_CHECK +#endif +#if defined(JSON_HEDLEY_TI_CL6X_VERSION) + #define JSON_HEDLEY_TI_CL6X_VERSION_CHECK(major,minor,patch) (JSON_HEDLEY_TI_CL6X_VERSION >= JSON_HEDLEY_VERSION_ENCODE(major, minor, patch)) +#else + #define JSON_HEDLEY_TI_CL6X_VERSION_CHECK(major,minor,patch) (0) +#endif + +#if defined(JSON_HEDLEY_TI_CL7X_VERSION) + #undef JSON_HEDLEY_TI_CL7X_VERSION +#endif +#if defined(__TI_COMPILER_VERSION__) && defined(__C7000__) + #define JSON_HEDLEY_TI_CL7X_VERSION JSON_HEDLEY_VERSION_ENCODE(__TI_COMPILER_VERSION__ / 1000000, (__TI_COMPILER_VERSION__ % 1000000) / 1000, (__TI_COMPILER_VERSION__ % 1000)) +#endif + +#if defined(JSON_HEDLEY_TI_CL7X_VERSION_CHECK) + #undef JSON_HEDLEY_TI_CL7X_VERSION_CHECK +#endif +#if defined(JSON_HEDLEY_TI_CL7X_VERSION) + #define JSON_HEDLEY_TI_CL7X_VERSION_CHECK(major,minor,patch) (JSON_HEDLEY_TI_CL7X_VERSION >= JSON_HEDLEY_VERSION_ENCODE(major, minor, patch)) +#else + #define JSON_HEDLEY_TI_CL7X_VERSION_CHECK(major,minor,patch) (0) +#endif + +#if defined(JSON_HEDLEY_TI_CLPRU_VERSION) + #undef JSON_HEDLEY_TI_CLPRU_VERSION +#endif +#if defined(__TI_COMPILER_VERSION__) && defined(__PRU__) + #define JSON_HEDLEY_TI_CLPRU_VERSION JSON_HEDLEY_VERSION_ENCODE(__TI_COMPILER_VERSION__ / 1000000, (__TI_COMPILER_VERSION__ % 1000000) / 1000, (__TI_COMPILER_VERSION__ % 1000)) +#endif + +#if defined(JSON_HEDLEY_TI_CLPRU_VERSION_CHECK) + #undef JSON_HEDLEY_TI_CLPRU_VERSION_CHECK +#endif +#if defined(JSON_HEDLEY_TI_CLPRU_VERSION) + #define JSON_HEDLEY_TI_CLPRU_VERSION_CHECK(major,minor,patch) (JSON_HEDLEY_TI_CLPRU_VERSION >= JSON_HEDLEY_VERSION_ENCODE(major, minor, patch)) +#else + #define JSON_HEDLEY_TI_CLPRU_VERSION_CHECK(major,minor,patch) (0) +#endif + +#if defined(JSON_HEDLEY_CRAY_VERSION) + #undef JSON_HEDLEY_CRAY_VERSION +#endif +#if defined(_CRAYC) + #if defined(_RELEASE_PATCHLEVEL) + #define JSON_HEDLEY_CRAY_VERSION JSON_HEDLEY_VERSION_ENCODE(_RELEASE_MAJOR, _RELEASE_MINOR, _RELEASE_PATCHLEVEL) + #else + #define JSON_HEDLEY_CRAY_VERSION JSON_HEDLEY_VERSION_ENCODE(_RELEASE_MAJOR, _RELEASE_MINOR, 0) + #endif +#endif + +#if defined(JSON_HEDLEY_CRAY_VERSION_CHECK) + #undef JSON_HEDLEY_CRAY_VERSION_CHECK +#endif +#if defined(JSON_HEDLEY_CRAY_VERSION) + #define JSON_HEDLEY_CRAY_VERSION_CHECK(major,minor,patch) (JSON_HEDLEY_CRAY_VERSION >= JSON_HEDLEY_VERSION_ENCODE(major, minor, patch)) +#else + #define JSON_HEDLEY_CRAY_VERSION_CHECK(major,minor,patch) (0) +#endif + +#if defined(JSON_HEDLEY_IAR_VERSION) + #undef JSON_HEDLEY_IAR_VERSION +#endif +#if defined(__IAR_SYSTEMS_ICC__) + #if __VER__ > 1000 + #define JSON_HEDLEY_IAR_VERSION JSON_HEDLEY_VERSION_ENCODE((__VER__ / 1000000), ((__VER__ / 1000) % 1000), (__VER__ % 1000)) + #else + #define JSON_HEDLEY_IAR_VERSION JSON_HEDLEY_VERSION_ENCODE(__VER__ / 100, __VER__ % 100, 0) + #endif +#endif + +#if defined(JSON_HEDLEY_IAR_VERSION_CHECK) + #undef JSON_HEDLEY_IAR_VERSION_CHECK +#endif +#if defined(JSON_HEDLEY_IAR_VERSION) + #define JSON_HEDLEY_IAR_VERSION_CHECK(major,minor,patch) (JSON_HEDLEY_IAR_VERSION >= JSON_HEDLEY_VERSION_ENCODE(major, minor, patch)) +#else + #define JSON_HEDLEY_IAR_VERSION_CHECK(major,minor,patch) (0) +#endif + +#if defined(JSON_HEDLEY_TINYC_VERSION) + #undef JSON_HEDLEY_TINYC_VERSION +#endif +#if defined(__TINYC__) + #define JSON_HEDLEY_TINYC_VERSION JSON_HEDLEY_VERSION_ENCODE(__TINYC__ / 1000, (__TINYC__ / 100) % 10, __TINYC__ % 100) +#endif + +#if defined(JSON_HEDLEY_TINYC_VERSION_CHECK) + #undef JSON_HEDLEY_TINYC_VERSION_CHECK +#endif +#if defined(JSON_HEDLEY_TINYC_VERSION) + #define JSON_HEDLEY_TINYC_VERSION_CHECK(major,minor,patch) (JSON_HEDLEY_TINYC_VERSION >= JSON_HEDLEY_VERSION_ENCODE(major, minor, patch)) +#else + #define JSON_HEDLEY_TINYC_VERSION_CHECK(major,minor,patch) (0) +#endif + +#if defined(JSON_HEDLEY_DMC_VERSION) + #undef JSON_HEDLEY_DMC_VERSION +#endif +#if defined(__DMC__) + #define JSON_HEDLEY_DMC_VERSION JSON_HEDLEY_VERSION_ENCODE(__DMC__ >> 8, (__DMC__ >> 4) & 0xf, __DMC__ & 0xf) +#endif + +#if defined(JSON_HEDLEY_DMC_VERSION_CHECK) + #undef JSON_HEDLEY_DMC_VERSION_CHECK +#endif +#if defined(JSON_HEDLEY_DMC_VERSION) + #define JSON_HEDLEY_DMC_VERSION_CHECK(major,minor,patch) (JSON_HEDLEY_DMC_VERSION >= JSON_HEDLEY_VERSION_ENCODE(major, minor, patch)) +#else + #define JSON_HEDLEY_DMC_VERSION_CHECK(major,minor,patch) (0) +#endif + +#if defined(JSON_HEDLEY_COMPCERT_VERSION) + #undef JSON_HEDLEY_COMPCERT_VERSION +#endif +#if defined(__COMPCERT_VERSION__) + #define JSON_HEDLEY_COMPCERT_VERSION JSON_HEDLEY_VERSION_ENCODE(__COMPCERT_VERSION__ / 10000, (__COMPCERT_VERSION__ / 100) % 100, __COMPCERT_VERSION__ % 100) +#endif + +#if defined(JSON_HEDLEY_COMPCERT_VERSION_CHECK) + #undef JSON_HEDLEY_COMPCERT_VERSION_CHECK +#endif +#if defined(JSON_HEDLEY_COMPCERT_VERSION) + #define JSON_HEDLEY_COMPCERT_VERSION_CHECK(major,minor,patch) (JSON_HEDLEY_COMPCERT_VERSION >= JSON_HEDLEY_VERSION_ENCODE(major, minor, patch)) +#else + #define JSON_HEDLEY_COMPCERT_VERSION_CHECK(major,minor,patch) (0) +#endif + +#if defined(JSON_HEDLEY_PELLES_VERSION) + #undef JSON_HEDLEY_PELLES_VERSION +#endif +#if defined(__POCC__) + #define JSON_HEDLEY_PELLES_VERSION JSON_HEDLEY_VERSION_ENCODE(__POCC__ / 100, __POCC__ % 100, 0) +#endif + +#if defined(JSON_HEDLEY_PELLES_VERSION_CHECK) + #undef JSON_HEDLEY_PELLES_VERSION_CHECK +#endif +#if defined(JSON_HEDLEY_PELLES_VERSION) + #define JSON_HEDLEY_PELLES_VERSION_CHECK(major,minor,patch) (JSON_HEDLEY_PELLES_VERSION >= JSON_HEDLEY_VERSION_ENCODE(major, minor, patch)) +#else + #define JSON_HEDLEY_PELLES_VERSION_CHECK(major,minor,patch) (0) +#endif + +#if defined(JSON_HEDLEY_MCST_LCC_VERSION) + #undef JSON_HEDLEY_MCST_LCC_VERSION +#endif +#if defined(__LCC__) && defined(__LCC_MINOR__) + #define JSON_HEDLEY_MCST_LCC_VERSION JSON_HEDLEY_VERSION_ENCODE(__LCC__ / 100, __LCC__ % 100, __LCC_MINOR__) +#endif + +#if defined(JSON_HEDLEY_MCST_LCC_VERSION_CHECK) + #undef JSON_HEDLEY_MCST_LCC_VERSION_CHECK +#endif +#if defined(JSON_HEDLEY_MCST_LCC_VERSION) + #define JSON_HEDLEY_MCST_LCC_VERSION_CHECK(major,minor,patch) (JSON_HEDLEY_MCST_LCC_VERSION >= JSON_HEDLEY_VERSION_ENCODE(major, minor, patch)) +#else + #define JSON_HEDLEY_MCST_LCC_VERSION_CHECK(major,minor,patch) (0) +#endif + +#if defined(JSON_HEDLEY_GCC_VERSION) + #undef JSON_HEDLEY_GCC_VERSION +#endif +#if \ + defined(JSON_HEDLEY_GNUC_VERSION) && \ + !defined(__clang__) && \ + !defined(JSON_HEDLEY_INTEL_VERSION) && \ + !defined(JSON_HEDLEY_PGI_VERSION) && \ + !defined(JSON_HEDLEY_ARM_VERSION) && \ + !defined(JSON_HEDLEY_CRAY_VERSION) && \ + !defined(JSON_HEDLEY_TI_VERSION) && \ + !defined(JSON_HEDLEY_TI_ARMCL_VERSION) && \ + !defined(JSON_HEDLEY_TI_CL430_VERSION) && \ + !defined(JSON_HEDLEY_TI_CL2000_VERSION) && \ + !defined(JSON_HEDLEY_TI_CL6X_VERSION) && \ + !defined(JSON_HEDLEY_TI_CL7X_VERSION) && \ + !defined(JSON_HEDLEY_TI_CLPRU_VERSION) && \ + !defined(__COMPCERT__) && \ + !defined(JSON_HEDLEY_MCST_LCC_VERSION) + #define JSON_HEDLEY_GCC_VERSION JSON_HEDLEY_GNUC_VERSION +#endif + +#if defined(JSON_HEDLEY_GCC_VERSION_CHECK) + #undef JSON_HEDLEY_GCC_VERSION_CHECK +#endif +#if defined(JSON_HEDLEY_GCC_VERSION) + #define JSON_HEDLEY_GCC_VERSION_CHECK(major,minor,patch) (JSON_HEDLEY_GCC_VERSION >= JSON_HEDLEY_VERSION_ENCODE(major, minor, patch)) +#else + #define JSON_HEDLEY_GCC_VERSION_CHECK(major,minor,patch) (0) +#endif + +#if defined(JSON_HEDLEY_HAS_ATTRIBUTE) + #undef JSON_HEDLEY_HAS_ATTRIBUTE +#endif +#if \ + defined(__has_attribute) && \ + ( \ + (!defined(JSON_HEDLEY_IAR_VERSION) || JSON_HEDLEY_IAR_VERSION_CHECK(8,5,9)) \ + ) +# define JSON_HEDLEY_HAS_ATTRIBUTE(attribute) __has_attribute(attribute) +#else +# define JSON_HEDLEY_HAS_ATTRIBUTE(attribute) (0) +#endif + +#if defined(JSON_HEDLEY_GNUC_HAS_ATTRIBUTE) + #undef JSON_HEDLEY_GNUC_HAS_ATTRIBUTE +#endif +#if defined(__has_attribute) + #define JSON_HEDLEY_GNUC_HAS_ATTRIBUTE(attribute,major,minor,patch) JSON_HEDLEY_HAS_ATTRIBUTE(attribute) +#else + #define JSON_HEDLEY_GNUC_HAS_ATTRIBUTE(attribute,major,minor,patch) JSON_HEDLEY_GNUC_VERSION_CHECK(major,minor,patch) +#endif + +#if defined(JSON_HEDLEY_GCC_HAS_ATTRIBUTE) + #undef JSON_HEDLEY_GCC_HAS_ATTRIBUTE +#endif +#if defined(__has_attribute) + #define JSON_HEDLEY_GCC_HAS_ATTRIBUTE(attribute,major,minor,patch) JSON_HEDLEY_HAS_ATTRIBUTE(attribute) +#else + #define JSON_HEDLEY_GCC_HAS_ATTRIBUTE(attribute,major,minor,patch) JSON_HEDLEY_GCC_VERSION_CHECK(major,minor,patch) +#endif + +#if defined(JSON_HEDLEY_HAS_CPP_ATTRIBUTE) + #undef JSON_HEDLEY_HAS_CPP_ATTRIBUTE +#endif +#if \ + defined(__has_cpp_attribute) && \ + defined(__cplusplus) && \ + (!defined(JSON_HEDLEY_SUNPRO_VERSION) || JSON_HEDLEY_SUNPRO_VERSION_CHECK(5,15,0)) + #define JSON_HEDLEY_HAS_CPP_ATTRIBUTE(attribute) __has_cpp_attribute(attribute) +#else + #define JSON_HEDLEY_HAS_CPP_ATTRIBUTE(attribute) (0) +#endif + +#if defined(JSON_HEDLEY_HAS_CPP_ATTRIBUTE_NS) + #undef JSON_HEDLEY_HAS_CPP_ATTRIBUTE_NS +#endif +#if !defined(__cplusplus) || !defined(__has_cpp_attribute) + #define JSON_HEDLEY_HAS_CPP_ATTRIBUTE_NS(ns,attribute) (0) +#elif \ + !defined(JSON_HEDLEY_PGI_VERSION) && \ + !defined(JSON_HEDLEY_IAR_VERSION) && \ + (!defined(JSON_HEDLEY_SUNPRO_VERSION) || JSON_HEDLEY_SUNPRO_VERSION_CHECK(5,15,0)) && \ + (!defined(JSON_HEDLEY_MSVC_VERSION) || JSON_HEDLEY_MSVC_VERSION_CHECK(19,20,0)) + #define JSON_HEDLEY_HAS_CPP_ATTRIBUTE_NS(ns,attribute) JSON_HEDLEY_HAS_CPP_ATTRIBUTE(ns::attribute) +#else + #define JSON_HEDLEY_HAS_CPP_ATTRIBUTE_NS(ns,attribute) (0) +#endif + +#if defined(JSON_HEDLEY_GNUC_HAS_CPP_ATTRIBUTE) + #undef JSON_HEDLEY_GNUC_HAS_CPP_ATTRIBUTE +#endif +#if defined(__has_cpp_attribute) && defined(__cplusplus) + #define JSON_HEDLEY_GNUC_HAS_CPP_ATTRIBUTE(attribute,major,minor,patch) __has_cpp_attribute(attribute) +#else + #define JSON_HEDLEY_GNUC_HAS_CPP_ATTRIBUTE(attribute,major,minor,patch) JSON_HEDLEY_GNUC_VERSION_CHECK(major,minor,patch) +#endif + +#if defined(JSON_HEDLEY_GCC_HAS_CPP_ATTRIBUTE) + #undef JSON_HEDLEY_GCC_HAS_CPP_ATTRIBUTE +#endif +#if defined(__has_cpp_attribute) && defined(__cplusplus) + #define JSON_HEDLEY_GCC_HAS_CPP_ATTRIBUTE(attribute,major,minor,patch) __has_cpp_attribute(attribute) +#else + #define JSON_HEDLEY_GCC_HAS_CPP_ATTRIBUTE(attribute,major,minor,patch) JSON_HEDLEY_GCC_VERSION_CHECK(major,minor,patch) +#endif + +#if defined(JSON_HEDLEY_HAS_BUILTIN) + #undef JSON_HEDLEY_HAS_BUILTIN +#endif +#if defined(__has_builtin) + #define JSON_HEDLEY_HAS_BUILTIN(builtin) __has_builtin(builtin) +#else + #define JSON_HEDLEY_HAS_BUILTIN(builtin) (0) +#endif + +#if defined(JSON_HEDLEY_GNUC_HAS_BUILTIN) + #undef JSON_HEDLEY_GNUC_HAS_BUILTIN +#endif +#if defined(__has_builtin) + #define JSON_HEDLEY_GNUC_HAS_BUILTIN(builtin,major,minor,patch) __has_builtin(builtin) +#else + #define JSON_HEDLEY_GNUC_HAS_BUILTIN(builtin,major,minor,patch) JSON_HEDLEY_GNUC_VERSION_CHECK(major,minor,patch) +#endif + +#if defined(JSON_HEDLEY_GCC_HAS_BUILTIN) + #undef JSON_HEDLEY_GCC_HAS_BUILTIN +#endif +#if defined(__has_builtin) + #define JSON_HEDLEY_GCC_HAS_BUILTIN(builtin,major,minor,patch) __has_builtin(builtin) +#else + #define JSON_HEDLEY_GCC_HAS_BUILTIN(builtin,major,minor,patch) JSON_HEDLEY_GCC_VERSION_CHECK(major,minor,patch) +#endif + +#if defined(JSON_HEDLEY_HAS_FEATURE) + #undef JSON_HEDLEY_HAS_FEATURE +#endif +#if defined(__has_feature) + #define JSON_HEDLEY_HAS_FEATURE(feature) __has_feature(feature) +#else + #define JSON_HEDLEY_HAS_FEATURE(feature) (0) +#endif + +#if defined(JSON_HEDLEY_GNUC_HAS_FEATURE) + #undef JSON_HEDLEY_GNUC_HAS_FEATURE +#endif +#if defined(__has_feature) + #define JSON_HEDLEY_GNUC_HAS_FEATURE(feature,major,minor,patch) __has_feature(feature) +#else + #define JSON_HEDLEY_GNUC_HAS_FEATURE(feature,major,minor,patch) JSON_HEDLEY_GNUC_VERSION_CHECK(major,minor,patch) +#endif + +#if defined(JSON_HEDLEY_GCC_HAS_FEATURE) + #undef JSON_HEDLEY_GCC_HAS_FEATURE +#endif +#if defined(__has_feature) + #define JSON_HEDLEY_GCC_HAS_FEATURE(feature,major,minor,patch) __has_feature(feature) +#else + #define JSON_HEDLEY_GCC_HAS_FEATURE(feature,major,minor,patch) JSON_HEDLEY_GCC_VERSION_CHECK(major,minor,patch) +#endif + +#if defined(JSON_HEDLEY_HAS_EXTENSION) + #undef JSON_HEDLEY_HAS_EXTENSION +#endif +#if defined(__has_extension) + #define JSON_HEDLEY_HAS_EXTENSION(extension) __has_extension(extension) +#else + #define JSON_HEDLEY_HAS_EXTENSION(extension) (0) +#endif + +#if defined(JSON_HEDLEY_GNUC_HAS_EXTENSION) + #undef JSON_HEDLEY_GNUC_HAS_EXTENSION +#endif +#if defined(__has_extension) + #define JSON_HEDLEY_GNUC_HAS_EXTENSION(extension,major,minor,patch) __has_extension(extension) +#else + #define JSON_HEDLEY_GNUC_HAS_EXTENSION(extension,major,minor,patch) JSON_HEDLEY_GNUC_VERSION_CHECK(major,minor,patch) +#endif + +#if defined(JSON_HEDLEY_GCC_HAS_EXTENSION) + #undef JSON_HEDLEY_GCC_HAS_EXTENSION +#endif +#if defined(__has_extension) + #define JSON_HEDLEY_GCC_HAS_EXTENSION(extension,major,minor,patch) __has_extension(extension) +#else + #define JSON_HEDLEY_GCC_HAS_EXTENSION(extension,major,minor,patch) JSON_HEDLEY_GCC_VERSION_CHECK(major,minor,patch) +#endif + +#if defined(JSON_HEDLEY_HAS_DECLSPEC_ATTRIBUTE) + #undef JSON_HEDLEY_HAS_DECLSPEC_ATTRIBUTE +#endif +#if defined(__has_declspec_attribute) + #define JSON_HEDLEY_HAS_DECLSPEC_ATTRIBUTE(attribute) __has_declspec_attribute(attribute) +#else + #define JSON_HEDLEY_HAS_DECLSPEC_ATTRIBUTE(attribute) (0) +#endif + +#if defined(JSON_HEDLEY_GNUC_HAS_DECLSPEC_ATTRIBUTE) + #undef JSON_HEDLEY_GNUC_HAS_DECLSPEC_ATTRIBUTE +#endif +#if defined(__has_declspec_attribute) + #define JSON_HEDLEY_GNUC_HAS_DECLSPEC_ATTRIBUTE(attribute,major,minor,patch) __has_declspec_attribute(attribute) +#else + #define JSON_HEDLEY_GNUC_HAS_DECLSPEC_ATTRIBUTE(attribute,major,minor,patch) JSON_HEDLEY_GNUC_VERSION_CHECK(major,minor,patch) +#endif + +#if defined(JSON_HEDLEY_GCC_HAS_DECLSPEC_ATTRIBUTE) + #undef JSON_HEDLEY_GCC_HAS_DECLSPEC_ATTRIBUTE +#endif +#if defined(__has_declspec_attribute) + #define JSON_HEDLEY_GCC_HAS_DECLSPEC_ATTRIBUTE(attribute,major,minor,patch) __has_declspec_attribute(attribute) +#else + #define JSON_HEDLEY_GCC_HAS_DECLSPEC_ATTRIBUTE(attribute,major,minor,patch) JSON_HEDLEY_GCC_VERSION_CHECK(major,minor,patch) +#endif + +#if defined(JSON_HEDLEY_HAS_WARNING) + #undef JSON_HEDLEY_HAS_WARNING +#endif +#if defined(__has_warning) + #define JSON_HEDLEY_HAS_WARNING(warning) __has_warning(warning) +#else + #define JSON_HEDLEY_HAS_WARNING(warning) (0) +#endif + +#if defined(JSON_HEDLEY_GNUC_HAS_WARNING) + #undef JSON_HEDLEY_GNUC_HAS_WARNING +#endif +#if defined(__has_warning) + #define JSON_HEDLEY_GNUC_HAS_WARNING(warning,major,minor,patch) __has_warning(warning) +#else + #define JSON_HEDLEY_GNUC_HAS_WARNING(warning,major,minor,patch) JSON_HEDLEY_GNUC_VERSION_CHECK(major,minor,patch) +#endif + +#if defined(JSON_HEDLEY_GCC_HAS_WARNING) + #undef JSON_HEDLEY_GCC_HAS_WARNING +#endif +#if defined(__has_warning) + #define JSON_HEDLEY_GCC_HAS_WARNING(warning,major,minor,patch) __has_warning(warning) +#else + #define JSON_HEDLEY_GCC_HAS_WARNING(warning,major,minor,patch) JSON_HEDLEY_GCC_VERSION_CHECK(major,minor,patch) +#endif + +#if \ + (defined(__STDC_VERSION__) && (__STDC_VERSION__ >= 199901L)) || \ + defined(__clang__) || \ + JSON_HEDLEY_GCC_VERSION_CHECK(3,0,0) || \ + JSON_HEDLEY_INTEL_VERSION_CHECK(13,0,0) || \ + JSON_HEDLEY_IAR_VERSION_CHECK(8,0,0) || \ + JSON_HEDLEY_PGI_VERSION_CHECK(18,4,0) || \ + JSON_HEDLEY_ARM_VERSION_CHECK(4,1,0) || \ + JSON_HEDLEY_TI_VERSION_CHECK(15,12,0) || \ + JSON_HEDLEY_TI_ARMCL_VERSION_CHECK(4,7,0) || \ + JSON_HEDLEY_TI_CL430_VERSION_CHECK(2,0,1) || \ + JSON_HEDLEY_TI_CL2000_VERSION_CHECK(6,1,0) || \ + JSON_HEDLEY_TI_CL6X_VERSION_CHECK(7,0,0) || \ + JSON_HEDLEY_TI_CL7X_VERSION_CHECK(1,2,0) || \ + JSON_HEDLEY_TI_CLPRU_VERSION_CHECK(2,1,0) || \ + JSON_HEDLEY_CRAY_VERSION_CHECK(5,0,0) || \ + JSON_HEDLEY_TINYC_VERSION_CHECK(0,9,17) || \ + JSON_HEDLEY_SUNPRO_VERSION_CHECK(8,0,0) || \ + (JSON_HEDLEY_IBM_VERSION_CHECK(10,1,0) && defined(__C99_PRAGMA_OPERATOR)) + #define JSON_HEDLEY_PRAGMA(value) _Pragma(#value) +#elif JSON_HEDLEY_MSVC_VERSION_CHECK(15,0,0) + #define JSON_HEDLEY_PRAGMA(value) __pragma(value) +#else + #define JSON_HEDLEY_PRAGMA(value) +#endif + +#if defined(JSON_HEDLEY_DIAGNOSTIC_PUSH) + #undef JSON_HEDLEY_DIAGNOSTIC_PUSH +#endif +#if defined(JSON_HEDLEY_DIAGNOSTIC_POP) + #undef JSON_HEDLEY_DIAGNOSTIC_POP +#endif +#if defined(__clang__) + #define JSON_HEDLEY_DIAGNOSTIC_PUSH _Pragma("clang diagnostic push") + #define JSON_HEDLEY_DIAGNOSTIC_POP _Pragma("clang diagnostic pop") +#elif JSON_HEDLEY_INTEL_VERSION_CHECK(13,0,0) + #define JSON_HEDLEY_DIAGNOSTIC_PUSH _Pragma("warning(push)") + #define JSON_HEDLEY_DIAGNOSTIC_POP _Pragma("warning(pop)") +#elif JSON_HEDLEY_GCC_VERSION_CHECK(4,6,0) + #define JSON_HEDLEY_DIAGNOSTIC_PUSH _Pragma("GCC diagnostic push") + #define JSON_HEDLEY_DIAGNOSTIC_POP _Pragma("GCC diagnostic pop") +#elif \ + JSON_HEDLEY_MSVC_VERSION_CHECK(15,0,0) || \ + JSON_HEDLEY_INTEL_CL_VERSION_CHECK(2021,1,0) + #define JSON_HEDLEY_DIAGNOSTIC_PUSH __pragma(warning(push)) + #define JSON_HEDLEY_DIAGNOSTIC_POP __pragma(warning(pop)) +#elif JSON_HEDLEY_ARM_VERSION_CHECK(5,6,0) + #define JSON_HEDLEY_DIAGNOSTIC_PUSH _Pragma("push") + #define JSON_HEDLEY_DIAGNOSTIC_POP _Pragma("pop") +#elif \ + JSON_HEDLEY_TI_VERSION_CHECK(15,12,0) || \ + JSON_HEDLEY_TI_ARMCL_VERSION_CHECK(5,2,0) || \ + JSON_HEDLEY_TI_CL430_VERSION_CHECK(4,4,0) || \ + JSON_HEDLEY_TI_CL6X_VERSION_CHECK(8,1,0) || \ + JSON_HEDLEY_TI_CL7X_VERSION_CHECK(1,2,0) || \ + JSON_HEDLEY_TI_CLPRU_VERSION_CHECK(2,1,0) + #define JSON_HEDLEY_DIAGNOSTIC_PUSH _Pragma("diag_push") + #define JSON_HEDLEY_DIAGNOSTIC_POP _Pragma("diag_pop") +#elif JSON_HEDLEY_PELLES_VERSION_CHECK(2,90,0) + #define JSON_HEDLEY_DIAGNOSTIC_PUSH _Pragma("warning(push)") + #define JSON_HEDLEY_DIAGNOSTIC_POP _Pragma("warning(pop)") +#else + #define JSON_HEDLEY_DIAGNOSTIC_PUSH + #define JSON_HEDLEY_DIAGNOSTIC_POP +#endif + +/* JSON_HEDLEY_DIAGNOSTIC_DISABLE_CPP98_COMPAT_WRAP_ is for + HEDLEY INTERNAL USE ONLY. API subject to change without notice. */ +#if defined(JSON_HEDLEY_DIAGNOSTIC_DISABLE_CPP98_COMPAT_WRAP_) + #undef JSON_HEDLEY_DIAGNOSTIC_DISABLE_CPP98_COMPAT_WRAP_ +#endif +#if defined(__cplusplus) +# if JSON_HEDLEY_HAS_WARNING("-Wc++98-compat") +# if JSON_HEDLEY_HAS_WARNING("-Wc++17-extensions") +# if JSON_HEDLEY_HAS_WARNING("-Wc++1z-extensions") +# define JSON_HEDLEY_DIAGNOSTIC_DISABLE_CPP98_COMPAT_WRAP_(xpr) \ + JSON_HEDLEY_DIAGNOSTIC_PUSH \ + _Pragma("clang diagnostic ignored \"-Wc++98-compat\"") \ + _Pragma("clang diagnostic ignored \"-Wc++17-extensions\"") \ + _Pragma("clang diagnostic ignored \"-Wc++1z-extensions\"") \ + xpr \ + JSON_HEDLEY_DIAGNOSTIC_POP +# else +# define JSON_HEDLEY_DIAGNOSTIC_DISABLE_CPP98_COMPAT_WRAP_(xpr) \ + JSON_HEDLEY_DIAGNOSTIC_PUSH \ + _Pragma("clang diagnostic ignored \"-Wc++98-compat\"") \ + _Pragma("clang diagnostic ignored \"-Wc++17-extensions\"") \ + xpr \ + JSON_HEDLEY_DIAGNOSTIC_POP +# endif +# else +# define JSON_HEDLEY_DIAGNOSTIC_DISABLE_CPP98_COMPAT_WRAP_(xpr) \ + JSON_HEDLEY_DIAGNOSTIC_PUSH \ + _Pragma("clang diagnostic ignored \"-Wc++98-compat\"") \ + xpr \ + JSON_HEDLEY_DIAGNOSTIC_POP +# endif +# endif +#endif +#if !defined(JSON_HEDLEY_DIAGNOSTIC_DISABLE_CPP98_COMPAT_WRAP_) + #define JSON_HEDLEY_DIAGNOSTIC_DISABLE_CPP98_COMPAT_WRAP_(x) x +#endif + +#if defined(JSON_HEDLEY_CONST_CAST) + #undef JSON_HEDLEY_CONST_CAST +#endif +#if defined(__cplusplus) +# define JSON_HEDLEY_CONST_CAST(T, expr) (const_cast(expr)) +#elif \ + JSON_HEDLEY_HAS_WARNING("-Wcast-qual") || \ + JSON_HEDLEY_GCC_VERSION_CHECK(4,6,0) || \ + JSON_HEDLEY_INTEL_VERSION_CHECK(13,0,0) +# define JSON_HEDLEY_CONST_CAST(T, expr) (__extension__ ({ \ + JSON_HEDLEY_DIAGNOSTIC_PUSH \ + JSON_HEDLEY_DIAGNOSTIC_DISABLE_CAST_QUAL \ + ((T) (expr)); \ + JSON_HEDLEY_DIAGNOSTIC_POP \ + })) +#else +# define JSON_HEDLEY_CONST_CAST(T, expr) ((T) (expr)) +#endif + +#if defined(JSON_HEDLEY_REINTERPRET_CAST) + #undef JSON_HEDLEY_REINTERPRET_CAST +#endif +#if defined(__cplusplus) + #define JSON_HEDLEY_REINTERPRET_CAST(T, expr) (reinterpret_cast(expr)) +#else + #define JSON_HEDLEY_REINTERPRET_CAST(T, expr) ((T) (expr)) +#endif + +#if defined(JSON_HEDLEY_STATIC_CAST) + #undef JSON_HEDLEY_STATIC_CAST +#endif +#if defined(__cplusplus) + #define JSON_HEDLEY_STATIC_CAST(T, expr) (static_cast(expr)) +#else + #define JSON_HEDLEY_STATIC_CAST(T, expr) ((T) (expr)) +#endif + +#if defined(JSON_HEDLEY_CPP_CAST) + #undef JSON_HEDLEY_CPP_CAST +#endif +#if defined(__cplusplus) +# if JSON_HEDLEY_HAS_WARNING("-Wold-style-cast") +# define JSON_HEDLEY_CPP_CAST(T, expr) \ + JSON_HEDLEY_DIAGNOSTIC_PUSH \ + _Pragma("clang diagnostic ignored \"-Wold-style-cast\"") \ + ((T) (expr)) \ + JSON_HEDLEY_DIAGNOSTIC_POP +# elif JSON_HEDLEY_IAR_VERSION_CHECK(8,3,0) +# define JSON_HEDLEY_CPP_CAST(T, expr) \ + JSON_HEDLEY_DIAGNOSTIC_PUSH \ + _Pragma("diag_suppress=Pe137") \ + JSON_HEDLEY_DIAGNOSTIC_POP +# else +# define JSON_HEDLEY_CPP_CAST(T, expr) ((T) (expr)) +# endif +#else +# define JSON_HEDLEY_CPP_CAST(T, expr) (expr) +#endif + +#if defined(JSON_HEDLEY_DIAGNOSTIC_DISABLE_DEPRECATED) + #undef JSON_HEDLEY_DIAGNOSTIC_DISABLE_DEPRECATED +#endif +#if JSON_HEDLEY_HAS_WARNING("-Wdeprecated-declarations") + #define JSON_HEDLEY_DIAGNOSTIC_DISABLE_DEPRECATED _Pragma("clang diagnostic ignored \"-Wdeprecated-declarations\"") +#elif JSON_HEDLEY_INTEL_VERSION_CHECK(13,0,0) + #define JSON_HEDLEY_DIAGNOSTIC_DISABLE_DEPRECATED _Pragma("warning(disable:1478 1786)") +#elif JSON_HEDLEY_INTEL_CL_VERSION_CHECK(2021,1,0) + #define JSON_HEDLEY_DIAGNOSTIC_DISABLE_DEPRECATED __pragma(warning(disable:1478 1786)) +#elif JSON_HEDLEY_PGI_VERSION_CHECK(20,7,0) + #define JSON_HEDLEY_DIAGNOSTIC_DISABLE_DEPRECATED _Pragma("diag_suppress 1215,1216,1444,1445") +#elif JSON_HEDLEY_PGI_VERSION_CHECK(17,10,0) + #define JSON_HEDLEY_DIAGNOSTIC_DISABLE_DEPRECATED _Pragma("diag_suppress 1215,1444") +#elif JSON_HEDLEY_GCC_VERSION_CHECK(4,3,0) + #define JSON_HEDLEY_DIAGNOSTIC_DISABLE_DEPRECATED _Pragma("GCC diagnostic ignored \"-Wdeprecated-declarations\"") +#elif JSON_HEDLEY_MSVC_VERSION_CHECK(15,0,0) + #define JSON_HEDLEY_DIAGNOSTIC_DISABLE_DEPRECATED __pragma(warning(disable:4996)) +#elif JSON_HEDLEY_MCST_LCC_VERSION_CHECK(1,25,10) + #define JSON_HEDLEY_DIAGNOSTIC_DISABLE_DEPRECATED _Pragma("diag_suppress 1215,1444") +#elif \ + JSON_HEDLEY_TI_VERSION_CHECK(15,12,0) || \ + (JSON_HEDLEY_TI_ARMCL_VERSION_CHECK(4,8,0) && defined(__TI_GNU_ATTRIBUTE_SUPPORT__)) || \ + JSON_HEDLEY_TI_ARMCL_VERSION_CHECK(5,2,0) || \ + (JSON_HEDLEY_TI_CL2000_VERSION_CHECK(6,0,0) && defined(__TI_GNU_ATTRIBUTE_SUPPORT__)) || \ + JSON_HEDLEY_TI_CL2000_VERSION_CHECK(6,4,0) || \ + (JSON_HEDLEY_TI_CL430_VERSION_CHECK(4,0,0) && defined(__TI_GNU_ATTRIBUTE_SUPPORT__)) || \ + JSON_HEDLEY_TI_CL430_VERSION_CHECK(4,3,0) || \ + (JSON_HEDLEY_TI_CL6X_VERSION_CHECK(7,2,0) && defined(__TI_GNU_ATTRIBUTE_SUPPORT__)) || \ + JSON_HEDLEY_TI_CL6X_VERSION_CHECK(7,5,0) || \ + JSON_HEDLEY_TI_CL7X_VERSION_CHECK(1,2,0) || \ + JSON_HEDLEY_TI_CLPRU_VERSION_CHECK(2,1,0) + #define JSON_HEDLEY_DIAGNOSTIC_DISABLE_DEPRECATED _Pragma("diag_suppress 1291,1718") +#elif JSON_HEDLEY_SUNPRO_VERSION_CHECK(5,13,0) && !defined(__cplusplus) + #define JSON_HEDLEY_DIAGNOSTIC_DISABLE_DEPRECATED _Pragma("error_messages(off,E_DEPRECATED_ATT,E_DEPRECATED_ATT_MESS)") +#elif JSON_HEDLEY_SUNPRO_VERSION_CHECK(5,13,0) && defined(__cplusplus) + #define JSON_HEDLEY_DIAGNOSTIC_DISABLE_DEPRECATED _Pragma("error_messages(off,symdeprecated,symdeprecated2)") +#elif JSON_HEDLEY_IAR_VERSION_CHECK(8,0,0) + #define JSON_HEDLEY_DIAGNOSTIC_DISABLE_DEPRECATED _Pragma("diag_suppress=Pe1444,Pe1215") +#elif JSON_HEDLEY_PELLES_VERSION_CHECK(2,90,0) + #define JSON_HEDLEY_DIAGNOSTIC_DISABLE_DEPRECATED _Pragma("warn(disable:2241)") +#else + #define JSON_HEDLEY_DIAGNOSTIC_DISABLE_DEPRECATED +#endif + +#if defined(JSON_HEDLEY_DIAGNOSTIC_DISABLE_UNKNOWN_PRAGMAS) + #undef JSON_HEDLEY_DIAGNOSTIC_DISABLE_UNKNOWN_PRAGMAS +#endif +#if JSON_HEDLEY_HAS_WARNING("-Wunknown-pragmas") + #define JSON_HEDLEY_DIAGNOSTIC_DISABLE_UNKNOWN_PRAGMAS _Pragma("clang diagnostic ignored \"-Wunknown-pragmas\"") +#elif JSON_HEDLEY_INTEL_VERSION_CHECK(13,0,0) + #define JSON_HEDLEY_DIAGNOSTIC_DISABLE_UNKNOWN_PRAGMAS _Pragma("warning(disable:161)") +#elif JSON_HEDLEY_INTEL_CL_VERSION_CHECK(2021,1,0) + #define JSON_HEDLEY_DIAGNOSTIC_DISABLE_UNKNOWN_PRAGMAS __pragma(warning(disable:161)) +#elif JSON_HEDLEY_PGI_VERSION_CHECK(17,10,0) + #define JSON_HEDLEY_DIAGNOSTIC_DISABLE_UNKNOWN_PRAGMAS _Pragma("diag_suppress 1675") +#elif JSON_HEDLEY_GCC_VERSION_CHECK(4,3,0) + #define JSON_HEDLEY_DIAGNOSTIC_DISABLE_UNKNOWN_PRAGMAS _Pragma("GCC diagnostic ignored \"-Wunknown-pragmas\"") +#elif JSON_HEDLEY_MSVC_VERSION_CHECK(15,0,0) + #define JSON_HEDLEY_DIAGNOSTIC_DISABLE_UNKNOWN_PRAGMAS __pragma(warning(disable:4068)) +#elif \ + JSON_HEDLEY_TI_VERSION_CHECK(16,9,0) || \ + JSON_HEDLEY_TI_CL6X_VERSION_CHECK(8,0,0) || \ + JSON_HEDLEY_TI_CL7X_VERSION_CHECK(1,2,0) || \ + JSON_HEDLEY_TI_CLPRU_VERSION_CHECK(2,3,0) + #define JSON_HEDLEY_DIAGNOSTIC_DISABLE_UNKNOWN_PRAGMAS _Pragma("diag_suppress 163") +#elif JSON_HEDLEY_TI_CL6X_VERSION_CHECK(8,0,0) + #define JSON_HEDLEY_DIAGNOSTIC_DISABLE_UNKNOWN_PRAGMAS _Pragma("diag_suppress 163") +#elif JSON_HEDLEY_IAR_VERSION_CHECK(8,0,0) + #define JSON_HEDLEY_DIAGNOSTIC_DISABLE_UNKNOWN_PRAGMAS _Pragma("diag_suppress=Pe161") +#elif JSON_HEDLEY_MCST_LCC_VERSION_CHECK(1,25,10) + #define JSON_HEDLEY_DIAGNOSTIC_DISABLE_UNKNOWN_PRAGMAS _Pragma("diag_suppress 161") +#else + #define JSON_HEDLEY_DIAGNOSTIC_DISABLE_UNKNOWN_PRAGMAS +#endif + +#if defined(JSON_HEDLEY_DIAGNOSTIC_DISABLE_UNKNOWN_CPP_ATTRIBUTES) + #undef JSON_HEDLEY_DIAGNOSTIC_DISABLE_UNKNOWN_CPP_ATTRIBUTES +#endif +#if JSON_HEDLEY_HAS_WARNING("-Wunknown-attributes") + #define JSON_HEDLEY_DIAGNOSTIC_DISABLE_UNKNOWN_CPP_ATTRIBUTES _Pragma("clang diagnostic ignored \"-Wunknown-attributes\"") +#elif JSON_HEDLEY_GCC_VERSION_CHECK(4,6,0) + #define JSON_HEDLEY_DIAGNOSTIC_DISABLE_UNKNOWN_CPP_ATTRIBUTES _Pragma("GCC diagnostic ignored \"-Wdeprecated-declarations\"") +#elif JSON_HEDLEY_INTEL_VERSION_CHECK(17,0,0) + #define JSON_HEDLEY_DIAGNOSTIC_DISABLE_UNKNOWN_CPP_ATTRIBUTES _Pragma("warning(disable:1292)") +#elif JSON_HEDLEY_INTEL_CL_VERSION_CHECK(2021,1,0) + #define JSON_HEDLEY_DIAGNOSTIC_DISABLE_UNKNOWN_CPP_ATTRIBUTES __pragma(warning(disable:1292)) +#elif JSON_HEDLEY_MSVC_VERSION_CHECK(19,0,0) + #define JSON_HEDLEY_DIAGNOSTIC_DISABLE_UNKNOWN_CPP_ATTRIBUTES __pragma(warning(disable:5030)) +#elif JSON_HEDLEY_PGI_VERSION_CHECK(20,7,0) + #define JSON_HEDLEY_DIAGNOSTIC_DISABLE_UNKNOWN_CPP_ATTRIBUTES _Pragma("diag_suppress 1097,1098") +#elif JSON_HEDLEY_PGI_VERSION_CHECK(17,10,0) + #define JSON_HEDLEY_DIAGNOSTIC_DISABLE_UNKNOWN_CPP_ATTRIBUTES _Pragma("diag_suppress 1097") +#elif JSON_HEDLEY_SUNPRO_VERSION_CHECK(5,14,0) && defined(__cplusplus) + #define JSON_HEDLEY_DIAGNOSTIC_DISABLE_UNKNOWN_CPP_ATTRIBUTES _Pragma("error_messages(off,attrskipunsup)") +#elif \ + JSON_HEDLEY_TI_VERSION_CHECK(18,1,0) || \ + JSON_HEDLEY_TI_CL6X_VERSION_CHECK(8,3,0) || \ + JSON_HEDLEY_TI_CL7X_VERSION_CHECK(1,2,0) + #define JSON_HEDLEY_DIAGNOSTIC_DISABLE_UNKNOWN_CPP_ATTRIBUTES _Pragma("diag_suppress 1173") +#elif JSON_HEDLEY_IAR_VERSION_CHECK(8,0,0) + #define JSON_HEDLEY_DIAGNOSTIC_DISABLE_UNKNOWN_CPP_ATTRIBUTES _Pragma("diag_suppress=Pe1097") +#elif JSON_HEDLEY_MCST_LCC_VERSION_CHECK(1,25,10) + #define JSON_HEDLEY_DIAGNOSTIC_DISABLE_UNKNOWN_CPP_ATTRIBUTES _Pragma("diag_suppress 1097") +#else + #define JSON_HEDLEY_DIAGNOSTIC_DISABLE_UNKNOWN_CPP_ATTRIBUTES +#endif + +#if defined(JSON_HEDLEY_DIAGNOSTIC_DISABLE_CAST_QUAL) + #undef JSON_HEDLEY_DIAGNOSTIC_DISABLE_CAST_QUAL +#endif +#if JSON_HEDLEY_HAS_WARNING("-Wcast-qual") + #define JSON_HEDLEY_DIAGNOSTIC_DISABLE_CAST_QUAL _Pragma("clang diagnostic ignored \"-Wcast-qual\"") +#elif JSON_HEDLEY_INTEL_VERSION_CHECK(13,0,0) + #define JSON_HEDLEY_DIAGNOSTIC_DISABLE_CAST_QUAL _Pragma("warning(disable:2203 2331)") +#elif JSON_HEDLEY_GCC_VERSION_CHECK(3,0,0) + #define JSON_HEDLEY_DIAGNOSTIC_DISABLE_CAST_QUAL _Pragma("GCC diagnostic ignored \"-Wcast-qual\"") +#else + #define JSON_HEDLEY_DIAGNOSTIC_DISABLE_CAST_QUAL +#endif + +#if defined(JSON_HEDLEY_DIAGNOSTIC_DISABLE_UNUSED_FUNCTION) + #undef JSON_HEDLEY_DIAGNOSTIC_DISABLE_UNUSED_FUNCTION +#endif +#if JSON_HEDLEY_HAS_WARNING("-Wunused-function") + #define JSON_HEDLEY_DIAGNOSTIC_DISABLE_UNUSED_FUNCTION _Pragma("clang diagnostic ignored \"-Wunused-function\"") +#elif JSON_HEDLEY_GCC_VERSION_CHECK(3,4,0) + #define JSON_HEDLEY_DIAGNOSTIC_DISABLE_UNUSED_FUNCTION _Pragma("GCC diagnostic ignored \"-Wunused-function\"") +#elif JSON_HEDLEY_MSVC_VERSION_CHECK(1,0,0) + #define JSON_HEDLEY_DIAGNOSTIC_DISABLE_UNUSED_FUNCTION __pragma(warning(disable:4505)) +#elif JSON_HEDLEY_MCST_LCC_VERSION_CHECK(1,25,10) + #define JSON_HEDLEY_DIAGNOSTIC_DISABLE_UNUSED_FUNCTION _Pragma("diag_suppress 3142") +#else + #define JSON_HEDLEY_DIAGNOSTIC_DISABLE_UNUSED_FUNCTION +#endif + +#if defined(JSON_HEDLEY_DEPRECATED) + #undef JSON_HEDLEY_DEPRECATED +#endif +#if defined(JSON_HEDLEY_DEPRECATED_FOR) + #undef JSON_HEDLEY_DEPRECATED_FOR +#endif +#if \ + JSON_HEDLEY_MSVC_VERSION_CHECK(14,0,0) || \ + JSON_HEDLEY_INTEL_CL_VERSION_CHECK(2021,1,0) + #define JSON_HEDLEY_DEPRECATED(since) __declspec(deprecated("Since " # since)) + #define JSON_HEDLEY_DEPRECATED_FOR(since, replacement) __declspec(deprecated("Since " #since "; use " #replacement)) +#elif \ + (JSON_HEDLEY_HAS_EXTENSION(attribute_deprecated_with_message) && !defined(JSON_HEDLEY_IAR_VERSION)) || \ + JSON_HEDLEY_GCC_VERSION_CHECK(4,5,0) || \ + JSON_HEDLEY_INTEL_VERSION_CHECK(13,0,0) || \ + JSON_HEDLEY_ARM_VERSION_CHECK(5,6,0) || \ + JSON_HEDLEY_SUNPRO_VERSION_CHECK(5,13,0) || \ + JSON_HEDLEY_PGI_VERSION_CHECK(17,10,0) || \ + JSON_HEDLEY_TI_VERSION_CHECK(18,1,0) || \ + JSON_HEDLEY_TI_ARMCL_VERSION_CHECK(18,1,0) || \ + JSON_HEDLEY_TI_CL6X_VERSION_CHECK(8,3,0) || \ + JSON_HEDLEY_TI_CL7X_VERSION_CHECK(1,2,0) || \ + JSON_HEDLEY_TI_CLPRU_VERSION_CHECK(2,3,0) || \ + JSON_HEDLEY_MCST_LCC_VERSION_CHECK(1,25,10) + #define JSON_HEDLEY_DEPRECATED(since) __attribute__((__deprecated__("Since " #since))) + #define JSON_HEDLEY_DEPRECATED_FOR(since, replacement) __attribute__((__deprecated__("Since " #since "; use " #replacement))) +#elif defined(__cplusplus) && (__cplusplus >= 201402L) + #define JSON_HEDLEY_DEPRECATED(since) JSON_HEDLEY_DIAGNOSTIC_DISABLE_CPP98_COMPAT_WRAP_([[deprecated("Since " #since)]]) + #define JSON_HEDLEY_DEPRECATED_FOR(since, replacement) JSON_HEDLEY_DIAGNOSTIC_DISABLE_CPP98_COMPAT_WRAP_([[deprecated("Since " #since "; use " #replacement)]]) +#elif \ + JSON_HEDLEY_HAS_ATTRIBUTE(deprecated) || \ + JSON_HEDLEY_GCC_VERSION_CHECK(3,1,0) || \ + JSON_HEDLEY_ARM_VERSION_CHECK(4,1,0) || \ + JSON_HEDLEY_TI_VERSION_CHECK(15,12,0) || \ + (JSON_HEDLEY_TI_ARMCL_VERSION_CHECK(4,8,0) && defined(__TI_GNU_ATTRIBUTE_SUPPORT__)) || \ + JSON_HEDLEY_TI_ARMCL_VERSION_CHECK(5,2,0) || \ + (JSON_HEDLEY_TI_CL2000_VERSION_CHECK(6,0,0) && defined(__TI_GNU_ATTRIBUTE_SUPPORT__)) || \ + JSON_HEDLEY_TI_CL2000_VERSION_CHECK(6,4,0) || \ + (JSON_HEDLEY_TI_CL430_VERSION_CHECK(4,0,0) && defined(__TI_GNU_ATTRIBUTE_SUPPORT__)) || \ + JSON_HEDLEY_TI_CL430_VERSION_CHECK(4,3,0) || \ + (JSON_HEDLEY_TI_CL6X_VERSION_CHECK(7,2,0) && defined(__TI_GNU_ATTRIBUTE_SUPPORT__)) || \ + JSON_HEDLEY_TI_CL6X_VERSION_CHECK(7,5,0) || \ + JSON_HEDLEY_TI_CL7X_VERSION_CHECK(1,2,0) || \ + JSON_HEDLEY_TI_CLPRU_VERSION_CHECK(2,1,0) || \ + JSON_HEDLEY_MCST_LCC_VERSION_CHECK(1,25,10) || \ + JSON_HEDLEY_IAR_VERSION_CHECK(8,10,0) + #define JSON_HEDLEY_DEPRECATED(since) __attribute__((__deprecated__)) + #define JSON_HEDLEY_DEPRECATED_FOR(since, replacement) __attribute__((__deprecated__)) +#elif \ + JSON_HEDLEY_MSVC_VERSION_CHECK(13,10,0) || \ + JSON_HEDLEY_PELLES_VERSION_CHECK(6,50,0) || \ + JSON_HEDLEY_INTEL_CL_VERSION_CHECK(2021,1,0) + #define JSON_HEDLEY_DEPRECATED(since) __declspec(deprecated) + #define JSON_HEDLEY_DEPRECATED_FOR(since, replacement) __declspec(deprecated) +#elif JSON_HEDLEY_IAR_VERSION_CHECK(8,0,0) + #define JSON_HEDLEY_DEPRECATED(since) _Pragma("deprecated") + #define JSON_HEDLEY_DEPRECATED_FOR(since, replacement) _Pragma("deprecated") +#else + #define JSON_HEDLEY_DEPRECATED(since) + #define JSON_HEDLEY_DEPRECATED_FOR(since, replacement) +#endif + +#if defined(JSON_HEDLEY_UNAVAILABLE) + #undef JSON_HEDLEY_UNAVAILABLE +#endif +#if \ + JSON_HEDLEY_HAS_ATTRIBUTE(warning) || \ + JSON_HEDLEY_GCC_VERSION_CHECK(4,3,0) || \ + JSON_HEDLEY_INTEL_VERSION_CHECK(13,0,0) || \ + JSON_HEDLEY_MCST_LCC_VERSION_CHECK(1,25,10) + #define JSON_HEDLEY_UNAVAILABLE(available_since) __attribute__((__warning__("Not available until " #available_since))) +#else + #define JSON_HEDLEY_UNAVAILABLE(available_since) +#endif + +#if defined(JSON_HEDLEY_WARN_UNUSED_RESULT) + #undef JSON_HEDLEY_WARN_UNUSED_RESULT +#endif +#if defined(JSON_HEDLEY_WARN_UNUSED_RESULT_MSG) + #undef JSON_HEDLEY_WARN_UNUSED_RESULT_MSG +#endif +#if \ + JSON_HEDLEY_HAS_ATTRIBUTE(warn_unused_result) || \ + JSON_HEDLEY_GCC_VERSION_CHECK(3,4,0) || \ + JSON_HEDLEY_INTEL_VERSION_CHECK(13,0,0) || \ + JSON_HEDLEY_TI_VERSION_CHECK(15,12,0) || \ + (JSON_HEDLEY_TI_ARMCL_VERSION_CHECK(4,8,0) && defined(__TI_GNU_ATTRIBUTE_SUPPORT__)) || \ + JSON_HEDLEY_TI_ARMCL_VERSION_CHECK(5,2,0) || \ + (JSON_HEDLEY_TI_CL2000_VERSION_CHECK(6,0,0) && defined(__TI_GNU_ATTRIBUTE_SUPPORT__)) || \ + JSON_HEDLEY_TI_CL2000_VERSION_CHECK(6,4,0) || \ + (JSON_HEDLEY_TI_CL430_VERSION_CHECK(4,0,0) && defined(__TI_GNU_ATTRIBUTE_SUPPORT__)) || \ + JSON_HEDLEY_TI_CL430_VERSION_CHECK(4,3,0) || \ + (JSON_HEDLEY_TI_CL6X_VERSION_CHECK(7,2,0) && defined(__TI_GNU_ATTRIBUTE_SUPPORT__)) || \ + JSON_HEDLEY_TI_CL6X_VERSION_CHECK(7,5,0) || \ + JSON_HEDLEY_TI_CL7X_VERSION_CHECK(1,2,0) || \ + JSON_HEDLEY_TI_CLPRU_VERSION_CHECK(2,1,0) || \ + (JSON_HEDLEY_SUNPRO_VERSION_CHECK(5,15,0) && defined(__cplusplus)) || \ + JSON_HEDLEY_PGI_VERSION_CHECK(17,10,0) || \ + JSON_HEDLEY_MCST_LCC_VERSION_CHECK(1,25,10) + #define JSON_HEDLEY_WARN_UNUSED_RESULT __attribute__((__warn_unused_result__)) + #define JSON_HEDLEY_WARN_UNUSED_RESULT_MSG(msg) __attribute__((__warn_unused_result__)) +#elif (JSON_HEDLEY_HAS_CPP_ATTRIBUTE(nodiscard) >= 201907L) + #define JSON_HEDLEY_WARN_UNUSED_RESULT JSON_HEDLEY_DIAGNOSTIC_DISABLE_CPP98_COMPAT_WRAP_([[nodiscard]]) + #define JSON_HEDLEY_WARN_UNUSED_RESULT_MSG(msg) JSON_HEDLEY_DIAGNOSTIC_DISABLE_CPP98_COMPAT_WRAP_([[nodiscard(msg)]]) +#elif JSON_HEDLEY_HAS_CPP_ATTRIBUTE(nodiscard) + #define JSON_HEDLEY_WARN_UNUSED_RESULT JSON_HEDLEY_DIAGNOSTIC_DISABLE_CPP98_COMPAT_WRAP_([[nodiscard]]) + #define JSON_HEDLEY_WARN_UNUSED_RESULT_MSG(msg) JSON_HEDLEY_DIAGNOSTIC_DISABLE_CPP98_COMPAT_WRAP_([[nodiscard]]) +#elif defined(_Check_return_) /* SAL */ + #define JSON_HEDLEY_WARN_UNUSED_RESULT _Check_return_ + #define JSON_HEDLEY_WARN_UNUSED_RESULT_MSG(msg) _Check_return_ +#else + #define JSON_HEDLEY_WARN_UNUSED_RESULT + #define JSON_HEDLEY_WARN_UNUSED_RESULT_MSG(msg) +#endif + +#if defined(JSON_HEDLEY_SENTINEL) + #undef JSON_HEDLEY_SENTINEL +#endif +#if \ + JSON_HEDLEY_HAS_ATTRIBUTE(sentinel) || \ + JSON_HEDLEY_GCC_VERSION_CHECK(4,0,0) || \ + JSON_HEDLEY_INTEL_VERSION_CHECK(13,0,0) || \ + JSON_HEDLEY_ARM_VERSION_CHECK(5,4,0) || \ + JSON_HEDLEY_MCST_LCC_VERSION_CHECK(1,25,10) + #define JSON_HEDLEY_SENTINEL(position) __attribute__((__sentinel__(position))) +#else + #define JSON_HEDLEY_SENTINEL(position) +#endif + +#if defined(JSON_HEDLEY_NO_RETURN) + #undef JSON_HEDLEY_NO_RETURN +#endif +#if JSON_HEDLEY_IAR_VERSION_CHECK(8,0,0) + #define JSON_HEDLEY_NO_RETURN __noreturn +#elif \ + JSON_HEDLEY_INTEL_VERSION_CHECK(13,0,0) || \ + JSON_HEDLEY_MCST_LCC_VERSION_CHECK(1,25,10) + #define JSON_HEDLEY_NO_RETURN __attribute__((__noreturn__)) +#elif defined(__STDC_VERSION__) && __STDC_VERSION__ >= 201112L + #define JSON_HEDLEY_NO_RETURN _Noreturn +#elif defined(__cplusplus) && (__cplusplus >= 201103L) + #define JSON_HEDLEY_NO_RETURN JSON_HEDLEY_DIAGNOSTIC_DISABLE_CPP98_COMPAT_WRAP_([[noreturn]]) +#elif \ + JSON_HEDLEY_HAS_ATTRIBUTE(noreturn) || \ + JSON_HEDLEY_GCC_VERSION_CHECK(3,2,0) || \ + JSON_HEDLEY_SUNPRO_VERSION_CHECK(5,11,0) || \ + JSON_HEDLEY_ARM_VERSION_CHECK(4,1,0) || \ + JSON_HEDLEY_IBM_VERSION_CHECK(10,1,0) || \ + JSON_HEDLEY_TI_VERSION_CHECK(15,12,0) || \ + (JSON_HEDLEY_TI_ARMCL_VERSION_CHECK(4,8,0) && defined(__TI_GNU_ATTRIBUTE_SUPPORT__)) || \ + JSON_HEDLEY_TI_ARMCL_VERSION_CHECK(5,2,0) || \ + (JSON_HEDLEY_TI_CL2000_VERSION_CHECK(6,0,0) && defined(__TI_GNU_ATTRIBUTE_SUPPORT__)) || \ + JSON_HEDLEY_TI_CL2000_VERSION_CHECK(6,4,0) || \ + (JSON_HEDLEY_TI_CL430_VERSION_CHECK(4,0,0) && defined(__TI_GNU_ATTRIBUTE_SUPPORT__)) || \ + JSON_HEDLEY_TI_CL430_VERSION_CHECK(4,3,0) || \ + (JSON_HEDLEY_TI_CL6X_VERSION_CHECK(7,2,0) && defined(__TI_GNU_ATTRIBUTE_SUPPORT__)) || \ + JSON_HEDLEY_TI_CL6X_VERSION_CHECK(7,5,0) || \ + JSON_HEDLEY_TI_CL7X_VERSION_CHECK(1,2,0) || \ + JSON_HEDLEY_TI_CLPRU_VERSION_CHECK(2,1,0) || \ + JSON_HEDLEY_IAR_VERSION_CHECK(8,10,0) + #define JSON_HEDLEY_NO_RETURN __attribute__((__noreturn__)) +#elif JSON_HEDLEY_SUNPRO_VERSION_CHECK(5,10,0) + #define JSON_HEDLEY_NO_RETURN _Pragma("does_not_return") +#elif \ + JSON_HEDLEY_MSVC_VERSION_CHECK(13,10,0) || \ + JSON_HEDLEY_INTEL_CL_VERSION_CHECK(2021,1,0) + #define JSON_HEDLEY_NO_RETURN __declspec(noreturn) +#elif JSON_HEDLEY_TI_CL6X_VERSION_CHECK(6,0,0) && defined(__cplusplus) + #define JSON_HEDLEY_NO_RETURN _Pragma("FUNC_NEVER_RETURNS;") +#elif JSON_HEDLEY_COMPCERT_VERSION_CHECK(3,2,0) + #define JSON_HEDLEY_NO_RETURN __attribute((noreturn)) +#elif JSON_HEDLEY_PELLES_VERSION_CHECK(9,0,0) + #define JSON_HEDLEY_NO_RETURN __declspec(noreturn) +#else + #define JSON_HEDLEY_NO_RETURN +#endif + +#if defined(JSON_HEDLEY_NO_ESCAPE) + #undef JSON_HEDLEY_NO_ESCAPE +#endif +#if JSON_HEDLEY_HAS_ATTRIBUTE(noescape) + #define JSON_HEDLEY_NO_ESCAPE __attribute__((__noescape__)) +#else + #define JSON_HEDLEY_NO_ESCAPE +#endif + +#if defined(JSON_HEDLEY_UNREACHABLE) + #undef JSON_HEDLEY_UNREACHABLE +#endif +#if defined(JSON_HEDLEY_UNREACHABLE_RETURN) + #undef JSON_HEDLEY_UNREACHABLE_RETURN +#endif +#if defined(JSON_HEDLEY_ASSUME) + #undef JSON_HEDLEY_ASSUME +#endif +#if \ + JSON_HEDLEY_MSVC_VERSION_CHECK(13,10,0) || \ + JSON_HEDLEY_INTEL_VERSION_CHECK(13,0,0) || \ + JSON_HEDLEY_INTEL_CL_VERSION_CHECK(2021,1,0) + #define JSON_HEDLEY_ASSUME(expr) __assume(expr) +#elif JSON_HEDLEY_HAS_BUILTIN(__builtin_assume) + #define JSON_HEDLEY_ASSUME(expr) __builtin_assume(expr) +#elif \ + JSON_HEDLEY_TI_CL2000_VERSION_CHECK(6,2,0) || \ + JSON_HEDLEY_TI_CL6X_VERSION_CHECK(4,0,0) + #if defined(__cplusplus) + #define JSON_HEDLEY_ASSUME(expr) std::_nassert(expr) + #else + #define JSON_HEDLEY_ASSUME(expr) _nassert(expr) + #endif +#endif +#if \ + (JSON_HEDLEY_HAS_BUILTIN(__builtin_unreachable) && (!defined(JSON_HEDLEY_ARM_VERSION))) || \ + JSON_HEDLEY_GCC_VERSION_CHECK(4,5,0) || \ + JSON_HEDLEY_PGI_VERSION_CHECK(18,10,0) || \ + JSON_HEDLEY_INTEL_VERSION_CHECK(13,0,0) || \ + JSON_HEDLEY_IBM_VERSION_CHECK(13,1,5) || \ + JSON_HEDLEY_CRAY_VERSION_CHECK(10,0,0) || \ + JSON_HEDLEY_MCST_LCC_VERSION_CHECK(1,25,10) + #define JSON_HEDLEY_UNREACHABLE() __builtin_unreachable() +#elif defined(JSON_HEDLEY_ASSUME) + #define JSON_HEDLEY_UNREACHABLE() JSON_HEDLEY_ASSUME(0) +#endif +#if !defined(JSON_HEDLEY_ASSUME) + #if defined(JSON_HEDLEY_UNREACHABLE) + #define JSON_HEDLEY_ASSUME(expr) JSON_HEDLEY_STATIC_CAST(void, ((expr) ? 1 : (JSON_HEDLEY_UNREACHABLE(), 1))) + #else + #define JSON_HEDLEY_ASSUME(expr) JSON_HEDLEY_STATIC_CAST(void, expr) + #endif +#endif +#if defined(JSON_HEDLEY_UNREACHABLE) + #if \ + JSON_HEDLEY_TI_CL2000_VERSION_CHECK(6,2,0) || \ + JSON_HEDLEY_TI_CL6X_VERSION_CHECK(4,0,0) + #define JSON_HEDLEY_UNREACHABLE_RETURN(value) return (JSON_HEDLEY_STATIC_CAST(void, JSON_HEDLEY_ASSUME(0)), (value)) + #else + #define JSON_HEDLEY_UNREACHABLE_RETURN(value) JSON_HEDLEY_UNREACHABLE() + #endif +#else + #define JSON_HEDLEY_UNREACHABLE_RETURN(value) return (value) +#endif +#if !defined(JSON_HEDLEY_UNREACHABLE) + #define JSON_HEDLEY_UNREACHABLE() JSON_HEDLEY_ASSUME(0) +#endif + +JSON_HEDLEY_DIAGNOSTIC_PUSH +#if JSON_HEDLEY_HAS_WARNING("-Wpedantic") + #pragma clang diagnostic ignored "-Wpedantic" +#endif +#if JSON_HEDLEY_HAS_WARNING("-Wc++98-compat-pedantic") && defined(__cplusplus) + #pragma clang diagnostic ignored "-Wc++98-compat-pedantic" +#endif +#if JSON_HEDLEY_GCC_HAS_WARNING("-Wvariadic-macros",4,0,0) + #if defined(__clang__) + #pragma clang diagnostic ignored "-Wvariadic-macros" + #elif defined(JSON_HEDLEY_GCC_VERSION) + #pragma GCC diagnostic ignored "-Wvariadic-macros" + #endif +#endif +#if defined(JSON_HEDLEY_NON_NULL) + #undef JSON_HEDLEY_NON_NULL +#endif +#if \ + JSON_HEDLEY_HAS_ATTRIBUTE(nonnull) || \ + JSON_HEDLEY_GCC_VERSION_CHECK(3,3,0) || \ + JSON_HEDLEY_INTEL_VERSION_CHECK(13,0,0) || \ + JSON_HEDLEY_ARM_VERSION_CHECK(4,1,0) + #define JSON_HEDLEY_NON_NULL(...) __attribute__((__nonnull__(__VA_ARGS__))) +#else + #define JSON_HEDLEY_NON_NULL(...) +#endif +JSON_HEDLEY_DIAGNOSTIC_POP + +#if defined(JSON_HEDLEY_PRINTF_FORMAT) + #undef JSON_HEDLEY_PRINTF_FORMAT +#endif +#if defined(__MINGW32__) && JSON_HEDLEY_GCC_HAS_ATTRIBUTE(format,4,4,0) && !defined(__USE_MINGW_ANSI_STDIO) + #define JSON_HEDLEY_PRINTF_FORMAT(string_idx,first_to_check) __attribute__((__format__(ms_printf, string_idx, first_to_check))) +#elif defined(__MINGW32__) && JSON_HEDLEY_GCC_HAS_ATTRIBUTE(format,4,4,0) && defined(__USE_MINGW_ANSI_STDIO) + #define JSON_HEDLEY_PRINTF_FORMAT(string_idx,first_to_check) __attribute__((__format__(gnu_printf, string_idx, first_to_check))) +#elif \ + JSON_HEDLEY_HAS_ATTRIBUTE(format) || \ + JSON_HEDLEY_GCC_VERSION_CHECK(3,1,0) || \ + JSON_HEDLEY_INTEL_VERSION_CHECK(13,0,0) || \ + JSON_HEDLEY_ARM_VERSION_CHECK(5,6,0) || \ + JSON_HEDLEY_IBM_VERSION_CHECK(10,1,0) || \ + JSON_HEDLEY_TI_VERSION_CHECK(15,12,0) || \ + (JSON_HEDLEY_TI_ARMCL_VERSION_CHECK(4,8,0) && defined(__TI_GNU_ATTRIBUTE_SUPPORT__)) || \ + JSON_HEDLEY_TI_ARMCL_VERSION_CHECK(5,2,0) || \ + (JSON_HEDLEY_TI_CL2000_VERSION_CHECK(6,0,0) && defined(__TI_GNU_ATTRIBUTE_SUPPORT__)) || \ + JSON_HEDLEY_TI_CL2000_VERSION_CHECK(6,4,0) || \ + (JSON_HEDLEY_TI_CL430_VERSION_CHECK(4,0,0) && defined(__TI_GNU_ATTRIBUTE_SUPPORT__)) || \ + JSON_HEDLEY_TI_CL430_VERSION_CHECK(4,3,0) || \ + (JSON_HEDLEY_TI_CL6X_VERSION_CHECK(7,2,0) && defined(__TI_GNU_ATTRIBUTE_SUPPORT__)) || \ + JSON_HEDLEY_TI_CL6X_VERSION_CHECK(7,5,0) || \ + JSON_HEDLEY_TI_CL7X_VERSION_CHECK(1,2,0) || \ + JSON_HEDLEY_TI_CLPRU_VERSION_CHECK(2,1,0) || \ + JSON_HEDLEY_MCST_LCC_VERSION_CHECK(1,25,10) + #define JSON_HEDLEY_PRINTF_FORMAT(string_idx,first_to_check) __attribute__((__format__(__printf__, string_idx, first_to_check))) +#elif JSON_HEDLEY_PELLES_VERSION_CHECK(6,0,0) + #define JSON_HEDLEY_PRINTF_FORMAT(string_idx,first_to_check) __declspec(vaformat(printf,string_idx,first_to_check)) +#else + #define JSON_HEDLEY_PRINTF_FORMAT(string_idx,first_to_check) +#endif + +#if defined(JSON_HEDLEY_CONSTEXPR) + #undef JSON_HEDLEY_CONSTEXPR +#endif +#if defined(__cplusplus) + #if __cplusplus >= 201103L + #define JSON_HEDLEY_CONSTEXPR JSON_HEDLEY_DIAGNOSTIC_DISABLE_CPP98_COMPAT_WRAP_(constexpr) + #endif +#endif +#if !defined(JSON_HEDLEY_CONSTEXPR) + #define JSON_HEDLEY_CONSTEXPR +#endif + +#if defined(JSON_HEDLEY_PREDICT) + #undef JSON_HEDLEY_PREDICT +#endif +#if defined(JSON_HEDLEY_LIKELY) + #undef JSON_HEDLEY_LIKELY +#endif +#if defined(JSON_HEDLEY_UNLIKELY) + #undef JSON_HEDLEY_UNLIKELY +#endif +#if defined(JSON_HEDLEY_UNPREDICTABLE) + #undef JSON_HEDLEY_UNPREDICTABLE +#endif +#if JSON_HEDLEY_HAS_BUILTIN(__builtin_unpredictable) + #define JSON_HEDLEY_UNPREDICTABLE(expr) __builtin_unpredictable((expr)) +#endif +#if \ + (JSON_HEDLEY_HAS_BUILTIN(__builtin_expect_with_probability) && !defined(JSON_HEDLEY_PGI_VERSION)) || \ + JSON_HEDLEY_GCC_VERSION_CHECK(9,0,0) || \ + JSON_HEDLEY_MCST_LCC_VERSION_CHECK(1,25,10) +# define JSON_HEDLEY_PREDICT(expr, value, probability) __builtin_expect_with_probability( (expr), (value), (probability)) +# define JSON_HEDLEY_PREDICT_TRUE(expr, probability) __builtin_expect_with_probability(!!(expr), 1 , (probability)) +# define JSON_HEDLEY_PREDICT_FALSE(expr, probability) __builtin_expect_with_probability(!!(expr), 0 , (probability)) +# define JSON_HEDLEY_LIKELY(expr) __builtin_expect (!!(expr), 1 ) +# define JSON_HEDLEY_UNLIKELY(expr) __builtin_expect (!!(expr), 0 ) +#elif \ + (JSON_HEDLEY_HAS_BUILTIN(__builtin_expect) && !defined(JSON_HEDLEY_INTEL_CL_VERSION)) || \ + JSON_HEDLEY_GCC_VERSION_CHECK(3,0,0) || \ + JSON_HEDLEY_INTEL_VERSION_CHECK(13,0,0) || \ + (JSON_HEDLEY_SUNPRO_VERSION_CHECK(5,15,0) && defined(__cplusplus)) || \ + JSON_HEDLEY_ARM_VERSION_CHECK(4,1,0) || \ + JSON_HEDLEY_IBM_VERSION_CHECK(10,1,0) || \ + JSON_HEDLEY_TI_VERSION_CHECK(15,12,0) || \ + JSON_HEDLEY_TI_ARMCL_VERSION_CHECK(4,7,0) || \ + JSON_HEDLEY_TI_CL430_VERSION_CHECK(3,1,0) || \ + JSON_HEDLEY_TI_CL2000_VERSION_CHECK(6,1,0) || \ + JSON_HEDLEY_TI_CL6X_VERSION_CHECK(6,1,0) || \ + JSON_HEDLEY_TI_CL7X_VERSION_CHECK(1,2,0) || \ + JSON_HEDLEY_TI_CLPRU_VERSION_CHECK(2,1,0) || \ + JSON_HEDLEY_TINYC_VERSION_CHECK(0,9,27) || \ + JSON_HEDLEY_CRAY_VERSION_CHECK(8,1,0) || \ + JSON_HEDLEY_MCST_LCC_VERSION_CHECK(1,25,10) +# define JSON_HEDLEY_PREDICT(expr, expected, probability) \ + (((probability) >= 0.9) ? __builtin_expect((expr), (expected)) : (JSON_HEDLEY_STATIC_CAST(void, expected), (expr))) +# define JSON_HEDLEY_PREDICT_TRUE(expr, probability) \ + (__extension__ ({ \ + double hedley_probability_ = (probability); \ + ((hedley_probability_ >= 0.9) ? __builtin_expect(!!(expr), 1) : ((hedley_probability_ <= 0.1) ? __builtin_expect(!!(expr), 0) : !!(expr))); \ + })) +# define JSON_HEDLEY_PREDICT_FALSE(expr, probability) \ + (__extension__ ({ \ + double hedley_probability_ = (probability); \ + ((hedley_probability_ >= 0.9) ? __builtin_expect(!!(expr), 0) : ((hedley_probability_ <= 0.1) ? __builtin_expect(!!(expr), 1) : !!(expr))); \ + })) +# define JSON_HEDLEY_LIKELY(expr) __builtin_expect(!!(expr), 1) +# define JSON_HEDLEY_UNLIKELY(expr) __builtin_expect(!!(expr), 0) +#else +# define JSON_HEDLEY_PREDICT(expr, expected, probability) (JSON_HEDLEY_STATIC_CAST(void, expected), (expr)) +# define JSON_HEDLEY_PREDICT_TRUE(expr, probability) (!!(expr)) +# define JSON_HEDLEY_PREDICT_FALSE(expr, probability) (!!(expr)) +# define JSON_HEDLEY_LIKELY(expr) (!!(expr)) +# define JSON_HEDLEY_UNLIKELY(expr) (!!(expr)) +#endif +#if !defined(JSON_HEDLEY_UNPREDICTABLE) + #define JSON_HEDLEY_UNPREDICTABLE(expr) JSON_HEDLEY_PREDICT(expr, 1, 0.5) +#endif + +#if defined(JSON_HEDLEY_MALLOC) + #undef JSON_HEDLEY_MALLOC +#endif +#if \ + JSON_HEDLEY_HAS_ATTRIBUTE(malloc) || \ + JSON_HEDLEY_GCC_VERSION_CHECK(3,1,0) || \ + JSON_HEDLEY_INTEL_VERSION_CHECK(13,0,0) || \ + JSON_HEDLEY_SUNPRO_VERSION_CHECK(5,11,0) || \ + JSON_HEDLEY_ARM_VERSION_CHECK(4,1,0) || \ + JSON_HEDLEY_IBM_VERSION_CHECK(12,1,0) || \ + JSON_HEDLEY_TI_VERSION_CHECK(15,12,0) || \ + (JSON_HEDLEY_TI_ARMCL_VERSION_CHECK(4,8,0) && defined(__TI_GNU_ATTRIBUTE_SUPPORT__)) || \ + JSON_HEDLEY_TI_ARMCL_VERSION_CHECK(5,2,0) || \ + (JSON_HEDLEY_TI_CL2000_VERSION_CHECK(6,0,0) && defined(__TI_GNU_ATTRIBUTE_SUPPORT__)) || \ + JSON_HEDLEY_TI_CL2000_VERSION_CHECK(6,4,0) || \ + (JSON_HEDLEY_TI_CL430_VERSION_CHECK(4,0,0) && defined(__TI_GNU_ATTRIBUTE_SUPPORT__)) || \ + JSON_HEDLEY_TI_CL430_VERSION_CHECK(4,3,0) || \ + (JSON_HEDLEY_TI_CL6X_VERSION_CHECK(7,2,0) && defined(__TI_GNU_ATTRIBUTE_SUPPORT__)) || \ + JSON_HEDLEY_TI_CL6X_VERSION_CHECK(7,5,0) || \ + JSON_HEDLEY_TI_CL7X_VERSION_CHECK(1,2,0) || \ + JSON_HEDLEY_TI_CLPRU_VERSION_CHECK(2,1,0) || \ + JSON_HEDLEY_MCST_LCC_VERSION_CHECK(1,25,10) + #define JSON_HEDLEY_MALLOC __attribute__((__malloc__)) +#elif JSON_HEDLEY_SUNPRO_VERSION_CHECK(5,10,0) + #define JSON_HEDLEY_MALLOC _Pragma("returns_new_memory") +#elif \ + JSON_HEDLEY_MSVC_VERSION_CHECK(14,0,0) || \ + JSON_HEDLEY_INTEL_CL_VERSION_CHECK(2021,1,0) + #define JSON_HEDLEY_MALLOC __declspec(restrict) +#else + #define JSON_HEDLEY_MALLOC +#endif + +#if defined(JSON_HEDLEY_PURE) + #undef JSON_HEDLEY_PURE +#endif +#if \ + JSON_HEDLEY_HAS_ATTRIBUTE(pure) || \ + JSON_HEDLEY_GCC_VERSION_CHECK(2,96,0) || \ + JSON_HEDLEY_INTEL_VERSION_CHECK(13,0,0) || \ + JSON_HEDLEY_SUNPRO_VERSION_CHECK(5,11,0) || \ + JSON_HEDLEY_ARM_VERSION_CHECK(4,1,0) || \ + JSON_HEDLEY_IBM_VERSION_CHECK(10,1,0) || \ + JSON_HEDLEY_TI_VERSION_CHECK(15,12,0) || \ + (JSON_HEDLEY_TI_ARMCL_VERSION_CHECK(4,8,0) && defined(__TI_GNU_ATTRIBUTE_SUPPORT__)) || \ + JSON_HEDLEY_TI_ARMCL_VERSION_CHECK(5,2,0) || \ + (JSON_HEDLEY_TI_CL2000_VERSION_CHECK(6,0,0) && defined(__TI_GNU_ATTRIBUTE_SUPPORT__)) || \ + JSON_HEDLEY_TI_CL2000_VERSION_CHECK(6,4,0) || \ + (JSON_HEDLEY_TI_CL430_VERSION_CHECK(4,0,0) && defined(__TI_GNU_ATTRIBUTE_SUPPORT__)) || \ + JSON_HEDLEY_TI_CL430_VERSION_CHECK(4,3,0) || \ + (JSON_HEDLEY_TI_CL6X_VERSION_CHECK(7,2,0) && defined(__TI_GNU_ATTRIBUTE_SUPPORT__)) || \ + JSON_HEDLEY_TI_CL6X_VERSION_CHECK(7,5,0) || \ + JSON_HEDLEY_TI_CL7X_VERSION_CHECK(1,2,0) || \ + JSON_HEDLEY_TI_CLPRU_VERSION_CHECK(2,1,0) || \ + JSON_HEDLEY_PGI_VERSION_CHECK(17,10,0) || \ + JSON_HEDLEY_MCST_LCC_VERSION_CHECK(1,25,10) +# define JSON_HEDLEY_PURE __attribute__((__pure__)) +#elif JSON_HEDLEY_SUNPRO_VERSION_CHECK(5,10,0) +# define JSON_HEDLEY_PURE _Pragma("does_not_write_global_data") +#elif defined(__cplusplus) && \ + ( \ + JSON_HEDLEY_TI_CL430_VERSION_CHECK(2,0,1) || \ + JSON_HEDLEY_TI_CL6X_VERSION_CHECK(4,0,0) || \ + JSON_HEDLEY_TI_CL7X_VERSION_CHECK(1,2,0) \ + ) +# define JSON_HEDLEY_PURE _Pragma("FUNC_IS_PURE;") +#else +# define JSON_HEDLEY_PURE +#endif + +#if defined(JSON_HEDLEY_CONST) + #undef JSON_HEDLEY_CONST +#endif +#if \ + JSON_HEDLEY_HAS_ATTRIBUTE(const) || \ + JSON_HEDLEY_GCC_VERSION_CHECK(2,5,0) || \ + JSON_HEDLEY_INTEL_VERSION_CHECK(13,0,0) || \ + JSON_HEDLEY_SUNPRO_VERSION_CHECK(5,11,0) || \ + JSON_HEDLEY_ARM_VERSION_CHECK(4,1,0) || \ + JSON_HEDLEY_IBM_VERSION_CHECK(10,1,0) || \ + JSON_HEDLEY_TI_VERSION_CHECK(15,12,0) || \ + (JSON_HEDLEY_TI_ARMCL_VERSION_CHECK(4,8,0) && defined(__TI_GNU_ATTRIBUTE_SUPPORT__)) || \ + JSON_HEDLEY_TI_ARMCL_VERSION_CHECK(5,2,0) || \ + (JSON_HEDLEY_TI_CL2000_VERSION_CHECK(6,0,0) && defined(__TI_GNU_ATTRIBUTE_SUPPORT__)) || \ + JSON_HEDLEY_TI_CL2000_VERSION_CHECK(6,4,0) || \ + (JSON_HEDLEY_TI_CL430_VERSION_CHECK(4,0,0) && defined(__TI_GNU_ATTRIBUTE_SUPPORT__)) || \ + JSON_HEDLEY_TI_CL430_VERSION_CHECK(4,3,0) || \ + (JSON_HEDLEY_TI_CL6X_VERSION_CHECK(7,2,0) && defined(__TI_GNU_ATTRIBUTE_SUPPORT__)) || \ + JSON_HEDLEY_TI_CL6X_VERSION_CHECK(7,5,0) || \ + JSON_HEDLEY_TI_CL7X_VERSION_CHECK(1,2,0) || \ + JSON_HEDLEY_TI_CLPRU_VERSION_CHECK(2,1,0) || \ + JSON_HEDLEY_PGI_VERSION_CHECK(17,10,0) || \ + JSON_HEDLEY_MCST_LCC_VERSION_CHECK(1,25,10) + #define JSON_HEDLEY_CONST __attribute__((__const__)) +#elif \ + JSON_HEDLEY_SUNPRO_VERSION_CHECK(5,10,0) + #define JSON_HEDLEY_CONST _Pragma("no_side_effect") +#else + #define JSON_HEDLEY_CONST JSON_HEDLEY_PURE +#endif + +#if defined(JSON_HEDLEY_RESTRICT) + #undef JSON_HEDLEY_RESTRICT +#endif +#if defined(__STDC_VERSION__) && (__STDC_VERSION__ >= 199901L) && !defined(__cplusplus) + #define JSON_HEDLEY_RESTRICT restrict +#elif \ + JSON_HEDLEY_GCC_VERSION_CHECK(3,1,0) || \ + JSON_HEDLEY_MSVC_VERSION_CHECK(14,0,0) || \ + JSON_HEDLEY_INTEL_VERSION_CHECK(13,0,0) || \ + JSON_HEDLEY_INTEL_CL_VERSION_CHECK(2021,1,0) || \ + JSON_HEDLEY_ARM_VERSION_CHECK(4,1,0) || \ + JSON_HEDLEY_IBM_VERSION_CHECK(10,1,0) || \ + JSON_HEDLEY_PGI_VERSION_CHECK(17,10,0) || \ + JSON_HEDLEY_TI_CL430_VERSION_CHECK(4,3,0) || \ + JSON_HEDLEY_TI_CL2000_VERSION_CHECK(6,2,4) || \ + JSON_HEDLEY_TI_CL6X_VERSION_CHECK(8,1,0) || \ + JSON_HEDLEY_TI_CL7X_VERSION_CHECK(1,2,0) || \ + (JSON_HEDLEY_SUNPRO_VERSION_CHECK(5,14,0) && defined(__cplusplus)) || \ + JSON_HEDLEY_IAR_VERSION_CHECK(8,0,0) || \ + defined(__clang__) || \ + JSON_HEDLEY_MCST_LCC_VERSION_CHECK(1,25,10) + #define JSON_HEDLEY_RESTRICT __restrict +#elif JSON_HEDLEY_SUNPRO_VERSION_CHECK(5,3,0) && !defined(__cplusplus) + #define JSON_HEDLEY_RESTRICT _Restrict +#else + #define JSON_HEDLEY_RESTRICT +#endif + +#if defined(JSON_HEDLEY_INLINE) + #undef JSON_HEDLEY_INLINE +#endif +#if \ + (defined(__STDC_VERSION__) && (__STDC_VERSION__ >= 199901L)) || \ + (defined(__cplusplus) && (__cplusplus >= 199711L)) + #define JSON_HEDLEY_INLINE inline +#elif \ + defined(JSON_HEDLEY_GCC_VERSION) || \ + JSON_HEDLEY_ARM_VERSION_CHECK(6,2,0) + #define JSON_HEDLEY_INLINE __inline__ +#elif \ + JSON_HEDLEY_MSVC_VERSION_CHECK(12,0,0) || \ + JSON_HEDLEY_INTEL_CL_VERSION_CHECK(2021,1,0) || \ + JSON_HEDLEY_ARM_VERSION_CHECK(4,1,0) || \ + JSON_HEDLEY_TI_ARMCL_VERSION_CHECK(5,1,0) || \ + JSON_HEDLEY_TI_CL430_VERSION_CHECK(3,1,0) || \ + JSON_HEDLEY_TI_CL2000_VERSION_CHECK(6,2,0) || \ + JSON_HEDLEY_TI_CL6X_VERSION_CHECK(8,0,0) || \ + JSON_HEDLEY_TI_CL7X_VERSION_CHECK(1,2,0) || \ + JSON_HEDLEY_TI_CLPRU_VERSION_CHECK(2,1,0) || \ + JSON_HEDLEY_MCST_LCC_VERSION_CHECK(1,25,10) + #define JSON_HEDLEY_INLINE __inline +#else + #define JSON_HEDLEY_INLINE +#endif + +#if defined(JSON_HEDLEY_ALWAYS_INLINE) + #undef JSON_HEDLEY_ALWAYS_INLINE +#endif +#if \ + JSON_HEDLEY_HAS_ATTRIBUTE(always_inline) || \ + JSON_HEDLEY_GCC_VERSION_CHECK(4,0,0) || \ + JSON_HEDLEY_INTEL_VERSION_CHECK(13,0,0) || \ + JSON_HEDLEY_SUNPRO_VERSION_CHECK(5,11,0) || \ + JSON_HEDLEY_ARM_VERSION_CHECK(4,1,0) || \ + JSON_HEDLEY_IBM_VERSION_CHECK(10,1,0) || \ + JSON_HEDLEY_TI_VERSION_CHECK(15,12,0) || \ + (JSON_HEDLEY_TI_ARMCL_VERSION_CHECK(4,8,0) && defined(__TI_GNU_ATTRIBUTE_SUPPORT__)) || \ + JSON_HEDLEY_TI_ARMCL_VERSION_CHECK(5,2,0) || \ + (JSON_HEDLEY_TI_CL2000_VERSION_CHECK(6,0,0) && defined(__TI_GNU_ATTRIBUTE_SUPPORT__)) || \ + JSON_HEDLEY_TI_CL2000_VERSION_CHECK(6,4,0) || \ + (JSON_HEDLEY_TI_CL430_VERSION_CHECK(4,0,0) && defined(__TI_GNU_ATTRIBUTE_SUPPORT__)) || \ + JSON_HEDLEY_TI_CL430_VERSION_CHECK(4,3,0) || \ + (JSON_HEDLEY_TI_CL6X_VERSION_CHECK(7,2,0) && defined(__TI_GNU_ATTRIBUTE_SUPPORT__)) || \ + JSON_HEDLEY_TI_CL6X_VERSION_CHECK(7,5,0) || \ + JSON_HEDLEY_TI_CL7X_VERSION_CHECK(1,2,0) || \ + JSON_HEDLEY_TI_CLPRU_VERSION_CHECK(2,1,0) || \ + JSON_HEDLEY_MCST_LCC_VERSION_CHECK(1,25,10) || \ + JSON_HEDLEY_IAR_VERSION_CHECK(8,10,0) +# define JSON_HEDLEY_ALWAYS_INLINE __attribute__((__always_inline__)) JSON_HEDLEY_INLINE +#elif \ + JSON_HEDLEY_MSVC_VERSION_CHECK(12,0,0) || \ + JSON_HEDLEY_INTEL_CL_VERSION_CHECK(2021,1,0) +# define JSON_HEDLEY_ALWAYS_INLINE __forceinline +#elif defined(__cplusplus) && \ + ( \ + JSON_HEDLEY_TI_ARMCL_VERSION_CHECK(5,2,0) || \ + JSON_HEDLEY_TI_CL430_VERSION_CHECK(4,3,0) || \ + JSON_HEDLEY_TI_CL2000_VERSION_CHECK(6,4,0) || \ + JSON_HEDLEY_TI_CL6X_VERSION_CHECK(6,1,0) || \ + JSON_HEDLEY_TI_CL7X_VERSION_CHECK(1,2,0) || \ + JSON_HEDLEY_TI_CLPRU_VERSION_CHECK(2,1,0) \ + ) +# define JSON_HEDLEY_ALWAYS_INLINE _Pragma("FUNC_ALWAYS_INLINE;") +#elif JSON_HEDLEY_IAR_VERSION_CHECK(8,0,0) +# define JSON_HEDLEY_ALWAYS_INLINE _Pragma("inline=forced") +#else +# define JSON_HEDLEY_ALWAYS_INLINE JSON_HEDLEY_INLINE +#endif + +#if defined(JSON_HEDLEY_NEVER_INLINE) + #undef JSON_HEDLEY_NEVER_INLINE +#endif +#if \ + JSON_HEDLEY_HAS_ATTRIBUTE(noinline) || \ + JSON_HEDLEY_GCC_VERSION_CHECK(4,0,0) || \ + JSON_HEDLEY_INTEL_VERSION_CHECK(13,0,0) || \ + JSON_HEDLEY_SUNPRO_VERSION_CHECK(5,11,0) || \ + JSON_HEDLEY_ARM_VERSION_CHECK(4,1,0) || \ + JSON_HEDLEY_IBM_VERSION_CHECK(10,1,0) || \ + JSON_HEDLEY_TI_VERSION_CHECK(15,12,0) || \ + (JSON_HEDLEY_TI_ARMCL_VERSION_CHECK(4,8,0) && defined(__TI_GNU_ATTRIBUTE_SUPPORT__)) || \ + JSON_HEDLEY_TI_ARMCL_VERSION_CHECK(5,2,0) || \ + (JSON_HEDLEY_TI_CL2000_VERSION_CHECK(6,0,0) && defined(__TI_GNU_ATTRIBUTE_SUPPORT__)) || \ + JSON_HEDLEY_TI_CL2000_VERSION_CHECK(6,4,0) || \ + (JSON_HEDLEY_TI_CL430_VERSION_CHECK(4,0,0) && defined(__TI_GNU_ATTRIBUTE_SUPPORT__)) || \ + JSON_HEDLEY_TI_CL430_VERSION_CHECK(4,3,0) || \ + (JSON_HEDLEY_TI_CL6X_VERSION_CHECK(7,2,0) && defined(__TI_GNU_ATTRIBUTE_SUPPORT__)) || \ + JSON_HEDLEY_TI_CL6X_VERSION_CHECK(7,5,0) || \ + JSON_HEDLEY_TI_CL7X_VERSION_CHECK(1,2,0) || \ + JSON_HEDLEY_TI_CLPRU_VERSION_CHECK(2,1,0) || \ + JSON_HEDLEY_MCST_LCC_VERSION_CHECK(1,25,10) || \ + JSON_HEDLEY_IAR_VERSION_CHECK(8,10,0) + #define JSON_HEDLEY_NEVER_INLINE __attribute__((__noinline__)) +#elif \ + JSON_HEDLEY_MSVC_VERSION_CHECK(13,10,0) || \ + JSON_HEDLEY_INTEL_CL_VERSION_CHECK(2021,1,0) + #define JSON_HEDLEY_NEVER_INLINE __declspec(noinline) +#elif JSON_HEDLEY_PGI_VERSION_CHECK(10,2,0) + #define JSON_HEDLEY_NEVER_INLINE _Pragma("noinline") +#elif JSON_HEDLEY_TI_CL6X_VERSION_CHECK(6,0,0) && defined(__cplusplus) + #define JSON_HEDLEY_NEVER_INLINE _Pragma("FUNC_CANNOT_INLINE;") +#elif JSON_HEDLEY_IAR_VERSION_CHECK(8,0,0) + #define JSON_HEDLEY_NEVER_INLINE _Pragma("inline=never") +#elif JSON_HEDLEY_COMPCERT_VERSION_CHECK(3,2,0) + #define JSON_HEDLEY_NEVER_INLINE __attribute((noinline)) +#elif JSON_HEDLEY_PELLES_VERSION_CHECK(9,0,0) + #define JSON_HEDLEY_NEVER_INLINE __declspec(noinline) +#else + #define JSON_HEDLEY_NEVER_INLINE +#endif + +#if defined(JSON_HEDLEY_PRIVATE) + #undef JSON_HEDLEY_PRIVATE +#endif +#if defined(JSON_HEDLEY_PUBLIC) + #undef JSON_HEDLEY_PUBLIC +#endif +#if defined(JSON_HEDLEY_IMPORT) + #undef JSON_HEDLEY_IMPORT +#endif +#if defined(_WIN32) || defined(__CYGWIN__) +# define JSON_HEDLEY_PRIVATE +# define JSON_HEDLEY_PUBLIC __declspec(dllexport) +# define JSON_HEDLEY_IMPORT __declspec(dllimport) +#else +# if \ + JSON_HEDLEY_HAS_ATTRIBUTE(visibility) || \ + JSON_HEDLEY_GCC_VERSION_CHECK(3,3,0) || \ + JSON_HEDLEY_SUNPRO_VERSION_CHECK(5,11,0) || \ + JSON_HEDLEY_INTEL_VERSION_CHECK(13,0,0) || \ + JSON_HEDLEY_ARM_VERSION_CHECK(4,1,0) || \ + JSON_HEDLEY_IBM_VERSION_CHECK(13,1,0) || \ + ( \ + defined(__TI_EABI__) && \ + ( \ + (JSON_HEDLEY_TI_CL6X_VERSION_CHECK(7,2,0) && defined(__TI_GNU_ATTRIBUTE_SUPPORT__)) || \ + JSON_HEDLEY_TI_CL6X_VERSION_CHECK(7,5,0) \ + ) \ + ) || \ + JSON_HEDLEY_MCST_LCC_VERSION_CHECK(1,25,10) +# define JSON_HEDLEY_PRIVATE __attribute__((__visibility__("hidden"))) +# define JSON_HEDLEY_PUBLIC __attribute__((__visibility__("default"))) +# else +# define JSON_HEDLEY_PRIVATE +# define JSON_HEDLEY_PUBLIC +# endif +# define JSON_HEDLEY_IMPORT extern +#endif + +#if defined(JSON_HEDLEY_NO_THROW) + #undef JSON_HEDLEY_NO_THROW +#endif +#if \ + JSON_HEDLEY_HAS_ATTRIBUTE(nothrow) || \ + JSON_HEDLEY_GCC_VERSION_CHECK(3,3,0) || \ + JSON_HEDLEY_INTEL_VERSION_CHECK(13,0,0) || \ + JSON_HEDLEY_MCST_LCC_VERSION_CHECK(1,25,10) + #define JSON_HEDLEY_NO_THROW __attribute__((__nothrow__)) +#elif \ + JSON_HEDLEY_MSVC_VERSION_CHECK(13,1,0) || \ + JSON_HEDLEY_INTEL_CL_VERSION_CHECK(2021,1,0) || \ + JSON_HEDLEY_ARM_VERSION_CHECK(4,1,0) + #define JSON_HEDLEY_NO_THROW __declspec(nothrow) +#else + #define JSON_HEDLEY_NO_THROW +#endif + +#if defined(JSON_HEDLEY_FALL_THROUGH) + #undef JSON_HEDLEY_FALL_THROUGH +#endif +#if \ + JSON_HEDLEY_HAS_ATTRIBUTE(fallthrough) || \ + JSON_HEDLEY_GCC_VERSION_CHECK(7,0,0) || \ + JSON_HEDLEY_MCST_LCC_VERSION_CHECK(1,25,10) + #define JSON_HEDLEY_FALL_THROUGH __attribute__((__fallthrough__)) +#elif JSON_HEDLEY_HAS_CPP_ATTRIBUTE_NS(clang,fallthrough) + #define JSON_HEDLEY_FALL_THROUGH JSON_HEDLEY_DIAGNOSTIC_DISABLE_CPP98_COMPAT_WRAP_([[clang::fallthrough]]) +#elif JSON_HEDLEY_HAS_CPP_ATTRIBUTE(fallthrough) + #define JSON_HEDLEY_FALL_THROUGH JSON_HEDLEY_DIAGNOSTIC_DISABLE_CPP98_COMPAT_WRAP_([[fallthrough]]) +#elif defined(__fallthrough) /* SAL */ + #define JSON_HEDLEY_FALL_THROUGH __fallthrough +#else + #define JSON_HEDLEY_FALL_THROUGH +#endif + +#if defined(JSON_HEDLEY_RETURNS_NON_NULL) + #undef JSON_HEDLEY_RETURNS_NON_NULL +#endif +#if \ + JSON_HEDLEY_HAS_ATTRIBUTE(returns_nonnull) || \ + JSON_HEDLEY_GCC_VERSION_CHECK(4,9,0) || \ + JSON_HEDLEY_MCST_LCC_VERSION_CHECK(1,25,10) + #define JSON_HEDLEY_RETURNS_NON_NULL __attribute__((__returns_nonnull__)) +#elif defined(_Ret_notnull_) /* SAL */ + #define JSON_HEDLEY_RETURNS_NON_NULL _Ret_notnull_ +#else + #define JSON_HEDLEY_RETURNS_NON_NULL +#endif + +#if defined(JSON_HEDLEY_ARRAY_PARAM) + #undef JSON_HEDLEY_ARRAY_PARAM +#endif +#if \ + defined(__STDC_VERSION__) && (__STDC_VERSION__ >= 199901L) && \ + !defined(__STDC_NO_VLA__) && \ + !defined(__cplusplus) && \ + !defined(JSON_HEDLEY_PGI_VERSION) && \ + !defined(JSON_HEDLEY_TINYC_VERSION) + #define JSON_HEDLEY_ARRAY_PARAM(name) (name) +#else + #define JSON_HEDLEY_ARRAY_PARAM(name) +#endif + +#if defined(JSON_HEDLEY_IS_CONSTANT) + #undef JSON_HEDLEY_IS_CONSTANT +#endif +#if defined(JSON_HEDLEY_REQUIRE_CONSTEXPR) + #undef JSON_HEDLEY_REQUIRE_CONSTEXPR +#endif +/* JSON_HEDLEY_IS_CONSTEXPR_ is for + HEDLEY INTERNAL USE ONLY. API subject to change without notice. */ +#if defined(JSON_HEDLEY_IS_CONSTEXPR_) + #undef JSON_HEDLEY_IS_CONSTEXPR_ +#endif +#if \ + JSON_HEDLEY_HAS_BUILTIN(__builtin_constant_p) || \ + JSON_HEDLEY_GCC_VERSION_CHECK(3,4,0) || \ + JSON_HEDLEY_INTEL_VERSION_CHECK(13,0,0) || \ + JSON_HEDLEY_TINYC_VERSION_CHECK(0,9,19) || \ + JSON_HEDLEY_ARM_VERSION_CHECK(4,1,0) || \ + JSON_HEDLEY_IBM_VERSION_CHECK(13,1,0) || \ + JSON_HEDLEY_TI_CL6X_VERSION_CHECK(6,1,0) || \ + (JSON_HEDLEY_SUNPRO_VERSION_CHECK(5,10,0) && !defined(__cplusplus)) || \ + JSON_HEDLEY_CRAY_VERSION_CHECK(8,1,0) || \ + JSON_HEDLEY_MCST_LCC_VERSION_CHECK(1,25,10) + #define JSON_HEDLEY_IS_CONSTANT(expr) __builtin_constant_p(expr) +#endif +#if !defined(__cplusplus) +# if \ + JSON_HEDLEY_HAS_BUILTIN(__builtin_types_compatible_p) || \ + JSON_HEDLEY_GCC_VERSION_CHECK(3,4,0) || \ + JSON_HEDLEY_INTEL_VERSION_CHECK(13,0,0) || \ + JSON_HEDLEY_IBM_VERSION_CHECK(13,1,0) || \ + JSON_HEDLEY_CRAY_VERSION_CHECK(8,1,0) || \ + JSON_HEDLEY_ARM_VERSION_CHECK(5,4,0) || \ + JSON_HEDLEY_TINYC_VERSION_CHECK(0,9,24) +#if defined(__INTPTR_TYPE__) + #define JSON_HEDLEY_IS_CONSTEXPR_(expr) __builtin_types_compatible_p(__typeof__((1 ? (void*) ((__INTPTR_TYPE__) ((expr) * 0)) : (int*) 0)), int*) +#else + #include + #define JSON_HEDLEY_IS_CONSTEXPR_(expr) __builtin_types_compatible_p(__typeof__((1 ? (void*) ((intptr_t) ((expr) * 0)) : (int*) 0)), int*) +#endif +# elif \ + ( \ + defined(__STDC_VERSION__) && (__STDC_VERSION__ >= 201112L) && \ + !defined(JSON_HEDLEY_SUNPRO_VERSION) && \ + !defined(JSON_HEDLEY_PGI_VERSION) && \ + !defined(JSON_HEDLEY_IAR_VERSION)) || \ + (JSON_HEDLEY_HAS_EXTENSION(c_generic_selections) && !defined(JSON_HEDLEY_IAR_VERSION)) || \ + JSON_HEDLEY_GCC_VERSION_CHECK(4,9,0) || \ + JSON_HEDLEY_INTEL_VERSION_CHECK(17,0,0) || \ + JSON_HEDLEY_IBM_VERSION_CHECK(12,1,0) || \ + JSON_HEDLEY_ARM_VERSION_CHECK(5,3,0) +#if defined(__INTPTR_TYPE__) + #define JSON_HEDLEY_IS_CONSTEXPR_(expr) _Generic((1 ? (void*) ((__INTPTR_TYPE__) ((expr) * 0)) : (int*) 0), int*: 1, void*: 0) +#else + #include + #define JSON_HEDLEY_IS_CONSTEXPR_(expr) _Generic((1 ? (void*) ((intptr_t) * 0) : (int*) 0), int*: 1, void*: 0) +#endif +# elif \ + defined(JSON_HEDLEY_GCC_VERSION) || \ + defined(JSON_HEDLEY_INTEL_VERSION) || \ + defined(JSON_HEDLEY_TINYC_VERSION) || \ + defined(JSON_HEDLEY_TI_ARMCL_VERSION) || \ + JSON_HEDLEY_TI_CL430_VERSION_CHECK(18,12,0) || \ + defined(JSON_HEDLEY_TI_CL2000_VERSION) || \ + defined(JSON_HEDLEY_TI_CL6X_VERSION) || \ + defined(JSON_HEDLEY_TI_CL7X_VERSION) || \ + defined(JSON_HEDLEY_TI_CLPRU_VERSION) || \ + defined(__clang__) +# define JSON_HEDLEY_IS_CONSTEXPR_(expr) ( \ + sizeof(void) != \ + sizeof(*( \ + 1 ? \ + ((void*) ((expr) * 0L) ) : \ +((struct { char v[sizeof(void) * 2]; } *) 1) \ + ) \ + ) \ + ) +# endif +#endif +#if defined(JSON_HEDLEY_IS_CONSTEXPR_) + #if !defined(JSON_HEDLEY_IS_CONSTANT) + #define JSON_HEDLEY_IS_CONSTANT(expr) JSON_HEDLEY_IS_CONSTEXPR_(expr) + #endif + #define JSON_HEDLEY_REQUIRE_CONSTEXPR(expr) (JSON_HEDLEY_IS_CONSTEXPR_(expr) ? (expr) : (-1)) +#else + #if !defined(JSON_HEDLEY_IS_CONSTANT) + #define JSON_HEDLEY_IS_CONSTANT(expr) (0) + #endif + #define JSON_HEDLEY_REQUIRE_CONSTEXPR(expr) (expr) +#endif + +#if defined(JSON_HEDLEY_BEGIN_C_DECLS) + #undef JSON_HEDLEY_BEGIN_C_DECLS +#endif +#if defined(JSON_HEDLEY_END_C_DECLS) + #undef JSON_HEDLEY_END_C_DECLS +#endif +#if defined(JSON_HEDLEY_C_DECL) + #undef JSON_HEDLEY_C_DECL +#endif +#if defined(__cplusplus) + #define JSON_HEDLEY_BEGIN_C_DECLS extern "C" { + #define JSON_HEDLEY_END_C_DECLS } + #define JSON_HEDLEY_C_DECL extern "C" +#else + #define JSON_HEDLEY_BEGIN_C_DECLS + #define JSON_HEDLEY_END_C_DECLS + #define JSON_HEDLEY_C_DECL +#endif + +#if defined(JSON_HEDLEY_STATIC_ASSERT) + #undef JSON_HEDLEY_STATIC_ASSERT +#endif +#if \ + !defined(__cplusplus) && ( \ + (defined(__STDC_VERSION__) && (__STDC_VERSION__ >= 201112L)) || \ + (JSON_HEDLEY_HAS_FEATURE(c_static_assert) && !defined(JSON_HEDLEY_INTEL_CL_VERSION)) || \ + JSON_HEDLEY_GCC_VERSION_CHECK(6,0,0) || \ + JSON_HEDLEY_INTEL_VERSION_CHECK(13,0,0) || \ + defined(_Static_assert) \ + ) +# define JSON_HEDLEY_STATIC_ASSERT(expr, message) _Static_assert(expr, message) +#elif \ + (defined(__cplusplus) && (__cplusplus >= 201103L)) || \ + JSON_HEDLEY_MSVC_VERSION_CHECK(16,0,0) || \ + JSON_HEDLEY_INTEL_CL_VERSION_CHECK(2021,1,0) +# define JSON_HEDLEY_STATIC_ASSERT(expr, message) JSON_HEDLEY_DIAGNOSTIC_DISABLE_CPP98_COMPAT_WRAP_(static_assert(expr, message)) +#else +# define JSON_HEDLEY_STATIC_ASSERT(expr, message) +#endif + +#if defined(JSON_HEDLEY_NULL) + #undef JSON_HEDLEY_NULL +#endif +#if defined(__cplusplus) + #if __cplusplus >= 201103L + #define JSON_HEDLEY_NULL JSON_HEDLEY_DIAGNOSTIC_DISABLE_CPP98_COMPAT_WRAP_(nullptr) + #elif defined(NULL) + #define JSON_HEDLEY_NULL NULL + #else + #define JSON_HEDLEY_NULL JSON_HEDLEY_STATIC_CAST(void*, 0) + #endif +#elif defined(NULL) + #define JSON_HEDLEY_NULL NULL +#else + #define JSON_HEDLEY_NULL ((void*) 0) +#endif + +#if defined(JSON_HEDLEY_MESSAGE) + #undef JSON_HEDLEY_MESSAGE +#endif +#if JSON_HEDLEY_HAS_WARNING("-Wunknown-pragmas") +# define JSON_HEDLEY_MESSAGE(msg) \ + JSON_HEDLEY_DIAGNOSTIC_PUSH \ + JSON_HEDLEY_DIAGNOSTIC_DISABLE_UNKNOWN_PRAGMAS \ + JSON_HEDLEY_PRAGMA(message msg) \ + JSON_HEDLEY_DIAGNOSTIC_POP +#elif \ + JSON_HEDLEY_GCC_VERSION_CHECK(4,4,0) || \ + JSON_HEDLEY_INTEL_VERSION_CHECK(13,0,0) +# define JSON_HEDLEY_MESSAGE(msg) JSON_HEDLEY_PRAGMA(message msg) +#elif JSON_HEDLEY_CRAY_VERSION_CHECK(5,0,0) +# define JSON_HEDLEY_MESSAGE(msg) JSON_HEDLEY_PRAGMA(_CRI message msg) +#elif JSON_HEDLEY_IAR_VERSION_CHECK(8,0,0) +# define JSON_HEDLEY_MESSAGE(msg) JSON_HEDLEY_PRAGMA(message(msg)) +#elif JSON_HEDLEY_PELLES_VERSION_CHECK(2,0,0) +# define JSON_HEDLEY_MESSAGE(msg) JSON_HEDLEY_PRAGMA(message(msg)) +#else +# define JSON_HEDLEY_MESSAGE(msg) +#endif + +#if defined(JSON_HEDLEY_WARNING) + #undef JSON_HEDLEY_WARNING +#endif +#if JSON_HEDLEY_HAS_WARNING("-Wunknown-pragmas") +# define JSON_HEDLEY_WARNING(msg) \ + JSON_HEDLEY_DIAGNOSTIC_PUSH \ + JSON_HEDLEY_DIAGNOSTIC_DISABLE_UNKNOWN_PRAGMAS \ + JSON_HEDLEY_PRAGMA(clang warning msg) \ + JSON_HEDLEY_DIAGNOSTIC_POP +#elif \ + JSON_HEDLEY_GCC_VERSION_CHECK(4,8,0) || \ + JSON_HEDLEY_PGI_VERSION_CHECK(18,4,0) || \ + JSON_HEDLEY_INTEL_VERSION_CHECK(13,0,0) +# define JSON_HEDLEY_WARNING(msg) JSON_HEDLEY_PRAGMA(GCC warning msg) +#elif \ + JSON_HEDLEY_MSVC_VERSION_CHECK(15,0,0) || \ + JSON_HEDLEY_INTEL_CL_VERSION_CHECK(2021,1,0) +# define JSON_HEDLEY_WARNING(msg) JSON_HEDLEY_PRAGMA(message(msg)) +#else +# define JSON_HEDLEY_WARNING(msg) JSON_HEDLEY_MESSAGE(msg) +#endif + +#if defined(JSON_HEDLEY_REQUIRE) + #undef JSON_HEDLEY_REQUIRE +#endif +#if defined(JSON_HEDLEY_REQUIRE_MSG) + #undef JSON_HEDLEY_REQUIRE_MSG +#endif +#if JSON_HEDLEY_HAS_ATTRIBUTE(diagnose_if) +# if JSON_HEDLEY_HAS_WARNING("-Wgcc-compat") +# define JSON_HEDLEY_REQUIRE(expr) \ + JSON_HEDLEY_DIAGNOSTIC_PUSH \ + _Pragma("clang diagnostic ignored \"-Wgcc-compat\"") \ + __attribute__((diagnose_if(!(expr), #expr, "error"))) \ + JSON_HEDLEY_DIAGNOSTIC_POP +# define JSON_HEDLEY_REQUIRE_MSG(expr,msg) \ + JSON_HEDLEY_DIAGNOSTIC_PUSH \ + _Pragma("clang diagnostic ignored \"-Wgcc-compat\"") \ + __attribute__((diagnose_if(!(expr), msg, "error"))) \ + JSON_HEDLEY_DIAGNOSTIC_POP +# else +# define JSON_HEDLEY_REQUIRE(expr) __attribute__((diagnose_if(!(expr), #expr, "error"))) +# define JSON_HEDLEY_REQUIRE_MSG(expr,msg) __attribute__((diagnose_if(!(expr), msg, "error"))) +# endif +#else +# define JSON_HEDLEY_REQUIRE(expr) +# define JSON_HEDLEY_REQUIRE_MSG(expr,msg) +#endif + +#if defined(JSON_HEDLEY_FLAGS) + #undef JSON_HEDLEY_FLAGS +#endif +#if JSON_HEDLEY_HAS_ATTRIBUTE(flag_enum) && (!defined(__cplusplus) || JSON_HEDLEY_HAS_WARNING("-Wbitfield-enum-conversion")) + #define JSON_HEDLEY_FLAGS __attribute__((__flag_enum__)) +#else + #define JSON_HEDLEY_FLAGS +#endif + +#if defined(JSON_HEDLEY_FLAGS_CAST) + #undef JSON_HEDLEY_FLAGS_CAST +#endif +#if JSON_HEDLEY_INTEL_VERSION_CHECK(19,0,0) +# define JSON_HEDLEY_FLAGS_CAST(T, expr) (__extension__ ({ \ + JSON_HEDLEY_DIAGNOSTIC_PUSH \ + _Pragma("warning(disable:188)") \ + ((T) (expr)); \ + JSON_HEDLEY_DIAGNOSTIC_POP \ + })) +#else +# define JSON_HEDLEY_FLAGS_CAST(T, expr) JSON_HEDLEY_STATIC_CAST(T, expr) +#endif + +#if defined(JSON_HEDLEY_EMPTY_BASES) + #undef JSON_HEDLEY_EMPTY_BASES +#endif +#if \ + (JSON_HEDLEY_MSVC_VERSION_CHECK(19,0,23918) && !JSON_HEDLEY_MSVC_VERSION_CHECK(20,0,0)) || \ + JSON_HEDLEY_INTEL_CL_VERSION_CHECK(2021,1,0) + #define JSON_HEDLEY_EMPTY_BASES __declspec(empty_bases) +#else + #define JSON_HEDLEY_EMPTY_BASES +#endif + +/* Remaining macros are deprecated. */ + +#if defined(JSON_HEDLEY_GCC_NOT_CLANG_VERSION_CHECK) + #undef JSON_HEDLEY_GCC_NOT_CLANG_VERSION_CHECK +#endif +#if defined(__clang__) + #define JSON_HEDLEY_GCC_NOT_CLANG_VERSION_CHECK(major,minor,patch) (0) +#else + #define JSON_HEDLEY_GCC_NOT_CLANG_VERSION_CHECK(major,minor,patch) JSON_HEDLEY_GCC_VERSION_CHECK(major,minor,patch) +#endif + +#if defined(JSON_HEDLEY_CLANG_HAS_ATTRIBUTE) + #undef JSON_HEDLEY_CLANG_HAS_ATTRIBUTE +#endif +#define JSON_HEDLEY_CLANG_HAS_ATTRIBUTE(attribute) JSON_HEDLEY_HAS_ATTRIBUTE(attribute) + +#if defined(JSON_HEDLEY_CLANG_HAS_CPP_ATTRIBUTE) + #undef JSON_HEDLEY_CLANG_HAS_CPP_ATTRIBUTE +#endif +#define JSON_HEDLEY_CLANG_HAS_CPP_ATTRIBUTE(attribute) JSON_HEDLEY_HAS_CPP_ATTRIBUTE(attribute) + +#if defined(JSON_HEDLEY_CLANG_HAS_BUILTIN) + #undef JSON_HEDLEY_CLANG_HAS_BUILTIN +#endif +#define JSON_HEDLEY_CLANG_HAS_BUILTIN(builtin) JSON_HEDLEY_HAS_BUILTIN(builtin) + +#if defined(JSON_HEDLEY_CLANG_HAS_FEATURE) + #undef JSON_HEDLEY_CLANG_HAS_FEATURE +#endif +#define JSON_HEDLEY_CLANG_HAS_FEATURE(feature) JSON_HEDLEY_HAS_FEATURE(feature) + +#if defined(JSON_HEDLEY_CLANG_HAS_EXTENSION) + #undef JSON_HEDLEY_CLANG_HAS_EXTENSION +#endif +#define JSON_HEDLEY_CLANG_HAS_EXTENSION(extension) JSON_HEDLEY_HAS_EXTENSION(extension) + +#if defined(JSON_HEDLEY_CLANG_HAS_DECLSPEC_DECLSPEC_ATTRIBUTE) + #undef JSON_HEDLEY_CLANG_HAS_DECLSPEC_DECLSPEC_ATTRIBUTE +#endif +#define JSON_HEDLEY_CLANG_HAS_DECLSPEC_ATTRIBUTE(attribute) JSON_HEDLEY_HAS_DECLSPEC_ATTRIBUTE(attribute) + +#if defined(JSON_HEDLEY_CLANG_HAS_WARNING) + #undef JSON_HEDLEY_CLANG_HAS_WARNING +#endif +#define JSON_HEDLEY_CLANG_HAS_WARNING(warning) JSON_HEDLEY_HAS_WARNING(warning) + +#endif /* !defined(JSON_HEDLEY_VERSION) || (JSON_HEDLEY_VERSION < X) */ + + +// This file contains all internal macro definitions (except those affecting ABI) +// You MUST include macro_unscope.hpp at the end of json.hpp to undef all of them + +// #include + + +// exclude unsupported compilers +#if !defined(JSON_SKIP_UNSUPPORTED_COMPILER_CHECK) + #if defined(__clang__) + #if (__clang_major__ * 10000 + __clang_minor__ * 100 + __clang_patchlevel__) < 30400 + #error "unsupported Clang version - see https://github.com/nlohmann/json#supported-compilers" + #endif + #elif defined(__GNUC__) && !(defined(__ICC) || defined(__INTEL_COMPILER)) + #if (__GNUC__ * 10000 + __GNUC_MINOR__ * 100 + __GNUC_PATCHLEVEL__) < 40800 + #error "unsupported GCC version - see https://github.com/nlohmann/json#supported-compilers" + #endif + #endif +#endif + +// C++ language standard detection +// if the user manually specified the used c++ version this is skipped +#if !defined(JSON_HAS_CPP_23) && !defined(JSON_HAS_CPP_20) && !defined(JSON_HAS_CPP_17) && !defined(JSON_HAS_CPP_14) && !defined(JSON_HAS_CPP_11) + #if (defined(__cplusplus) && __cplusplus > 202002L) || (defined(_MSVC_LANG) && _MSVC_LANG > 202002L) + #define JSON_HAS_CPP_23 + #define JSON_HAS_CPP_20 + #define JSON_HAS_CPP_17 + #define JSON_HAS_CPP_14 + #elif (defined(__cplusplus) && __cplusplus > 201703L) || (defined(_MSVC_LANG) && _MSVC_LANG > 201703L) + #define JSON_HAS_CPP_20 + #define JSON_HAS_CPP_17 + #define JSON_HAS_CPP_14 + #elif (defined(__cplusplus) && __cplusplus > 201402L) || (defined(_HAS_CXX17) && _HAS_CXX17 == 1) // fix for issue #464 + #define JSON_HAS_CPP_17 + #define JSON_HAS_CPP_14 + #elif (defined(__cplusplus) && __cplusplus > 201103L) || (defined(_HAS_CXX14) && _HAS_CXX14 == 1) + #define JSON_HAS_CPP_14 + #endif + // the cpp 11 flag is always specified because it is the minimal required version + #define JSON_HAS_CPP_11 +#endif + +#ifdef __has_include + #if __has_include() + #include + #endif +#endif + +#if !defined(JSON_HAS_FILESYSTEM) && !defined(JSON_HAS_EXPERIMENTAL_FILESYSTEM) + #ifdef JSON_HAS_CPP_17 + #if defined(__cpp_lib_filesystem) + #define JSON_HAS_FILESYSTEM 1 + #elif defined(__cpp_lib_experimental_filesystem) + #define JSON_HAS_EXPERIMENTAL_FILESYSTEM 1 + #elif !defined(__has_include) + #define JSON_HAS_EXPERIMENTAL_FILESYSTEM 1 + #elif __has_include() + #define JSON_HAS_FILESYSTEM 1 + #elif __has_include() + #define JSON_HAS_EXPERIMENTAL_FILESYSTEM 1 + #endif + + // std::filesystem does not work on MinGW GCC 8: https://sourceforge.net/p/mingw-w64/bugs/737/ + #if defined(__MINGW32__) && defined(__GNUC__) && __GNUC__ == 8 + #undef JSON_HAS_FILESYSTEM + #undef JSON_HAS_EXPERIMENTAL_FILESYSTEM + #endif + + // no filesystem support before GCC 8: https://en.cppreference.com/w/cpp/compiler_support + #if defined(__GNUC__) && !defined(__clang__) && __GNUC__ < 8 + #undef JSON_HAS_FILESYSTEM + #undef JSON_HAS_EXPERIMENTAL_FILESYSTEM + #endif + + // no filesystem support before Clang 7: https://en.cppreference.com/w/cpp/compiler_support + #if defined(__clang_major__) && __clang_major__ < 7 + #undef JSON_HAS_FILESYSTEM + #undef JSON_HAS_EXPERIMENTAL_FILESYSTEM + #endif + + // no filesystem support before MSVC 19.14: https://en.cppreference.com/w/cpp/compiler_support + #if defined(_MSC_VER) && _MSC_VER < 1914 + #undef JSON_HAS_FILESYSTEM + #undef JSON_HAS_EXPERIMENTAL_FILESYSTEM + #endif + + // no filesystem support before iOS 13 + #if defined(__IPHONE_OS_VERSION_MIN_REQUIRED) && __IPHONE_OS_VERSION_MIN_REQUIRED < 130000 + #undef JSON_HAS_FILESYSTEM + #undef JSON_HAS_EXPERIMENTAL_FILESYSTEM + #endif + + // no filesystem support before macOS Catalina + #if defined(__MAC_OS_X_VERSION_MIN_REQUIRED) && __MAC_OS_X_VERSION_MIN_REQUIRED < 101500 + #undef JSON_HAS_FILESYSTEM + #undef JSON_HAS_EXPERIMENTAL_FILESYSTEM + #endif + #endif +#endif + +#ifndef JSON_HAS_EXPERIMENTAL_FILESYSTEM + #define JSON_HAS_EXPERIMENTAL_FILESYSTEM 0 +#endif + +#ifndef JSON_HAS_FILESYSTEM + #define JSON_HAS_FILESYSTEM 0 +#endif + +#ifndef JSON_HAS_THREE_WAY_COMPARISON + #if defined(__cpp_impl_three_way_comparison) && __cpp_impl_three_way_comparison >= 201907L \ + && defined(__cpp_lib_three_way_comparison) && __cpp_lib_three_way_comparison >= 201907L + #define JSON_HAS_THREE_WAY_COMPARISON 1 + #else + #define JSON_HAS_THREE_WAY_COMPARISON 0 + #endif +#endif + +#ifndef JSON_HAS_RANGES + // ranges header shipping in GCC 11.1.0 (released 2021-04-27) has syntax error + #if defined(__GLIBCXX__) && __GLIBCXX__ == 20210427 + #define JSON_HAS_RANGES 0 + #elif defined(__cpp_lib_ranges) + #define JSON_HAS_RANGES 1 + #else + #define JSON_HAS_RANGES 0 + #endif +#endif + +#ifndef JSON_HAS_STATIC_RTTI + #if !defined(_HAS_STATIC_RTTI) || _HAS_STATIC_RTTI != 0 + #define JSON_HAS_STATIC_RTTI 1 + #else + #define JSON_HAS_STATIC_RTTI 0 + #endif +#endif + +#ifdef JSON_HAS_CPP_17 + #define JSON_INLINE_VARIABLE inline +#else + #define JSON_INLINE_VARIABLE +#endif + +#if JSON_HEDLEY_HAS_ATTRIBUTE(no_unique_address) + #define JSON_NO_UNIQUE_ADDRESS [[no_unique_address]] +#else + #define JSON_NO_UNIQUE_ADDRESS +#endif + +// disable documentation warnings on clang +#if defined(__clang__) + #pragma clang diagnostic push + #pragma clang diagnostic ignored "-Wdocumentation" + #pragma clang diagnostic ignored "-Wdocumentation-unknown-command" +#endif + +// allow disabling exceptions +#if (defined(__cpp_exceptions) || defined(__EXCEPTIONS) || defined(_CPPUNWIND)) && !defined(JSON_NOEXCEPTION) + #define JSON_THROW(exception) throw exception + #define JSON_TRY try + #define JSON_CATCH(exception) catch(exception) + #define JSON_INTERNAL_CATCH(exception) catch(exception) +#else + #include + #define JSON_THROW(exception) std::abort() + #define JSON_TRY if(true) + #define JSON_CATCH(exception) if(false) + #define JSON_INTERNAL_CATCH(exception) if(false) +#endif + +// override exception macros +#if defined(JSON_THROW_USER) + #undef JSON_THROW + #define JSON_THROW JSON_THROW_USER +#endif +#if defined(JSON_TRY_USER) + #undef JSON_TRY + #define JSON_TRY JSON_TRY_USER +#endif +#if defined(JSON_CATCH_USER) + #undef JSON_CATCH + #define JSON_CATCH JSON_CATCH_USER + #undef JSON_INTERNAL_CATCH + #define JSON_INTERNAL_CATCH JSON_CATCH_USER +#endif +#if defined(JSON_INTERNAL_CATCH_USER) + #undef JSON_INTERNAL_CATCH + #define JSON_INTERNAL_CATCH JSON_INTERNAL_CATCH_USER +#endif + +// allow overriding assert +#if !defined(JSON_ASSERT) + #include // assert + #define JSON_ASSERT(x) assert(x) +#endif + +// allow to access some private functions (needed by the test suite) +#if defined(JSON_TESTS_PRIVATE) + #define JSON_PRIVATE_UNLESS_TESTED public +#else + #define JSON_PRIVATE_UNLESS_TESTED private +#endif + +/*! +@brief macro to briefly define a mapping between an enum and JSON +@def NLOHMANN_JSON_SERIALIZE_ENUM +@since version 3.4.0 +*/ +#define NLOHMANN_JSON_SERIALIZE_ENUM(ENUM_TYPE, ...) \ + template \ + inline void to_json(BasicJsonType& j, const ENUM_TYPE& e) \ + { \ + /* NOLINTNEXTLINE(modernize-type-traits) we use C++11 */ \ + static_assert(std::is_enum::value, #ENUM_TYPE " must be an enum!"); \ + /* NOLINTNEXTLINE(modernize-avoid-c-arrays) we don't want to depend on */ \ + static const std::pair m[] = __VA_ARGS__; \ + auto it = std::find_if(std::begin(m), std::end(m), \ + [e](const std::pair& ej_pair) -> bool \ + { \ + return ej_pair.first == e; \ + }); \ + j = ((it != std::end(m)) ? it : std::begin(m))->second; \ + } \ + template \ + inline void from_json(const BasicJsonType& j, ENUM_TYPE& e) \ + { \ + /* NOLINTNEXTLINE(modernize-type-traits) we use C++11 */ \ + static_assert(std::is_enum::value, #ENUM_TYPE " must be an enum!"); \ + /* NOLINTNEXTLINE(modernize-avoid-c-arrays) we don't want to depend on */ \ + static const std::pair m[] = __VA_ARGS__; \ + auto it = std::find_if(std::begin(m), std::end(m), \ + [&j](const std::pair& ej_pair) -> bool \ + { \ + return ej_pair.second == j; \ + }); \ + e = ((it != std::end(m)) ? it : std::begin(m))->first; \ + } + +// Ugly macros to avoid uglier copy-paste when specializing basic_json. They +// may be removed in the future once the class is split. + +#define NLOHMANN_BASIC_JSON_TPL_DECLARATION \ + template class ObjectType, \ + template class ArrayType, \ + class StringType, class BooleanType, class NumberIntegerType, \ + class NumberUnsignedType, class NumberFloatType, \ + template class AllocatorType, \ + template class JSONSerializer, \ + class BinaryType, \ + class CustomBaseClass> + +#define NLOHMANN_BASIC_JSON_TPL \ + basic_json + +// Macros to simplify conversion from/to types + +#define NLOHMANN_JSON_EXPAND( x ) x +#define NLOHMANN_JSON_GET_MACRO(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50, _51, _52, _53, _54, _55, _56, _57, _58, _59, _60, _61, _62, _63, _64, NAME,...) NAME +#define NLOHMANN_JSON_PASTE(...) NLOHMANN_JSON_EXPAND(NLOHMANN_JSON_GET_MACRO(__VA_ARGS__, \ + NLOHMANN_JSON_PASTE64, \ + NLOHMANN_JSON_PASTE63, \ + NLOHMANN_JSON_PASTE62, \ + NLOHMANN_JSON_PASTE61, \ + NLOHMANN_JSON_PASTE60, \ + NLOHMANN_JSON_PASTE59, \ + NLOHMANN_JSON_PASTE58, \ + NLOHMANN_JSON_PASTE57, \ + NLOHMANN_JSON_PASTE56, \ + NLOHMANN_JSON_PASTE55, \ + NLOHMANN_JSON_PASTE54, \ + NLOHMANN_JSON_PASTE53, \ + NLOHMANN_JSON_PASTE52, \ + NLOHMANN_JSON_PASTE51, \ + NLOHMANN_JSON_PASTE50, \ + NLOHMANN_JSON_PASTE49, \ + NLOHMANN_JSON_PASTE48, \ + NLOHMANN_JSON_PASTE47, \ + NLOHMANN_JSON_PASTE46, \ + NLOHMANN_JSON_PASTE45, \ + NLOHMANN_JSON_PASTE44, \ + NLOHMANN_JSON_PASTE43, \ + NLOHMANN_JSON_PASTE42, \ + NLOHMANN_JSON_PASTE41, \ + NLOHMANN_JSON_PASTE40, \ + NLOHMANN_JSON_PASTE39, \ + NLOHMANN_JSON_PASTE38, \ + NLOHMANN_JSON_PASTE37, \ + NLOHMANN_JSON_PASTE36, \ + NLOHMANN_JSON_PASTE35, \ + NLOHMANN_JSON_PASTE34, \ + NLOHMANN_JSON_PASTE33, \ + NLOHMANN_JSON_PASTE32, \ + NLOHMANN_JSON_PASTE31, \ + NLOHMANN_JSON_PASTE30, \ + NLOHMANN_JSON_PASTE29, \ + NLOHMANN_JSON_PASTE28, \ + NLOHMANN_JSON_PASTE27, \ + NLOHMANN_JSON_PASTE26, \ + NLOHMANN_JSON_PASTE25, \ + NLOHMANN_JSON_PASTE24, \ + NLOHMANN_JSON_PASTE23, \ + NLOHMANN_JSON_PASTE22, \ + NLOHMANN_JSON_PASTE21, \ + NLOHMANN_JSON_PASTE20, \ + NLOHMANN_JSON_PASTE19, \ + NLOHMANN_JSON_PASTE18, \ + NLOHMANN_JSON_PASTE17, \ + NLOHMANN_JSON_PASTE16, \ + NLOHMANN_JSON_PASTE15, \ + NLOHMANN_JSON_PASTE14, \ + NLOHMANN_JSON_PASTE13, \ + NLOHMANN_JSON_PASTE12, \ + NLOHMANN_JSON_PASTE11, \ + NLOHMANN_JSON_PASTE10, \ + NLOHMANN_JSON_PASTE9, \ + NLOHMANN_JSON_PASTE8, \ + NLOHMANN_JSON_PASTE7, \ + NLOHMANN_JSON_PASTE6, \ + NLOHMANN_JSON_PASTE5, \ + NLOHMANN_JSON_PASTE4, \ + NLOHMANN_JSON_PASTE3, \ + NLOHMANN_JSON_PASTE2, \ + NLOHMANN_JSON_PASTE1)(__VA_ARGS__)) +#define NLOHMANN_JSON_PASTE2(func, v1) func(v1) +#define NLOHMANN_JSON_PASTE3(func, v1, v2) NLOHMANN_JSON_PASTE2(func, v1) NLOHMANN_JSON_PASTE2(func, v2) +#define NLOHMANN_JSON_PASTE4(func, v1, v2, v3) NLOHMANN_JSON_PASTE2(func, v1) NLOHMANN_JSON_PASTE3(func, v2, v3) +#define NLOHMANN_JSON_PASTE5(func, v1, v2, v3, v4) NLOHMANN_JSON_PASTE2(func, v1) NLOHMANN_JSON_PASTE4(func, v2, v3, v4) +#define NLOHMANN_JSON_PASTE6(func, v1, v2, v3, v4, v5) NLOHMANN_JSON_PASTE2(func, v1) NLOHMANN_JSON_PASTE5(func, v2, v3, v4, v5) +#define NLOHMANN_JSON_PASTE7(func, v1, v2, v3, v4, v5, v6) NLOHMANN_JSON_PASTE2(func, v1) NLOHMANN_JSON_PASTE6(func, v2, v3, v4, v5, v6) +#define NLOHMANN_JSON_PASTE8(func, v1, v2, v3, v4, v5, v6, v7) NLOHMANN_JSON_PASTE2(func, v1) NLOHMANN_JSON_PASTE7(func, v2, v3, v4, v5, v6, v7) +#define NLOHMANN_JSON_PASTE9(func, v1, v2, v3, v4, v5, v6, v7, v8) NLOHMANN_JSON_PASTE2(func, v1) NLOHMANN_JSON_PASTE8(func, v2, v3, v4, v5, v6, v7, v8) +#define NLOHMANN_JSON_PASTE10(func, v1, v2, v3, v4, v5, v6, v7, v8, v9) NLOHMANN_JSON_PASTE2(func, v1) NLOHMANN_JSON_PASTE9(func, v2, v3, v4, v5, v6, v7, v8, v9) +#define NLOHMANN_JSON_PASTE11(func, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10) NLOHMANN_JSON_PASTE2(func, v1) NLOHMANN_JSON_PASTE10(func, v2, v3, v4, v5, v6, v7, v8, v9, v10) +#define NLOHMANN_JSON_PASTE12(func, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11) NLOHMANN_JSON_PASTE2(func, v1) NLOHMANN_JSON_PASTE11(func, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11) +#define NLOHMANN_JSON_PASTE13(func, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12) NLOHMANN_JSON_PASTE2(func, v1) NLOHMANN_JSON_PASTE12(func, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12) +#define NLOHMANN_JSON_PASTE14(func, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13) NLOHMANN_JSON_PASTE2(func, v1) NLOHMANN_JSON_PASTE13(func, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13) +#define NLOHMANN_JSON_PASTE15(func, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14) NLOHMANN_JSON_PASTE2(func, v1) NLOHMANN_JSON_PASTE14(func, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14) +#define NLOHMANN_JSON_PASTE16(func, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15) NLOHMANN_JSON_PASTE2(func, v1) NLOHMANN_JSON_PASTE15(func, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15) +#define NLOHMANN_JSON_PASTE17(func, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16) NLOHMANN_JSON_PASTE2(func, v1) NLOHMANN_JSON_PASTE16(func, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16) +#define NLOHMANN_JSON_PASTE18(func, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17) NLOHMANN_JSON_PASTE2(func, v1) NLOHMANN_JSON_PASTE17(func, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17) +#define NLOHMANN_JSON_PASTE19(func, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18) NLOHMANN_JSON_PASTE2(func, v1) NLOHMANN_JSON_PASTE18(func, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18) +#define NLOHMANN_JSON_PASTE20(func, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19) NLOHMANN_JSON_PASTE2(func, v1) NLOHMANN_JSON_PASTE19(func, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19) +#define NLOHMANN_JSON_PASTE21(func, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20) NLOHMANN_JSON_PASTE2(func, v1) NLOHMANN_JSON_PASTE20(func, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20) +#define NLOHMANN_JSON_PASTE22(func, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21) NLOHMANN_JSON_PASTE2(func, v1) NLOHMANN_JSON_PASTE21(func, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21) +#define NLOHMANN_JSON_PASTE23(func, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22) NLOHMANN_JSON_PASTE2(func, v1) NLOHMANN_JSON_PASTE22(func, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22) +#define NLOHMANN_JSON_PASTE24(func, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23) NLOHMANN_JSON_PASTE2(func, v1) NLOHMANN_JSON_PASTE23(func, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23) +#define NLOHMANN_JSON_PASTE25(func, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24) NLOHMANN_JSON_PASTE2(func, v1) NLOHMANN_JSON_PASTE24(func, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24) +#define NLOHMANN_JSON_PASTE26(func, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25) NLOHMANN_JSON_PASTE2(func, v1) NLOHMANN_JSON_PASTE25(func, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25) +#define NLOHMANN_JSON_PASTE27(func, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26) NLOHMANN_JSON_PASTE2(func, v1) NLOHMANN_JSON_PASTE26(func, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26) +#define NLOHMANN_JSON_PASTE28(func, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27) NLOHMANN_JSON_PASTE2(func, v1) NLOHMANN_JSON_PASTE27(func, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27) +#define NLOHMANN_JSON_PASTE29(func, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28) NLOHMANN_JSON_PASTE2(func, v1) NLOHMANN_JSON_PASTE28(func, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28) +#define NLOHMANN_JSON_PASTE30(func, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29) NLOHMANN_JSON_PASTE2(func, v1) NLOHMANN_JSON_PASTE29(func, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29) +#define NLOHMANN_JSON_PASTE31(func, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30) NLOHMANN_JSON_PASTE2(func, v1) NLOHMANN_JSON_PASTE30(func, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30) +#define NLOHMANN_JSON_PASTE32(func, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31) NLOHMANN_JSON_PASTE2(func, v1) NLOHMANN_JSON_PASTE31(func, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31) +#define NLOHMANN_JSON_PASTE33(func, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32) NLOHMANN_JSON_PASTE2(func, v1) NLOHMANN_JSON_PASTE32(func, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32) +#define NLOHMANN_JSON_PASTE34(func, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33) NLOHMANN_JSON_PASTE2(func, v1) NLOHMANN_JSON_PASTE33(func, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33) +#define NLOHMANN_JSON_PASTE35(func, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34) NLOHMANN_JSON_PASTE2(func, v1) NLOHMANN_JSON_PASTE34(func, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34) +#define NLOHMANN_JSON_PASTE36(func, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34, v35) NLOHMANN_JSON_PASTE2(func, v1) NLOHMANN_JSON_PASTE35(func, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34, v35) +#define NLOHMANN_JSON_PASTE37(func, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34, v35, v36) NLOHMANN_JSON_PASTE2(func, v1) NLOHMANN_JSON_PASTE36(func, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34, v35, v36) +#define NLOHMANN_JSON_PASTE38(func, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34, v35, v36, v37) NLOHMANN_JSON_PASTE2(func, v1) NLOHMANN_JSON_PASTE37(func, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34, v35, v36, v37) +#define NLOHMANN_JSON_PASTE39(func, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34, v35, v36, v37, v38) NLOHMANN_JSON_PASTE2(func, v1) NLOHMANN_JSON_PASTE38(func, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34, v35, v36, v37, v38) +#define NLOHMANN_JSON_PASTE40(func, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34, v35, v36, v37, v38, v39) NLOHMANN_JSON_PASTE2(func, v1) NLOHMANN_JSON_PASTE39(func, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34, v35, v36, v37, v38, v39) +#define NLOHMANN_JSON_PASTE41(func, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34, v35, v36, v37, v38, v39, v40) NLOHMANN_JSON_PASTE2(func, v1) NLOHMANN_JSON_PASTE40(func, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34, v35, v36, v37, v38, v39, v40) +#define NLOHMANN_JSON_PASTE42(func, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34, v35, v36, v37, v38, v39, v40, v41) NLOHMANN_JSON_PASTE2(func, v1) NLOHMANN_JSON_PASTE41(func, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34, v35, v36, v37, v38, v39, v40, v41) +#define NLOHMANN_JSON_PASTE43(func, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34, v35, v36, v37, v38, v39, v40, v41, v42) NLOHMANN_JSON_PASTE2(func, v1) NLOHMANN_JSON_PASTE42(func, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34, v35, v36, v37, v38, v39, v40, v41, v42) +#define NLOHMANN_JSON_PASTE44(func, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34, v35, v36, v37, v38, v39, v40, v41, v42, v43) NLOHMANN_JSON_PASTE2(func, v1) NLOHMANN_JSON_PASTE43(func, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34, v35, v36, v37, v38, v39, v40, v41, v42, v43) +#define NLOHMANN_JSON_PASTE45(func, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34, v35, v36, v37, v38, v39, v40, v41, v42, v43, v44) NLOHMANN_JSON_PASTE2(func, v1) NLOHMANN_JSON_PASTE44(func, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34, v35, v36, v37, v38, v39, v40, v41, v42, v43, v44) +#define NLOHMANN_JSON_PASTE46(func, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34, v35, v36, v37, v38, v39, v40, v41, v42, v43, v44, v45) NLOHMANN_JSON_PASTE2(func, v1) NLOHMANN_JSON_PASTE45(func, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34, v35, v36, v37, v38, v39, v40, v41, v42, v43, v44, v45) +#define NLOHMANN_JSON_PASTE47(func, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34, v35, v36, v37, v38, v39, v40, v41, v42, v43, v44, v45, v46) NLOHMANN_JSON_PASTE2(func, v1) NLOHMANN_JSON_PASTE46(func, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34, v35, v36, v37, v38, v39, v40, v41, v42, v43, v44, v45, v46) +#define NLOHMANN_JSON_PASTE48(func, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34, v35, v36, v37, v38, v39, v40, v41, v42, v43, v44, v45, v46, v47) NLOHMANN_JSON_PASTE2(func, v1) NLOHMANN_JSON_PASTE47(func, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34, v35, v36, v37, v38, v39, v40, v41, v42, v43, v44, v45, v46, v47) +#define NLOHMANN_JSON_PASTE49(func, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34, v35, v36, v37, v38, v39, v40, v41, v42, v43, v44, v45, v46, v47, v48) NLOHMANN_JSON_PASTE2(func, v1) NLOHMANN_JSON_PASTE48(func, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34, v35, v36, v37, v38, v39, v40, v41, v42, v43, v44, v45, v46, v47, v48) +#define NLOHMANN_JSON_PASTE50(func, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34, v35, v36, v37, v38, v39, v40, v41, v42, v43, v44, v45, v46, v47, v48, v49) NLOHMANN_JSON_PASTE2(func, v1) NLOHMANN_JSON_PASTE49(func, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34, v35, v36, v37, v38, v39, v40, v41, v42, v43, v44, v45, v46, v47, v48, v49) +#define NLOHMANN_JSON_PASTE51(func, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34, v35, v36, v37, v38, v39, v40, v41, v42, v43, v44, v45, v46, v47, v48, v49, v50) NLOHMANN_JSON_PASTE2(func, v1) NLOHMANN_JSON_PASTE50(func, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34, v35, v36, v37, v38, v39, v40, v41, v42, v43, v44, v45, v46, v47, v48, v49, v50) +#define NLOHMANN_JSON_PASTE52(func, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34, v35, v36, v37, v38, v39, v40, v41, v42, v43, v44, v45, v46, v47, v48, v49, v50, v51) NLOHMANN_JSON_PASTE2(func, v1) NLOHMANN_JSON_PASTE51(func, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34, v35, v36, v37, v38, v39, v40, v41, v42, v43, v44, v45, v46, v47, v48, v49, v50, v51) +#define NLOHMANN_JSON_PASTE53(func, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34, v35, v36, v37, v38, v39, v40, v41, v42, v43, v44, v45, v46, v47, v48, v49, v50, v51, v52) NLOHMANN_JSON_PASTE2(func, v1) NLOHMANN_JSON_PASTE52(func, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34, v35, v36, v37, v38, v39, v40, v41, v42, v43, v44, v45, v46, v47, v48, v49, v50, v51, v52) +#define NLOHMANN_JSON_PASTE54(func, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34, v35, v36, v37, v38, v39, v40, v41, v42, v43, v44, v45, v46, v47, v48, v49, v50, v51, v52, v53) NLOHMANN_JSON_PASTE2(func, v1) NLOHMANN_JSON_PASTE53(func, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34, v35, v36, v37, v38, v39, v40, v41, v42, v43, v44, v45, v46, v47, v48, v49, v50, v51, v52, v53) +#define NLOHMANN_JSON_PASTE55(func, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34, v35, v36, v37, v38, v39, v40, v41, v42, v43, v44, v45, v46, v47, v48, v49, v50, v51, v52, v53, v54) NLOHMANN_JSON_PASTE2(func, v1) NLOHMANN_JSON_PASTE54(func, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34, v35, v36, v37, v38, v39, v40, v41, v42, v43, v44, v45, v46, v47, v48, v49, v50, v51, v52, v53, v54) +#define NLOHMANN_JSON_PASTE56(func, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34, v35, v36, v37, v38, v39, v40, v41, v42, v43, v44, v45, v46, v47, v48, v49, v50, v51, v52, v53, v54, v55) NLOHMANN_JSON_PASTE2(func, v1) NLOHMANN_JSON_PASTE55(func, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34, v35, v36, v37, v38, v39, v40, v41, v42, v43, v44, v45, v46, v47, v48, v49, v50, v51, v52, v53, v54, v55) +#define NLOHMANN_JSON_PASTE57(func, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34, v35, v36, v37, v38, v39, v40, v41, v42, v43, v44, v45, v46, v47, v48, v49, v50, v51, v52, v53, v54, v55, v56) NLOHMANN_JSON_PASTE2(func, v1) NLOHMANN_JSON_PASTE56(func, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34, v35, v36, v37, v38, v39, v40, v41, v42, v43, v44, v45, v46, v47, v48, v49, v50, v51, v52, v53, v54, v55, v56) +#define NLOHMANN_JSON_PASTE58(func, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34, v35, v36, v37, v38, v39, v40, v41, v42, v43, v44, v45, v46, v47, v48, v49, v50, v51, v52, v53, v54, v55, v56, v57) NLOHMANN_JSON_PASTE2(func, v1) NLOHMANN_JSON_PASTE57(func, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34, v35, v36, v37, v38, v39, v40, v41, v42, v43, v44, v45, v46, v47, v48, v49, v50, v51, v52, v53, v54, v55, v56, v57) +#define NLOHMANN_JSON_PASTE59(func, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34, v35, v36, v37, v38, v39, v40, v41, v42, v43, v44, v45, v46, v47, v48, v49, v50, v51, v52, v53, v54, v55, v56, v57, v58) NLOHMANN_JSON_PASTE2(func, v1) NLOHMANN_JSON_PASTE58(func, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34, v35, v36, v37, v38, v39, v40, v41, v42, v43, v44, v45, v46, v47, v48, v49, v50, v51, v52, v53, v54, v55, v56, v57, v58) +#define NLOHMANN_JSON_PASTE60(func, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34, v35, v36, v37, v38, v39, v40, v41, v42, v43, v44, v45, v46, v47, v48, v49, v50, v51, v52, v53, v54, v55, v56, v57, v58, v59) NLOHMANN_JSON_PASTE2(func, v1) NLOHMANN_JSON_PASTE59(func, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34, v35, v36, v37, v38, v39, v40, v41, v42, v43, v44, v45, v46, v47, v48, v49, v50, v51, v52, v53, v54, v55, v56, v57, v58, v59) +#define NLOHMANN_JSON_PASTE61(func, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34, v35, v36, v37, v38, v39, v40, v41, v42, v43, v44, v45, v46, v47, v48, v49, v50, v51, v52, v53, v54, v55, v56, v57, v58, v59, v60) NLOHMANN_JSON_PASTE2(func, v1) NLOHMANN_JSON_PASTE60(func, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34, v35, v36, v37, v38, v39, v40, v41, v42, v43, v44, v45, v46, v47, v48, v49, v50, v51, v52, v53, v54, v55, v56, v57, v58, v59, v60) +#define NLOHMANN_JSON_PASTE62(func, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34, v35, v36, v37, v38, v39, v40, v41, v42, v43, v44, v45, v46, v47, v48, v49, v50, v51, v52, v53, v54, v55, v56, v57, v58, v59, v60, v61) NLOHMANN_JSON_PASTE2(func, v1) NLOHMANN_JSON_PASTE61(func, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34, v35, v36, v37, v38, v39, v40, v41, v42, v43, v44, v45, v46, v47, v48, v49, v50, v51, v52, v53, v54, v55, v56, v57, v58, v59, v60, v61) +#define NLOHMANN_JSON_PASTE63(func, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34, v35, v36, v37, v38, v39, v40, v41, v42, v43, v44, v45, v46, v47, v48, v49, v50, v51, v52, v53, v54, v55, v56, v57, v58, v59, v60, v61, v62) NLOHMANN_JSON_PASTE2(func, v1) NLOHMANN_JSON_PASTE62(func, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34, v35, v36, v37, v38, v39, v40, v41, v42, v43, v44, v45, v46, v47, v48, v49, v50, v51, v52, v53, v54, v55, v56, v57, v58, v59, v60, v61, v62) +#define NLOHMANN_JSON_PASTE64(func, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34, v35, v36, v37, v38, v39, v40, v41, v42, v43, v44, v45, v46, v47, v48, v49, v50, v51, v52, v53, v54, v55, v56, v57, v58, v59, v60, v61, v62, v63) NLOHMANN_JSON_PASTE2(func, v1) NLOHMANN_JSON_PASTE63(func, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34, v35, v36, v37, v38, v39, v40, v41, v42, v43, v44, v45, v46, v47, v48, v49, v50, v51, v52, v53, v54, v55, v56, v57, v58, v59, v60, v61, v62, v63) + +#define NLOHMANN_JSON_TO(v1) nlohmann_json_j[#v1] = nlohmann_json_t.v1; +#define NLOHMANN_JSON_FROM(v1) nlohmann_json_j.at(#v1).get_to(nlohmann_json_t.v1); +#define NLOHMANN_JSON_FROM_WITH_DEFAULT(v1) nlohmann_json_t.v1 = !nlohmann_json_j.is_null() ? nlohmann_json_j.value(#v1, nlohmann_json_default_obj.v1) : nlohmann_json_default_obj.v1; + +/*! +@brief macro +@def NLOHMANN_DEFINE_TYPE_INTRUSIVE +@since version 3.9.0 +@sa https://json.nlohmann.me/api/macros/nlohmann_define_type_intrusive/ +*/ +#define NLOHMANN_DEFINE_TYPE_INTRUSIVE(Type, ...) \ + template::value, int> = 0> \ + friend void to_json(BasicJsonType& nlohmann_json_j, const Type& nlohmann_json_t) { NLOHMANN_JSON_EXPAND(NLOHMANN_JSON_PASTE(NLOHMANN_JSON_TO, __VA_ARGS__)) } \ + template::value, int> = 0> \ + friend void from_json(const BasicJsonType& nlohmann_json_j, Type& nlohmann_json_t) { NLOHMANN_JSON_EXPAND(NLOHMANN_JSON_PASTE(NLOHMANN_JSON_FROM, __VA_ARGS__)) } + +/*! +@brief macro +@def NLOHMANN_DEFINE_TYPE_INTRUSIVE_WITH_DEFAULT +@since version 3.11.0 +@sa https://json.nlohmann.me/api/macros/nlohmann_define_type_intrusive/ +*/ +#define NLOHMANN_DEFINE_TYPE_INTRUSIVE_WITH_DEFAULT(Type, ...) \ + template::value, int> = 0> \ + friend void to_json(BasicJsonType& nlohmann_json_j, const Type& nlohmann_json_t) { NLOHMANN_JSON_EXPAND(NLOHMANN_JSON_PASTE(NLOHMANN_JSON_TO, __VA_ARGS__)) } \ + template::value, int> = 0> \ + friend void from_json(const BasicJsonType& nlohmann_json_j, Type& nlohmann_json_t) { const Type nlohmann_json_default_obj{}; NLOHMANN_JSON_EXPAND(NLOHMANN_JSON_PASTE(NLOHMANN_JSON_FROM_WITH_DEFAULT, __VA_ARGS__)) } + +/*! +@brief macro +@def NLOHMANN_DEFINE_TYPE_INTRUSIVE_ONLY_SERIALIZE +@since version 3.11.3 +@sa https://json.nlohmann.me/api/macros/nlohmann_define_type_intrusive/ +*/ +#define NLOHMANN_DEFINE_TYPE_INTRUSIVE_ONLY_SERIALIZE(Type, ...) \ + template::value, int> = 0> \ + friend void to_json(BasicJsonType& nlohmann_json_j, const Type& nlohmann_json_t) { NLOHMANN_JSON_EXPAND(NLOHMANN_JSON_PASTE(NLOHMANN_JSON_TO, __VA_ARGS__)) } + +/*! +@brief macro +@def NLOHMANN_DEFINE_TYPE_NON_INTRUSIVE +@since version 3.9.0 +@sa https://json.nlohmann.me/api/macros/nlohmann_define_type_non_intrusive/ +*/ +#define NLOHMANN_DEFINE_TYPE_NON_INTRUSIVE(Type, ...) \ + template::value, int> = 0> \ + void to_json(BasicJsonType& nlohmann_json_j, const Type& nlohmann_json_t) { NLOHMANN_JSON_EXPAND(NLOHMANN_JSON_PASTE(NLOHMANN_JSON_TO, __VA_ARGS__)) } \ + template::value, int> = 0> \ + void from_json(const BasicJsonType& nlohmann_json_j, Type& nlohmann_json_t) { NLOHMANN_JSON_EXPAND(NLOHMANN_JSON_PASTE(NLOHMANN_JSON_FROM, __VA_ARGS__)) } + +/*! +@brief macro +@def NLOHMANN_DEFINE_TYPE_NON_INTRUSIVE_WITH_DEFAULT +@since version 3.11.0 +@sa https://json.nlohmann.me/api/macros/nlohmann_define_type_non_intrusive/ +*/ +#define NLOHMANN_DEFINE_TYPE_NON_INTRUSIVE_WITH_DEFAULT(Type, ...) \ + template::value, int> = 0> \ + void to_json(BasicJsonType& nlohmann_json_j, const Type& nlohmann_json_t) { NLOHMANN_JSON_EXPAND(NLOHMANN_JSON_PASTE(NLOHMANN_JSON_TO, __VA_ARGS__)) } \ + template::value, int> = 0> \ + void from_json(const BasicJsonType& nlohmann_json_j, Type& nlohmann_json_t) { const Type nlohmann_json_default_obj{}; NLOHMANN_JSON_EXPAND(NLOHMANN_JSON_PASTE(NLOHMANN_JSON_FROM_WITH_DEFAULT, __VA_ARGS__)) } + +/*! +@brief macro +@def NLOHMANN_DEFINE_TYPE_NON_INTRUSIVE_ONLY_SERIALIZE +@since version 3.11.3 +@sa https://json.nlohmann.me/api/macros/nlohmann_define_type_non_intrusive/ +*/ +#define NLOHMANN_DEFINE_TYPE_NON_INTRUSIVE_ONLY_SERIALIZE(Type, ...) \ + template::value, int> = 0> \ + void to_json(BasicJsonType& nlohmann_json_j, const Type& nlohmann_json_t) { NLOHMANN_JSON_EXPAND(NLOHMANN_JSON_PASTE(NLOHMANN_JSON_TO, __VA_ARGS__)) } + +/*! +@brief macro +@def NLOHMANN_DEFINE_DERIVED_TYPE_INTRUSIVE +@since version 3.12.0 +@sa https://json.nlohmann.me/api/macros/nlohmann_define_derived_type/ +*/ +#define NLOHMANN_DEFINE_DERIVED_TYPE_INTRUSIVE(Type, BaseType, ...) \ + template::value, int> = 0> \ + friend void to_json(BasicJsonType& nlohmann_json_j, const Type& nlohmann_json_t) { nlohmann::to_json(nlohmann_json_j, static_cast(nlohmann_json_t)); NLOHMANN_JSON_EXPAND(NLOHMANN_JSON_PASTE(NLOHMANN_JSON_TO, __VA_ARGS__)) } \ + template::value, int> = 0> \ + friend void from_json(const BasicJsonType& nlohmann_json_j, Type& nlohmann_json_t) { nlohmann::from_json(nlohmann_json_j, static_cast(nlohmann_json_t)); NLOHMANN_JSON_EXPAND(NLOHMANN_JSON_PASTE(NLOHMANN_JSON_FROM, __VA_ARGS__)) } + +/*! +@brief macro +@def NLOHMANN_DEFINE_DERIVED_TYPE_INTRUSIVE_WITH_DEFAULT +@since version 3.12.0 +@sa https://json.nlohmann.me/api/macros/nlohmann_define_derived_type/ +*/ +#define NLOHMANN_DEFINE_DERIVED_TYPE_INTRUSIVE_WITH_DEFAULT(Type, BaseType, ...) \ + template::value, int> = 0> \ + friend void to_json(BasicJsonType& nlohmann_json_j, const Type& nlohmann_json_t) { nlohmann::to_json(nlohmann_json_j, static_cast(nlohmann_json_t)); NLOHMANN_JSON_EXPAND(NLOHMANN_JSON_PASTE(NLOHMANN_JSON_TO, __VA_ARGS__)) } \ + template::value, int> = 0> \ + friend void from_json(const BasicJsonType& nlohmann_json_j, Type& nlohmann_json_t) { nlohmann::from_json(nlohmann_json_j, static_cast(nlohmann_json_t)); const Type nlohmann_json_default_obj{}; NLOHMANN_JSON_EXPAND(NLOHMANN_JSON_PASTE(NLOHMANN_JSON_FROM_WITH_DEFAULT, __VA_ARGS__)) } + +/*! +@brief macro +@def NLOHMANN_DEFINE_DERIVED_TYPE_INTRUSIVE_ONLY_SERIALIZE +@since version 3.12.0 +@sa https://json.nlohmann.me/api/macros/nlohmann_define_derived_type/ +*/ +#define NLOHMANN_DEFINE_DERIVED_TYPE_INTRUSIVE_ONLY_SERIALIZE(Type, BaseType, ...) \ + template::value, int> = 0> \ + friend void to_json(BasicJsonType& nlohmann_json_j, const Type& nlohmann_json_t) { nlohmann::to_json(nlohmann_json_j, static_cast(nlohmann_json_t)); NLOHMANN_JSON_EXPAND(NLOHMANN_JSON_PASTE(NLOHMANN_JSON_TO, __VA_ARGS__)) } + +/*! +@brief macro +@def NLOHMANN_DEFINE_DERIVED_TYPE_NON_INTRUSIVE +@since version 3.12.0 +@sa https://json.nlohmann.me/api/macros/nlohmann_define_derived_type/ +*/ +#define NLOHMANN_DEFINE_DERIVED_TYPE_NON_INTRUSIVE(Type, BaseType, ...) \ + template::value, int> = 0> \ + void to_json(BasicJsonType& nlohmann_json_j, const Type& nlohmann_json_t) { nlohmann::to_json(nlohmann_json_j, static_cast(nlohmann_json_t)); NLOHMANN_JSON_EXPAND(NLOHMANN_JSON_PASTE(NLOHMANN_JSON_TO, __VA_ARGS__)) } \ + template::value, int> = 0> \ + void from_json(const BasicJsonType& nlohmann_json_j, Type& nlohmann_json_t) { nlohmann::from_json(nlohmann_json_j, static_cast(nlohmann_json_t)); NLOHMANN_JSON_EXPAND(NLOHMANN_JSON_PASTE(NLOHMANN_JSON_FROM, __VA_ARGS__)) } + +/*! +@brief macro +@def NLOHMANN_DEFINE_DERIVED_TYPE_NON_INTRUSIVE_WITH_DEFAULT +@since version 3.12.0 +@sa https://json.nlohmann.me/api/macros/nlohmann_define_derived_type/ +*/ +#define NLOHMANN_DEFINE_DERIVED_TYPE_NON_INTRUSIVE_WITH_DEFAULT(Type, BaseType, ...) \ + template::value, int> = 0> \ + void to_json(BasicJsonType& nlohmann_json_j, const Type& nlohmann_json_t) { nlohmann::to_json(nlohmann_json_j, static_cast(nlohmann_json_t)); NLOHMANN_JSON_EXPAND(NLOHMANN_JSON_PASTE(NLOHMANN_JSON_TO, __VA_ARGS__)) } \ + template::value, int> = 0> \ + void from_json(const BasicJsonType& nlohmann_json_j, Type& nlohmann_json_t) { nlohmann::from_json(nlohmann_json_j, static_cast(nlohmann_json_t)); const Type nlohmann_json_default_obj{}; NLOHMANN_JSON_EXPAND(NLOHMANN_JSON_PASTE(NLOHMANN_JSON_FROM_WITH_DEFAULT, __VA_ARGS__)) } + +/*! +@brief macro +@def NLOHMANN_DEFINE_DERIVED_TYPE_NON_INTRUSIVE_ONLY_SERIALIZE +@since version 3.12.0 +@sa https://json.nlohmann.me/api/macros/nlohmann_define_derived_type/ +*/ +#define NLOHMANN_DEFINE_DERIVED_TYPE_NON_INTRUSIVE_ONLY_SERIALIZE(Type, BaseType, ...) \ + template::value, int> = 0> \ + void to_json(BasicJsonType& nlohmann_json_j, const Type& nlohmann_json_t) { nlohmann::to_json(nlohmann_json_j, static_cast(nlohmann_json_t)); NLOHMANN_JSON_EXPAND(NLOHMANN_JSON_PASTE(NLOHMANN_JSON_TO, __VA_ARGS__)) } + +// inspired from https://stackoverflow.com/a/26745591 +// allows calling any std function as if (e.g., with begin): +// using std::begin; begin(x); +// +// it allows using the detected idiom to retrieve the return type +// of such an expression +#define NLOHMANN_CAN_CALL_STD_FUNC_IMPL(std_name) \ + namespace detail { \ + using std::std_name; \ + \ + template \ + using result_of_##std_name = decltype(std_name(std::declval()...)); \ + } \ + \ + namespace detail2 { \ + struct std_name##_tag \ + { \ + }; \ + \ + template \ + std_name##_tag std_name(T&&...); \ + \ + template \ + using result_of_##std_name = decltype(std_name(std::declval()...)); \ + \ + template \ + struct would_call_std_##std_name \ + { \ + static constexpr auto const value = ::nlohmann::detail:: \ + is_detected_exact::value; \ + }; \ + } /* namespace detail2 */ \ + \ + template \ + struct would_call_std_##std_name : detail2::would_call_std_##std_name \ + { \ + } + +#ifndef JSON_USE_IMPLICIT_CONVERSIONS + #define JSON_USE_IMPLICIT_CONVERSIONS 1 +#endif + +#if JSON_USE_IMPLICIT_CONVERSIONS + #define JSON_EXPLICIT +#else + #define JSON_EXPLICIT explicit +#endif + +#ifndef JSON_DISABLE_ENUM_SERIALIZATION + #define JSON_DISABLE_ENUM_SERIALIZATION 0 +#endif + +#ifndef JSON_USE_GLOBAL_UDLS + #define JSON_USE_GLOBAL_UDLS 1 +#endif + +#if JSON_HAS_THREE_WAY_COMPARISON + #include // partial_ordering +#endif + +NLOHMANN_JSON_NAMESPACE_BEGIN +namespace detail +{ + +/////////////////////////// +// JSON type enumeration // +/////////////////////////// + +/*! +@brief the JSON type enumeration + +This enumeration collects the different JSON types. It is internally used to +distinguish the stored values, and the functions @ref basic_json::is_null(), +@ref basic_json::is_object(), @ref basic_json::is_array(), +@ref basic_json::is_string(), @ref basic_json::is_boolean(), +@ref basic_json::is_number() (with @ref basic_json::is_number_integer(), +@ref basic_json::is_number_unsigned(), and @ref basic_json::is_number_float()), +@ref basic_json::is_discarded(), @ref basic_json::is_primitive(), and +@ref basic_json::is_structured() rely on it. + +@note There are three enumeration entries (number_integer, number_unsigned, and +number_float), because the library distinguishes these three types for numbers: +@ref basic_json::number_unsigned_t is used for unsigned integers, +@ref basic_json::number_integer_t is used for signed integers, and +@ref basic_json::number_float_t is used for floating-point numbers or to +approximate integers which do not fit in the limits of their respective type. + +@sa see @ref basic_json::basic_json(const value_t value_type) -- create a JSON +value with the default value for a given type + +@since version 1.0.0 +*/ +enum class value_t : std::uint8_t +{ + null, ///< null value + object, ///< object (unordered set of name/value pairs) + array, ///< array (ordered collection of values) + string, ///< string value + boolean, ///< boolean value + number_integer, ///< number value (signed integer) + number_unsigned, ///< number value (unsigned integer) + number_float, ///< number value (floating-point) + binary, ///< binary array (ordered collection of bytes) + discarded ///< discarded by the parser callback function +}; + +/*! +@brief comparison operator for JSON types + +Returns an ordering that is similar to Python: +- order: null < boolean < number < object < array < string < binary +- furthermore, each type is not smaller than itself +- discarded values are not comparable +- binary is represented as a b"" string in python and directly comparable to a + string; however, making a binary array directly comparable with a string would + be surprising behavior in a JSON file. + +@since version 1.0.0 +*/ +#if JSON_HAS_THREE_WAY_COMPARISON + inline std::partial_ordering operator<=>(const value_t lhs, const value_t rhs) noexcept // *NOPAD* +#else + inline bool operator<(const value_t lhs, const value_t rhs) noexcept +#endif +{ + static constexpr std::array order = {{ + 0 /* null */, 3 /* object */, 4 /* array */, 5 /* string */, + 1 /* boolean */, 2 /* integer */, 2 /* unsigned */, 2 /* float */, + 6 /* binary */ + } + }; + + const auto l_index = static_cast(lhs); + const auto r_index = static_cast(rhs); +#if JSON_HAS_THREE_WAY_COMPARISON + if (l_index < order.size() && r_index < order.size()) + { + return order[l_index] <=> order[r_index]; // *NOPAD* + } + return std::partial_ordering::unordered; +#else + return l_index < order.size() && r_index < order.size() && order[l_index] < order[r_index]; +#endif +} + +// GCC selects the built-in operator< over an operator rewritten from +// a user-defined spaceship operator +// Clang, MSVC, and ICC select the rewritten candidate +// (see GCC bug https://gcc.gnu.org/bugzilla/show_bug.cgi?id=105200) +#if JSON_HAS_THREE_WAY_COMPARISON && defined(__GNUC__) +inline bool operator<(const value_t lhs, const value_t rhs) noexcept +{ + return std::is_lt(lhs <=> rhs); // *NOPAD* +} +#endif + +} // namespace detail +NLOHMANN_JSON_NAMESPACE_END + +// #include +// __ _____ _____ _____ +// __| | __| | | | JSON for Modern C++ +// | | |__ | | | | | | version 3.12.0 +// |_____|_____|_____|_|___| https://github.com/nlohmann/json +// +// SPDX-FileCopyrightText: 2013 - 2025 Niels Lohmann +// SPDX-License-Identifier: MIT + + + +// #include + + +NLOHMANN_JSON_NAMESPACE_BEGIN +namespace detail +{ + +/*! +@brief replace all occurrences of a substring by another string + +@param[in,out] s the string to manipulate; changed so that all + occurrences of @a f are replaced with @a t +@param[in] f the substring to replace with @a t +@param[in] t the string to replace @a f + +@pre The search string @a f must not be empty. **This precondition is +enforced with an assertion.** + +@since version 2.0.0 +*/ +template +inline void replace_substring(StringType& s, const StringType& f, + const StringType& t) +{ + JSON_ASSERT(!f.empty()); + for (auto pos = s.find(f); // find first occurrence of f + pos != StringType::npos; // make sure f was found + s.replace(pos, f.size(), t), // replace with t, and + pos = s.find(f, pos + t.size())) // find next occurrence of f + {} +} + +/*! + * @brief string escaping as described in RFC 6901 (Sect. 4) + * @param[in] s string to escape + * @return escaped string + * + * Note the order of escaping "~" to "~0" and "/" to "~1" is important. + */ +template +inline StringType escape(StringType s) +{ + replace_substring(s, StringType{"~"}, StringType{"~0"}); + replace_substring(s, StringType{"/"}, StringType{"~1"}); + return s; +} + +/*! + * @brief string unescaping as described in RFC 6901 (Sect. 4) + * @param[in] s string to unescape + * @return unescaped string + * + * Note the order of escaping "~1" to "/" and "~0" to "~" is important. + */ +template +static void unescape(StringType& s) +{ + replace_substring(s, StringType{"~1"}, StringType{"/"}); + replace_substring(s, StringType{"~0"}, StringType{"~"}); +} + +} // namespace detail +NLOHMANN_JSON_NAMESPACE_END + +// #include +// __ _____ _____ _____ +// __| | __| | | | JSON for Modern C++ +// | | |__ | | | | | | version 3.12.0 +// |_____|_____|_____|_|___| https://github.com/nlohmann/json +// +// SPDX-FileCopyrightText: 2013 - 2025 Niels Lohmann +// SPDX-License-Identifier: MIT + + + +#include // size_t + +// #include + + +NLOHMANN_JSON_NAMESPACE_BEGIN +namespace detail +{ + +/// struct to capture the start position of the current token +struct position_t +{ + /// the total number of characters read + std::size_t chars_read_total = 0; + /// the number of characters read in the current line + std::size_t chars_read_current_line = 0; + /// the number of lines read + std::size_t lines_read = 0; + + /// conversion to size_t to preserve SAX interface + constexpr operator size_t() const + { + return chars_read_total; + } +}; + +} // namespace detail +NLOHMANN_JSON_NAMESPACE_END + +// #include + +// #include +// __ _____ _____ _____ +// __| | __| | | | JSON for Modern C++ +// | | |__ | | | | | | version 3.12.0 +// |_____|_____|_____|_|___| https://github.com/nlohmann/json +// +// SPDX-FileCopyrightText: 2013 - 2025 Niels Lohmann +// SPDX-FileCopyrightText: 2018 The Abseil Authors +// SPDX-License-Identifier: MIT + + + +#include // array +#include // size_t +#include // conditional, enable_if, false_type, integral_constant, is_constructible, is_integral, is_same, remove_cv, remove_reference, true_type +#include // index_sequence, make_index_sequence, index_sequence_for + +// #include + + +NLOHMANN_JSON_NAMESPACE_BEGIN +namespace detail +{ + +template +using uncvref_t = typename std::remove_cv::type>::type; + +#ifdef JSON_HAS_CPP_14 + +// the following utilities are natively available in C++14 +using std::enable_if_t; +using std::index_sequence; +using std::make_index_sequence; +using std::index_sequence_for; + +#else + +// alias templates to reduce boilerplate +template +using enable_if_t = typename std::enable_if::type; + +// The following code is taken from https://github.com/abseil/abseil-cpp/blob/10cb35e459f5ecca5b2ff107635da0bfa41011b4/absl/utility/utility.h +// which is part of Google Abseil (https://github.com/abseil/abseil-cpp), licensed under the Apache License 2.0. + +//// START OF CODE FROM GOOGLE ABSEIL + +// integer_sequence +// +// Class template representing a compile-time integer sequence. An instantiation +// of `integer_sequence` has a sequence of integers encoded in its +// type through its template arguments (which is a common need when +// working with C++11 variadic templates). `absl::integer_sequence` is designed +// to be a drop-in replacement for C++14's `std::integer_sequence`. +// +// Example: +// +// template< class T, T... Ints > +// void user_function(integer_sequence); +// +// int main() +// { +// // user_function's `T` will be deduced to `int` and `Ints...` +// // will be deduced to `0, 1, 2, 3, 4`. +// user_function(make_integer_sequence()); +// } +template +struct integer_sequence +{ + using value_type = T; + static constexpr std::size_t size() noexcept + { + return sizeof...(Ints); + } +}; + +// index_sequence +// +// A helper template for an `integer_sequence` of `size_t`, +// `absl::index_sequence` is designed to be a drop-in replacement for C++14's +// `std::index_sequence`. +template +using index_sequence = integer_sequence; + +namespace utility_internal +{ + +template +struct Extend; + +// Note that SeqSize == sizeof...(Ints). It's passed explicitly for efficiency. +template +struct Extend, SeqSize, 0> +{ + using type = integer_sequence < T, Ints..., (Ints + SeqSize)... >; +}; + +template +struct Extend, SeqSize, 1> +{ + using type = integer_sequence < T, Ints..., (Ints + SeqSize)..., 2 * SeqSize >; +}; + +// Recursion helper for 'make_integer_sequence'. +// 'Gen::type' is an alias for 'integer_sequence'. +template +struct Gen +{ + using type = + typename Extend < typename Gen < T, N / 2 >::type, N / 2, N % 2 >::type; +}; + +template +struct Gen +{ + using type = integer_sequence; +}; + +} // namespace utility_internal + +// Compile-time sequences of integers + +// make_integer_sequence +// +// This template alias is equivalent to +// `integer_sequence`, and is designed to be a drop-in +// replacement for C++14's `std::make_integer_sequence`. +template +using make_integer_sequence = typename utility_internal::Gen::type; + +// make_index_sequence +// +// This template alias is equivalent to `index_sequence<0, 1, ..., N-1>`, +// and is designed to be a drop-in replacement for C++14's +// `std::make_index_sequence`. +template +using make_index_sequence = make_integer_sequence; + +// index_sequence_for +// +// Converts a typename pack into an index sequence of the same length, and +// is designed to be a drop-in replacement for C++14's +// `std::index_sequence_for()` +template +using index_sequence_for = make_index_sequence; + +//// END OF CODE FROM GOOGLE ABSEIL + +#endif + +// dispatch utility (taken from ranges-v3) +template struct priority_tag : priority_tag < N - 1 > {}; +template<> struct priority_tag<0> {}; + +// taken from ranges-v3 +template +struct static_const +{ + static JSON_INLINE_VARIABLE constexpr T value{}; +}; + +#ifndef JSON_HAS_CPP_17 + template + constexpr T static_const::value; +#endif + +template +constexpr std::array make_array(Args&& ... args) +{ + return std::array {{static_cast(std::forward(args))...}}; +} + +} // namespace detail +NLOHMANN_JSON_NAMESPACE_END + +// #include +// __ _____ _____ _____ +// __| | __| | | | JSON for Modern C++ +// | | |__ | | | | | | version 3.12.0 +// |_____|_____|_____|_|___| https://github.com/nlohmann/json +// +// SPDX-FileCopyrightText: 2013 - 2025 Niels Lohmann +// SPDX-License-Identifier: MIT + + + +#include // numeric_limits +#include // char_traits +#include // tuple +#include // false_type, is_constructible, is_integral, is_same, true_type +#include // declval + +// #include +// __ _____ _____ _____ +// __| | __| | | | JSON for Modern C++ +// | | |__ | | | | | | version 3.12.0 +// |_____|_____|_____|_|___| https://github.com/nlohmann/json +// +// SPDX-FileCopyrightText: 2013 - 2025 Niels Lohmann +// SPDX-License-Identifier: MIT + + + +#include // random_access_iterator_tag + +// #include + +// #include + +// #include + + +NLOHMANN_JSON_NAMESPACE_BEGIN +namespace detail +{ + +template +struct iterator_types {}; + +template +struct iterator_types < + It, + void_t> +{ + using difference_type = typename It::difference_type; + using value_type = typename It::value_type; + using pointer = typename It::pointer; + using reference = typename It::reference; + using iterator_category = typename It::iterator_category; +}; + +// This is required as some compilers implement std::iterator_traits in a way that +// doesn't work with SFINAE. See https://github.com/nlohmann/json/issues/1341. +template +struct iterator_traits +{ +}; + +template +struct iterator_traits < T, enable_if_t < !std::is_pointer::value >> + : iterator_types +{ +}; + +template +struct iterator_traits::value>> +{ + using iterator_category = std::random_access_iterator_tag; + using value_type = T; + using difference_type = ptrdiff_t; + using pointer = T*; + using reference = T&; +}; + +} // namespace detail +NLOHMANN_JSON_NAMESPACE_END + +// #include + +// #include +// __ _____ _____ _____ +// __| | __| | | | JSON for Modern C++ +// | | |__ | | | | | | version 3.12.0 +// |_____|_____|_____|_|___| https://github.com/nlohmann/json +// +// SPDX-FileCopyrightText: 2013 - 2025 Niels Lohmann +// SPDX-License-Identifier: MIT + + + +// #include + + +NLOHMANN_JSON_NAMESPACE_BEGIN + +NLOHMANN_CAN_CALL_STD_FUNC_IMPL(begin); + +NLOHMANN_JSON_NAMESPACE_END + +// #include +// __ _____ _____ _____ +// __| | __| | | | JSON for Modern C++ +// | | |__ | | | | | | version 3.12.0 +// |_____|_____|_____|_|___| https://github.com/nlohmann/json +// +// SPDX-FileCopyrightText: 2013 - 2025 Niels Lohmann +// SPDX-License-Identifier: MIT + + + +// #include + + +NLOHMANN_JSON_NAMESPACE_BEGIN + +NLOHMANN_CAN_CALL_STD_FUNC_IMPL(end); + +NLOHMANN_JSON_NAMESPACE_END + +// #include + +// #include + +// #include +// __ _____ _____ _____ +// __| | __| | | | JSON for Modern C++ +// | | |__ | | | | | | version 3.12.0 +// |_____|_____|_____|_|___| https://github.com/nlohmann/json +// +// SPDX-FileCopyrightText: 2013 - 2025 Niels Lohmann +// SPDX-License-Identifier: MIT + +#ifndef INCLUDE_NLOHMANN_JSON_FWD_HPP_ + #define INCLUDE_NLOHMANN_JSON_FWD_HPP_ + + #include // int64_t, uint64_t + #include // map + #include // allocator + #include // string + #include // vector + + // #include + + + /*! + @brief namespace for Niels Lohmann + @see https://github.com/nlohmann + @since version 1.0.0 + */ + NLOHMANN_JSON_NAMESPACE_BEGIN + + /*! + @brief default JSONSerializer template argument + + This serializer ignores the template arguments and uses ADL + ([argument-dependent lookup](https://en.cppreference.com/w/cpp/language/adl)) + for serialization. + */ + template + struct adl_serializer; + + /// a class to store JSON values + /// @sa https://json.nlohmann.me/api/basic_json/ + template class ObjectType = + std::map, + template class ArrayType = std::vector, + class StringType = std::string, class BooleanType = bool, + class NumberIntegerType = std::int64_t, + class NumberUnsignedType = std::uint64_t, + class NumberFloatType = double, + template class AllocatorType = std::allocator, + template class JSONSerializer = + adl_serializer, + class BinaryType = std::vector, // cppcheck-suppress syntaxError + class CustomBaseClass = void> + class basic_json; + + /// @brief JSON Pointer defines a string syntax for identifying a specific value within a JSON document + /// @sa https://json.nlohmann.me/api/json_pointer/ + template + class json_pointer; + + /*! + @brief default specialization + @sa https://json.nlohmann.me/api/json/ + */ + using json = basic_json<>; + + /// @brief a minimal map-like container that preserves insertion order + /// @sa https://json.nlohmann.me/api/ordered_map/ + template + struct ordered_map; + + /// @brief specialization that maintains the insertion order of object keys + /// @sa https://json.nlohmann.me/api/ordered_json/ + using ordered_json = basic_json; + + NLOHMANN_JSON_NAMESPACE_END + +#endif // INCLUDE_NLOHMANN_JSON_FWD_HPP_ + + +NLOHMANN_JSON_NAMESPACE_BEGIN +/*! +@brief detail namespace with internal helper functions + +This namespace collects functions that should not be exposed, +implementations of some @ref basic_json methods, and meta-programming helpers. + +@since version 2.1.0 +*/ +namespace detail +{ + +///////////// +// helpers // +///////////// + +// Note to maintainers: +// +// Every trait in this file expects a non CV-qualified type. +// The only exceptions are in the 'aliases for detected' section +// (i.e. those of the form: decltype(T::member_function(std::declval()))) +// +// In this case, T has to be properly CV-qualified to constraint the function arguments +// (e.g. to_json(BasicJsonType&, const T&)) + +template struct is_basic_json : std::false_type {}; + +NLOHMANN_BASIC_JSON_TPL_DECLARATION +struct is_basic_json : std::true_type {}; + +// used by exceptions create() member functions +// true_type for pointer to possibly cv-qualified basic_json or std::nullptr_t +// false_type otherwise +template +struct is_basic_json_context : + std::integral_constant < bool, + is_basic_json::type>::type>::value + || std::is_same::value > +{}; + +////////////////////// +// json_ref helpers // +////////////////////// + +template +class json_ref; + +template +struct is_json_ref : std::false_type {}; + +template +struct is_json_ref> : std::true_type {}; + +////////////////////////// +// aliases for detected // +////////////////////////// + +template +using mapped_type_t = typename T::mapped_type; + +template +using key_type_t = typename T::key_type; + +template +using value_type_t = typename T::value_type; + +template +using difference_type_t = typename T::difference_type; + +template +using pointer_t = typename T::pointer; + +template +using reference_t = typename T::reference; + +template +using iterator_category_t = typename T::iterator_category; + +template +using to_json_function = decltype(T::to_json(std::declval()...)); + +template +using from_json_function = decltype(T::from_json(std::declval()...)); + +template +using get_template_function = decltype(std::declval().template get()); + +// trait checking if JSONSerializer::from_json(json const&, udt&) exists +template +struct has_from_json : std::false_type {}; + +// trait checking if j.get is valid +// use this trait instead of std::is_constructible or std::is_convertible, +// both rely on, or make use of implicit conversions, and thus fail when T +// has several constructors/operator= (see https://github.com/nlohmann/json/issues/958) +template +struct is_getable +{ + static constexpr bool value = is_detected::value; +}; + +template +struct has_from_json < BasicJsonType, T, enable_if_t < !is_basic_json::value >> +{ + using serializer = typename BasicJsonType::template json_serializer; + + static constexpr bool value = + is_detected_exact::value; +}; + +// This trait checks if JSONSerializer::from_json(json const&) exists +// this overload is used for non-default-constructible user-defined-types +template +struct has_non_default_from_json : std::false_type {}; + +template +struct has_non_default_from_json < BasicJsonType, T, enable_if_t < !is_basic_json::value >> +{ + using serializer = typename BasicJsonType::template json_serializer; + + static constexpr bool value = + is_detected_exact::value; +}; + +// This trait checks if BasicJsonType::json_serializer::to_json exists +// Do not evaluate the trait when T is a basic_json type, to avoid template instantiation infinite recursion. +template +struct has_to_json : std::false_type {}; + +template +struct has_to_json < BasicJsonType, T, enable_if_t < !is_basic_json::value >> +{ + using serializer = typename BasicJsonType::template json_serializer; + + static constexpr bool value = + is_detected_exact::value; +}; + +template +using detect_key_compare = typename T::key_compare; + +template +struct has_key_compare : std::integral_constant::value> {}; + +// obtains the actual object key comparator +template +struct actual_object_comparator +{ + using object_t = typename BasicJsonType::object_t; + using object_comparator_t = typename BasicJsonType::default_object_comparator_t; + using type = typename std::conditional < has_key_compare::value, + typename object_t::key_compare, object_comparator_t>::type; +}; + +template +using actual_object_comparator_t = typename actual_object_comparator::type; + +///////////////// +// char_traits // +///////////////// + +// Primary template of char_traits calls std char_traits +template +struct char_traits : std::char_traits +{}; + +// Explicitly define char traits for unsigned char since it is not standard +template<> +struct char_traits : std::char_traits +{ + using char_type = unsigned char; + using int_type = uint64_t; + + // Redefine to_int_type function + static int_type to_int_type(char_type c) noexcept + { + return static_cast(c); + } + + static char_type to_char_type(int_type i) noexcept + { + return static_cast(i); + } + + static constexpr int_type eof() noexcept + { + return static_cast(std::char_traits::eof()); + } +}; + +// Explicitly define char traits for signed char since it is not standard +template<> +struct char_traits : std::char_traits +{ + using char_type = signed char; + using int_type = uint64_t; + + // Redefine to_int_type function + static int_type to_int_type(char_type c) noexcept + { + return static_cast(c); + } + + static char_type to_char_type(int_type i) noexcept + { + return static_cast(i); + } + + static constexpr int_type eof() noexcept + { + return static_cast(std::char_traits::eof()); + } +}; + +/////////////////// +// is_ functions // +/////////////////// + +// https://en.cppreference.com/w/cpp/types/conjunction +template struct conjunction : std::true_type { }; +template struct conjunction : B { }; +template +struct conjunction +: std::conditional(B::value), conjunction, B>::type {}; + +// https://en.cppreference.com/w/cpp/types/negation +template struct negation : std::integral_constant < bool, !B::value > { }; + +// Reimplementation of is_constructible and is_default_constructible, due to them being broken for +// std::pair and std::tuple until LWG 2367 fix (see https://cplusplus.github.io/LWG/lwg-defects.html#2367). +// This causes compile errors in e.g. clang 3.5 or gcc 4.9. +template +struct is_default_constructible : std::is_default_constructible {}; + +template +struct is_default_constructible> + : conjunction, is_default_constructible> {}; + +template +struct is_default_constructible> + : conjunction, is_default_constructible> {}; + +template +struct is_default_constructible> + : conjunction...> {}; + +template +struct is_default_constructible> + : conjunction...> {}; + +template +struct is_constructible : std::is_constructible {}; + +template +struct is_constructible> : is_default_constructible> {}; + +template +struct is_constructible> : is_default_constructible> {}; + +template +struct is_constructible> : is_default_constructible> {}; + +template +struct is_constructible> : is_default_constructible> {}; + +template +struct is_iterator_traits : std::false_type {}; + +template +struct is_iterator_traits> +{ + private: + using traits = iterator_traits; + + public: + static constexpr auto value = + is_detected::value && + is_detected::value && + is_detected::value && + is_detected::value && + is_detected::value; +}; + +template +struct is_range +{ + private: + using t_ref = typename std::add_lvalue_reference::type; + + using iterator = detected_t; + using sentinel = detected_t; + + // to be 100% correct, it should use https://en.cppreference.com/w/cpp/iterator/input_or_output_iterator + // and https://en.cppreference.com/w/cpp/iterator/sentinel_for + // but reimplementing these would be too much work, as a lot of other concepts are used underneath + static constexpr auto is_iterator_begin = + is_iterator_traits>::value; + + public: + static constexpr bool value = !std::is_same::value && !std::is_same::value && is_iterator_begin; +}; + +template +using iterator_t = enable_if_t::value, result_of_begin())>>; + +template +using range_value_t = value_type_t>>; + +// The following implementation of is_complete_type is taken from +// https://blogs.msdn.microsoft.com/vcblog/2015/12/02/partial-support-for-expression-sfinae-in-vs-2015-update-1/ +// and is written by Xiang Fan who agreed to using it in this library. + +template +struct is_complete_type : std::false_type {}; + +template +struct is_complete_type : std::true_type {}; + +template +struct is_compatible_object_type_impl : std::false_type {}; + +template +struct is_compatible_object_type_impl < + BasicJsonType, CompatibleObjectType, + enable_if_t < is_detected::value&& + is_detected::value >> +{ + using object_t = typename BasicJsonType::object_t; + + // macOS's is_constructible does not play well with nonesuch... + static constexpr bool value = + is_constructible::value && + is_constructible::value; +}; + +template +struct is_compatible_object_type + : is_compatible_object_type_impl {}; + +template +struct is_constructible_object_type_impl : std::false_type {}; + +template +struct is_constructible_object_type_impl < + BasicJsonType, ConstructibleObjectType, + enable_if_t < is_detected::value&& + is_detected::value >> +{ + using object_t = typename BasicJsonType::object_t; + + static constexpr bool value = + (is_default_constructible::value && + (std::is_move_assignable::value || + std::is_copy_assignable::value) && + (is_constructible::value && + std::is_same < + typename object_t::mapped_type, + typename ConstructibleObjectType::mapped_type >::value)) || + (has_from_json::value || + has_non_default_from_json < + BasicJsonType, + typename ConstructibleObjectType::mapped_type >::value); +}; + +template +struct is_constructible_object_type + : is_constructible_object_type_impl {}; + +template +struct is_compatible_string_type +{ + static constexpr auto value = + is_constructible::value; +}; + +template +struct is_constructible_string_type +{ + // launder type through decltype() to fix compilation failure on ICPC +#ifdef __INTEL_COMPILER + using laundered_type = decltype(std::declval()); +#else + using laundered_type = ConstructibleStringType; +#endif + + static constexpr auto value = + conjunction < + is_constructible, + is_detected_exact>::value; +}; + +template +struct is_compatible_array_type_impl : std::false_type {}; + +template +struct is_compatible_array_type_impl < + BasicJsonType, CompatibleArrayType, + enable_if_t < + is_detected::value&& + is_iterator_traits>>::value&& +// special case for types like std::filesystem::path whose iterator's value_type are themselves +// c.f. https://github.com/nlohmann/json/pull/3073 + !std::is_same>::value >> +{ + static constexpr bool value = + is_constructible>::value; +}; + +template +struct is_compatible_array_type + : is_compatible_array_type_impl {}; + +template +struct is_constructible_array_type_impl : std::false_type {}; + +template +struct is_constructible_array_type_impl < + BasicJsonType, ConstructibleArrayType, + enable_if_t::value >> + : std::true_type {}; + +template +struct is_constructible_array_type_impl < + BasicJsonType, ConstructibleArrayType, + enable_if_t < !std::is_same::value&& + !is_compatible_string_type::value&& + is_default_constructible::value&& +(std::is_move_assignable::value || + std::is_copy_assignable::value)&& +is_detected::value&& +is_iterator_traits>>::value&& +is_detected::value&& +// special case for types like std::filesystem::path whose iterator's value_type are themselves +// c.f. https://github.com/nlohmann/json/pull/3073 +!std::is_same>::value&& +is_complete_type < +detected_t>::value >> +{ + using value_type = range_value_t; + + static constexpr bool value = + std::is_same::value || + has_from_json::value || + has_non_default_from_json < + BasicJsonType, + value_type >::value; +}; + +template +struct is_constructible_array_type + : is_constructible_array_type_impl {}; + +template +struct is_compatible_integer_type_impl : std::false_type {}; + +template +struct is_compatible_integer_type_impl < + RealIntegerType, CompatibleNumberIntegerType, + enable_if_t < std::is_integral::value&& + std::is_integral::value&& + !std::is_same::value >> +{ + // is there an assert somewhere on overflows? + using RealLimits = std::numeric_limits; + using CompatibleLimits = std::numeric_limits; + + static constexpr auto value = + is_constructible::value && + CompatibleLimits::is_integer && + RealLimits::is_signed == CompatibleLimits::is_signed; +}; + +template +struct is_compatible_integer_type + : is_compatible_integer_type_impl {}; + +template +struct is_compatible_type_impl: std::false_type {}; + +template +struct is_compatible_type_impl < + BasicJsonType, CompatibleType, + enable_if_t::value >> +{ + static constexpr bool value = + has_to_json::value; +}; + +template +struct is_compatible_type + : is_compatible_type_impl {}; + +template +struct is_constructible_tuple : std::false_type {}; + +template +struct is_constructible_tuple> : conjunction...> {}; + +template +struct is_json_iterator_of : std::false_type {}; + +template +struct is_json_iterator_of : std::true_type {}; + +template +struct is_json_iterator_of : std::true_type +{}; + +// checks if a given type T is a template specialization of Primary +template