~/bend-docscommunity

proofs/crypto/hash/incremental.bend source

proofs/crypto/hash/incremental.bend on the hub · documented module

# Generated by tools/generators/hash_gen.py; do not edit by hand.import Baseimport ../../../src/crypto/sha/state.bend as S256import ../../../src/crypto/sha/core.bend as C256import ../../../src/crypto/sha/sha256.bend as SHA256import ../../../src/crypto/sha512/types.bend as T512import ../../../src/crypto/sha512/core.bend as C512import ../../../src/crypto/keccak/types.bend as TKimport ../../../src/crypto/keccak/permutation.bend as Pimport ../../../src/crypto/sha3/core.bend as C3import ../../../src/crypto/hash.bend as Himport ../sha/conformance.bend as SCimport ./lists.bend as L# The incremental hasher equals the one-shot hash for every split of the input# (the invariant of HACL*'s Hacl.Streaming.Functor, without its ghost state):# with G the algorithm's block loop over a byte list, a hasher whose state is# (s, buf) after the chunks so far satisfies, for every continuation z,##   G(chunks so far ++ z, initial) == G(buf ++ z, s).## absorbX_inv: one call of the block reader keeps it; foldX_inv: every update# keeps it; incrementalX: digest pads buf with the total length, which is the# one-shot padding of the whole message (z = the padding). The round# parameter q (48, 64, 24) stays a variable in every lemma that unfolds a block.# ---------------------------------------------------------------- SHA-256 (FIPS 180-4)def st256(st: H.Sha256State) -> S256.State:  match st:    case H.St256{s, b}:      sdef buf256(st: H.Sha256State) -> List<&2, U32>:  match st:    case H.St256{s, b}:      blaw absorb256_inv:  for +fuel: Nat  for +bytes: List<&2, U32>  for +q: Nat  for +s: S256.State  for +z: List<&2, U32>  {C256.block_bytes(List.append(&2, U32, bytes, z), q, C256.round_constants(), s) == C256.block_bytes(List.append(&2, U32, buf256(H.absorb256(fuel, H.read256_0(bytes), bytes, q, s)), z), q, C256.round_constants(), st256(H.absorb256(fuel, H.read256_0(bytes), bytes, q, s))) : S256.State}def absorb256_inv(fuel, bytes, q, s, z):  match fuel:    case 0n:      {==}    case 1n+p:      match bytes:        case b0 <> b1 <> b2 <> b3 <> b4 <> b5 <> b6 <> b7 <> b8 <> b9 <> b10 <> b11 <> b12 <> b13 <> b14 <> b15 <> b16 <> b17 <> b18 <> b19 <> b20 <> b21 <> b22 <> b23 <> b24 <> b25 <> b26 <> b27 <> b28 <> b29 <> b30 <> b31 <> b32 <> b33 <> b34 <> b35 <> b36 <> b37 <> b38 <> b39 <> b40 <> b41 <> b42 <> b43 <> b44 <> b45 <> b46 <> b47 <> b48 <> b49 <> b50 <> b51 <> b52 <> b53 <> b54 <> b55 <> b56 <> b57 <> b58 <> b59 <> b60 <> b61 <> b62 <> b63 <> rest:          +fast = C256.fips_compress16(C256.pack(b0, b1, b2, b3), C256.pack(b4, b5, b6, b7), C256.pack(b8, b9, b10, b11), C256.pack(b12, b13, b14, b15), C256.pack(b16, b17, b18, b19), C256.pack(b20, b21, b22, b23), C256.pack(b24, b25, b26, b27), C256.pack(b28, b29, b30, b31), C256.pack(b32, b33, b34, b35), C256.pack(b36, b37, b38, b39), C256.pack(b40, b41, b42, b43), C256.pack(b44, b45, b46, b47), C256.pack(b48, b49, b50, b51), C256.pack(b52, b53, b54, b55), C256.pack(b56, b57, b58, b59), C256.pack(b60, b61, b62, b63), q, s)          %SC.fips16_correct(C256.pack(b0, b1, b2, b3), C256.pack(b4, b5, b6, b7), C256.pack(b8, b9, b10, b11), C256.pack(b12, b13, b14, b15), C256.pack(b16, b17, b18, b19), C256.pack(b20, b21, b22, b23), C256.pack(b24, b25, b26, b27), C256.pack(b28, b29, b30, b31), C256.pack(b32, b33, b34, b35), C256.pack(b36, b37, b38, b39), C256.pack(b40, b41, b42, b43), C256.pack(b44, b45, b46, b47), C256.pack(b48, b49, b50, b51), C256.pack(b52, b53, b54, b55), C256.pack(b56, b57, b58, b59), C256.pack(b60, b61, b62, b63), q, s) :            {C256.block_bytes(List.append(&2, U32, rest, z), q, C256.round_constants(), _) == C256.block_bytes(List.append(&2, U32, buf256(H.absorb256(p, H.read256_0(rest), rest, q, fast)), z), q, C256.round_constants(), st256(H.absorb256(p, H.read256_0(rest), rest, q, fast))) : S256.State}          absorb256_inv(p, rest, q, fast, z)        case Nil{}:          {==}        case b0 <> Nil{}:          {==}        case b0 <> b1 <> Nil{}:          {==}        case b0 <> b1 <> b2 <> Nil{}:          {==}        case b0 <> b1 <> b2 <> b3 <> Nil{}:          {==}        case b0 <> b1 <> b2 <> b3 <> b4 <> Nil{}:          {==}        case b0 <> b1 <> b2 <> b3 <> b4 <> b5 <> Nil{}:          {==}        case b0 <> b1 <> b2 <> b3 <> b4 <> b5 <> b6 <> Nil{}:          {==}        case b0 <> b1 <> b2 <> b3 <> b4 <> b5 <> b6 <> b7 <> Nil{}:          {==}        case b0 <> b1 <> b2 <> b3 <> b4 <> b5 <> b6 <> b7 <> b8 <> Nil{}:          {==}        case b0 <> b1 <> b2 <> b3 <> b4 <> b5 <> b6 <> b7 <> b8 <> b9 <> Nil{}:          {==}        case b0 <> b1 <> b2 <> b3 <> b4 <> b5 <> b6 <> b7 <> b8 <> b9 <> b10 <> Nil{}:          {==}        case b0 <> b1 <> b2 <> b3 <> b4 <> b5 <> b6 <> b7 <> b8 <> b9 <> b10 <> b11 <> Nil{}:          {==}        case b0 <> b1 <> b2 <> b3 <> b4 <> b5 <> b6 <> b7 <> b8 <> b9 <> b10 <> b11 <> b12 <> Nil{}:          {==}        case b0 <> b1 <> b2 <> b3 <> b4 <> b5 <> b6 <> b7 <> b8 <> b9 <> b10 <> b11 <> b12 <> b13 <> Nil{}:          {==}        case b0 <> b1 <> b2 <> b3 <> b4 <> b5 <> b6 <> b7 <> b8 <> b9 <> b10 <> b11 <> b12 <> b13 <> b14 <> Nil{}:          {==}        case b0 <> b1 <> b2 <> b3 <> b4 <> b5 <> b6 <> b7 <> b8 <> b9 <> b10 <> b11 <> b12 <> b13 <> b14 <> b15 <> Nil{}:          {==}        case b0 <> b1 <> b2 <> b3 <> b4 <> b5 <> b6 <> b7 <> b8 <> b9 <> b10 <> b11 <> b12 <> b13 <> b14 <> b15 <> b16 <> Nil{}:          {==}        case b0 <> b1 <> b2 <> b3 <> b4 <> b5 <> b6 <> b7 <> b8 <> b9 <> b10 <> b11 <> b12 <> b13 <> b14 <> b15 <> b16 <> b17 <> Nil{}:          {==}        case b0 <> b1 <> b2 <> b3 <> b4 <> b5 <> b6 <> b7 <> b8 <> b9 <> b10 <> b11 <> b12 <> b13 <> b14 <> b15 <> b16 <> b17 <> b18 <> Nil{}:          {==}        case b0 <> b1 <> b2 <> b3 <> b4 <> b5 <> b6 <> b7 <> b8 <> b9 <> b10 <> b11 <> b12 <> b13 <> b14 <> b15 <> b16 <> b17 <> b18 <> b19 <> Nil{}:          {==}        case b0 <> b1 <> b2 <> b3 <> b4 <> b5 <> b6 <> b7 <> b8 <> b9 <> b10 <> b11 <> b12 <> b13 <> b14 <> b15 <> b16 <> b17 <> b18 <> b19 <> b20 <> Nil{}:          {==}        case b0 <> b1 <> b2 <> b3 <> b4 <> b5 <> b6 <> b7 <> b8 <> b9 <> b10 <> b11 <> b12 <> b13 <> b14 <> b15 <> b16 <> b17 <> b18 <> b19 <> b20 <> b21 <> Nil{}:          {==}        case b0 <> b1 <> b2 <> b3 <> b4 <> b5 <> b6 <> b7 <> b8 <> b9 <> b10 <> b11 <> b12 <> b13 <> b14 <> b15 <> b16 <> b17 <> b18 <> b19 <> b20 <> b21 <> b22 <> Nil{}:          {==}        case b0 <> b1 <> b2 <> b3 <> b4 <> b5 <> b6 <> b7 <> b8 <> b9 <> b10 <> b11 <> b12 <> b13 <> b14 <> b15 <> b16 <> b17 <> b18 <> b19 <> b20 <> b21 <> b22 <> b23 <> Nil{}:          {==}        case b0 <> b1 <> b2 <> b3 <> b4 <> b5 <> b6 <> b7 <> b8 <> b9 <> b10 <> b11 <> b12 <> b13 <> b14 <> b15 <> b16 <> b17 <> b18 <> b19 <> b20 <> b21 <> b22 <> b23 <> b24 <> Nil{}:          {==}        case b0 <> b1 <> b2 <> b3 <> b4 <> b5 <> b6 <> b7 <> b8 <> b9 <> b10 <> b11 <> b12 <> b13 <> b14 <> b15 <> b16 <> b17 <> b18 <> b19 <> b20 <> b21 <> b22 <> b23 <> b24 <> b25 <> Nil{}:          {==}        case b0 <> b1 <> b2 <> b3 <> b4 <> b5 <> b6 <> b7 <> b8 <> b9 <> b10 <> b11 <> b12 <> b13 <> b14 <> b15 <> b16 <> b17 <> b18 <> b19 <> b20 <> b21 <> b22 <> b23 <> b24 <> b25 <> b26 <> Nil{}:          {==}        case b0 <> b1 <> b2 <> b3 <> b4 <> b5 <> b6 <> b7 <> b8 <> b9 <> b10 <> b11 <> b12 <> b13 <> b14 <> b15 <> b16 <> b17 <> b18 <> b19 <> b20 <> b21 <> b22 <> b23 <> b24 <> b25 <> b26 <> b27 <> Nil{}:          {==}        case b0 <> b1 <> b2 <> b3 <> b4 <> b5 <> b6 <> b7 <> b8 <> b9 <> b10 <> b11 <> b12 <> b13 <> b14 <> b15 <> b16 <> b17 <> b18 <> b19 <> b20 <> b21 <> b22 <> b23 <> b24 <> b25 <> b26 <> b27 <> b28 <> Nil{}:          {==}        case b0 <> b1 <> b2 <> b3 <> b4 <> b5 <> b6 <> b7 <> b8 <> b9 <> b10 <> b11 <> b12 <> b13 <> b14 <> b15 <> b16 <> b17 <> b18 <> b19 <> b20 <> b21 <> b22 <> b23 <> b24 <> b25 <> b26 <> b27 <> b28 <> b29 <> Nil{}:          {==}        case b0 <> b1 <> b2 <> b3 <> b4 <> b5 <> b6 <> b7 <> b8 <> b9 <> b10 <> b11 <> b12 <> b13 <> b14 <> b15 <> b16 <> b17 <> b18 <> b19 <> b20 <> b21 <> b22 <> b23 <> b24 <> b25 <> b26 <> b27 <> b28 <> b29 <> b30 <> Nil{}:          {==}        case b0 <> b1 <> b2 <> b3 <> b4 <> b5 <> b6 <> b7 <> b8 <> b9 <> b10 <> b11 <> b12 <> b13 <> b14 <> b15 <> b16 <> b17 <> b18 <> b19 <> b20 <> b21 <> b22 <> b23 <> b24 <> b25 <> b26 <> b27 <> b28 <> b29 <> b30 <> b31 <> Nil{}:          {==}        case b0 <> b1 <> b2 <> b3 <> b4 <> b5 <> b6 <> b7 <> b8 <> b9 <> b10 <> b11 <> b12 <> b13 <> b14 <> b15 <> b16 <> b17 <> b18 <> b19 <> b20 <> b21 <> b22 <> b23 <> b24 <> b25 <> b26 <> b27 <> b28 <> b29 <> b30 <> b31 <> b32 <> Nil{}:          {==}        case b0 <> b1 <> b2 <> b3 <> b4 <> b5 <> b6 <> b7 <> b8 <> b9 <> b10 <> b11 <> b12 <> b13 <> b14 <> b15 <> b16 <> b17 <> b18 <> b19 <> b20 <> b21 <> b22 <> b23 <> b24 <> b25 <> b26 <> b27 <> b28 <> b29 <> b30 <> b31 <> b32 <> b33 <> Nil{}:          {==}        case b0 <> b1 <> b2 <> b3 <> b4 <> b5 <> b6 <> b7 <> b8 <> b9 <> b10 <> b11 <> b12 <> b13 <> b14 <> b15 <> b16 <> b17 <> b18 <> b19 <> b20 <> b21 <> b22 <> b23 <> b24 <> b25 <> b26 <> b27 <> b28 <> b29 <> b30 <> b31 <> b32 <> b33 <> b34 <> Nil{}:          {==}        case b0 <> b1 <> b2 <> b3 <> b4 <> b5 <> b6 <> b7 <> b8 <> b9 <> b10 <> b11 <> b12 <> b13 <> b14 <> b15 <> b16 <> b17 <> b18 <> b19 <> b20 <> b21 <> b22 <> b23 <> b24 <> b25 <> b26 <> b27 <> b28 <> b29 <> b30 <> b31 <> b32 <> b33 <> b34 <> b35 <> Nil{}:          {==}        case b0 <> b1 <> b2 <> b3 <> b4 <> b5 <> b6 <> b7 <> b8 <> b9 <> b10 <> b11 <> b12 <> b13 <> b14 <> b15 <> b16 <> b17 <> b18 <> b19 <> b20 <> b21 <> b22 <> b23 <> b24 <> b25 <> b26 <> b27 <> b28 <> b29 <> b30 <> b31 <> b32 <> b33 <> b34 <> b35 <> b36 <> Nil{}:          {==}        case b0 <> b1 <> b2 <> b3 <> b4 <> b5 <> b6 <> b7 <> b8 <> b9 <> b10 <> b11 <> b12 <> b13 <> b14 <> b15 <> b16 <> b17 <> b18 <> b19 <> b20 <> b21 <> b22 <> b23 <> b24 <> b25 <> b26 <> b27 <> b28 <> b29 <> b30 <> b31 <> b32 <> b33 <> b34 <> b35 <> b36 <> b37 <> Nil{}:          {==}        case b0 <> b1 <> b2 <> b3 <> b4 <> b5 <> b6 <> b7 <> b8 <> b9 <> b10 <> b11 <> b12 <> b13 <> b14 <> b15 <> b16 <> b17 <> b18 <> b19 <> b20 <> b21 <> b22 <> b23 <> b24 <> b25 <> b26 <> b27 <> b28 <> b29 <> b30 <> b31 <> b32 <> b33 <> b34 <> b35 <> b36 <> b37 <> b38 <> Nil{}:          {==}        case b0 <> b1 <> b2 <> b3 <> b4 <> b5 <> b6 <> b7 <> b8 <> b9 <> b10 <> b11 <> b12 <> b13 <> b14 <> b15 <> b16 <> b17 <> b18 <> b19 <> b20 <> b21 <> b22 <> b23 <> b24 <> b25 <> b26 <> b27 <> b28 <> b29 <> b30 <> b31 <> b32 <> b33 <> b34 <> b35 <> b36 <> b37 <> b38 <> b39 <> Nil{}:          {==}        case b0 <> b1 <> b2 <> b3 <> b4 <> b5 <> b6 <> b7 <> b8 <> b9 <> b10 <> b11 <> b12 <> b13 <> b14 <> b15 <> b16 <> b17 <> b18 <> b19 <> b20 <> b21 <> b22 <> b23 <> b24 <> b25 <> b26 <> b27 <> b28 <> b29 <> b30 <> b31 <> b32 <> b33 <> b34 <> b35 <> b36 <> b37 <> b38 <> b39 <> b40 <> Nil{}:          {==}        case b0 <> b1 <> b2 <> b3 <> b4 <> b5 <> b6 <> b7 <> b8 <> b9 <> b10 <> b11 <> b12 <> b13 <> b14 <> b15 <> b16 <> b17 <> b18 <> b19 <> b20 <> b21 <> b22 <> b23 <> b24 <> b25 <> b26 <> b27 <> b28 <> b29 <> b30 <> b31 <> b32 <> b33 <> b34 <> b35 <> b36 <> b37 <> b38 <> b39 <> b40 <> b41 <> Nil{}:          {==}        case b0 <> b1 <> b2 <> b3 <> b4 <> b5 <> b6 <> b7 <> b8 <> b9 <> b10 <> b11 <> b12 <> b13 <> b14 <> b15 <> b16 <> b17 <> b18 <> b19 <> b20 <> b21 <> b22 <> b23 <> b24 <> b25 <> b26 <> b27 <> b28 <> b29 <> b30 <> b31 <> b32 <> b33 <> b34 <> b35 <> b36 <> b37 <> b38 <> b39 <> b40 <> b41 <> b42 <> Nil{}:          {==}        case b0 <> b1 <> b2 <> b3 <> b4 <> b5 <> b6 <> b7 <> b8 <> b9 <> b10 <> b11 <> b12 <> b13 <> b14 <> b15 <> b16 <> b17 <> b18 <> b19 <> b20 <> b21 <> b22 <> b23 <> b24 <> b25 <> b26 <> b27 <> b28 <> b29 <> b30 <> b31 <> b32 <> b33 <> b34 <> b35 <> b36 <> b37 <> b38 <> b39 <> b40 <> b41 <> b42 <> b43 <> Nil{}:          {==}        case b0 <> b1 <> b2 <> b3 <> b4 <> b5 <> b6 <> b7 <> b8 <> b9 <> b10 <> b11 <> b12 <> b13 <> b14 <> b15 <> b16 <> b17 <> b18 <> b19 <> b20 <> b21 <> b22 <> b23 <> b24 <> b25 <> b26 <> b27 <> b28 <> b29 <> b30 <> b31 <> b32 <> b33 <> b34 <> b35 <> b36 <> b37 <> b38 <> b39 <> b40 <> b41 <> b42 <> b43 <> b44 <> Nil{}:          {==}        case b0 <> b1 <> b2 <> b3 <> b4 <> b5 <> b6 <> b7 <> b8 <> b9 <> b10 <> b11 <> b12 <> b13 <> b14 <> b15 <> b16 <> b17 <> b18 <> b19 <> b20 <> b21 <> b22 <> b23 <> b24 <> b25 <> b26 <> b27 <> b28 <> b29 <> b30 <> b31 <> b32 <> b33 <> b34 <> b35 <> b36 <> b37 <> b38 <> b39 <> b40 <> b41 <> b42 <> b43 <> b44 <> b45 <> Nil{}:          {==}        case b0 <> b1 <> b2 <> b3 <> b4 <> b5 <> b6 <> b7 <> b8 <> b9 <> b10 <> b11 <> b12 <> b13 <> b14 <> b15 <> b16 <> b17 <> b18 <> b19 <> b20 <> b21 <> b22 <> b23 <> b24 <> b25 <> b26 <> b27 <> b28 <> b29 <> b30 <> b31 <> b32 <> b33 <> b34 <> b35 <> b36 <> b37 <> b38 <> b39 <> b40 <> b41 <> b42 <> b43 <> b44 <> b45 <> b46 <> Nil{}:          {==}        case b0 <> b1 <> b2 <> b3 <> b4 <> b5 <> b6 <> b7 <> b8 <> b9 <> b10 <> b11 <> b12 <> b13 <> b14 <> b15 <> b16 <> b17 <> b18 <> b19 <> b20 <> b21 <> b22 <> b23 <> b24 <> b25 <> b26 <> b27 <> b28 <> b29 <> b30 <> b31 <> b32 <> b33 <> b34 <> b35 <> b36 <> b37 <> b38 <> b39 <> b40 <> b41 <> b42 <> b43 <> b44 <> b45 <> b46 <> b47 <> Nil{}:          {==}        case b0 <> b1 <> b2 <> b3 <> b4 <> b5 <> b6 <> b7 <> b8 <> b9 <> b10 <> b11 <> b12 <> b13 <> b14 <> b15 <> b16 <> b17 <> b18 <> b19 <> b20 <> b21 <> b22 <> b23 <> b24 <> b25 <> b26 <> b27 <> b28 <> b29 <> b30 <> b31 <> b32 <> b33 <> b34 <> b35 <> b36 <> b37 <> b38 <> b39 <> b40 <> b41 <> b42 <> b43 <> b44 <> b45 <> b46 <> b47 <> b48 <> Nil{}:          {==}        case b0 <> b1 <> b2 <> b3 <> b4 <> b5 <> b6 <> b7 <> b8 <> b9 <> b10 <> b11 <> b12 <> b13 <> b14 <> b15 <> b16 <> b17 <> b18 <> b19 <> b20 <> b21 <> b22 <> b23 <> b24 <> b25 <> b26 <> b27 <> b28 <> b29 <> b30 <> b31 <> b32 <> b33 <> b34 <> b35 <> b36 <> b37 <> b38 <> b39 <> b40 <> b41 <> b42 <> b43 <> b44 <> b45 <> b46 <> b47 <> b48 <> b49 <> Nil{}:          {==}        case b0 <> b1 <> b2 <> b3 <> b4 <> b5 <> b6 <> b7 <> b8 <> b9 <> b10 <> b11 <> b12 <> b13 <> b14 <> b15 <> b16 <> b17 <> b18 <> b19 <> b20 <> b21 <> b22 <> b23 <> b24 <> b25 <> b26 <> b27 <> b28 <> b29 <> b30 <> b31 <> b32 <> b33 <> b34 <> b35 <> b36 <> b37 <> b38 <> b39 <> b40 <> b41 <> b42 <> b43 <> b44 <> b45 <> b46 <> b47 <> b48 <> b49 <> b50 <> Nil{}:          {==}        case b0 <> b1 <> b2 <> b3 <> b4 <> b5 <> b6 <> b7 <> b8 <> b9 <> b10 <> b11 <> b12 <> b13 <> b14 <> b15 <> b16 <> b17 <> b18 <> b19 <> b20 <> b21 <> b22 <> b23 <> b24 <> b25 <> b26 <> b27 <> b28 <> b29 <> b30 <> b31 <> b32 <> b33 <> b34 <> b35 <> b36 <> b37 <> b38 <> b39 <> b40 <> b41 <> b42 <> b43 <> b44 <> b45 <> b46 <> b47 <> b48 <> b49 <> b50 <> b51 <> Nil{}:          {==}        case b0 <> b1 <> b2 <> b3 <> b4 <> b5 <> b6 <> b7 <> b8 <> b9 <> b10 <> b11 <> b12 <> b13 <> b14 <> b15 <> b16 <> b17 <> b18 <> b19 <> b20 <> b21 <> b22 <> b23 <> b24 <> b25 <> b26 <> b27 <> b28 <> b29 <> b30 <> b31 <> b32 <> b33 <> b34 <> b35 <> b36 <> b37 <> b38 <> b39 <> b40 <> b41 <> b42 <> b43 <> b44 <> b45 <> b46 <> b47 <> b48 <> b49 <> b50 <> b51 <> b52 <> Nil{}:          {==}        case b0 <> b1 <> b2 <> b3 <> b4 <> b5 <> b6 <> b7 <> b8 <> b9 <> b10 <> b11 <> b12 <> b13 <> b14 <> b15 <> b16 <> b17 <> b18 <> b19 <> b20 <> b21 <> b22 <> b23 <> b24 <> b25 <> b26 <> b27 <> b28 <> b29 <> b30 <> b31 <> b32 <> b33 <> b34 <> b35 <> b36 <> b37 <> b38 <> b39 <> b40 <> b41 <> b42 <> b43 <> b44 <> b45 <> b46 <> b47 <> b48 <> b49 <> b50 <> b51 <> b52 <> b53 <> Nil{}:          {==}        case b0 <> b1 <> b2 <> b3 <> b4 <> b5 <> b6 <> b7 <> b8 <> b9 <> b10 <> b11 <> b12 <> b13 <> b14 <> b15 <> b16 <> b17 <> b18 <> b19 <> b20 <> b21 <> b22 <> b23 <> b24 <> b25 <> b26 <> b27 <> b28 <> b29 <> b30 <> b31 <> b32 <> b33 <> b34 <> b35 <> b36 <> b37 <> b38 <> b39 <> b40 <> b41 <> b42 <> b43 <> b44 <> b45 <> b46 <> b47 <> b48 <> b49 <> b50 <> b51 <> b52 <> b53 <> b54 <> Nil{}:          {==}        case b0 <> b1 <> b2 <> b3 <> b4 <> b5 <> b6 <> b7 <> b8 <> b9 <> b10 <> b11 <> b12 <> b13 <> b14 <> b15 <> b16 <> b17 <> b18 <> b19 <> b20 <> b21 <> b22 <> b23 <> b24 <> b25 <> b26 <> b27 <> b28 <> b29 <> b30 <> b31 <> b32 <> b33 <> b34 <> b35 <> b36 <> b37 <> b38 <> b39 <> b40 <> b41 <> b42 <> b43 <> b44 <> b45 <> b46 <> b47 <> b48 <> b49 <> b50 <> b51 <> b52 <> b53 <> b54 <> b55 <> Nil{}:          {==}        case b0 <> b1 <> b2 <> b3 <> b4 <> b5 <> b6 <> b7 <> b8 <> b9 <> b10 <> b11 <> b12 <> b13 <> b14 <> b15 <> b16 <> b17 <> b18 <> b19 <> b20 <> b21 <> b22 <> b23 <> b24 <> b25 <> b26 <> b27 <> b28 <> b29 <> b30 <> b31 <> b32 <> b33 <> b34 <> b35 <> b36 <> b37 <> b38 <> b39 <> b40 <> b41 <> b42 <> b43 <> b44 <> b45 <> b46 <> b47 <> b48 <> b49 <> b50 <> b51 <> b52 <> b53 <> b54 <> b55 <> b56 <> Nil{}:          {==}        case b0 <> b1 <> b2 <> b3 <> b4 <> b5 <> b6 <> b7 <> b8 <> b9 <> b10 <> b11 <> b12 <> b13 <> b14 <> b15 <> b16 <> b17 <> b18 <> b19 <> b20 <> b21 <> b22 <> b23 <> b24 <> b25 <> b26 <> b27 <> b28 <> b29 <> b30 <> b31 <> b32 <> b33 <> b34 <> b35 <> b36 <> b37 <> b38 <> b39 <> b40 <> b41 <> b42 <> b43 <> b44 <> b45 <> b46 <> b47 <> b48 <> b49 <> b50 <> b51 <> b52 <> b53 <> b54 <> b55 <> b56 <> b57 <> Nil{}:          {==}        case b0 <> b1 <> b2 <> b3 <> b4 <> b5 <> b6 <> b7 <> b8 <> b9 <> b10 <> b11 <> b12 <> b13 <> b14 <> b15 <> b16 <> b17 <> b18 <> b19 <> b20 <> b21 <> b22 <> b23 <> b24 <> b25 <> b26 <> b27 <> b28 <> b29 <> b30 <> b31 <> b32 <> b33 <> b34 <> b35 <> b36 <> b37 <> b38 <> b39 <> b40 <> b41 <> b42 <> b43 <> b44 <> b45 <> b46 <> b47 <> b48 <> b49 <> b50 <> b51 <> b52 <> b53 <> b54 <> b55 <> b56 <> b57 <> b58 <> Nil{}:          {==}        case b0 <> b1 <> b2 <> b3 <> b4 <> b5 <> b6 <> b7 <> b8 <> b9 <> b10 <> b11 <> b12 <> b13 <> b14 <> b15 <> b16 <> b17 <> b18 <> b19 <> b20 <> b21 <> b22 <> b23 <> b24 <> b25 <> b26 <> b27 <> b28 <> b29 <> b30 <> b31 <> b32 <> b33 <> b34 <> b35 <> b36 <> b37 <> b38 <> b39 <> b40 <> b41 <> b42 <> b43 <> b44 <> b45 <> b46 <> b47 <> b48 <> b49 <> b50 <> b51 <> b52 <> b53 <> b54 <> b55 <> b56 <> b57 <> b58 <> b59 <> Nil{}:          {==}        case b0 <> b1 <> b2 <> b3 <> b4 <> b5 <> b6 <> b7 <> b8 <> b9 <> b10 <> b11 <> b12 <> b13 <> b14 <> b15 <> b16 <> b17 <> b18 <> b19 <> b20 <> b21 <> b22 <> b23 <> b24 <> b25 <> b26 <> b27 <> b28 <> b29 <> b30 <> b31 <> b32 <> b33 <> b34 <> b35 <> b36 <> b37 <> b38 <> b39 <> b40 <> b41 <> b42 <> b43 <> b44 <> b45 <> b46 <> b47 <> b48 <> b49 <> b50 <> b51 <> b52 <> b53 <> b54 <> b55 <> b56 <> b57 <> b58 <> b59 <> b60 <> Nil{}:          {==}        case b0 <> b1 <> b2 <> b3 <> b4 <> b5 <> b6 <> b7 <> b8 <> b9 <> b10 <> b11 <> b12 <> b13 <> b14 <> b15 <> b16 <> b17 <> b18 <> b19 <> b20 <> b21 <> b22 <> b23 <> b24 <> b25 <> b26 <> b27 <> b28 <> b29 <> b30 <> b31 <> b32 <> b33 <> b34 <> b35 <> b36 <> b37 <> b38 <> b39 <> b40 <> b41 <> b42 <> b43 <> b44 <> b45 <> b46 <> b47 <> b48 <> b49 <> b50 <> b51 <> b52 <> b53 <> b54 <> b55 <> b56 <> b57 <> b58 <> b59 <> b60 <> b61 <> Nil{}:          {==}        case b0 <> b1 <> b2 <> b3 <> b4 <> b5 <> b6 <> b7 <> b8 <> b9 <> b10 <> b11 <> b12 <> b13 <> b14 <> b15 <> b16 <> b17 <> b18 <> b19 <> b20 <> b21 <> b22 <> b23 <> b24 <> b25 <> b26 <> b27 <> b28 <> b29 <> b30 <> b31 <> b32 <> b33 <> b34 <> b35 <> b36 <> b37 <> b38 <> b39 <> b40 <> b41 <> b42 <> b43 <> b44 <> b45 <> b46 <> b47 <> b48 <> b49 <> b50 <> b51 <> b52 <> b53 <> b54 <> b55 <> b56 <> b57 <> b58 <> b59 <> b60 <> b61 <> b62 <> Nil{}:          {==}law step256_inv:  for +st: H.Sha256State  for +xs: List<&2, U32>  for +q: Nat  for +z: List<&2, U32>  {C256.block_bytes(List.append(&2, U32, List.append(&2, U32, buf256(st), xs), z), q, C256.round_constants(), st256(st)) == C256.block_bytes(List.append(&2, U32, buf256(H.step256(st, xs, q)), z), q, C256.round_constants(), st256(H.step256(st, xs, q))) : S256.State}def step256_inv(st, xs, q, z):  match st:    case H.St256{s, buf}:      absorb256_inv(List.length(&2, U32, List.append(&2, U32, buf, xs)), List.append(&2, U32, buf, xs), q, s, z)# The state after each chunk in turn.def fold256(cs: List<&2, List<&2, U32>>, +q: Nat, st: H.Sha256State) -> H.Sha256State:  match cs:    case Nil{}:      st    case c <> ct:      fold256(ct, q, H.step256(st, c, q))law fold256_inv:  for +cs: List<&2, List<&2, U32>>  for +q: Nat  for +st: H.Sha256State  for +z: List<&2, U32>  {C256.block_bytes(List.append(&2, U32, List.append(&2, U32, buf256(st), List.concat(&2, U32, cs)), z), q, C256.round_constants(), st256(st)) == C256.block_bytes(List.append(&2, U32, buf256(fold256(cs, q, st)), z), q, C256.round_constants(), st256(fold256(cs, q, st))) : S256.State}def fold256_inv(cs, q, st, z):  match cs:    case Nil{}:      %L.append_nil(buf256(st)) :        {C256.block_bytes(List.append(&2, U32, List.append(&2, U32, buf256(st), Nil{}), z), q, C256.round_constants(), st256(st)) == C256.block_bytes(List.append(&2, U32, _, z), q, C256.round_constants(), st256(st)) : S256.State}      {==}    case c <> ct:      +st2 = H.step256(st, c, q)      +m = List.concat(&2, U32, ct)      Equal.trans(S256.State,        C256.block_bytes(List.append(&2, U32, List.append(&2, U32, buf256(st), List.append(&2, U32, c, m)), z), q, C256.round_constants(), st256(st)),        C256.block_bytes(List.append(&2, U32, List.append(&2, U32, buf256(st), c), List.append(&2, U32, m, z)), q, C256.round_constants(), st256(st)),        C256.block_bytes(List.append(&2, U32, buf256(fold256(ct, q, st2)), z), q, C256.round_constants(), st256(fold256(ct, q, st2))),        Equal.cong(List<&2, U32>, S256.State, t => C256.block_bytes(t, q, C256.round_constants(), st256(st)),          List.append(&2, U32, List.append(&2, U32, buf256(st), List.append(&2, U32, c, m)), z), List.append(&2, U32, List.append(&2, U32, buf256(st), c), List.append(&2, U32, m, z)),          Equal.trans(List<&2, U32>, List.append(&2, U32, List.append(&2, U32, buf256(st), List.append(&2, U32, c, m)), z), List.append(&2, U32, List.append(&2, U32, List.append(&2, U32, buf256(st), c), m), z), List.append(&2, U32, List.append(&2, U32, buf256(st), c), List.append(&2, U32, m, z)),            Equal.cong(List<&2, U32>, List<&2, U32>, t => List.append(&2, U32, t, z),              List.append(&2, U32, buf256(st), List.append(&2, U32, c, m)), List.append(&2, U32, List.append(&2, U32, buf256(st), c), m), L.append_assoc_rev(buf256(st), c, m)),            L.append_assoc(List.append(&2, U32, buf256(st), c), m, z))),        Equal.trans(S256.State, C256.block_bytes(List.append(&2, U32, List.append(&2, U32, buf256(st), c), List.append(&2, U32, m, z)), q, C256.round_constants(), st256(st)), C256.block_bytes(List.append(&2, U32, buf256(st2), List.append(&2, U32, m, z)), q, C256.round_constants(), st256(st2)), C256.block_bytes(List.append(&2, U32, buf256(fold256(ct, q, st2)), z), q, C256.round_constants(), st256(fold256(ct, q, st2))),          step256_inv(st, c, q, List.append(&2, U32, m, z)),          Equal.trans(S256.State, C256.block_bytes(List.append(&2, U32, buf256(st2), List.append(&2, U32, m, z)), q, C256.round_constants(), st256(st2)), C256.block_bytes(List.append(&2, U32, List.append(&2, U32, buf256(st2), m), z), q, C256.round_constants(), st256(st2)), C256.block_bytes(List.append(&2, U32, buf256(fold256(ct, q, st2)), z), q, C256.round_constants(), st256(fold256(ct, q, st2))),            Equal.cong(List<&2, U32>, S256.State, t => C256.block_bytes(t, q, C256.round_constants(), st256(st2)),              List.append(&2, U32, buf256(st2), List.append(&2, U32, m, z)), List.append(&2, U32, List.append(&2, U32, buf256(st2), m), z), L.append_assoc_rev(buf256(st2), m, z)),            fold256_inv(ct, q, st2, z))))law state256:  for +cs: List<&2, List<&2, U32>>  for +st: H.Sha256State  for +len: Nat  {H.fold(cs, H.Sha256H{st, len}) == H.Sha256H{fold256(cs, 48n, st), Nat.add(len, List.length(&2, U32, List.concat(&2, U32, cs)))} : H.Hasher}def state256(cs, st, len):  match cs:    case Nil{}:      Equal.cong(Nat, H.Hasher, t => H.Sha256H{st, t}, len, Nat.add(len, 0n),        Equal.sym(Nat, Nat.add(len, 0n), len, L.add_zero(len)))    case c <> ct:      +m = List.concat(&2, U32, ct)      %L.add_length(len, c, m) :        {H.fold(c <> ct, H.Sha256H{st, len}) == H.Sha256H{fold256(ct, 48n, H.step256(st, c, 48n)), _} : H.Hasher}      state256(ct, H.step256(st, c, 48n), Nat.add(len, List.length(&2, U32, c)))law finish256_eta:  for +st: H.Sha256State  for +len: Nat  for +q: Nat  {H.finish256(st, len, q) == SHA256.digest_bytes(C256.digest(C256.block_bytes(List.append(&2, U32, buf256(st), C256.suffix(len)), q, C256.round_constants(), st256(st)))) : List<&2, U32>}def finish256_eta(st, len, q):  match st:    case H.St256{s, buf}:      {==}# digest(update_all(new, chunks)) is the padded block loop over concat(chunks).law incremental256:  for +cs: List<&2, List<&2, U32>>  {H.digest(H.update_all(H.new_sha256(), cs)) == SHA256.digest_bytes(C256.digest(C256.block_bytes(List.append(&2, U32, List.concat(&2, U32, cs), C256.suffix(List.length(&2, U32, List.concat(&2, U32, cs)))), 48n, C256.round_constants(), C256.initial()))) : List<&2, U32>}def incremental256(cs):  +m = List.concat(&2, U32, cs)  +qs = fold256(cs, 48n, H.St256{C256.initial(), Nil{}})  %Equal.sym(H.Hasher, H.fold(cs, H.Sha256H{H.St256{C256.initial(), Nil{}}, 0n}), H.Sha256H{qs, List.length(&2, U32, m)},    state256(cs, H.St256{C256.initial(), Nil{}}, 0n)) :    {H.digest(_) == SHA256.digest_bytes(C256.digest(C256.block_bytes(List.append(&2, U32, List.concat(&2, U32, cs), C256.suffix(List.length(&2, U32, List.concat(&2, U32, cs)))), 48n, C256.round_constants(), C256.initial()))) : List<&2, U32>}  %Equal.sym(List<&2, U32>, H.finish256(qs, List.length(&2, U32, m), 48n), SHA256.digest_bytes(C256.digest(C256.block_bytes(List.append(&2, U32, buf256(qs), C256.suffix(List.length(&2, U32, m))), 48n, C256.round_constants(), st256(qs)))),    finish256_eta(qs, List.length(&2, U32, m), 48n)) :    {_ == SHA256.digest_bytes(C256.digest(C256.block_bytes(List.append(&2, U32, List.concat(&2, U32, cs), C256.suffix(List.length(&2, U32, List.concat(&2, U32, cs)))), 48n, C256.round_constants(), C256.initial()))) : List<&2, U32>}  Equal.cong(S256.State, List<&2, U32>, t => SHA256.digest_bytes(C256.digest(t)),    C256.block_bytes(List.append(&2, U32, buf256(qs), C256.suffix(List.length(&2, U32, m))), 48n, C256.round_constants(), st256(qs)), C256.block_bytes(List.append(&2, U32, m, C256.suffix(List.length(&2, U32, m))), 48n, C256.round_constants(), C256.initial()),    Equal.sym(S256.State, C256.block_bytes(List.append(&2, U32, m, C256.suffix(List.length(&2, U32, m))), 48n, C256.round_constants(), C256.initial()), C256.block_bytes(List.append(&2, U32, buf256(qs), C256.suffix(List.length(&2, U32, m))), 48n, C256.round_constants(), st256(qs)), fold256_inv(cs, 48n, H.St256{C256.initial(), Nil{}}, C256.suffix(List.length(&2, U32, m)))))# ---------------------------------------------------------------- SHA-512 (FIPS 180-4)def st512(st: H.Sha512State) -> T512.State:  match st:    case H.St512{s, b}:      sdef buf512(st: H.Sha512State) -> List<&2, U32>:  match st:    case H.St512{s, b}:      blaw absorb512_inv:  for +fuel: Nat  for +bytes: List<&2, U32>  for +q: Nat  for +s: T512.State  for +z: List<&2, U32>  {C512.blocks(C512.lanes(List.append(&2, U32, bytes, z)), q, C512.round_constants(), s) == C512.blocks(C512.lanes(List.append(&2, U32, buf512(H.absorb512(fuel, H.read512_0(bytes), bytes, q, s)), z)), q, C512.round_constants(), st512(H.absorb512(fuel, H.read512_0(bytes), bytes, q, s))) : T512.State}def absorb512_inv(fuel, bytes, q, s, z):  match fuel:    case 0n:      {==}    case 1n+p:      match bytes:        case b0 <> b1 <> b2 <> b3 <> b4 <> b5 <> b6 <> b7 <> b8 <> b9 <> b10 <> b11 <> b12 <> b13 <> b14 <> b15 <> b16 <> b17 <> b18 <> b19 <> b20 <> b21 <> b22 <> b23 <> b24 <> b25 <> b26 <> b27 <> b28 <> b29 <> b30 <> b31 <> b32 <> b33 <> b34 <> b35 <> b36 <> b37 <> b38 <> b39 <> b40 <> b41 <> b42 <> b43 <> b44 <> b45 <> b46 <> b47 <> b48 <> b49 <> b50 <> b51 <> b52 <> b53 <> b54 <> b55 <> b56 <> b57 <> b58 <> b59 <> b60 <> b61 <> b62 <> b63 <> b64 <> b65 <> b66 <> b67 <> b68 <> b69 <> b70 <> b71 <> b72 <> b73 <> b74 <> b75 <> b76 <> b77 <> b78 <> b79 <> b80 <> b81 <> b82 <> b83 <> b84 <> b85 <> b86 <> b87 <> b88 <> b89 <> b90 <> b91 <> b92 <> b93 <> b94 <> b95 <> b96 <> b97 <> b98 <> b99 <> b100 <> b101 <> b102 <> b103 <> b104 <> b105 <> b106 <> b107 <> b108 <> b109 <> b110 <> b111 <> b112 <> b113 <> b114 <> b115 <> b116 <> b117 <> b118 <> b119 <> b120 <> b121 <> b122 <> b123 <> b124 <> b125 <> b126 <> b127 <> rest:          absorb512_inv(p, rest, q, C512.compress16(T512.W{C512.pack(b0, b1, b2, b3), C512.pack(b4, b5, b6, b7)}, T512.W{C512.pack(b8, b9, b10, b11), C512.pack(b12, b13, b14, b15)}, T512.W{C512.pack(b16, b17, b18, b19), C512.pack(b20, b21, b22, b23)}, T512.W{C512.pack(b24, b25, b26, b27), C512.pack(b28, b29, b30, b31)}, T512.W{C512.pack(b32, b33, b34, b35), C512.pack(b36, b37, b38, b39)}, T512.W{C512.pack(b40, b41, b42, b43), C512.pack(b44, b45, b46, b47)}, T512.W{C512.pack(b48, b49, b50, b51), C512.pack(b52, b53, b54, b55)}, T512.W{C512.pack(b56, b57, b58, b59), C512.pack(b60, b61, b62, b63)}, T512.W{C512.pack(b64, b65, b66, b67), C512.pack(b68, b69, b70, b71)}, T512.W{C512.pack(b72, b73, b74, b75), C512.pack(b76, b77, b78, b79)}, T512.W{C512.pack(b80, b81, b82, b83), C512.pack(b84, b85, b86, b87)}, T512.W{C512.pack(b88, b89, b90, b91), C512.pack(b92, b93, b94, b95)}, T512.W{C512.pack(b96, b97, b98, b99), C512.pack(b100, b101, b102, b103)}, T512.W{C512.pack(b104, b105, b106, b107), C512.pack(b108, b109, b110, b111)}, T512.W{C512.pack(b112, b113, b114, b115), C512.pack(b116, b117, b118, b119)}, T512.W{C512.pack(b120, b121, b122, b123), C512.pack(b124, b125, b126, b127)}, q, C512.round_constants(), s), z)        case Nil{}:          {==}        case b0 <> Nil{}:          {==}        case b0 <> b1 <> Nil{}:          {==}        case b0 <> b1 <> b2 <> Nil{}:          {==}        case b0 <> b1 <> b2 <> b3 <> Nil{}:          {==}        case b0 <> b1 <> b2 <> b3 <> b4 <> Nil{}:          {==}        case b0 <> b1 <> b2 <> b3 <> b4 <> b5 <> Nil{}:          {==}        case b0 <> b1 <> b2 <> b3 <> b4 <> b5 <> b6 <> Nil{}:          {==}        case b0 <> b1 <> b2 <> b3 <> b4 <> b5 <> b6 <> b7 <> Nil{}:          {==}        case b0 <> b1 <> b2 <> b3 <> b4 <> b5 <> b6 <> b7 <> b8 <> Nil{}:          {==}        case b0 <> b1 <> b2 <> b3 <> b4 <> b5 <> b6 <> b7 <> b8 <> b9 <> Nil{}:          {==}        case b0 <> b1 <> b2 <> b3 <> b4 <> b5 <> b6 <> b7 <> b8 <> b9 <> b10 <> Nil{}:          {==}        case b0 <> b1 <> b2 <> b3 <> b4 <> b5 <> b6 <> b7 <> b8 <> b9 <> b10 <> b11 <> Nil{}:          {==}        case b0 <> b1 <> b2 <> b3 <> b4 <> b5 <> b6 <> b7 <> b8 <> b9 <> b10 <> b11 <> b12 <> Nil{}:          {==}        case b0 <> b1 <> b2 <> b3 <> b4 <> b5 <> b6 <> b7 <> b8 <> b9 <> b10 <> b11 <> b12 <> b13 <> Nil{}:          {==}        case b0 <> b1 <> b2 <> b3 <> b4 <> b5 <> b6 <> b7 <> b8 <> b9 <> b10 <> b11 <> b12 <> b13 <> b14 <> Nil{}:          {==}        case b0 <> b1 <> b2 <> b3 <> b4 <> b5 <> b6 <> b7 <> b8 <> b9 <> b10 <> b11 <> b12 <> b13 <> b14 <> b15 <> Nil{}:          {==}        case b0 <> b1 <> b2 <> b3 <> b4 <> b5 <> b6 <> b7 <> b8 <> b9 <> b10 <> b11 <> b12 <> b13 <> b14 <> b15 <> b16 <> Nil{}:          {==}        case b0 <> b1 <> b2 <> b3 <> b4 <> b5 <> b6 <> b7 <> b8 <> b9 <> b10 <> b11 <> b12 <> b13 <> b14 <> b15 <> b16 <> b17 <> Nil{}:          {==}        case b0 <> b1 <> b2 <> b3 <> b4 <> b5 <> b6 <> b7 <> b8 <> b9 <> b10 <> b11 <> b12 <> b13 <> b14 <> b15 <> b16 <> b17 <> b18 <> Nil{}:          {==}        case b0 <> b1 <> b2 <> b3 <> b4 <> b5 <> b6 <> b7 <> b8 <> b9 <> b10 <> b11 <> b12 <> b13 <> b14 <> b15 <> b16 <> b17 <> b18 <> b19 <> Nil{}:          {==}        case b0 <> b1 <> b2 <> b3 <> b4 <> b5 <> b6 <> b7 <> b8 <> b9 <> b10 <> b11 <> b12 <> b13 <> b14 <> b15 <> b16 <> b17 <> b18 <> b19 <> b20 <> Nil{}:          {==}        case b0 <> b1 <> b2 <> b3 <> b4 <> b5 <> b6 <> b7 <> b8 <> b9 <> b10 <> b11 <> b12 <> b13 <> b14 <> b15 <> b16 <> b17 <> b18 <> b19 <> b20 <> b21 <> Nil{}:          {==}        case b0 <> b1 <> b2 <> b3 <> b4 <> b5 <> b6 <> b7 <> b8 <> b9 <> b10 <> b11 <> b12 <> b13 <> b14 <> b15 <> b16 <> b17 <> b18 <> b19 <> b20 <> b21 <> b22 <> Nil{}:          {==}        case b0 <> b1 <> b2 <> b3 <> b4 <> b5 <> b6 <> b7 <> b8 <> b9 <> b10 <> b11 <> b12 <> b13 <> b14 <> b15 <> b16 <> b17 <> b18 <> b19 <> b20 <> b21 <> b22 <> b23 <> Nil{}:          {==}        case b0 <> b1 <> b2 <> b3 <> b4 <> b5 <> b6 <> b7 <> b8 <> b9 <> b10 <> b11 <> b12 <> b13 <> b14 <> b15 <> b16 <> b17 <> b18 <> b19 <> b20 <> b21 <> b22 <> b23 <> b24 <> Nil{}:          {==}        case b0 <> b1 <> b2 <> b3 <> b4 <> b5 <> b6 <> b7 <> b8 <> b9 <> b10 <> b11 <> b12 <> b13 <> b14 <> b15 <> b16 <> b17 <> b18 <> b19 <> b20 <> b21 <> b22 <> b23 <> b24 <> b25 <> Nil{}:          {==}        case b0 <> b1 <> b2 <> b3 <> b4 <> b5 <> b6 <> b7 <> b8 <> b9 <> b10 <> b11 <> b12 <> b13 <> b14 <> b15 <> b16 <> b17 <> b18 <> b19 <> b20 <> b21 <> b22 <> b23 <> b24 <> b25 <> b26 <> Nil{}:          {==}        case b0 <> b1 <> b2 <> b3 <> b4 <> b5 <> b6 <> b7 <> b8 <> b9 <> b10 <> b11 <> b12 <> b13 <> b14 <> b15 <> b16 <> b17 <> b18 <> b19 <> b20 <> b21 <> b22 <> b23 <> b24 <> b25 <> b26 <> b27 <> Nil{}:          {==}        case b0 <> b1 <> b2 <> b3 <> b4 <> b5 <> b6 <> b7 <> b8 <> b9 <> b10 <> b11 <> b12 <> b13 <> b14 <> b15 <> b16 <> b17 <> b18 <> b19 <> b20 <> b21 <> b22 <> b23 <> b24 <> b25 <> b26 <> b27 <> b28 <> Nil{}:          {==}        case b0 <> b1 <> b2 <> b3 <> b4 <> b5 <> b6 <> b7 <> b8 <> b9 <> b10 <> b11 <> b12 <> b13 <> b14 <> b15 <> b16 <> b17 <> b18 <> b19 <> b20 <> b21 <> b22 <> b23 <> b24 <> b25 <> b26 <> b27 <> b28 <> b29 <> Nil{}:          {==}        case b0 <> b1 <> b2 <> b3 <> b4 <> b5 <> b6 <> b7 <> b8 <> b9 <> b10 <> b11 <> b12 <> b13 <> b14 <> b15 <> b16 <> b17 <> b18 <> b19 <> b20 <> b21 <> b22 <> b23 <> b24 <> b25 <> b26 <> b27 <> b28 <> b29 <> b30 <> Nil{}:          {==}        case b0 <> b1 <> b2 <> b3 <> b4 <> b5 <> b6 <> b7 <> b8 <> b9 <> b10 <> b11 <> b12 <> b13 <> b14 <> b15 <> b16 <> b17 <> b18 <> b19 <> b20 <> b21 <> b22 <> b23 <> b24 <> b25 <> b26 <> b27 <> b28 <> b29 <> b30 <> b31 <> Nil{}:          {==}        case b0 <> b1 <> b2 <> b3 <> b4 <> b5 <> b6 <> b7 <> b8 <> b9 <> b10 <> b11 <> b12 <> b13 <> b14 <> b15 <> b16 <> b17 <> b18 <> b19 <> b20 <> b21 <> b22 <> b23 <> b24 <> b25 <> b26 <> b27 <> b28 <> b29 <> b30 <> b31 <> b32 <> Nil{}:          {==}        case b0 <> b1 <> b2 <> b3 <> b4 <> b5 <> b6 <> b7 <> b8 <> b9 <> b10 <> b11 <> b12 <> b13 <> b14 <> b15 <> b16 <> b17 <> b18 <> b19 <> b20 <> b21 <> b22 <> b23 <> b24 <> b25 <> b26 <> b27 <> b28 <> b29 <> b30 <> b31 <> b32 <> b33 <> Nil{}:          {==}        case b0 <> b1 <> b2 <> b3 <> b4 <> b5 <> b6 <> b7 <> b8 <> b9 <> b10 <> b11 <> b12 <> b13 <> b14 <> b15 <> b16 <> b17 <> b18 <> b19 <> b20 <> b21 <> b22 <> b23 <> b24 <> b25 <> b26 <> b27 <> b28 <> b29 <> b30 <> b31 <> b32 <> b33 <> b34 <> Nil{}:          {==}        case b0 <> b1 <> b2 <> b3 <> b4 <> b5 <> b6 <> b7 <> b8 <> b9 <> b10 <> b11 <> b12 <> b13 <> b14 <> b15 <> b16 <> b17 <> b18 <> b19 <> b20 <> b21 <> b22 <> b23 <> b24 <> b25 <> b26 <> b27 <> b28 <> b29 <> b30 <> b31 <> b32 <> b33 <> b34 <> b35 <> Nil{}:          {==}        case b0 <> b1 <> b2 <> b3 <> b4 <> b5 <> b6 <> b7 <> b8 <> b9 <> b10 <> b11 <> b12 <> b13 <> b14 <> b15 <> b16 <> b17 <> b18 <> b19 <> b20 <> b21 <> b22 <> b23 <> b24 <> b25 <> b26 <> b27 <> b28 <> b29 <> b30 <> b31 <> b32 <> b33 <> b34 <> b35 <> b36 <> Nil{}:          {==}        case b0 <> b1 <> b2 <> b3 <> b4 <> b5 <> b6 <> b7 <> b8 <> b9 <> b10 <> b11 <> b12 <> b13 <> b14 <> b15 <> b16 <> b17 <> b18 <> b19 <> b20 <> b21 <> b22 <> b23 <> b24 <> b25 <> b26 <> b27 <> b28 <> b29 <> b30 <> b31 <> b32 <> b33 <> b34 <> b35 <> b36 <> b37 <> Nil{}:          {==}        case b0 <> b1 <> b2 <> b3 <> b4 <> b5 <> b6 <> b7 <> b8 <> b9 <> b10 <> b11 <> b12 <> b13 <> b14 <> b15 <> b16 <> b17 <> b18 <> b19 <> b20 <> b21 <> b22 <> b23 <> b24 <> b25 <> b26 <> b27 <> b28 <> b29 <> b30 <> b31 <> b32 <> b33 <> b34 <> b35 <> b36 <> b37 <> b38 <> Nil{}:          {==}        case b0 <> b1 <> b2 <> b3 <> b4 <> b5 <> b6 <> b7 <> b8 <> b9 <> b10 <> b11 <> b12 <> b13 <> b14 <> b15 <> b16 <> b17 <> b18 <> b19 <> b20 <> b21 <> b22 <> b23 <> b24 <> b25 <> b26 <> b27 <> b28 <> b29 <> b30 <> b31 <> b32 <> b33 <> b34 <> b35 <> b36 <> b37 <> b38 <> b39 <> Nil{}:          {==}        case b0 <> b1 <> b2 <> b3 <> b4 <> b5 <> b6 <> b7 <> b8 <> b9 <> b10 <> b11 <> b12 <> b13 <> b14 <> b15 <> b16 <> b17 <> b18 <> b19 <> b20 <> b21 <> b22 <> b23 <> b24 <> b25 <> b26 <> b27 <> b28 <> b29 <> b30 <> b31 <> b32 <> b33 <> b34 <> b35 <> b36 <> b37 <> b38 <> b39 <> b40 <> Nil{}:          {==}        case b0 <> b1 <> b2 <> b3 <> b4 <> b5 <> b6 <> b7 <> b8 <> b9 <> b10 <> b11 <> b12 <> b13 <> b14 <> b15 <> b16 <> b17 <> b18 <> b19 <> b20 <> b21 <> b22 <> b23 <> b24 <> b25 <> b26 <> b27 <> b28 <> b29 <> b30 <> b31 <> b32 <> b33 <> b34 <> b35 <> b36 <> b37 <> b38 <> b39 <> b40 <> b41 <> Nil{}:          {==}        case b0 <> b1 <> b2 <> b3 <> b4 <> b5 <> b6 <> b7 <> b8 <> b9 <> b10 <> b11 <> b12 <> b13 <> b14 <> b15 <> b16 <> b17 <> b18 <> b19 <> b20 <> b21 <> b22 <> b23 <> b24 <> b25 <> b26 <> b27 <> b28 <> b29 <> b30 <> b31 <> b32 <> b33 <> b34 <> b35 <> b36 <> b37 <> b38 <> b39 <> b40 <> b41 <> b42 <> Nil{}:          {==}        case b0 <> b1 <> b2 <> b3 <> b4 <> b5 <> b6 <> b7 <> b8 <> b9 <> b10 <> b11 <> b12 <> b13 <> b14 <> b15 <> b16 <> b17 <> b18 <> b19 <> b20 <> b21 <> b22 <> b23 <> b24 <> b25 <> b26 <> b27 <> b28 <> b29 <> b30 <> b31 <> b32 <> b33 <> b34 <> b35 <> b36 <> b37 <> b38 <> b39 <> b40 <> b41 <> b42 <> b43 <> Nil{}:          {==}        case b0 <> b1 <> b2 <> b3 <> b4 <> b5 <> b6 <> b7 <> b8 <> b9 <> b10 <> b11 <> b12 <> b13 <> b14 <> b15 <> b16 <> b17 <> b18 <> b19 <> b20 <> b21 <> b22 <> b23 <> b24 <> b25 <> b26 <> b27 <> b28 <> b29 <> b30 <> b31 <> b32 <> b33 <> b34 <> b35 <> b36 <> b37 <> b38 <> b39 <> b40 <> b41 <> b42 <> b43 <> b44 <> Nil{}:          {==}        case b0 <> b1 <> b2 <> b3 <> b4 <> b5 <> b6 <> b7 <> b8 <> b9 <> b10 <> b11 <> b12 <> b13 <> b14 <> b15 <> b16 <> b17 <> b18 <> b19 <> b20 <> b21 <> b22 <> b23 <> b24 <> b25 <> b26 <> b27 <> b28 <> b29 <> b30 <> b31 <> b32 <> b33 <> b34 <> b35 <> b36 <> b37 <> b38 <> b39 <> b40 <> b41 <> b42 <> b43 <> b44 <> b45 <> Nil{}:          {==}        case b0 <> b1 <> b2 <> b3 <> b4 <> b5 <> b6 <> b7 <> b8 <> b9 <> b10 <> b11 <> b12 <> b13 <> b14 <> b15 <> b16 <> b17 <> b18 <> b19 <> b20 <> b21 <> b22 <> b23 <> b24 <> b25 <> b26 <> b27 <> b28 <> b29 <> b30 <> b31 <> b32 <> b33 <> b34 <> b35 <> b36 <> b37 <> b38 <> b39 <> b40 <> b41 <> b42 <> b43 <> b44 <> b45 <> b46 <> Nil{}:          {==}        case b0 <> b1 <> b2 <> b3 <> b4 <> b5 <> b6 <> b7 <> b8 <> b9 <> b10 <> b11 <> b12 <> b13 <> b14 <> b15 <> b16 <> b17 <> b18 <> b19 <> b20 <> b21 <> b22 <> b23 <> b24 <> b25 <> b26 <> b27 <> b28 <> b29 <> b30 <> b31 <> b32 <> b33 <> b34 <> b35 <> b36 <> b37 <> b38 <> b39 <> b40 <> b41 <> b42 <> b43 <> b44 <> b45 <> b46 <> b47 <> Nil{}:          {==}        case b0 <> b1 <> b2 <> b3 <> b4 <> b5 <> b6 <> b7 <> b8 <> b9 <> b10 <> b11 <> b12 <> b13 <> b14 <> b15 <> b16 <> b17 <> b18 <> b19 <> b20 <> b21 <> b22 <> b23 <> b24 <> b25 <> b26 <> b27 <> b28 <> b29 <> b30 <> b31 <> b32 <> b33 <> b34 <> b35 <> b36 <> b37 <> b38 <> b39 <> b40 <> b41 <> b42 <> b43 <> b44 <> b45 <> b46 <> b47 <> b48 <> Nil{}:          {==}        case b0 <> b1 <> b2 <> b3 <> b4 <> b5 <> b6 <> b7 <> b8 <> b9 <> b10 <> b11 <> b12 <> b13 <> b14 <> b15 <> b16 <> b17 <> b18 <> b19 <> b20 <> b21 <> b22 <> b23 <> b24 <> b25 <> b26 <> b27 <> b28 <> b29 <> b30 <> b31 <> b32 <> b33 <> b34 <> b35 <> b36 <> b37 <> b38 <> b39 <> b40 <> b41 <> b42 <> b43 <> b44 <> b45 <> b46 <> b47 <> b48 <> b49 <> Nil{}:          {==}        case b0 <> b1 <> b2 <> b3 <> b4 <> b5 <> b6 <> b7 <> b8 <> b9 <> b10 <> b11 <> b12 <> b13 <> b14 <> b15 <> b16 <> b17 <> b18 <> b19 <> b20 <> b21 <> b22 <> b23 <> b24 <> b25 <> b26 <> b27 <> b28 <> b29 <> b30 <> b31 <> b32 <> b33 <> b34 <> b35 <> b36 <> b37 <> b38 <> b39 <> b40 <> b41 <> b42 <> b43 <> b44 <> b45 <> b46 <> b47 <> b48 <> b49 <> b50 <> Nil{}:          {==}        case b0 <> b1 <> b2 <> b3 <> b4 <> b5 <> b6 <> b7 <> b8 <> b9 <> b10 <> b11 <> b12 <> b13 <> b14 <> b15 <> b16 <> b17 <> b18 <> b19 <> b20 <> b21 <> b22 <> b23 <> b24 <> b25 <> b26 <> b27 <> b28 <> b29 <> b30 <> b31 <> b32 <> b33 <> b34 <> b35 <> b36 <> b37 <> b38 <> b39 <> b40 <> b41 <> b42 <> b43 <> b44 <> b45 <> b46 <> b47 <> b48 <> b49 <> b50 <> b51 <> Nil{}:          {==}        case b0 <> b1 <> b2 <> b3 <> b4 <> b5 <> b6 <> b7 <> b8 <> b9 <> b10 <> b11 <> b12 <> b13 <> b14 <> b15 <> b16 <> b17 <> b18 <> b19 <> b20 <> b21 <> b22 <> b23 <> b24 <> b25 <> b26 <> b27 <> b28 <> b29 <> b30 <> b31 <> b32 <> b33 <> b34 <> b35 <> b36 <> b37 <> b38 <> b39 <> b40 <> b41 <> b42 <> b43 <> b44 <> b45 <> b46 <> b47 <> b48 <> b49 <> b50 <> b51 <> b52 <> Nil{}:          {==}        case b0 <> b1 <> b2 <> b3 <> b4 <> b5 <> b6 <> b7 <> b8 <> b9 <> b10 <> b11 <> b12 <> b13 <> b14 <> b15 <> b16 <> b17 <> b18 <> b19 <> b20 <> b21 <> b22 <> b23 <> b24 <> b25 <> b26 <> b27 <> b28 <> b29 <> b30 <> b31 <> b32 <> b33 <> b34 <> b35 <> b36 <> b37 <> b38 <> b39 <> b40 <> b41 <> b42 <> b43 <> b44 <> b45 <> b46 <> b47 <> b48 <> b49 <> b50 <> b51 <> b52 <> b53 <> Nil{}:          {==}        case b0 <> b1 <> b2 <> b3 <> b4 <> b5 <> b6 <> b7 <> b8 <> b9 <> b10 <> b11 <> b12 <> b13 <> b14 <> b15 <> b16 <> b17 <> b18 <> b19 <> b20 <> b21 <> b22 <> b23 <> b24 <> b25 <> b26 <> b27 <> b28 <> b29 <> b30 <> b31 <> b32 <> b33 <> b34 <> b35 <> b36 <> b37 <> b38 <> b39 <> b40 <> b41 <> b42 <> b43 <> b44 <> b45 <> b46 <> b47 <> b48 <> b49 <> b50 <> b51 <> b52 <> b53 <> b54 <> Nil{}:          {==}        case b0 <> b1 <> b2 <> b3 <> b4 <> b5 <> b6 <> b7 <> b8 <> b9 <> b10 <> b11 <> b12 <> b13 <> b14 <> b15 <> b16 <> b17 <> b18 <> b19 <> b20 <> b21 <> b22 <> b23 <> b24 <> b25 <> b26 <> b27 <> b28 <> b29 <> b30 <> b31 <> b32 <> b33 <> b34 <> b35 <> b36 <> b37 <> b38 <> b39 <> b40 <> b41 <> b42 <> b43 <> b44 <> b45 <> b46 <> b47 <> b48 <> b49 <> b50 <> b51 <> b52 <> b53 <> b54 <> b55 <> Nil{}:          {==}        case b0 <> b1 <> b2 <> b3 <> b4 <> b5 <> b6 <> b7 <> b8 <> b9 <> b10 <> b11 <> b12 <> b13 <> b14 <> b15 <> b16 <> b17 <> b18 <> b19 <> b20 <> b21 <> b22 <> b23 <> b24 <> b25 <> b26 <> b27 <> b28 <> b29 <> b30 <> b31 <> b32 <> b33 <> b34 <> b35 <> b36 <> b37 <> b38 <> b39 <> b40 <> b41 <> b42 <> b43 <> b44 <> b45 <> b46 <> b47 <> b48 <> b49 <> b50 <> b51 <> b52 <> b53 <> b54 <> b55 <> b56 <> Nil{}:          {==}        case b0 <> b1 <> b2 <> b3 <> b4 <> b5 <> b6 <> b7 <> b8 <> b9 <> b10 <> b11 <> b12 <> b13 <> b14 <> b15 <> b16 <> b17 <> b18 <> b19 <> b20 <> b21 <> b22 <> b23 <> b24 <> b25 <> b26 <> b27 <> b28 <> b29 <> b30 <> b31 <> b32 <> b33 <> b34 <> b35 <> b36 <> b37 <> b38 <> b39 <> b40 <> b41 <> b42 <> b43 <> b44 <> b45 <> b46 <> b47 <> b48 <> b49 <> b50 <> b51 <> b52 <> b53 <> b54 <> b55 <> b56 <> b57 <> Nil{}:          {==}        case b0 <> b1 <> b2 <> b3 <> b4 <> b5 <> b6 <> b7 <> b8 <> b9 <> b10 <> b11 <> b12 <> b13 <> b14 <> b15 <> b16 <> b17 <> b18 <> b19 <> b20 <> b21 <> b22 <> b23 <> b24 <> b25 <> b26 <> b27 <> b28 <> b29 <> b30 <> b31 <> b32 <> b33 <> b34 <> b35 <> b36 <> b37 <> b38 <> b39 <> b40 <> b41 <> b42 <> b43 <> b44 <> b45 <> b46 <> b47 <> b48 <> b49 <> b50 <> b51 <> b52 <> b53 <> b54 <> b55 <> b56 <> b57 <> b58 <> Nil{}:          {==}        case b0 <> b1 <> b2 <> b3 <> b4 <> b5 <> b6 <> b7 <> b8 <> b9 <> b10 <> b11 <> b12 <> b13 <> b14 <> b15 <> b16 <> b17 <> b18 <> b19 <> b20 <> b21 <> b22 <> b23 <> b24 <> b25 <> b26 <> b27 <> b28 <> b29 <> b30 <> b31 <> b32 <> b33 <> b34 <> b35 <> b36 <> b37 <> b38 <> b39 <> b40 <> b41 <> b42 <> b43 <> b44 <> b45 <> b46 <> b47 <> b48 <> b49 <> b50 <> b51 <> b52 <> b53 <> b54 <> b55 <> b56 <> b57 <> b58 <> b59 <> Nil{}:          {==}        case b0 <> b1 <> b2 <> b3 <> b4 <> b5 <> b6 <> b7 <> b8 <> b9 <> b10 <> b11 <> b12 <> b13 <> b14 <> b15 <> b16 <> b17 <> b18 <> b19 <> b20 <> b21 <> b22 <> b23 <> b24 <> b25 <> b26 <> b27 <> b28 <> b29 <> b30 <> b31 <> b32 <> b33 <> b34 <> b35 <> b36 <> b37 <> b38 <> b39 <> b40 <> b41 <> b42 <> b43 <> b44 <> b45 <> b46 <> b47 <> b48 <> b49 <> b50 <> b51 <> b52 <> b53 <> b54 <> b55 <> b56 <> b57 <> b58 <> b59 <> b60 <> Nil{}:          {==}        case b0 <> b1 <> b2 <> b3 <> b4 <> b5 <> b6 <> b7 <> b8 <> b9 <> b10 <> b11 <> b12 <> b13 <> b14 <> b15 <> b16 <> b17 <> b18 <> b19 <> b20 <> b21 <> b22 <> b23 <> b24 <> b25 <> b26 <> b27 <> b28 <> b29 <> b30 <> b31 <> b32 <> b33 <> b34 <> b35 <> b36 <> b37 <> b38 <> b39 <> b40 <> b41 <> b42 <> b43 <> b44 <> b45 <> b46 <> b47 <> b48 <> b49 <> b50 <> b51 <> b52 <> b53 <> b54 <> b55 <> b56 <> b57 <> b58 <> b59 <> b60 <> b61 <> Nil{}:          {==}        case b0 <> b1 <> b2 <> b3 <> b4 <> b5 <> b6 <> b7 <> b8 <> b9 <> b10 <> b11 <> b12 <> b13 <> b14 <> b15 <> b16 <> b17 <> b18 <> b19 <> b20 <> b21 <> b22 <> b23 <> b24 <> b25 <> b26 <> b27 <> b28 <> b29 <> b30 <> b31 <> b32 <> b33 <> b34 <> b35 <> b36 <> b37 <> b38 <> b39 <> b40 <> b41 <> b42 <> b43 <> b44 <> b45 <> b46 <> b47 <> b48 <> b49 <> b50 <> b51 <> b52 <> b53 <> b54 <> b55 <> b56 <> b57 <> b58 <> b59 <> b60 <> b61 <> b62 <> Nil{}:          {==}        case b0 <> b1 <> b2 <> b3 <> b4 <> b5 <> b6 <> b7 <> b8 <> b9 <> b10 <> b11 <> b12 <> b13 <> b14 <> b15 <> b16 <> b17 <> b18 <> b19 <> b20 <> b21 <> b22 <> b23 <> b24 <> b25 <> b26 <> b27 <> b28 <> b29 <> b30 <> b31 <> b32 <> b33 <> b34 <> b35 <> b36 <> b37 <> b38 <> b39 <> b40 <> b41 <> b42 <> b43 <> b44 <> b45 <> b46 <> b47 <> b48 <> b49 <> b50 <> b51 <> b52 <> b53 <> b54 <> b55 <> b56 <> b57 <> b58 <> b59 <> b60 <> b61 <> b62 <> b63 <> Nil{}:          {==}        case b0 <> b1 <> b2 <> b3 <> b4 <> b5 <> b6 <> b7 <> b8 <> b9 <> b10 <> b11 <> b12 <> b13 <> b14 <> b15 <> b16 <> b17 <> b18 <> b19 <> b20 <> b21 <> b22 <> b23 <> b24 <> b25 <> b26 <> b27 <> b28 <> b29 <> b30 <> b31 <> b32 <> b33 <> b34 <> b35 <> b36 <> b37 <> b38 <> b39 <> b40 <> b41 <> b42 <> b43 <> b44 <> b45 <> b46 <> b47 <> b48 <> b49 <> b50 <> b51 <> b52 <> b53 <> b54 <> b55 <> b56 <> b57 <> b58 <> b59 <> b60 <> b61 <> b62 <> b63 <> b64 <> Nil{}:          {==}        case b0 <> b1 <> b2 <> b3 <> b4 <> b5 <> b6 <> b7 <> b8 <> b9 <> b10 <> b11 <> b12 <> b13 <> b14 <> b15 <> b16 <> b17 <> b18 <> b19 <> b20 <> b21 <> b22 <> b23 <> b24 <> b25 <> b26 <> b27 <> b28 <> b29 <> b30 <> b31 <> b32 <> b33 <> b34 <> b35 <> b36 <> b37 <> b38 <> b39 <> b40 <> b41 <> b42 <> b43 <> b44 <> b45 <> b46 <> b47 <> b48 <> b49 <> b50 <> b51 <> b52 <> b53 <> b54 <> b55 <> b56 <> b57 <> b58 <> b59 <> b60 <> b61 <> b62 <> b63 <> b64 <> b65 <> Nil{}:          {==}        case b0 <> b1 <> b2 <> b3 <> b4 <> b5 <> b6 <> b7 <> b8 <> b9 <> b10 <> b11 <> b12 <> b13 <> b14 <> b15 <> b16 <> b17 <> b18 <> b19 <> b20 <> b21 <> b22 <> b23 <> b24 <> b25 <> b26 <> b27 <> b28 <> b29 <> b30 <> b31 <> b32 <> b33 <> b34 <> b35 <> b36 <> b37 <> b38 <> b39 <> b40 <> b41 <> b42 <> b43 <> b44 <> b45 <> b46 <> b47 <> b48 <> b49 <> b50 <> b51 <> b52 <> b53 <> b54 <> b55 <> b56 <> b57 <> b58 <> b59 <> b60 <> b61 <> b62 <> b63 <> b64 <> b65 <> b66 <> Nil{}:          {==}        case b0 <> b1 <> b2 <> b3 <> b4 <> b5 <> b6 <> b7 <> b8 <> b9 <> b10 <> b11 <> b12 <> b13 <> b14 <> b15 <> b16 <> b17 <> b18 <> b19 <> b20 <> b21 <> b22 <> b23 <> b24 <> b25 <> b26 <> b27 <> b28 <> b29 <> b30 <> b31 <> b32 <> b33 <> b34 <> b35 <> b36 <> b37 <> b38 <> b39 <> b40 <> b41 <> b42 <> b43 <> b44 <> b45 <> b46 <> b47 <> b48 <> b49 <> b50 <> b51 <> b52 <> b53 <> b54 <> b55 <> b56 <> b57 <> b58 <> b59 <> b60 <> b61 <> b62 <> b63 <> b64 <> b65 <> b66 <> b67 <> Nil{}:          {==}        case b0 <> b1 <> b2 <> b3 <> b4 <> b5 <> b6 <> b7 <> b8 <> b9 <> b10 <> b11 <> b12 <> b13 <> b14 <> b15 <> b16 <> b17 <> b18 <> b19 <> b20 <> b21 <> b22 <> b23 <> b24 <> b25 <> b26 <> b27 <> b28 <> b29 <> b30 <> b31 <> b32 <> b33 <> b34 <> b35 <> b36 <> b37 <> b38 <> b39 <> b40 <> b41 <> b42 <> b43 <> b44 <> b45 <> b46 <> b47 <> b48 <> b49 <> b50 <> b51 <> b52 <> b53 <> b54 <> b55 <> b56 <> b57 <> b58 <> b59 <> b60 <> b61 <> b62 <> b63 <> b64 <> b65 <> b66 <> b67 <> b68 <> Nil{}:          {==}        case b0 <> b1 <> b2 <> b3 <> b4 <> b5 <> b6 <> b7 <> b8 <> b9 <> b10 <> b11 <> b12 <> b13 <> b14 <> b15 <> b16 <> b17 <> b18 <> b19 <> b20 <> b21 <> b22 <> b23 <> b24 <> b25 <> b26 <> b27 <> b28 <> b29 <> b30 <> b31 <> b32 <> b33 <> b34 <> b35 <> b36 <> b37 <> b38 <> b39 <> b40 <> b41 <> b42 <> b43 <> b44 <> b45 <> b46 <> b47 <> b48 <> b49 <> b50 <> b51 <> b52 <> b53 <> b54 <> b55 <> b56 <> b57 <> b58 <> b59 <> b60 <> b61 <> b62 <> b63 <> b64 <> b65 <> b66 <> b67 <> b68 <> b69 <> Nil{}:          {==}        case b0 <> b1 <> b2 <> b3 <> b4 <> b5 <> b6 <> b7 <> b8 <> b9 <> b10 <> b11 <> b12 <> b13 <> b14 <> b15 <> b16 <> b17 <> b18 <> b19 <> b20 <> b21 <> b22 <> b23 <> b24 <> b25 <> b26 <> b27 <> b28 <> b29 <> b30 <> b31 <> b32 <> b33 <> b34 <> b35 <> b36 <> b37 <> b38 <> b39 <> b40 <> b41 <> b42 <> b43 <> b44 <> b45 <> b46 <> b47 <> b48 <> b49 <> b50 <> b51 <> b52 <> b53 <> b54 <> b55 <> b56 <> b57 <> b58 <> b59 <> b60 <> b61 <> b62 <> b63 <> b64 <> b65 <> b66 <> b67 <> b68 <> b69 <> b70 <> Nil{}:          {==}        case b0 <> b1 <> b2 <> b3 <> b4 <> b5 <> b6 <> b7 <> b8 <> b9 <> b10 <> b11 <> b12 <> b13 <> b14 <> b15 <> b16 <> b17 <> b18 <> b19 <> b20 <> b21 <> b22 <> b23 <> b24 <> b25 <> b26 <> b27 <> b28 <> b29 <> b30 <> b31 <> b32 <> b33 <> b34 <> b35 <> b36 <> b37 <> b38 <> b39 <> b40 <> b41 <> b42 <> b43 <> b44 <> b45 <> b46 <> b47 <> b48 <> b49 <> b50 <> b51 <> b52 <> b53 <> b54 <> b55 <> b56 <> b57 <> b58 <> b59 <> b60 <> b61 <> b62 <> b63 <> b64 <> b65 <> b66 <> b67 <> b68 <> b69 <> b70 <> b71 <> Nil{}:          {==}        case b0 <> b1 <> b2 <> b3 <> b4 <> b5 <> b6 <> b7 <> b8 <> b9 <> b10 <> b11 <> b12 <> b13 <> b14 <> b15 <> b16 <> b17 <> b18 <> b19 <> b20 <> b21 <> b22 <> b23 <> b24 <> b25 <> b26 <> b27 <> b28 <> b29 <> b30 <> b31 <> b32 <> b33 <> b34 <> b35 <> b36 <> b37 <> b38 <> b39 <> b40 <> b41 <> b42 <> b43 <> b44 <> b45 <> b46 <> b47 <> b48 <> b49 <> b50 <> b51 <> b52 <> b53 <> b54 <> b55 <> b56 <> b57 <> b58 <> b59 <> b60 <> b61 <> b62 <> b63 <> b64 <> b65 <> b66 <> b67 <> b68 <> b69 <> b70 <> b71 <> b72 <> Nil{}:          {==}        case b0 <> b1 <> b2 <> b3 <> b4 <> b5 <> b6 <> b7 <> b8 <> b9 <> b10 <> b11 <> b12 <> b13 <> b14 <> b15 <> b16 <> b17 <> b18 <> b19 <> b20 <> b21 <> b22 <> b23 <> b24 <> b25 <> b26 <> b27 <> b28 <> b29 <> b30 <> b31 <> b32 <> b33 <> b34 <> b35 <> b36 <> b37 <> b38 <> b39 <> b40 <> b41 <> b42 <> b43 <> b44 <> b45 <> b46 <> b47 <> b48 <> b49 <> b50 <> b51 <> b52 <> b53 <> b54 <> b55 <> b56 <> b57 <> b58 <> b59 <> b60 <> b61 <> b62 <> b63 <> b64 <> b65 <> b66 <> b67 <> b68 <> b69 <> b70 <> b71 <> b72 <> b73 <> Nil{}:          {==}        case b0 <> b1 <> b2 <> b3 <> b4 <> b5 <> b6 <> b7 <> b8 <> b9 <> b10 <> b11 <> b12 <> b13 <> b14 <> b15 <> b16 <> b17 <> b18 <> b19 <> b20 <> b21 <> b22 <> b23 <> b24 <> b25 <> b26 <> b27 <> b28 <> b29 <> b30 <> b31 <> b32 <> b33 <> b34 <> b35 <> b36 <> b37 <> b38 <> b39 <> b40 <> b41 <> b42 <> b43 <> b44 <> b45 <> b46 <> b47 <> b48 <> b49 <> b50 <> b51 <> b52 <> b53 <> b54 <> b55 <> b56 <> b57 <> b58 <> b59 <> b60 <> b61 <> b62 <> b63 <> b64 <> b65 <> b66 <> b67 <> b68 <> b69 <> b70 <> b71 <> b72 <> b73 <> b74 <> Nil{}:          {==}        case b0 <> b1 <> b2 <> b3 <> b4 <> b5 <> b6 <> b7 <> b8 <> b9 <> b10 <> b11 <> b12 <> b13 <> b14 <> b15 <> b16 <> b17 <> b18 <> b19 <> b20 <> b21 <> b22 <> b23 <> b24 <> b25 <> b26 <> b27 <> b28 <> b29 <> b30 <> b31 <> b32 <> b33 <> b34 <> b35 <> b36 <> b37 <> b38 <> b39 <> b40 <> b41 <> b42 <> b43 <> b44 <> b45 <> b46 <> b47 <> b48 <> b49 <> b50 <> b51 <> b52 <> b53 <> b54 <> b55 <> b56 <> b57 <> b58 <> b59 <> b60 <> b61 <> b62 <> b63 <> b64 <> b65 <> b66 <> b67 <> b68 <> b69 <> b70 <> b71 <> b72 <> b73 <> b74 <> b75 <> Nil{}:          {==}        case b0 <> b1 <> b2 <> b3 <> b4 <> b5 <> b6 <> b7 <> b8 <> b9 <> b10 <> b11 <> b12 <> b13 <> b14 <> b15 <> b16 <> b17 <> b18 <> b19 <> b20 <> b21 <> b22 <> b23 <> b24 <> b25 <> b26 <> b27 <> b28 <> b29 <> b30 <> b31 <> b32 <> b33 <> b34 <> b35 <> b36 <> b37 <> b38 <> b39 <> b40 <> b41 <> b42 <> b43 <> b44 <> b45 <> b46 <> b47 <> b48 <> b49 <> b50 <> b51 <> b52 <> b53 <> b54 <> b55 <> b56 <> b57 <> b58 <> b59 <> b60 <> b61 <> b62 <> b63 <> b64 <> b65 <> b66 <> b67 <> b68 <> b69 <> b70 <> b71 <> b72 <> b73 <> b74 <> b75 <> b76 <> Nil{}:          {==}        case b0 <> b1 <> b2 <> b3 <> b4 <> b5 <> b6 <> b7 <> b8 <> b9 <> b10 <> b11 <> b12 <> b13 <> b14 <> b15 <> b16 <> b17 <> b18 <> b19 <> b20 <> b21 <> b22 <> b23 <> b24 <> b25 <> b26 <> b27 <> b28 <> b29 <> b30 <> b31 <> b32 <> b33 <> b34 <> b35 <> b36 <> b37 <> b38 <> b39 <> b40 <> b41 <> b42 <> b43 <> b44 <> b45 <> b46 <> b47 <> b48 <> b49 <> b50 <> b51 <> b52 <> b53 <> b54 <> b55 <> b56 <> b57 <> b58 <> b59 <> b60 <> b61 <> b62 <> b63 <> b64 <> b65 <> b66 <> b67 <> b68 <> b69 <> b70 <> b71 <> b72 <> b73 <> b74 <> b75 <> b76 <> b77 <> Nil{}:          {==}        case b0 <> b1 <> b2 <> b3 <> b4 <> b5 <> b6 <> b7 <> b8 <> b9 <> b10 <> b11 <> b12 <> b13 <> b14 <> b15 <> b16 <> b17 <> b18 <> b19 <> b20 <> b21 <> b22 <> b23 <> b24 <> b25 <> b26 <> b27 <> b28 <> b29 <> b30 <> b31 <> b32 <> b33 <> b34 <> b35 <> b36 <> b37 <> b38 <> b39 <> b40 <> b41 <> b42 <> b43 <> b44 <> b45 <> b46 <> b47 <> b48 <> b49 <> b50 <> b51 <> b52 <> b53 <> b54 <> b55 <> b56 <> b57 <> b58 <> b59 <> b60 <> b61 <> b62 <> b63 <> b64 <> b65 <> b66 <> b67 <> b68 <> b69 <> b70 <> b71 <> b72 <> b73 <> b74 <> b75 <> b76 <> b77 <> b78 <> Nil{}:          {==}        case b0 <> b1 <> b2 <> b3 <> b4 <> b5 <> b6 <> b7 <> b8 <> b9 <> b10 <> b11 <> b12 <> b13 <> b14 <> b15 <> b16 <> b17 <> b18 <> b19 <> b20 <> b21 <> b22 <> b23 <> b24 <> b25 <> b26 <> b27 <> b28 <> b29 <> b30 <> b31 <> b32 <> b33 <> b34 <> b35 <> b36 <> b37 <> b38 <> b39 <> b40 <> b41 <> b42 <> b43 <> b44 <> b45 <> b46 <> b47 <> b48 <> b49 <> b50 <> b51 <> b52 <> b53 <> b54 <> b55 <> b56 <> b57 <> b58 <> b59 <> b60 <> b61 <> b62 <> b63 <> b64 <> b65 <> b66 <> b67 <> b68 <> b69 <> b70 <> b71 <> b72 <> b73 <> b74 <> b75 <> b76 <> b77 <> b78 <> b79 <> Nil{}:          {==}        case b0 <> b1 <> b2 <> b3 <> b4 <> b5 <> b6 <> b7 <> b8 <> b9 <> b10 <> b11 <> b12 <> b13 <> b14 <> b15 <> b16 <> b17 <> b18 <> b19 <> b20 <> b21 <> b22 <> b23 <> b24 <> b25 <> b26 <> b27 <> b28 <> b29 <> b30 <> b31 <> b32 <> b33 <> b34 <> b35 <> b36 <> b37 <> b38 <> b39 <> b40 <> b41 <> b42 <> b43 <> b44 <> b45 <> b46 <> b47 <> b48 <> b49 <> b50 <> b51 <> b52 <> b53 <> b54 <> b55 <> b56 <> b57 <> b58 <> b59 <> b60 <> b61 <> b62 <> b63 <> b64 <> b65 <> b66 <> b67 <> b68 <> b69 <> b70 <> b71 <> b72 <> b73 <> b74 <> b75 <> b76 <> b77 <> b78 <> b79 <> b80 <> Nil{}:          {==}        case b0 <> b1 <> b2 <> b3 <> b4 <> b5 <> b6 <> b7 <> b8 <> b9 <> b10 <> b11 <> b12 <> b13 <> b14 <> b15 <> b16 <> b17 <> b18 <> b19 <> b20 <> b21 <> b22 <> b23 <> b24 <> b25 <> b26 <> b27 <> b28 <> b29 <> b30 <> b31 <> b32 <> b33 <> b34 <> b35 <> b36 <> b37 <> b38 <> b39 <> b40 <> b41 <> b42 <> b43 <> b44 <> b45 <> b46 <> b47 <> b48 <> b49 <> b50 <> b51 <> b52 <> b53 <> b54 <> b55 <> b56 <> b57 <> b58 <> b59 <> b60 <> b61 <> b62 <> b63 <> b64 <> b65 <> b66 <> b67 <> b68 <> b69 <> b70 <> b71 <> b72 <> b73 <> b74 <> b75 <> b76 <> b77 <> b78 <> b79 <> b80 <> b81 <> Nil{}:          {==}        case b0 <> b1 <> b2 <> b3 <> b4 <> b5 <> b6 <> b7 <> b8 <> b9 <> b10 <> b11 <> b12 <> b13 <> b14 <> b15 <> b16 <> b17 <> b18 <> b19 <> b20 <> b21 <> b22 <> b23 <> b24 <> b25 <> b26 <> b27 <> b28 <> b29 <> b30 <> b31 <> b32 <> b33 <> b34 <> b35 <> b36 <> b37 <> b38 <> b39 <> b40 <> b41 <> b42 <> b43 <> b44 <> b45 <> b46 <> b47 <> b48 <> b49 <> b50 <> b51 <> b52 <> b53 <> b54 <> b55 <> b56 <> b57 <> b58 <> b59 <> b60 <> b61 <> b62 <> b63 <> b64 <> b65 <> b66 <> b67 <> b68 <> b69 <> b70 <> b71 <> b72 <> b73 <> b74 <> b75 <> b76 <> b77 <> b78 <> b79 <> b80 <> b81 <> b82 <> Nil{}:          {==}        case b0 <> b1 <> b2 <> b3 <> b4 <> b5 <> b6 <> b7 <> b8 <> b9 <> b10 <> b11 <> b12 <> b13 <> b14 <> b15 <> b16 <> b17 <> b18 <> b19 <> b20 <> b21 <> b22 <> b23 <> b24 <> b25 <> b26 <> b27 <> b28 <> b29 <> b30 <> b31 <> b32 <> b33 <> b34 <> b35 <> b36 <> b37 <> b38 <> b39 <> b40 <> b41 <> b42 <> b43 <> b44 <> b45 <> b46 <> b47 <> b48 <> b49 <> b50 <> b51 <> b52 <> b53 <> b54 <> b55 <> b56 <> b57 <> b58 <> b59 <> b60 <> b61 <> b62 <> b63 <> b64 <> b65 <> b66 <> b67 <> b68 <> b69 <> b70 <> b71 <> b72 <> b73 <> b74 <> b75 <> b76 <> b77 <> b78 <> b79 <> b80 <> b81 <> b82 <> b83 <> Nil{}:          {==}        case b0 <> b1 <> b2 <> b3 <> b4 <> b5 <> b6 <> b7 <> b8 <> b9 <> b10 <> b11 <> b12 <> b13 <> b14 <> b15 <> b16 <> b17 <> b18 <> b19 <> b20 <> b21 <> b22 <> b23 <> b24 <> b25 <> b26 <> b27 <> b28 <> b29 <> b30 <> b31 <> b32 <> b33 <> b34 <> b35 <> b36 <> b37 <> b38 <> b39 <> b40 <> b41 <> b42 <> b43 <> b44 <> b45 <> b46 <> b47 <> b48 <> b49 <> b50 <> b51 <> b52 <> b53 <> b54 <> b55 <> b56 <> b57 <> b58 <> b59 <> b60 <> b61 <> b62 <> b63 <> b64 <> b65 <> b66 <> b67 <> b68 <> b69 <> b70 <> b71 <> b72 <> b73 <> b74 <> b75 <> b76 <> b77 <> b78 <> b79 <> b80 <> b81 <> b82 <> b83 <> b84 <> Nil{}:          {==}        case b0 <> b1 <> b2 <> b3 <> b4 <> b5 <> b6 <> b7 <> b8 <> b9 <> b10 <> b11 <> b12 <> b13 <> b14 <> b15 <> b16 <> b17 <> b18 <> b19 <> b20 <> b21 <> b22 <> b23 <> b24 <> b25 <> b26 <> b27 <> b28 <> b29 <> b30 <> b31 <> b32 <> b33 <> b34 <> b35 <> b36 <> b37 <> b38 <> b39 <> b40 <> b41 <> b42 <> b43 <> b44 <> b45 <> b46 <> b47 <> b48 <> b49 <> b50 <> b51 <> b52 <> b53 <> b54 <> b55 <> b56 <> b57 <> b58 <> b59 <> b60 <> b61 <> b62 <> b63 <> b64 <> b65 <> b66 <> b67 <> b68 <> b69 <> b70 <> b71 <> b72 <> b73 <> b74 <> b75 <> b76 <> b77 <> b78 <> b79 <> b80 <> b81 <> b82 <> b83 <> b84 <> b85 <> Nil{}:          {==}        case b0 <> b1 <> b2 <> b3 <> b4 <> b5 <> b6 <> b7 <> b8 <> b9 <> b10 <> b11 <> b12 <> b13 <> b14 <> b15 <> b16 <> b17 <> b18 <> b19 <> b20 <> b21 <> b22 <> b23 <> b24 <> b25 <> b26 <> b27 <> b28 <> b29 <> b30 <> b31 <> b32 <> b33 <> b34 <> b35 <> b36 <> b37 <> b38 <> b39 <> b40 <> b41 <> b42 <> b43 <> b44 <> b45 <> b46 <> b47 <> b48 <> b49 <> b50 <> b51 <> b52 <> b53 <> b54 <> b55 <> b56 <> b57 <> b58 <> b59 <> b60 <> b61 <> b62 <> b63 <> b64 <> b65 <> b66 <> b67 <> b68 <> b69 <> b70 <> b71 <> b72 <> b73 <> b74 <> b75 <> b76 <> b77 <> b78 <> b79 <> b80 <> b81 <> b82 <> b83 <> b84 <> b85 <> b86 <> Nil{}:          {==}        case b0 <> b1 <> b2 <> b3 <> b4 <> b5 <> b6 <> b7 <> b8 <> b9 <> b10 <> b11 <> b12 <> b13 <> b14 <> b15 <> b16 <> b17 <> b18 <> b19 <> b20 <> b21 <> b22 <> b23 <> b24 <> b25 <> b26 <> b27 <> b28 <> b29 <> b30 <> b31 <> b32 <> b33 <> b34 <> b35 <> b36 <> b37 <> b38 <> b39 <> b40 <> b41 <> b42 <> b43 <> b44 <> b45 <> b46 <> b47 <> b48 <> b49 <> b50 <> b51 <> b52 <> b53 <> b54 <> b55 <> b56 <> b57 <> b58 <> b59 <> b60 <> b61 <> b62 <> b63 <> b64 <> b65 <> b66 <> b67 <> b68 <> b69 <> b70 <> b71 <> b72 <> b73 <> b74 <> b75 <> b76 <> b77 <> b78 <> b79 <> b80 <> b81 <> b82 <> b83 <> b84 <> b85 <> b86 <> b87 <> Nil{}:          {==}        case b0 <> b1 <> b2 <> b3 <> b4 <> b5 <> b6 <> b7 <> b8 <> b9 <> b10 <> b11 <> b12 <> b13 <> b14 <> b15 <> b16 <> b17 <> b18 <> b19 <> b20 <> b21 <> b22 <> b23 <> b24 <> b25 <> b26 <> b27 <> b28 <> b29 <> b30 <> b31 <> b32 <> b33 <> b34 <> b35 <> b36 <> b37 <> b38 <> b39 <> b40 <> b41 <> b42 <> b43 <> b44 <> b45 <> b46 <> b47 <> b48 <> b49 <> b50 <> b51 <> b52 <> b53 <> b54 <> b55 <> b56 <> b57 <> b58 <> b59 <> b60 <> b61 <> b62 <> b63 <> b64 <> b65 <> b66 <> b67 <> b68 <> b69 <> b70 <> b71 <> b72 <> b73 <> b74 <> b75 <> b76 <> b77 <> b78 <> b79 <> b80 <> b81 <> b82 <> b83 <> b84 <> b85 <> b86 <> b87 <> b88 <> Nil{}:          {==}        case b0 <> b1 <> b2 <> b3 <> b4 <> b5 <> b6 <> b7 <> b8 <> b9 <> b10 <> b11 <> b12 <> b13 <> b14 <> b15 <> b16 <> b17 <> b18 <> b19 <> b20 <> b21 <> b22 <> b23 <> b24 <> b25 <> b26 <> b27 <> b28 <> b29 <> b30 <> b31 <> b32 <> b33 <> b34 <> b35 <> b36 <> b37 <> b38 <> b39 <> b40 <> b41 <> b42 <> b43 <> b44 <> b45 <> b46 <> b47 <> b48 <> b49 <> b50 <> b51 <> b52 <> b53 <> b54 <> b55 <> b56 <> b57 <> b58 <> b59 <> b60 <> b61 <> b62 <> b63 <> b64 <> b65 <> b66 <> b67 <> b68 <> b69 <> b70 <> b71 <> b72 <> b73 <> b74 <> b75 <> b76 <> b77 <> b78 <> b79 <> b80 <> b81 <> b82 <> b83 <> b84 <> b85 <> b86 <> b87 <> b88 <> b89 <> Nil{}:          {==}        case b0 <> b1 <> b2 <> b3 <> b4 <> b5 <> b6 <> b7 <> b8 <> b9 <> b10 <> b11 <> b12 <> b13 <> b14 <> b15 <> b16 <> b17 <> b18 <> b19 <> b20 <> b21 <> b22 <> b23 <> b24 <> b25 <> b26 <> b27 <> b28 <> b29 <> b30 <> b31 <> b32 <> b33 <> b34 <> b35 <> b36 <> b37 <> b38 <> b39 <> b40 <> b41 <> b42 <> b43 <> b44 <> b45 <> b46 <> b47 <> b48 <> b49 <> b50 <> b51 <> b52 <> b53 <> b54 <> b55 <> b56 <> b57 <> b58 <> b59 <> b60 <> b61 <> b62 <> b63 <> b64 <> b65 <> b66 <> b67 <> b68 <> b69 <> b70 <> b71 <> b72 <> b73 <> b74 <> b75 <> b76 <> b77 <> b78 <> b79 <> b80 <> b81 <> b82 <> b83 <> b84 <> b85 <> b86 <> b87 <> b88 <> b89 <> b90 <> Nil{}:          {==}        case b0 <> b1 <> b2 <> b3 <> b4 <> b5 <> b6 <> b7 <> b8 <> b9 <> b10 <> b11 <> b12 <> b13 <> b14 <> b15 <> b16 <> b17 <> b18 <> b19 <> b20 <> b21 <> b22 <> b23 <> b24 <> b25 <> b26 <> b27 <> b28 <> b29 <> b30 <> b31 <> b32 <> b33 <> b34 <> b35 <> b36 <> b37 <> b38 <> b39 <> b40 <> b41 <> b42 <> b43 <> b44 <> b45 <> b46 <> b47 <> b48 <> b49 <> b50 <> b51 <> b52 <> b53 <> b54 <> b55 <> b56 <> b57 <> b58 <> b59 <> b60 <> b61 <> b62 <> b63 <> b64 <> b65 <> b66 <> b67 <> b68 <> b69 <> b70 <> b71 <> b72 <> b73 <> b74 <> b75 <> b76 <> b77 <> b78 <> b79 <> b80 <> b81 <> b82 <> b83 <> b84 <> b85 <> b86 <> b87 <> b88 <> b89 <> b90 <> b91 <> Nil{}:          {==}        case b0 <> b1 <> b2 <> b3 <> b4 <> b5 <> b6 <> b7 <> b8 <> b9 <> b10 <> b11 <> b12 <> b13 <> b14 <> b15 <> b16 <> b17 <> b18 <> b19 <> b20 <> b21 <> b22 <> b23 <> b24 <> b25 <> b26 <> b27 <> b28 <> b29 <> b30 <> b31 <> b32 <> b33 <> b34 <> b35 <> b36 <> b37 <> b38 <> b39 <> b40 <> b41 <> b42 <> b43 <> b44 <> b45 <> b46 <> b47 <> b48 <> b49 <> b50 <> b51 <> b52 <> b53 <> b54 <> b55 <> b56 <> b57 <> b58 <> b59 <> b60 <> b61 <> b62 <> b63 <> b64 <> b65 <> b66 <> b67 <> b68 <> b69 <> b70 <> b71 <> b72 <> b73 <> b74 <> b75 <> b76 <> b77 <> b78 <> b79 <> b80 <> b81 <> b82 <> b83 <> b84 <> b85 <> b86 <> b87 <> b88 <> b89 <> b90 <> b91 <> b92 <> Nil{}:          {==}        case b0 <> b1 <> b2 <> b3 <> b4 <> b5 <> b6 <> b7 <> b8 <> b9 <> b10 <> b11 <> b12 <> b13 <> b14 <> b15 <> b16 <> b17 <> b18 <> b19 <> b20 <> b21 <> b22 <> b23 <> b24 <> b25 <> b26 <> b27 <> b28 <> b29 <> b30 <> b31 <> b32 <> b33 <> b34 <> b35 <> b36 <> b37 <> b38 <> b39 <> b40 <> b41 <> b42 <> b43 <> b44 <> b45 <> b46 <> b47 <> b48 <> b49 <> b50 <> b51 <> b52 <> b53 <> b54 <> b55 <> b56 <> b57 <> b58 <> b59 <> b60 <> b61 <> b62 <> b63 <> b64 <> b65 <> b66 <> b67 <> b68 <> b69 <> b70 <> b71 <> b72 <> b73 <> b74 <> b75 <> b76 <> b77 <> b78 <> b79 <> b80 <> b81 <> b82 <> b83 <> b84 <> b85 <> b86 <> b87 <> b88 <> b89 <> b90 <> b91 <> b92 <> b93 <> Nil{}:          {==}        case b0 <> b1 <> b2 <> b3 <> b4 <> b5 <> b6 <> b7 <> b8 <> b9 <> b10 <> b11 <> b12 <> b13 <> b14 <> b15 <> b16 <> b17 <> b18 <> b19 <> b20 <> b21 <> b22 <> b23 <> b24 <> b25 <> b26 <> b27 <> b28 <> b29 <> b30 <> b31 <> b32 <> b33 <> b34 <> b35 <> b36 <> b37 <> b38 <> b39 <> b40 <> b41 <> b42 <> b43 <> b44 <> b45 <> b46 <> b47 <> b48 <> b49 <> b50 <> b51 <> b52 <> b53 <> b54 <> b55 <> b56 <> b57 <> b58 <> b59 <> b60 <> b61 <> b62 <> b63 <> b64 <> b65 <> b66 <> b67 <> b68 <> b69 <> b70 <> b71 <> b72 <> b73 <> b74 <> b75 <> b76 <> b77 <> b78 <> b79 <> b80 <> b81 <> b82 <> b83 <> b84 <> b85 <> b86 <> b87 <> b88 <> b89 <> b90 <> b91 <> b92 <> b93 <> b94 <> Nil{}:          {==}        case b0 <> b1 <> b2 <> b3 <> b4 <> b5 <> b6 <> b7 <> b8 <> b9 <> b10 <> b11 <> b12 <> b13 <> b14 <> b15 <> b16 <> b17 <> b18 <> b19 <> b20 <> b21 <> b22 <> b23 <> b24 <> b25 <> b26 <> b27 <> b28 <> b29 <> b30 <> b31 <> b32 <> b33 <> b34 <> b35 <> b36 <> b37 <> b38 <> b39 <> b40 <> b41 <> b42 <> b43 <> b44 <> b45 <> b46 <> b47 <> b48 <> b49 <> b50 <> b51 <> b52 <> b53 <> b54 <> b55 <> b56 <> b57 <> b58 <> b59 <> b60 <> b61 <> b62 <> b63 <> b64 <> b65 <> b66 <> b67 <> b68 <> b69 <> b70 <> b71 <> b72 <> b73 <> b74 <> b75 <> b76 <> b77 <> b78 <> b79 <> b80 <> b81 <> b82 <> b83 <> b84 <> b85 <> b86 <> b87 <> b88 <> b89 <> b90 <> b91 <> b92 <> b93 <> b94 <> b95 <> Nil{}:          {==}        case b0 <> b1 <> b2 <> b3 <> b4 <> b5 <> b6 <> b7 <> b8 <> b9 <> b10 <> b11 <> b12 <> b13 <> b14 <> b15 <> b16 <> b17 <> b18 <> b19 <> b20 <> b21 <> b22 <> b23 <> b24 <> b25 <> b26 <> b27 <> b28 <> b29 <> b30 <> b31 <> b32 <> b33 <> b34 <> b35 <> b36 <> b37 <> b38 <> b39 <> b40 <> b41 <> b42 <> b43 <> b44 <> b45 <> b46 <> b47 <> b48 <> b49 <> b50 <> b51 <> b52 <> b53 <> b54 <> b55 <> b56 <> b57 <> b58 <> b59 <> b60 <> b61 <> b62 <> b63 <> b64 <> b65 <> b66 <> b67 <> b68 <> b69 <> b70 <> b71 <> b72 <> b73 <> b74 <> b75 <> b76 <> b77 <> b78 <> b79 <> b80 <> b81 <> b82 <> b83 <> b84 <> b85 <> b86 <> b87 <> b88 <> b89 <> b90 <> b91 <> b92 <> b93 <> b94 <> b95 <> b96 <> Nil{}:          {==}        case b0 <> b1 <> b2 <> b3 <> b4 <> b5 <> b6 <> b7 <> b8 <> b9 <> b10 <> b11 <> b12 <> b13 <> b14 <> b15 <> b16 <> b17 <> b18 <> b19 <> b20 <> b21 <> b22 <> b23 <> b24 <> b25 <> b26 <> b27 <> b28 <> b29 <> b30 <> b31 <> b32 <> b33 <> b34 <> b35 <> b36 <> b37 <> b38 <> b39 <> b40 <> b41 <> b42 <> b43 <> b44 <> b45 <> b46 <> b47 <> b48 <> b49 <> b50 <> b51 <> b52 <> b53 <> b54 <> b55 <> b56 <> b57 <> b58 <> b59 <> b60 <> b61 <> b62 <> b63 <> b64 <> b65 <> b66 <> b67 <> b68 <> b69 <> b70 <> b71 <> b72 <> b73 <> b74 <> b75 <> b76 <> b77 <> b78 <> b79 <> b80 <> b81 <> b82 <> b83 <> b84 <> b85 <> b86 <> b87 <> b88 <> b89 <> b90 <> b91 <> b92 <> b93 <> b94 <> b95 <> b96 <> b97 <> Nil{}:          {==}        case b0 <> b1 <> b2 <> b3 <> b4 <> b5 <> b6 <> b7 <> b8 <> b9 <> b10 <> b11 <> b12 <> b13 <> b14 <> b15 <> b16 <> b17 <> b18 <> b19 <> b20 <> b21 <> b22 <> b23 <> b24 <> b25 <> b26 <> b27 <> b28 <> b29 <> b30 <> b31 <> b32 <> b33 <> b34 <> b35 <> b36 <> b37 <> b38 <> b39 <> b40 <> b41 <> b42 <> b43 <> b44 <> b45 <> b46 <> b47 <> b48 <> b49 <> b50 <> b51 <> b52 <> b53 <> b54 <> b55 <> b56 <> b57 <> b58 <> b59 <> b60 <> b61 <> b62 <> b63 <> b64 <> b65 <> b66 <> b67 <> b68 <> b69 <> b70 <> b71 <> b72 <> b73 <> b74 <> b75 <> b76 <> b77 <> b78 <> b79 <> b80 <> b81 <> b82 <> b83 <> b84 <> b85 <> b86 <> b87 <> b88 <> b89 <> b90 <> b91 <> b92 <> b93 <> b94 <> b95 <> b96 <> b97 <> b98 <> Nil{}:          {==}        case b0 <> b1 <> b2 <> b3 <> b4 <> b5 <> b6 <> b7 <> b8 <> b9 <> b10 <> b11 <> b12 <> b13 <> b14 <> b15 <> b16 <> b17 <> b18 <> b19 <> b20 <> b21 <> b22 <> b23 <> b24 <> b25 <> b26 <> b27 <> b28 <> b29 <> b30 <> b31 <> b32 <> b33 <> b34 <> b35 <> b36 <> b37 <> b38 <> b39 <> b40 <> b41 <> b42 <> b43 <> b44 <> b45 <> b46 <> b47 <> b48 <> b49 <> b50 <> b51 <> b52 <> b53 <> b54 <> b55 <> b56 <> b57 <> b58 <> b59 <> b60 <> b61 <> b62 <> b63 <> b64 <> b65 <> b66 <> b67 <> b68 <> b69 <> b70 <> b71 <> b72 <> b73 <> b74 <> b75 <> b76 <> b77 <> b78 <> b79 <> b80 <> b81 <> b82 <> b83 <> b84 <> b85 <> b86 <> b87 <> b88 <> b89 <> b90 <> b91 <> b92 <> b93 <> b94 <> b95 <> b96 <> b97 <> b98 <> b99 <> Nil{}:          {==}        case b0 <> b1 <> b2 <> b3 <> b4 <> b5 <> b6 <> b7 <> b8 <> b9 <> b10 <> b11 <> b12 <> b13 <> b14 <> b15 <> b16 <> b17 <> b18 <> b19 <> b20 <> b21 <> b22 <> b23 <> b24 <> b25 <> b26 <> b27 <> b28 <> b29 <> b30 <> b31 <> b32 <> b33 <> b34 <> b35 <> b36 <> b37 <> b38 <> b39 <> b40 <> b41 <> b42 <> b43 <> b44 <> b45 <> b46 <> b47 <> b48 <> b49 <> b50 <> b51 <> b52 <> b53 <> b54 <> b55 <> b56 <> b57 <> b58 <> b59 <> b60 <> b61 <> b62 <> b63 <> b64 <> b65 <> b66 <> b67 <> b68 <> b69 <> b70 <> b71 <> b72 <> b73 <> b74 <> b75 <> b76 <> b77 <> b78 <> b79 <> b80 <> b81 <> b82 <> b83 <> b84 <> b85 <> b86 <> b87 <> b88 <> b89 <> b90 <> b91 <> b92 <> b93 <> b94 <> b95 <> b96 <> b97 <> b98 <> b99 <> b100 <> Nil{}:          {==}        case b0 <> b1 <> b2 <> b3 <> b4 <> b5 <> b6 <> b7 <> b8 <> b9 <> b10 <> b11 <> b12 <> b13 <> b14 <> b15 <> b16 <> b17 <> b18 <> b19 <> b20 <> b21 <> b22 <> b23 <> b24 <> b25 <> b26 <> b27 <> b28 <> b29 <> b30 <> b31 <> b32 <> b33 <> b34 <> b35 <> b36 <> b37 <> b38 <> b39 <> b40 <> b41 <> b42 <> b43 <> b44 <> b45 <> b46 <> b47 <> b48 <> b49 <> b50 <> b51 <> b52 <> b53 <> b54 <> b55 <> b56 <> b57 <> b58 <> b59 <> b60 <> b61 <> b62 <> b63 <> b64 <> b65 <> b66 <> b67 <> b68 <> b69 <> b70 <> b71 <> b72 <> b73 <> b74 <> b75 <> b76 <> b77 <> b78 <> b79 <> b80 <> b81 <> b82 <> b83 <> b84 <> b85 <> b86 <> b87 <> b88 <> b89 <> b90 <> b91 <> b92 <> b93 <> b94 <> b95 <> b96 <> b97 <> b98 <> b99 <> b100 <> b101 <> Nil{}:          {==}        case b0 <> b1 <> b2 <> b3 <> b4 <> b5 <> b6 <> b7 <> b8 <> b9 <> b10 <> b11 <> b12 <> b13 <> b14 <> b15 <> b16 <> b17 <> b18 <> b19 <> b20 <> b21 <> b22 <> b23 <> b24 <> b25 <> b26 <> b27 <> b28 <> b29 <> b30 <> b31 <> b32 <> b33 <> b34 <> b35 <> b36 <> b37 <> b38 <> b39 <> b40 <> b41 <> b42 <> b43 <> b44 <> b45 <> b46 <> b47 <> b48 <> b49 <> b50 <> b51 <> b52 <> b53 <> b54 <> b55 <> b56 <> b57 <> b58 <> b59 <> b60 <> b61 <> b62 <> b63 <> b64 <> b65 <> b66 <> b67 <> b68 <> b69 <> b70 <> b71 <> b72 <> b73 <> b74 <> b75 <> b76 <> b77 <> b78 <> b79 <> b80 <> b81 <> b82 <> b83 <> b84 <> b85 <> b86 <> b87 <> b88 <> b89 <> b90 <> b91 <> b92 <> b93 <> b94 <> b95 <> b96 <> b97 <> b98 <> b99 <> b100 <> b101 <> b102 <> Nil{}:          {==}        case b0 <> b1 <> b2 <> b3 <> b4 <> b5 <> b6 <> b7 <> b8 <> b9 <> b10 <> b11 <> b12 <> b13 <> b14 <> b15 <> b16 <> b17 <> b18 <> b19 <> b20 <> b21 <> b22 <> b23 <> b24 <> b25 <> b26 <> b27 <> b28 <> b29 <> b30 <> b31 <> b32 <> b33 <> b34 <> b35 <> b36 <> b37 <> b38 <> b39 <> b40 <> b41 <> b42 <> b43 <> b44 <> b45 <> b46 <> b47 <> b48 <> b49 <> b50 <> b51 <> b52 <> b53 <> b54 <> b55 <> b56 <> b57 <> b58 <> b59 <> b60 <> b61 <> b62 <> b63 <> b64 <> b65 <> b66 <> b67 <> b68 <> b69 <> b70 <> b71 <> b72 <> b73 <> b74 <> b75 <> b76 <> b77 <> b78 <> b79 <> b80 <> b81 <> b82 <> b83 <> b84 <> b85 <> b86 <> b87 <> b88 <> b89 <> b90 <> b91 <> b92 <> b93 <> b94 <> b95 <> b96 <> b97 <> b98 <> b99 <> b100 <> b101 <> b102 <> b103 <> Nil{}:          {==}        case b0 <> b1 <> b2 <> b3 <> b4 <> b5 <> b6 <> b7 <> b8 <> b9 <> b10 <> b11 <> b12 <> b13 <> b14 <> b15 <> b16 <> b17 <> b18 <> b19 <> b20 <> b21 <> b22 <> b23 <> b24 <> b25 <> b26 <> b27 <> b28 <> b29 <> b30 <> b31 <> b32 <> b33 <> b34 <> b35 <> b36 <> b37 <> b38 <> b39 <> b40 <> b41 <> b42 <> b43 <> b44 <> b45 <> b46 <> b47 <> b48 <> b49 <> b50 <> b51 <> b52 <> b53 <> b54 <> b55 <> b56 <> b57 <> b58 <> b59 <> b60 <> b61 <> b62 <> b63 <> b64 <> b65 <> b66 <> b67 <> b68 <> b69 <> b70 <> b71 <> b72 <> b73 <> b74 <> b75 <> b76 <> b77 <> b78 <> b79 <> b80 <> b81 <> b82 <> b83 <> b84 <> b85 <> b86 <> b87 <> b88 <> b89 <> b90 <> b91 <> b92 <> b93 <> b94 <> b95 <> b96 <> b97 <> b98 <> b99 <> b100 <> b101 <> b102 <> b103 <> b104 <> Nil{}:          {==}        case b0 <> b1 <> b2 <> b3 <> b4 <> b5 <> b6 <> b7 <> b8 <> b9 <> b10 <> b11 <> b12 <> b13 <> b14 <> b15 <> b16 <> b17 <> b18 <> b19 <> b20 <> b21 <> b22 <> b23 <> b24 <> b25 <> b26 <> b27 <> b28 <> b29 <> b30 <> b31 <> b32 <> b33 <> b34 <> b35 <> b36 <> b37 <> b38 <> b39 <> b40 <> b41 <> b42 <> b43 <> b44 <> b45 <> b46 <> b47 <> b48 <> b49 <> b50 <> b51 <> b52 <> b53 <> b54 <> b55 <> b56 <> b57 <> b58 <> b59 <> b60 <> b61 <> b62 <> b63 <> b64 <> b65 <> b66 <> b67 <> b68 <> b69 <> b70 <> b71 <> b72 <> b73 <> b74 <> b75 <> b76 <> b77 <> b78 <> b79 <> b80 <> b81 <> b82 <> b83 <> b84 <> b85 <> b86 <> b87 <> b88 <> b89 <> b90 <> b91 <> b92 <> b93 <> b94 <> b95 <> b96 <> b97 <> b98 <> b99 <> b100 <> b101 <> b102 <> b103 <> b104 <> b105 <> Nil{}:          {==}        case b0 <> b1 <> b2 <> b3 <> b4 <> b5 <> b6 <> b7 <> b8 <> b9 <> b10 <> b11 <> b12 <> b13 <> b14 <> b15 <> b16 <> b17 <> b18 <> b19 <> b20 <> b21 <> b22 <> b23 <> b24 <> b25 <> b26 <> b27 <> b28 <> b29 <> b30 <> b31 <> b32 <> b33 <> b34 <> b35 <> b36 <> b37 <> b38 <> b39 <> b40 <> b41 <> b42 <> b43 <> b44 <> b45 <> b46 <> b47 <> b48 <> b49 <> b50 <> b51 <> b52 <> b53 <> b54 <> b55 <> b56 <> b57 <> b58 <> b59 <> b60 <> b61 <> b62 <> b63 <> b64 <> b65 <> b66 <> b67 <> b68 <> b69 <> b70 <> b71 <> b72 <> b73 <> b74 <> b75 <> b76 <> b77 <> b78 <> b79 <> b80 <> b81 <> b82 <> b83 <> b84 <> b85 <> b86 <> b87 <> b88 <> b89 <> b90 <> b91 <> b92 <> b93 <> b94 <> b95 <> b96 <> b97 <> b98 <> b99 <> b100 <> b101 <> b102 <> b103 <> b104 <> b105 <> b106 <> Nil{}:          {==}        case b0 <> b1 <> b2 <> b3 <> b4 <> b5 <> b6 <> b7 <> b8 <> b9 <> b10 <> b11 <> b12 <> b13 <> b14 <> b15 <> b16 <> b17 <> b18 <> b19 <> b20 <> b21 <> b22 <> b23 <> b24 <> b25 <> b26 <> b27 <> b28 <> b29 <> b30 <> b31 <> b32 <> b33 <> b34 <> b35 <> b36 <> b37 <> b38 <> b39 <> b40 <> b41 <> b42 <> b43 <> b44 <> b45 <> b46 <> b47 <> b48 <> b49 <> b50 <> b51 <> b52 <> b53 <> b54 <> b55 <> b56 <> b57 <> b58 <> b59 <> b60 <> b61 <> b62 <> b63 <> b64 <> b65 <> b66 <> b67 <> b68 <> b69 <> b70 <> b71 <> b72 <> b73 <> b74 <> b75 <> b76 <> b77 <> b78 <> b79 <> b80 <> b81 <> b82 <> b83 <> b84 <> b85 <> b86 <> b87 <> b88 <> b89 <> b90 <> b91 <> b92 <> b93 <> b94 <> b95 <> b96 <> b97 <> b98 <> b99 <> b100 <> b101 <> b102 <> b103 <> b104 <> b105 <> b106 <> b107 <> Nil{}:          {==}        case b0 <> b1 <> b2 <> b3 <> b4 <> b5 <> b6 <> b7 <> b8 <> b9 <> b10 <> b11 <> b12 <> b13 <> b14 <> b15 <> b16 <> b17 <> b18 <> b19 <> b20 <> b21 <> b22 <> b23 <> b24 <> b25 <> b26 <> b27 <> b28 <> b29 <> b30 <> b31 <> b32 <> b33 <> b34 <> b35 <> b36 <> b37 <> b38 <> b39 <> b40 <> b41 <> b42 <> b43 <> b44 <> b45 <> b46 <> b47 <> b48 <> b49 <> b50 <> b51 <> b52 <> b53 <> b54 <> b55 <> b56 <> b57 <> b58 <> b59 <> b60 <> b61 <> b62 <> b63 <> b64 <> b65 <> b66 <> b67 <> b68 <> b69 <> b70 <> b71 <> b72 <> b73 <> b74 <> b75 <> b76 <> b77 <> b78 <> b79 <> b80 <> b81 <> b82 <> b83 <> b84 <> b85 <> b86 <> b87 <> b88 <> b89 <> b90 <> b91 <> b92 <> b93 <> b94 <> b95 <> b96 <> b97 <> b98 <> b99 <> b100 <> b101 <> b102 <> b103 <> b104 <> b105 <> b106 <> b107 <> b108 <> Nil{}:          {==}        case b0 <> b1 <> b2 <> b3 <> b4 <> b5 <> b6 <> b7 <> b8 <> b9 <> b10 <> b11 <> b12 <> b13 <> b14 <> b15 <> b16 <> b17 <> b18 <> b19 <> b20 <> b21 <> b22 <> b23 <> b24 <> b25 <> b26 <> b27 <> b28 <> b29 <> b30 <> b31 <> b32 <> b33 <> b34 <> b35 <> b36 <> b37 <> b38 <> b39 <> b40 <> b41 <> b42 <> b43 <> b44 <> b45 <> b46 <> b47 <> b48 <> b49 <> b50 <> b51 <> b52 <> b53 <> b54 <> b55 <> b56 <> b57 <> b58 <> b59 <> b60 <> b61 <> b62 <> b63 <> b64 <> b65 <> b66 <> b67 <> b68 <> b69 <> b70 <> b71 <> b72 <> b73 <> b74 <> b75 <> b76 <> b77 <> b78 <> b79 <> b80 <> b81 <> b82 <> b83 <> b84 <> b85 <> b86 <> b87 <> b88 <> b89 <> b90 <> b91 <> b92 <> b93 <> b94 <> b95 <> b96 <> b97 <> b98 <> b99 <> b100 <> b101 <> b102 <> b103 <> b104 <> b105 <> b106 <> b107 <> b108 <> b109 <> Nil{}:          {==}        case b0 <> b1 <> b2 <> b3 <> b4 <> b5 <> b6 <> b7 <> b8 <> b9 <> b10 <> b11 <> b12 <> b13 <> b14 <> b15 <> b16 <> b17 <> b18 <> b19 <> b20 <> b21 <> b22 <> b23 <> b24 <> b25 <> b26 <> b27 <> b28 <> b29 <> b30 <> b31 <> b32 <> b33 <> b34 <> b35 <> b36 <> b37 <> b38 <> b39 <> b40 <> b41 <> b42 <> b43 <> b44 <> b45 <> b46 <> b47 <> b48 <> b49 <> b50 <> b51 <> b52 <> b53 <> b54 <> b55 <> b56 <> b57 <> b58 <> b59 <> b60 <> b61 <> b62 <> b63 <> b64 <> b65 <> b66 <> b67 <> b68 <> b69 <> b70 <> b71 <> b72 <> b73 <> b74 <> b75 <> b76 <> b77 <> b78 <> b79 <> b80 <> b81 <> b82 <> b83 <> b84 <> b85 <> b86 <> b87 <> b88 <> b89 <> b90 <> b91 <> b92 <> b93 <> b94 <> b95 <> b96 <> b97 <> b98 <> b99 <> b100 <> b101 <> b102 <> b103 <> b104 <> b105 <> b106 <> b107 <> b108 <> b109 <> b110 <> Nil{}:          {==}        case b0 <> b1 <> b2 <> b3 <> b4 <> b5 <> b6 <> b7 <> b8 <> b9 <> b10 <> b11 <> b12 <> b13 <> b14 <> b15 <> b16 <> b17 <> b18 <> b19 <> b20 <> b21 <> b22 <> b23 <> b24 <> b25 <> b26 <> b27 <> b28 <> b29 <> b30 <> b31 <> b32 <> b33 <> b34 <> b35 <> b36 <> b37 <> b38 <> b39 <> b40 <> b41 <> b42 <> b43 <> b44 <> b45 <> b46 <> b47 <> b48 <> b49 <> b50 <> b51 <> b52 <> b53 <> b54 <> b55 <> b56 <> b57 <> b58 <> b59 <> b60 <> b61 <> b62 <> b63 <> b64 <> b65 <> b66 <> b67 <> b68 <> b69 <> b70 <> b71 <> b72 <> b73 <> b74 <> b75 <> b76 <> b77 <> b78 <> b79 <> b80 <> b81 <> b82 <> b83 <> b84 <> b85 <> b86 <> b87 <> b88 <> b89 <> b90 <> b91 <> b92 <> b93 <> b94 <> b95 <> b96 <> b97 <> b98 <> b99 <> b100 <> b101 <> b102 <> b103 <> b104 <> b105 <> b106 <> b107 <> b108 <> b109 <> b110 <> b111 <> Nil{}:          {==}        case b0 <> b1 <> b2 <> b3 <> b4 <> b5 <> b6 <> b7 <> b8 <> b9 <> b10 <> b11 <> b12 <> b13 <> b14 <> b15 <> b16 <> b17 <> b18 <> b19 <> b20 <> b21 <> b22 <> b23 <> b24 <> b25 <> b26 <> b27 <> b28 <> b29 <> b30 <> b31 <> b32 <> b33 <> b34 <> b35 <> b36 <> b37 <> b38 <> b39 <> b40 <> b41 <> b42 <> b43 <> b44 <> b45 <> b46 <> b47 <> b48 <> b49 <> b50 <> b51 <> b52 <> b53 <> b54 <> b55 <> b56 <> b57 <> b58 <> b59 <> b60 <> b61 <> b62 <> b63 <> b64 <> b65 <> b66 <> b67 <> b68 <> b69 <> b70 <> b71 <> b72 <> b73 <> b74 <> b75 <> b76 <> b77 <> b78 <> b79 <> b80 <> b81 <> b82 <> b83 <> b84 <> b85 <> b86 <> b87 <> b88 <> b89 <> b90 <> b91 <> b92 <> b93 <> b94 <> b95 <> b96 <> b97 <> b98 <> b99 <> b100 <> b101 <> b102 <> b103 <> b104 <> b105 <> b106 <> b107 <> b108 <> b109 <> b110 <> b111 <> b112 <> Nil{}:          {==}        case b0 <> b1 <> b2 <> b3 <> b4 <> b5 <> b6 <> b7 <> b8 <> b9 <> b10 <> b11 <> b12 <> b13 <> b14 <> b15 <> b16 <> b17 <> b18 <> b19 <> b20 <> b21 <> b22 <> b23 <> b24 <> b25 <> b26 <> b27 <> b28 <> b29 <> b30 <> b31 <> b32 <> b33 <> b34 <> b35 <> b36 <> b37 <> b38 <> b39 <> b40 <> b41 <> b42 <> b43 <> b44 <> b45 <> b46 <> b47 <> b48 <> b49 <> b50 <> b51 <> b52 <> b53 <> b54 <> b55 <> b56 <> b57 <> b58 <> b59 <> b60 <> b61 <> b62 <> b63 <> b64 <> b65 <> b66 <> b67 <> b68 <> b69 <> b70 <> b71 <> b72 <> b73 <> b74 <> b75 <> b76 <> b77 <> b78 <> b79 <> b80 <> b81 <> b82 <> b83 <> b84 <> b85 <> b86 <> b87 <> b88 <> b89 <> b90 <> b91 <> b92 <> b93 <> b94 <> b95 <> b96 <> b97 <> b98 <> b99 <> b100 <> b101 <> b102 <> b103 <> b104 <> b105 <> b106 <> b107 <> b108 <> b109 <> b110 <> b111 <> b112 <> b113 <> Nil{}:          {==}        case b0 <> b1 <> b2 <> b3 <> b4 <> b5 <> b6 <> b7 <> b8 <> b9 <> b10 <> b11 <> b12 <> b13 <> b14 <> b15 <> b16 <> b17 <> b18 <> b19 <> b20 <> b21 <> b22 <> b23 <> b24 <> b25 <> b26 <> b27 <> b28 <> b29 <> b30 <> b31 <> b32 <> b33 <> b34 <> b35 <> b36 <> b37 <> b38 <> b39 <> b40 <> b41 <> b42 <> b43 <> b44 <> b45 <> b46 <> b47 <> b48 <> b49 <> b50 <> b51 <> b52 <> b53 <> b54 <> b55 <> b56 <> b57 <> b58 <> b59 <> b60 <> b61 <> b62 <> b63 <> b64 <> b65 <> b66 <> b67 <> b68 <> b69 <> b70 <> b71 <> b72 <> b73 <> b74 <> b75 <> b76 <> b77 <> b78 <> b79 <> b80 <> b81 <> b82 <> b83 <> b84 <> b85 <> b86 <> b87 <> b88 <> b89 <> b90 <> b91 <> b92 <> b93 <> b94 <> b95 <> b96 <> b97 <> b98 <> b99 <> b100 <> b101 <> b102 <> b103 <> b104 <> b105 <> b106 <> b107 <> b108 <> b109 <> b110 <> b111 <> b112 <> b113 <> b114 <> Nil{}:          {==}        case b0 <> b1 <> b2 <> b3 <> b4 <> b5 <> b6 <> b7 <> b8 <> b9 <> b10 <> b11 <> b12 <> b13 <> b14 <> b15 <> b16 <> b17 <> b18 <> b19 <> b20 <> b21 <> b22 <> b23 <> b24 <> b25 <> b26 <> b27 <> b28 <> b29 <> b30 <> b31 <> b32 <> b33 <> b34 <> b35 <> b36 <> b37 <> b38 <> b39 <> b40 <> b41 <> b42 <> b43 <> b44 <> b45 <> b46 <> b47 <> b48 <> b49 <> b50 <> b51 <> b52 <> b53 <> b54 <> b55 <> b56 <> b57 <> b58 <> b59 <> b60 <> b61 <> b62 <> b63 <> b64 <> b65 <> b66 <> b67 <> b68 <> b69 <> b70 <> b71 <> b72 <> b73 <> b74 <> b75 <> b76 <> b77 <> b78 <> b79 <> b80 <> b81 <> b82 <> b83 <> b84 <> b85 <> b86 <> b87 <> b88 <> b89 <> b90 <> b91 <> b92 <> b93 <> b94 <> b95 <> b96 <> b97 <> b98 <> b99 <> b100 <> b101 <> b102 <> b103 <> b104 <> b105 <> b106 <> b107 <> b108 <> b109 <> b110 <> b111 <> b112 <> b113 <> b114 <> b115 <> Nil{}:          {==}        case b0 <> b1 <> b2 <> b3 <> b4 <> b5 <> b6 <> b7 <> b8 <> b9 <> b10 <> b11 <> b12 <> b13 <> b14 <> b15 <> b16 <> b17 <> b18 <> b19 <> b20 <> b21 <> b22 <> b23 <> b24 <> b25 <> b26 <> b27 <> b28 <> b29 <> b30 <> b31 <> b32 <> b33 <> b34 <> b35 <> b36 <> b37 <> b38 <> b39 <> b40 <> b41 <> b42 <> b43 <> b44 <> b45 <> b46 <> b47 <> b48 <> b49 <> b50 <> b51 <> b52 <> b53 <> b54 <> b55 <> b56 <> b57 <> b58 <> b59 <> b60 <> b61 <> b62 <> b63 <> b64 <> b65 <> b66 <> b67 <> b68 <> b69 <> b70 <> b71 <> b72 <> b73 <> b74 <> b75 <> b76 <> b77 <> b78 <> b79 <> b80 <> b81 <> b82 <> b83 <> b84 <> b85 <> b86 <> b87 <> b88 <> b89 <> b90 <> b91 <> b92 <> b93 <> b94 <> b95 <> b96 <> b97 <> b98 <> b99 <> b100 <> b101 <> b102 <> b103 <> b104 <> b105 <> b106 <> b107 <> b108 <> b109 <> b110 <> b111 <> b112 <> b113 <> b114 <> b115 <> b116 <> Nil{}:          {==}        case b0 <> b1 <> b2 <> b3 <> b4 <> b5 <> b6 <> b7 <> b8 <> b9 <> b10 <> b11 <> b12 <> b13 <> b14 <> b15 <> b16 <> b17 <> b18 <> b19 <> b20 <> b21 <> b22 <> b23 <> b24 <> b25 <> b26 <> b27 <> b28 <> b29 <> b30 <> b31 <> b32 <> b33 <> b34 <> b35 <> b36 <> b37 <> b38 <> b39 <> b40 <> b41 <> b42 <> b43 <> b44 <> b45 <> b46 <> b47 <> b48 <> b49 <> b50 <> b51 <> b52 <> b53 <> b54 <> b55 <> b56 <> b57 <> b58 <> b59 <> b60 <> b61 <> b62 <> b63 <> b64 <> b65 <> b66 <> b67 <> b68 <> b69 <> b70 <> b71 <> b72 <> b73 <> b74 <> b75 <> b76 <> b77 <> b78 <> b79 <> b80 <> b81 <> b82 <> b83 <> b84 <> b85 <> b86 <> b87 <> b88 <> b89 <> b90 <> b91 <> b92 <> b93 <> b94 <> b95 <> b96 <> b97 <> b98 <> b99 <> b100 <> b101 <> b102 <> b103 <> b104 <> b105 <> b106 <> b107 <> b108 <> b109 <> b110 <> b111 <> b112 <> b113 <> b114 <> b115 <> b116 <> b117 <> Nil{}:          {==}        case b0 <> b1 <> b2 <> b3 <> b4 <> b5 <> b6 <> b7 <> b8 <> b9 <> b10 <> b11 <> b12 <> b13 <> b14 <> b15 <> b16 <> b17 <> b18 <> b19 <> b20 <> b21 <> b22 <> b23 <> b24 <> b25 <> b26 <> b27 <> b28 <> b29 <> b30 <> b31 <> b32 <> b33 <> b34 <> b35 <> b36 <> b37 <> b38 <> b39 <> b40 <> b41 <> b42 <> b43 <> b44 <> b45 <> b46 <> b47 <> b48 <> b49 <> b50 <> b51 <> b52 <> b53 <> b54 <> b55 <> b56 <> b57 <> b58 <> b59 <> b60 <> b61 <> b62 <> b63 <> b64 <> b65 <> b66 <> b67 <> b68 <> b69 <> b70 <> b71 <> b72 <> b73 <> b74 <> b75 <> b76 <> b77 <> b78 <> b79 <> b80 <> b81 <> b82 <> b83 <> b84 <> b85 <> b86 <> b87 <> b88 <> b89 <> b90 <> b91 <> b92 <> b93 <> b94 <> b95 <> b96 <> b97 <> b98 <> b99 <> b100 <> b101 <> b102 <> b103 <> b104 <> b105 <> b106 <> b107 <> b108 <> b109 <> b110 <> b111 <> b112 <> b113 <> b114 <> b115 <> b116 <> b117 <> b118 <> Nil{}:          {==}        case b0 <> b1 <> b2 <> b3 <> b4 <> b5 <> b6 <> b7 <> b8 <> b9 <> b10 <> b11 <> b12 <> b13 <> b14 <> b15 <> b16 <> b17 <> b18 <> b19 <> b20 <> b21 <> b22 <> b23 <> b24 <> b25 <> b26 <> b27 <> b28 <> b29 <> b30 <> b31 <> b32 <> b33 <> b34 <> b35 <> b36 <> b37 <> b38 <> b39 <> b40 <> b41 <> b42 <> b43 <> b44 <> b45 <> b46 <> b47 <> b48 <> b49 <> b50 <> b51 <> b52 <> b53 <> b54 <> b55 <> b56 <> b57 <> b58 <> b59 <> b60 <> b61 <> b62 <> b63 <> b64 <> b65 <> b66 <> b67 <> b68 <> b69 <> b70 <> b71 <> b72 <> b73 <> b74 <> b75 <> b76 <> b77 <> b78 <> b79 <> b80 <> b81 <> b82 <> b83 <> b84 <> b85 <> b86 <> b87 <> b88 <> b89 <> b90 <> b91 <> b92 <> b93 <> b94 <> b95 <> b96 <> b97 <> b98 <> b99 <> b100 <> b101 <> b102 <> b103 <> b104 <> b105 <> b106 <> b107 <> b108 <> b109 <> b110 <> b111 <> b112 <> b113 <> b114 <> b115 <> b116 <> b117 <> b118 <> b119 <> Nil{}:          {==}        case b0 <> b1 <> b2 <> b3 <> b4 <> b5 <> b6 <> b7 <> b8 <> b9 <> b10 <> b11 <> b12 <> b13 <> b14 <> b15 <> b16 <> b17 <> b18 <> b19 <> b20 <> b21 <> b22 <> b23 <> b24 <> b25 <> b26 <> b27 <> b28 <> b29 <> b30 <> b31 <> b32 <> b33 <> b34 <> b35 <> b36 <> b37 <> b38 <> b39 <> b40 <> b41 <> b42 <> b43 <> b44 <> b45 <> b46 <> b47 <> b48 <> b49 <> b50 <> b51 <> b52 <> b53 <> b54 <> b55 <> b56 <> b57 <> b58 <> b59 <> b60 <> b61 <> b62 <> b63 <> b64 <> b65 <> b66 <> b67 <> b68 <> b69 <> b70 <> b71 <> b72 <> b73 <> b74 <> b75 <> b76 <> b77 <> b78 <> b79 <> b80 <> b81 <> b82 <> b83 <> b84 <> b85 <> b86 <> b87 <> b88 <> b89 <> b90 <> b91 <> b92 <> b93 <> b94 <> b95 <> b96 <> b97 <> b98 <> b99 <> b100 <> b101 <> b102 <> b103 <> b104 <> b105 <> b106 <> b107 <> b108 <> b109 <> b110 <> b111 <> b112 <> b113 <> b114 <> b115 <> b116 <> b117 <> b118 <> b119 <> b120 <> Nil{}:          {==}        case b0 <> b1 <> b2 <> b3 <> b4 <> b5 <> b6 <> b7 <> b8 <> b9 <> b10 <> b11 <> b12 <> b13 <> b14 <> b15 <> b16 <> b17 <> b18 <> b19 <> b20 <> b21 <> b22 <> b23 <> b24 <> b25 <> b26 <> b27 <> b28 <> b29 <> b30 <> b31 <> b32 <> b33 <> b34 <> b35 <> b36 <> b37 <> b38 <> b39 <> b40 <> b41 <> b42 <> b43 <> b44 <> b45 <> b46 <> b47 <> b48 <> b49 <> b50 <> b51 <> b52 <> b53 <> b54 <> b55 <> b56 <> b57 <> b58 <> b59 <> b60 <> b61 <> b62 <> b63 <> b64 <> b65 <> b66 <> b67 <> b68 <> b69 <> b70 <> b71 <> b72 <> b73 <> b74 <> b75 <> b76 <> b77 <> b78 <> b79 <> b80 <> b81 <> b82 <> b83 <> b84 <> b85 <> b86 <> b87 <> b88 <> b89 <> b90 <> b91 <> b92 <> b93 <> b94 <> b95 <> b96 <> b97 <> b98 <> b99 <> b100 <> b101 <> b102 <> b103 <> b104 <> b105 <> b106 <> b107 <> b108 <> b109 <> b110 <> b111 <> b112 <> b113 <> b114 <> b115 <> b116 <> b117 <> b118 <> b119 <> b120 <> b121 <> Nil{}:          {==}        case b0 <> b1 <> b2 <> b3 <> b4 <> b5 <> b6 <> b7 <> b8 <> b9 <> b10 <> b11 <> b12 <> b13 <> b14 <> b15 <> b16 <> b17 <> b18 <> b19 <> b20 <> b21 <> b22 <> b23 <> b24 <> b25 <> b26 <> b27 <> b28 <> b29 <> b30 <> b31 <> b32 <> b33 <> b34 <> b35 <> b36 <> b37 <> b38 <> b39 <> b40 <> b41 <> b42 <> b43 <> b44 <> b45 <> b46 <> b47 <> b48 <> b49 <> b50 <> b51 <> b52 <> b53 <> b54 <> b55 <> b56 <> b57 <> b58 <> b59 <> b60 <> b61 <> b62 <> b63 <> b64 <> b65 <> b66 <> b67 <> b68 <> b69 <> b70 <> b71 <> b72 <> b73 <> b74 <> b75 <> b76 <> b77 <> b78 <> b79 <> b80 <> b81 <> b82 <> b83 <> b84 <> b85 <> b86 <> b87 <> b88 <> b89 <> b90 <> b91 <> b92 <> b93 <> b94 <> b95 <> b96 <> b97 <> b98 <> b99 <> b100 <> b101 <> b102 <> b103 <> b104 <> b105 <> b106 <> b107 <> b108 <> b109 <> b110 <> b111 <> b112 <> b113 <> b114 <> b115 <> b116 <> b117 <> b118 <> b119 <> b120 <> b121 <> b122 <> Nil{}:          {==}        case b0 <> b1 <> b2 <> b3 <> b4 <> b5 <> b6 <> b7 <> b8 <> b9 <> b10 <> b11 <> b12 <> b13 <> b14 <> b15 <> b16 <> b17 <> b18 <> b19 <> b20 <> b21 <> b22 <> b23 <> b24 <> b25 <> b26 <> b27 <> b28 <> b29 <> b30 <> b31 <> b32 <> b33 <> b34 <> b35 <> b36 <> b37 <> b38 <> b39 <> b40 <> b41 <> b42 <> b43 <> b44 <> b45 <> b46 <> b47 <> b48 <> b49 <> b50 <> b51 <> b52 <> b53 <> b54 <> b55 <> b56 <> b57 <> b58 <> b59 <> b60 <> b61 <> b62 <> b63 <> b64 <> b65 <> b66 <> b67 <> b68 <> b69 <> b70 <> b71 <> b72 <> b73 <> b74 <> b75 <> b76 <> b77 <> b78 <> b79 <> b80 <> b81 <> b82 <> b83 <> b84 <> b85 <> b86 <> b87 <> b88 <> b89 <> b90 <> b91 <> b92 <> b93 <> b94 <> b95 <> b96 <> b97 <> b98 <> b99 <> b100 <> b101 <> b102 <> b103 <> b104 <> b105 <> b106 <> b107 <> b108 <> b109 <> b110 <> b111 <> b112 <> b113 <> b114 <> b115 <> b116 <> b117 <> b118 <> b119 <> b120 <> b121 <> b122 <> b123 <> Nil{}:          {==}        case b0 <> b1 <> b2 <> b3 <> b4 <> b5 <> b6 <> b7 <> b8 <> b9 <> b10 <> b11 <> b12 <> b13 <> b14 <> b15 <> b16 <> b17 <> b18 <> b19 <> b20 <> b21 <> b22 <> b23 <> b24 <> b25 <> b26 <> b27 <> b28 <> b29 <> b30 <> b31 <> b32 <> b33 <> b34 <> b35 <> b36 <> b37 <> b38 <> b39 <> b40 <> b41 <> b42 <> b43 <> b44 <> b45 <> b46 <> b47 <> b48 <> b49 <> b50 <> b51 <> b52 <> b53 <> b54 <> b55 <> b56 <> b57 <> b58 <> b59 <> b60 <> b61 <> b62 <> b63 <> b64 <> b65 <> b66 <> b67 <> b68 <> b69 <> b70 <> b71 <> b72 <> b73 <> b74 <> b75 <> b76 <> b77 <> b78 <> b79 <> b80 <> b81 <> b82 <> b83 <> b84 <> b85 <> b86 <> b87 <> b88 <> b89 <> b90 <> b91 <> b92 <> b93 <> b94 <> b95 <> b96 <> b97 <> b98 <> b99 <> b100 <> b101 <> b102 <> b103 <> b104 <> b105 <> b106 <> b107 <> b108 <> b109 <> b110 <> b111 <> b112 <> b113 <> b114 <> b115 <> b116 <> b117 <> b118 <> b119 <> b120 <> b121 <> b122 <> b123 <> b124 <> Nil{}:          {==}        case b0 <> b1 <> b2 <> b3 <> b4 <> b5 <> b6 <> b7 <> b8 <> b9 <> b10 <> b11 <> b12 <> b13 <> b14 <> b15 <> b16 <> b17 <> b18 <> b19 <> b20 <> b21 <> b22 <> b23 <> b24 <> b25 <> b26 <> b27 <> b28 <> b29 <> b30 <> b31 <> b32 <> b33 <> b34 <> b35 <> b36 <> b37 <> b38 <> b39 <> b40 <> b41 <> b42 <> b43 <> b44 <> b45 <> b46 <> b47 <> b48 <> b49 <> b50 <> b51 <> b52 <> b53 <> b54 <> b55 <> b56 <> b57 <> b58 <> b59 <> b60 <> b61 <> b62 <> b63 <> b64 <> b65 <> b66 <> b67 <> b68 <> b69 <> b70 <> b71 <> b72 <> b73 <> b74 <> b75 <> b76 <> b77 <> b78 <> b79 <> b80 <> b81 <> b82 <> b83 <> b84 <> b85 <> b86 <> b87 <> b88 <> b89 <> b90 <> b91 <> b92 <> b93 <> b94 <> b95 <> b96 <> b97 <> b98 <> b99 <> b100 <> b101 <> b102 <> b103 <> b104 <> b105 <> b106 <> b107 <> b108 <> b109 <> b110 <> b111 <> b112 <> b113 <> b114 <> b115 <> b116 <> b117 <> b118 <> b119 <> b120 <> b121 <> b122 <> b123 <> b124 <> b125 <> Nil{}:          {==}        case b0 <> b1 <> b2 <> b3 <> b4 <> b5 <> b6 <> b7 <> b8 <> b9 <> b10 <> b11 <> b12 <> b13 <> b14 <> b15 <> b16 <> b17 <> b18 <> b19 <> b20 <> b21 <> b22 <> b23 <> b24 <> b25 <> b26 <> b27 <> b28 <> b29 <> b30 <> b31 <> b32 <> b33 <> b34 <> b35 <> b36 <> b37 <> b38 <> b39 <> b40 <> b41 <> b42 <> b43 <> b44 <> b45 <> b46 <> b47 <> b48 <> b49 <> b50 <> b51 <> b52 <> b53 <> b54 <> b55 <> b56 <> b57 <> b58 <> b59 <> b60 <> b61 <> b62 <> b63 <> b64 <> b65 <> b66 <> b67 <> b68 <> b69 <> b70 <> b71 <> b72 <> b73 <> b74 <> b75 <> b76 <> b77 <> b78 <> b79 <> b80 <> b81 <> b82 <> b83 <> b84 <> b85 <> b86 <> b87 <> b88 <> b89 <> b90 <> b91 <> b92 <> b93 <> b94 <> b95 <> b96 <> b97 <> b98 <> b99 <> b100 <> b101 <> b102 <> b103 <> b104 <> b105 <> b106 <> b107 <> b108 <> b109 <> b110 <> b111 <> b112 <> b113 <> b114 <> b115 <> b116 <> b117 <> b118 <> b119 <> b120 <> b121 <> b122 <> b123 <> b124 <> b125 <> b126 <> Nil{}:          {==}law step512_inv:  for +st: H.Sha512State  for +xs: List<&2, U32>  for +q: Nat  for +z: List<&2, U32>  {C512.blocks(C512.lanes(List.append(&2, U32, List.append(&2, U32, buf512(st), xs), z)), q, C512.round_constants(), st512(st)) == C512.blocks(C512.lanes(List.append(&2, U32, buf512(H.step512(st, xs, q)), z)), q, C512.round_constants(), st512(H.step512(st, xs, q))) : T512.State}def step512_inv(st, xs, q, z):  match st:    case H.St512{s, buf}:      absorb512_inv(List.length(&2, U32, List.append(&2, U32, buf, xs)), List.append(&2, U32, buf, xs), q, s, z)# The state after each chunk in turn.def fold512(cs: List<&2, List<&2, U32>>, +q: Nat, st: H.Sha512State) -> H.Sha512State:  match cs:    case Nil{}:      st    case c <> ct:      fold512(ct, q, H.step512(st, c, q))law fold512_inv:  for +cs: List<&2, List<&2, U32>>  for +q: Nat  for +st: H.Sha512State  for +z: List<&2, U32>  {C512.blocks(C512.lanes(List.append(&2, U32, List.append(&2, U32, buf512(st), List.concat(&2, U32, cs)), z)), q, C512.round_constants(), st512(st)) == C512.blocks(C512.lanes(List.append(&2, U32, buf512(fold512(cs, q, st)), z)), q, C512.round_constants(), st512(fold512(cs, q, st))) : T512.State}def fold512_inv(cs, q, st, z):  match cs:    case Nil{}:      %L.append_nil(buf512(st)) :        {C512.blocks(C512.lanes(List.append(&2, U32, List.append(&2, U32, buf512(st), Nil{}), z)), q, C512.round_constants(), st512(st)) == C512.blocks(C512.lanes(List.append(&2, U32, _, z)), q, C512.round_constants(), st512(st)) : T512.State}      {==}    case c <> ct:      +st2 = H.step512(st, c, q)      +m = List.concat(&2, U32, ct)      Equal.trans(T512.State,        C512.blocks(C512.lanes(List.append(&2, U32, List.append(&2, U32, buf512(st), List.append(&2, U32, c, m)), z)), q, C512.round_constants(), st512(st)),        C512.blocks(C512.lanes(List.append(&2, U32, List.append(&2, U32, buf512(st), c), List.append(&2, U32, m, z))), q, C512.round_constants(), st512(st)),        C512.blocks(C512.lanes(List.append(&2, U32, buf512(fold512(ct, q, st2)), z)), q, C512.round_constants(), st512(fold512(ct, q, st2))),        Equal.cong(List<&2, U32>, T512.State, t => C512.blocks(C512.lanes(t), q, C512.round_constants(), st512(st)),          List.append(&2, U32, List.append(&2, U32, buf512(st), List.append(&2, U32, c, m)), z), List.append(&2, U32, List.append(&2, U32, buf512(st), c), List.append(&2, U32, m, z)),          Equal.trans(List<&2, U32>, List.append(&2, U32, List.append(&2, U32, buf512(st), List.append(&2, U32, c, m)), z), List.append(&2, U32, List.append(&2, U32, List.append(&2, U32, buf512(st), c), m), z), List.append(&2, U32, List.append(&2, U32, buf512(st), c), List.append(&2, U32, m, z)),            Equal.cong(List<&2, U32>, List<&2, U32>, t => List.append(&2, U32, t, z),              List.append(&2, U32, buf512(st), List.append(&2, U32, c, m)), List.append(&2, U32, List.append(&2, U32, buf512(st), c), m), L.append_assoc_rev(buf512(st), c, m)),            L.append_assoc(List.append(&2, U32, buf512(st), c), m, z))),        Equal.trans(T512.State, C512.blocks(C512.lanes(List.append(&2, U32, List.append(&2, U32, buf512(st), c), List.append(&2, U32, m, z))), q, C512.round_constants(), st512(st)), C512.blocks(C512.lanes(List.append(&2, U32, buf512(st2), List.append(&2, U32, m, z))), q, C512.round_constants(), st512(st2)), C512.blocks(C512.lanes(List.append(&2, U32, buf512(fold512(ct, q, st2)), z)), q, C512.round_constants(), st512(fold512(ct, q, st2))),          step512_inv(st, c, q, List.append(&2, U32, m, z)),          Equal.trans(T512.State, C512.blocks(C512.lanes(List.append(&2, U32, buf512(st2), List.append(&2, U32, m, z))), q, C512.round_constants(), st512(st2)), C512.blocks(C512.lanes(List.append(&2, U32, List.append(&2, U32, buf512(st2), m), z)), q, C512.round_constants(), st512(st2)), C512.blocks(C512.lanes(List.append(&2, U32, buf512(fold512(ct, q, st2)), z)), q, C512.round_constants(), st512(fold512(ct, q, st2))),            Equal.cong(List<&2, U32>, T512.State, t => C512.blocks(C512.lanes(t), q, C512.round_constants(), st512(st2)),              List.append(&2, U32, buf512(st2), List.append(&2, U32, m, z)), List.append(&2, U32, List.append(&2, U32, buf512(st2), m), z), L.append_assoc_rev(buf512(st2), m, z)),            fold512_inv(ct, q, st2, z))))law state512:  for +cs: List<&2, List<&2, U32>>  for +st: H.Sha512State  for +len: Nat  {H.fold(cs, H.Sha512H{st, len}) == H.Sha512H{fold512(cs, 64n, st), Nat.add(len, List.length(&2, U32, List.concat(&2, U32, cs)))} : H.Hasher}def state512(cs, st, len):  match cs:    case Nil{}:      Equal.cong(Nat, H.Hasher, t => H.Sha512H{st, t}, len, Nat.add(len, 0n),        Equal.sym(Nat, Nat.add(len, 0n), len, L.add_zero(len)))    case c <> ct:      +m = List.concat(&2, U32, ct)      %L.add_length(len, c, m) :        {H.fold(c <> ct, H.Sha512H{st, len}) == H.Sha512H{fold512(ct, 64n, H.step512(st, c, 64n)), _} : H.Hasher}      state512(ct, H.step512(st, c, 64n), Nat.add(len, List.length(&2, U32, c)))law finish512_eta:  for +st: H.Sha512State  for +len: Nat  for +q: Nat  {H.finish512(st, len, q) == C512.digest_bytes(C512.blocks(C512.lanes(List.append(&2, U32, buf512(st), C512.suffix(len))), q, C512.round_constants(), st512(st))) : List<&2, U32>}def finish512_eta(st, len, q):  match st:    case H.St512{s, buf}:      {==}# digest(update_all(new, chunks)) is the padded block loop over concat(chunks).law incremental512:  for +cs: List<&2, List<&2, U32>>  {H.digest(H.update_all(H.new_sha512(), cs)) == C512.digest_bytes(C512.blocks(C512.lanes(List.append(&2, U32, List.concat(&2, U32, cs), C512.suffix(List.length(&2, U32, List.concat(&2, U32, cs))))), 64n, C512.round_constants(), C512.initial())) : List<&2, U32>}def incremental512(cs):  +m = List.concat(&2, U32, cs)  +qs = fold512(cs, 64n, H.St512{C512.initial(), Nil{}})  %Equal.sym(H.Hasher, H.fold(cs, H.Sha512H{H.St512{C512.initial(), Nil{}}, 0n}), H.Sha512H{qs, List.length(&2, U32, m)},    state512(cs, H.St512{C512.initial(), Nil{}}, 0n)) :    {H.digest(_) == C512.digest_bytes(C512.blocks(C512.lanes(List.append(&2, U32, List.concat(&2, U32, cs), C512.suffix(List.length(&2, U32, List.concat(&2, U32, cs))))), 64n, C512.round_constants(), C512.initial())) : List<&2, U32>}  %Equal.sym(List<&2, U32>, H.finish512(qs, List.length(&2, U32, m), 64n), C512.digest_bytes(C512.blocks(C512.lanes(List.append(&2, U32, buf512(qs), C512.suffix(List.length(&2, U32, m)))), 64n, C512.round_constants(), st512(qs))),    finish512_eta(qs, List.length(&2, U32, m), 64n)) :    {_ == C512.digest_bytes(C512.blocks(C512.lanes(List.append(&2, U32, List.concat(&2, U32, cs), C512.suffix(List.length(&2, U32, List.concat(&2, U32, cs))))), 64n, C512.round_constants(), C512.initial())) : List<&2, U32>}  Equal.cong(T512.State, List<&2, U32>, t => C512.digest_bytes(t),    C512.blocks(C512.lanes(List.append(&2, U32, buf512(qs), C512.suffix(List.length(&2, U32, m)))), 64n, C512.round_constants(), st512(qs)), C512.blocks(C512.lanes(List.append(&2, U32, m, C512.suffix(List.length(&2, U32, m)))), 64n, C512.round_constants(), C512.initial()),    Equal.sym(T512.State, C512.blocks(C512.lanes(List.append(&2, U32, m, C512.suffix(List.length(&2, U32, m)))), 64n, C512.round_constants(), C512.initial()), C512.blocks(C512.lanes(List.append(&2, U32, buf512(qs), C512.suffix(List.length(&2, U32, m)))), 64n, C512.round_constants(), st512(qs)), fold512_inv(cs, 64n, H.St512{C512.initial(), Nil{}}, C512.suffix(List.length(&2, U32, m)))))# ---------------------------------------------------------------- SHA3-256 (FIPS 202)def st3(st: H.Sha3State) -> TK.State:  match st:    case H.St3{s, b}:      sdef buf3(st: H.Sha3State) -> List<&2, U32>:  match st:    case H.St3{s, b}:      blaw absorb3_inv:  for +fuel: Nat  for +bytes: List<&2, U32>  for +q: Nat  for +s: TK.State  for +z: List<&2, U32>  {C3.absorb(C3.lanes(List.append(&2, U32, bytes, z)), q, s) == C3.absorb(C3.lanes(List.append(&2, U32, buf3(H.absorb3(fuel, H.read3_0(bytes), bytes, q, s)), z)), q, st3(H.absorb3(fuel, H.read3_0(bytes), bytes, q, s))) : TK.State}def absorb3_inv(fuel, bytes, q, s, z):  match fuel:    case 0n:      {==}    case 1n+p:      match bytes:        case b0 <> b1 <> b2 <> b3 <> b4 <> b5 <> b6 <> b7 <> b8 <> b9 <> b10 <> b11 <> b12 <> b13 <> b14 <> b15 <> b16 <> b17 <> b18 <> b19 <> b20 <> b21 <> b22 <> b23 <> b24 <> b25 <> b26 <> b27 <> b28 <> b29 <> b30 <> b31 <> b32 <> b33 <> b34 <> b35 <> b36 <> b37 <> b38 <> b39 <> b40 <> b41 <> b42 <> b43 <> b44 <> b45 <> b46 <> b47 <> b48 <> b49 <> b50 <> b51 <> b52 <> b53 <> b54 <> b55 <> b56 <> b57 <> b58 <> b59 <> b60 <> b61 <> b62 <> b63 <> b64 <> b65 <> b66 <> b67 <> b68 <> b69 <> b70 <> b71 <> b72 <> b73 <> b74 <> b75 <> b76 <> b77 <> b78 <> b79 <> b80 <> b81 <> b82 <> b83 <> b84 <> b85 <> b86 <> b87 <> b88 <> b89 <> b90 <> b91 <> b92 <> b93 <> b94 <> b95 <> b96 <> b97 <> b98 <> b99 <> b100 <> b101 <> b102 <> b103 <> b104 <> b105 <> b106 <> b107 <> b108 <> b109 <> b110 <> b111 <> b112 <> b113 <> b114 <> b115 <> b116 <> b117 <> b118 <> b119 <> b120 <> b121 <> b122 <> b123 <> b124 <> b125 <> b126 <> b127 <> b128 <> b129 <> b130 <> b131 <> b132 <> b133 <> b134 <> b135 <> rest:          absorb3_inv(p, rest, q, P.rounds(q, 0n, C3.inject(s, TK.W{C3.pack(b0, b1, b2, b3), C3.pack(b4, b5, b6, b7)}, TK.W{C3.pack(b8, b9, b10, b11), C3.pack(b12, b13, b14, b15)}, TK.W{C3.pack(b16, b17, b18, b19), C3.pack(b20, b21, b22, b23)}, TK.W{C3.pack(b24, b25, b26, b27), C3.pack(b28, b29, b30, b31)}, TK.W{C3.pack(b32, b33, b34, b35), C3.pack(b36, b37, b38, b39)}, TK.W{C3.pack(b40, b41, b42, b43), C3.pack(b44, b45, b46, b47)}, TK.W{C3.pack(b48, b49, b50, b51), C3.pack(b52, b53, b54, b55)}, TK.W{C3.pack(b56, b57, b58, b59), C3.pack(b60, b61, b62, b63)}, TK.W{C3.pack(b64, b65, b66, b67), C3.pack(b68, b69, b70, b71)}, TK.W{C3.pack(b72, b73, b74, b75), C3.pack(b76, b77, b78, b79)}, TK.W{C3.pack(b80, b81, b82, b83), C3.pack(b84, b85, b86, b87)}, TK.W{C3.pack(b88, b89, b90, b91), C3.pack(b92, b93, b94, b95)}, TK.W{C3.pack(b96, b97, b98, b99), C3.pack(b100, b101, b102, b103)}, TK.W{C3.pack(b104, b105, b106, b107), C3.pack(b108, b109, b110, b111)}, TK.W{C3.pack(b112, b113, b114, b115), C3.pack(b116, b117, b118, b119)}, TK.W{C3.pack(b120, b121, b122, b123), C3.pack(b124, b125, b126, b127)}, TK.W{C3.pack(b128, b129, b130, b131), C3.pack(b132, b133, b134, b135)})), z)        case Nil{}:          {==}        case b0 <> Nil{}:          {==}        case b0 <> b1 <> Nil{}:          {==}        case b0 <> b1 <> b2 <> Nil{}:          {==}        case b0 <> b1 <> b2 <> b3 <> Nil{}:          {==}        case b0 <> b1 <> b2 <> b3 <> b4 <> Nil{}:          {==}        case b0 <> b1 <> b2 <> b3 <> b4 <> b5 <> Nil{}:          {==}        case b0 <> b1 <> b2 <> b3 <> b4 <> b5 <> b6 <> Nil{}:          {==}        case b0 <> b1 <> b2 <> b3 <> b4 <> b5 <> b6 <> b7 <> Nil{}:          {==}        case b0 <> b1 <> b2 <> b3 <> b4 <> b5 <> b6 <> b7 <> b8 <> Nil{}:          {==}        case b0 <> b1 <> b2 <> b3 <> b4 <> b5 <> b6 <> b7 <> b8 <> b9 <> Nil{}:          {==}        case b0 <> b1 <> b2 <> b3 <> b4 <> b5 <> b6 <> b7 <> b8 <> b9 <> b10 <> Nil{}:          {==}        case b0 <> b1 <> b2 <> b3 <> b4 <> b5 <> b6 <> b7 <> b8 <> b9 <> b10 <> b11 <> Nil{}:          {==}        case b0 <> b1 <> b2 <> b3 <> b4 <> b5 <> b6 <> b7 <> b8 <> b9 <> b10 <> b11 <> b12 <> Nil{}:          {==}        case b0 <> b1 <> b2 <> b3 <> b4 <> b5 <> b6 <> b7 <> b8 <> b9 <> b10 <> b11 <> b12 <> b13 <> Nil{}:          {==}        case b0 <> b1 <> b2 <> b3 <> b4 <> b5 <> b6 <> b7 <> b8 <> b9 <> b10 <> b11 <> b12 <> b13 <> b14 <> Nil{}:          {==}        case b0 <> b1 <> b2 <> b3 <> b4 <> b5 <> b6 <> b7 <> b8 <> b9 <> b10 <> b11 <> b12 <> b13 <> b14 <> b15 <> Nil{}:          {==}        case b0 <> b1 <> b2 <> b3 <> b4 <> b5 <> b6 <> b7 <> b8 <> b9 <> b10 <> b11 <> b12 <> b13 <> b14 <> b15 <> b16 <> Nil{}:          {==}        case b0 <> b1 <> b2 <> b3 <> b4 <> b5 <> b6 <> b7 <> b8 <> b9 <> b10 <> b11 <> b12 <> b13 <> b14 <> b15 <> b16 <> b17 <> Nil{}:          {==}        case b0 <> b1 <> b2 <> b3 <> b4 <> b5 <> b6 <> b7 <> b8 <> b9 <> b10 <> b11 <> b12 <> b13 <> b14 <> b15 <> b16 <> b17 <> b18 <> Nil{}:          {==}        case b0 <> b1 <> b2 <> b3 <> b4 <> b5 <> b6 <> b7 <> b8 <> b9 <> b10 <> b11 <> b12 <> b13 <> b14 <> b15 <> b16 <> b17 <> b18 <> b19 <> Nil{}:          {==}        case b0 <> b1 <> b2 <> b3 <> b4 <> b5 <> b6 <> b7 <> b8 <> b9 <> b10 <> b11 <> b12 <> b13 <> b14 <> b15 <> b16 <> b17 <> b18 <> b19 <> b20 <> Nil{}:          {==}        case b0 <> b1 <> b2 <> b3 <> b4 <> b5 <> b6 <> b7 <> b8 <> b9 <> b10 <> b11 <> b12 <> b13 <> b14 <> b15 <> b16 <> b17 <> b18 <> b19 <> b20 <> b21 <> Nil{}:          {==}        case b0 <> b1 <> b2 <> b3 <> b4 <> b5 <> b6 <> b7 <> b8 <> b9 <> b10 <> b11 <> b12 <> b13 <> b14 <> b15 <> b16 <> b17 <> b18 <> b19 <> b20 <> b21 <> b22 <> Nil{}:          {==}        case b0 <> b1 <> b2 <> b3 <> b4 <> b5 <> b6 <> b7 <> b8 <> b9 <> b10 <> b11 <> b12 <> b13 <> b14 <> b15 <> b16 <> b17 <> b18 <> b19 <> b20 <> b21 <> b22 <> b23 <> Nil{}:          {==}        case b0 <> b1 <> b2 <> b3 <> b4 <> b5 <> b6 <> b7 <> b8 <> b9 <> b10 <> b11 <> b12 <> b13 <> b14 <> b15 <> b16 <> b17 <> b18 <> b19 <> b20 <> b21 <> b22 <> b23 <> b24 <> Nil{}:          {==}        case b0 <> b1 <> b2 <> b3 <> b4 <> b5 <> b6 <> b7 <> b8 <> b9 <> b10 <> b11 <> b12 <> b13 <> b14 <> b15 <> b16 <> b17 <> b18 <> b19 <> b20 <> b21 <> b22 <> b23 <> b24 <> b25 <> Nil{}:          {==}        case b0 <> b1 <> b2 <> b3 <> b4 <> b5 <> b6 <> b7 <> b8 <> b9 <> b10 <> b11 <> b12 <> b13 <> b14 <> b15 <> b16 <> b17 <> b18 <> b19 <> b20 <> b21 <> b22 <> b23 <> b24 <> b25 <> b26 <> Nil{}:          {==}        case b0 <> b1 <> b2 <> b3 <> b4 <> b5 <> b6 <> b7 <> b8 <> b9 <> b10 <> b11 <> b12 <> b13 <> b14 <> b15 <> b16 <> b17 <> b18 <> b19 <> b20 <> b21 <> b22 <> b23 <> b24 <> b25 <> b26 <> b27 <> Nil{}:          {==}        case b0 <> b1 <> b2 <> b3 <> b4 <> b5 <> b6 <> b7 <> b8 <> b9 <> b10 <> b11 <> b12 <> b13 <> b14 <> b15 <> b16 <> b17 <> b18 <> b19 <> b20 <> b21 <> b22 <> b23 <> b24 <> b25 <> b26 <> b27 <> b28 <> Nil{}:          {==}        case b0 <> b1 <> b2 <> b3 <> b4 <> b5 <> b6 <> b7 <> b8 <> b9 <> b10 <> b11 <> b12 <> b13 <> b14 <> b15 <> b16 <> b17 <> b18 <> b19 <> b20 <> b21 <> b22 <> b23 <> b24 <> b25 <> b26 <> b27 <> b28 <> b29 <> Nil{}:          {==}        case b0 <> b1 <> b2 <> b3 <> b4 <> b5 <> b6 <> b7 <> b8 <> b9 <> b10 <> b11 <> b12 <> b13 <> b14 <> b15 <> b16 <> b17 <> b18 <> b19 <> b20 <> b21 <> b22 <> b23 <> b24 <> b25 <> b26 <> b27 <> b28 <> b29 <> b30 <> Nil{}:          {==}        case b0 <> b1 <> b2 <> b3 <> b4 <> b5 <> b6 <> b7 <> b8 <> b9 <> b10 <> b11 <> b12 <> b13 <> b14 <> b15 <> b16 <> b17 <> b18 <> b19 <> b20 <> b21 <> b22 <> b23 <> b24 <> b25 <> b26 <> b27 <> b28 <> b29 <> b30 <> b31 <> Nil{}:          {==}        case b0 <> b1 <> b2 <> b3 <> b4 <> b5 <> b6 <> b7 <> b8 <> b9 <> b10 <> b11 <> b12 <> b13 <> b14 <> b15 <> b16 <> b17 <> b18 <> b19 <> b20 <> b21 <> b22 <> b23 <> b24 <> b25 <> b26 <> b27 <> b28 <> b29 <> b30 <> b31 <> b32 <> Nil{}:          {==}        case b0 <> b1 <> b2 <> b3 <> b4 <> b5 <> b6 <> b7 <> b8 <> b9 <> b10 <> b11 <> b12 <> b13 <> b14 <> b15 <> b16 <> b17 <> b18 <> b19 <> b20 <> b21 <> b22 <> b23 <> b24 <> b25 <> b26 <> b27 <> b28 <> b29 <> b30 <> b31 <> b32 <> b33 <> Nil{}:          {==}        case b0 <> b1 <> b2 <> b3 <> b4 <> b5 <> b6 <> b7 <> b8 <> b9 <> b10 <> b11 <> b12 <> b13 <> b14 <> b15 <> b16 <> b17 <> b18 <> b19 <> b20 <> b21 <> b22 <> b23 <> b24 <> b25 <> b26 <> b27 <> b28 <> b29 <> b30 <> b31 <> b32 <> b33 <> b34 <> Nil{}:          {==}        case b0 <> b1 <> b2 <> b3 <> b4 <> b5 <> b6 <> b7 <> b8 <> b9 <> b10 <> b11 <> b12 <> b13 <> b14 <> b15 <> b16 <> b17 <> b18 <> b19 <> b20 <> b21 <> b22 <> b23 <> b24 <> b25 <> b26 <> b27 <> b28 <> b29 <> b30 <> b31 <> b32 <> b33 <> b34 <> b35 <> Nil{}:          {==}        case b0 <> b1 <> b2 <> b3 <> b4 <> b5 <> b6 <> b7 <> b8 <> b9 <> b10 <> b11 <> b12 <> b13 <> b14 <> b15 <> b16 <> b17 <> b18 <> b19 <> b20 <> b21 <> b22 <> b23 <> b24 <> b25 <> b26 <> b27 <> b28 <> b29 <> b30 <> b31 <> b32 <> b33 <> b34 <> b35 <> b36 <> Nil{}:          {==}        case b0 <> b1 <> b2 <> b3 <> b4 <> b5 <> b6 <> b7 <> b8 <> b9 <> b10 <> b11 <> b12 <> b13 <> b14 <> b15 <> b16 <> b17 <> b18 <> b19 <> b20 <> b21 <> b22 <> b23 <> b24 <> b25 <> b26 <> b27 <> b28 <> b29 <> b30 <> b31 <> b32 <> b33 <> b34 <> b35 <> b36 <> b37 <> Nil{}:          {==}        case b0 <> b1 <> b2 <> b3 <> b4 <> b5 <> b6 <> b7 <> b8 <> b9 <> b10 <> b11 <> b12 <> b13 <> b14 <> b15 <> b16 <> b17 <> b18 <> b19 <> b20 <> b21 <> b22 <> b23 <> b24 <> b25 <> b26 <> b27 <> b28 <> b29 <> b30 <> b31 <> b32 <> b33 <> b34 <> b35 <> b36 <> b37 <> b38 <> Nil{}:          {==}        case b0 <> b1 <> b2 <> b3 <> b4 <> b5 <> b6 <> b7 <> b8 <> b9 <> b10 <> b11 <> b12 <> b13 <> b14 <> b15 <> b16 <> b17 <> b18 <> b19 <> b20 <> b21 <> b22 <> b23 <> b24 <> b25 <> b26 <> b27 <> b28 <> b29 <> b30 <> b31 <> b32 <> b33 <> b34 <> b35 <> b36 <> b37 <> b38 <> b39 <> Nil{}:          {==}        case b0 <> b1 <> b2 <> b3 <> b4 <> b5 <> b6 <> b7 <> b8 <> b9 <> b10 <> b11 <> b12 <> b13 <> b14 <> b15 <> b16 <> b17 <> b18 <> b19 <> b20 <> b21 <> b22 <> b23 <> b24 <> b25 <> b26 <> b27 <> b28 <> b29 <> b30 <> b31 <> b32 <> b33 <> b34 <> b35 <> b36 <> b37 <> b38 <> b39 <> b40 <> Nil{}:          {==}        case b0 <> b1 <> b2 <> b3 <> b4 <> b5 <> b6 <> b7 <> b8 <> b9 <> b10 <> b11 <> b12 <> b13 <> b14 <> b15 <> b16 <> b17 <> b18 <> b19 <> b20 <> b21 <> b22 <> b23 <> b24 <> b25 <> b26 <> b27 <> b28 <> b29 <> b30 <> b31 <> b32 <> b33 <> b34 <> b35 <> b36 <> b37 <> b38 <> b39 <> b40 <> b41 <> Nil{}:          {==}        case b0 <> b1 <> b2 <> b3 <> b4 <> b5 <> b6 <> b7 <> b8 <> b9 <> b10 <> b11 <> b12 <> b13 <> b14 <> b15 <> b16 <> b17 <> b18 <> b19 <> b20 <> b21 <> b22 <> b23 <> b24 <> b25 <> b26 <> b27 <> b28 <> b29 <> b30 <> b31 <> b32 <> b33 <> b34 <> b35 <> b36 <> b37 <> b38 <> b39 <> b40 <> b41 <> b42 <> Nil{}:          {==}        case b0 <> b1 <> b2 <> b3 <> b4 <> b5 <> b6 <> b7 <> b8 <> b9 <> b10 <> b11 <> b12 <> b13 <> b14 <> b15 <> b16 <> b17 <> b18 <> b19 <> b20 <> b21 <> b22 <> b23 <> b24 <> b25 <> b26 <> b27 <> b28 <> b29 <> b30 <> b31 <> b32 <> b33 <> b34 <> b35 <> b36 <> b37 <> b38 <> b39 <> b40 <> b41 <> b42 <> b43 <> Nil{}:          {==}        case b0 <> b1 <> b2 <> b3 <> b4 <> b5 <> b6 <> b7 <> b8 <> b9 <> b10 <> b11 <> b12 <> b13 <> b14 <> b15 <> b16 <> b17 <> b18 <> b19 <> b20 <> b21 <> b22 <> b23 <> b24 <> b25 <> b26 <> b27 <> b28 <> b29 <> b30 <> b31 <> b32 <> b33 <> b34 <> b35 <> b36 <> b37 <> b38 <> b39 <> b40 <> b41 <> b42 <> b43 <> b44 <> Nil{}:          {==}        case b0 <> b1 <> b2 <> b3 <> b4 <> b5 <> b6 <> b7 <> b8 <> b9 <> b10 <> b11 <> b12 <> b13 <> b14 <> b15 <> b16 <> b17 <> b18 <> b19 <> b20 <> b21 <> b22 <> b23 <> b24 <> b25 <> b26 <> b27 <> b28 <> b29 <> b30 <> b31 <> b32 <> b33 <> b34 <> b35 <> b36 <> b37 <> b38 <> b39 <> b40 <> b41 <> b42 <> b43 <> b44 <> b45 <> Nil{}:          {==}        case b0 <> b1 <> b2 <> b3 <> b4 <> b5 <> b6 <> b7 <> b8 <> b9 <> b10 <> b11 <> b12 <> b13 <> b14 <> b15 <> b16 <> b17 <> b18 <> b19 <> b20 <> b21 <> b22 <> b23 <> b24 <> b25 <> b26 <> b27 <> b28 <> b29 <> b30 <> b31 <> b32 <> b33 <> b34 <> b35 <> b36 <> b37 <> b38 <> b39 <> b40 <> b41 <> b42 <> b43 <> b44 <> b45 <> b46 <> Nil{}:          {==}        case b0 <> b1 <> b2 <> b3 <> b4 <> b5 <> b6 <> b7 <> b8 <> b9 <> b10 <> b11 <> b12 <> b13 <> b14 <> b15 <> b16 <> b17 <> b18 <> b19 <> b20 <> b21 <> b22 <> b23 <> b24 <> b25 <> b26 <> b27 <> b28 <> b29 <> b30 <> b31 <> b32 <> b33 <> b34 <> b35 <> b36 <> b37 <> b38 <> b39 <> b40 <> b41 <> b42 <> b43 <> b44 <> b45 <> b46 <> b47 <> Nil{}:          {==}        case b0 <> b1 <> b2 <> b3 <> b4 <> b5 <> b6 <> b7 <> b8 <> b9 <> b10 <> b11 <> b12 <> b13 <> b14 <> b15 <> b16 <> b17 <> b18 <> b19 <> b20 <> b21 <> b22 <> b23 <> b24 <> b25 <> b26 <> b27 <> b28 <> b29 <> b30 <> b31 <> b32 <> b33 <> b34 <> b35 <> b36 <> b37 <> b38 <> b39 <> b40 <> b41 <> b42 <> b43 <> b44 <> b45 <> b46 <> b47 <> b48 <> Nil{}:          {==}        case b0 <> b1 <> b2 <> b3 <> b4 <> b5 <> b6 <> b7 <> b8 <> b9 <> b10 <> b11 <> b12 <> b13 <> b14 <> b15 <> b16 <> b17 <> b18 <> b19 <> b20 <> b21 <> b22 <> b23 <> b24 <> b25 <> b26 <> b27 <> b28 <> b29 <> b30 <> b31 <> b32 <> b33 <> b34 <> b35 <> b36 <> b37 <> b38 <> b39 <> b40 <> b41 <> b42 <> b43 <> b44 <> b45 <> b46 <> b47 <> b48 <> b49 <> Nil{}:          {==}        case b0 <> b1 <> b2 <> b3 <> b4 <> b5 <> b6 <> b7 <> b8 <> b9 <> b10 <> b11 <> b12 <> b13 <> b14 <> b15 <> b16 <> b17 <> b18 <> b19 <> b20 <> b21 <> b22 <> b23 <> b24 <> b25 <> b26 <> b27 <> b28 <> b29 <> b30 <> b31 <> b32 <> b33 <> b34 <> b35 <> b36 <> b37 <> b38 <> b39 <> b40 <> b41 <> b42 <> b43 <> b44 <> b45 <> b46 <> b47 <> b48 <> b49 <> b50 <> Nil{}:          {==}        case b0 <> b1 <> b2 <> b3 <> b4 <> b5 <> b6 <> b7 <> b8 <> b9 <> b10 <> b11 <> b12 <> b13 <> b14 <> b15 <> b16 <> b17 <> b18 <> b19 <> b20 <> b21 <> b22 <> b23 <> b24 <> b25 <> b26 <> b27 <> b28 <> b29 <> b30 <> b31 <> b32 <> b33 <> b34 <> b35 <> b36 <> b37 <> b38 <> b39 <> b40 <> b41 <> b42 <> b43 <> b44 <> b45 <> b46 <> b47 <> b48 <> b49 <> b50 <> b51 <> Nil{}:          {==}        case b0 <> b1 <> b2 <> b3 <> b4 <> b5 <> b6 <> b7 <> b8 <> b9 <> b10 <> b11 <> b12 <> b13 <> b14 <> b15 <> b16 <> b17 <> b18 <> b19 <> b20 <> b21 <> b22 <> b23 <> b24 <> b25 <> b26 <> b27 <> b28 <> b29 <> b30 <> b31 <> b32 <> b33 <> b34 <> b35 <> b36 <> b37 <> b38 <> b39 <> b40 <> b41 <> b42 <> b43 <> b44 <> b45 <> b46 <> b47 <> b48 <> b49 <> b50 <> b51 <> b52 <> Nil{}:          {==}        case b0 <> b1 <> b2 <> b3 <> b4 <> b5 <> b6 <> b7 <> b8 <> b9 <> b10 <> b11 <> b12 <> b13 <> b14 <> b15 <> b16 <> b17 <> b18 <> b19 <> b20 <> b21 <> b22 <> b23 <> b24 <> b25 <> b26 <> b27 <> b28 <> b29 <> b30 <> b31 <> b32 <> b33 <> b34 <> b35 <> b36 <> b37 <> b38 <> b39 <> b40 <> b41 <> b42 <> b43 <> b44 <> b45 <> b46 <> b47 <> b48 <> b49 <> b50 <> b51 <> b52 <> b53 <> Nil{}:          {==}        case b0 <> b1 <> b2 <> b3 <> b4 <> b5 <> b6 <> b7 <> b8 <> b9 <> b10 <> b11 <> b12 <> b13 <> b14 <> b15 <> b16 <> b17 <> b18 <> b19 <> b20 <> b21 <> b22 <> b23 <> b24 <> b25 <> b26 <> b27 <> b28 <> b29 <> b30 <> b31 <> b32 <> b33 <> b34 <> b35 <> b36 <> b37 <> b38 <> b39 <> b40 <> b41 <> b42 <> b43 <> b44 <> b45 <> b46 <> b47 <> b48 <> b49 <> b50 <> b51 <> b52 <> b53 <> b54 <> Nil{}:          {==}        case b0 <> b1 <> b2 <> b3 <> b4 <> b5 <> b6 <> b7 <> b8 <> b9 <> b10 <> b11 <> b12 <> b13 <> b14 <> b15 <> b16 <> b17 <> b18 <> b19 <> b20 <> b21 <> b22 <> b23 <> b24 <> b25 <> b26 <> b27 <> b28 <> b29 <> b30 <> b31 <> b32 <> b33 <> b34 <> b35 <> b36 <> b37 <> b38 <> b39 <> b40 <> b41 <> b42 <> b43 <> b44 <> b45 <> b46 <> b47 <> b48 <> b49 <> b50 <> b51 <> b52 <> b53 <> b54 <> b55 <> Nil{}:          {==}        case b0 <> b1 <> b2 <> b3 <> b4 <> b5 <> b6 <> b7 <> b8 <> b9 <> b10 <> b11 <> b12 <> b13 <> b14 <> b15 <> b16 <> b17 <> b18 <> b19 <> b20 <> b21 <> b22 <> b23 <> b24 <> b25 <> b26 <> b27 <> b28 <> b29 <> b30 <> b31 <> b32 <> b33 <> b34 <> b35 <> b36 <> b37 <> b38 <> b39 <> b40 <> b41 <> b42 <> b43 <> b44 <> b45 <> b46 <> b47 <> b48 <> b49 <> b50 <> b51 <> b52 <> b53 <> b54 <> b55 <> b56 <> Nil{}:          {==}        case b0 <> b1 <> b2 <> b3 <> b4 <> b5 <> b6 <> b7 <> b8 <> b9 <> b10 <> b11 <> b12 <> b13 <> b14 <> b15 <> b16 <> b17 <> b18 <> b19 <> b20 <> b21 <> b22 <> b23 <> b24 <> b25 <> b26 <> b27 <> b28 <> b29 <> b30 <> b31 <> b32 <> b33 <> b34 <> b35 <> b36 <> b37 <> b38 <> b39 <> b40 <> b41 <> b42 <> b43 <> b44 <> b45 <> b46 <> b47 <> b48 <> b49 <> b50 <> b51 <> b52 <> b53 <> b54 <> b55 <> b56 <> b57 <> Nil{}:          {==}        case b0 <> b1 <> b2 <> b3 <> b4 <> b5 <> b6 <> b7 <> b8 <> b9 <> b10 <> b11 <> b12 <> b13 <> b14 <> b15 <> b16 <> b17 <> b18 <> b19 <> b20 <> b21 <> b22 <> b23 <> b24 <> b25 <> b26 <> b27 <> b28 <> b29 <> b30 <> b31 <> b32 <> b33 <> b34 <> b35 <> b36 <> b37 <> b38 <> b39 <> b40 <> b41 <> b42 <> b43 <> b44 <> b45 <> b46 <> b47 <> b48 <> b49 <> b50 <> b51 <> b52 <> b53 <> b54 <> b55 <> b56 <> b57 <> b58 <> Nil{}:          {==}        case b0 <> b1 <> b2 <> b3 <> b4 <> b5 <> b6 <> b7 <> b8 <> b9 <> b10 <> b11 <> b12 <> b13 <> b14 <> b15 <> b16 <> b17 <> b18 <> b19 <> b20 <> b21 <> b22 <> b23 <> b24 <> b25 <> b26 <> b27 <> b28 <> b29 <> b30 <> b31 <> b32 <> b33 <> b34 <> b35 <> b36 <> b37 <> b38 <> b39 <> b40 <> b41 <> b42 <> b43 <> b44 <> b45 <> b46 <> b47 <> b48 <> b49 <> b50 <> b51 <> b52 <> b53 <> b54 <> b55 <> b56 <> b57 <> b58 <> b59 <> Nil{}:          {==}        case b0 <> b1 <> b2 <> b3 <> b4 <> b5 <> b6 <> b7 <> b8 <> b9 <> b10 <> b11 <> b12 <> b13 <> b14 <> b15 <> b16 <> b17 <> b18 <> b19 <> b20 <> b21 <> b22 <> b23 <> b24 <> b25 <> b26 <> b27 <> b28 <> b29 <> b30 <> b31 <> b32 <> b33 <> b34 <> b35 <> b36 <> b37 <> b38 <> b39 <> b40 <> b41 <> b42 <> b43 <> b44 <> b45 <> b46 <> b47 <> b48 <> b49 <> b50 <> b51 <> b52 <> b53 <> b54 <> b55 <> b56 <> b57 <> b58 <> b59 <> b60 <> Nil{}:          {==}        case b0 <> b1 <> b2 <> b3 <> b4 <> b5 <> b6 <> b7 <> b8 <> b9 <> b10 <> b11 <> b12 <> b13 <> b14 <> b15 <> b16 <> b17 <> b18 <> b19 <> b20 <> b21 <> b22 <> b23 <> b24 <> b25 <> b26 <> b27 <> b28 <> b29 <> b30 <> b31 <> b32 <> b33 <> b34 <> b35 <> b36 <> b37 <> b38 <> b39 <> b40 <> b41 <> b42 <> b43 <> b44 <> b45 <> b46 <> b47 <> b48 <> b49 <> b50 <> b51 <> b52 <> b53 <> b54 <> b55 <> b56 <> b57 <> b58 <> b59 <> b60 <> b61 <> Nil{}:          {==}        case b0 <> b1 <> b2 <> b3 <> b4 <> b5 <> b6 <> b7 <> b8 <> b9 <> b10 <> b11 <> b12 <> b13 <> b14 <> b15 <> b16 <> b17 <> b18 <> b19 <> b20 <> b21 <> b22 <> b23 <> b24 <> b25 <> b26 <> b27 <> b28 <> b29 <> b30 <> b31 <> b32 <> b33 <> b34 <> b35 <> b36 <> b37 <> b38 <> b39 <> b40 <> b41 <> b42 <> b43 <> b44 <> b45 <> b46 <> b47 <> b48 <> b49 <> b50 <> b51 <> b52 <> b53 <> b54 <> b55 <> b56 <> b57 <> b58 <> b59 <> b60 <> b61 <> b62 <> Nil{}:          {==}        case b0 <> b1 <> b2 <> b3 <> b4 <> b5 <> b6 <> b7 <> b8 <> b9 <> b10 <> b11 <> b12 <> b13 <> b14 <> b15 <> b16 <> b17 <> b18 <> b19 <> b20 <> b21 <> b22 <> b23 <> b24 <> b25 <> b26 <> b27 <> b28 <> b29 <> b30 <> b31 <> b32 <> b33 <> b34 <> b35 <> b36 <> b37 <> b38 <> b39 <> b40 <> b41 <> b42 <> b43 <> b44 <> b45 <> b46 <> b47 <> b48 <> b49 <> b50 <> b51 <> b52 <> b53 <> b54 <> b55 <> b56 <> b57 <> b58 <> b59 <> b60 <> b61 <> b62 <> b63 <> Nil{}:          {==}        case b0 <> b1 <> b2 <> b3 <> b4 <> b5 <> b6 <> b7 <> b8 <> b9 <> b10 <> b11 <> b12 <> b13 <> b14 <> b15 <> b16 <> b17 <> b18 <> b19 <> b20 <> b21 <> b22 <> b23 <> b24 <> b25 <> b26 <> b27 <> b28 <> b29 <> b30 <> b31 <> b32 <> b33 <> b34 <> b35 <> b36 <> b37 <> b38 <> b39 <> b40 <> b41 <> b42 <> b43 <> b44 <> b45 <> b46 <> b47 <> b48 <> b49 <> b50 <> b51 <> b52 <> b53 <> b54 <> b55 <> b56 <> b57 <> b58 <> b59 <> b60 <> b61 <> b62 <> b63 <> b64 <> Nil{}:          {==}        case b0 <> b1 <> b2 <> b3 <> b4 <> b5 <> b6 <> b7 <> b8 <> b9 <> b10 <> b11 <> b12 <> b13 <> b14 <> b15 <> b16 <> b17 <> b18 <> b19 <> b20 <> b21 <> b22 <> b23 <> b24 <> b25 <> b26 <> b27 <> b28 <> b29 <> b30 <> b31 <> b32 <> b33 <> b34 <> b35 <> b36 <> b37 <> b38 <> b39 <> b40 <> b41 <> b42 <> b43 <> b44 <> b45 <> b46 <> b47 <> b48 <> b49 <> b50 <> b51 <> b52 <> b53 <> b54 <> b55 <> b56 <> b57 <> b58 <> b59 <> b60 <> b61 <> b62 <> b63 <> b64 <> b65 <> Nil{}:          {==}        case b0 <> b1 <> b2 <> b3 <> b4 <> b5 <> b6 <> b7 <> b8 <> b9 <> b10 <> b11 <> b12 <> b13 <> b14 <> b15 <> b16 <> b17 <> b18 <> b19 <> b20 <> b21 <> b22 <> b23 <> b24 <> b25 <> b26 <> b27 <> b28 <> b29 <> b30 <> b31 <> b32 <> b33 <> b34 <> b35 <> b36 <> b37 <> b38 <> b39 <> b40 <> b41 <> b42 <> b43 <> b44 <> b45 <> b46 <> b47 <> b48 <> b49 <> b50 <> b51 <> b52 <> b53 <> b54 <> b55 <> b56 <> b57 <> b58 <> b59 <> b60 <> b61 <> b62 <> b63 <> b64 <> b65 <> b66 <> Nil{}:          {==}        case b0 <> b1 <> b2 <> b3 <> b4 <> b5 <> b6 <> b7 <> b8 <> b9 <> b10 <> b11 <> b12 <> b13 <> b14 <> b15 <> b16 <> b17 <> b18 <> b19 <> b20 <> b21 <> b22 <> b23 <> b24 <> b25 <> b26 <> b27 <> b28 <> b29 <> b30 <> b31 <> b32 <> b33 <> b34 <> b35 <> b36 <> b37 <> b38 <> b39 <> b40 <> b41 <> b42 <> b43 <> b44 <> b45 <> b46 <> b47 <> b48 <> b49 <> b50 <> b51 <> b52 <> b53 <> b54 <> b55 <> b56 <> b57 <> b58 <> b59 <> b60 <> b61 <> b62 <> b63 <> b64 <> b65 <> b66 <> b67 <> Nil{}:          {==}        case b0 <> b1 <> b2 <> b3 <> b4 <> b5 <> b6 <> b7 <> b8 <> b9 <> b10 <> b11 <> b12 <> b13 <> b14 <> b15 <> b16 <> b17 <> b18 <> b19 <> b20 <> b21 <> b22 <> b23 <> b24 <> b25 <> b26 <> b27 <> b28 <> b29 <> b30 <> b31 <> b32 <> b33 <> b34 <> b35 <> b36 <> b37 <> b38 <> b39 <> b40 <> b41 <> b42 <> b43 <> b44 <> b45 <> b46 <> b47 <> b48 <> b49 <> b50 <> b51 <> b52 <> b53 <> b54 <> b55 <> b56 <> b57 <> b58 <> b59 <> b60 <> b61 <> b62 <> b63 <> b64 <> b65 <> b66 <> b67 <> b68 <> Nil{}:          {==}        case b0 <> b1 <> b2 <> b3 <> b4 <> b5 <> b6 <> b7 <> b8 <> b9 <> b10 <> b11 <> b12 <> b13 <> b14 <> b15 <> b16 <> b17 <> b18 <> b19 <> b20 <> b21 <> b22 <> b23 <> b24 <> b25 <> b26 <> b27 <> b28 <> b29 <> b30 <> b31 <> b32 <> b33 <> b34 <> b35 <> b36 <> b37 <> b38 <> b39 <> b40 <> b41 <> b42 <> b43 <> b44 <> b45 <> b46 <> b47 <> b48 <> b49 <> b50 <> b51 <> b52 <> b53 <> b54 <> b55 <> b56 <> b57 <> b58 <> b59 <> b60 <> b61 <> b62 <> b63 <> b64 <> b65 <> b66 <> b67 <> b68 <> b69 <> Nil{}:          {==}        case b0 <> b1 <> b2 <> b3 <> b4 <> b5 <> b6 <> b7 <> b8 <> b9 <> b10 <> b11 <> b12 <> b13 <> b14 <> b15 <> b16 <> b17 <> b18 <> b19 <> b20 <> b21 <> b22 <> b23 <> b24 <> b25 <> b26 <> b27 <> b28 <> b29 <> b30 <> b31 <> b32 <> b33 <> b34 <> b35 <> b36 <> b37 <> b38 <> b39 <> b40 <> b41 <> b42 <> b43 <> b44 <> b45 <> b46 <> b47 <> b48 <> b49 <> b50 <> b51 <> b52 <> b53 <> b54 <> b55 <> b56 <> b57 <> b58 <> b59 <> b60 <> b61 <> b62 <> b63 <> b64 <> b65 <> b66 <> b67 <> b68 <> b69 <> b70 <> Nil{}:          {==}        case b0 <> b1 <> b2 <> b3 <> b4 <> b5 <> b6 <> b7 <> b8 <> b9 <> b10 <> b11 <> b12 <> b13 <> b14 <> b15 <> b16 <> b17 <> b18 <> b19 <> b20 <> b21 <> b22 <> b23 <> b24 <> b25 <> b26 <> b27 <> b28 <> b29 <> b30 <> b31 <> b32 <> b33 <> b34 <> b35 <> b36 <> b37 <> b38 <> b39 <> b40 <> b41 <> b42 <> b43 <> b44 <> b45 <> b46 <> b47 <> b48 <> b49 <> b50 <> b51 <> b52 <> b53 <> b54 <> b55 <> b56 <> b57 <> b58 <> b59 <> b60 <> b61 <> b62 <> b63 <> b64 <> b65 <> b66 <> b67 <> b68 <> b69 <> b70 <> b71 <> Nil{}:          {==}        case b0 <> b1 <> b2 <> b3 <> b4 <> b5 <> b6 <> b7 <> b8 <> b9 <> b10 <> b11 <> b12 <> b13 <> b14 <> b15 <> b16 <> b17 <> b18 <> b19 <> b20 <> b21 <> b22 <> b23 <> b24 <> b25 <> b26 <> b27 <> b28 <> b29 <> b30 <> b31 <> b32 <> b33 <> b34 <> b35 <> b36 <> b37 <> b38 <> b39 <> b40 <> b41 <> b42 <> b43 <> b44 <> b45 <> b46 <> b47 <> b48 <> b49 <> b50 <> b51 <> b52 <> b53 <> b54 <> b55 <> b56 <> b57 <> b58 <> b59 <> b60 <> b61 <> b62 <> b63 <> b64 <> b65 <> b66 <> b67 <> b68 <> b69 <> b70 <> b71 <> b72 <> Nil{}:          {==}        case b0 <> b1 <> b2 <> b3 <> b4 <> b5 <> b6 <> b7 <> b8 <> b9 <> b10 <> b11 <> b12 <> b13 <> b14 <> b15 <> b16 <> b17 <> b18 <> b19 <> b20 <> b21 <> b22 <> b23 <> b24 <> b25 <> b26 <> b27 <> b28 <> b29 <> b30 <> b31 <> b32 <> b33 <> b34 <> b35 <> b36 <> b37 <> b38 <> b39 <> b40 <> b41 <> b42 <> b43 <> b44 <> b45 <> b46 <> b47 <> b48 <> b49 <> b50 <> b51 <> b52 <> b53 <> b54 <> b55 <> b56 <> b57 <> b58 <> b59 <> b60 <> b61 <> b62 <> b63 <> b64 <> b65 <> b66 <> b67 <> b68 <> b69 <> b70 <> b71 <> b72 <> b73 <> Nil{}:          {==}        case b0 <> b1 <> b2 <> b3 <> b4 <> b5 <> b6 <> b7 <> b8 <> b9 <> b10 <> b11 <> b12 <> b13 <> b14 <> b15 <> b16 <> b17 <> b18 <> b19 <> b20 <> b21 <> b22 <> b23 <> b24 <> b25 <> b26 <> b27 <> b28 <> b29 <> b30 <> b31 <> b32 <> b33 <> b34 <> b35 <> b36 <> b37 <> b38 <> b39 <> b40 <> b41 <> b42 <> b43 <> b44 <> b45 <> b46 <> b47 <> b48 <> b49 <> b50 <> b51 <> b52 <> b53 <> b54 <> b55 <> b56 <> b57 <> b58 <> b59 <> b60 <> b61 <> b62 <> b63 <> b64 <> b65 <> b66 <> b67 <> b68 <> b69 <> b70 <> b71 <> b72 <> b73 <> b74 <> Nil{}:          {==}        case b0 <> b1 <> b2 <> b3 <> b4 <> b5 <> b6 <> b7 <> b8 <> b9 <> b10 <> b11 <> b12 <> b13 <> b14 <> b15 <> b16 <> b17 <> b18 <> b19 <> b20 <> b21 <> b22 <> b23 <> b24 <> b25 <> b26 <> b27 <> b28 <> b29 <> b30 <> b31 <> b32 <> b33 <> b34 <> b35 <> b36 <> b37 <> b38 <> b39 <> b40 <> b41 <> b42 <> b43 <> b44 <> b45 <> b46 <> b47 <> b48 <> b49 <> b50 <> b51 <> b52 <> b53 <> b54 <> b55 <> b56 <> b57 <> b58 <> b59 <> b60 <> b61 <> b62 <> b63 <> b64 <> b65 <> b66 <> b67 <> b68 <> b69 <> b70 <> b71 <> b72 <> b73 <> b74 <> b75 <> Nil{}:          {==}        case b0 <> b1 <> b2 <> b3 <> b4 <> b5 <> b6 <> b7 <> b8 <> b9 <> b10 <> b11 <> b12 <> b13 <> b14 <> b15 <> b16 <> b17 <> b18 <> b19 <> b20 <> b21 <> b22 <> b23 <> b24 <> b25 <> b26 <> b27 <> b28 <> b29 <> b30 <> b31 <> b32 <> b33 <> b34 <> b35 <> b36 <> b37 <> b38 <> b39 <> b40 <> b41 <> b42 <> b43 <> b44 <> b45 <> b46 <> b47 <> b48 <> b49 <> b50 <> b51 <> b52 <> b53 <> b54 <> b55 <> b56 <> b57 <> b58 <> b59 <> b60 <> b61 <> b62 <> b63 <> b64 <> b65 <> b66 <> b67 <> b68 <> b69 <> b70 <> b71 <> b72 <> b73 <> b74 <> b75 <> b76 <> Nil{}:          {==}        case b0 <> b1 <> b2 <> b3 <> b4 <> b5 <> b6 <> b7 <> b8 <> b9 <> b10 <> b11 <> b12 <> b13 <> b14 <> b15 <> b16 <> b17 <> b18 <> b19 <> b20 <> b21 <> b22 <> b23 <> b24 <> b25 <> b26 <> b27 <> b28 <> b29 <> b30 <> b31 <> b32 <> b33 <> b34 <> b35 <> b36 <> b37 <> b38 <> b39 <> b40 <> b41 <> b42 <> b43 <> b44 <> b45 <> b46 <> b47 <> b48 <> b49 <> b50 <> b51 <> b52 <> b53 <> b54 <> b55 <> b56 <> b57 <> b58 <> b59 <> b60 <> b61 <> b62 <> b63 <> b64 <> b65 <> b66 <> b67 <> b68 <> b69 <> b70 <> b71 <> b72 <> b73 <> b74 <> b75 <> b76 <> b77 <> Nil{}:          {==}        case b0 <> b1 <> b2 <> b3 <> b4 <> b5 <> b6 <> b7 <> b8 <> b9 <> b10 <> b11 <> b12 <> b13 <> b14 <> b15 <> b16 <> b17 <> b18 <> b19 <> b20 <> b21 <> b22 <> b23 <> b24 <> b25 <> b26 <> b27 <> b28 <> b29 <> b30 <> b31 <> b32 <> b33 <> b34 <> b35 <> b36 <> b37 <> b38 <> b39 <> b40 <> b41 <> b42 <> b43 <> b44 <> b45 <> b46 <> b47 <> b48 <> b49 <> b50 <> b51 <> b52 <> b53 <> b54 <> b55 <> b56 <> b57 <> b58 <> b59 <> b60 <> b61 <> b62 <> b63 <> b64 <> b65 <> b66 <> b67 <> b68 <> b69 <> b70 <> b71 <> b72 <> b73 <> b74 <> b75 <> b76 <> b77 <> b78 <> Nil{}:          {==}        case b0 <> b1 <> b2 <> b3 <> b4 <> b5 <> b6 <> b7 <> b8 <> b9 <> b10 <> b11 <> b12 <> b13 <> b14 <> b15 <> b16 <> b17 <> b18 <> b19 <> b20 <> b21 <> b22 <> b23 <> b24 <> b25 <> b26 <> b27 <> b28 <> b29 <> b30 <> b31 <> b32 <> b33 <> b34 <> b35 <> b36 <> b37 <> b38 <> b39 <> b40 <> b41 <> b42 <> b43 <> b44 <> b45 <> b46 <> b47 <> b48 <> b49 <> b50 <> b51 <> b52 <> b53 <> b54 <> b55 <> b56 <> b57 <> b58 <> b59 <> b60 <> b61 <> b62 <> b63 <> b64 <> b65 <> b66 <> b67 <> b68 <> b69 <> b70 <> b71 <> b72 <> b73 <> b74 <> b75 <> b76 <> b77 <> b78 <> b79 <> Nil{}:          {==}        case b0 <> b1 <> b2 <> b3 <> b4 <> b5 <> b6 <> b7 <> b8 <> b9 <> b10 <> b11 <> b12 <> b13 <> b14 <> b15 <> b16 <> b17 <> b18 <> b19 <> b20 <> b21 <> b22 <> b23 <> b24 <> b25 <> b26 <> b27 <> b28 <> b29 <> b30 <> b31 <> b32 <> b33 <> b34 <> b35 <> b36 <> b37 <> b38 <> b39 <> b40 <> b41 <> b42 <> b43 <> b44 <> b45 <> b46 <> b47 <> b48 <> b49 <> b50 <> b51 <> b52 <> b53 <> b54 <> b55 <> b56 <> b57 <> b58 <> b59 <> b60 <> b61 <> b62 <> b63 <> b64 <> b65 <> b66 <> b67 <> b68 <> b69 <> b70 <> b71 <> b72 <> b73 <> b74 <> b75 <> b76 <> b77 <> b78 <> b79 <> b80 <> Nil{}:          {==}        case b0 <> b1 <> b2 <> b3 <> b4 <> b5 <> b6 <> b7 <> b8 <> b9 <> b10 <> b11 <> b12 <> b13 <> b14 <> b15 <> b16 <> b17 <> b18 <> b19 <> b20 <> b21 <> b22 <> b23 <> b24 <> b25 <> b26 <> b27 <> b28 <> b29 <> b30 <> b31 <> b32 <> b33 <> b34 <> b35 <> b36 <> b37 <> b38 <> b39 <> b40 <> b41 <> b42 <> b43 <> b44 <> b45 <> b46 <> b47 <> b48 <> b49 <> b50 <> b51 <> b52 <> b53 <> b54 <> b55 <> b56 <> b57 <> b58 <> b59 <> b60 <> b61 <> b62 <> b63 <> b64 <> b65 <> b66 <> b67 <> b68 <> b69 <> b70 <> b71 <> b72 <> b73 <> b74 <> b75 <> b76 <> b77 <> b78 <> b79 <> b80 <> b81 <> Nil{}:          {==}        case b0 <> b1 <> b2 <> b3 <> b4 <> b5 <> b6 <> b7 <> b8 <> b9 <> b10 <> b11 <> b12 <> b13 <> b14 <> b15 <> b16 <> b17 <> b18 <> b19 <> b20 <> b21 <> b22 <> b23 <> b24 <> b25 <> b26 <> b27 <> b28 <> b29 <> b30 <> b31 <> b32 <> b33 <> b34 <> b35 <> b36 <> b37 <> b38 <> b39 <> b40 <> b41 <> b42 <> b43 <> b44 <> b45 <> b46 <> b47 <> b48 <> b49 <> b50 <> b51 <> b52 <> b53 <> b54 <> b55 <> b56 <> b57 <> b58 <> b59 <> b60 <> b61 <> b62 <> b63 <> b64 <> b65 <> b66 <> b67 <> b68 <> b69 <> b70 <> b71 <> b72 <> b73 <> b74 <> b75 <> b76 <> b77 <> b78 <> b79 <> b80 <> b81 <> b82 <> Nil{}:          {==}        case b0 <> b1 <> b2 <> b3 <> b4 <> b5 <> b6 <> b7 <> b8 <> b9 <> b10 <> b11 <> b12 <> b13 <> b14 <> b15 <> b16 <> b17 <> b18 <> b19 <> b20 <> b21 <> b22 <> b23 <> b24 <> b25 <> b26 <> b27 <> b28 <> b29 <> b30 <> b31 <> b32 <> b33 <> b34 <> b35 <> b36 <> b37 <> b38 <> b39 <> b40 <> b41 <> b42 <> b43 <> b44 <> b45 <> b46 <> b47 <> b48 <> b49 <> b50 <> b51 <> b52 <> b53 <> b54 <> b55 <> b56 <> b57 <> b58 <> b59 <> b60 <> b61 <> b62 <> b63 <> b64 <> b65 <> b66 <> b67 <> b68 <> b69 <> b70 <> b71 <> b72 <> b73 <> b74 <> b75 <> b76 <> b77 <> b78 <> b79 <> b80 <> b81 <> b82 <> b83 <> Nil{}:          {==}        case b0 <> b1 <> b2 <> b3 <> b4 <> b5 <> b6 <> b7 <> b8 <> b9 <> b10 <> b11 <> b12 <> b13 <> b14 <> b15 <> b16 <> b17 <> b18 <> b19 <> b20 <> b21 <> b22 <> b23 <> b24 <> b25 <> b26 <> b27 <> b28 <> b29 <> b30 <> b31 <> b32 <> b33 <> b34 <> b35 <> b36 <> b37 <> b38 <> b39 <> b40 <> b41 <> b42 <> b43 <> b44 <> b45 <> b46 <> b47 <> b48 <> b49 <> b50 <> b51 <> b52 <> b53 <> b54 <> b55 <> b56 <> b57 <> b58 <> b59 <> b60 <> b61 <> b62 <> b63 <> b64 <> b65 <> b66 <> b67 <> b68 <> b69 <> b70 <> b71 <> b72 <> b73 <> b74 <> b75 <> b76 <> b77 <> b78 <> b79 <> b80 <> b81 <> b82 <> b83 <> b84 <> Nil{}:          {==}        case b0 <> b1 <> b2 <> b3 <> b4 <> b5 <> b6 <> b7 <> b8 <> b9 <> b10 <> b11 <> b12 <> b13 <> b14 <> b15 <> b16 <> b17 <> b18 <> b19 <> b20 <> b21 <> b22 <> b23 <> b24 <> b25 <> b26 <> b27 <> b28 <> b29 <> b30 <> b31 <> b32 <> b33 <> b34 <> b35 <> b36 <> b37 <> b38 <> b39 <> b40 <> b41 <> b42 <> b43 <> b44 <> b45 <> b46 <> b47 <> b48 <> b49 <> b50 <> b51 <> b52 <> b53 <> b54 <> b55 <> b56 <> b57 <> b58 <> b59 <> b60 <> b61 <> b62 <> b63 <> b64 <> b65 <> b66 <> b67 <> b68 <> b69 <> b70 <> b71 <> b72 <> b73 <> b74 <> b75 <> b76 <> b77 <> b78 <> b79 <> b80 <> b81 <> b82 <> b83 <> b84 <> b85 <> Nil{}:          {==}        case b0 <> b1 <> b2 <> b3 <> b4 <> b5 <> b6 <> b7 <> b8 <> b9 <> b10 <> b11 <> b12 <> b13 <> b14 <> b15 <> b16 <> b17 <> b18 <> b19 <> b20 <> b21 <> b22 <> b23 <> b24 <> b25 <> b26 <> b27 <> b28 <> b29 <> b30 <> b31 <> b32 <> b33 <> b34 <> b35 <> b36 <> b37 <> b38 <> b39 <> b40 <> b41 <> b42 <> b43 <> b44 <> b45 <> b46 <> b47 <> b48 <> b49 <> b50 <> b51 <> b52 <> b53 <> b54 <> b55 <> b56 <> b57 <> b58 <> b59 <> b60 <> b61 <> b62 <> b63 <> b64 <> b65 <> b66 <> b67 <> b68 <> b69 <> b70 <> b71 <> b72 <> b73 <> b74 <> b75 <> b76 <> b77 <> b78 <> b79 <> b80 <> b81 <> b82 <> b83 <> b84 <> b85 <> b86 <> Nil{}:          {==}        case b0 <> b1 <> b2 <> b3 <> b4 <> b5 <> b6 <> b7 <> b8 <> b9 <> b10 <> b11 <> b12 <> b13 <> b14 <> b15 <> b16 <> b17 <> b18 <> b19 <> b20 <> b21 <> b22 <> b23 <> b24 <> b25 <> b26 <> b27 <> b28 <> b29 <> b30 <> b31 <> b32 <> b33 <> b34 <> b35 <> b36 <> b37 <> b38 <> b39 <> b40 <> b41 <> b42 <> b43 <> b44 <> b45 <> b46 <> b47 <> b48 <> b49 <> b50 <> b51 <> b52 <> b53 <> b54 <> b55 <> b56 <> b57 <> b58 <> b59 <> b60 <> b61 <> b62 <> b63 <> b64 <> b65 <> b66 <> b67 <> b68 <> b69 <> b70 <> b71 <> b72 <> b73 <> b74 <> b75 <> b76 <> b77 <> b78 <> b79 <> b80 <> b81 <> b82 <> b83 <> b84 <> b85 <> b86 <> b87 <> Nil{}:          {==}        case b0 <> b1 <> b2 <> b3 <> b4 <> b5 <> b6 <> b7 <> b8 <> b9 <> b10 <> b11 <> b12 <> b13 <> b14 <> b15 <> b16 <> b17 <> b18 <> b19 <> b20 <> b21 <> b22 <> b23 <> b24 <> b25 <> b26 <> b27 <> b28 <> b29 <> b30 <> b31 <> b32 <> b33 <> b34 <> b35 <> b36 <> b37 <> b38 <> b39 <> b40 <> b41 <> b42 <> b43 <> b44 <> b45 <> b46 <> b47 <> b48 <> b49 <> b50 <> b51 <> b52 <> b53 <> b54 <> b55 <> b56 <> b57 <> b58 <> b59 <> b60 <> b61 <> b62 <> b63 <> b64 <> b65 <> b66 <> b67 <> b68 <> b69 <> b70 <> b71 <> b72 <> b73 <> b74 <> b75 <> b76 <> b77 <> b78 <> b79 <> b80 <> b81 <> b82 <> b83 <> b84 <> b85 <> b86 <> b87 <> b88 <> Nil{}:          {==}        case b0 <> b1 <> b2 <> b3 <> b4 <> b5 <> b6 <> b7 <> b8 <> b9 <> b10 <> b11 <> b12 <> b13 <> b14 <> b15 <> b16 <> b17 <> b18 <> b19 <> b20 <> b21 <> b22 <> b23 <> b24 <> b25 <> b26 <> b27 <> b28 <> b29 <> b30 <> b31 <> b32 <> b33 <> b34 <> b35 <> b36 <> b37 <> b38 <> b39 <> b40 <> b41 <> b42 <> b43 <> b44 <> b45 <> b46 <> b47 <> b48 <> b49 <> b50 <> b51 <> b52 <> b53 <> b54 <> b55 <> b56 <> b57 <> b58 <> b59 <> b60 <> b61 <> b62 <> b63 <> b64 <> b65 <> b66 <> b67 <> b68 <> b69 <> b70 <> b71 <> b72 <> b73 <> b74 <> b75 <> b76 <> b77 <> b78 <> b79 <> b80 <> b81 <> b82 <> b83 <> b84 <> b85 <> b86 <> b87 <> b88 <> b89 <> Nil{}:          {==}        case b0 <> b1 <> b2 <> b3 <> b4 <> b5 <> b6 <> b7 <> b8 <> b9 <> b10 <> b11 <> b12 <> b13 <> b14 <> b15 <> b16 <> b17 <> b18 <> b19 <> b20 <> b21 <> b22 <> b23 <> b24 <> b25 <> b26 <> b27 <> b28 <> b29 <> b30 <> b31 <> b32 <> b33 <> b34 <> b35 <> b36 <> b37 <> b38 <> b39 <> b40 <> b41 <> b42 <> b43 <> b44 <> b45 <> b46 <> b47 <> b48 <> b49 <> b50 <> b51 <> b52 <> b53 <> b54 <> b55 <> b56 <> b57 <> b58 <> b59 <> b60 <> b61 <> b62 <> b63 <> b64 <> b65 <> b66 <> b67 <> b68 <> b69 <> b70 <> b71 <> b72 <> b73 <> b74 <> b75 <> b76 <> b77 <> b78 <> b79 <> b80 <> b81 <> b82 <> b83 <> b84 <> b85 <> b86 <> b87 <> b88 <> b89 <> b90 <> Nil{}:          {==}        case b0 <> b1 <> b2 <> b3 <> b4 <> b5 <> b6 <> b7 <> b8 <> b9 <> b10 <> b11 <> b12 <> b13 <> b14 <> b15 <> b16 <> b17 <> b18 <> b19 <> b20 <> b21 <> b22 <> b23 <> b24 <> b25 <> b26 <> b27 <> b28 <> b29 <> b30 <> b31 <> b32 <> b33 <> b34 <> b35 <> b36 <> b37 <> b38 <> b39 <> b40 <> b41 <> b42 <> b43 <> b44 <> b45 <> b46 <> b47 <> b48 <> b49 <> b50 <> b51 <> b52 <> b53 <> b54 <> b55 <> b56 <> b57 <> b58 <> b59 <> b60 <> b61 <> b62 <> b63 <> b64 <> b65 <> b66 <> b67 <> b68 <> b69 <> b70 <> b71 <> b72 <> b73 <> b74 <> b75 <> b76 <> b77 <> b78 <> b79 <> b80 <> b81 <> b82 <> b83 <> b84 <> b85 <> b86 <> b87 <> b88 <> b89 <> b90 <> b91 <> Nil{}:          {==}        case b0 <> b1 <> b2 <> b3 <> b4 <> b5 <> b6 <> b7 <> b8 <> b9 <> b10 <> b11 <> b12 <> b13 <> b14 <> b15 <> b16 <> b17 <> b18 <> b19 <> b20 <> b21 <> b22 <> b23 <> b24 <> b25 <> b26 <> b27 <> b28 <> b29 <> b30 <> b31 <> b32 <> b33 <> b34 <> b35 <> b36 <> b37 <> b38 <> b39 <> b40 <> b41 <> b42 <> b43 <> b44 <> b45 <> b46 <> b47 <> b48 <> b49 <> b50 <> b51 <> b52 <> b53 <> b54 <> b55 <> b56 <> b57 <> b58 <> b59 <> b60 <> b61 <> b62 <> b63 <> b64 <> b65 <> b66 <> b67 <> b68 <> b69 <> b70 <> b71 <> b72 <> b73 <> b74 <> b75 <> b76 <> b77 <> b78 <> b79 <> b80 <> b81 <> b82 <> b83 <> b84 <> b85 <> b86 <> b87 <> b88 <> b89 <> b90 <> b91 <> b92 <> Nil{}:          {==}        case b0 <> b1 <> b2 <> b3 <> b4 <> b5 <> b6 <> b7 <> b8 <> b9 <> b10 <> b11 <> b12 <> b13 <> b14 <> b15 <> b16 <> b17 <> b18 <> b19 <> b20 <> b21 <> b22 <> b23 <> b24 <> b25 <> b26 <> b27 <> b28 <> b29 <> b30 <> b31 <> b32 <> b33 <> b34 <> b35 <> b36 <> b37 <> b38 <> b39 <> b40 <> b41 <> b42 <> b43 <> b44 <> b45 <> b46 <> b47 <> b48 <> b49 <> b50 <> b51 <> b52 <> b53 <> b54 <> b55 <> b56 <> b57 <> b58 <> b59 <> b60 <> b61 <> b62 <> b63 <> b64 <> b65 <> b66 <> b67 <> b68 <> b69 <> b70 <> b71 <> b72 <> b73 <> b74 <> b75 <> b76 <> b77 <> b78 <> b79 <> b80 <> b81 <> b82 <> b83 <> b84 <> b85 <> b86 <> b87 <> b88 <> b89 <> b90 <> b91 <> b92 <> b93 <> Nil{}:          {==}        case b0 <> b1 <> b2 <> b3 <> b4 <> b5 <> b6 <> b7 <> b8 <> b9 <> b10 <> b11 <> b12 <> b13 <> b14 <> b15 <> b16 <> b17 <> b18 <> b19 <> b20 <> b21 <> b22 <> b23 <> b24 <> b25 <> b26 <> b27 <> b28 <> b29 <> b30 <> b31 <> b32 <> b33 <> b34 <> b35 <> b36 <> b37 <> b38 <> b39 <> b40 <> b41 <> b42 <> b43 <> b44 <> b45 <> b46 <> b47 <> b48 <> b49 <> b50 <> b51 <> b52 <> b53 <> b54 <> b55 <> b56 <> b57 <> b58 <> b59 <> b60 <> b61 <> b62 <> b63 <> b64 <> b65 <> b66 <> b67 <> b68 <> b69 <> b70 <> b71 <> b72 <> b73 <> b74 <> b75 <> b76 <> b77 <> b78 <> b79 <> b80 <> b81 <> b82 <> b83 <> b84 <> b85 <> b86 <> b87 <> b88 <> b89 <> b90 <> b91 <> b92 <> b93 <> b94 <> Nil{}:          {==}        case b0 <> b1 <> b2 <> b3 <> b4 <> b5 <> b6 <> b7 <> b8 <> b9 <> b10 <> b11 <> b12 <> b13 <> b14 <> b15 <> b16 <> b17 <> b18 <> b19 <> b20 <> b21 <> b22 <> b23 <> b24 <> b25 <> b26 <> b27 <> b28 <> b29 <> b30 <> b31 <> b32 <> b33 <> b34 <> b35 <> b36 <> b37 <> b38 <> b39 <> b40 <> b41 <> b42 <> b43 <> b44 <> b45 <> b46 <> b47 <> b48 <> b49 <> b50 <> b51 <> b52 <> b53 <> b54 <> b55 <> b56 <> b57 <> b58 <> b59 <> b60 <> b61 <> b62 <> b63 <> b64 <> b65 <> b66 <> b67 <> b68 <> b69 <> b70 <> b71 <> b72 <> b73 <> b74 <> b75 <> b76 <> b77 <> b78 <> b79 <> b80 <> b81 <> b82 <> b83 <> b84 <> b85 <> b86 <> b87 <> b88 <> b89 <> b90 <> b91 <> b92 <> b93 <> b94 <> b95 <> Nil{}:          {==}        case b0 <> b1 <> b2 <> b3 <> b4 <> b5 <> b6 <> b7 <> b8 <> b9 <> b10 <> b11 <> b12 <> b13 <> b14 <> b15 <> b16 <> b17 <> b18 <> b19 <> b20 <> b21 <> b22 <> b23 <> b24 <> b25 <> b26 <> b27 <> b28 <> b29 <> b30 <> b31 <> b32 <> b33 <> b34 <> b35 <> b36 <> b37 <> b38 <> b39 <> b40 <> b41 <> b42 <> b43 <> b44 <> b45 <> b46 <> b47 <> b48 <> b49 <> b50 <> b51 <> b52 <> b53 <> b54 <> b55 <> b56 <> b57 <> b58 <> b59 <> b60 <> b61 <> b62 <> b63 <> b64 <> b65 <> b66 <> b67 <> b68 <> b69 <> b70 <> b71 <> b72 <> b73 <> b74 <> b75 <> b76 <> b77 <> b78 <> b79 <> b80 <> b81 <> b82 <> b83 <> b84 <> b85 <> b86 <> b87 <> b88 <> b89 <> b90 <> b91 <> b92 <> b93 <> b94 <> b95 <> b96 <> Nil{}:          {==}        case b0 <> b1 <> b2 <> b3 <> b4 <> b5 <> b6 <> b7 <> b8 <> b9 <> b10 <> b11 <> b12 <> b13 <> b14 <> b15 <> b16 <> b17 <> b18 <> b19 <> b20 <> b21 <> b22 <> b23 <> b24 <> b25 <> b26 <> b27 <> b28 <> b29 <> b30 <> b31 <> b32 <> b33 <> b34 <> b35 <> b36 <> b37 <> b38 <> b39 <> b40 <> b41 <> b42 <> b43 <> b44 <> b45 <> b46 <> b47 <> b48 <> b49 <> b50 <> b51 <> b52 <> b53 <> b54 <> b55 <> b56 <> b57 <> b58 <> b59 <> b60 <> b61 <> b62 <> b63 <> b64 <> b65 <> b66 <> b67 <> b68 <> b69 <> b70 <> b71 <> b72 <> b73 <> b74 <> b75 <> b76 <> b77 <> b78 <> b79 <> b80 <> b81 <> b82 <> b83 <> b84 <> b85 <> b86 <> b87 <> b88 <> b89 <> b90 <> b91 <> b92 <> b93 <> b94 <> b95 <> b96 <> b97 <> Nil{}:          {==}        case b0 <> b1 <> b2 <> b3 <> b4 <> b5 <> b6 <> b7 <> b8 <> b9 <> b10 <> b11 <> b12 <> b13 <> b14 <> b15 <> b16 <> b17 <> b18 <> b19 <> b20 <> b21 <> b22 <> b23 <> b24 <> b25 <> b26 <> b27 <> b28 <> b29 <> b30 <> b31 <> b32 <> b33 <> b34 <> b35 <> b36 <> b37 <> b38 <> b39 <> b40 <> b41 <> b42 <> b43 <> b44 <> b45 <> b46 <> b47 <> b48 <> b49 <> b50 <> b51 <> b52 <> b53 <> b54 <> b55 <> b56 <> b57 <> b58 <> b59 <> b60 <> b61 <> b62 <> b63 <> b64 <> b65 <> b66 <> b67 <> b68 <> b69 <> b70 <> b71 <> b72 <> b73 <> b74 <> b75 <> b76 <> b77 <> b78 <> b79 <> b80 <> b81 <> b82 <> b83 <> b84 <> b85 <> b86 <> b87 <> b88 <> b89 <> b90 <> b91 <> b92 <> b93 <> b94 <> b95 <> b96 <> b97 <> b98 <> Nil{}:          {==}        case b0 <> b1 <> b2 <> b3 <> b4 <> b5 <> b6 <> b7 <> b8 <> b9 <> b10 <> b11 <> b12 <> b13 <> b14 <> b15 <> b16 <> b17 <> b18 <> b19 <> b20 <> b21 <> b22 <> b23 <> b24 <> b25 <> b26 <> b27 <> b28 <> b29 <> b30 <> b31 <> b32 <> b33 <> b34 <> b35 <> b36 <> b37 <> b38 <> b39 <> b40 <> b41 <> b42 <> b43 <> b44 <> b45 <> b46 <> b47 <> b48 <> b49 <> b50 <> b51 <> b52 <> b53 <> b54 <> b55 <> b56 <> b57 <> b58 <> b59 <> b60 <> b61 <> b62 <> b63 <> b64 <> b65 <> b66 <> b67 <> b68 <> b69 <> b70 <> b71 <> b72 <> b73 <> b74 <> b75 <> b76 <> b77 <> b78 <> b79 <> b80 <> b81 <> b82 <> b83 <> b84 <> b85 <> b86 <> b87 <> b88 <> b89 <> b90 <> b91 <> b92 <> b93 <> b94 <> b95 <> b96 <> b97 <> b98 <> b99 <> Nil{}:          {==}        case b0 <> b1 <> b2 <> b3 <> b4 <> b5 <> b6 <> b7 <> b8 <> b9 <> b10 <> b11 <> b12 <> b13 <> b14 <> b15 <> b16 <> b17 <> b18 <> b19 <> b20 <> b21 <> b22 <> b23 <> b24 <> b25 <> b26 <> b27 <> b28 <> b29 <> b30 <> b31 <> b32 <> b33 <> b34 <> b35 <> b36 <> b37 <> b38 <> b39 <> b40 <> b41 <> b42 <> b43 <> b44 <> b45 <> b46 <> b47 <> b48 <> b49 <> b50 <> b51 <> b52 <> b53 <> b54 <> b55 <> b56 <> b57 <> b58 <> b59 <> b60 <> b61 <> b62 <> b63 <> b64 <> b65 <> b66 <> b67 <> b68 <> b69 <> b70 <> b71 <> b72 <> b73 <> b74 <> b75 <> b76 <> b77 <> b78 <> b79 <> b80 <> b81 <> b82 <> b83 <> b84 <> b85 <> b86 <> b87 <> b88 <> b89 <> b90 <> b91 <> b92 <> b93 <> b94 <> b95 <> b96 <> b97 <> b98 <> b99 <> b100 <> Nil{}:          {==}        case b0 <> b1 <> b2 <> b3 <> b4 <> b5 <> b6 <> b7 <> b8 <> b9 <> b10 <> b11 <> b12 <> b13 <> b14 <> b15 <> b16 <> b17 <> b18 <> b19 <> b20 <> b21 <> b22 <> b23 <> b24 <> b25 <> b26 <> b27 <> b28 <> b29 <> b30 <> b31 <> b32 <> b33 <> b34 <> b35 <> b36 <> b37 <> b38 <> b39 <> b40 <> b41 <> b42 <> b43 <> b44 <> b45 <> b46 <> b47 <> b48 <> b49 <> b50 <> b51 <> b52 <> b53 <> b54 <> b55 <> b56 <> b57 <> b58 <> b59 <> b60 <> b61 <> b62 <> b63 <> b64 <> b65 <> b66 <> b67 <> b68 <> b69 <> b70 <> b71 <> b72 <> b73 <> b74 <> b75 <> b76 <> b77 <> b78 <> b79 <> b80 <> b81 <> b82 <> b83 <> b84 <> b85 <> b86 <> b87 <> b88 <> b89 <> b90 <> b91 <> b92 <> b93 <> b94 <> b95 <> b96 <> b97 <> b98 <> b99 <> b100 <> b101 <> Nil{}:          {==}        case b0 <> b1 <> b2 <> b3 <> b4 <> b5 <> b6 <> b7 <> b8 <> b9 <> b10 <> b11 <> b12 <> b13 <> b14 <> b15 <> b16 <> b17 <> b18 <> b19 <> b20 <> b21 <> b22 <> b23 <> b24 <> b25 <> b26 <> b27 <> b28 <> b29 <> b30 <> b31 <> b32 <> b33 <> b34 <> b35 <> b36 <> b37 <> b38 <> b39 <> b40 <> b41 <> b42 <> b43 <> b44 <> b45 <> b46 <> b47 <> b48 <> b49 <> b50 <> b51 <> b52 <> b53 <> b54 <> b55 <> b56 <> b57 <> b58 <> b59 <> b60 <> b61 <> b62 <> b63 <> b64 <> b65 <> b66 <> b67 <> b68 <> b69 <> b70 <> b71 <> b72 <> b73 <> b74 <> b75 <> b76 <> b77 <> b78 <> b79 <> b80 <> b81 <> b82 <> b83 <> b84 <> b85 <> b86 <> b87 <> b88 <> b89 <> b90 <> b91 <> b92 <> b93 <> b94 <> b95 <> b96 <> b97 <> b98 <> b99 <> b100 <> b101 <> b102 <> Nil{}:          {==}        case b0 <> b1 <> b2 <> b3 <> b4 <> b5 <> b6 <> b7 <> b8 <> b9 <> b10 <> b11 <> b12 <> b13 <> b14 <> b15 <> b16 <> b17 <> b18 <> b19 <> b20 <> b21 <> b22 <> b23 <> b24 <> b25 <> b26 <> b27 <> b28 <> b29 <> b30 <> b31 <> b32 <> b33 <> b34 <> b35 <> b36 <> b37 <> b38 <> b39 <> b40 <> b41 <> b42 <> b43 <> b44 <> b45 <> b46 <> b47 <> b48 <> b49 <> b50 <> b51 <> b52 <> b53 <> b54 <> b55 <> b56 <> b57 <> b58 <> b59 <> b60 <> b61 <> b62 <> b63 <> b64 <> b65 <> b66 <> b67 <> b68 <> b69 <> b70 <> b71 <> b72 <> b73 <> b74 <> b75 <> b76 <> b77 <> b78 <> b79 <> b80 <> b81 <> b82 <> b83 <> b84 <> b85 <> b86 <> b87 <> b88 <> b89 <> b90 <> b91 <> b92 <> b93 <> b94 <> b95 <> b96 <> b97 <> b98 <> b99 <> b100 <> b101 <> b102 <> b103 <> Nil{}:          {==}        case b0 <> b1 <> b2 <> b3 <> b4 <> b5 <> b6 <> b7 <> b8 <> b9 <> b10 <> b11 <> b12 <> b13 <> b14 <> b15 <> b16 <> b17 <> b18 <> b19 <> b20 <> b21 <> b22 <> b23 <> b24 <> b25 <> b26 <> b27 <> b28 <> b29 <> b30 <> b31 <> b32 <> b33 <> b34 <> b35 <> b36 <> b37 <> b38 <> b39 <> b40 <> b41 <> b42 <> b43 <> b44 <> b45 <> b46 <> b47 <> b48 <> b49 <> b50 <> b51 <> b52 <> b53 <> b54 <> b55 <> b56 <> b57 <> b58 <> b59 <> b60 <> b61 <> b62 <> b63 <> b64 <> b65 <> b66 <> b67 <> b68 <> b69 <> b70 <> b71 <> b72 <> b73 <> b74 <> b75 <> b76 <> b77 <> b78 <> b79 <> b80 <> b81 <> b82 <> b83 <> b84 <> b85 <> b86 <> b87 <> b88 <> b89 <> b90 <> b91 <> b92 <> b93 <> b94 <> b95 <> b96 <> b97 <> b98 <> b99 <> b100 <> b101 <> b102 <> b103 <> b104 <> Nil{}:          {==}        case b0 <> b1 <> b2 <> b3 <> b4 <> b5 <> b6 <> b7 <> b8 <> b9 <> b10 <> b11 <> b12 <> b13 <> b14 <> b15 <> b16 <> b17 <> b18 <> b19 <> b20 <> b21 <> b22 <> b23 <> b24 <> b25 <> b26 <> b27 <> b28 <> b29 <> b30 <> b31 <> b32 <> b33 <> b34 <> b35 <> b36 <> b37 <> b38 <> b39 <> b40 <> b41 <> b42 <> b43 <> b44 <> b45 <> b46 <> b47 <> b48 <> b49 <> b50 <> b51 <> b52 <> b53 <> b54 <> b55 <> b56 <> b57 <> b58 <> b59 <> b60 <> b61 <> b62 <> b63 <> b64 <> b65 <> b66 <> b67 <> b68 <> b69 <> b70 <> b71 <> b72 <> b73 <> b74 <> b75 <> b76 <> b77 <> b78 <> b79 <> b80 <> b81 <> b82 <> b83 <> b84 <> b85 <> b86 <> b87 <> b88 <> b89 <> b90 <> b91 <> b92 <> b93 <> b94 <> b95 <> b96 <> b97 <> b98 <> b99 <> b100 <> b101 <> b102 <> b103 <> b104 <> b105 <> Nil{}:          {==}        case b0 <> b1 <> b2 <> b3 <> b4 <> b5 <> b6 <> b7 <> b8 <> b9 <> b10 <> b11 <> b12 <> b13 <> b14 <> b15 <> b16 <> b17 <> b18 <> b19 <> b20 <> b21 <> b22 <> b23 <> b24 <> b25 <> b26 <> b27 <> b28 <> b29 <> b30 <> b31 <> b32 <> b33 <> b34 <> b35 <> b36 <> b37 <> b38 <> b39 <> b40 <> b41 <> b42 <> b43 <> b44 <> b45 <> b46 <> b47 <> b48 <> b49 <> b50 <> b51 <> b52 <> b53 <> b54 <> b55 <> b56 <> b57 <> b58 <> b59 <> b60 <> b61 <> b62 <> b63 <> b64 <> b65 <> b66 <> b67 <> b68 <> b69 <> b70 <> b71 <> b72 <> b73 <> b74 <> b75 <> b76 <> b77 <> b78 <> b79 <> b80 <> b81 <> b82 <> b83 <> b84 <> b85 <> b86 <> b87 <> b88 <> b89 <> b90 <> b91 <> b92 <> b93 <> b94 <> b95 <> b96 <> b97 <> b98 <> b99 <> b100 <> b101 <> b102 <> b103 <> b104 <> b105 <> b106 <> Nil{}:          {==}        case b0 <> b1 <> b2 <> b3 <> b4 <> b5 <> b6 <> b7 <> b8 <> b9 <> b10 <> b11 <> b12 <> b13 <> b14 <> b15 <> b16 <> b17 <> b18 <> b19 <> b20 <> b21 <> b22 <> b23 <> b24 <> b25 <> b26 <> b27 <> b28 <> b29 <> b30 <> b31 <> b32 <> b33 <> b34 <> b35 <> b36 <> b37 <> b38 <> b39 <> b40 <> b41 <> b42 <> b43 <> b44 <> b45 <> b46 <> b47 <> b48 <> b49 <> b50 <> b51 <> b52 <> b53 <> b54 <> b55 <> b56 <> b57 <> b58 <> b59 <> b60 <> b61 <> b62 <> b63 <> b64 <> b65 <> b66 <> b67 <> b68 <> b69 <> b70 <> b71 <> b72 <> b73 <> b74 <> b75 <> b76 <> b77 <> b78 <> b79 <> b80 <> b81 <> b82 <> b83 <> b84 <> b85 <> b86 <> b87 <> b88 <> b89 <> b90 <> b91 <> b92 <> b93 <> b94 <> b95 <> b96 <> b97 <> b98 <> b99 <> b100 <> b101 <> b102 <> b103 <> b104 <> b105 <> b106 <> b107 <> Nil{}:          {==}        case b0 <> b1 <> b2 <> b3 <> b4 <> b5 <> b6 <> b7 <> b8 <> b9 <> b10 <> b11 <> b12 <> b13 <> b14 <> b15 <> b16 <> b17 <> b18 <> b19 <> b20 <> b21 <> b22 <> b23 <> b24 <> b25 <> b26 <> b27 <> b28 <> b29 <> b30 <> b31 <> b32 <> b33 <> b34 <> b35 <> b36 <> b37 <> b38 <> b39 <> b40 <> b41 <> b42 <> b43 <> b44 <> b45 <> b46 <> b47 <> b48 <> b49 <> b50 <> b51 <> b52 <> b53 <> b54 <> b55 <> b56 <> b57 <> b58 <> b59 <> b60 <> b61 <> b62 <> b63 <> b64 <> b65 <> b66 <> b67 <> b68 <> b69 <> b70 <> b71 <> b72 <> b73 <> b74 <> b75 <> b76 <> b77 <> b78 <> b79 <> b80 <> b81 <> b82 <> b83 <> b84 <> b85 <> b86 <> b87 <> b88 <> b89 <> b90 <> b91 <> b92 <> b93 <> b94 <> b95 <> b96 <> b97 <> b98 <> b99 <> b100 <> b101 <> b102 <> b103 <> b104 <> b105 <> b106 <> b107 <> b108 <> Nil{}:          {==}        case b0 <> b1 <> b2 <> b3 <> b4 <> b5 <> b6 <> b7 <> b8 <> b9 <> b10 <> b11 <> b12 <> b13 <> b14 <> b15 <> b16 <> b17 <> b18 <> b19 <> b20 <> b21 <> b22 <> b23 <> b24 <> b25 <> b26 <> b27 <> b28 <> b29 <> b30 <> b31 <> b32 <> b33 <> b34 <> b35 <> b36 <> b37 <> b38 <> b39 <> b40 <> b41 <> b42 <> b43 <> b44 <> b45 <> b46 <> b47 <> b48 <> b49 <> b50 <> b51 <> b52 <> b53 <> b54 <> b55 <> b56 <> b57 <> b58 <> b59 <> b60 <> b61 <> b62 <> b63 <> b64 <> b65 <> b66 <> b67 <> b68 <> b69 <> b70 <> b71 <> b72 <> b73 <> b74 <> b75 <> b76 <> b77 <> b78 <> b79 <> b80 <> b81 <> b82 <> b83 <> b84 <> b85 <> b86 <> b87 <> b88 <> b89 <> b90 <> b91 <> b92 <> b93 <> b94 <> b95 <> b96 <> b97 <> b98 <> b99 <> b100 <> b101 <> b102 <> b103 <> b104 <> b105 <> b106 <> b107 <> b108 <> b109 <> Nil{}:          {==}        case b0 <> b1 <> b2 <> b3 <> b4 <> b5 <> b6 <> b7 <> b8 <> b9 <> b10 <> b11 <> b12 <> b13 <> b14 <> b15 <> b16 <> b17 <> b18 <> b19 <> b20 <> b21 <> b22 <> b23 <> b24 <> b25 <> b26 <> b27 <> b28 <> b29 <> b30 <> b31 <> b32 <> b33 <> b34 <> b35 <> b36 <> b37 <> b38 <> b39 <> b40 <> b41 <> b42 <> b43 <> b44 <> b45 <> b46 <> b47 <> b48 <> b49 <> b50 <> b51 <> b52 <> b53 <> b54 <> b55 <> b56 <> b57 <> b58 <> b59 <> b60 <> b61 <> b62 <> b63 <> b64 <> b65 <> b66 <> b67 <> b68 <> b69 <> b70 <> b71 <> b72 <> b73 <> b74 <> b75 <> b76 <> b77 <> b78 <> b79 <> b80 <> b81 <> b82 <> b83 <> b84 <> b85 <> b86 <> b87 <> b88 <> b89 <> b90 <> b91 <> b92 <> b93 <> b94 <> b95 <> b96 <> b97 <> b98 <> b99 <> b100 <> b101 <> b102 <> b103 <> b104 <> b105 <> b106 <> b107 <> b108 <> b109 <> b110 <> Nil{}:          {==}        case b0 <> b1 <> b2 <> b3 <> b4 <> b5 <> b6 <> b7 <> b8 <> b9 <> b10 <> b11 <> b12 <> b13 <> b14 <> b15 <> b16 <> b17 <> b18 <> b19 <> b20 <> b21 <> b22 <> b23 <> b24 <> b25 <> b26 <> b27 <> b28 <> b29 <> b30 <> b31 <> b32 <> b33 <> b34 <> b35 <> b36 <> b37 <> b38 <> b39 <> b40 <> b41 <> b42 <> b43 <> b44 <> b45 <> b46 <> b47 <> b48 <> b49 <> b50 <> b51 <> b52 <> b53 <> b54 <> b55 <> b56 <> b57 <> b58 <> b59 <> b60 <> b61 <> b62 <> b63 <> b64 <> b65 <> b66 <> b67 <> b68 <> b69 <> b70 <> b71 <> b72 <> b73 <> b74 <> b75 <> b76 <> b77 <> b78 <> b79 <> b80 <> b81 <> b82 <> b83 <> b84 <> b85 <> b86 <> b87 <> b88 <> b89 <> b90 <> b91 <> b92 <> b93 <> b94 <> b95 <> b96 <> b97 <> b98 <> b99 <> b100 <> b101 <> b102 <> b103 <> b104 <> b105 <> b106 <> b107 <> b108 <> b109 <> b110 <> b111 <> Nil{}:          {==}        case b0 <> b1 <> b2 <> b3 <> b4 <> b5 <> b6 <> b7 <> b8 <> b9 <> b10 <> b11 <> b12 <> b13 <> b14 <> b15 <> b16 <> b17 <> b18 <> b19 <> b20 <> b21 <> b22 <> b23 <> b24 <> b25 <> b26 <> b27 <> b28 <> b29 <> b30 <> b31 <> b32 <> b33 <> b34 <> b35 <> b36 <> b37 <> b38 <> b39 <> b40 <> b41 <> b42 <> b43 <> b44 <> b45 <> b46 <> b47 <> b48 <> b49 <> b50 <> b51 <> b52 <> b53 <> b54 <> b55 <> b56 <> b57 <> b58 <> b59 <> b60 <> b61 <> b62 <> b63 <> b64 <> b65 <> b66 <> b67 <> b68 <> b69 <> b70 <> b71 <> b72 <> b73 <> b74 <> b75 <> b76 <> b77 <> b78 <> b79 <> b80 <> b81 <> b82 <> b83 <> b84 <> b85 <> b86 <> b87 <> b88 <> b89 <> b90 <> b91 <> b92 <> b93 <> b94 <> b95 <> b96 <> b97 <> b98 <> b99 <> b100 <> b101 <> b102 <> b103 <> b104 <> b105 <> b106 <> b107 <> b108 <> b109 <> b110 <> b111 <> b112 <> Nil{}:          {==}        case b0 <> b1 <> b2 <> b3 <> b4 <> b5 <> b6 <> b7 <> b8 <> b9 <> b10 <> b11 <> b12 <> b13 <> b14 <> b15 <> b16 <> b17 <> b18 <> b19 <> b20 <> b21 <> b22 <> b23 <> b24 <> b25 <> b26 <> b27 <> b28 <> b29 <> b30 <> b31 <> b32 <> b33 <> b34 <> b35 <> b36 <> b37 <> b38 <> b39 <> b40 <> b41 <> b42 <> b43 <> b44 <> b45 <> b46 <> b47 <> b48 <> b49 <> b50 <> b51 <> b52 <> b53 <> b54 <> b55 <> b56 <> b57 <> b58 <> b59 <> b60 <> b61 <> b62 <> b63 <> b64 <> b65 <> b66 <> b67 <> b68 <> b69 <> b70 <> b71 <> b72 <> b73 <> b74 <> b75 <> b76 <> b77 <> b78 <> b79 <> b80 <> b81 <> b82 <> b83 <> b84 <> b85 <> b86 <> b87 <> b88 <> b89 <> b90 <> b91 <> b92 <> b93 <> b94 <> b95 <> b96 <> b97 <> b98 <> b99 <> b100 <> b101 <> b102 <> b103 <> b104 <> b105 <> b106 <> b107 <> b108 <> b109 <> b110 <> b111 <> b112 <> b113 <> Nil{}:          {==}        case b0 <> b1 <> b2 <> b3 <> b4 <> b5 <> b6 <> b7 <> b8 <> b9 <> b10 <> b11 <> b12 <> b13 <> b14 <> b15 <> b16 <> b17 <> b18 <> b19 <> b20 <> b21 <> b22 <> b23 <> b24 <> b25 <> b26 <> b27 <> b28 <> b29 <> b30 <> b31 <> b32 <> b33 <> b34 <> b35 <> b36 <> b37 <> b38 <> b39 <> b40 <> b41 <> b42 <> b43 <> b44 <> b45 <> b46 <> b47 <> b48 <> b49 <> b50 <> b51 <> b52 <> b53 <> b54 <> b55 <> b56 <> b57 <> b58 <> b59 <> b60 <> b61 <> b62 <> b63 <> b64 <> b65 <> b66 <> b67 <> b68 <> b69 <> b70 <> b71 <> b72 <> b73 <> b74 <> b75 <> b76 <> b77 <> b78 <> b79 <> b80 <> b81 <> b82 <> b83 <> b84 <> b85 <> b86 <> b87 <> b88 <> b89 <> b90 <> b91 <> b92 <> b93 <> b94 <> b95 <> b96 <> b97 <> b98 <> b99 <> b100 <> b101 <> b102 <> b103 <> b104 <> b105 <> b106 <> b107 <> b108 <> b109 <> b110 <> b111 <> b112 <> b113 <> b114 <> Nil{}:          {==}        case b0 <> b1 <> b2 <> b3 <> b4 <> b5 <> b6 <> b7 <> b8 <> b9 <> b10 <> b11 <> b12 <> b13 <> b14 <> b15 <> b16 <> b17 <> b18 <> b19 <> b20 <> b21 <> b22 <> b23 <> b24 <> b25 <> b26 <> b27 <> b28 <> b29 <> b30 <> b31 <> b32 <> b33 <> b34 <> b35 <> b36 <> b37 <> b38 <> b39 <> b40 <> b41 <> b42 <> b43 <> b44 <> b45 <> b46 <> b47 <> b48 <> b49 <> b50 <> b51 <> b52 <> b53 <> b54 <> b55 <> b56 <> b57 <> b58 <> b59 <> b60 <> b61 <> b62 <> b63 <> b64 <> b65 <> b66 <> b67 <> b68 <> b69 <> b70 <> b71 <> b72 <> b73 <> b74 <> b75 <> b76 <> b77 <> b78 <> b79 <> b80 <> b81 <> b82 <> b83 <> b84 <> b85 <> b86 <> b87 <> b88 <> b89 <> b90 <> b91 <> b92 <> b93 <> b94 <> b95 <> b96 <> b97 <> b98 <> b99 <> b100 <> b101 <> b102 <> b103 <> b104 <> b105 <> b106 <> b107 <> b108 <> b109 <> b110 <> b111 <> b112 <> b113 <> b114 <> b115 <> Nil{}:          {==}        case b0 <> b1 <> b2 <> b3 <> b4 <> b5 <> b6 <> b7 <> b8 <> b9 <> b10 <> b11 <> b12 <> b13 <> b14 <> b15 <> b16 <> b17 <> b18 <> b19 <> b20 <> b21 <> b22 <> b23 <> b24 <> b25 <> b26 <> b27 <> b28 <> b29 <> b30 <> b31 <> b32 <> b33 <> b34 <> b35 <> b36 <> b37 <> b38 <> b39 <> b40 <> b41 <> b42 <> b43 <> b44 <> b45 <> b46 <> b47 <> b48 <> b49 <> b50 <> b51 <> b52 <> b53 <> b54 <> b55 <> b56 <> b57 <> b58 <> b59 <> b60 <> b61 <> b62 <> b63 <> b64 <> b65 <> b66 <> b67 <> b68 <> b69 <> b70 <> b71 <> b72 <> b73 <> b74 <> b75 <> b76 <> b77 <> b78 <> b79 <> b80 <> b81 <> b82 <> b83 <> b84 <> b85 <> b86 <> b87 <> b88 <> b89 <> b90 <> b91 <> b92 <> b93 <> b94 <> b95 <> b96 <> b97 <> b98 <> b99 <> b100 <> b101 <> b102 <> b103 <> b104 <> b105 <> b106 <> b107 <> b108 <> b109 <> b110 <> b111 <> b112 <> b113 <> b114 <> b115 <> b116 <> Nil{}:          {==}        case b0 <> b1 <> b2 <> b3 <> b4 <> b5 <> b6 <> b7 <> b8 <> b9 <> b10 <> b11 <> b12 <> b13 <> b14 <> b15 <> b16 <> b17 <> b18 <> b19 <> b20 <> b21 <> b22 <> b23 <> b24 <> b25 <> b26 <> b27 <> b28 <> b29 <> b30 <> b31 <> b32 <> b33 <> b34 <> b35 <> b36 <> b37 <> b38 <> b39 <> b40 <> b41 <> b42 <> b43 <> b44 <> b45 <> b46 <> b47 <> b48 <> b49 <> b50 <> b51 <> b52 <> b53 <> b54 <> b55 <> b56 <> b57 <> b58 <> b59 <> b60 <> b61 <> b62 <> b63 <> b64 <> b65 <> b66 <> b67 <> b68 <> b69 <> b70 <> b71 <> b72 <> b73 <> b74 <> b75 <> b76 <> b77 <> b78 <> b79 <> b80 <> b81 <> b82 <> b83 <> b84 <> b85 <> b86 <> b87 <> b88 <> b89 <> b90 <> b91 <> b92 <> b93 <> b94 <> b95 <> b96 <> b97 <> b98 <> b99 <> b100 <> b101 <> b102 <> b103 <> b104 <> b105 <> b106 <> b107 <> b108 <> b109 <> b110 <> b111 <> b112 <> b113 <> b114 <> b115 <> b116 <> b117 <> Nil{}:          {==}        case b0 <> b1 <> b2 <> b3 <> b4 <> b5 <> b6 <> b7 <> b8 <> b9 <> b10 <> b11 <> b12 <> b13 <> b14 <> b15 <> b16 <> b17 <> b18 <> b19 <> b20 <> b21 <> b22 <> b23 <> b24 <> b25 <> b26 <> b27 <> b28 <> b29 <> b30 <> b31 <> b32 <> b33 <> b34 <> b35 <> b36 <> b37 <> b38 <> b39 <> b40 <> b41 <> b42 <> b43 <> b44 <> b45 <> b46 <> b47 <> b48 <> b49 <> b50 <> b51 <> b52 <> b53 <> b54 <> b55 <> b56 <> b57 <> b58 <> b59 <> b60 <> b61 <> b62 <> b63 <> b64 <> b65 <> b66 <> b67 <> b68 <> b69 <> b70 <> b71 <> b72 <> b73 <> b74 <> b75 <> b76 <> b77 <> b78 <> b79 <> b80 <> b81 <> b82 <> b83 <> b84 <> b85 <> b86 <> b87 <> b88 <> b89 <> b90 <> b91 <> b92 <> b93 <> b94 <> b95 <> b96 <> b97 <> b98 <> b99 <> b100 <> b101 <> b102 <> b103 <> b104 <> b105 <> b106 <> b107 <> b108 <> b109 <> b110 <> b111 <> b112 <> b113 <> b114 <> b115 <> b116 <> b117 <> b118 <> Nil{}:          {==}        case b0 <> b1 <> b2 <> b3 <> b4 <> b5 <> b6 <> b7 <> b8 <> b9 <> b10 <> b11 <> b12 <> b13 <> b14 <> b15 <> b16 <> b17 <> b18 <> b19 <> b20 <> b21 <> b22 <> b23 <> b24 <> b25 <> b26 <> b27 <> b28 <> b29 <> b30 <> b31 <> b32 <> b33 <> b34 <> b35 <> b36 <> b37 <> b38 <> b39 <> b40 <> b41 <> b42 <> b43 <> b44 <> b45 <> b46 <> b47 <> b48 <> b49 <> b50 <> b51 <> b52 <> b53 <> b54 <> b55 <> b56 <> b57 <> b58 <> b59 <> b60 <> b61 <> b62 <> b63 <> b64 <> b65 <> b66 <> b67 <> b68 <> b69 <> b70 <> b71 <> b72 <> b73 <> b74 <> b75 <> b76 <> b77 <> b78 <> b79 <> b80 <> b81 <> b82 <> b83 <> b84 <> b85 <> b86 <> b87 <> b88 <> b89 <> b90 <> b91 <> b92 <> b93 <> b94 <> b95 <> b96 <> b97 <> b98 <> b99 <> b100 <> b101 <> b102 <> b103 <> b104 <> b105 <> b106 <> b107 <> b108 <> b109 <> b110 <> b111 <> b112 <> b113 <> b114 <> b115 <> b116 <> b117 <> b118 <> b119 <> Nil{}:          {==}        case b0 <> b1 <> b2 <> b3 <> b4 <> b5 <> b6 <> b7 <> b8 <> b9 <> b10 <> b11 <> b12 <> b13 <> b14 <> b15 <> b16 <> b17 <> b18 <> b19 <> b20 <> b21 <> b22 <> b23 <> b24 <> b25 <> b26 <> b27 <> b28 <> b29 <> b30 <> b31 <> b32 <> b33 <> b34 <> b35 <> b36 <> b37 <> b38 <> b39 <> b40 <> b41 <> b42 <> b43 <> b44 <> b45 <> b46 <> b47 <> b48 <> b49 <> b50 <> b51 <> b52 <> b53 <> b54 <> b55 <> b56 <> b57 <> b58 <> b59 <> b60 <> b61 <> b62 <> b63 <> b64 <> b65 <> b66 <> b67 <> b68 <> b69 <> b70 <> b71 <> b72 <> b73 <> b74 <> b75 <> b76 <> b77 <> b78 <> b79 <> b80 <> b81 <> b82 <> b83 <> b84 <> b85 <> b86 <> b87 <> b88 <> b89 <> b90 <> b91 <> b92 <> b93 <> b94 <> b95 <> b96 <> b97 <> b98 <> b99 <> b100 <> b101 <> b102 <> b103 <> b104 <> b105 <> b106 <> b107 <> b108 <> b109 <> b110 <> b111 <> b112 <> b113 <> b114 <> b115 <> b116 <> b117 <> b118 <> b119 <> b120 <> Nil{}:          {==}        case b0 <> b1 <> b2 <> b3 <> b4 <> b5 <> b6 <> b7 <> b8 <> b9 <> b10 <> b11 <> b12 <> b13 <> b14 <> b15 <> b16 <> b17 <> b18 <> b19 <> b20 <> b21 <> b22 <> b23 <> b24 <> b25 <> b26 <> b27 <> b28 <> b29 <> b30 <> b31 <> b32 <> b33 <> b34 <> b35 <> b36 <> b37 <> b38 <> b39 <> b40 <> b41 <> b42 <> b43 <> b44 <> b45 <> b46 <> b47 <> b48 <> b49 <> b50 <> b51 <> b52 <> b53 <> b54 <> b55 <> b56 <> b57 <> b58 <> b59 <> b60 <> b61 <> b62 <> b63 <> b64 <> b65 <> b66 <> b67 <> b68 <> b69 <> b70 <> b71 <> b72 <> b73 <> b74 <> b75 <> b76 <> b77 <> b78 <> b79 <> b80 <> b81 <> b82 <> b83 <> b84 <> b85 <> b86 <> b87 <> b88 <> b89 <> b90 <> b91 <> b92 <> b93 <> b94 <> b95 <> b96 <> b97 <> b98 <> b99 <> b100 <> b101 <> b102 <> b103 <> b104 <> b105 <> b106 <> b107 <> b108 <> b109 <> b110 <> b111 <> b112 <> b113 <> b114 <> b115 <> b116 <> b117 <> b118 <> b119 <> b120 <> b121 <> Nil{}:          {==}        case b0 <> b1 <> b2 <> b3 <> b4 <> b5 <> b6 <> b7 <> b8 <> b9 <> b10 <> b11 <> b12 <> b13 <> b14 <> b15 <> b16 <> b17 <> b18 <> b19 <> b20 <> b21 <> b22 <> b23 <> b24 <> b25 <> b26 <> b27 <> b28 <> b29 <> b30 <> b31 <> b32 <> b33 <> b34 <> b35 <> b36 <> b37 <> b38 <> b39 <> b40 <> b41 <> b42 <> b43 <> b44 <> b45 <> b46 <> b47 <> b48 <> b49 <> b50 <> b51 <> b52 <> b53 <> b54 <> b55 <> b56 <> b57 <> b58 <> b59 <> b60 <> b61 <> b62 <> b63 <> b64 <> b65 <> b66 <> b67 <> b68 <> b69 <> b70 <> b71 <> b72 <> b73 <> b74 <> b75 <> b76 <> b77 <> b78 <> b79 <> b80 <> b81 <> b82 <> b83 <> b84 <> b85 <> b86 <> b87 <> b88 <> b89 <> b90 <> b91 <> b92 <> b93 <> b94 <> b95 <> b96 <> b97 <> b98 <> b99 <> b100 <> b101 <> b102 <> b103 <> b104 <> b105 <> b106 <> b107 <> b108 <> b109 <> b110 <> b111 <> b112 <> b113 <> b114 <> b115 <> b116 <> b117 <> b118 <> b119 <> b120 <> b121 <> b122 <> Nil{}:          {==}        case b0 <> b1 <> b2 <> b3 <> b4 <> b5 <> b6 <> b7 <> b8 <> b9 <> b10 <> b11 <> b12 <> b13 <> b14 <> b15 <> b16 <> b17 <> b18 <> b19 <> b20 <> b21 <> b22 <> b23 <> b24 <> b25 <> b26 <> b27 <> b28 <> b29 <> b30 <> b31 <> b32 <> b33 <> b34 <> b35 <> b36 <> b37 <> b38 <> b39 <> b40 <> b41 <> b42 <> b43 <> b44 <> b45 <> b46 <> b47 <> b48 <> b49 <> b50 <> b51 <> b52 <> b53 <> b54 <> b55 <> b56 <> b57 <> b58 <> b59 <> b60 <> b61 <> b62 <> b63 <> b64 <> b65 <> b66 <> b67 <> b68 <> b69 <> b70 <> b71 <> b72 <> b73 <> b74 <> b75 <> b76 <> b77 <> b78 <> b79 <> b80 <> b81 <> b82 <> b83 <> b84 <> b85 <> b86 <> b87 <> b88 <> b89 <> b90 <> b91 <> b92 <> b93 <> b94 <> b95 <> b96 <> b97 <> b98 <> b99 <> b100 <> b101 <> b102 <> b103 <> b104 <> b105 <> b106 <> b107 <> b108 <> b109 <> b110 <> b111 <> b112 <> b113 <> b114 <> b115 <> b116 <> b117 <> b118 <> b119 <> b120 <> b121 <> b122 <> b123 <> Nil{}:          {==}        case b0 <> b1 <> b2 <> b3 <> b4 <> b5 <> b6 <> b7 <> b8 <> b9 <> b10 <> b11 <> b12 <> b13 <> b14 <> b15 <> b16 <> b17 <> b18 <> b19 <> b20 <> b21 <> b22 <> b23 <> b24 <> b25 <> b26 <> b27 <> b28 <> b29 <> b30 <> b31 <> b32 <> b33 <> b34 <> b35 <> b36 <> b37 <> b38 <> b39 <> b40 <> b41 <> b42 <> b43 <> b44 <> b45 <> b46 <> b47 <> b48 <> b49 <> b50 <> b51 <> b52 <> b53 <> b54 <> b55 <> b56 <> b57 <> b58 <> b59 <> b60 <> b61 <> b62 <> b63 <> b64 <> b65 <> b66 <> b67 <> b68 <> b69 <> b70 <> b71 <> b72 <> b73 <> b74 <> b75 <> b76 <> b77 <> b78 <> b79 <> b80 <> b81 <> b82 <> b83 <> b84 <> b85 <> b86 <> b87 <> b88 <> b89 <> b90 <> b91 <> b92 <> b93 <> b94 <> b95 <> b96 <> b97 <> b98 <> b99 <> b100 <> b101 <> b102 <> b103 <> b104 <> b105 <> b106 <> b107 <> b108 <> b109 <> b110 <> b111 <> b112 <> b113 <> b114 <> b115 <> b116 <> b117 <> b118 <> b119 <> b120 <> b121 <> b122 <> b123 <> b124 <> Nil{}:          {==}        case b0 <> b1 <> b2 <> b3 <> b4 <> b5 <> b6 <> b7 <> b8 <> b9 <> b10 <> b11 <> b12 <> b13 <> b14 <> b15 <> b16 <> b17 <> b18 <> b19 <> b20 <> b21 <> b22 <> b23 <> b24 <> b25 <> b26 <> b27 <> b28 <> b29 <> b30 <> b31 <> b32 <> b33 <> b34 <> b35 <> b36 <> b37 <> b38 <> b39 <> b40 <> b41 <> b42 <> b43 <> b44 <> b45 <> b46 <> b47 <> b48 <> b49 <> b50 <> b51 <> b52 <> b53 <> b54 <> b55 <> b56 <> b57 <> b58 <> b59 <> b60 <> b61 <> b62 <> b63 <> b64 <> b65 <> b66 <> b67 <> b68 <> b69 <> b70 <> b71 <> b72 <> b73 <> b74 <> b75 <> b76 <> b77 <> b78 <> b79 <> b80 <> b81 <> b82 <> b83 <> b84 <> b85 <> b86 <> b87 <> b88 <> b89 <> b90 <> b91 <> b92 <> b93 <> b94 <> b95 <> b96 <> b97 <> b98 <> b99 <> b100 <> b101 <> b102 <> b103 <> b104 <> b105 <> b106 <> b107 <> b108 <> b109 <> b110 <> b111 <> b112 <> b113 <> b114 <> b115 <> b116 <> b117 <> b118 <> b119 <> b120 <> b121 <> b122 <> b123 <> b124 <> b125 <> Nil{}:          {==}        case b0 <> b1 <> b2 <> b3 <> b4 <> b5 <> b6 <> b7 <> b8 <> b9 <> b10 <> b11 <> b12 <> b13 <> b14 <> b15 <> b16 <> b17 <> b18 <> b19 <> b20 <> b21 <> b22 <> b23 <> b24 <> b25 <> b26 <> b27 <> b28 <> b29 <> b30 <> b31 <> b32 <> b33 <> b34 <> b35 <> b36 <> b37 <> b38 <> b39 <> b40 <> b41 <> b42 <> b43 <> b44 <> b45 <> b46 <> b47 <> b48 <> b49 <> b50 <> b51 <> b52 <> b53 <> b54 <> b55 <> b56 <> b57 <> b58 <> b59 <> b60 <> b61 <> b62 <> b63 <> b64 <> b65 <> b66 <> b67 <> b68 <> b69 <> b70 <> b71 <> b72 <> b73 <> b74 <> b75 <> b76 <> b77 <> b78 <> b79 <> b80 <> b81 <> b82 <> b83 <> b84 <> b85 <> b86 <> b87 <> b88 <> b89 <> b90 <> b91 <> b92 <> b93 <> b94 <> b95 <> b96 <> b97 <> b98 <> b99 <> b100 <> b101 <> b102 <> b103 <> b104 <> b105 <> b106 <> b107 <> b108 <> b109 <> b110 <> b111 <> b112 <> b113 <> b114 <> b115 <> b116 <> b117 <> b118 <> b119 <> b120 <> b121 <> b122 <> b123 <> b124 <> b125 <> b126 <> Nil{}:          {==}        case b0 <> b1 <> b2 <> b3 <> b4 <> b5 <> b6 <> b7 <> b8 <> b9 <> b10 <> b11 <> b12 <> b13 <> b14 <> b15 <> b16 <> b17 <> b18 <> b19 <> b20 <> b21 <> b22 <> b23 <> b24 <> b25 <> b26 <> b27 <> b28 <> b29 <> b30 <> b31 <> b32 <> b33 <> b34 <> b35 <> b36 <> b37 <> b38 <> b39 <> b40 <> b41 <> b42 <> b43 <> b44 <> b45 <> b46 <> b47 <> b48 <> b49 <> b50 <> b51 <> b52 <> b53 <> b54 <> b55 <> b56 <> b57 <> b58 <> b59 <> b60 <> b61 <> b62 <> b63 <> b64 <> b65 <> b66 <> b67 <> b68 <> b69 <> b70 <> b71 <> b72 <> b73 <> b74 <> b75 <> b76 <> b77 <> b78 <> b79 <> b80 <> b81 <> b82 <> b83 <> b84 <> b85 <> b86 <> b87 <> b88 <> b89 <> b90 <> b91 <> b92 <> b93 <> b94 <> b95 <> b96 <> b97 <> b98 <> b99 <> b100 <> b101 <> b102 <> b103 <> b104 <> b105 <> b106 <> b107 <> b108 <> b109 <> b110 <> b111 <> b112 <> b113 <> b114 <> b115 <> b116 <> b117 <> b118 <> b119 <> b120 <> b121 <> b122 <> b123 <> b124 <> b125 <> b126 <> b127 <> Nil{}:          {==}        case b0 <> b1 <> b2 <> b3 <> b4 <> b5 <> b6 <> b7 <> b8 <> b9 <> b10 <> b11 <> b12 <> b13 <> b14 <> b15 <> b16 <> b17 <> b18 <> b19 <> b20 <> b21 <> b22 <> b23 <> b24 <> b25 <> b26 <> b27 <> b28 <> b29 <> b30 <> b31 <> b32 <> b33 <> b34 <> b35 <> b36 <> b37 <> b38 <> b39 <> b40 <> b41 <> b42 <> b43 <> b44 <> b45 <> b46 <> b47 <> b48 <> b49 <> b50 <> b51 <> b52 <> b53 <> b54 <> b55 <> b56 <> b57 <> b58 <> b59 <> b60 <> b61 <> b62 <> b63 <> b64 <> b65 <> b66 <> b67 <> b68 <> b69 <> b70 <> b71 <> b72 <> b73 <> b74 <> b75 <> b76 <> b77 <> b78 <> b79 <> b80 <> b81 <> b82 <> b83 <> b84 <> b85 <> b86 <> b87 <> b88 <> b89 <> b90 <> b91 <> b92 <> b93 <> b94 <> b95 <> b96 <> b97 <> b98 <> b99 <> b100 <> b101 <> b102 <> b103 <> b104 <> b105 <> b106 <> b107 <> b108 <> b109 <> b110 <> b111 <> b112 <> b113 <> b114 <> b115 <> b116 <> b117 <> b118 <> b119 <> b120 <> b121 <> b122 <> b123 <> b124 <> b125 <> b126 <> b127 <> b128 <> Nil{}:          {==}        case b0 <> b1 <> b2 <> b3 <> b4 <> b5 <> b6 <> b7 <> b8 <> b9 <> b10 <> b11 <> b12 <> b13 <> b14 <> b15 <> b16 <> b17 <> b18 <> b19 <> b20 <> b21 <> b22 <> b23 <> b24 <> b25 <> b26 <> b27 <> b28 <> b29 <> b30 <> b31 <> b32 <> b33 <> b34 <> b35 <> b36 <> b37 <> b38 <> b39 <> b40 <> b41 <> b42 <> b43 <> b44 <> b45 <> b46 <> b47 <> b48 <> b49 <> b50 <> b51 <> b52 <> b53 <> b54 <> b55 <> b56 <> b57 <> b58 <> b59 <> b60 <> b61 <> b62 <> b63 <> b64 <> b65 <> b66 <> b67 <> b68 <> b69 <> b70 <> b71 <> b72 <> b73 <> b74 <> b75 <> b76 <> b77 <> b78 <> b79 <> b80 <> b81 <> b82 <> b83 <> b84 <> b85 <> b86 <> b87 <> b88 <> b89 <> b90 <> b91 <> b92 <> b93 <> b94 <> b95 <> b96 <> b97 <> b98 <> b99 <> b100 <> b101 <> b102 <> b103 <> b104 <> b105 <> b106 <> b107 <> b108 <> b109 <> b110 <> b111 <> b112 <> b113 <> b114 <> b115 <> b116 <> b117 <> b118 <> b119 <> b120 <> b121 <> b122 <> b123 <> b124 <> b125 <> b126 <> b127 <> b128 <> b129 <> Nil{}:          {==}        case b0 <> b1 <> b2 <> b3 <> b4 <> b5 <> b6 <> b7 <> b8 <> b9 <> b10 <> b11 <> b12 <> b13 <> b14 <> b15 <> b16 <> b17 <> b18 <> b19 <> b20 <> b21 <> b22 <> b23 <> b24 <> b25 <> b26 <> b27 <> b28 <> b29 <> b30 <> b31 <> b32 <> b33 <> b34 <> b35 <> b36 <> b37 <> b38 <> b39 <> b40 <> b41 <> b42 <> b43 <> b44 <> b45 <> b46 <> b47 <> b48 <> b49 <> b50 <> b51 <> b52 <> b53 <> b54 <> b55 <> b56 <> b57 <> b58 <> b59 <> b60 <> b61 <> b62 <> b63 <> b64 <> b65 <> b66 <> b67 <> b68 <> b69 <> b70 <> b71 <> b72 <> b73 <> b74 <> b75 <> b76 <> b77 <> b78 <> b79 <> b80 <> b81 <> b82 <> b83 <> b84 <> b85 <> b86 <> b87 <> b88 <> b89 <> b90 <> b91 <> b92 <> b93 <> b94 <> b95 <> b96 <> b97 <> b98 <> b99 <> b100 <> b101 <> b102 <> b103 <> b104 <> b105 <> b106 <> b107 <> b108 <> b109 <> b110 <> b111 <> b112 <> b113 <> b114 <> b115 <> b116 <> b117 <> b118 <> b119 <> b120 <> b121 <> b122 <> b123 <> b124 <> b125 <> b126 <> b127 <> b128 <> b129 <> b130 <> Nil{}:          {==}        case b0 <> b1 <> b2 <> b3 <> b4 <> b5 <> b6 <> b7 <> b8 <> b9 <> b10 <> b11 <> b12 <> b13 <> b14 <> b15 <> b16 <> b17 <> b18 <> b19 <> b20 <> b21 <> b22 <> b23 <> b24 <> b25 <> b26 <> b27 <> b28 <> b29 <> b30 <> b31 <> b32 <> b33 <> b34 <> b35 <> b36 <> b37 <> b38 <> b39 <> b40 <> b41 <> b42 <> b43 <> b44 <> b45 <> b46 <> b47 <> b48 <> b49 <> b50 <> b51 <> b52 <> b53 <> b54 <> b55 <> b56 <> b57 <> b58 <> b59 <> b60 <> b61 <> b62 <> b63 <> b64 <> b65 <> b66 <> b67 <> b68 <> b69 <> b70 <> b71 <> b72 <> b73 <> b74 <> b75 <> b76 <> b77 <> b78 <> b79 <> b80 <> b81 <> b82 <> b83 <> b84 <> b85 <> b86 <> b87 <> b88 <> b89 <> b90 <> b91 <> b92 <> b93 <> b94 <> b95 <> b96 <> b97 <> b98 <> b99 <> b100 <> b101 <> b102 <> b103 <> b104 <> b105 <> b106 <> b107 <> b108 <> b109 <> b110 <> b111 <> b112 <> b113 <> b114 <> b115 <> b116 <> b117 <> b118 <> b119 <> b120 <> b121 <> b122 <> b123 <> b124 <> b125 <> b126 <> b127 <> b128 <> b129 <> b130 <> b131 <> Nil{}:          {==}        case b0 <> b1 <> b2 <> b3 <> b4 <> b5 <> b6 <> b7 <> b8 <> b9 <> b10 <> b11 <> b12 <> b13 <> b14 <> b15 <> b16 <> b17 <> b18 <> b19 <> b20 <> b21 <> b22 <> b23 <> b24 <> b25 <> b26 <> b27 <> b28 <> b29 <> b30 <> b31 <> b32 <> b33 <> b34 <> b35 <> b36 <> b37 <> b38 <> b39 <> b40 <> b41 <> b42 <> b43 <> b44 <> b45 <> b46 <> b47 <> b48 <> b49 <> b50 <> b51 <> b52 <> b53 <> b54 <> b55 <> b56 <> b57 <> b58 <> b59 <> b60 <> b61 <> b62 <> b63 <> b64 <> b65 <> b66 <> b67 <> b68 <> b69 <> b70 <> b71 <> b72 <> b73 <> b74 <> b75 <> b76 <> b77 <> b78 <> b79 <> b80 <> b81 <> b82 <> b83 <> b84 <> b85 <> b86 <> b87 <> b88 <> b89 <> b90 <> b91 <> b92 <> b93 <> b94 <> b95 <> b96 <> b97 <> b98 <> b99 <> b100 <> b101 <> b102 <> b103 <> b104 <> b105 <> b106 <> b107 <> b108 <> b109 <> b110 <> b111 <> b112 <> b113 <> b114 <> b115 <> b116 <> b117 <> b118 <> b119 <> b120 <> b121 <> b122 <> b123 <> b124 <> b125 <> b126 <> b127 <> b128 <> b129 <> b130 <> b131 <> b132 <> Nil{}:          {==}        case b0 <> b1 <> b2 <> b3 <> b4 <> b5 <> b6 <> b7 <> b8 <> b9 <> b10 <> b11 <> b12 <> b13 <> b14 <> b15 <> b16 <> b17 <> b18 <> b19 <> b20 <> b21 <> b22 <> b23 <> b24 <> b25 <> b26 <> b27 <> b28 <> b29 <> b30 <> b31 <> b32 <> b33 <> b34 <> b35 <> b36 <> b37 <> b38 <> b39 <> b40 <> b41 <> b42 <> b43 <> b44 <> b45 <> b46 <> b47 <> b48 <> b49 <> b50 <> b51 <> b52 <> b53 <> b54 <> b55 <> b56 <> b57 <> b58 <> b59 <> b60 <> b61 <> b62 <> b63 <> b64 <> b65 <> b66 <> b67 <> b68 <> b69 <> b70 <> b71 <> b72 <> b73 <> b74 <> b75 <> b76 <> b77 <> b78 <> b79 <> b80 <> b81 <> b82 <> b83 <> b84 <> b85 <> b86 <> b87 <> b88 <> b89 <> b90 <> b91 <> b92 <> b93 <> b94 <> b95 <> b96 <> b97 <> b98 <> b99 <> b100 <> b101 <> b102 <> b103 <> b104 <> b105 <> b106 <> b107 <> b108 <> b109 <> b110 <> b111 <> b112 <> b113 <> b114 <> b115 <> b116 <> b117 <> b118 <> b119 <> b120 <> b121 <> b122 <> b123 <> b124 <> b125 <> b126 <> b127 <> b128 <> b129 <> b130 <> b131 <> b132 <> b133 <> Nil{}:          {==}        case b0 <> b1 <> b2 <> b3 <> b4 <> b5 <> b6 <> b7 <> b8 <> b9 <> b10 <> b11 <> b12 <> b13 <> b14 <> b15 <> b16 <> b17 <> b18 <> b19 <> b20 <> b21 <> b22 <> b23 <> b24 <> b25 <> b26 <> b27 <> b28 <> b29 <> b30 <> b31 <> b32 <> b33 <> b34 <> b35 <> b36 <> b37 <> b38 <> b39 <> b40 <> b41 <> b42 <> b43 <> b44 <> b45 <> b46 <> b47 <> b48 <> b49 <> b50 <> b51 <> b52 <> b53 <> b54 <> b55 <> b56 <> b57 <> b58 <> b59 <> b60 <> b61 <> b62 <> b63 <> b64 <> b65 <> b66 <> b67 <> b68 <> b69 <> b70 <> b71 <> b72 <> b73 <> b74 <> b75 <> b76 <> b77 <> b78 <> b79 <> b80 <> b81 <> b82 <> b83 <> b84 <> b85 <> b86 <> b87 <> b88 <> b89 <> b90 <> b91 <> b92 <> b93 <> b94 <> b95 <> b96 <> b97 <> b98 <> b99 <> b100 <> b101 <> b102 <> b103 <> b104 <> b105 <> b106 <> b107 <> b108 <> b109 <> b110 <> b111 <> b112 <> b113 <> b114 <> b115 <> b116 <> b117 <> b118 <> b119 <> b120 <> b121 <> b122 <> b123 <> b124 <> b125 <> b126 <> b127 <> b128 <> b129 <> b130 <> b131 <> b132 <> b133 <> b134 <> Nil{}:          {==}law step3_inv:  for +st: H.Sha3State  for +xs: List<&2, U32>  for +q: Nat  for +z: List<&2, U32>  {C3.absorb(C3.lanes(List.append(&2, U32, List.append(&2, U32, buf3(st), xs), z)), q, st3(st)) == C3.absorb(C3.lanes(List.append(&2, U32, buf3(H.step3(st, xs, q)), z)), q, st3(H.step3(st, xs, q))) : TK.State}def step3_inv(st, xs, q, z):  match st:    case H.St3{s, buf}:      absorb3_inv(List.length(&2, U32, List.append(&2, U32, buf, xs)), List.append(&2, U32, buf, xs), q, s, z)# The state after each chunk in turn.def fold3(cs: List<&2, List<&2, U32>>, +q: Nat, st: H.Sha3State) -> H.Sha3State:  match cs:    case Nil{}:      st    case c <> ct:      fold3(ct, q, H.step3(st, c, q))law fold3_inv:  for +cs: List<&2, List<&2, U32>>  for +q: Nat  for +st: H.Sha3State  for +z: List<&2, U32>  {C3.absorb(C3.lanes(List.append(&2, U32, List.append(&2, U32, buf3(st), List.concat(&2, U32, cs)), z)), q, st3(st)) == C3.absorb(C3.lanes(List.append(&2, U32, buf3(fold3(cs, q, st)), z)), q, st3(fold3(cs, q, st))) : TK.State}def fold3_inv(cs, q, st, z):  match cs:    case Nil{}:      %L.append_nil(buf3(st)) :        {C3.absorb(C3.lanes(List.append(&2, U32, List.append(&2, U32, buf3(st), Nil{}), z)), q, st3(st)) == C3.absorb(C3.lanes(List.append(&2, U32, _, z)), q, st3(st)) : TK.State}      {==}    case c <> ct:      +st2 = H.step3(st, c, q)      +m = List.concat(&2, U32, ct)      Equal.trans(TK.State,        C3.absorb(C3.lanes(List.append(&2, U32, List.append(&2, U32, buf3(st), List.append(&2, U32, c, m)), z)), q, st3(st)),        C3.absorb(C3.lanes(List.append(&2, U32, List.append(&2, U32, buf3(st), c), List.append(&2, U32, m, z))), q, st3(st)),        C3.absorb(C3.lanes(List.append(&2, U32, buf3(fold3(ct, q, st2)), z)), q, st3(fold3(ct, q, st2))),        Equal.cong(List<&2, U32>, TK.State, t => C3.absorb(C3.lanes(t), q, st3(st)),          List.append(&2, U32, List.append(&2, U32, buf3(st), List.append(&2, U32, c, m)), z), List.append(&2, U32, List.append(&2, U32, buf3(st), c), List.append(&2, U32, m, z)),          Equal.trans(List<&2, U32>, List.append(&2, U32, List.append(&2, U32, buf3(st), List.append(&2, U32, c, m)), z), List.append(&2, U32, List.append(&2, U32, List.append(&2, U32, buf3(st), c), m), z), List.append(&2, U32, List.append(&2, U32, buf3(st), c), List.append(&2, U32, m, z)),            Equal.cong(List<&2, U32>, List<&2, U32>, t => List.append(&2, U32, t, z),              List.append(&2, U32, buf3(st), List.append(&2, U32, c, m)), List.append(&2, U32, List.append(&2, U32, buf3(st), c), m), L.append_assoc_rev(buf3(st), c, m)),            L.append_assoc(List.append(&2, U32, buf3(st), c), m, z))),        Equal.trans(TK.State, C3.absorb(C3.lanes(List.append(&2, U32, List.append(&2, U32, buf3(st), c), List.append(&2, U32, m, z))), q, st3(st)), C3.absorb(C3.lanes(List.append(&2, U32, buf3(st2), List.append(&2, U32, m, z))), q, st3(st2)), C3.absorb(C3.lanes(List.append(&2, U32, buf3(fold3(ct, q, st2)), z)), q, st3(fold3(ct, q, st2))),          step3_inv(st, c, q, List.append(&2, U32, m, z)),          Equal.trans(TK.State, C3.absorb(C3.lanes(List.append(&2, U32, buf3(st2), List.append(&2, U32, m, z))), q, st3(st2)), C3.absorb(C3.lanes(List.append(&2, U32, List.append(&2, U32, buf3(st2), m), z)), q, st3(st2)), C3.absorb(C3.lanes(List.append(&2, U32, buf3(fold3(ct, q, st2)), z)), q, st3(fold3(ct, q, st2))),            Equal.cong(List<&2, U32>, TK.State, t => C3.absorb(C3.lanes(t), q, st3(st2)),              List.append(&2, U32, buf3(st2), List.append(&2, U32, m, z)), List.append(&2, U32, List.append(&2, U32, buf3(st2), m), z), L.append_assoc_rev(buf3(st2), m, z)),            fold3_inv(ct, q, st2, z))))law state3:  for +cs: List<&2, List<&2, U32>>  for +st: H.Sha3State  for +len: Nat  {H.fold(cs, H.Sha3H{st, len}) == H.Sha3H{fold3(cs, 24n, st), Nat.add(len, List.length(&2, U32, List.concat(&2, U32, cs)))} : H.Hasher}def state3(cs, st, len):  match cs:    case Nil{}:      Equal.cong(Nat, H.Hasher, t => H.Sha3H{st, t}, len, Nat.add(len, 0n),        Equal.sym(Nat, Nat.add(len, 0n), len, L.add_zero(len)))    case c <> ct:      +m = List.concat(&2, U32, ct)      %L.add_length(len, c, m) :        {H.fold(c <> ct, H.Sha3H{st, len}) == H.Sha3H{fold3(ct, 24n, H.step3(st, c, 24n)), _} : H.Hasher}      state3(ct, H.step3(st, c, 24n), Nat.add(len, List.length(&2, U32, c)))law finish3_eta:  for +st: H.Sha3State  for +len: Nat  for +q: Nat  {H.finish3(st, len, q) == C3.digest_bytes(C3.absorb(C3.lanes(List.append(&2, U32, buf3(st), C3.suffix(len))), q, st3(st))) : List<&2, U32>}def finish3_eta(st, len, q):  match st:    case H.St3{s, buf}:      {==}# digest(update_all(new, chunks)) is the padded block loop over concat(chunks).law incremental3:  for +cs: List<&2, List<&2, U32>>  {H.digest(H.update_all(H.new_sha3_256(), cs)) == C3.digest_bytes(C3.absorb(C3.lanes(List.append(&2, U32, List.concat(&2, U32, cs), C3.suffix(List.length(&2, U32, List.concat(&2, U32, cs))))), 24n, C3.zero())) : List<&2, U32>}def incremental3(cs):  +m = List.concat(&2, U32, cs)  +qs = fold3(cs, 24n, H.St3{C3.zero(), Nil{}})  %Equal.sym(H.Hasher, H.fold(cs, H.Sha3H{H.St3{C3.zero(), Nil{}}, 0n}), H.Sha3H{qs, List.length(&2, U32, m)},    state3(cs, H.St3{C3.zero(), Nil{}}, 0n)) :    {H.digest(_) == C3.digest_bytes(C3.absorb(C3.lanes(List.append(&2, U32, List.concat(&2, U32, cs), C3.suffix(List.length(&2, U32, List.concat(&2, U32, cs))))), 24n, C3.zero())) : List<&2, U32>}  %Equal.sym(List<&2, U32>, H.finish3(qs, List.length(&2, U32, m), 24n), C3.digest_bytes(C3.absorb(C3.lanes(List.append(&2, U32, buf3(qs), C3.suffix(List.length(&2, U32, m)))), 24n, st3(qs))),    finish3_eta(qs, List.length(&2, U32, m), 24n)) :    {_ == C3.digest_bytes(C3.absorb(C3.lanes(List.append(&2, U32, List.concat(&2, U32, cs), C3.suffix(List.length(&2, U32, List.concat(&2, U32, cs))))), 24n, C3.zero())) : List<&2, U32>}  Equal.cong(TK.State, List<&2, U32>, t => C3.digest_bytes(t),    C3.absorb(C3.lanes(List.append(&2, U32, buf3(qs), C3.suffix(List.length(&2, U32, m)))), 24n, st3(qs)), C3.absorb(C3.lanes(List.append(&2, U32, m, C3.suffix(List.length(&2, U32, m)))), 24n, C3.zero()),    Equal.sym(TK.State, C3.absorb(C3.lanes(List.append(&2, U32, m, C3.suffix(List.length(&2, U32, m)))), 24n, C3.zero()), C3.absorb(C3.lanes(List.append(&2, U32, buf3(qs), C3.suffix(List.length(&2, U32, m)))), 24n, st3(qs)), fold3_inv(cs, 24n, H.St3{C3.zero(), Nil{}}, C3.suffix(List.length(&2, U32, m)))))