Files
zeekayandHanzo Dev 7e5881bd30 cert: speak the certificate the other two implementations gossip
C++ already had a certificate, and it was a different object. The engine's
QuorumCert carries public keys and one aggregate signature and verifies in a
single pairing; the certificate Go assembles and Rust decodes carries node ids
and a signature per voter and verifies with one pairing each. Neither side
could read the other's bytes, so a C++ node could not check a certificate a Go
node produced, and the C++ figure for "verify a certificate" was timing a
predicate the other two do not run.

Adds the oracle's object: Cert, its wire codec at Go's 280-byte layout, and
Verify's clauses in Go's order, with a Registry that pays for a key's subgroup
check once at registration rather than once per verification — the work split
Go's verifier makes, and the split that makes a per-verify figure comparable.

The corpus grows the section it could not have: cert_wire.json pins the layout
field by field and the round-trip that makes a certificate an identity, and
cert_verify.json pins the predicate against real committees at n in {1,4,21,41}
with every refusal clause exercised — including a vote lifted from another
height, a signature over another vote, and an empty signature, all of which are
well-formed on the wire and are not finality.

The aggregate engine keeps its job as the local gate. Two names because they
are two things.

277 conformance checks pass, 13/13 ctest green.

Co-authored-by: Hanzo Dev <[email protected]>
2026-08-29 18:59:42 -07:00

103 lines
35 KiB
JSON

