{
  "schemaVersion": 1,
  "generatedAt": "2026-10-18T22:38:42.042955+00:00",
  "kind": "constructed-error-patterns",
  "method": "XOR a 33-bit generator-shaped pattern into three 4096-byte payloads at five offsets; recompute unchanged-length CRCs without changing stored reference values.",
  "bitConvention": "Bit 0 is the least-significant bit of byte 0; subsequent bits follow reflected CRC processing order.",
  "crcParameters": {
    "width": 32,
    "initialRegister": "ffffffff",
    "reflectInput": true,
    "reflectOutput": true,
    "xorOut": "ffffffff",
    "crc32FullPolynomial": "104c11db7",
    "crc32cFullPolynomial": "11edc6f41",
    "valueEncoding": "eight hexadecimal digits of the numerical return value, not wire bytes"
  },
  "environment": {
    "python": "3.12.3",
    "zlib": "1.3"
  },
  "sourceHashes": {
    "experiment.py": "1fdeae8e1e11cee73feaf12ca481c902c7099af2e85ebfe39c94d71aa592fb4f",
    "test_experiment.py": "e352fd63220270ccfde5d0485fa9393c2ddff5e56bb3f1ddad8418f8188e8d77"
  },
  "sources": [
    "https://www.rfc-editor.org/rfc/rfc3385.html",
    "https://www.rfc-editor.org/rfc/rfc7143.html#appendix-A.4",
    "https://users.ece.cmu.edu/~koopman/roses/dsn04/koopman04_crc_poly_embedded.pdf",
    "https://docs.python.org/3/library/zlib.html#zlib.crc32"
  ],
  "rows": [
    {
      "payload": "zero",
      "generator": "crc32",
      "payloadBytes": 4096,
      "startBit": 0,
      "changedBits": 15,
      "burstSpanBits": 33,
      "positionsLsbFirst": [
        0,
        6,
        9,
        10,
        16,
        20,
        21,
        22,
        24,
        25,
        27,
        28,
        30,
        31,
        32
      ],
      "originalSha256": "ad7facb2586fc6e966c004d7d1d16b024f5805ff7cb47c7a85dabd8b48892ca7",
      "mutatedSha256": "dd2c7cf70b4ad7a9b4772a13fa43d315edd92af36327f89ad860c2b1d736b4cb",
      "before": {
        "crc32": "c71c0011",
        "crc32c": "98f94189"
      },
      "after": {
        "crc32": "c71c0011",
        "crc32c": "fd1d1cfd"
      },
      "detected": {
        "crc32": false,
        "crc32c": true
      }
    },
    {
      "payload": "zero",
      "generator": "crc32",
      "payloadBytes": 4096,
      "startBit": 1,
      "changedBits": 15,
      "burstSpanBits": 33,
      "positionsLsbFirst": [
        1,
        7,
        10,
        11,
        17,
        21,
        22,
        23,
        25,
        26,
        28,
        29,
        31,
        32,
        33
      ],
      "originalSha256": "ad7facb2586fc6e966c004d7d1d16b024f5805ff7cb47c7a85dabd8b48892ca7",
      "mutatedSha256": "73ca89013bcfd56f305e1c23358d7d10c89f8a711b299db9fa9a19c4d329e90a",
      "before": {
        "crc32": "c71c0011",
        "crc32c": "98f94189"
      },
      "after": {
        "crc32": "c71c0011",
        "crc32c": "5331fb61"
      },
      "detected": {
        "crc32": false,
        "crc32c": true
      }
    },
    {
      "payload": "zero",
      "generator": "crc32",
      "payloadBytes": 4096,
      "startBit": 7,
      "changedBits": 15,
      "burstSpanBits": 33,
      "positionsLsbFirst": [
        7,
        13,
        16,
        17,
        23,
        27,
        28,
        29,
        31,
        32,
        34,
        35,
        37,
        38,
        39
      ],
      "originalSha256": "ad7facb2586fc6e966c004d7d1d16b024f5805ff7cb47c7a85dabd8b48892ca7",
      "mutatedSha256": "1740de35e1b74ff1c63d24eab9296c3dc9007efe99f7cecdbe4d3ceabda808df",
      "before": {
        "crc32": "c71c0011",
        "crc32c": "98f94189"
      },
      "after": {
        "crc32": "c71c0011",
        "crc32c": "8246a75b"
      },
      "detected": {
        "crc32": false,
        "crc32c": true
      }
    },
    {
      "payload": "zero",
      "generator": "crc32",
      "payloadBytes": 4096,
      "startBit": 2048,
      "changedBits": 15,
      "burstSpanBits": 33,
      "positionsLsbFirst": [
        2048,
        2054,
        2057,
        2058,
        2064,
        2068,
        2069,
        2070,
        2072,
        2073,
        2075,
        2076,
        2078,
        2079,
        2080
      ],
      "originalSha256": "ad7facb2586fc6e966c004d7d1d16b024f5805ff7cb47c7a85dabd8b48892ca7",
      "mutatedSha256": "94415e620d33007aed5fe0ee6bdc49bdae0c940fca43e55474be60b2ade22148",
      "before": {
        "crc32": "c71c0011",
        "crc32c": "98f94189"
      },
      "after": {
        "crc32": "c71c0011",
        "crc32c": "96c48d95"
      },
      "detected": {
        "crc32": false,
        "crc32c": true
      }
    },
    {
      "payload": "zero",
      "generator": "crc32",
      "payloadBytes": 4096,
      "startBit": 32735,
      "changedBits": 15,
      "burstSpanBits": 33,
      "positionsLsbFirst": [
        32735,
        32741,
        32744,
        32745,
        32751,
        32755,
        32756,
        32757,
        32759,
        32760,
        32762,
        32763,
        32765,
        32766,
        32767
      ],
      "originalSha256": "ad7facb2586fc6e966c004d7d1d16b024f5805ff7cb47c7a85dabd8b48892ca7",
      "mutatedSha256": "659154da5a35467e58ad6a2b1d3b178245c2809e2f29e1b2ecb3db2cda8283ec",
      "before": {
        "crc32": "c71c0011",
        "crc32c": "98f94189"
      },
      "after": {
        "crc32": "c71c0011",
        "crc32c": "3af6f865"
      },
      "detected": {
        "crc32": false,
        "crc32c": true
      }
    },
    {
      "payload": "zero",
      "generator": "crc32c",
      "payloadBytes": 4096,
      "startBit": 0,
      "changedBits": 18,
      "burstSpanBits": 33,
      "positionsLsbFirst": [
        0,
        4,
        5,
        6,
        7,
        9,
        10,
        12,
        13,
        14,
        18,
        19,
        21,
        22,
        23,
        24,
        26,
        32
      ],
      "originalSha256": "ad7facb2586fc6e966c004d7d1d16b024f5805ff7cb47c7a85dabd8b48892ca7",
      "mutatedSha256": "b8a842514e0f4613e947f50d2e89efc72320c23aee9fe5a56fbc452c730422b2",
      "before": {
        "crc32": "c71c0011",
        "crc32c": "98f94189"
      },
      "after": {
        "crc32": "1ccf4c61",
        "crc32c": "98f94189"
      },
      "detected": {
        "crc32": true,
        "crc32c": false
      }
    },
    {
      "payload": "zero",
      "generator": "crc32c",
      "payloadBytes": 4096,
      "startBit": 1,
      "changedBits": 18,
      "burstSpanBits": 33,
      "positionsLsbFirst": [
        1,
        5,
        6,
        7,
        8,
        10,
        11,
        13,
        14,
        15,
        19,
        20,
        22,
        23,
        24,
        25,
        27,
        33
      ],
      "originalSha256": "ad7facb2586fc6e966c004d7d1d16b024f5805ff7cb47c7a85dabd8b48892ca7",
      "mutatedSha256": "5d6b892dc805c4f7b3c5ea74303b43b8eb8375ed71494e68d81ea555ea1ef92b",
      "before": {
        "crc32": "c71c0011",
        "crc32c": "98f94189"
      },
      "after": {
        "crc32": "abcb9eb0",
        "crc32c": "98f94189"
      },
      "detected": {
        "crc32": true,
        "crc32c": false
      }
    },
    {
      "payload": "zero",
      "generator": "crc32c",
      "payloadBytes": 4096,
      "startBit": 7,
      "changedBits": 18,
      "burstSpanBits": 33,
      "positionsLsbFirst": [
        7,
        11,
        12,
        13,
        14,
        16,
        17,
        19,
        20,
        21,
        25,
        26,
        28,
        29,
        30,
        31,
        33,
        39
      ],
      "originalSha256": "ad7facb2586fc6e966c004d7d1d16b024f5805ff7cb47c7a85dabd8b48892ca7",
      "mutatedSha256": "9a1d8d10e92555c54fb93b44b24616a17d330b7537add4fa6ccc46d1be5694d7",
      "before": {
        "crc32": "c71c0011",
        "crc32c": "98f94189"
      },
      "after": {
        "crc32": "f35ed304",
        "crc32c": "98f94189"
      },
      "detected": {
        "crc32": true,
        "crc32c": false
      }
    },
    {
      "payload": "zero",
      "generator": "crc32c",
      "payloadBytes": 4096,
      "startBit": 2048,
      "changedBits": 18,
      "burstSpanBits": 33,
      "positionsLsbFirst": [
        2048,
        2052,
        2053,
        2054,
        2055,
        2057,
        2058,
        2060,
        2061,
        2062,
        2066,
        2067,
        2069,
        2070,
        2071,
        2072,
        2074,
        2080
      ],
      "originalSha256": "ad7facb2586fc6e966c004d7d1d16b024f5805ff7cb47c7a85dabd8b48892ca7",
      "mutatedSha256": "65fc46ee74911e42ffcf76fdfbab7a23586ba152e0824cfcd6a02090a446cb35",
      "before": {
        "crc32": "c71c0011",
        "crc32c": "98f94189"
      },
      "after": {
        "crc32": "105716ca",
        "crc32c": "98f94189"
      },
      "detected": {
        "crc32": true,
        "crc32c": false
      }
    },
    {
      "payload": "zero",
      "generator": "crc32c",
      "payloadBytes": 4096,
      "startBit": 32735,
      "changedBits": 18,
      "burstSpanBits": 33,
      "positionsLsbFirst": [
        32735,
        32739,
        32740,
        32741,
        32742,
        32744,
        32745,
        32747,
        32748,
        32749,
        32753,
        32754,
        32756,
        32757,
        32758,
        32759,
        32761,
        32767
      ],
      "originalSha256": "ad7facb2586fc6e966c004d7d1d16b024f5805ff7cb47c7a85dabd8b48892ca7",
      "mutatedSha256": "10245e1fff0502c8e52ec35ac508247b73706060ef77d4700c39c28bf961e3a9",
      "before": {
        "crc32": "c71c0011",
        "crc32c": "98f94189"
      },
      "after": {
        "crc32": "b11f96b6",
        "crc32c": "98f94189"
      },
      "detected": {
        "crc32": true,
        "crc32c": false
      }
    },
    {
      "payload": "ff",
      "generator": "crc32",
      "payloadBytes": 4096,
      "startBit": 0,
      "changedBits": 15,
      "burstSpanBits": 33,
      "positionsLsbFirst": [
        0,
        6,
        9,
        10,
        16,
        20,
        21,
        22,
        24,
        25,
        27,
        28,
        30,
        31,
        32
      ],
      "originalSha256": "f47a8ec3e9aff2318d896942282ad4fe37d6391c82914f54a5da8a37de1300c6",
      "mutatedSha256": "94bc435520802e991eec2091ec8538ddb32062f6e6482355fe67793fd0248ed6",
      "before": {
        "crc32": "f154670a",
        "crc32c": "25c1fe13"
      },
      "after": {
        "crc32": "f154670a",
        "crc32c": "4025a367"
      },
      "detected": {
        "crc32": false,
        "crc32c": true
      }
    },
    {
      "payload": "ff",
      "generator": "crc32",
      "payloadBytes": 4096,
      "startBit": 1,
      "changedBits": 15,
      "burstSpanBits": 33,
      "positionsLsbFirst": [
        1,
        7,
        10,
        11,
        17,
        21,
        22,
        23,
        25,
        26,
        28,
        29,
        31,
        32,
        33
      ],
      "originalSha256": "f47a8ec3e9aff2318d896942282ad4fe37d6391c82914f54a5da8a37de1300c6",
      "mutatedSha256": "08adb5aad8d7eb44ed1022c62614fc193216b313f3ac0b71b62ddc7731470aaf",
      "before": {
        "crc32": "f154670a",
        "crc32c": "25c1fe13"
      },
      "after": {
        "crc32": "f154670a",
        "crc32c": "ee0944fb"
      },
      "detected": {
        "crc32": false,
        "crc32c": true
      }
    },
    {
      "payload": "ff",
      "generator": "crc32",
      "payloadBytes": 4096,
      "startBit": 7,
      "changedBits": 15,
      "burstSpanBits": 33,
      "positionsLsbFirst": [
        7,
        13,
        16,
        17,
        23,
        27,
        28,
        29,
        31,
        32,
        34,
        35,
        37,
        38,
        39
      ],
      "originalSha256": "f47a8ec3e9aff2318d896942282ad4fe37d6391c82914f54a5da8a37de1300c6",
      "mutatedSha256": "0e5753a81fec45a0019b562dd6f4c498fe9032e16a9929ba263b5200772bb265",
      "before": {
        "crc32": "f154670a",
        "crc32c": "25c1fe13"
      },
      "after": {
        "crc32": "f154670a",
        "crc32c": "3f7e18c1"
      },
      "detected": {
        "crc32": false,
        "crc32c": true
      }
    },
    {
      "payload": "ff",
      "generator": "crc32",
      "payloadBytes": 4096,
      "startBit": 2048,
      "changedBits": 15,
      "burstSpanBits": 33,
      "positionsLsbFirst": [
        2048,
        2054,
        2057,
        2058,
        2064,
        2068,
        2069,
        2070,
        2072,
        2073,
        2075,
        2076,
        2078,
        2079,
        2080
      ],
      "originalSha256": "f47a8ec3e9aff2318d896942282ad4fe37d6391c82914f54a5da8a37de1300c6",
      "mutatedSha256": "9a7b5676b45d96fe198636c5ec3cdd93418ebd77aae8490cb9b2914704e1c079",
      "before": {
        "crc32": "f154670a",
        "crc32c": "25c1fe13"
      },
      "after": {
        "crc32": "f154670a",
        "crc32c": "2bfc320f"
      },
      "detected": {
        "crc32": false,
        "crc32c": true
      }
    },
    {
      "payload": "ff",
      "generator": "crc32",
      "payloadBytes": 4096,
      "startBit": 32735,
      "changedBits": 15,
      "burstSpanBits": 33,
      "positionsLsbFirst": [
        32735,
        32741,
        32744,
        32745,
        32751,
        32755,
        32756,
        32757,
        32759,
        32760,
        32762,
        32763,
        32765,
        32766,
        32767
      ],
      "originalSha256": "f47a8ec3e9aff2318d896942282ad4fe37d6391c82914f54a5da8a37de1300c6",
      "mutatedSha256": "63c5c5e57d85f85d561c557f704414b4b5981822286b5abdc939eaeb9195f3fc",
      "before": {
        "crc32": "f154670a",
        "crc32c": "25c1fe13"
      },
      "after": {
        "crc32": "f154670a",
        "crc32c": "87ce47ff"
      },
      "detected": {
        "crc32": false,
        "crc32c": true
      }
    },
    {
      "payload": "ff",
      "generator": "crc32c",
      "payloadBytes": 4096,
      "startBit": 0,
      "changedBits": 18,
      "burstSpanBits": 33,
      "positionsLsbFirst": [
        0,
        4,
        5,
        6,
        7,
        9,
        10,
        12,
        13,
        14,
        18,
        19,
        21,
        22,
        23,
        24,
        26,
        32
      ],
      "originalSha256": "f47a8ec3e9aff2318d896942282ad4fe37d6391c82914f54a5da8a37de1300c6",
      "mutatedSha256": "ac59180eeb82669fed212c3e3c0dd2e83579876fc3064b9c8ea856c4891a404f",
      "before": {
        "crc32": "f154670a",
        "crc32c": "25c1fe13"
      },
      "after": {
        "crc32": "2a872b7a",
        "crc32c": "25c1fe13"
      },
      "detected": {
        "crc32": true,
        "crc32c": false
      }
    },
    {
      "payload": "ff",
      "generator": "crc32c",
      "payloadBytes": 4096,
      "startBit": 1,
      "changedBits": 18,
      "burstSpanBits": 33,
      "positionsLsbFirst": [
        1,
        5,
        6,
        7,
        8,
        10,
        11,
        13,
        14,
        15,
        19,
        20,
        22,
        23,
        24,
        25,
        27,
        33
      ],
      "originalSha256": "f47a8ec3e9aff2318d896942282ad4fe37d6391c82914f54a5da8a37de1300c6",
      "mutatedSha256": "40675f063edff7d0b1f1ad7a949733c4a41fb139ded0393aa664f7f6945da0de",
      "before": {
        "crc32": "f154670a",
        "crc32c": "25c1fe13"
      },
      "after": {
        "crc32": "9d83f9ab",
        "crc32c": "25c1fe13"
      },
      "detected": {
        "crc32": true,
        "crc32c": false
      }
    },
    {
      "payload": "ff",
      "generator": "crc32c",
      "payloadBytes": 4096,
      "startBit": 7,
      "changedBits": 18,
      "burstSpanBits": 33,
      "positionsLsbFirst": [
        7,
        11,
        12,
        13,
        14,
        16,
        17,
        19,
        20,
        21,
        25,
        26,
        28,
        29,
        30,
        31,
        33,
        39
      ],
      "originalSha256": "f47a8ec3e9aff2318d896942282ad4fe37d6391c82914f54a5da8a37de1300c6",
      "mutatedSha256": "883649444a6d82131f41f51a9ac902c6e2ea0b33db33c49848e1491673f0cfa4",
      "before": {
        "crc32": "f154670a",
        "crc32c": "25c1fe13"
      },
      "after": {
        "crc32": "c516b41f",
        "crc32c": "25c1fe13"
      },
      "detected": {
        "crc32": true,
        "crc32c": false
      }
    },
    {
      "payload": "ff",
      "generator": "crc32c",
      "payloadBytes": 4096,
      "startBit": 2048,
      "changedBits": 18,
      "burstSpanBits": 33,
      "positionsLsbFirst": [
        2048,
        2052,
        2053,
        2054,
        2055,
        2057,
        2058,
        2060,
        2061,
        2062,
        2066,
        2067,
        2069,
        2070,
        2071,
        2072,
        2074,
        2080
      ],
      "originalSha256": "f47a8ec3e9aff2318d896942282ad4fe37d6391c82914f54a5da8a37de1300c6",
      "mutatedSha256": "59e73ef9c0a8259d6ffe280c6d53095d6ffd6cf354a51f40cfd5b92bf1cc336f",
      "before": {
        "crc32": "f154670a",
        "crc32c": "25c1fe13"
      },
      "after": {
        "crc32": "261f71d1",
        "crc32c": "25c1fe13"
      },
      "detected": {
        "crc32": true,
        "crc32c": false
      }
    },
    {
      "payload": "ff",
      "generator": "crc32c",
      "payloadBytes": 4096,
      "startBit": 32735,
      "changedBits": 18,
      "burstSpanBits": 33,
      "positionsLsbFirst": [
        32735,
        32739,
        32740,
        32741,
        32742,
        32744,
        32745,
        32747,
        32748,
        32749,
        32753,
        32754,
        32756,
        32757,
        32758,
        32759,
        32761,
        32767
      ],
      "originalSha256": "f47a8ec3e9aff2318d896942282ad4fe37d6391c82914f54a5da8a37de1300c6",
      "mutatedSha256": "ccfd25b0dc02a898327dff127f2768671c31aa6c220946da475c9ad05b66dc1d",
      "before": {
        "crc32": "f154670a",
        "crc32c": "25c1fe13"
      },
      "after": {
        "crc32": "8757f1ad",
        "crc32c": "25c1fe13"
      },
      "detected": {
        "crc32": true,
        "crc32c": false
      }
    },
    {
      "payload": "ramp",
      "generator": "crc32",
      "payloadBytes": 4096,
      "startBit": 0,
      "changedBits": 15,
      "burstSpanBits": 33,
      "positionsLsbFirst": [
        0,
        6,
        9,
        10,
        16,
        20,
        21,
        22,
        24,
        25,
        27,
        28,
        30,
        31,
        32
      ],
      "originalSha256": "c8f5d0341d54d951a71b136e6e2afcb14d11ed8489a7ae126a8fee0df6ecf193",
      "mutatedSha256": "bd216171a901330f11f52168471d34ab204ee3a7f4a5f1eec781eaa938816caf",
      "before": {
        "crc32": "a2912082",
        "crc32c": "9c71fe32"
      },
      "after": {
        "crc32": "a2912082",
        "crc32c": "f995a346"
      },
      "detected": {
        "crc32": false,
        "crc32c": true
      }
    },
    {
      "payload": "ramp",
      "generator": "crc32",
      "payloadBytes": 4096,
      "startBit": 1,
      "changedBits": 15,
      "burstSpanBits": 33,
      "positionsLsbFirst": [
        1,
        7,
        10,
        11,
        17,
        21,
        22,
        23,
        25,
        26,
        28,
        29,
        31,
        32,
        33
      ],
      "originalSha256": "c8f5d0341d54d951a71b136e6e2afcb14d11ed8489a7ae126a8fee0df6ecf193",
      "mutatedSha256": "2c896ca178c5b121b596adf255c4a2e95e6bc1f12c600ed1aba463b2119604ba",
      "before": {
        "crc32": "a2912082",
        "crc32c": "9c71fe32"
      },
      "after": {
        "crc32": "a2912082",
        "crc32c": "57b944da"
      },
      "detected": {
        "crc32": false,
        "crc32c": true
      }
    },
    {
      "payload": "ramp",
      "generator": "crc32",
      "payloadBytes": 4096,
      "startBit": 7,
      "changedBits": 15,
      "burstSpanBits": 33,
      "positionsLsbFirst": [
        7,
        13,
        16,
        17,
        23,
        27,
        28,
        29,
        31,
        32,
        34,
        35,
        37,
        38,
        39
      ],
      "originalSha256": "c8f5d0341d54d951a71b136e6e2afcb14d11ed8489a7ae126a8fee0df6ecf193",
      "mutatedSha256": "27e01ca25b1702c35b782dfb93ec9cc9a6ebda800fa009846e863499ca47c2f0",
      "before": {
        "crc32": "a2912082",
        "crc32c": "9c71fe32"
      },
      "after": {
        "crc32": "a2912082",
        "crc32c": "86ce18e0"
      },
      "detected": {
        "crc32": false,
        "crc32c": true
      }
    },
    {
      "payload": "ramp",
      "generator": "crc32",
      "payloadBytes": 4096,
      "startBit": 2048,
      "changedBits": 15,
      "burstSpanBits": 33,
      "positionsLsbFirst": [
        2048,
        2054,
        2057,
        2058,
        2064,
        2068,
        2069,
        2070,
        2072,
        2073,
        2075,
        2076,
        2078,
        2079,
        2080
      ],
      "originalSha256": "c8f5d0341d54d951a71b136e6e2afcb14d11ed8489a7ae126a8fee0df6ecf193",
      "mutatedSha256": "28e838c3ac40e7f1d96c49bc2c7a66bc7ec36f552611e2a35bded382c2b36af0",
      "before": {
        "crc32": "a2912082",
        "crc32c": "9c71fe32"
      },
      "after": {
        "crc32": "a2912082",
        "crc32c": "924c322e"
      },
      "detected": {
        "crc32": false,
        "crc32c": true
      }
    },
    {
      "payload": "ramp",
      "generator": "crc32",
      "payloadBytes": 4096,
      "startBit": 32735,
      "changedBits": 15,
      "burstSpanBits": 33,
      "positionsLsbFirst": [
        32735,
        32741,
        32744,
        32745,
        32751,
        32755,
        32756,
        32757,
        32759,
        32760,
        32762,
        32763,
        32765,
        32766,
        32767
      ],
      "originalSha256": "c8f5d0341d54d951a71b136e6e2afcb14d11ed8489a7ae126a8fee0df6ecf193",
      "mutatedSha256": "4e50730f3650fc6e620a8101cc08809b66fa05b3b2c84d7188c3ff2d81f8fb1c",
      "before": {
        "crc32": "a2912082",
        "crc32c": "9c71fe32"
      },
      "after": {
        "crc32": "a2912082",
        "crc32c": "3e7e47de"
      },
      "detected": {
        "crc32": false,
        "crc32c": true
      }
    },
    {
      "payload": "ramp",
      "generator": "crc32c",
      "payloadBytes": 4096,
      "startBit": 0,
      "changedBits": 18,
      "burstSpanBits": 33,
      "positionsLsbFirst": [
        0,
        4,
        5,
        6,
        7,
        9,
        10,
        12,
        13,
        14,
        18,
        19,
        21,
        22,
        23,
        24,
        26,
        32
      ],
      "originalSha256": "c8f5d0341d54d951a71b136e6e2afcb14d11ed8489a7ae126a8fee0df6ecf193",
      "mutatedSha256": "3b1607650ce93aa05d5c1ac83abae8dadbf0040cfd769a03bad725eed30e55d6",
      "before": {
        "crc32": "a2912082",
        "crc32c": "9c71fe32"
      },
      "after": {
        "crc32": "79426cf2",
        "crc32c": "9c71fe32"
      },
      "detected": {
        "crc32": true,
        "crc32c": false
      }
    },
    {
      "payload": "ramp",
      "generator": "crc32c",
      "payloadBytes": 4096,
      "startBit": 1,
      "changedBits": 18,
      "burstSpanBits": 33,
      "positionsLsbFirst": [
        1,
        5,
        6,
        7,
        8,
        10,
        11,
        13,
        14,
        15,
        19,
        20,
        22,
        23,
        24,
        25,
        27,
        33
      ],
      "originalSha256": "c8f5d0341d54d951a71b136e6e2afcb14d11ed8489a7ae126a8fee0df6ecf193",
      "mutatedSha256": "bae3d45a28395aebb6423c30d8f03dadd5bcf0d8ab061a5b30e879fce855fa7d",
      "before": {
        "crc32": "a2912082",
        "crc32c": "9c71fe32"
      },
      "after": {
        "crc32": "ce46be23",
        "crc32c": "9c71fe32"
      },
      "detected": {
        "crc32": true,
        "crc32c": false
      }
    },
    {
      "payload": "ramp",
      "generator": "crc32c",
      "payloadBytes": 4096,
      "startBit": 7,
      "changedBits": 18,
      "burstSpanBits": 33,
      "positionsLsbFirst": [
        7,
        11,
        12,
        13,
        14,
        16,
        17,
        19,
        20,
        21,
        25,
        26,
        28,
        29,
        30,
        31,
        33,
        39
      ],
      "originalSha256": "c8f5d0341d54d951a71b136e6e2afcb14d11ed8489a7ae126a8fee0df6ecf193",
      "mutatedSha256": "d9efa367f5615e301230280708068105dd54df9d564587de8152e78b5eb2b545",
      "before": {
        "crc32": "a2912082",
        "crc32c": "9c71fe32"
      },
      "after": {
        "crc32": "96d3f397",
        "crc32c": "9c71fe32"
      },
      "detected": {
        "crc32": true,
        "crc32c": false
      }
    },
    {
      "payload": "ramp",
      "generator": "crc32c",
      "payloadBytes": 4096,
      "startBit": 2048,
      "changedBits": 18,
      "burstSpanBits": 33,
      "positionsLsbFirst": [
        2048,
        2052,
        2053,
        2054,
        2055,
        2057,
        2058,
        2060,
        2061,
        2062,
        2066,
        2067,
        2069,
        2070,
        2071,
        2072,
        2074,
        2080
      ],
      "originalSha256": "c8f5d0341d54d951a71b136e6e2afcb14d11ed8489a7ae126a8fee0df6ecf193",
      "mutatedSha256": "a4896749ca1c8272c57b593ea6ad138f2da2dca5b3f219494d4f1783f4382631",
      "before": {
        "crc32": "a2912082",
        "crc32c": "9c71fe32"
      },
      "after": {
        "crc32": "75da3659",
        "crc32c": "9c71fe32"
      },
      "detected": {
        "crc32": true,
        "crc32c": false
      }
    },
    {
      "payload": "ramp",
      "generator": "crc32c",
      "payloadBytes": 4096,
      "startBit": 32735,
      "changedBits": 18,
      "burstSpanBits": 33,
      "positionsLsbFirst": [
        32735,
        32739,
        32740,
        32741,
        32742,
        32744,
        32745,
        32747,
        32748,
        32749,
        32753,
        32754,
        32756,
        32757,
        32758,
        32759,
        32761,
        32767
      ],
      "originalSha256": "c8f5d0341d54d951a71b136e6e2afcb14d11ed8489a7ae126a8fee0df6ecf193",
      "mutatedSha256": "4c18fc11c1f02935849ff6f7dbfd72559fec4942e5fcc2aeb4760549ede6a56d",
      "before": {
        "crc32": "a2912082",
        "crc32c": "9c71fe32"
      },
      "after": {
        "crc32": "d492b625",
        "crc32c": "9c71fe32"
      },
      "detected": {
        "crc32": true,
        "crc32c": false
      }
    }
  ],
  "jointDetection": {
    "fullErrorPolynomialHex": "11a6ec5c893b4ed77",
    "method": "Carryless product of both generators; XOR its 65-bit pattern into the same payload families while preserving both reference CRCs.",
    "rows": [
      {
        "payload": "zero",
        "generator": "crc32-and-crc32c",
        "payloadBytes": 4096,
        "startBit": 0,
        "changedBits": 36,
        "burstSpanBits": 65,
        "positionsLsbFirst": [
          0,
          4,
          5,
          7,
          10,
          11,
          13,
          14,
          15,
          17,
          18,
          22,
          24,
          25,
          26,
          29,
          33,
          36,
          39,
          40,
          41,
          43,
          44,
          46,
          49,
          50,
          51,
          53,
          54,
          56,
          58,
          59,
          60,
          62,
          63,
          64
        ],
        "originalSha256": "ad7facb2586fc6e966c004d7d1d16b024f5805ff7cb47c7a85dabd8b48892ca7",
        "mutatedSha256": "a1cf4c4fd57dbc5859ba31020d72c7bdba592c451c898239f8980b1b15c2ce70",
        "before": {
          "crc32": "c71c0011",
          "crc32c": "98f94189"
        },
        "after": {
          "crc32": "c71c0011",
          "crc32c": "98f94189"
        },
        "detected": {
          "crc32": false,
          "crc32c": false
        }
      },
      {
        "payload": "zero",
        "generator": "crc32-and-crc32c",
        "payloadBytes": 4096,
        "startBit": 1,
        "changedBits": 36,
        "burstSpanBits": 65,
        "positionsLsbFirst": [
          1,
          5,
          6,
          8,
          11,
          12,
          14,
          15,
          16,
          18,
          19,
          23,
          25,
          26,
          27,
          30,
          34,
          37,
          40,
          41,
          42,
          44,
          45,
          47,
          50,
          51,
          52,
          54,
          55,
          57,
          59,
          60,
          61,
          63,
          64,
          65
        ],
        "originalSha256": "ad7facb2586fc6e966c004d7d1d16b024f5805ff7cb47c7a85dabd8b48892ca7",
        "mutatedSha256": "c83a44c7aadf92572377fad2639ba01a99691e199e2db0fa2944f6e6b9b16df4",
        "before": {
          "crc32": "c71c0011",
          "crc32c": "98f94189"
        },
        "after": {
          "crc32": "c71c0011",
          "crc32c": "98f94189"
        },
        "detected": {
          "crc32": false,
          "crc32c": false
        }
      },
      {
        "payload": "zero",
        "generator": "crc32-and-crc32c",
        "payloadBytes": 4096,
        "startBit": 7,
        "changedBits": 36,
        "burstSpanBits": 65,
        "positionsLsbFirst": [
          7,
          11,
          12,
          14,
          17,
          18,
          20,
          21,
          22,
          24,
          25,
          29,
          31,
          32,
          33,
          36,
          40,
          43,
          46,
          47,
          48,
          50,
          51,
          53,
          56,
          57,
          58,
          60,
          61,
          63,
          65,
          66,
          67,
          69,
          70,
          71
        ],
        "originalSha256": "ad7facb2586fc6e966c004d7d1d16b024f5805ff7cb47c7a85dabd8b48892ca7",
        "mutatedSha256": "a348f0040e13334286a285ebf9e824afba62c61121174ea097d12384f3edb995",
        "before": {
          "crc32": "c71c0011",
          "crc32c": "98f94189"
        },
        "after": {
          "crc32": "c71c0011",
          "crc32c": "98f94189"
        },
        "detected": {
          "crc32": false,
          "crc32c": false
        }
      },
      {
        "payload": "zero",
        "generator": "crc32-and-crc32c",
        "payloadBytes": 4096,
        "startBit": 2048,
        "changedBits": 36,
        "burstSpanBits": 65,
        "positionsLsbFirst": [
          2048,
          2052,
          2053,
          2055,
          2058,
          2059,
          2061,
          2062,
          2063,
          2065,
          2066,
          2070,
          2072,
          2073,
          2074,
          2077,
          2081,
          2084,
          2087,
          2088,
          2089,
          2091,
          2092,
          2094,
          2097,
          2098,
          2099,
          2101,
          2102,
          2104,
          2106,
          2107,
          2108,
          2110,
          2111,
          2112
        ],
        "originalSha256": "ad7facb2586fc6e966c004d7d1d16b024f5805ff7cb47c7a85dabd8b48892ca7",
        "mutatedSha256": "8bbbaf703a2dfbbd397de760340db0e32cfddade91c71542198f360b728224d0",
        "before": {
          "crc32": "c71c0011",
          "crc32c": "98f94189"
        },
        "after": {
          "crc32": "c71c0011",
          "crc32c": "98f94189"
        },
        "detected": {
          "crc32": false,
          "crc32c": false
        }
      },
      {
        "payload": "zero",
        "generator": "crc32-and-crc32c",
        "payloadBytes": 4096,
        "startBit": 32703,
        "changedBits": 36,
        "burstSpanBits": 65,
        "positionsLsbFirst": [
          32703,
          32707,
          32708,
          32710,
          32713,
          32714,
          32716,
          32717,
          32718,
          32720,
          32721,
          32725,
          32727,
          32728,
          32729,
          32732,
          32736,
          32739,
          32742,
          32743,
          32744,
          32746,
          32747,
          32749,
          32752,
          32753,
          32754,
          32756,
          32757,
          32759,
          32761,
          32762,
          32763,
          32765,
          32766,
          32767
        ],
        "originalSha256": "ad7facb2586fc6e966c004d7d1d16b024f5805ff7cb47c7a85dabd8b48892ca7",
        "mutatedSha256": "928b2fb99b69cb837b60e2b4cfaff9b17becc4ff6fedde813626f6d7d8f27c75",
        "before": {
          "crc32": "c71c0011",
          "crc32c": "98f94189"
        },
        "after": {
          "crc32": "c71c0011",
          "crc32c": "98f94189"
        },
        "detected": {
          "crc32": false,
          "crc32c": false
        }
      },
      {
        "payload": "ff",
        "generator": "crc32-and-crc32c",
        "payloadBytes": 4096,
        "startBit": 0,
        "changedBits": 36,
        "burstSpanBits": 65,
        "positionsLsbFirst": [
          0,
          4,
          5,
          7,
          10,
          11,
          13,
          14,
          15,
          17,
          18,
          22,
          24,
          25,
          26,
          29,
          33,
          36,
          39,
          40,
          41,
          43,
          44,
          46,
          49,
          50,
          51,
          53,
          54,
          56,
          58,
          59,
          60,
          62,
          63,
          64
        ],
        "originalSha256": "f47a8ec3e9aff2318d896942282ad4fe37d6391c82914f54a5da8a37de1300c6",
        "mutatedSha256": "0ff1b98c33c57bafb1627f6e923a6602a454c3a60f88b8e3f3b86f6461568665",
        "before": {
          "crc32": "f154670a",
          "crc32c": "25c1fe13"
        },
        "after": {
          "crc32": "f154670a",
          "crc32c": "25c1fe13"
        },
        "detected": {
          "crc32": false,
          "crc32c": false
        }
      },
      {
        "payload": "ff",
        "generator": "crc32-and-crc32c",
        "payloadBytes": 4096,
        "startBit": 1,
        "changedBits": 36,
        "burstSpanBits": 65,
        "positionsLsbFirst": [
          1,
          5,
          6,
          8,
          11,
          12,
          14,
          15,
          16,
          18,
          19,
          23,
          25,
          26,
          27,
          30,
          34,
          37,
          40,
          41,
          42,
          44,
          45,
          47,
          50,
          51,
          52,
          54,
          55,
          57,
          59,
          60,
          61,
          63,
          64,
          65
        ],
        "originalSha256": "f47a8ec3e9aff2318d896942282ad4fe37d6391c82914f54a5da8a37de1300c6",
        "mutatedSha256": "1c03fcc69720e6ab1f4c316cd02402d27e6394dd3ce2ecd76c312a40df5b3c90",
        "before": {
          "crc32": "f154670a",
          "crc32c": "25c1fe13"
        },
        "after": {
          "crc32": "f154670a",
          "crc32c": "25c1fe13"
        },
        "detected": {
          "crc32": false,
          "crc32c": false
        }
      },
      {
        "payload": "ff",
        "generator": "crc32-and-crc32c",
        "payloadBytes": 4096,
        "startBit": 7,
        "changedBits": 36,
        "burstSpanBits": 65,
        "positionsLsbFirst": [
          7,
          11,
          12,
          14,
          17,
          18,
          20,
          21,
          22,
          24,
          25,
          29,
          31,
          32,
          33,
          36,
          40,
          43,
          46,
          47,
          48,
          50,
          51,
          53,
          56,
          57,
          58,
          60,
          61,
          63,
          65,
          66,
          67,
          69,
          70,
          71
        ],
        "originalSha256": "f47a8ec3e9aff2318d896942282ad4fe37d6391c82914f54a5da8a37de1300c6",
        "mutatedSha256": "b000a17be421173ae0c11a581f2ceaae7a8cbf488e5306a9aa1ded80e9c54c4d",
        "before": {
          "crc32": "f154670a",
          "crc32c": "25c1fe13"
        },
        "after": {
          "crc32": "f154670a",
          "crc32c": "25c1fe13"
        },
        "detected": {
          "crc32": false,
          "crc32c": false
        }
      },
      {
        "payload": "ff",
        "generator": "crc32-and-crc32c",
        "payloadBytes": 4096,
        "startBit": 2048,
        "changedBits": 36,
        "burstSpanBits": 65,
        "positionsLsbFirst": [
          2048,
          2052,
          2053,
          2055,
          2058,
          2059,
          2061,
          2062,
          2063,
          2065,
          2066,
          2070,
          2072,
          2073,
          2074,
          2077,
          2081,
          2084,
          2087,
          2088,
          2089,
          2091,
          2092,
          2094,
          2097,
          2098,
          2099,
          2101,
          2102,
          2104,
          2106,
          2107,
          2108,
          2110,
          2111,
          2112
        ],
        "originalSha256": "f47a8ec3e9aff2318d896942282ad4fe37d6391c82914f54a5da8a37de1300c6",
        "mutatedSha256": "a5c2e269a8d44d2d6b06fefe5aae0606876885d521ec7188b139a5385cc13e32",
        "before": {
          "crc32": "f154670a",
          "crc32c": "25c1fe13"
        },
        "after": {
          "crc32": "f154670a",
          "crc32c": "25c1fe13"
        },
        "detected": {
          "crc32": false,
          "crc32c": false
        }
      },
      {
        "payload": "ff",
        "generator": "crc32-and-crc32c",
        "payloadBytes": 4096,
        "startBit": 32703,
        "changedBits": 36,
        "burstSpanBits": 65,
        "positionsLsbFirst": [
          32703,
          32707,
          32708,
          32710,
          32713,
          32714,
          32716,
          32717,
          32718,
          32720,
          32721,
          32725,
          32727,
          32728,
          32729,
          32732,
          32736,
          32739,
          32742,
          32743,
          32744,
          32746,
          32747,
          32749,
          32752,
          32753,
          32754,
          32756,
          32757,
          32759,
          32761,
          32762,
          32763,
          32765,
          32766,
          32767
        ],
        "originalSha256": "f47a8ec3e9aff2318d896942282ad4fe37d6391c82914f54a5da8a37de1300c6",
        "mutatedSha256": "dc9f1f12cfe740efde06e3105bb42e56ded2b7208e7199a59ee2702f715b9d37",
        "before": {
          "crc32": "f154670a",
          "crc32c": "25c1fe13"
        },
        "after": {
          "crc32": "f154670a",
          "crc32c": "25c1fe13"
        },
        "detected": {
          "crc32": false,
          "crc32c": false
        }
      },
      {
        "payload": "ramp",
        "generator": "crc32-and-crc32c",
        "payloadBytes": 4096,
        "startBit": 0,
        "changedBits": 36,
        "burstSpanBits": 65,
        "positionsLsbFirst": [
          0,
          4,
          5,
          7,
          10,
          11,
          13,
          14,
          15,
          17,
          18,
          22,
          24,
          25,
          26,
          29,
          33,
          36,
          39,
          40,
          41,
          43,
          44,
          46,
          49,
          50,
          51,
          53,
          54,
          56,
          58,
          59,
          60,
          62,
          63,
          64
        ],
        "originalSha256": "c8f5d0341d54d951a71b136e6e2afcb14d11ed8489a7ae126a8fee0df6ecf193",
        "mutatedSha256": "a555bc7144a67c37cfb772bd4728a721ac6a729c667fb2e118487f7700df1618",
        "before": {
          "crc32": "a2912082",
          "crc32c": "9c71fe32"
        },
        "after": {
          "crc32": "a2912082",
          "crc32c": "9c71fe32"
        },
        "detected": {
          "crc32": false,
          "crc32c": false
        }
      },
      {
        "payload": "ramp",
        "generator": "crc32-and-crc32c",
        "payloadBytes": 4096,
        "startBit": 1,
        "changedBits": 36,
        "burstSpanBits": 65,
        "positionsLsbFirst": [
          1,
          5,
          6,
          8,
          11,
          12,
          14,
          15,
          16,
          18,
          19,
          23,
          25,
          26,
          27,
          30,
          34,
          37,
          40,
          41,
          42,
          44,
          45,
          47,
          50,
          51,
          52,
          54,
          55,
          57,
          59,
          60,
          61,
          63,
          64,
          65
        ],
        "originalSha256": "c8f5d0341d54d951a71b136e6e2afcb14d11ed8489a7ae126a8fee0df6ecf193",
        "mutatedSha256": "b213ac8b3524c2ebf949188f0faa8c1ae73a57e55a42030836d5117c01ea8e4f",
        "before": {
          "crc32": "a2912082",
          "crc32c": "9c71fe32"
        },
        "after": {
          "crc32": "a2912082",
          "crc32c": "9c71fe32"
        },
        "detected": {
          "crc32": false,
          "crc32c": false
        }
      },
      {
        "payload": "ramp",
        "generator": "crc32-and-crc32c",
        "payloadBytes": 4096,
        "startBit": 7,
        "changedBits": 36,
        "burstSpanBits": 65,
        "positionsLsbFirst": [
          7,
          11,
          12,
          14,
          17,
          18,
          20,
          21,
          22,
          24,
          25,
          29,
          31,
          32,
          33,
          36,
          40,
          43,
          46,
          47,
          48,
          50,
          51,
          53,
          56,
          57,
          58,
          60,
          61,
          63,
          65,
          66,
          67,
          69,
          70,
          71
        ],
        "originalSha256": "c8f5d0341d54d951a71b136e6e2afcb14d11ed8489a7ae126a8fee0df6ecf193",
        "mutatedSha256": "7912a786133061074450e8264420df80f8852c879e8a2ca53b0c644063ca37d0",
        "before": {
          "crc32": "a2912082",
          "crc32c": "9c71fe32"
        },
        "after": {
          "crc32": "a2912082",
          "crc32c": "9c71fe32"
        },
        "detected": {
          "crc32": false,
          "crc32c": false
        }
      },
      {
        "payload": "ramp",
        "generator": "crc32-and-crc32c",
        "payloadBytes": 4096,
        "startBit": 2048,
        "changedBits": 36,
        "burstSpanBits": 65,
        "positionsLsbFirst": [
          2048,
          2052,
          2053,
          2055,
          2058,
          2059,
          2061,
          2062,
          2063,
          2065,
          2066,
          2070,
          2072,
          2073,
          2074,
          2077,
          2081,
          2084,
          2087,
          2088,
          2089,
          2091,
          2092,
          2094,
          2097,
          2098,
          2099,
          2101,
          2102,
          2104,
          2106,
          2107,
          2108,
          2110,
          2111,
          2112
        ],
        "originalSha256": "c8f5d0341d54d951a71b136e6e2afcb14d11ed8489a7ae126a8fee0df6ecf193",
        "mutatedSha256": "bc2e23d6b40568feae0c9281dca2f68181da2a0eb6f50215fb7d51f0f870b99f",
        "before": {
          "crc32": "a2912082",
          "crc32c": "9c71fe32"
        },
        "after": {
          "crc32": "a2912082",
          "crc32c": "9c71fe32"
        },
        "detected": {
          "crc32": false,
          "crc32c": false
        }
      },
      {
        "payload": "ramp",
        "generator": "crc32-and-crc32c",
        "payloadBytes": 4096,
        "startBit": 32703,
        "changedBits": 36,
        "burstSpanBits": 65,
        "positionsLsbFirst": [
          32703,
          32707,
          32708,
          32710,
          32713,
          32714,
          32716,
          32717,
          32718,
          32720,
          32721,
          32725,
          32727,
          32728,
          32729,
          32732,
          32736,
          32739,
          32742,
          32743,
          32744,
          32746,
          32747,
          32749,
          32752,
          32753,
          32754,
          32756,
          32757,
          32759,
          32761,
          32762,
          32763,
          32765,
          32766,
          32767
        ],
        "originalSha256": "c8f5d0341d54d951a71b136e6e2afcb14d11ed8489a7ae126a8fee0df6ecf193",
        "mutatedSha256": "83c2e2564c1fec52a141ffdb20e826b9cb9b7d28409864573d2d902fcfbbcfbb",
        "before": {
          "crc32": "a2912082",
          "crc32c": "9c71fe32"
        },
        "after": {
          "crc32": "a2912082",
          "crc32c": "9c71fe32"
        },
        "detected": {
          "crc32": false,
          "crc32c": false
        }
      }
    ]
  },
  "toyDistance": {
    "fullGeneratorHex": "13",
    "rows": [
      {
        "dataBits": 4,
        "checkBits": 4,
        "codewordBits": 8,
        "nonzeroCodewordsChecked": 15,
        "minimumDistance": 3,
        "witnessBinary": "00010011"
      },
      {
        "dataBits": 11,
        "checkBits": 4,
        "codewordBits": 15,
        "nonzeroCodewordsChecked": 2047,
        "minimumDistance": 3,
        "witnessBinary": "000000000010011"
      },
      {
        "dataBits": 12,
        "checkBits": 4,
        "codewordBits": 16,
        "nonzeroCodewordsChecked": 4095,
        "minimumDistance": 2,
        "witnessBinary": "1000000000000001"
      }
    ]
  },
  "limits": [
    "Designed counterexamples, not random faults, device measurements or a collision-rate estimate.",
    "No exhaustive Hamming-distance computation for either 32-bit polynomial.",
    "Unchanged message length, fixed covered bytes and an unchanged stored CRC reference.",
    "Burst span is measured in the declared processing-bit order, not inferred physical media adjacency.",
    "CRC32C implementation is a teaching implementation checked against published vectors, not a production library benchmark."
  ]
}