[
{
"block_id": "02b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1",
"canonical_id": "04cacacacacacacacacacacacacacacacacacacacacacacacacacacacacacaca",
"chain_id": "01c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1",
"execution_state_root": "06e5e5e5e5e5e5e5e5e5e5e5e5e5e5e5e5e5e5e5e5e5e5e5e5e5e5e5e5e5e5e5",
"height": 72623859790382856,
"length": 313,
"name": "wire/single",
"parent_canonical_id": "05cbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcb",
"parent_id": "03b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2",
"payload_root": "0770707070707070707070707070707070707070707070707070707070707070",
"qc_type": 1,
"round": 151653132,
"threshold": 1,
"tier": 2,
"validator_set_root": "0855555555555555555555555555555555555555555555555555555555555555",
"version": 3,
"vote_count": 1,
"wire": "0003010201c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c10102030405060708090a0b0c02b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b103b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b204cacacacacacacacacacacacacacacacacacacacacacacacacacacacacacaca05cbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcb06e5e5e5e5e5e5e5e5e5e5e5e5e5e5e5e5e5e5e5e5e5e5e5e5e5e5e5e5e5e5e5077070707070707070707070707070707070707070707070707070707070707008555555555555555555555555555555555555555555555555555555555555550000000100000001000000000000000100000000000000000000000001000000080102030405060708"
},
{
"block_id": "02b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1",
"canonical_id": "04cacacacacacacacacacacacacacacacacacacacacacacacacacacacacacaca",
"chain_id": "01c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1",
"execution_state_root": "06e5e5e5e5e5e5e5e5e5e5e5e5e5e5e5e5e5e5e5e5e5e5e5e5e5e5e5e5e5e5e5",
"height": 72623859790382856,
"length": 452,
"name": "wire/ragged_signatures",
"parent_canonical_id": "05cbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcb",
"parent_id": "03b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2",
"payload_root": "0770707070707070707070707070707070707070707070707070707070707070",
"qc_type": 1,
"round": 151653132,
"threshold": 3,
"tier": 3,
"validator_set_root": "0855555555555555555555555555555555555555555555555555555555555555",
"version": 3,
"vote_count": 3,
"wire": "0003010301c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c10102030405060708090a0b0c02b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b103b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b204cacacacacacacacacacacacacacacacacacacacacacacacacacacacacacaca05cbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcb06e5e5e5e5e5e5e5e5e5e5e5e5e5e5e5e5e5e5e5e5e5e5e5e5e5e5e5e5e5e5e507707070707070707070707070707070707070707070707070707070707070700855555555555555555555555555555555555555555555555555555555555555000000030000000300000000000000010000000000000000000000000100000060404142434445464748494a4b4c4d4e4f505152535455565758595a5b5c5d5e5f606162636465666768696a6b6c6d6e6f707172737475767778797a7b7c7d7e7f808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9f00000000000000020000000000000000000000000100000001aa00000000000000030000000000000000000000000100000000"
},
{
"block_id": "0000000000000000000000000000000000000000000000000000000000000000",
"canonical_id": "0000000000000000000000000000000000000000000000000000000000000000",
"chain_id": "0000000000000000000000000000000000000000000000000000000000000000",
"execution_state_root": "0000000000000000000000000000000000000000000000000000000000000000",
"height": 0,
"length": 305,
"name": "wire/zero_position_reject_vote",
"parent_canonical_id": "0000000000000000000000000000000000000000000000000000000000000000",
"parent_id": "0000000000000000000000000000000000000000000000000000000000000000",
"payload_root": "0000000000000000000000000000000000000000000000000000000000000000",
"qc_type": 1,
"round": 0,
"threshold": 1,
"tier": 2,
"validator_set_root": "0000000000000000000000000000000000000000000000000000000000000000",
"version": 3,
"vote_count": 1,
"wire": "0003010200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000100000000000000000000000000000000000000000000000000"
},
{
"block_id": "02b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1",
"canonical_id": "04cacacacacacacacacacacacacacacacacacacacacacacacacacacacacacaca",
"chain_id": "01c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1",
"execution_state_root": "06e5e5e5e5e5e5e5e5e5e5e5e5e5e5e5e5e5e5e5e5e5e5e5e5e5e5e5e5e5e5e5",
"height": 72623859790382856,
"length": 2216,
"name": "wire/committee_16",
"parent_canonical_id": "05cbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcb",
"parent_id": "03b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2",
"payload_root": "0770707070707070707070707070707070707070707070707070707070707070",
"qc_type": 1,
"round": 151653132,
"threshold": 16,
"tier": 3,
"validator_set_root": "0855555555555555555555555555555555555555555555555555555555555555",
"version": 3,
"vote_count": 16,
"wire": "0003010301c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c10102030405060708090a0b0c02b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b103b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b204cacacacacacacacacacacacacacacacacacacacacacacacacacacacacacaca05cbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcb06e5e5e5e5e5e5e5e5e5e5e5e5e5e5e5e5e5e5e5e5e5e5e5e5e5e5e5e5e5e5e5077070707070707070707070707070707070707070707070707070707070707008555555555555555555555555555555555555555555555555555555555555550000001000000010000000000000000100000000000000000000000001000000608470bc4c7a4204caea6d1aa2ae6aaa3fc2228e1d2c3d557259b43b616acb9920b875499fe9af08f3245fa601c3df3e4e1147f53559a73b70c4fb576c0ed16ea2d46d5232d8dde9ee87652da6bedcd31483580f97a574bbb77011cf903f9e4d3f00000000000000020000000000000000000000000100000060a309541b0be94dd2ba8590c2d8910450aa6efa21bfced060fd2e3340c62f8ac5db0d2a56c04d3c3a75a4f33817fd1ae408db99da4d75536ed7ea991d1e6c85164956e7114c7a1e5103bfed27ea03fb4355f61c8b92a34a717cad2e12fe79cf14000000000000000300000000000000000000000001000000609634be742c71d307e026a9c02e1affea58d8e14be7d21b3cc2d898ef73617b2a586a5c09d75518ec61a821e7a4d963b3134aa81e277fea44e34641b5aedcedc69d95ad86f107a11e9f8ae63002c6be0ecf965f1737411b0889a5486bd2648f7e00000000000000040000000000000000000000000100000060a89eb6f7668cd7d2adf7c031530b95573706e55d0745f9fd36e3cf3da173b77586e0701ee52fe91475af513e259ea30b0e990831b86f27aee370a8d26714f734def84d03d1cbfc063ff75b72a907022ee7757d34529079f78539af70edb950e5000000000000000500000000000000000000000001000000608c14446085dc81727e123fcffd6200ae56e5ee3a4c1eab790006ab23d1cf94972ed9d60ff61babe1660b19d3372aa2f915420cee05d3431e90d1b666e1215a0e0d2b62266cce32c762b818a0d74219af52fda1241a792e6acfad021319fca96a000000000000000600000000000000000000000001000000608516257d932c010045e0e5b79c5cf0d9df7c74df5a0d43766d46efda2789c4f587c376ca93aa0e7c0c34b82f424e9be40d2df4d46968c447923e877194b28e6677e0fb2cbf1bbf7f9182aeb8ed00834246cadbb0cb557e43e6fb2360cb05f4d9000000000000000700000000000000000000000001000000609012b9bb8bbf45e618a8791c215a7875f0369f38924767f63c90ff15a9068f2ba9d791e212cc0347b7ba49708a101d1a01f3625cf2244b762ca1c8e4f0182285b2cf59ffe78567adeb6a7b8a0e4c4dbac8ccb47e10b4a8558662e8e91c0380f40000000000000008000000000000000000000000010000006092a13404699c256e603d0f7acdc72876d839f4faa12c850de4b082bfd03aef10ddf290d46195a365d3e4e8bba9dcb1770fd6d57871cd0630e11d1dfc0fe9c1ceaf9b13946de4aa58abffff935b3e87a8de0e6106be1ace5dfa29f7f6daee772600000000000000090000000000000000000000000100000060b99e2249f045d1b0b38a60ff5009aae3951547bf1795bbb9b41b10c7c2d8f84e02192ea45af5690ea99d613af275200705ccf6772742177727429060232b1dc4862148755016cb23c3f13cdf46d627b434b1a9d289040c81e96157101e6dfb3e000000000000000a0000000000000000000000000100000060ac2ada4144afa7b35f7e969de0aaff545ee7218b788968b3a170cd438e4784e2b3ede1f6dbd78509c7e62cc37569cd531061931d18d2d67bf9558137b512fa1b115168fca6cbb060240deea8d9d5c73cbf383b2070439d64e83acf9fa4751004000000000000000b0000000000000000000000000100000060a4ce08b75d3c107725d74e552ab43e1640956dbb098a2f6b25c068769a80b289610e1a7ec2a36fbfdfdc13fc783ffcaa0ca5ca9b6f359276d90686cc97a48a45d7a4e21845a8216438be3f35d850b2b358532f404b823224aedb90ac93024511000000000000000c0000000000000000000000000100000060a344777a8f17a47180b45eced0eb05087bc207b3e42e6b9f5dee697c9c1d1f2785f2e4e5da7d3861827d1721acbf0bfe157a4835b8866fba1d255bedbc73f09a47d164ee05a945b2732369e5ef12e6660cb65510030ded38a3895ba5ea9dc568000000000000000d0000000000000000000000000100000060a22fbf785eac409c677cae999bc72c477d684fa77230f76c8f7c84799ab76906de0ad3ea4b5317a1259fb05dffa843cc00022d052b1b1bddd8fac67c1010ba300f1787517710f82e510d743469da0a7aaa37feb512a85e7ce774dcacdb5b1cfe000000000000000e0000000000000000000000000100000060adf465956dea3ab0f5aca9e802bf1dbd117ebebd0db322fe16b0422887133467ae7a15e18c005e8b0f3b2d78a6cbbc33148ca73a40dc41f8d20839e91d9a6ea3b81accee8b316cec64b6f1e120c8cabcac67889a91741e817e25bd2996170c45000000000000000f00000000000000000000000001000000608cf16ad6833e67ba13738487c9a5d8f1124c145eb80984940ae4587cbb16986192db479bb9e005688b6269ae43f52d9a17aabbe763994b96edc89658a694643a3792d61eb64e579d767796b568ccc07fef96f20c1b534170a43b3f53437a429600000000000000100000000000000000000000000100000060861decf3a85e3fb2248236aea7a32c274452b9ffd314ef421ca0b4ce977b5ed9ee3ce896fd3092b86aa73b9c191e9c860ec15bb7ac629e4733e8ce35b0200ed1ebb89917804cd51bf6a8e5fe4b2d80d49f8dacb387e0dd4e5aff75b91eeb9421"
},
{
"block_id": "02b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1",
"canonical_id": "04cacacacacacacacacacacacacacacacacacacacacacacacacacacacacacaca",
"chain_id": "01c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1",
"execution_state_root": "06e5e5e5e5e5e5e5e5e5e5e5e5e5e5e5e5e5e5e5e5e5e5e5e5e5e5e5e5e5e5e5",
"height": 72623859790382856,
"length": 12380,
"name": "wire/committee_100",
"parent_canonical_id": "05cbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcb",
"parent_id": "03b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2",
"payload_root": "0770707070707070707070707070707070707070707070707070707070707070",
"qc_type": 1,
"round": 151653132,
"threshold": 100,
"tier": 3,
"validator_set_root": "0855555555555555555555555555555555555555555555555555555555555555",
"version": 3,
"vote_count": 100,
"wire": "0003010301c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c10102030405060708090a0b0c02b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b1b103b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b204cacacacacacacacacacacacacacacacacacacacacacacacacacacacacacaca05cbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcbcb06e5e5e5e5e5e5e5e5e5e5e5e5e5e5e5e5e5e5e5e5e5e5e5e5e5e5e5e5e5e5e5077070707070707070707070707070707070707070707070707070707070707008555555555555555555555555555555555555555555555555555555555555550000006400000064000000000000000100000000000000000000000001000000608470bc4c7a4204caea6d1aa2ae6aaa3fc2228e1d2c3d557259b43b616acb9920b875499fe9af08f3245fa601c3df3e4e1147f53559a73b70c4fb576c0ed16ea2d46d5232d8dde9ee87652da6bedcd31483580f97a574bbb77011cf903f9e4d3f00000000000000020000000000000000000000000100000060a309541b0be94dd2ba8590c2d8910450aa6efa21bfced060fd2e3340c62f8ac5db0d2a56c04d3c3a75a4f33817fd1ae408db99da4d75536ed7ea991d1e6c85164956e7114c7a1e5103bfed27ea03fb4355f61c8b92a34a717cad2e12fe79cf14000000000000000300000000000000000000000001000000609634be742c71d307e026a9c02e1affea58d8e14be7d21b3cc2d898ef73617b2a586a5c09d75518ec61a821e7a4d963b3134aa81e277fea44e34641b5aedcedc69d95ad86f107a11e9f8ae63002c6be0ecf965f1737411b0889a5486bd2648f7e00000000000000040000000000000000000000000100000060a89eb6f7668cd7d2adf7c031530b95573706e55d0745f9fd36e3cf3da173b77586e0701ee52fe91475af513e259ea30b0e990831b86f27aee370a8d26714f734def84d03d1cbfc063ff75b72a907022ee7757d34529079f78539af70edb950e5000000000000000500000000000000000000000001000000608c14446085dc81727e123fcffd6200ae56e5ee3a4c1eab790006ab23d1cf94972ed9d60ff61babe1660b19d3372aa2f915420cee05d3431e90d1b666e1215a0e0d2b62266cce32c762b818a0d74219af52fda1241a792e6acfad021319fca96a000000000000000600000000000000000000000001000000608516257d932c010045e0e5b79c5cf0d9df7c74df5a0d43766d46efda2789c4f587c376ca93aa0e7c0c34b82f424e9be40d2df4d46968c447923e877194b28e6677e0fb2cbf1bbf7f9182aeb8ed00834246cadbb0cb557e43e6fb2360cb05f4d9000000000000000700000000000000000000000001000000609012b9bb8bbf45e618a8791c215a7875f0369f38924767f63c90ff15a9068f2ba9d791e212cc0347b7ba49708a101d1a01f3625cf2244b762ca1c8e4f0182285b2cf59ffe78567adeb6a7b8a0e4c4dbac8ccb47e10b4a8558662e8e91c0380f40000000000000008000000000000000000000000010000006092a13404699c256e603d0f7acdc72876d839f4faa12c850de4b082bfd03aef10ddf290d46195a365d3e4e8bba9dcb1770fd6d57871cd0630e11d1dfc0fe9c1ceaf9b13946de4aa58abffff935b3e87a8de0e6106be1ace5dfa29f7f6daee772600000000000000090000000000000000000000000100000060b99e2249f045d1b0b38a60ff5009aae3951547bf1795bbb9b41b10c7c2d8f84e02192ea45af5690ea99d613af275200705ccf6772742177727429060232b1dc4862148755016cb23c3f13cdf46d627b434b1a9d289040c81e96157101e6dfb3e000000000000000a0000000000000000000000000100000060ac2ada4144afa7b35f7e969de0aaff545ee7218b788968b3a170cd438e4784e2b3ede1f6dbd78509c7e62cc37569cd531061931d18d2d67bf9558137b512fa1b115168fca6cbb060240deea8d9d5c73cbf383b2070439d64e83acf9fa4751004000000000000000b0000000000000000000000000100000060a4ce08b75d3c107725d74e552ab43e1640956dbb098a2f6b25c068769a80b289610e1a7ec2a36fbfdfdc13fc783ffcaa0ca5ca9b6f359276d90686cc97a48a45d7a4e21845a8216438be3f35d850b2b358532f404b823224aedb90ac93024511000000000000000c0000000000000000000000000100000060a344777a8f17a47180b45eced0eb05087bc207b3e42e6b9f5dee697c9c1d1f2785f2e4e5da7d3861827d1721acbf0bfe157a4835b8866fba1d255bedbc73f09a47d164ee05a945b2732369e5ef12e6660cb65510030ded38a3895ba5ea9dc568000000000000000d0000000000000000000000000100000060a22fbf785eac409c677cae999bc72c477d684fa77230f76c8f7c84799ab76906de0ad3ea4b5317a1259fb05dffa843cc00022d052b1b1bddd8fac67c1010ba300f1787517710f82e510d743469da0a7aaa37feb512a85e7ce774dcacdb5b1cfe000000000000000e0000000000000000000000000100000060adf465956dea3ab0f5aca9e802bf1dbd117ebebd0db322fe16b0422887133467ae7a15e18c005e8b0f3b2d78a6cbbc33148ca73a40dc41f8d20839e91d9a6ea3b81accee8b316cec64b6f1e120c8cabcac67889a91741e817e25bd2996170c45000000000000000f00000000000000000000000001000000608cf16ad6833e67ba13738487c9a5d8f1124c145eb80984940ae4587cbb16986192db479bb9e005688b6269ae43f52d9a17aabbe763994b96edc89658a694643a3792d61eb64e579d767796b568ccc07fef96f20c1b534170a43b3f53437a429600000000000000100000000000000000000000000100000060861decf3a85e3fb2248236aea7a32c274452b9ffd314ef421ca0b4ce977b5ed9ee3ce896fd3092b86aa73b9c191e9c860ec15bb7ac629e4733e8ce35b0200ed1ebb89917804cd51bf6a8e5fe4b2d80d49f8dacb387e0dd4e5aff75b91eeb942100000000000000110000000000000000000000000100000060b32e74742244da9977fa2039bec80c656adf65924d4cad29f2de1ead7d95b665d4f04a76e8c32173bb0399cb899841540a46650bcf4028086d095a033b762f1a6f71bc8821b69b9bf614b1dddb87438500a5774295225cf8a841c2178caf34dc00000000000000120000000000000000000000000100000060aec57a07569cef538b968756d2ac9673a87943b8dd8ae44c86c72e8a8a57966ef5f2d803df7a1883276c75d9941f5e5f156829b896df4dbc07775eec59e77c5579a3b543d361cc83a49186a3891a5989f68639a9bcd81caedc65c0616747d992000000000000001300000000000000000000000001000000609562e6c1cd97f52dcc950b9d34506322a9e45b00bf38ab31e3d1be87df3094895d4c0f7bb53f36b8712d8d42fd58876d16aa2641550e1794dfe281a47c3c1882f59dbc02e505b7a308b72105df2036e62d6eca215ac2c1926388230c3e00ad70000000000000001400000000000000000000000001000000608b2af66fff8b0ff1878df8d986593bf94a5695b3054aa99827718d0f45073ba9480a8c9bc4fde7feee2643ca34d80e130bac31539c9645282db5df79c31de7344428ca464bbe06a20a5c9ea1ab162122d3b424e6191abdb7f9435d96eff09fa00000000000000015000000000000000000000000010000006086f00bbfe0b9f0cf01ca6ebfbaa78af8312b5c0727c25bef249e0f54b0a7a4b866c6953c8c1d1861341328bdbe130c5908fd154b573ce178ed04a6db50f4edd6527aa39b6f04368d93e48d88c5824e5cf7084a4d2ba0ac5985fcc2152eb6009900000000000000160000000000000000000000000100000060b2dbc25e5dc97bf6116b10a0943c83e70fc6fb7029e869ca32c3819298ba360d1ddb2366793fec925c35c5e4cc5e159e1798660390e6b340a12b2ad4e8ce292172f1633b7a29035f2105d8068c68d2f0d25c47bbc225aace28386be0d87bb03c00000000000000170000000000000000000000000100000060b96dfb199108563ec66fdea4262c0c06874399736894d23fefd5ebf1e7c1cec250d1e3a6fe38a83dd403c273af0ca61b10c0821382be250285277a7c4e1d84986c47936fdbc9a53b46e20b4665ec2741474317d78f449ac81d8dcb32bc68409d0000000000000018000000000000000000000000010000006086a4a8327f6409123007c4b46ca8e4854a8ac163052786dc90f5a5ec05829d844e91894bdb1eb39c61c937eecc112a10101882227bc7590b137007e51e5b1e01dd791749b0ef1ec9bb0161df3cd59f0587ae49d98b0aed5e56a6e1e6f3b1b9c000000000000000190000000000000000000000000100000060888f1871709b1fc6ac233167f6606f2e3f89b1c9168befb5faf5a711e4124c9b883cf3ee5ab2e0342253d59a187c84ce0da176183f914621bc33f08e0d6b044bc8d49051d3661937e91ee13de67dfa8f22d3e56bdbf91dfac30588e68de73ade000000000000001a0000000000000000000000000100000060a7bc9bb34a1d284eaa2fb59318613788952c738d750ee1f5f1eb050bccc4cf4f8c2b7870ff5639cb721397567b669ae20bf3f7edb41445b354bfa9e4ac1410d1249d43c70ceb05587a4b48f27bee3a371bfc345580ea1bb3044dbefb123e916a000000000000001b0000000000000000000000000100000060856d31fc71e92a6427b6376c64b172e70953b1774bfc04f657c84b4f3a1cd636f3e0a607325e57cfe6be004148d7bb840c46136b50a0d84b42e28f912d512f77acae6b5b8b2ae46654884a74e7ab92dd751a6a6cb1385e3e9f6758835282b9b4000000000000001c0000000000000000000000000100000060b620d3c24826f0305c38478e57863808fff8651d27c1a4d76880beec0e4177adc2dbcc9c61aa2f4157e7e9e07ce5a07f00a8ec7723e545d48117b7228cc83a64d58d082097d487720a6adcb2b09db64c630a4d6b4338dd05af337e3e6b554f64000000000000001d0000000000000000000000000100000060b7e0556045e6b34f48137aa44d8e2767d01ea3306ccfb88fff7f648a0854efbf5d94794b8aaadff71affde51d2c582e00d694a3c84e342f2e77acd03acb93d0e87b88a9e68f64e5c1aec2ae768e994f638d6fa6991575a885d56d9e9ac24e93b000000000000001e00000000000000000000000001000000608603fb58be951b52dc08d4b3fb70d9a9c487e302d02b60dc7c2b0546c9396793e10c18a60d26bd9cc57e8516709a427500ae239375de01e94e05c4c7315664928ead084c8c38c34f5e65e792a5a00f5e65319ea7f83084fa22d43b20c5fe0d44000000000000001f00000000000000000000000001000000608286b3f39880017b54e9f37cabfd89921a5908e215be5699bebedd4d5e7f88eef9321aaa1c772a5c79e3cce7f68371ea19989a3156e5388ec45f97b673f0e46f1c7169a185fe4b967fb672334740817650c9fa6fefa2110c829f58c7e1dbebf80000000000000020000000000000000000000000010000006089826770495edd71677c80a57fb5a65a14fd91253aa831e6375f12d1c88523b64843711fb97fdde6b35d308b4a5b06751247d4f30c307333781d404139757367e7eefe9a06a3af22aea1a5d50893d8a813e13e75c875ac63dfa94a4a1db416cc0000000000000021000000000000000000000000010000006080958f0ab25113108509bfafd20167a85b494a09ea3b2fc3a3583161b5d954e6944b0e5b7906d6da1942f7017038835404b9542b3f73ba4b254d9f2cad6749a37015d1b4891dc00891d1fffa8ffaad95757f996300fde5f3055d14072ff47d9b00000000000000220000000000000000000000000100000060980d71906b50f4ff45ca99505b543b3e84e38e89f5ccc1f08392b753060d5f2f53e1da1a0781eeb48f3274d2da1154aa00324bd3f1be951d212c4e553c4b8a3dc691209a1510469f01a1a61ca0d68960fb1e542462889c3e0083da82ddb453450000000000000023000000000000000000000000010000006093765d8826eb0e056bd3c2587aa3debd0af6d0a8516fdc508b0700092b33ea57beea0d6c46865e41f59c6fa432f176b913ba348240c47531e46db6a7a74dd7d4d9498ebf1e2f5f713a33ac3892738d210995a4dfd8cb9e1885de4a302a52564d00000000000000240000000000000000000000000100000060b28f8ca3323a66a980d888905131ad8a75a280628e046e640ffe215d138fa31d3079f7a33056551ee382888fa0ee2e460c92aeb7307b7836516a250a7742fdc9b92848dbc3a85eb203fae0ae0c1fff4b7eba227c76cbd96f6da932f5f855a1da00000000000000250000000000000000000000000100000060a6f01a0509c2760a548674824292fb0cf82be2fccca2fa28133e7b23f336a41f5d97632971ed1c277e905f4060ababcb07f86fe502d2d078accc724cd6a78bef6ea958b5409173350002b94d9178d243b0dca55450615ca0b33ead8b52b5d61500000000000000260000000000000000000000000100000060b260a316f2fdcca164709b21c4bc8f17ab64c9a0606ff43e49798096932fda300d3552f1019d72f04bd01b6eb004e43912a22bd897018a47247fb8c567aba73ade83c659a079850fdd65dc4e3755c9cf25db4dcc36ee7b0806d21a3906d74e2e0000000000000027000000000000000000000000010000006090fcb1482f60ef3ac91add621e8ade455f5aff8a8381100b1b9b99b83131e9a4a4c1f170c4bb516b169a88b10f36014506c46bc35ae89288f241a77c2dba36234d471cac048503987697c04cbf236ed0b5e6c2097098db12a64cb483dcdd6b4d00000000000000280000000000000000000000000100000060b6efb72b2c27ad3f54b1421d51aba6da804ce440686077fe6efe3ccc2e975e3bf381da9840fd60016de72017d5568706078e21c6e72fb4c1e2ea8d1ae1a2f49e64f9d7b6de106877226e95ecdc7c2aaaad8fac4fcb05ff2c937348b448f809230000000000000029000000000000000000000000010000006080aacd5239d538c8c647d02067464069ab33bbd716ac71fb9c5fe7808bace98d0bcde6583b0f86b5ebd3e87f7fe1b3370c01db427d39f36ccbed0bce9f0aada9581d704f1d1ea49bc3abae6f88732d57c08384a493d25cc03ad870de7369ad44000000000000002a0000000000000000000000000100000060b2b7c86b70f71cc897347b39f84578b2408adbabc3dc48d0bc5dd0e333545059e85742b39df80ee40e95b27de0a657f602da1ecbc576893b60b9f3ab6e471ef5f3df28b62fd50411bc3e1bfae9e6fef6a65849440637f111675b8b4107750908000000000000002b00000000000000000000000001000000608c29bdad3bf425717e5b84ed51b3709eedc8bb42bd54dbdc8fc8b1c0aa95b1132fae67e65a66a4462aaa7d157f89e1a409598971436b65541c3401974f6e6e3c7a067007a9484c5ff60c3246b54f3397ada81558bf3cbf99368e5f2e37bfed57000000000000002c0000000000000000000000000100000060ac9b8cb70be696fdef302e51e84ac0a0140ad4bba499e6f23ac751bafdcfa802fc6a556486d8cd245b6c1d34e8dec1ea1771cea9be3c345028ebd51b9e0a06f03423668d5293532c9fc3c1a6ecb98ca7eeac9c124ab4ff5bf79769714a770e1a000000000000002d00000000000000000000000001000000608ef271f480d904cfbed6c49a14d76726cd813fea98354135bce1d9e4f9594b06db767a6bbc85c2bee2b5c9ec8d4cc38a09a276d812a13497be6944f2078a9b3a006b8edd413789ca3cf64a20cc92b42079b55aad6e3b0c9fdc5045b78971f595000000000000002e0000000000000000000000000100000060acac602bdb314641f31fa9b5cf2f6da4021feae0d1773dbc61571c3e2c9fb2c9cecf60a0ae2aac91a0f008ae39c6d8e61858311289536ccc2b80245a6e1eca047477f9007c9ac9dc7d9175cfa31cc5af359208e224b19f6cf0c5a2a4def919e7000000000000002f0000000000000000000000000100000060a0c2f1ab2c8b4d7e13201ee7ba801dd79aad7560fc9e0e2af8e84081c24ba7b8fa1570c31f4f78024d74e9a14eeaed410cd5c496ee285acceda55fb755014cb812638a610c6ff367ca799769e88a009722e587ce7cc2c0fb8344b7093099d0b800000000000000300000000000000000000000000100000060a45d271023d04051b387caa2d793a5855d1a62ce3652b64b87b3180d58faccda76dc3d767fa1156d1c81e5d28bc4afef1990f4d7a04a7dd97b27add9c4314aaa98a174a21ef6bba97b996c2b6d02fc10b5e68580705c03f47848d1a5a80007ba00000000000000310000000000000000000000000100000060b47075189c264d0675f085115cf5657c7af83262720b20500e8e5fae6ffe66cb6c9e93c120153034eada2bd93b8318420e04f4b8f515c1680f8f0a5d24474a5c8eafb059919f38eee9e5ac469abcb411f785f5e5c761854c03600ec92915a79d00000000000000320000000000000000000000000100000060a05bc357fd81d5d5dfc278390b5588c2d56499b177c49c9da8ef361fa9eb3e41529f80237b7767b76dc9c729614949780130a48a50192b1f2501181f5a5b7d25ba96ff98ec1969dabf43cc4f15f07403876f081ee880fb407f0eceef9aa2a5f800000000000000330000000000000000000000000100000060a1c335121325342a0002c43f095d87b8087867c4a5bad85ac2c9b97db7f207ef347837be6e3a743fdc5032b1b87d984e06fedd24d97c5dc410cd17c056519c4740fe3869d950c76a8e5027519eb7698e98f2c231240e90dbe8989b76ba7a32a00000000000000034000000000000000000000000010000006093203355c636527216227774bca7d5a58278c79b6d9eef69f98e666af44d7187abdcb6f3c9c3bc4a892a4d2c4fa8ced00396ae3e881e79a948e0dfe4abb7732abb766d255a88d34a8c13912c3c4e4ee222b2a09ae46229930b131fdba38397a600000000000000350000000000000000000000000100000060999d4523b01c15c18a5cb616ccb092e1e3d1de5a0af6371bf3dadc50bc31600ff3a2e0ffb18f4ef46c9e8ee7ad5e36e3077313d49ea6e460db88a977cc948bc2a9c80efa2331a2dc851dd91f6272fc0b260b3575c5332b78eed8d18c53be998a00000000000000360000000000000000000000000100000060926ea18b496174860d585b52057965b45e35f59c647e164e5a17a6cf9229a45a43bb9f8b0f3a8dd1f09a44161519c27d02cbce41a72cd28c606785a1c3131fc34cdb77dc854919e432563bd6591208b1b0550e80100e84285ffb725bfee0bcd600000000000000370000000000000000000000000100000060a97b7673c60c2352d37ac4aad2018fef4a0031786441e41a60653982b38cbde45f588a3a60f5b388da4e91a1c3cc4a871494ab3e67672d6e51b39ace2648bbe630f1537b8b05a8769b66405d5955aa69ac98651aa2fd7d22dc29086541ff9c3e0000000000000038000000000000000000000000010000006095b7f2b8d2f8de5114b860f8c7dcbdb1d782646e8b3d5d6219315339589b5f0784908523155de5a7e31a456a35b855df0dcd3aea4e87d477bd0f62df40a3ee10f94ef79df25d715b77fbb79690ea73b14f8e86f5ebf75227a6e5da7844d0f261000000000000003900000000000000000000000001000000608dfcd679fa007054f43236c3804ae0c0d9d247720058fc05e775d54081d68bb355269e2de1aa39594fff19aefb632da016dcfee8183069d660e250006d31969decaeb1cec3131a7988c0f9872cefd2c8a6ef76fbcba649d929c4ca2b35ca2695000000000000003a0000000000000000000000000100000060905da4068fe58989b5a8bab75d8e4d02186833836966fa58857c8e78ad48b3ccb9998e8c7e19caf153ed642c6a06bd1802be495bc59b476c79835d8a128dd69f30208d13d02537940c72727d4c841838197f4bb1a832e2f1f26339ad9fd1fca0000000000000003b0000000000000000000000000100000060a156ecb9d8c5c1221f3344ef24bef471db3750c33f32dc7ddf294b9b2cdf9ad1aac83d3cfb9e6faaf02b274f3d4074010db89e63de393ba799418348552e46a571688211b81654190bb29848c6aa157b3fbff5824e6201f85e2072dd9d3ef330000000000000003c0000000000000000000000000100000060b5ef2b085f49a4ad551df9d54270a076edd6e4bf412772c0d8458f78ef6692b0b394f97b46beb16891ccad3d4ca17b66048e5bb0416427b297d91e102b7bb1138081bac1f2a825a6f359b8a5db5cc08a61447fe097b1605d69f37373be0260da000000000000003d0000000000000000000000000100000060b575d57db84eebd4e3376958c01127f918a12a5ff618787cb9c252292a3f2d4297cebdd3301acd9a699dcf7e0dac467603ad542ff406918bf9b00d05e3c403f8acc24d7bce08862da42160bc1a2259f1d5d44e92dde18185e9a329b14f6d5ab2000000000000003e0000000000000000000000000100000060b84f23be3cd50a59ed33973d5e39aa53e00c1b6e37618ad8b937f4c9191acbb08a728afc405144cdf3f03e7cd6b2dc0e0238715d5bfe1e3fd059e92ab3d68f5b0f8a6b3c4e2c861aaeff638cb2a21df933dca84b1d08f1effb1ecc99469a81a1000000000000003f000000000000000000000000010000006089b21a4c0c8dcdd2f294f5b5d49808fe356b203d2e96b6d61ea10baf137d1d188257c4041ecc01662cec3f512d0842ea0a539b4cfa52856cf6e9aebf6990cf1f99f175b911deefc06875aafad8b9841d1c5110787034c0da13a7fd1c8dd87d6100000000000000400000000000000000000000000100000060b054853e1b8d657f241b97f9f11bac0103541f113653c2de18f08ddb3dc94df7886006073fbdfb450890564337d311da0fbe968627e3b43778be4a315da0a793d3ddd1b4b13a7b3d795de943f5bd14bc5b973e01fc5521df4126447370f1e390000000000000004100000000000000000000000001000000608ac2be38dd74928eb848ce1d8f19e5bd0064dc394c1581427ffe1737c0aa22f38be5cf53eab2240bd5375a09d5c13d9e0a5b730339d2e2c8602750340ba2b72ec90c46ee87c9bb284089d04e00ac43c5ba9b02552ed0d31e81e524f01583ffc700000000000000420000000000000000000000000100000060b60e5c9e9aba9441dfa890a1271c14df734ff6fa75f852c6454f3234bb05549013ed5d4ef6312033bf711a17168273a4035b43d41cf4c3fc6e7871bd1e6eb11f87a736ded0c63324ef2b0f19b162713b1a3240bed4ea8d4d1b227b25bbb23b2d00000000000000430000000000000000000000000100000060810b802675d4d079c86fc5e5d70ee3dc2f64264c70df3de4f162aa68aaf02551426d77625b8fde9620c57c1d9b84c75119a66a852ce650792ae302c2b6db1d09d6058df9b6c1756bf8ff17dec09ac37caae833c80d503baa55ef37201c8413180000000000000044000000000000000000000000010000006088dea5820d0c1a8c5ea358cae63122f33cb2f1564a09212666c4440c5b36b5c1360ee116c055877d1876e55deccc0e340ef16ff3ffabe41508e121ed2c819a4e767bdfa76af131fb202e2c475555399d62f7487f68402191d4ef0bb86f2a1f9000000000000000450000000000000000000000000100000060b5a6b9eda2b90471c01ba116f056b15ecedba912721d621f23a433d9bcd66b07856f9fc1b318e7e7eb15c4ebeb6f82ca1160e598bca67f7fa8915b85c4792ab540d448c71a10ee760dbdf601e752503fb27a0037ff35794e5bfc91e38dad2d6d00000000000000460000000000000000000000000100000060b804fbc7710e9ee178c986ab544a47cce684b0daba58e9f9cd3c6ab924ece90e3d5f291e4514f2f8545f78a14b266ef411dd75a8093343f68308419b3ee513006674f523bd20cc39f0ef85cd05795bcffaf61901741c2730aeef4e8017140931000000000000004700000000000000000000000001000000609909973c13005ecd5f5ed5dcefa9d942aeb08aa4bb0a23edf1e6319c9d8a5f86784f8b6f2d5fc43d03c43c6f51852398065f959871133a9e25d5a8d5587ee1541c7a4ed33c154421c2bb852e3f5ef09227fbf704b68c2c927bc6d18eb09d0d56000000000000004800000000000000000000000001000000609945bf931378d27d5afc251be390ec7806cd8bfe80d39c109301f1558fb241b6fc5bb1058a7c1b835738a832191f6b5719f864b463294769ade6ec56878a31f9c6ec0f57c51216e47c0cfca9eb5df00ae06b6a17d4c1eb5ac95802b168a977ad00000000000000490000000000000000000000000100000060b6bf856f258ba34dc0aee3f5ea01f702f80af3e68ed8cc1a049470cf2dbfab5e6d220066adef5b88e80e4da623d13f4a0260db75522b1fd9c93d1587806ba227d24da08730cfaf3bbee2122ee96be5135d90a4976462b8f4cb8a6d53c9468b0a000000000000004a0000000000000000000000000100000060945ff1997ae619fd26bee0d618bcf0035eedddb67e719992f8d385f748650d9302ca4d43c93c6524ec2f6d0f413c89aa00e1b4e754f57a21432169041dd56ecc94abb99e73449fc1e580f8bf07a72b5d5a9af306d05e80f92bee9557ca1aeda9000000000000004b0000000000000000000000000100000060951d8ac075cf1e83a5957ebbecc6997df5cc592e71111e7941e67d1cba8b6800939f754161185cc603d73e76041264c8018b546283ead402337b8656118a422d5395cee87773725962eb8a4f9cc73377882deb109f94908ef352bd658e911475000000000000004c0000000000000000000000000100000060b1f1dd6d9ce967108b783bf1d565c07b705c9aa54effb55c1da37a93e66bbde7b79e19e95cc5747562158168a8d291510a1de64cb1f3d078cd549e8204ed7c32b1b9f92ff39692daf097d21410dc4816097f3f611d6b1637317e88c91099be3c000000000000004d000000000000000000000000010000006095181a36ed12c92704c6a631c2f5f42292cda8adac6eb335414a1a38cca5db74c8e655a420ca7e36c039d1cd8a2f70e601144da5622eb9eca1939201adb0a7dc2a57df0ba108f9bbd8e91d3081ce53ad49c2744ca1341027607d6fe98e873e9b000000000000004e00000000000000000000000001000000608af379b34974de48c6175e49c57107ccaa67159749fb2b2f806a2b7796c57e9cf56e27b4cfb93081cf3bb86993c4594901f7c8edf267ee62cd8652066fec1f5363e03de1556a5527303ad85c25f71587dba1fc47a9a94e8bc92d39eab9814e54000000000000004f0000000000000000000000000100000060b8b8b26341873578fec39251ac467b098eac00dd24275a83c95f50ecb1e6ab6f7ccc31dbfcaf892bad04882ddb5f318b17f5ae8094b6e2b655f4759be95e96af50354e76f6499c35f93079a770ac209a971e0de9768ad73d8ad1c2a39e4cedb600000000000000500000000000000000000000000100000060aed6e057ad6d08fec4498f3bf7450d08b79a6d2483c286ab521c9582949595565fe278c983dada82df473af349f13c170a84a2c82adb4404ec703d2ccd6197ef4fa0c75b237fc59746da1fed1f301315bc6ffbaaabf8e1c01c8a27a680d6a4de00000000000000510000000000000000000000000100000060b21fec805975de4fd7c79e4ef9fa3613aa40d4bdc66149f179d6c9e208f007ebc6b66be63211f11eff1c1bda01e4109608bca655cd1867207b0b337c781b5226cf44f2b7528431ce0fc846c709b3a45d2fdcff5f3e3f4f708f5889e702f61eea00000000000000520000000000000000000000000100000060b0945bdd41992392b43e4444bd9d8c883a293b30b83eaf6302e4e39dd9f5ffe5291ee3108825176641d09c92c93172c208113b5f35d67cbabad8ad0b8779f1872ccbf7e41fff4ac5f1a680ffa5cc61f1c44da84576556ae5cd7c53c1db9e436d00000000000000530000000000000000000000000100000060b975e5b1d53b9cbe7b51b38cabef3ecb18b3be9772f4634b56ce860b2918bfdf0981a5e458e3d5c34c7631b5ea9a107a1118650e1b341925f7b349ade787e36f95101d6fff1aeeda70fa4c7cb52fe82676391170924879b552dd836bd461497200000000000000540000000000000000000000000100000060b63111f1e365b37c02ccecef7d6636d97d9f73eb0d3ab08151b88140deffbaa3e74d74d91d153eb28a6dbf08f0867996087a50979b9b0196a0d5013a9d444ceb639a510de58f991ab1c65a1e356bf58b417d96ca2e01cb0aba52d45ecb171baa00000000000000550000000000000000000000000100000060b6559c75739f334d5cdab8ef342f801f37c89c91c085879468ddf16637d9ac5d56278648b73c68457ca571ed7d2b71b706062599c41c0f429e250876c79cda3f3b6ee23fc2731597f4fd77c14d20b2bb4d33800b62182031a7125cdc036817fc00000000000000560000000000000000000000000100000060b1345a06718b04f5da9ebcd41ae7b5d19f09b13ca1bfb986a53c2e3a88639baaccfe392c00dc7d5eefcd6ace806ceba40531d9efd58d5068968d245a36bf6edf84d73a8a340971ebbe4f71d7c50d9a787b10ca2ff13f9d45d45d259800e839bf00000000000000570000000000000000000000000100000060b4905c318f2c3c3eaca0a23435a52f2f26fa0bc14853bf8e5469284537c7c216126481dc7baff3dcaa7a5bb8eb30f64314fa6031c288ae8002e8ba83e3237606c6737d9c4f65fbad58484e3eebb0135b8c9a543f1e62990474cc5761d03692dc00000000000000580000000000000000000000000100000060a8ed2c42140a6be60344e2d1e9dba0e8bcd5473b79e03ccbd04913152fb5a1ffbb8dff7b8eef12cb68dcf6719197f9b2061728f7664cd3a541670f817a4d110069ce2878fbbd54d1da4af9a428ae84f6d08ad8c2a67f5b97230bed2f59d7d7c600000000000000590000000000000000000000000100000060b80a64f02c52ab9a3d58c5b2491ae993bda8d2f4f6c8c3d61191dc6079b17ad63be542e91da3de6deb286c1f476defaf006c12612a54ace2fea35af8af922be545e0063de1377bfd79953f6a9f4891850601c00694e3ae926270dcb6406d102a000000000000005a00000000000000000000000001000000608082c9e504b5152e5676a8cc12ee9bc29029402ff8a8b71c1e4e400805699c416a6b470f9ab5f1e9efc1a48a14643329104e1f69fd5db731490cb6181f42918261262aea7d5af65e9248efa36eb3b8531e68a83ba5c87b0fef4b814a4ef0fa95000000000000005b0000000000000000000000000100000060879f57442e37002177fe72643e502cc7fcb289ec3b83da428fc83cea24f7a6ed6a74ddf2cf636a9d11cecc9aafd986381010ea1447f3d93e7b9543e3950fbb4cdf1d8714774d1767030b415ff445126ef08f38e774d865c5990de5de72976060000000000000005c0000000000000000000000000100000060a76250133ba5de68e96d088e19db97868df7c8498e2bbbd3f0aa020dd5afb6cee99cb6b3aa8eb37f3e0f41a8ac4058821859dd4308c632e22259732f09cc630f89e9c8e3123a442e4faff040ebbfd652da14e4ab8586984d6caa91b602dbfa99000000000000005d0000000000000000000000000100000060883a71a1c830772bd34dc6f9b930b81e6c9001211f4934cf1835ab5443fe099de219784943bf6e88a5cde5c0c2d4cb39068ecf5e43b4671d1ec8dfaa34d06b88a753eaba83f5f5c8824e3c2814bc30d8ebab5edfe3c03ff018334784228cd5e3000000000000005e000000000000000000000000010000006095b3ec232dd4c376d386ce8f4d3942f0fb24c1d06c23b99fb39bb13ffa6fa94bfb76cfb6fb849b787d4cc308061d8b371590b8e875194939103edda23863acee429f07c27cd2bd4cd4964c5617b17f5a5f3d99f286c0a19b51af9a440046e326000000000000005f0000000000000000000000000100000060826c552ab3d65a1470f5a66309e0362383c4eb65515be13e82107cbf04d9aee5961ef460a6107676558162dae5322af50edcb9ed9d4df548badb6455f726e67173a3b2af7e3b5b53d25a9aafb0906827225e5c170eaf82d5dd91d242067aafec00000000000000600000000000000000000000000100000060814e2d1e998bbffbeac1ff34f68660159f8d5951e1860906097db779cad4f76def096c379ecb3c1ba14a27f9770e5938080d415e4931dbd6d7e6a42bfaf9dab0a17e5b3f1e7f1a085e4b3baf0ee7953d44fc24dcdce91e98487981a6b4eaf54b00000000000000610000000000000000000000000100000060b84a08738c0c6871f3e4e9f729f338d85dce179fa18e1023ba098d68dee1df41c3bdf91e9c88f9c94d14a84d2ae8f4aa11ab15733d2a8024967a9730962804952e6400d8e70895f94c533bed6a6dc52759f05d4983f86db93b410e4dbef2b2ba0000000000000062000000000000000000000000010000006099daa008dd6d5888ceebdd6b34af3a760b6aedbf46025a54f346720d22d38bae13efca554368da3689ce2b20923786401310de804d16bedf77a3370279b4d74dcea028f6b4f5e53a5e176eb0fefa683a8cf3a08b2c425fe620e361908ed1d3f7000000000000006300000000000000000000000001000000608251a7656031e5a0e992ed0f8d7008cec6eb5435ec24025701df11031755278cc484797e2fefcfb35e22ceeaa8a6ac75171d73717ce78987e7dce40519e3f790963e58e95ae6572338527208693e48363c286e72229d519385d6ecd1d31554f8000000000000006400000000000000000000000001000000608096bf8a3c8629e3065ef0729a59cbb880988a6e3251cff2520727d3d0d0b3acd3d063a8a700d36cb8fb41891b7b9af30dcb8efeca300a4dff67bd66d4f6822c9596287bfb0b9c00378550e50351ba0954ff7fdbedbb94deda10a6ceed0244ec"
}
]