From 92080a02819e563680a18e38ce49d983275f2bf5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jan=20Bene=C5=A1?= Date: Fri, 26 Jan 2024 17:33:19 +0100 Subject: [PATCH 1/5] refactor: unifying Header serialization accross domains (#4230) Fixes #4045 \+ renamed `HeaderDecoderHelper` as `HeaderLibHelper` to match the new naming. --- l1-contracts/src/core/libraries/HeaderLib.sol | 104 ++++++++++-------- l1-contracts/test/Rollup.t.sol | 6 +- l1-contracts/test/decoders/Decoder.t.sol | 6 +- ...rDecoderHelper.sol => HeaderLibHelper.sol} | 2 +- l1-contracts/test/fixtures/empty_block_0.json | 2 +- l1-contracts/test/fixtures/empty_block_1.json | 8 +- l1-contracts/test/fixtures/mixed_block_0.json | 10 +- l1-contracts/test/fixtures/mixed_block_1.json | 14 +-- .../src/structs/global_variables.ts | 2 +- .../circuits.js/src/structs/header.ts | 17 +-- .../src/structs/state_reference.ts | 2 +- 11 files changed, 93 insertions(+), 80 deletions(-) rename l1-contracts/test/decoders/helpers/{HeaderDecoderHelper.sol => HeaderLibHelper.sol} (92%) diff --git a/l1-contracts/src/core/libraries/HeaderLib.sol b/l1-contracts/src/core/libraries/HeaderLib.sol index 46ec3567408..5ea03ee283c 100644 --- a/l1-contracts/src/core/libraries/HeaderLib.sol +++ b/l1-contracts/src/core/libraries/HeaderLib.sol @@ -22,29 +22,29 @@ import {Hash} from "./Hash.sol"; * | byte start | num bytes | name * | --- | --- | --- * | | | Header { - * | | | GlobalVariables { - * | 0x0000 | 0x20 | chainId - * | 0x0020 | 0x20 | version - * | 0x0040 | 0x20 | blockNumber - * | 0x0060 | 0x20 | timestamp - * | | | } + * | 0x0000 | 0x20 | lastArchive.root + * | 0x0020 | 0x04 | lastArchive.nextAvailableLeafIndex + * | 0x0024 | 0x20 | bodyHash * | | | StateReference { - * | 0x0080 | 0x20 | l1ToL2MessageTree.root - * | 0x00a0 | 0x04 | l1ToL2MessageTree.nextAvailableLeafIndex + * | 0x0044 | 0x20 | l1ToL2MessageTree.root + * | 0x0064 | 0x04 | l1ToL2MessageTree.nextAvailableLeafIndex * | | | PartialStateReference { - * | 0x00a4 | 0x20 | noteHashTree.root - * | 0x00c4 | 0x04 | noteHashTree.nextAvailableLeafIndex - * | 0x00c8 | 0x20 | nullifierTree.root - * | 0x00e8 | 0x04 | nullifierTree.nextAvailableLeafIndex - * | 0x00ec | 0x20 | contractTree.root - * | 0x010c | 0x04 | contractTree.nextAvailableLeafIndex - * | 0x0110 | 0x20 | publicDataTree.root - * | 0x0130 | 0x04 | publicDataTree.nextAvailableLeafIndex + * | 0x0068 | 0x20 | noteHashTree.root + * | 0x0088 | 0x04 | noteHashTree.nextAvailableLeafIndex + * | 0x008c | 0x20 | nullifierTree.root + * | 0x00ac | 0x04 | nullifierTree.nextAvailableLeafIndex + * | 0x00b0 | 0x20 | contractTree.root + * | 0x00d0 | 0x04 | contractTree.nextAvailableLeafIndex + * | 0x00d4 | 0x20 | publicDataTree.root + * | 0x00f4 | 0x04 | publicDataTree.nextAvailableLeafIndex * | | | } * | | | } - * | 0x0134 | 0x20 | lastArchive.root - * | 0x0154 | 0x04 | lastArchive.nextAvailableLeafIndex - * | 0x0158 | 0x20 | bodyHash + * | | | GlobalVariables { + * | 0x00f8 | 0x20 | chainId + * | 0x0118 | 0x20 | version + * | 0x0138 | 0x20 | blockNumber + * | 0x0158 | 0x20 | timestamp + * | | | } * | | | } * | --- | --- | --- */ @@ -54,13 +54,6 @@ library HeaderLib { uint32 nextAvailableLeafIndex; } - struct GlobalVariables { - uint256 chainId; - uint256 version; - uint256 blockNumber; - uint256 timestamp; - } - struct PartialStateReference { AppendOnlyTreeSnapshot noteHashTree; AppendOnlyTreeSnapshot nullifierTree; @@ -74,11 +67,18 @@ library HeaderLib { PartialStateReference partialStateReference; } + struct GlobalVariables { + uint256 chainId; + uint256 version; + uint256 blockNumber; + uint256 timestamp; + } + struct Header { - GlobalVariables globalVariables; - StateReference stateReference; AppendOnlyTreeSnapshot lastArchive; bytes32 bodyHash; + StateReference stateReference; + GlobalVariables globalVariables; } /** @@ -132,24 +132,36 @@ library HeaderLib { Header memory header; - header.globalVariables.chainId = uint256(bytes32(_header[:0x20])); - header.globalVariables.version = uint256(bytes32(_header[0x20:0x40])); - header.globalVariables.blockNumber = uint256(bytes32(_header[0x40:0x60])); - header.globalVariables.timestamp = uint256(bytes32(_header[0x60:0x80])); - header.stateReference.l1ToL2MessageTree = - AppendOnlyTreeSnapshot(bytes32(_header[0x80:0xa0]), uint32(bytes4(_header[0xa0:0xa4]))); - header.stateReference.partialStateReference.noteHashTree = - AppendOnlyTreeSnapshot(bytes32(_header[0xa4:0xc4]), uint32(bytes4(_header[0xc4:0xc8]))); - header.stateReference.partialStateReference.nullifierTree = - AppendOnlyTreeSnapshot(bytes32(_header[0xc8:0xe8]), uint32(bytes4(_header[0xe8:0xec]))); - header.stateReference.partialStateReference.contractTree = - AppendOnlyTreeSnapshot(bytes32(_header[0xec:0x10c]), uint32(bytes4(_header[0x10c:0x110]))); - header.stateReference.partialStateReference.publicDataTree = - AppendOnlyTreeSnapshot(bytes32(_header[0x110:0x130]), uint32(bytes4(_header[0x130:0x134]))); - header.lastArchive = - AppendOnlyTreeSnapshot(bytes32(_header[0x134:0x154]), uint32(bytes4(_header[0x154:0x158]))); - - header.bodyHash = bytes32(_header[0x158:0x178]); + // Reading lastArchive + header.lastArchive = AppendOnlyTreeSnapshot( + bytes32(_header[0x0000:0x0020]), uint32(bytes4(_header[0x0020:0x0024])) + ); + + // Reading bodyHash + header.bodyHash = bytes32(_header[0x0024:0x0044]); + + // Reading StateReference + header.stateReference.l1ToL2MessageTree = AppendOnlyTreeSnapshot( + bytes32(_header[0x0044:0x0064]), uint32(bytes4(_header[0x0064:0x0068])) + ); + header.stateReference.partialStateReference.noteHashTree = AppendOnlyTreeSnapshot( + bytes32(_header[0x0068:0x0088]), uint32(bytes4(_header[0x0088:0x008c])) + ); + header.stateReference.partialStateReference.nullifierTree = AppendOnlyTreeSnapshot( + bytes32(_header[0x008c:0x00ac]), uint32(bytes4(_header[0x00ac:0x00b0])) + ); + header.stateReference.partialStateReference.contractTree = AppendOnlyTreeSnapshot( + bytes32(_header[0x00b0:0x00d0]), uint32(bytes4(_header[0x00d0:0x00d4])) + ); + header.stateReference.partialStateReference.publicDataTree = AppendOnlyTreeSnapshot( + bytes32(_header[0x00d4:0x00f4]), uint32(bytes4(_header[0x00f4:0x00f8])) + ); + + // Reading GlobalVariables + header.globalVariables.chainId = uint256(bytes32(_header[0x00f8:0x0118])); + header.globalVariables.version = uint256(bytes32(_header[0x0118:0x0138])); + header.globalVariables.blockNumber = uint256(bytes32(_header[0x0138:0x0158])); + header.globalVariables.timestamp = uint256(bytes32(_header[0x0158:0x0178])); return header; } diff --git a/l1-contracts/test/Rollup.t.sol b/l1-contracts/test/Rollup.t.sol index 387dcbac6a8..d3a7dcb7ad2 100644 --- a/l1-contracts/test/Rollup.t.sol +++ b/l1-contracts/test/Rollup.t.sol @@ -67,7 +67,7 @@ contract RollupTest is DecoderBase { bytes memory body = data.body; assembly { - mstore(add(header, 0x20), 0x420) + mstore(add(header, add(0x20, 0x00f8)), 0x420) } bytes32 txsHash = availabilityOracle.publish(body); @@ -83,7 +83,7 @@ contract RollupTest is DecoderBase { bytes memory body = data.body; assembly { - mstore(add(header, 0x40), 0x420) + mstore(add(header, add(0x20, 0x0118)), 0x420) } bytes32 txsHash = availabilityOracle.publish(body); @@ -100,7 +100,7 @@ contract RollupTest is DecoderBase { uint256 ts = block.timestamp + 1; assembly { - mstore(add(header, 0x80), ts) + mstore(add(header, add(0x20, 0x0158)), ts) } bytes32 txsHash = availabilityOracle.publish(body); diff --git a/l1-contracts/test/decoders/Decoder.t.sol b/l1-contracts/test/decoders/Decoder.t.sol index e11586d30b4..cde3eee14b3 100644 --- a/l1-contracts/test/decoders/Decoder.t.sol +++ b/l1-contracts/test/decoders/Decoder.t.sol @@ -8,7 +8,7 @@ import {Hash} from "../../src/core/libraries/Hash.sol"; import {DataStructures} from "../../src/core/libraries/DataStructures.sol"; import {DecoderHelper} from "./helpers/DecoderHelper.sol"; -import {HeaderDecoderHelper} from "./helpers/HeaderDecoderHelper.sol"; +import {HeaderLibHelper} from "./helpers/HeaderLibHelper.sol"; import {MessagesDecoderHelper} from "./helpers/MessagesDecoderHelper.sol"; import {TxsDecoderHelper} from "./helpers/TxsDecoderHelper.sol"; import {HeaderLib} from "../../src/core/libraries/HeaderLib.sol"; @@ -27,13 +27,13 @@ import {AvailabilityOracle} from "../../src/core/availability_oracle/Availabilit */ contract DecoderTest is DecoderBase { DecoderHelper internal helper; - HeaderDecoderHelper internal headerHelper; + HeaderLibHelper internal headerHelper; MessagesDecoderHelper internal messagesHelper; TxsDecoderHelper internal txsHelper; function setUp() public virtual { helper = new DecoderHelper(); - headerHelper = new HeaderDecoderHelper(); + headerHelper = new HeaderLibHelper(); messagesHelper = new MessagesDecoderHelper(); txsHelper = new TxsDecoderHelper(); } diff --git a/l1-contracts/test/decoders/helpers/HeaderDecoderHelper.sol b/l1-contracts/test/decoders/helpers/HeaderLibHelper.sol similarity index 92% rename from l1-contracts/test/decoders/helpers/HeaderDecoderHelper.sol rename to l1-contracts/test/decoders/helpers/HeaderLibHelper.sol index 5d78b620b2a..7d839535a74 100644 --- a/l1-contracts/test/decoders/helpers/HeaderDecoderHelper.sol +++ b/l1-contracts/test/decoders/helpers/HeaderLibHelper.sol @@ -4,7 +4,7 @@ pragma solidity >=0.8.18; import {HeaderLib} from "../../../src/core/libraries/HeaderLib.sol"; -contract HeaderDecoderHelper { +contract HeaderLibHelper { // A wrapper used such that we get "calldata" and not memory function decode(bytes calldata _header) public pure returns (HeaderLib.Header memory) { return HeaderLib.decode(_header); diff --git a/l1-contracts/test/fixtures/empty_block_0.json b/l1-contracts/test/fixtures/empty_block_0.json index 69a1059fe90..bed87d58ed3 100644 --- a/l1-contracts/test/fixtures/empty_block_0.json +++ b/l1-contracts/test/fixtures/empty_block_0.json @@ -75,7 +75,7 @@ } } }, - "header": "0x0000000000000000000000000000000000000000000000000000000000007a690000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000001864fcdaa80ff2719154fa7c8a9050662972707168d69eac9db6fd3110829f800000001016642d9ccd8346c403aa4c3fa451178b22534a27035cdaa6ec34ae53b29c50cb000001000bcfa3e9f1a8922ee92c6dc964d6595907c1804a86753774322b468f69d4f278000001801864fcdaa80ff2719154fa7c8a9050662972707168d69eac9db6fd3110829f80000000041ed250ed73db6e70805c4efcf0056e8695b79cd3ba418e827c184dee6c6fb0e0000000601a005071a487e4891787073a91504fe6ea55280bc6f65a021fd6f7ca1f10aa02000000015b89af3c0d0bf66ac691697d317108e8f51bb8e3217d56f152b80867ad25d4a7", + "header": "0x1a005071a487e4891787073a91504fe6ea55280bc6f65a021fd6f7ca1f10aa02000000015b89af3c0d0bf66ac691697d317108e8f51bb8e3217d56f152b80867ad25d4a71864fcdaa80ff2719154fa7c8a9050662972707168d69eac9db6fd3110829f800000001016642d9ccd8346c403aa4c3fa451178b22534a27035cdaa6ec34ae53b29c50cb000001000bcfa3e9f1a8922ee92c6dc964d6595907c1804a86753774322b468f69d4f278000001801864fcdaa80ff2719154fa7c8a9050662972707168d69eac9db6fd3110829f80000000041ed250ed73db6e70805c4efcf0056e8695b79cd3ba418e827c184dee6c6fb0e0000000600000000000000000000000000000000000000000000000000000000000007a69000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000", "l1ToL2MessagesHash": "0x076a27c79e5ace2a3d47f9dd2e83e4ff6ea8872b3c2218f66c92b89b55f36560", "publicInputsHash": "0x1476d6b0483d0d5fc4c9d3b04f50105d97a06bb01054ec7acccac3ff6c85f960" } diff --git a/l1-contracts/test/fixtures/empty_block_1.json b/l1-contracts/test/fixtures/empty_block_1.json index 006b03407f5..2d4639fc25f 100644 --- a/l1-contracts/test/fixtures/empty_block_1.json +++ b/l1-contracts/test/fixtures/empty_block_1.json @@ -35,7 +35,7 @@ ] }, "block": { - "archive": "0x01a7192428c21e1c55be4d35e253b2f30a48c4d7fdb3f4048d208986707b7906", + "archive": "0x2068f1adad2617364389ebe8a1eb54b969af5f5145be43080dce735a0edb0e3e", "body": "0x000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000001000000000000000000000000000000000", "calldataHash": "0x5b89af3c0d0bf66ac691697d317108e8f51bb8e3217d56f152b80867ad25d4a7", "decodedHeader": { @@ -43,7 +43,7 @@ "globalVariables": { "blockNumber": 2, "chainId": 31337, - "timestamp": 1705501940, + "timestamp": 1706272901, "version": 1 }, "lastArchive": { @@ -75,8 +75,8 @@ } } }, - "header": "0x0000000000000000000000000000000000000000000000000000000000007a69000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000065a7e4f41864fcdaa80ff2719154fa7c8a9050662972707168d69eac9db6fd3110829f800000002016642d9ccd8346c403aa4c3fa451178b22534a27035cdaa6ec34ae53b29c50cb000002000bcfa3e9f1a8922ee92c6dc964d6595907c1804a86753774322b468f69d4f278000002801864fcdaa80ff2719154fa7c8a9050662972707168d69eac9db6fd3110829f80000000081ed250ed73db6e70805c4efcf0056e8695b79cd3ba418e827c184dee6c6fb0e0000000a01a11e8b1d440a44deef8aa8e4eec8f476e780ee6eac2d7d64b09c66b8063ee11000000025b89af3c0d0bf66ac691697d317108e8f51bb8e3217d56f152b80867ad25d4a7", + "header": "0x1a11e8b1d440a44deef8aa8e4eec8f476e780ee6eac2d7d64b09c66b8063ee11000000025b89af3c0d0bf66ac691697d317108e8f51bb8e3217d56f152b80867ad25d4a71864fcdaa80ff2719154fa7c8a9050662972707168d69eac9db6fd3110829f800000002016642d9ccd8346c403aa4c3fa451178b22534a27035cdaa6ec34ae53b29c50cb000002000bcfa3e9f1a8922ee92c6dc964d6595907c1804a86753774322b468f69d4f278000002801864fcdaa80ff2719154fa7c8a9050662972707168d69eac9db6fd3110829f80000000081ed250ed73db6e70805c4efcf0056e8695b79cd3ba418e827c184dee6c6fb0e0000000a00000000000000000000000000000000000000000000000000000000000007a69000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000065b3a885", "l1ToL2MessagesHash": "0x076a27c79e5ace2a3d47f9dd2e83e4ff6ea8872b3c2218f66c92b89b55f36560", - "publicInputsHash": "0x0730fec86325dbb2c6cb108f50628cf32f22f526411f8ef8e48fd8be5f43f536" + "publicInputsHash": "0x2c3372274a0c11108d634c3f133ae26232b662ca28c127f1710d92645d206b72" } } \ No newline at end of file diff --git a/l1-contracts/test/fixtures/mixed_block_0.json b/l1-contracts/test/fixtures/mixed_block_0.json index b9e7aea554e..11e14b9d7a4 100644 --- a/l1-contracts/test/fixtures/mixed_block_0.json +++ b/l1-contracts/test/fixtures/mixed_block_0.json @@ -53,10 +53,10 @@ }, "block": { "archive": "0x1f1de772c009f5b1660876343eb57b7a676a84c695b0c526de2f238c41810907", - "body": "0x000001000000000000000000000000000000000000000000000000000000000000000140000000000000000000000000000000000000000000000000000000000000014100000000000000000000000000000000000000000000000000000000000001420000000000000000000000000000000000000000000000000000000000000143000000000000000000000000000000000000000000000000000000000000014400000000000000000000000000000000000000000000000000000000000001450000000000000000000000000000000000000000000000000000000000000146000000000000000000000000000000000000000000000000000000000000014700000000000000000000000000000000000000000000000000000000000001480000000000000000000000000000000000000000000000000000000000000149000000000000000000000000000000000000000000000000000000000000014a000000000000000000000000000000000000000000000000000000000000014b000000000000000000000000000000000000000000000000000000000000014c000000000000000000000000000000000000000000000000000000000000014d000000000000000000000000000000000000000000000000000000000000014e000000000000000000000000000000000000000000000000000000000000014f0000000000000000000000000000000000000000000000000000000000000150000000000000000000000000000000000000000000000000000000000000015100000000000000000000000000000000000000000000000000000000000001520000000000000000000000000000000000000000000000000000000000000153000000000000000000000000000000000000000000000000000000000000015400000000000000000000000000000000000000000000000000000000000001550000000000000000000000000000000000000000000000000000000000000156000000000000000000000000000000000000000000000000000000000000015700000000000000000000000000000000000000000000000000000000000001580000000000000000000000000000000000000000000000000000000000000159000000000000000000000000000000000000000000000000000000000000015a000000000000000000000000000000000000000000000000000000000000015b000000000000000000000000000000000000000000000000000000000000015c000000000000000000000000000000000000000000000000000000000000015d000000000000000000000000000000000000000000000000000000000000015e000000000000000000000000000000000000000000000000000000000000015f0000000000000000000000000000000000000000000000000000000000000160000000000000000000000000000000000000000000000000000000000000016100000000000000000000000000000000000000000000000000000000000001620000000000000000000000000000000000000000000000000000000000000163000000000000000000000000000000000000000000000000000000000000016400000000000000000000000000000000000000000000000000000000000001650000000000000000000000000000000000000000000000000000000000000166000000000000000000000000000000000000000000000000000000000000016700000000000000000000000000000000000000000000000000000000000001680000000000000000000000000000000000000000000000000000000000000169000000000000000000000000000000000000000000000000000000000000016a000000000000000000000000000000000000000000000000000000000000016b000000000000000000000000000000000000000000000000000000000000016c000000000000000000000000000000000000000000000000000000000000016d000000000000000000000000000000000000000000000000000000000000016e000000000000000000000000000000000000000000000000000000000000016f0000000000000000000000000000000000000000000000000000000000000170000000000000000000000000000000000000000000000000000000000000017100000000000000000000000000000000000000000000000000000000000001720000000000000000000000000000000000000000000000000000000000000173000000000000000000000000000000000000000000000000000000000000017400000000000000000000000000000000000000000000000000000000000001750000000000000000000000000000000000000000000000000000000000000176000000000000000000000000000000000000000000000000000000000000017700000000000000000000000000000000000000000000000000000000000001780000000000000000000000000000000000000000000000000000000000000179000000000000000000000000000000000000000000000000000000000000017a000000000000000000000000000000000000000000000000000000000000017b000000000000000000000000000000000000000000000000000000000000017c000000000000000000000000000000000000000000000000000000000000017d000000000000000000000000000000000000000000000000000000000000017e000000000000000000000000000000000000000000000000000000000000017f0000000000000000000000000000000000000000000000000000000000000180000000000000000000000000000000000000000000000000000000000000018100000000000000000000000000000000000000000000000000000000000001820000000000000000000000000000000000000000000000000000000000000183000000000000000000000000000000000000000000000000000000000000018400000000000000000000000000000000000000000000000000000000000001850000000000000000000000000000000000000000000000000000000000000186000000000000000000000000000000000000000000000000000000000000018700000000000000000000000000000000000000000000000000000000000001880000000000000000000000000000000000000000000000000000000000000189000000000000000000000000000000000000000000000000000000000000018a000000000000000000000000000000000000000000000000000000000000018b000000000000000000000000000000000000000000000000000000000000018c000000000000000000000000000000000000000000000000000000000000018d000000000000000000000000000000000000000000000000000000000000018e000000000000000000000000000000000000000000000000000000000000018f0000000000000000000000000000000000000000000000000000000000000190000000000000000000000000000000000000000000000000000000000000019100000000000000000000000000000000000000000000000000000000000001920000000000000000000000000000000000000000000000000000000000000193000000000000000000000000000000000000000000000000000000000000019400000000000000000000000000000000000000000000000000000000000001950000000000000000000000000000000000000000000000000000000000000196000000000000000000000000000000000000000000000000000000000000019700000000000000000000000000000000000000000000000000000000000001980000000000000000000000000000000000000000000000000000000000000199000000000000000000000000000000000000000000000000000000000000019a000000000000000000000000000000000000000000000000000000000000019b000000000000000000000000000000000000000000000000000000000000019c000000000000000000000000000000000000000000000000000000000000019d000000000000000000000000000000000000000000000000000000000000019e000000000000000000000000000000000000000000000000000000000000019f00000000000000000000000000000000000000000000000000000000000001a000000000000000000000000000000000000000000000000000000000000001a100000000000000000000000000000000000000000000000000000000000001a200000000000000000000000000000000000000000000000000000000000001a300000000000000000000000000000000000000000000000000000000000001a400000000000000000000000000000000000000000000000000000000000001a500000000000000000000000000000000000000000000000000000000000001a600000000000000000000000000000000000000000000000000000000000001a700000000000000000000000000000000000000000000000000000000000001a800000000000000000000000000000000000000000000000000000000000001a900000000000000000000000000000000000000000000000000000000000001aa00000000000000000000000000000000000000000000000000000000000001ab00000000000000000000000000000000000000000000000000000000000001ac00000000000000000000000000000000000000000000000000000000000001ad00000000000000000000000000000000000000000000000000000000000001ae00000000000000000000000000000000000000000000000000000000000001af00000000000000000000000000000000000000000000000000000000000001b000000000000000000000000000000000000000000000000000000000000001b100000000000000000000000000000000000000000000000000000000000001b200000000000000000000000000000000000000000000000000000000000001b300000000000000000000000000000000000000000000000000000000000001b400000000000000000000000000000000000000000000000000000000000001b500000000000000000000000000000000000000000000000000000000000001b600000000000000000000000000000000000000000000000000000000000001b700000000000000000000000000000000000000000000000000000000000001b800000000000000000000000000000000000000000000000000000000000001b900000000000000000000000000000000000000000000000000000000000001ba00000000000000000000000000000000000000000000000000000000000001bb00000000000000000000000000000000000000000000000000000000000001bc00000000000000000000000000000000000000000000000000000000000001bd00000000000000000000000000000000000000000000000000000000000001be00000000000000000000000000000000000000000000000000000000000001bf00000000000000000000000000000000000000000000000000000000000001c000000000000000000000000000000000000000000000000000000000000001c100000000000000000000000000000000000000000000000000000000000001c200000000000000000000000000000000000000000000000000000000000001c300000000000000000000000000000000000000000000000000000000000001c400000000000000000000000000000000000000000000000000000000000001c500000000000000000000000000000000000000000000000000000000000001c600000000000000000000000000000000000000000000000000000000000001c700000000000000000000000000000000000000000000000000000000000001c800000000000000000000000000000000000000000000000000000000000001c900000000000000000000000000000000000000000000000000000000000001ca00000000000000000000000000000000000000000000000000000000000001cb00000000000000000000000000000000000000000000000000000000000001cc00000000000000000000000000000000000000000000000000000000000001cd00000000000000000000000000000000000000000000000000000000000001ce00000000000000000000000000000000000000000000000000000000000001cf00000000000000000000000000000000000000000000000000000000000001d000000000000000000000000000000000000000000000000000000000000001d100000000000000000000000000000000000000000000000000000000000001d200000000000000000000000000000000000000000000000000000000000001d300000000000000000000000000000000000000000000000000000000000001d400000000000000000000000000000000000000000000000000000000000001d500000000000000000000000000000000000000000000000000000000000001d600000000000000000000000000000000000000000000000000000000000001d700000000000000000000000000000000000000000000000000000000000001d800000000000000000000000000000000000000000000000000000000000001d900000000000000000000000000000000000000000000000000000000000001da00000000000000000000000000000000000000000000000000000000000001db00000000000000000000000000000000000000000000000000000000000001dc00000000000000000000000000000000000000000000000000000000000001dd00000000000000000000000000000000000000000000000000000000000001de00000000000000000000000000000000000000000000000000000000000001df00000000000000000000000000000000000000000000000000000000000001e000000000000000000000000000000000000000000000000000000000000001e100000000000000000000000000000000000000000000000000000000000001e200000000000000000000000000000000000000000000000000000000000001e300000000000000000000000000000000000000000000000000000000000001e400000000000000000000000000000000000000000000000000000000000001e500000000000000000000000000000000000000000000000000000000000001e600000000000000000000000000000000000000000000000000000000000001e700000000000000000000000000000000000000000000000000000000000001e800000000000000000000000000000000000000000000000000000000000001e900000000000000000000000000000000000000000000000000000000000001ea00000000000000000000000000000000000000000000000000000000000001eb00000000000000000000000000000000000000000000000000000000000001ec00000000000000000000000000000000000000000000000000000000000001ed00000000000000000000000000000000000000000000000000000000000001ee00000000000000000000000000000000000000000000000000000000000001ef00000000000000000000000000000000000000000000000000000000000001f000000000000000000000000000000000000000000000000000000000000001f100000000000000000000000000000000000000000000000000000000000001f200000000000000000000000000000000000000000000000000000000000001f300000000000000000000000000000000000000000000000000000000000001f400000000000000000000000000000000000000000000000000000000000001f500000000000000000000000000000000000000000000000000000000000001f600000000000000000000000000000000000000000000000000000000000001f700000000000000000000000000000000000000000000000000000000000001f800000000000000000000000000000000000000000000000000000000000001f900000000000000000000000000000000000000000000000000000000000001fa00000000000000000000000000000000000000000000000000000000000001fb00000000000000000000000000000000000000000000000000000000000001fc00000000000000000000000000000000000000000000000000000000000001fd00000000000000000000000000000000000000000000000000000000000001fe00000000000000000000000000000000000000000000000000000000000001ff0000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000020100000000000000000000000000000000000000000000000000000000000002020000000000000000000000000000000000000000000000000000000000000203000000000000000000000000000000000000000000000000000000000000020400000000000000000000000000000000000000000000000000000000000002050000000000000000000000000000000000000000000000000000000000000206000000000000000000000000000000000000000000000000000000000000020700000000000000000000000000000000000000000000000000000000000002080000000000000000000000000000000000000000000000000000000000000209000000000000000000000000000000000000000000000000000000000000020a000000000000000000000000000000000000000000000000000000000000020b000000000000000000000000000000000000000000000000000000000000020c000000000000000000000000000000000000000000000000000000000000020d000000000000000000000000000000000000000000000000000000000000020e000000000000000000000000000000000000000000000000000000000000020f0000000000000000000000000000000000000000000000000000000000000210000000000000000000000000000000000000000000000000000000000000021100000000000000000000000000000000000000000000000000000000000002120000000000000000000000000000000000000000000000000000000000000213000000000000000000000000000000000000000000000000000000000000021400000000000000000000000000000000000000000000000000000000000002150000000000000000000000000000000000000000000000000000000000000216000000000000000000000000000000000000000000000000000000000000021700000000000000000000000000000000000000000000000000000000000002180000000000000000000000000000000000000000000000000000000000000219000000000000000000000000000000000000000000000000000000000000021a000000000000000000000000000000000000000000000000000000000000021b000000000000000000000000000000000000000000000000000000000000021c000000000000000000000000000000000000000000000000000000000000021d000000000000000000000000000000000000000000000000000000000000021e000000000000000000000000000000000000000000000000000000000000021f0000000000000000000000000000000000000000000000000000000000000220000000000000000000000000000000000000000000000000000000000000022100000000000000000000000000000000000000000000000000000000000002220000000000000000000000000000000000000000000000000000000000000223000000000000000000000000000000000000000000000000000000000000022400000000000000000000000000000000000000000000000000000000000002250000000000000000000000000000000000000000000000000000000000000226000000000000000000000000000000000000000000000000000000000000022700000000000000000000000000000000000000000000000000000000000002280000000000000000000000000000000000000000000000000000000000000229000000000000000000000000000000000000000000000000000000000000022a000000000000000000000000000000000000000000000000000000000000022b000000000000000000000000000000000000000000000000000000000000022c000000000000000000000000000000000000000000000000000000000000022d000000000000000000000000000000000000000000000000000000000000022e000000000000000000000000000000000000000000000000000000000000022f0000000000000000000000000000000000000000000000000000000000000230000000000000000000000000000000000000000000000000000000000000023100000000000000000000000000000000000000000000000000000000000002320000000000000000000000000000000000000000000000000000000000000233000000000000000000000000000000000000000000000000000000000000023400000000000000000000000000000000000000000000000000000000000002350000000000000000000000000000000000000000000000000000000000000236000000000000000000000000000000000000000000000000000000000000023700000000000000000000000000000000000000000000000000000000000002380000000000000000000000000000000000000000000000000000000000000239000000000000000000000000000000000000000000000000000000000000023a000000000000000000000000000000000000000000000000000000000000023b000000000000000000000000000000000000000000000000000000000000023c000000000000000000000000000000000000000000000000000000000000023d000000000000000000000000000000000000000000000000000000000000023e000000000000000000000000000000000000000000000000000000000000023f000001000000000000000000000000000000000000000000000000000000000000000240000000000000000000000000000000000000000000000000000000000000024100000000000000000000000000000000000000000000000000000000000002420000000000000000000000000000000000000000000000000000000000000243000000000000000000000000000000000000000000000000000000000000024400000000000000000000000000000000000000000000000000000000000002450000000000000000000000000000000000000000000000000000000000000246000000000000000000000000000000000000000000000000000000000000024700000000000000000000000000000000000000000000000000000000000002480000000000000000000000000000000000000000000000000000000000000249000000000000000000000000000000000000000000000000000000000000024a000000000000000000000000000000000000000000000000000000000000024b000000000000000000000000000000000000000000000000000000000000024c000000000000000000000000000000000000000000000000000000000000024d000000000000000000000000000000000000000000000000000000000000024e000000000000000000000000000000000000000000000000000000000000024f0000000000000000000000000000000000000000000000000000000000000250000000000000000000000000000000000000000000000000000000000000025100000000000000000000000000000000000000000000000000000000000002520000000000000000000000000000000000000000000000000000000000000253000000000000000000000000000000000000000000000000000000000000025400000000000000000000000000000000000000000000000000000000000002550000000000000000000000000000000000000000000000000000000000000256000000000000000000000000000000000000000000000000000000000000025700000000000000000000000000000000000000000000000000000000000002580000000000000000000000000000000000000000000000000000000000000259000000000000000000000000000000000000000000000000000000000000025a000000000000000000000000000000000000000000000000000000000000025b000000000000000000000000000000000000000000000000000000000000025c000000000000000000000000000000000000000000000000000000000000025d000000000000000000000000000000000000000000000000000000000000025e000000000000000000000000000000000000000000000000000000000000025f0000000000000000000000000000000000000000000000000000000000000260000000000000000000000000000000000000000000000000000000000000026100000000000000000000000000000000000000000000000000000000000002620000000000000000000000000000000000000000000000000000000000000263000000000000000000000000000000000000000000000000000000000000026400000000000000000000000000000000000000000000000000000000000002650000000000000000000000000000000000000000000000000000000000000266000000000000000000000000000000000000000000000000000000000000026700000000000000000000000000000000000000000000000000000000000002680000000000000000000000000000000000000000000000000000000000000269000000000000000000000000000000000000000000000000000000000000026a000000000000000000000000000000000000000000000000000000000000026b000000000000000000000000000000000000000000000000000000000000026c000000000000000000000000000000000000000000000000000000000000026d000000000000000000000000000000000000000000000000000000000000026e000000000000000000000000000000000000000000000000000000000000026f0000000000000000000000000000000000000000000000000000000000000270000000000000000000000000000000000000000000000000000000000000027100000000000000000000000000000000000000000000000000000000000002720000000000000000000000000000000000000000000000000000000000000273000000000000000000000000000000000000000000000000000000000000027400000000000000000000000000000000000000000000000000000000000002750000000000000000000000000000000000000000000000000000000000000276000000000000000000000000000000000000000000000000000000000000027700000000000000000000000000000000000000000000000000000000000002780000000000000000000000000000000000000000000000000000000000000279000000000000000000000000000000000000000000000000000000000000027a000000000000000000000000000000000000000000000000000000000000027b000000000000000000000000000000000000000000000000000000000000027c000000000000000000000000000000000000000000000000000000000000027d000000000000000000000000000000000000000000000000000000000000027e00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000280000000000000000000000000000000000000000000000000000000000000028100000000000000000000000000000000000000000000000000000000000002820000000000000000000000000000000000000000000000000000000000000283000000000000000000000000000000000000000000000000000000000000028400000000000000000000000000000000000000000000000000000000000002850000000000000000000000000000000000000000000000000000000000000286000000000000000000000000000000000000000000000000000000000000028700000000000000000000000000000000000000000000000000000000000002880000000000000000000000000000000000000000000000000000000000000289000000000000000000000000000000000000000000000000000000000000028a000000000000000000000000000000000000000000000000000000000000028b000000000000000000000000000000000000000000000000000000000000028c000000000000000000000000000000000000000000000000000000000000028d000000000000000000000000000000000000000000000000000000000000028e000000000000000000000000000000000000000000000000000000000000028f0000000000000000000000000000000000000000000000000000000000000290000000000000000000000000000000000000000000000000000000000000029100000000000000000000000000000000000000000000000000000000000002920000000000000000000000000000000000000000000000000000000000000293000000000000000000000000000000000000000000000000000000000000029400000000000000000000000000000000000000000000000000000000000002950000000000000000000000000000000000000000000000000000000000000296000000000000000000000000000000000000000000000000000000000000029700000000000000000000000000000000000000000000000000000000000002980000000000000000000000000000000000000000000000000000000000000299000000000000000000000000000000000000000000000000000000000000029a000000000000000000000000000000000000000000000000000000000000029b000000000000000000000000000000000000000000000000000000000000029c000000000000000000000000000000000000000000000000000000000000029d000000000000000000000000000000000000000000000000000000000000029e000000000000000000000000000000000000000000000000000000000000029f00000000000000000000000000000000000000000000000000000000000002a000000000000000000000000000000000000000000000000000000000000002a100000000000000000000000000000000000000000000000000000000000002a200000000000000000000000000000000000000000000000000000000000002a300000000000000000000000000000000000000000000000000000000000002a400000000000000000000000000000000000000000000000000000000000002a500000000000000000000000000000000000000000000000000000000000002a600000000000000000000000000000000000000000000000000000000000002a700000000000000000000000000000000000000000000000000000000000002a800000000000000000000000000000000000000000000000000000000000002a900000000000000000000000000000000000000000000000000000000000002aa00000000000000000000000000000000000000000000000000000000000002ab00000000000000000000000000000000000000000000000000000000000002ac00000000000000000000000000000000000000000000000000000000000002ad00000000000000000000000000000000000000000000000000000000000002ae00000000000000000000000000000000000000000000000000000000000002af00000000000000000000000000000000000000000000000000000000000002b000000000000000000000000000000000000000000000000000000000000002b100000000000000000000000000000000000000000000000000000000000002b200000000000000000000000000000000000000000000000000000000000002b300000000000000000000000000000000000000000000000000000000000002b400000000000000000000000000000000000000000000000000000000000002b500000000000000000000000000000000000000000000000000000000000002b600000000000000000000000000000000000000000000000000000000000002b700000000000000000000000000000000000000000000000000000000000002b800000000000000000000000000000000000000000000000000000000000002b900000000000000000000000000000000000000000000000000000000000002ba00000000000000000000000000000000000000000000000000000000000002bb00000000000000000000000000000000000000000000000000000000000002bc00000000000000000000000000000000000000000000000000000000000002bd00000000000000000000000000000000000000000000000000000000000002be000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002c000000000000000000000000000000000000000000000000000000000000002c100000000000000000000000000000000000000000000000000000000000002c200000000000000000000000000000000000000000000000000000000000002c300000000000000000000000000000000000000000000000000000000000002c400000000000000000000000000000000000000000000000000000000000002c500000000000000000000000000000000000000000000000000000000000002c600000000000000000000000000000000000000000000000000000000000002c700000000000000000000000000000000000000000000000000000000000002c800000000000000000000000000000000000000000000000000000000000002c900000000000000000000000000000000000000000000000000000000000002ca00000000000000000000000000000000000000000000000000000000000002cb00000000000000000000000000000000000000000000000000000000000002cc00000000000000000000000000000000000000000000000000000000000002cd00000000000000000000000000000000000000000000000000000000000002ce00000000000000000000000000000000000000000000000000000000000002cf00000000000000000000000000000000000000000000000000000000000002d000000000000000000000000000000000000000000000000000000000000002d100000000000000000000000000000000000000000000000000000000000002d200000000000000000000000000000000000000000000000000000000000002d300000000000000000000000000000000000000000000000000000000000002d400000000000000000000000000000000000000000000000000000000000002d500000000000000000000000000000000000000000000000000000000000002d600000000000000000000000000000000000000000000000000000000000002d700000000000000000000000000000000000000000000000000000000000002d800000000000000000000000000000000000000000000000000000000000002d900000000000000000000000000000000000000000000000000000000000002da00000000000000000000000000000000000000000000000000000000000002db00000000000000000000000000000000000000000000000000000000000002dc00000000000000000000000000000000000000000000000000000000000002dd00000000000000000000000000000000000000000000000000000000000002de00000000000000000000000000000000000000000000000000000000000002df00000000000000000000000000000000000000000000000000000000000002e000000000000000000000000000000000000000000000000000000000000002e100000000000000000000000000000000000000000000000000000000000002e200000000000000000000000000000000000000000000000000000000000002e300000000000000000000000000000000000000000000000000000000000002e400000000000000000000000000000000000000000000000000000000000002e500000000000000000000000000000000000000000000000000000000000002e600000000000000000000000000000000000000000000000000000000000002e700000000000000000000000000000000000000000000000000000000000002e800000000000000000000000000000000000000000000000000000000000002e900000000000000000000000000000000000000000000000000000000000002ea00000000000000000000000000000000000000000000000000000000000002eb00000000000000000000000000000000000000000000000000000000000002ec00000000000000000000000000000000000000000000000000000000000002ed00000000000000000000000000000000000000000000000000000000000002ee00000000000000000000000000000000000000000000000000000000000002ef00000000000000000000000000000000000000000000000000000000000002f000000000000000000000000000000000000000000000000000000000000002f100000000000000000000000000000000000000000000000000000000000002f200000000000000000000000000000000000000000000000000000000000002f300000000000000000000000000000000000000000000000000000000000002f400000000000000000000000000000000000000000000000000000000000002f500000000000000000000000000000000000000000000000000000000000002f600000000000000000000000000000000000000000000000000000000000002f700000000000000000000000000000000000000000000000000000000000002f800000000000000000000000000000000000000000000000000000000000002f900000000000000000000000000000000000000000000000000000000000002fa00000000000000000000000000000000000000000000000000000000000002fb00000000000000000000000000000000000000000000000000000000000002fc00000000000000000000000000000000000000000000000000000000000002fd00000000000000000000000000000000000000000000000000000000000002fe00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000300000000000000000000000000000000000000000000000000000000000000030100000000000000000000000000000000000000000000000000000000000003020000000000000000000000000000000000000000000000000000000000000303000000000000000000000000000000000000000000000000000000000000030400000000000000000000000000000000000000000000000000000000000003050000000000000000000000000000000000000000000000000000000000000306000000000000000000000000000000000000000000000000000000000000030700000000000000000000000000000000000000000000000000000000000003080000000000000000000000000000000000000000000000000000000000000309000000000000000000000000000000000000000000000000000000000000030a000000000000000000000000000000000000000000000000000000000000030b000000000000000000000000000000000000000000000000000000000000030c000000000000000000000000000000000000000000000000000000000000030d000000000000000000000000000000000000000000000000000000000000030e000000000000000000000000000000000000000000000000000000000000030f0000000000000000000000000000000000000000000000000000000000000310000000000000000000000000000000000000000000000000000000000000031100000000000000000000000000000000000000000000000000000000000003120000000000000000000000000000000000000000000000000000000000000313000000000000000000000000000000000000000000000000000000000000031400000000000000000000000000000000000000000000000000000000000003150000000000000000000000000000000000000000000000000000000000000316000000000000000000000000000000000000000000000000000000000000031700000000000000000000000000000000000000000000000000000000000003180000000000000000000000000000000000000000000000000000000000000319000000000000000000000000000000000000000000000000000000000000031a000000000000000000000000000000000000000000000000000000000000031b000000000000000000000000000000000000000000000000000000000000031c000000000000000000000000000000000000000000000000000000000000031d000000000000000000000000000000000000000000000000000000000000031e000000000000000000000000000000000000000000000000000000000000031f0000000000000000000000000000000000000000000000000000000000000320000000000000000000000000000000000000000000000000000000000000032100000000000000000000000000000000000000000000000000000000000003220000000000000000000000000000000000000000000000000000000000000323000000000000000000000000000000000000000000000000000000000000032400000000000000000000000000000000000000000000000000000000000003250000000000000000000000000000000000000000000000000000000000000326000000000000000000000000000000000000000000000000000000000000032700000000000000000000000000000000000000000000000000000000000003280000000000000000000000000000000000000000000000000000000000000329000000000000000000000000000000000000000000000000000000000000032a000000000000000000000000000000000000000000000000000000000000032b000000000000000000000000000000000000000000000000000000000000032c000000000000000000000000000000000000000000000000000000000000032d000000000000000000000000000000000000000000000000000000000000032e000000000000000000000000000000000000000000000000000000000000032f0000000000000000000000000000000000000000000000000000000000000330000000000000000000000000000000000000000000000000000000000000033100000000000000000000000000000000000000000000000000000000000003320000000000000000000000000000000000000000000000000000000000000333000000000000000000000000000000000000000000000000000000000000033400000000000000000000000000000000000000000000000000000000000003350000000000000000000000000000000000000000000000000000000000000336000000000000000000000000000000000000000000000000000000000000033700000000000000000000000000000000000000000000000000000000000003380000000000000000000000000000000000000000000000000000000000000339000000000000000000000000000000000000000000000000000000000000033a000000000000000000000000000000000000000000000000000000000000033b000000000000000000000000000000000000000000000000000000000000033c000000000000000000000000000000000000000000000000000000000000033d000000000000000000000000000000000000000000000000000000000000033e0000000000000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000540000000000000000000000000000000000000000000000000000000000000054a0000000000000000000000000000000000000000000000000000000000000541000000000000000000000000000000000000000000000000000000000000054b0000000000000000000000000000000000000000000000000000000000000542000000000000000000000000000000000000000000000000000000000000054c0000000000000000000000000000000000000000000000000000000000000543000000000000000000000000000000000000000000000000000000000000054d0000000000000000000000000000000000000000000000000000000000000544000000000000000000000000000000000000000000000000000000000000054e0000000000000000000000000000000000000000000000000000000000000545000000000000000000000000000000000000000000000000000000000000054f00000000000000000000000000000000000000000000000000000000000005460000000000000000000000000000000000000000000000000000000000000550000000000000000000000000000000000000000000000000000000000000054700000000000000000000000000000000000000000000000000000000000005510000000000000000000000000000000000000000000000000000000000000548000000000000000000000000000000000000000000000000000000000000055200000000000000000000000000000000000000000000000000000000000005490000000000000000000000000000000000000000000000000000000000000553000000000000000000000000000000000000000000000000000000000000054a0000000000000000000000000000000000000000000000000000000000000554000000000000000000000000000000000000000000000000000000000000054b0000000000000000000000000000000000000000000000000000000000000555000000000000000000000000000000000000000000000000000000000000054c0000000000000000000000000000000000000000000000000000000000000556000000000000000000000000000000000000000000000000000000000000054d0000000000000000000000000000000000000000000000000000000000000557000000000000000000000000000000000000000000000000000000000000054e0000000000000000000000000000000000000000000000000000000000000558000000000000000000000000000000000000000000000000000000000000054f00000000000000000000000000000000000000000000000000000000000005590000000000000000000000000000000000000000000000000000000000000580000000000000000000000000000000000000000000000000000000000000058a0000000000000000000000000000000000000000000000000000000000000581000000000000000000000000000000000000000000000000000000000000058b0000000000000000000000000000000000000000000000000000000000000582000000000000000000000000000000000000000000000000000000000000058c0000000000000000000000000000000000000000000000000000000000000583000000000000000000000000000000000000000000000000000000000000058d0000000000000000000000000000000000000000000000000000000000000584000000000000000000000000000000000000000000000000000000000000058e0000000000000000000000000000000000000000000000000000000000000585000000000000000000000000000000000000000000000000000000000000058f00000000000000000000000000000000000000000000000000000000000005860000000000000000000000000000000000000000000000000000000000000590000000000000000000000000000000000000000000000000000000000000058700000000000000000000000000000000000000000000000000000000000005910000000000000000000000000000000000000000000000000000000000000588000000000000000000000000000000000000000000000000000000000000059200000000000000000000000000000000000000000000000000000000000005890000000000000000000000000000000000000000000000000000000000000593000000000000000000000000000000000000000000000000000000000000058a0000000000000000000000000000000000000000000000000000000000000594000000000000000000000000000000000000000000000000000000000000058b0000000000000000000000000000000000000000000000000000000000000595000000000000000000000000000000000000000000000000000000000000058c0000000000000000000000000000000000000000000000000000000000000596000000000000000000000000000000000000000000000000000000000000058d0000000000000000000000000000000000000000000000000000000000000597000000000000000000000000000000000000000000000000000000000000058e0000000000000000000000000000000000000000000000000000000000000598000000000000000000000000000000000000000000000000000000000000058f000000000000000000000000000000000000000000000000000000000000059900000000000000000000000000000000000000000000000000000000000005c000000000000000000000000000000000000000000000000000000000000005ca00000000000000000000000000000000000000000000000000000000000005c100000000000000000000000000000000000000000000000000000000000005cb00000000000000000000000000000000000000000000000000000000000005c200000000000000000000000000000000000000000000000000000000000005cc00000000000000000000000000000000000000000000000000000000000005c300000000000000000000000000000000000000000000000000000000000005cd00000000000000000000000000000000000000000000000000000000000005c400000000000000000000000000000000000000000000000000000000000005ce00000000000000000000000000000000000000000000000000000000000005c500000000000000000000000000000000000000000000000000000000000005cf00000000000000000000000000000000000000000000000000000000000005c600000000000000000000000000000000000000000000000000000000000005d000000000000000000000000000000000000000000000000000000000000005c700000000000000000000000000000000000000000000000000000000000005d100000000000000000000000000000000000000000000000000000000000005c800000000000000000000000000000000000000000000000000000000000005d200000000000000000000000000000000000000000000000000000000000005c900000000000000000000000000000000000000000000000000000000000005d300000000000000000000000000000000000000000000000000000000000005ca00000000000000000000000000000000000000000000000000000000000005d400000000000000000000000000000000000000000000000000000000000005cb00000000000000000000000000000000000000000000000000000000000005d500000000000000000000000000000000000000000000000000000000000005cc00000000000000000000000000000000000000000000000000000000000005d600000000000000000000000000000000000000000000000000000000000005cd00000000000000000000000000000000000000000000000000000000000005d700000000000000000000000000000000000000000000000000000000000005ce00000000000000000000000000000000000000000000000000000000000005d800000000000000000000000000000000000000000000000000000000000005cf00000000000000000000000000000000000000000000000000000000000005d90000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000060a0000000000000000000000000000000000000000000000000000000000000601000000000000000000000000000000000000000000000000000000000000060b0000000000000000000000000000000000000000000000000000000000000602000000000000000000000000000000000000000000000000000000000000060c0000000000000000000000000000000000000000000000000000000000000603000000000000000000000000000000000000000000000000000000000000060d0000000000000000000000000000000000000000000000000000000000000604000000000000000000000000000000000000000000000000000000000000060e0000000000000000000000000000000000000000000000000000000000000605000000000000000000000000000000000000000000000000000000000000060f00000000000000000000000000000000000000000000000000000000000006060000000000000000000000000000000000000000000000000000000000000610000000000000000000000000000000000000000000000000000000000000060700000000000000000000000000000000000000000000000000000000000006110000000000000000000000000000000000000000000000000000000000000608000000000000000000000000000000000000000000000000000000000000061200000000000000000000000000000000000000000000000000000000000006090000000000000000000000000000000000000000000000000000000000000613000000000000000000000000000000000000000000000000000000000000060a0000000000000000000000000000000000000000000000000000000000000614000000000000000000000000000000000000000000000000000000000000060b0000000000000000000000000000000000000000000000000000000000000615000000000000000000000000000000000000000000000000000000000000060c0000000000000000000000000000000000000000000000000000000000000616000000000000000000000000000000000000000000000000000000000000060d0000000000000000000000000000000000000000000000000000000000000617000000000000000000000000000000000000000000000000000000000000060e0000000000000000000000000000000000000000000000000000000000000618000000000000000000000000000000000000000000000000000000000000060f000000000000000000000000000000000000000000000000000000000000061900000008000000000000000000000000000000000000000000000000000000000000034000000000000000000000000000000000000000000000000000000000000003410000000000000000000000000000000000000000000000000000000000000380000000000000000000000000000000000000000000000000000000000000038100000000000000000000000000000000000000000000000000000000000003c000000000000000000000000000000000000000000000000000000000000003c100000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000401000000041c72e330b60e0052863df88b19ebb482d412b0a7bbb2fabb9347be5e59453d10078d263242fac5a2ad544b5005bcea367ebc04e01ff7ca279650bc63d9488ac304ad4d395e21ea570da47bf574569c6526312c5c7ad63a6d248f694e5c81c2b60e12693b411d9eb8f564aa43f4aa14e3e30f8574425a6d6491416332b77d2709000000000000000000000000000000000000000000000000000000000000104041414141414141414141414141414141414141410000000000000000000000000000000000000000000000000000000000001080818181818181818181818181818181818181818100000000000000000000000000000000000000000000000000000000000010c0c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c10000000000000000000000000000000000000000000000000000000000001100010101010101010101010101010101010101010100000010151de48ca3efbae39f180fe00b8f472ec9f25be10b4f283a87c6d7839353703914c2ea9dedf77698d4afe23bc663263eed0bf9aa3a8b17d9b74812f185610f9e1570cc6641699e3ae87fa258d80a6d853f7b8ccb211dc244d017e2ca6530f8a12806c860af67e9cd50000378411b8c4c4db172ceb2daa862b259b689ccbdc1e005f140c7c95624c8006774279a01ec1ea88617999e4fe6997b6576c4e1c7395a22048b96b586596bd740d0402e15f5577f7ceb5496b65aafc6d89d7c3b34924b0c3f2d50d16279970d682cada30bfa6b29bc0bac0ee2389f6a0444853eccaa932b2a60561da46a58569d71044a84c639e7f88429826e5622581536eb906d9cdd25a2c0a76f7da6924e10751c755227d2535f4ad258b984e78f9f452a853c52300e212d8e2069e4254d81af07744bcbb81121a38f0e2dbed69a523d3fbf85b75c287ca6f33aadbac2e4f058e05924c140d7895a6ed167caf804b710d2ae3ba62b1b51297b3ea37637af6bd56cf33425d95cc5c96e9c2ee3077322fbec86a0c7f32c15d2a888c6cc122e99478c92470a1311635142d82ad7ae67410beeef4ae31f0902ba2fb964922a4610bb18901f7b923885c1d034da5769a48203ae6f0206a92855e2c01ddb3d6553386b5580d681b8230fa4062948668f834f23e0636eaff70aaa64519aafdf4b040bd2f9836e76b9dc13cfec8065dcdf2834d786e06260d10000381000000e00000001bc00000090083367367613e6307621401e0b943e65d00d94f7edba399d403da5d93b1a260922e76adec1b929ab590c851320486c68244084a7f9ea21e5ece1e5dfe99ed6069d12051b95f1210b468eb7a029d2b437107a5a246cc1ba5c8f590f4db407e035a353dc7913b80b52296e05af286de4e002586c55a0c4914e946268a214e0caa1f040bd17a9a93471faffd36dc9835a0e00000090ead4b0c12eaa3254338bbcb40631f1f09b696da71b404cbf7415a1ee3b767d9943920b1dc8deeafa855a44f74bc38c4a74537b01cbb09f8612e4256575c2931a98ec9fcc5892ec9da59eb4807ad5fc0613222acb0c141fe55ec8bca4afdef1de719ac262d7ffea40a4d8d5bfe4ca69c10f624cd3f2f922fd8f5a10a7f212bec0c876327251624bfd7d777ac8884b62ee000000908cd0590d2d18f1214ff5b03b6a1d4cfebfd3e463e1b8e98b81fef46a5ba1b0204686f7c57a65f0bc5ce8bbdfc658c1f6bf4e52b5494ea72f193706883d6f1e5949ecd47315b3e2d1e75208e1c1ac3ba2079c257743ca4a9a4fc96389cd96ec0116a35814f15543843d383818637698392b5d5c5e3851162f2f53df7777c1c45c48b8899ac511d2a97c4faa87b25d98c8000001bc000000903ef97e0c57a6f5834dd84e80e8140c989a97a42ceee35be251dbf29ca3b9f1d4ec53f628312fb024fb1fabf2fdae3c222cc6f52957adaf9197fc22aa824e9afd66b58f53765e2edfcaa1e09bea5d09822c7d1ab1c0cdcbc2839c0ddd4eec2435989bf25e9f105380068b77674cd555da0d171b7673337a53fc13bd94d037cb898889a1690494f98997d6ad6f7cc9395000000090a66537d78ef99d64dcbbc8ac804c985b57d0a15f66dc4e0718252c967ba90161684073a50b2de36c358c3b2d7695af8128ae6fa3b5de2ba491f0f33c4b79256ae780a6b2fa2b8985fcaf46f51b0fe08c1f0be001e5faf07671f50d5d3f3cce0a2b14d8e600356c2190c919f7d5e95826223e80c90c4a715ab25286ec0a8d7fa958a0921ea9df290fb3bd39d9bd779abd000000903b40d81778940a1fbf4b631c6ca7f3f36db907262f5b7c9dbf7ed4677be6b459fd5aa18aa47d58a769fbc70cefd0a14d95d33dc980cff26b234154eaa53ba2e3a301af3d81881091d9c478670d47d98e2b6d37e7a5f4c5fe019363217b64d95782a5619e4eb81582b1798faa5764b58405bed270e597925e8e6b29101e97594231cd55747be6725f19e7faa830aa719b000001bc000000903cabd8fd2d8cc1b863fd474708974e9a086456a8c87bb553bc3b2249a6e6d35cea1bd6cefe1469e8d0505d496da0ba43fa23d5f95c1c9ceacee8d86bc37408bf788a77cd803aee3e8e9ca6be0d5c94f228565b5fe9635fdaf5cb935db1c32ba2eb22e34967322d150bbbd7418be5b47d0214392be8237a660118ab42a43436e5ee08e251d72da69b1e79b1682ec7dc110000009073b2ff420af305f8d6e8877c931a27e634e0e02ad27bd07a221ad29898bd955d5110432c2d520e3e608d73f71db60a877a0cdac7023fe16e14894242fc69a6630ad88e96ed3d9d9076850ea7f2da60302a5103978eb03a24aeaa3ea100b61250b98b8430a42fa3b40d9835841dd01a160597bfd46679cb40dc21fe48f5bfd0d457b4d857ffa793eb3931b23b5a5575e000000090cae03a08acbe94f7daa500858bac74ee45668f7d8b8699c05d15b6c8e3a7cb8e68caa3b92fca659e8b2ff5e0a459d10de2d9faf8d23e5e7e52e7bb3ce821a8d1b23eb3e68b93f2792385210f1c7900e910f6892d878b639348529c87faa00be2522c1084fb1f660ade21c84b7193003e0742f05a45a89b327fad6d6d8c8c8d6d77a0721e688149b63867f7930eba8342000001bc000000909a9712eb2ca308f32883b79151fca031a8e418d19df5dd397ca5ea709cefe8a36855686415423dc2afa0115c7987cce0d69612d7b485e7350a63b4d83f9e2f227e0422dcc23e1f2322b8df45ec7a8853147f0a8ea06fea5cdab7b07659ee18c036b4decfcb5be193e05fda85b194f10f1725eb65e156b30c5a39806822af3fe584cf9d541723131a22a23d1400ec9df9000000901cc8c637db22248cb9ed2e7ed8b7818f01b2af67c16ec9d9808bfcdf8b3bd4e8e750f54a84f646cad8f17eabc164de05f97fd66eee2495a419762ce946f40feb5f703bf8a5f1df0c2f4ba03f641b79160b234176a75d19d6e8a48b4ddd7e03c1289b3ec09a79220ee291370d2113bdc504924683165fc5d275305e79c7cd7a99a36537b9cc94befe1a2373b55e3460f600000090b8bd36129be0f622298f580af1ce6cd694052bda2e07761d1260b253b9b58206071b8329586dee5c5acbeeb94eb02a3753ea4c9614f7f9b9a6345451df3e7fae190b6c494514aed8c7fb7af6145072ae192a9f383c5d48e6cdcad12db87adbace3e736819ce046fda81bbad9b08c0946070798e6b179878937fcd611638e83637ee32c0260e48e372d621c3424b0c66f000001bc00000090c1e5c80e7841d56f2fdc2e22252561986ac0bde8583467b7b7cee85533dd4e82db0023a4aa1280e62e82f1208c465d378c09fe6f571a5d6f540ce1575db5a430eea826342e1b3eb17edaeaba692b3b3c1a9b142508381f48759935787a260b1360cbeb6a3d6f84faf868faaabe86f9831cb84a0def9afcae01d13019e2f20fb0d7fd57755bf8cf337ebd61c5d8e2e2d1000000908e7f1fd37c67d43076831de6f05532cff7fdfb2e2f57e1a3a51bcd9192a40bed6bfaa130ce8cc5d174a14e78f3f269baf7afc9a54b07e71f87d9fade5b0b2c8bd1973b0660b2c0ea5c1323fce5b40eba1fffb76ec613395d3a59e1588c5ebd8fb0f6ab9758df61d991c68b94ea2374a120a570858b479f0603c36e2b9d71bf2e85275fb3bdfb8919ad81f34d106fff6500000090110542aebfe9f65c67402024cb573c20c15d4835724350ba9c4389777e540ed6046da159569ee140da387a7628e7bd71359b470625cfd22a2ef99b2bc9e3dbb60f92b901a1bd8cc7dd325010cd83dd2d2704a4a0e660466faac7a416bce77d91c55b9d2ecb1f8d9d9c627832be30f4312bf94f8a074a7f94a363430d73571d5436dd9ea9bb13d907965b62686edbc8c0000001bc00000090b1b087d7329b0e3a4eb671fde2368893708b601576f3229943a86385ce556707b1f3838287448c58240ce1053b0fc102928723780612640d14a06993d3cef135803ca465102ba0ce7b0180c1a2a5f86e167c4a9c29f4a1783f93e36e5da3246f2117272dd6ff9a2388c6e78bc68e79951b3b844bd1c9a08ee529a5d851df7571c8698b37674d4bdbebf416422b5b1b5d00000090adf29bb0ad8c624adc804c04eea5fcb04d0d9e1b1eb3dc13f09adf0af446ee7d63f60f79423311a40926cf93f4652f306ff72b0e1fdfb0fd2f9d40a278eb076fd4dcbdc2455eff29f08388609213113e17e430c2a54f0d542b2ed1e8bb4b3a66d1bd8dec420e19feba9c40a94d2fabec22e9e452ff8e1e062f4f6b3d71a71798edef1aabd9bc34cdfc86d357bfbc03300000009046114b8c401cb7a062546f00d9506462e8c59a34cbadbedee505f9964f0c00f91e76f232fb6d1fd6b23ac668095ffa7cbbe69eec9a1683483d117a18bd478c50d95cf7db543b69b47398a9d882cc043a2ce5032191bcb02027b0e1a588c0a78d89a09b56337027f328a9f37dac01b66d1d4f45d56e66a2d8909cd8907d5f538ea8be3e635885bd5cc5e018bead3c16f4000001bc00000090174d1d04ca93c9ca135a32a723bb8967a20200bbb988465a446ff902b77675377c405ef506bb6a52daa0caa3b92333d2d9ccf16c130455e0499af88f64ffa855fe93d68d285f3aa916a96e92f33dda572b67c99a667585f74f8cbed06a7baf5aa1891caaee8594d5ac241331a4a12db61d59c1418591a4b8e553d37f38ea41dd4f3af725857dd679a9ce2540a608b17600000090d51e3b5514ee11b26f48094e98382d9552ec78b1eb2a9ac3bf24c87050f31350bf027db86146b05b78fa04582e8e0f943cb18005e9bef42f5a26b27ac45ec5c186170367d36d64a1a15ae4ac30f960112934d6f501914dc3f8fe2081ac4a8be04649a8a23b1ce48a2e1e80d58ce1b67114fcc3214860532b0873915328c140ad663ea2a4c69225afe369c736ef6731df000000901a0614eebea2300dcd77bff3171ac89dbf10245ab35b0f66a6fbea6af09024d465895f491da812ce7b116ba1be3590d1b6ebb2650444187876eb87f9acae4344a12c9f26fef7b619512a82cc5e87392627172f181e622b76ad3c6eac337fbdaade012e6ce8ab235e9d7c457503f216961890422725c67cd84b0319edfefd35dd60d9d88a0c52cd76508cc077bf65c425000001bc0000009020daeae685b4a7d525fa9e7322887a1da77d1379c01593d06367e695e044247a30bc981149f091016a4fd7b65016c2d4dfb8d9356cd33cd741c1df7f139acddbdc94573f89a76f4f2884436d22eb69361a5f09304639dcb02feb179b2f1128f7336824922f4639d03a1227a7a60f55512d03ec183fa21321d4fa61963ba2c2e191d37f25e88eed06291961c155656641000000907745a1f472feba9a29b326cb944fe0478c26c54b6423025ebf12a03925bb30d949f46c0c6fa5ee8c58d86ee0d210f0c397bbd41fc5b1cf46147fbed121631e3dee48473eb6ea01ff20cbeac67c5489f10ce126c6c4e735d5c40e16f674941015e0ae8d94f896ae0d4cd703ec8d2a9b0f105422e72324726e8277939f7f59d1b4a77f17de58303017608e60747567da6e0000009019216981b066c88ed0b3b6f2df84132b0d272d72597ef14bb385b81685909118c95d3d92a73f4ba6af2dcec7c94ccd6ab630209146343d808060fed0df2efd837f54cb06c78bf253fa1b8b8a5d4d7a902218c7234feec00a4e7b214b06a598b4caa2649745402606220865f338d0db2408404192c99dcc6a7c2c06a4e10ac8c625e008aac57d9426770dc24a2c1d20cb00000e00000001bc0000009082d76487e6d930f670dd8294a3ff896e675b59871ddad13511d9452de5b45ffb84f14b9b13c30aa0a0e7a2e6c9104db67fabfefeb577d70b31b3c815903784d22857c61d6fdfb68b8ffb698d19b8b2573005f3cc1d8fc31d65e44e50ab9e5215e3afaac2f83077deea42491ceeb354be10fb78ba40256771f5bc72402ac5d4b95714b5cf2648c85e3e10ae89b7b9f90000000090bb455f351a243a89123ce2b0a85fc2b0d711f7cc0f2292d0d2a1244429b2c3a982fb23fcd8deddfca3feb7ff27f394eb53b99309a1c510314edfdc9df4c2fc3db95ea67739c2ebee9989354c7252b6271b6ca0c3f3fd42e89c43684e31a94631dd0c57d049f8447cea033c05ac25cd021cab485baf707fcbcabb7210161ed846e3ba40efa3fb4cbe746a1d5b446cc7be000000904a9c85c97e0d4c935ebc0fda0fd70e4fe7ba903bfe904e6b71be94b512c7d61c05945d369e0a354935013d1840c07e272f4f967e9da05693169c04a01d9c677b30e2c399e57415cd33f4703be42ce44d093d5355d2f3cd6545583eb4b716865564986ec13253b5d93bc537a0d8aef806031481898708631063bfbd047cc701e354bff464bbd7d936bb53e73f234f8a00000001bc0000009014068b8ada80fa69e69589488779f7c44a6996e8ac9b6d6a317eb1693f1d4e094e11b24717028489585be7ab499453c89138fadaf6ab6f0f571dfaff11355fb748cf3d829b36c5b972c698d2bca1d7c02b9acc9c15ff9e5666d7b37e627e590a4d8f1bb24109c7b44936ef647a72b4921b2fa2bfaf9714a3e51999d1e590dfc46ead80c91cebe32784ab654874f9ccb200000090139f1dd54b92b5547d2c96e6018cfc3db4cd7859058e4d041123221c165a25ee3bc757ebc93503777b5d42f01eae0869fca95ee005728e2613bc7c94d734bb49a1c349a8815b3f4161ade33090ac86b12431f06f0dde369efdbda3de50c7ba09a345e652984fe5bc561a96e4a9f53997163bd7f642a409dad474891b58100829aa3663d048dc8cac3598e9525044266c00000090cf0c8c78576cd3295e717b4e5f05a419b3b005ec6731ee5c9d2bf97aac15c9ad3e3d2a56da176bf638374539c02ab70fd4db47cf3d89747cc938490aca465a78421b773c7459e71210c785c9a5811cde2ad310b81aba16885cb3b5e0d976536f92dca42cd55128833f6488e8094141150ba86c4bd92381553af54a040a82e41ea12c9549f51975d49db10fdbed1e6b92000001bc00000090869ad8cac952854ed14124129718d6e67d0aef1434bc70a6f523c781db164fdeaf9ef954b4b994923752445d704b459614eb332b76cb1f4401ad3d9a92773640236b9c96bd671fd81e3ac76cddc49e5727524cc35190286d82784dafa03e4f5690d6ddb5bcd7de9cd0429b924959c327049ff8df11b688432454877b5300f2ccb1d2c4166845b4bfdbb1e8015088985c00000090764b4562eda203759b8b174aebe4238efa1cf2a3ec1768ef3ef7d929a31eda380ae130c452455f036b34ecffab440be6e961241c12d24fcf15ba47756302ae12270ca1cb3c6e2a23d21c280fba5bb5c20a89a3deb175ddc55662a85f0941034841b81e9573af1355bfb08f161c4a886209dde8bfc2be93463163c57f7fbf92d7817304992ec94aedfcd43c744db0f66700000090435820bd150fc3779fccdb6cacac156f434bc441728b17ae0eb9fb9bbadb141cd24f050f1a5311375c82114434ee817c375195e929d4411ac94b0e5f7022e2a09e37b8dade0019025709e19cc035a3100266e6e0900c661e8db4e2e70ab508242eb478fc07f5f0e9983d1c3aedcb5431055c9543450fe8915345472673b7afc4f61e856770030f0a00c3587d3400e4c5000001bc000000905cd2b1954b0b81b07042b62e868d1f803fa824c21c24f9ff64b38a74c6e023aab51893ed2f1919cdfdfef53c741bd7a3d97d4cfaff2bf9a4776a18ecf5c94972aff3b1373ba6fc9ab6855ac00a49584f15c065b44f611fcfe69a1a06e1b2e833e8a8ab6f2f3febde83a3f02e263c266b00062b01f9222887fce55e9c2f5e35f024e566da0f0edeebf252f5a6aa30e28300000090077def0c3f50b0b47c9eb48a6b9708044029c535f4b742f75df046315c8b526751863017e899cad6696ecbe1fb3fefb7490af911029372b3a5dd8e04ecc073264d1ae633b48619177d4b1db17ddb7ebc016982aceb8e234406b2609f32c96088b591224ecd84ac0b49eb013bff1d8d5b291f671a1d584d9a5fc1fc86c27358cc1e63a52bf6e2e3087ba362b90a8a092a000000907b5ad8c10d405a4b6d0dc2bceefc087363be47cc13fe5b70d847ece64c9b8fa6c9d2e2d87f0d3452f6be6e1b5195088a732c38f1c127b18ef1c3888e6dda60fe73d4701f6763e764b0fc9bc984c9ec3a1f30df8ce2d7da272b7a20478311e5cdb3d3e2cf782ccfc8fe24c004decb2a7426e6d5cf19e5721f943de5c6f775c7e3a3257ce201bad3a1e279c18e56a0c23c000001bc00000090758e63051bbb20bfa45a1d6f0cba49e3d77c527acc4c969b17681b95330155439f1461314934ed0a76e838cbe30c38ff040dd1b5c786649b5a517ee3fd2cf0526aaa05c171d6fcdd75625d816836abd50f9d14c4b76b00a4e4ec57f3d934d31ed81ef8796c250614fafef5e5110d4b3210bbd4ca38ef2d2a82d835c158e7b419282a6139393e4bd502799986a28f216600000090f0822b26f5f8593d654f9377df02f4d66fc3109e08c6972cd2d0b9a4502361768fc07cd12c3f7d9e01237a31e7eae18227f1330fbff7f21ab933d81787818fe2bb8c1c79aeed32572534bad3a38aa22e12b85f9e9561af15d644b48f3ba832886868a01ccbc1298bd746adc9f213bd0d29ca03ea706ebd3cd5265fcc4d06491974320235bbc43d71208378f376b4fec400000090ab54fe26c2aea2182626d92a98a27670005516c8043202d1802da90008c2cbd61b9d0196b091be8d8605189bbbc5539dcbc4624f4058cb1404091a0437c1870eb160b02a3e57857e850a1c28e34555e21bd4f7fe7cdecb230dd935647c8c3d446b57e65d7f67b2b208953ef2367734380a15526b29102a6aa922a3525d471403a51ac6eb08e1fdfd8679549128879a69000001bc000000905cc031b130a4e6e45e8ce9d099c29f465014f2bc45a18f4dcf79f0ddcfc715db888f9975780c5a716611e8f25b66fb2f9a7a312a4953b9c1f2d3b63f38c5d5c8353de7033cf40b691310617c130142542f59730adba1d58ba4a553df2a009de247673bbbdbd72182e094ae020b503cac044fca8434a01a10648174a643a28b7105c34b2e7e55115b1c63960cb0a79800000000901de3bfad3720f2c15f008e4a346d27ac6812c0af159d93142eef63722a1451bd0bc02c635ccb07d4fdaa341922ebb11628a53fac21606763dfbb7f42448a042973009752036499cf913554f3e7ff82bb0bc082e28ef31fb2ff685c7a6bfeff67e5863ab2aeaf0a5e62f95e36c42a50b70817798e1089cd140dc0a6c817a9c4294925e8cf6af4977fef8a27bfe3774e74000000909d3eb8dda8a7ca6c61442bb4314d7bdd4be33ff477a9cee2db9373648e3d45a3f19ecf8e875caa25358b24db34795ebbd20481ee4eba712572ee7b88d8b345b0c9b6f7795ebcc246c601aad9eea60ceb131b7cbd50c6abccf73ce8dc958b52230df1916828896785b5f9f2a4b994fc0b20b752bc028fd96f880ff96d0239dca3f27c2790a1efb3748db4beecbe9ecf40000001bc00000090abb3bd5e78230fbbdef5e44ff963d2ee5bb5481807d8ab24468db6c0b34afe6191a513d9fd3ce22327464d7d8f1df5d5f1d28a8c8dea8b121aceb6bb693b4b7c92f626038d83f7c850f8e24ca8f2baa30f728e519ff0afcfe0142b8b6c0a26853fbb3ed9a852b5ab5ba7c5ffc0fe2d210c595d34d74ca38dd455f4264e64c9a5bf10fd8fb6d04ea46f7c0fafa6fb726600000090c6058b3d921006949f8ea3925de7a5272a5d0f8b9623ff4d648896e377da63ce69d0107a9c9d5e6cf286859699e32997120d4365e8cad02ce48de0b7a6e1036bf7488f54a2e7ff4cb1c8f904725f03342891db41bb8bee35200212f942c1e2d891b112c9e356328e68101c24c255ab4a1ddfe14afa6679960eda155b3f4e748fba771b4cd4cfec51b13ab41a01441be800000090407a6f231eebc95b1fb372695287319677ad9c009c273b06c3bf083d312b38a478d64ba7502b00644d1300362d7b102b6361f4e79b42e100ca70226c16da7a3d8651cb4c6a5810b137e439496c6b88d00963eaba8e28200569e81317825b7680479af46afc14cc4835dcfd5f1bd1f1ce095018666da971e6824e9c161135939f8260f4869cfcb42321b5952a97845894000001bc000000902a2093271e5d9e426ca48258777ea1c9d9f4d529e8f66f017ab2f7606fe17873efaab862e6cdfe6bdb06b568546371bd19cc9deda883327fc3bb47b5051c564924b2324633d7d354922fc46b8d88fa9711d7d02d5026e036a46a8e15842b0000cf357fe04e93407514976c6e24fc77381537bb76946a6f83207d426683daf202a0dc88370208c44c039b9223a27ed54d00000090f3af40d79ef111be5c885f6e4ce6a5f39aab3dba6721b387f7c0e7ec51f04e0c52219bafe83d29ef4977936827f17ea5c7db377184f3c07f0964e02bea83b1bd4b5aed48e755b48c46aabb0e802e431f0dd313d1c7f55d62d6996e3865770291774110087ef643ad13ee2b0fc80ee30f29ba6c2563a69f4c62e092346f03b20dac17b845455065432cb0f86f4e8fed4d00000090e2feb74514cbc15cbbd4960c3c31c2c8b89f658742235547af39388a2dd4d1b8383cc3a59bfec0ae7416275726dbc85967b1bd89eb45167b0a983558f057c5b6cd12d793661c9763c4aee5f086523d951413571b25824c9dc659ee1dd0390a717306a72fd4372d07bc9bf00fe6a092fb2175106fb6df9581444b794fd86dcffe7b79b82256bf3ced5f46ed9391431f7b00000e00000001bc00000090d25e818b83b533e096a3defeb73fadfba836517df1b920df53e966d82e384cd71fcba7799a3eb1b3e89eee9d99983b3eee97a525e8ed6722ab1113178d97cbef9b71de73a4db75571bb8a0750d1379ab2b674cd571fa1cffdba43f4c3c087dccf894f758be2877070da819381290f7dc0b3fb34c35fe2dc4ac82a9b758d764bfd171578ff07f263de4bf0668fb99faa000000090c910ad0b7cb33399478c81403d65f247bd70bc2de4cd1a400cb789a080a5814050ca36bcda892be9191fe589893aa3cf769c45d17dc9bb2ae20c6c6e8ad4410be0b47c87a4ae9a4d254d6c9454bd39f80acc01d59dcb13bade04106012e4364de822e00028f194bc9445e678b5051d02001ea661773999576ecf326e520e9490f79cafadd121c7de3486ce095923b21300000090ee0f1163ee24e3082804800407605a7ff98a7e3fff5eb530931ca1c29bb90a2127e46c103ed2ba423f55819d97e3b8b7ae7c98b9246c3fa0edcee4f7f4dc752c7861629d7bfaed003b609edfa779b8c80dffadec2e3a8e1fb967d32760a160bec97c15c640303316887a3f4fc927cdc90129f6f2658826ab3281a930ab23726a41699ef2a9b9ada3616f9a09e330e43f000001bc00000090c162bc6a922d0a9677d94e12ef9d0fe3f23f904c40a302ae96691c70abda3f4bad695623640fee23a35e536ddeca6a424c4a910ab4f06566ab833e65b2a56567b118f2dba34dc1639d242349e1e26ebb008681d4393efc63b2fc03a5c9c349740248057f2e7e2954e143baf97d7fc28d2414463f0ccda16435554fc0b96ddec693f64631f8de020a860e823c03e4a95f000000901a4c06bc51205497c73afc915e848da896ccb3e5ba6d0a01e22ab7e90d7ec9e359b99944e6cef34eb776a36f8bfc89a937c00dda7aa3292e877bd2b0949055f224c995a4e3f36c21da9d5336d43b43d512e2fe707d0597dcb3f61dcbe5ace1856adb5735905df6290a1e97e7b3f56f68160afa94767c419399635df90ac7630be9ca9f2be7a08d47a796433e2fe69d0500000090e971760c54c672a7b46b18e36bb1f53e4458e05f8e8e831775a41da37fdc11b57ffe7a5b1cca585f1af6ee11ae31927aaa30305976134acc7686b180bc94f0669ac4536c2f1bd42e988fe2ab15206e411ab8eaf7bd290eedd0aa07d3a96c31f6f59a43e73a17ec768a58765db5cfb4e21a0b1c6ccbc23701ac6fe4e5bade56d8d185c19055e290f091bb8a83d7a103d0000001bc0000009064d04bc457031d3da99682e91f14951b019cee11f426459c1e0bd3a6cb760ad8f6990029ddc57c255ebf32f0b66a9b4861702c4d62af67177a3ce64185a938d80a000ac15fcf090ac0d353635b3b69700e88eae07b1cf387db29491ea0b26bdfddfe728e5742b16707cb9c3cecd374230ade489c5f5714a04fb6077eb065322cba1029c6cba5d519931cc6869b2a613a00000090607f54712a73cf264d806c1db0440bc36dfcdf33a637efbfa41ce7a184e1837cccb43a5ac09872684f960448c6176eb614f0b9332e71d654edcb400dfd823e026abecdd096e445294510c7ffa77e52b21063632c55f7b907fd2dad33e1008f18c18fea3240507d4438e52a59f873a50e0e6840de615959b9dfe9228457bf09db81b97714d1b9e378e23b16179a7aaffb000000905713c015fab8d31dfb3cce41c788026931fe246f12b4c6c52c039006225596edf9ae9e3f9ecb3ae1462c12b431c7451437de202ceaf85cd58749077fed1d2a1dd41aa4a8072e304084c64dd8f04033f7173882fbcf5dd1ed380f3a0b6cc2ae99c7e1ed3d3bc625e9f881678a77cef7762cf6029df8ac6d0ad629c871e7b2a5cbae474c1e3ec458f61a982a3ed305b4c0000001bc00000090c74e13893e14c051d1c4b0e63d962d6790b8d5b3221254396ce134865a88d2a78ab9462e03635c6f12246dda72a5daffd7e47302b4da183fffb6c6e416edf2d45759e90bea5d320dbf3848a2ddb921c20109c2c82f61d2d57d00d9e6b63d5d6f6191a71492d121ce32fabb01f1892e061403e7c92390f2f321d582fb543b6252fbd6bcd4c81fe99f6970a6bd2219b11e00000090f465624b9784a4a376a2bd668f0654e08538e17bcdd05dfd97f4a1e20541dcb5bcdc377794d0fa79d6a2e1734f1271dd6294473ac6396c21f93be03196931cf71fd9c6e2910465b909c91f14437e9bc92586d6a20aa42e5b0e2bfdb3a9dc831ed60f0901977a7a572bf9719164bf265616a1ef37492fa6624392a171f816c33cf8a6516f966f3efe7cb1b343dd4828f3000000908f18852bed214009ed57daf66d3d85ea2eadb39cb1fb37ce940841774fe966a3ea108b0d39c66bb821186fcb321582e69bdfe18e4a36fb684635060a0992dde083c2b0848a99af0c12421c13bb23a8c401092f5a8571708d7096255112c28c544f33e9dac7234da2cd1e84d6f632134e101487ba4bbfe2556902c61e2a569409e749997aba4b89e8fd7af8285e556bf9000001bc0000009011239b4be51760bd69b2219fb45593d6fc0fcb5559b9fe6ec804297b700a677591419ea725d3f521630ad34909b40eb7774927b6b7a5be63c95cac83c04100f07355ac23aa1dd18add27e82fb9abc8412f8b8117f97f579fd48fe738ffb520ab784e721a28b16acd13d9899f9fe9140c29b379f0b1e8f4f632f3b8ed59adea573af784e12d894cd8343d8a527547d744000000905ad7963a5a5863511f5bc0734bf79941f50f2c71cd0082bd957649599719396cb7ed0f6e63ed1b18f541ddcac71ca4e6d4fd1a802acadea6772e76fadc323f7a74c710bcfbd26fa6ef55f6b17d8a187f034e8b77a4ef4467264ae76ee333bd8d3c2de0de95b7a837dd5efde225c3892e2cfdb16f38a7b6430f047a1a3d14a1b25345dcb3b5470676a8eb6b719b555cb000000090f8e203401a6080ec384e8eda1d3f804aeca07981eba58134ed2cff57729e418586df1fa8efa3096d090a219ae521491c878c4247b0ad36c6c11b3d424b2aede8b97b27bbf497c86b2b93239793aac9d61a9c91fdd02a53fdf50cb8a6352f54fa2cf7024b6cc68d57fee4b95fd8e8d15c276a66b4c0111673dc1bb105ab2ca5813cfc9ead215177cdc3d78731b101a39a000001bc000000907427eefc8c32594e8c7a42ab96bb1fe860ea78fb6146bc1d2a73a1e8ff9c6991acc4d9a463ef73ff781c61368fb7aae00631940143d0d53203189392d82b26a576728336a42fe55bafc656d729212b9d07efaaf20bad1e66200b7b80b29c094c858128ea68f3ab9d3885a207417ac1700a223c722d62b480ad3d1793f05579691edabd5f0d873104b257245ee9083c870000009036f06594a53af8ffd4c69460aa230c8f42cfc808e661b74954492215d41af00a7904d4b103347162c8e73762f27bc659fbcdfb35dafd2ecb3d1adae51091de4f455b086b8239ee229c60fdff690df1620d2aaf0f30c9975c519119112bbefadc8123c10f6b1a9c49c4debb0bd7df203114490acdf70dd8dd6f8583dfd250e869a3035549607fc847b663de3b0aeabd8400000090bd0c1f7e5dab2d0cfa161cc54823cfd5f67bae6dc39ad643a094f7172768f234c760fa9d1610c894d255eb0c773abfc023a46b2a8c8eb1f889bf14303c184e065430426e862b1cc1147d2d12cca898f9100dc0c65470adccc7810f657ee6958c952c9a9df0630d717d0281e7a94d4a4b156fe400fbb4fb617ad65dea278490af66f573cb1f720c1ad6f131dc61db2c03000001bc00000090e668492f7d870f241143adc81620eb1174ea8cce9e28ae6e14f1b26864eb39fc4bb4870a0e53b9d244a0743c8ba9d7c8b7399293c41d3b4b6f5ccf0500b2d328ea2e95147f22c1e2477b547d4fb60951140f90f1987a319217467ab516b7b125b4a8cdcc414527263686e37fda2c2dd92c9eb14fe690ab3846f47f6c5558d4ef7ff71e65a1fca7d93b14868c7ef7decb000000909602d909cb30ba815ad08cedb8e5384092dcdacc76dffd3913f78076539cb24c63bd541d0365c94d523a3b999a8a22719719537dd7b5db9e2f9fc4f0a0eec725be2d0e3fbf03a27c9843eb7d43b376bc03f00892cd118a31db431634c3c88bf2af5d33021a2ae9f4f22350398900bbd30841f4f269178d18bf284f8400da53abffa6ef966954397133b84a7e4c4f60900000009044c029f4795c4eee24224ad795237e3e09e2a8ea64e27f5bdbcdbf32883355a5956a96a7f72bc092991dc90d1edbbeee20aee7a1eafeb032627dfee5cdfd9cd0443bb21ea956927600ee6f7e3451c962013baa93ea18c786700354bec36b38343c9bb35dd239dc06466f515b0470c5811d3616246a801b6f2963b965625d955fc87a3d9fb4ed8e1552b38e1aee41b8db000001bc000000900b3bc15271008bd69ba48695c6e6a808a21cd66b6eb861453158751d9eab45b78a1b8f11ab3c5d989ee68b8f3e1f51e1da4f19e3546341ba88d19665da99d06c618d0ef988f558e281a3c97c6c04bde50479198ec6735b58f738a2cab5f45950b770cb5f9d34ea4099872464ff342fea2865375e7e7bbbe5acd490670b759f74d4c66304543a5d0621bd345dd6b9a09b000000906450d9162ac8175e4061c9266bba9ab6593b92b04b863aa0a08c08be535ddf2993e2d2b541701b62f79954e26e9b832aa246566e55e3ee6b1af856484d659c4ea486f0ccf6cf564260fe2bcd2a6a804d2e49472e9871afe13083a141b541dfd434904556033db3806322f7bd5aa3cc5b1a4dc9311ea57e048418d1c36a8fb231bd9821303d29d30a29cc0389d5474ea60000009022988ca796fc0b91f78b4f4535869997b9017a5d6bb9bab63ec708ec270ec6afae9799c358f478dca2b537239a35e9f78aa260e764beb9d361592a5df720dac67916fd799e37bb36d93e0699df5b07b808dccab7c57bceb538a337bcc68cc8b536f2f8b50566acada0b67ea7eb632d54165bf73805460e1b5bb24200bea8ed8dc15f308b233678f053180ca8bc9996bd00000e00000001bc000000904fc89fc6be0e30f05d6f9f1f86ced7feaf57415a3edd0e487c271d504e0a6d10eaea3c02c5733ba7556e33dc3adc695899a576ae2aa5579d41bfd701f91a479cd72e191d26b55bf6fbb032e3b33bc4842a0aa44cebdefaa8579aff992dc220a3a0a32f84f1ef0f3cbe62b37f413ff8441b4e857d847d8560416e3c8394f9969ae23d8b82e3f86ad33359f5f425f5c7ac00000090a37467afea6c4cc97ee51691ef457d7492c7ed5a24502da13c29ef84ec446b88a3c7bd5e6fc66804208adb01299dbe84a9a1b6cbd17bef87fbd0fe0e1808f7e919dd9703e551951b52ca192d9cffff3317a33dc570b5e04f5aba1d43b2e1997ac5f000e28213956be344a50c4c2990d81197a51d8df67a8c9014672c8efaa8507e8d790953cc222a530daf446fd8c94d00000090ed2da66258960faee567fca3f48339c58fc1849f9ed6084a338ad10c69a03b3d5c8528b56dcb54ad2ff53b9e8de77c73d5278ba02a607d8687b94b439b705f798a8f5af5826be2768623bfbaa53fc330046cd30f364e74e2e1afca74a76e4958172cd3f48806044001939affd2cf387f2d21abaa6b077c4818bfe38178995c90021b3861963ce32c34441ab0c2711d53000001bc000000905778f813c2556620961d546a7fdf739f69a15c0f3d27e12a640b7b8e2450ba0c27bffa2ec747b18a73dec69e8fcdf2847b9536fbf843e13a3f2bc495b3f4e036a1f6e52d7d5de6ed92990db981383d792cd6ec169d75d02d70e427aded56ac741223ff81866f4cc71ff0dbe79189d42c108e7e77f8c6845752e5f92e3dfe9b0142c1bc367b7fc03849e74b4169034bfc000000902053096a3ac009b9625b26d351821fe95f33c92111c691e9f526b5441e63a51a7a56bc43a07d6a8d411968ce7f8cbd7071b4392cb5b8a578172dce794ba5022d0eb31706de647545e373f6ee847c0c1c1c542de88666b01e90f664188ca9aadb0d26958d6071b96488ee11ef7c4756b3223d713a0c0e006f4f7c4c5c90c648666f962e245b7c6bc249193cb6af0bb95f00000090d70e906e51410fa1baa9d2b96e43f8a3b88e3571595cd86413376e1b70eab33d3b6b4a2b37842c653e6a7f40d811eee11ee842a0417f0d1f98e2dfee81d9b0fb9ccd0d94c96c09c419e9485012d8e20c0c6a123eb6e1664a2fe3357bdd09b53bf71102b0014877ec5290018d9b3291ab14fe9217b28dad3f0a5ba42aba7001225de17a38be745d4dfee261d3fd70be02000001bc000000901a8a8b3a10b4ef755a584850b202ae137405e8b021d75f806e660d9f747f2ff22cf6e45472b475d431829838c2b28e59361b4c98efb3180cfb7bb9fe638fbef23531160fa1946aef0d243ddfdf8fd66105e05bc9bdccd6fa6e5abba6fbb161859a073bc4eb89dd1f89b7a9879f1bf60a08a4d3be53e4bab4a27bf94e67ef11eea454177537748f0dc2d0029a09cfce9a00000090458256074deb2432ebccca8774904b3d1f2ee4624ae1eb16b0650324c6e055247a0b7630c353507cd8778c19a74981019d8f07f700aa03cff73ffb9bbe2579ecfaf28a8b457c8ddd0dcb7cb821d2bc6b1f8c99301801c3cca6cce6c27d9b451fef4f66221f6fa7c97e53d41e09e2680228643905b2ef882a09f0b77ce6e15bb898ad015b4f7ca5798b11ecb5be57d81a000000901bd4801913d9124efe31cad632fa74842d90821b2fe9f8fec40586e634d8bfdd3b8bac35675795d5adba61418295439168e7df438eb9ef80cc0f394b49e3297c8b4763fb0e7fc473fbf48a8a58e580021c8857152729f39dcf184443da12567a8ebc9b08030d1b9bf19275d6dec49ad71e75202c608f21a387d18f20c5f97572ac8905d1cb373088ce1175b144fbbff7000001bc00000090cc857f9a85db1c472f109527d0abdf1eff9bcf0e020763f0f6dfcb45dfd089ee1a588e1625c0938210a0947cdf78e983dc0c76f58dbba18245df17d4139802530fbd43cdff064d771c411328ed27f6b314b5f0df2516820e61532d5752fee09a6a46d2dc6d851eebacb495e7522de8b2203583f680d03c44ec9b37ea8ce5f8562466e0d19d222240dd728561f7d5c64e000000903babe76f53fdf6bd620f7ce82713adc6390d32939d113075daf95374cf07964c3a6fb30975853f14cc02fb654326c397e560b3d93c56f286572a9221257030b55369b406d752c06901aa937b8a43ffc90fc03fe346168e874dfb5c5b871bac5b2f6ee285e71c7be70d666e630a5f8fc605f87b550eb6b634d98821aa218263eac28c1aae4bff00bee6fac0ba87b3a5fe0000009044ef97d041bb817cf165c54bdfceafe5b3e375456be5a60a20ebf4c0ebc775d19e3b6a05602fe0702205ac3bdad9fee5733dec31985a830d52d934d80f4c26de543ebbc35ce43f58d7effad1a5e2f1632fbdd7f09de729fbcd9c1e420234edc3e11a9fe07bacd69c9bbfbeb95b2926eb109265132a50e27802b43af6ea5007e60c18f2b9f196982942336596486d7b08000001bc0000009078caf7c571dbed7201223e0edf3a9df03b5a286408591b32aaa538b5183e2811ca60a01da9625a016598952794377029c3577b9c5150612a92fc18c8e278e9c3ff7e831c66027ba31121f404c6cc34680f705e4cc64f09e1b5677d8239852b252d5beb89f9b831ab52164f268f5563de26a79d31cf827cc8d665e00f9136de728218f6c52a27ffafc4230b18dd42ccc30000009000811d22230c9c813d548215837b76afeb757179f8353d6907a6651c52d93a20deb6397944d199ffd1f2fd09002f8ee736c8823b748147db1a3182eebe82b840efb49cd9dcf389883e7adb67130065a209457e1a541ae4169fc17c1da29999e55f62143ccb007e6d34dd718321b61d28280ba790996b51f19e7a9697e6032f0c999e9777f6fb1ece70904f4a5f2b776200000090fe245eda1c2973b1f88513a37daacb8d5f35f35893dd5eb250d1442ffd0ab34d9c41dd3cfe6a7926ff1ce27988b8609ffa0c8de6dc9baebd017b7319fbe9abd7f4227dc04aba4d161f31274bcd20193f20fc7cfe85e4b4bb5a724aef57f265c62d737844a517823404a13148abcbec4f08dbb0bfca4e69efd460fec8558024078cdfbc05a42bcd9bf5e971fdefd08d54000001bc000000900bd4a31bbaf363cf3fa57aca5f04adae8f5213a7694b99c466d3fd41fa6ff4935fd74b4ea26ddaa049ce4361475eb92ada4ea3a828da1e80c29eb7ac684239088ead4a38e2271ab5e719612e80f3a25426580088f7d3501ad3876a82b672f5908cc84d06322e5dc6b244bd5bba1b95fd16dd281ae9e19ea36ce6c401f1575cc588b83e498386a711db916626da44415700000090f0dcb0f94e77f9d78ac41eeb40a50a955b4109bbe410ff70224b742f3fe1254447aa7386f653bc98610a67a95ce8919f78514c4a4bf00097084f0cf3d7c1d2d33122b5722bcca75484ab7952fd55e5ba2a20b78242c1e4d2af3333d8cf40e73151e0946821ce53efa736b9a3c22c6a2e21ae0d781bb4d13cde7018868a29285e9fd659bfdb9149e6296addcb396d407700000090ef341d88ea4e7fd9fe6e4a22e4d5dc505d065110899400bcf7cc54766a7127d2c48e47d156d6cb12d20cd0314d9544be558999261a88f269ab19e5ca7270380658bd36a443c55f097783c769c53c6f4016515b5ab04e4bcdb7f6c4cf920e722ae83ae986a67eb316f3114db6b8af057c28659cdff4c0f7597c43c1a80b453d6dd57ce6970ff28a5277998451724f3f7e000001bc00000090a865c2a5ef808bf3a41075b24637dedb1b5e14a0175b6524bf7e6dea4a73bac95984aad6571e030ade342508e58288746e74ccef9a41db44feb83e74c6bc920a2cef3a46eb8e4699019f6b006b5715bd0fb7711ad7933cbcfea5081657135e6faa64852810ade19b319163c1f7bc5a52120cd34e23191db2caf0e3147e4620adbd9c65bb19f60850cbe2bb27b3226fa00000009040a53797ae7569bde81f43f32b91e826343bc0f14316c46c3a767c9a76f3c6f18a5f43883aab511608ed0def297a253745ebc8efcde6f17aad8b894bb8f2c56bb7a0311b86f7a77acf1d5905f1391aef189601ada92d92ee4831fd2f3f6587ab231751c127d25a790e71caadc150f9fe2da2329b5993f4557c85702e1d3f76350008198b0a53e5659b385013256521bc000000908359cabe7b56b8b199554d07c08ac7780ad87048b1c8517a32fc474dc2d77203ec99a1eba9c192a238479e651e0b5b822f750b92523e7f3cb0265a0ddc5adc0c52839067eae0ee372bd1077bb528a5d81e3728b0d47ecd7e359e89144b1ce2e11da0363cbec6d502ce996791d87876311714c6383edc8595bf0fb0ab115f8265dd47c0f13b2d277237fca8c303c25cd1000001bc0000009014d50b10091b00692c84ca9d89b378281586b784b97e31c635ee2f240f7fbfda52caa18d2ed45b30d8c57b9bdf0e90c17cfbf7cfd766fb6ef05cc6b0e9536010dc1f3c570a1e805fe295077a49074d2629f8e3aa398ad0017f483cb595eac860c94524a59cd99f8d6100eaa2880c37af10d95ecff8e7662fd1675a6b699e368b2becb6381b60245955daaef513eda493000000902fe053e6aebc719b33dc8f0484d6ae3b36da92f490fac91bc44457b10a10f05880ccdd4a02ad43595b08769bfd36d6c8ca6b56ddd3639fee1891606c98ef93aa4174ea438c200f742b7b9cdf0eab75f22086c2b7e9c56a469f8fe4778281ae5dcacfcff7c5e928d12b7286346e50994d1a0f76ef0d2ffd1b281aad6cd3dcbbe8a0ff597104cefc4861e35a8dbabe9ed100000090b9e43908601821a6c6af1e8f68f955a0222223622c949747ca6258e843759a02031bfe8181c7354bb6e4cffc40feb6b0ae8ac4c930727f95c3dd1255f72aecfc7f0145cbda6958e8943722c88cdc172d2ab4e685c0f94fe29a92d8eca001d07945fa654f115d67a6ad1bd9a9d11bc8e02b6764d5427b15702eba437a7379d05a34ba6353af0b3c9eda58949a5d744c75000033a000000ce40000012800000090d1267be4f9d271fef7ef72206cd0e9ea08c2a867ea83347a247a3db18c95a3de4d5d19b44a8847af1994aec028371d91817ea93be421bc88de0f7b9ae628440b5a401cd7fef4bdf68ec9cefdf5a61c43305a51e1aa4cc53cecaefad9c8627ef285ab0a648361206ad649249a976fae7814f39800949bef3ed19e7d9b21eb2c673ea392624f1d670d20f8d9065f201217000000902645822c672907e4d8c0829357baac264aefb6b4308489fe113b1ff1ab965e34ef829446287b3002bab3bafaa32ef13e2eafabcc5801bb482d5bd79d5df0ccb9df3ebd126dcfff9d99499f3b22ce9003016efe2dd628279f15a73a50ca7734617b45328cff2ed111388be15bb328b15a012c4e23c527c16343d5f1aa009ce9ebeed9d4d9953a56a5bed7e5d50e9ecac600000128000000903ec8e194dc39e13100ae37743d4261517845da492d394d40d0cc71520111f86e5a1e2f7c1873ba53a8ad917adcf7bd893d82168c00e6317d2aaffe02edb038e3a91cf667cacc0356411f24eebf401e11148eef7900cd61c234127c9938bd1368f2b794fc12e58707e1882cc3f4d21a0c1df957e9bc5b63c528b707f685dddbfdf84643d155b06eafadf2ac436e5fe997000000902605a31b9297ce4f4e026cd62b1f99e8ebee58d4275eb401f67d9d109b2b8b925a942f34d80a0844c74542fad7d28a0c01483f9a26311961ee99e574f7a03781d749d68e46d2634ee3f2f86cda4b9d5c080a3c309d16833d104081e3186f25e8c36fbff25cea36baec6d85359ba8c5ff282403cb327daf376cd0a757807ef376475b9aa8c5b4afd5ee35af3908066a530000012800000090f01ed56f5ce1b851ea8242e8f2b54b3a470b33bef4a3f98e90e57a1efa1d066af51ed76a646cb0569643f75e371ddde0e4bac9f097f48ebeee3408a9e1524cbdaf08400cb29cf8baf0f1c495c040075526e507f551aa7247610b4374115a9cc36d55d17cc2513f34b294b6b57ebb63f811df0b8c164061b559447fea1bbbee0cde3c15837b4866984ae8e1cf7e91848000000090f48beedcc6a7a73c5dbe0f65a08901e8912e17b53430708ec55f8ebd94ef63cdd8d1ac2ff75c07849e92fa721d62c429769b2f9735c357a275929093d05211c63b36b72c38139554d705aa77ba77153c1810eb74a7055565d2b38898c1c7f68b2b6ff3a892051417bb67677dcb606d80210bcc0e3dcdf034dd98cae6b17708ad15c843e1625300b780d7dec624a6158e0000012800000090e3d8bbf1a03a6ec99d18debe60451df0f74b08613bc7df42072ffc0c63658e3f7a4a4ee218d29f7dee54fb3743b47a9a22a62067a43992ecde88fd0d5a4363d620c54a4f8794f23412e64d8a579d8e2614d2d47afc37c92f2b455c010d741cd477a38f3c53d9fc2a5ef75539347954c30dc480c9350557bd2ccc1d6ec3d93c917d0668cf00efbbd5ac9db2c69a35408e000000903490e166050c8c9a7ced51be3e57b99ae8d4de9e3ae3d7872d7cabfad63305c36e97214768219f502f11e081b6b1ecc4731c9d21e7857a48c39f700f2de1a1e690fdb2640bcd80de3495f5626d2624b81da3a8a2dc731da13a8f75335eb636aae5517433afbf8e02b1bfb63735eafd61122ade87e69376243405e78e1e3730cd0293ee37e4471eda1eed0f0c45c3842800000128000000909fd83cf44626806bbe7824895282b806c8aeda0f138dcd314cb32aefe75c2b692ee9113b1f9236e0789edb9ef55000d8ad3fc9610808e1f8ba10ec5c2066489f8891d029ca88be20c24625c68e66f39918b12237680f30254c3ecd75fbd881791255075b70bd58da59e9994242e2599617011050da58374af5bcb35f4cda80377a8a187dbd733ccf3a97e703dbcc5602000000902dc70eb32d4fb884d0b430b16c7ff97d5b88f35550034ed6841f85aa8dd2bf3b31e316b75c107bbeb05296995c4372b1808268a7e4f2e0f9624de9e95ecb47087753746334c65615578c9e9feebb3a51241fc894f0c95bae803c4f4fac8caf11447f290321247bf7761efa4e84d3453c16e0efd9024dde101546a4a4ef8e473e464a605b56613a3199ad3b629c042e880000012800000090b35df4a8e4fe3d9ba9a45a24b72bc3af314b174a2159cba62864c91c495848f8b11fce0c649922e5c957b88e4357965efe8f95eb96b290509b8dbdac4da7db9eb7f54116c9ab5367335037d89b946c5307f6f9e11fe03737543c46355427cb8c3d0253d78de7d89a97ee51b8a0d125350999bef16260798f2b1eec194a736ecf5c1d58e17ceb37bfb51e0c7396de39ef00000090f6b68d8dad58b1f726721ebfe0ad5547ee026f110e6fd2fdb139116ea2a3a3e808c682b2e43e47718e13d67502a9291b39c3796c3dc6c31b55ff7df469ba1408e1c1db38518a10e9a88235e430d1bcfc01c80d1f0ad3567bc6f3f36ee8242b44ef0b765a5130d8a4131b0759aa1ba3c32d20a24010618542cb216f00fda8b7186bba33dea148e9909b4d4114d273733e0000012800000090eba1cabbf010fc7c52c12227c7cc1bff001f549f020a7181c2b1ea71549f4e8c73c2a3b8a1ac6cfc09ed85ed820a479ec25d2f3e23d0f0807c9052827f4da196122928d3ddbace54cc179a5dc8a29799297e2a199d7074c84cc0696b822b40ccc1a1821fcec621ad646721d0914ec7932fe1b6ac2f70ea89c890f1261e55a09eb95eae781cb719f08c28c1be6e4117f400000090fbbd8ae5ed706962d244022184001121b2bed70fd7c5f24a77747014d9d118a13e8e3e83e5f0f613e51765e55b0cb9e2db954e9d3413b0453fc7166e69288cf6a775c7db07488b1e21fb2b24f1f3cb0023c61ac84d0fcd2b205765fcc3f9fba7bb5486441c07b1cd58ca4176cd410ac80899096c50546c8385b037b01abee2ad4b1fe28353e9713ccf291c29adfa392d0000012800000090f9a33174474e431d81d35dbdb9bffdac406b33d2c6f50ec30f40a501f9019fab188fae220ccc7a12de6ec060712c95add30a769ba5b4679125216799709c7b3fea4ad16b3b2f61beac2140a77bdb27d40cf50eac4c456057fce6aed3886a363443a56a4a4d5ef904d5d037831af022da01cb2f68f559ea4c571058cb175f2a5422f65301b7b24298916e2a7e5d8e8b4e0000009005dd3985388842b02e60a086ad305688dba8c73acaba8804464dd9b3650af21656d86f7dbbacbb344d6380351cf99f5298bef1cf20a917860cf962899c23274f05cde33a985834dd53eaf93aa6043fa72ca9f8ec3d4d394cdae9fffc49896a885c15c4efee1c3823c69f74cad0c19fd517babcc3125db46fc01a444e8725778eb0db0906db46fbd5cb4dbad9439716de00000128000000902bdab506bd3624299973bf33ae4fa16aba0e407b246e8061a437523b59b8bdac5d99d7dc63aa3d15b3c4bc7eaeef86469965d03ad3e9208d349d9f0fa987a789f309f0a847926337207b6f88479438b71c35b3c79aa2eadb871586be85ff3fad85f5c69b1ee4703889c555b242304ee7178997b71733c8f33fa78b9ea722e701ba79f0388c1f76acf7d5d777cde50d2f0000009048b5454d5350c10d5970abd7223e34b714bdbc791b4c65b14b58bae6a87959e9b8d2028cbab36e92b7d96c496613e1a4fffddb3296f28f28218231531aa50db7b5bcd04a24b200191498aa893862559922bd03d09dd727f797a75561ff4bc9ac01c0295aee978cc3487b08de3c5e77e028dc877f80f4baa2c748bf4e6b7fddc9af3c750691e88463670907dc89ae366a0000012800000090839be5d7c52676e753c8a94fc7012fee0c33e0ba824ef37cdf0e4ea1ba7d378161d29e54ea55823565c2fc5b91326b4a99a72ccd98595424e5751381143578bc2ef5f8fc5abfe87eda3951806f9f7ea20d2e867704f0c4f1a7458f33ff54764e2a64ce090b66e306b0f0a9e27f36e6a72828f812d9cbea202ce0ed288be99c5da3b8c032afa35c82906ed622f5a3603b0000009074878a57a2fbf52e6b1096fce33c7f83f2c7425ba6d150f48be26ac01966ca1f5b603a3d3bcca9f1524c4dfed85117c8b8ece60461d5974836189771a9fb700a44c92f648ebdd97770d1526fab8e5dc9301100a2a7804fedabd6d86f2fbbe46e3fe24603a00063db5b42c4848083a3580d1cb7b2386c037a8de0a9c6055ebe5edc17d18440ac6719ed98734f92ae5527000001280000009093e36780cca35dada87cabee15291ba8c3f3b51e28aa2b2f36f9a02f5a19eb21c6ac03f389843056a84b3fb4b2acc9f476266fb480fd7f99bf036d492324f168139db1e31dd27cdfb1b4e8dbf09185411c4de97982b74e636bdf6f7048c4cbf4d1b2149904cff0d5a187b3e3428485692df3c284b29771c96edbed7ac3a915c57377ebbdec271352157053c10369c2b0000000907c664c1d087d8642d85f3394f66f4bed378f77c1d9d7c128b164fec745a018176acb3c666635487d07ef39a9a7443cddfbe690dd2d90f249189a3621281c4d8cee6b8af4c22b18c6ed258b0cd1b5852128eea188949ab62e174d2a5e35ac77b2ecb10424b1d49a956eaae6d453e0843422e843b77ee88004fd697ce4ddfe4e032890c1021ac3d0b33b993d2cc260dadb00000ce400000128000000905998d03244f645698ff7cfc4dd1ba37cbd375b94a94005ad980a9ee1389965347b34b4732bacd868f2d46ba76059f07a9612b8841b00795d1899f4d9e35f14f628361a9d6db9d1cafe334768894eabce246ba1dac13af0fac1bda97683d7cb5789c83c8bca06e4797e2ed46bc518c3ca15d4bf801942721b74175d2034e86b3269d17d92ccf0ae1be0974c478678ccd9000000905d04d09462ee4c6e28988b59218779dc628362c3c8d61b0080506b506232c8dd8f5a8c914e19cc2734646ec283ef984d3a86bc15dbd8de783a4e17308e94db25428c59e05e9012c8b44da233efc49adc0c029e9962b7596fd6466cf39135c96e3aa7ca27556fcd2bb99a520e3468216b2a1294542a597a110476ed26bb8dcbb17162dc138d1b68aa5eb8ef962fc703f900000128000000903c8238f40ee0e3f9e925671432e84c067595931998373096731dd118da4f6acdb427febefa4ead8cc0b2757f651a35607ec45c65669983704f3c1c5696617db0a43dc3f6895691796b92d1586e2d62ac2783413610f60d5d6626eaec0cf5489b56a67fff21145d422bac59bc396dccf3025a8fa94d115c7c3a59681352149f1245f9703ebde50c5ede736cac50e802fb000000905e4e8b0e7d92d0db9288b2b0053965ac7f99b674c782135b7ad9ed8b2f444a70df394aef47fb8058895a0e1095154e2b7ab1783b5a3f0a39d0a497ba8d39bb2d35b812cd7da132646264393f75bb2a050ed19615dca0bfe3e31a947e1cff38a5648ad99b3148841c526abb8ef5130f6a0d1548c4d345bdc0e485e8f001927902345548007d66bc6040ff4d9c5d63b5ef0000012800000090490bd4103feca675238fe7fb4c16fc04b41f260da6ebcece76f632ba3f88c45c041e24553ce95a540d0fd48949d652bc7900b8c7a6eb8b2b687e00349bc9d832e0dd7cd4a4fb6dd73970b40e0156a9112de6af792a7d99bc6dcfd7a322f3ea87f4a5bea253e284ad2c26a523aeca62a32ef78b5c436a4e8dd5e6e12614d04e2cfe468a0ce89df5bb2638156ffbe85c5900000090c152b7aeaaf6f66ba3606d5272e2de83c2ec413ee7adf1c043500c433cf35527fb29f203028e547446779ed475dadb346b8b210c39de239685e9716aefe5d38655d9179c01d89100967ec7936bd59efe0be12e855ab54331d40fb17e7c2c4c4d0d93f3ee108c9cc9e871cf8019878d9517a9cb987489f85c9dbb343ae729094658d51a0c76ecc8f97f711e88aa09f25f0000012800000090ce845ee33b8828c450d0f2cf2e901790e918bf0c8d809e81113f1e829b219df0cee5fd00af7f89613a56b120115c72f98809c06cf525f4926f0c44d2d89916979f11100ea3adceade2c3fdcfd7902c8a203f3f68962dfcfd5d469c0f44b89113b35c8fbb3bd00f35e9c869325c6d56fa1d3a582441db19937f1131d6c57069293c0291c4c5497b62f9e253cd1fa17a3900000090dc2b6f7a95ac2f9b02608236b9d001c25d4bd46c1c299c6d2c5d888d4f6cda24fa0d7eeb717e173ee675f7f1f6a891a65c76d5137d5d8536525ef77268125445bd2a79a87e6dd03ad7fa682ecb6bdb1024cc7ef89dd5d28d3d83a0cfb8d6ac2c84823ce8d2b23da74ab19cb739352166002bb6a64ab8ba6219020940c1868aaf9098599b0536295a152d76376aae54490000012800000090382c4148126f8968b857162ec8fd930d573a41ae07df55b075fa4a90341342a75507d57fb3accd1b145f651562b68172a16d01822fd8fe19b8d74371c935229126d7a3cef7f0ef69c263389096ae3a9221e0676c9bd4d0604f00b6953347bf10af9bf823cad27dbc1f7356dd17fa9c0f12e5e2d085ddc1b4a345e9bffb549e5db1c045c210dbedb30dea67a2ddbb2bec000000905d60495979e9949a319ee7765f6d3f07956e97cb076538f3931c0f4572dfe7c2c9ac2afa11daf65b43b6aa44efd5e3b26672b3d0e3c714f5667fecbed230ef70b0f1c7cf6e739b3f35959a55c46423cf232f6fdd1fc069652903d19451c7870a33ce63d016a2ae702455b5e899f4483f02be42174f5af4eab43fb9c68a1473ed7a51e89c519da6a0073c96bb9cfbd4270000012800000090346bc85326b32dda7ce8f0212fbff1092a4141ae7452adc2c667782ed03aca9b9fefd2d5740b0dfb5919c2ab9a5d4a7ba4118797df233952f68458d346ac573406de9db783d5f3e97d911af1331508312056a292d09b43d071621a945152ad287b75c8a4d790c2e91561e04407be1aea0c81f8af7657704175e1b0aad580ba4564cd3d6ec6f36c55f5e74afeaa2855f800000090b77a26c6b8dd4c4dfe3aa1da8ea966522275687a8f7596662270fc760493b8fbf1e563fa0b307a00bf6e478fcc4eb3666369b67e5273afb4a02bf42374fa193fb0d0813fa243aeaba6d683d4049dd6422166b0ecdba3db4b79df7b0c1fc8a935aa7d48fb5a550fee0541e69d76015e63009ec5223365534bcbb376a2539e42bd129a9c457be332616dc5efaf44bd30aa000001280000009018aea5bc1ca8f0df49da8a42c192a4b8cc0aa96737fcb379804441c19b2a74e9320e84fddc1a23787216e5cf2909c0030145853cb165993dfd87cbc6d422ef21fb6cca7f7825a3f7b6adf36e06e6bb162b4eba544dc40b453b24b4fea13c643a8dbc0bae7729bf40cd78b9bebc4ac7b80495138415b64412bf67b0cdf88d7b4ae8798c4ede2fbf763deec962a29be47500000090142795b3ab49aa436c60b2a711f4c19339e4a3801a70876f143ebff42950fa11687fff7563af84d6f2a2b8c9313cc2f82818a201d4e258d979f61ad4b4ab14a8b8309f17c44bb414b3d74faac4e345cc16bb64c83ec01479fc0c993bf957ecbfb486fd5a4e6c1d3d1274914d5727c22f1917b87c903dd1881df82801e91cc83306bf990f0d55e63891ddb7fc7b8aef4c0000012800000090dcfeef5d43ffa92d2424c452b997f50133e3bb19581f58d007e3129bccb19388e395d25eb5bb852c71700150d709b93871a61b543439e5e0f75f174724f0d7ef9e61c335ff95c337e9929a7219ed1af1263a222029e7a033ff8e7f0ef7ab74af7d85cedad791f2825976d375f17636a80132c3034754ad9ae550bdff011feb1be1c172b2207f98239ae4349019ee465d00000090ac3204228825a74c55b968672f4d63d1e2dc40b9f41659ceb3d5dd63197f826e8d77898eb5e6120313c5ef4ce754d4ba89adc624fe368bb493b5c142b635a2a930339e8da2bca2d4e07b7ae451fe95ae2837128baacb9756033334a5d63609289cbd69f559036c422ce03dc91971424901cf9e1f28c35fda2e46fc7ee1239be8d474913be51cc5a2ca432f6b48684f840000012800000090cd23db296e01fd2dc8da08863075927f5a60a7907f3d265769f8d0f5081cd8fc218766160527828a87715ce58f6d7416114a9c1ef77ec93781a8aca5da4d3aa8aa16fe1a09eee2af3994eedba49718ba28be0537fb39986aa2e1f3ff5bd18f41e9ecd437e6db73e4cada5cd5639935e30756bf0b2d3d0a9ce69a6aa4c2e7d330be077532e4bd5e0a309eb5d3d5e1f94900000090f065bcc6ebb2303fd9c98b22d0e78378302d69307f498fe65e81c146d1001f1fc58423db36003c66425bd288cb7ed234dcf6e6c5cd03f6cf7f3b317b88d2a37767c6e36caa7c0997c0977252397dbad80997a6ec34730acc421489e3b118dac6f17cd6b4d816a0092b3e30477bb51c62219452973b63d9fe92bc2e93b6a0887c8d2a938a00f5cc40ae3d35b71ba74d0b00000128000000901f4117b0387cbd69904faf5afa7e0994ee94179caeaa45f3b3eb2f2aff67481e0da701c4ae66051bf316dfa30304b550add8512230122fccb457af9f61ea3522d0a16255a26d403e080182c27b5ae25e21973829fb3679da8193c631fc7f48bf0d8a789dbf2b42cb39ed2c57dadcf431129cb742a98965cb927e16285bec36e576ad810e799ed4089b1dd1b13ff07d5e00000090fbdf9e199bc0623a1fe2d32c0a4cfc814af0f22450bc538fe3acbd84a8e16e9244e44b25c59dcc3c566b71ec2c5ecce2730680427b55a9fe31c3c2725a347ba742c628693edf2d5644c6a94970588ba916c139b768b3c44cf618f2ce88546aaf413f3803f30bd9e0b66777e5d655f4831cdad9a00f7ca7b8549dbe5d0c579f3f0fb929853a5e836bfd1856efdc4fe20f000001280000009019dd6fed398d5a1ec6d9b90c21f72066191e977de4aaa552a27e8749d1e320081e7fbcba1d65f56c6ce845ba3218213ed8a07c4072dc271d5228b5cc58997ed670d120e96c92d1dac8ce47f856319246167c6d2d5c0c304aeba71d923efd25f9bed2c8112cdad624a3211d9692814fb9029f1f04fa904b76b473fea9e6f83dfabf214caf5ffcf0c5827a34731b31e40000000090e65cb233571c73e4fa6c182120793001a990fa27b961e18ce833933d48bb801382308a6d3c615ead2f098dc4b7631f4101d559a2a2bd2908e41ce82bdb5edb27173450739eb2368b5444822d1ecfcd912c8628008c9433d1c4fc475e73d486032ea9e075da8a2b4f2f9159cc6b68a9e6147432868e71b7093fd7af04a9e50f5188b6d7ed57cb7627ccb31670df5db32d00000ce4000001280000009055715488a08c638d410ac1c3ecd21ae332880fc42105b976c6fb07d698c1b39faa8d9b12934b08bdcc693d3ec0128051cf80c4e9f86c5973eb6d40d03cec36dfb7c971d734262ccffa3dcdae15ea22750efebba45ac81f517d39f8659cfb7734733128e7a96775491393889c73de2e55067fa9a986af3a69d33cae41ca15f2bdca098c58a97d91dab3199c93d04f570e00000090b6dd3736805e84ea003952a85327a4e528da04d3b158b8f9242fd8024ed02a5adc297de3d2ee0ff3f63d4adcfac256d843cbafee96ade152809332a8547682ed599c1c0e91498f3994ba461857d4b8ec037262da4a92fe480505db09fb5bff17bf9eab8daee32e909fdb846a34388c9516fd376daed2955220b85798bc7b740014edc73ffea1a5f7fa15368d582c965600000128000000900a8ce8c6a86aca7ab9f6ea3fd6a2f6535f672840674ab498f9f5ae781b925f2b8e5a0b6ce75cc08e9241452c57590936b61bfdecfef41ce881ec548b0b5a0ecb0abd8405cb28b38d04c8c7f0df097cb424f19bc9257e5fccb7c90a57e15e5d92d6e2eb60ef12956afe176d524faf5fc418725146da3b7c57bb187f7e83046c8898b46713888b536f5ab431d808e4a52900000090891c999fb6f5f2736c46f3d6699cb9869d6e022a61931bbc521008bf3e3d57f048b7bf300a346cf384f2e73260b6796889c7e6416fea936b69dd330e5828ed21b7fee287d1cabd0c1ce21e2676a9ce451bd960aefee87efcf907e8433e3f986ca0d46a4c1c6074b37a1c444c4fd8447d12cc44a788108c3c25de23c9d5a50ee77d1e64d8f5c3c8533abf5df125140d320000012800000090fe755ae0c22e8a61cdada5c298ff8cee16a776607e29d4c7cef27e0de9880dafa71b65c64005522859505870fbef0636ac3066b6b7c7d61941b8a0448b7bf9b2f6f1385ded2e353b329f5bc5a87c2d82088ebe3fbf9907f30caf2c3b649bace27ea96165beeb06bde6c1727b19b6487b2508fa3dca2918a1c35bccd7eaae5e195ee06fdc2953d546542535d3a55c9d0b00000090abe888fd7163369618f463f6d33563db49f7ee9316b35662863a60378ae0312d1f1599d9c2a967ca597d2a6512577dfec7ad1a75364664b29bf2311db1edffb4d059048d653a950c4d7222a53cf069731a7edb0aea3e2d066e760eedc1ace79d8c826e5c2e001790d8c5b99571c174720a03e33f332858a22d1d217591bb4902d161fc4ad5cb987a08c4ed291960400d000001280000009031046819fce63a7102b44aac4c5f8c7a61a3509eb5689cdf977d59cd27c2ae4d1ce799c3c87ac8c8e009f16f8e668574eb7390c74dc034a69f6b3ed1791ae3e8ad9cb378051a96b03e146071515dab32042bc3e5a0144771e4350cf9e97843324a00afce01dbfdaacb9d7973ffc92a92087c71040899508ac6ed22f98cbbc28a326e5450a4d45fe6b3a647b50a41e56400000090094b3b1bba5ee496fc26c68a807f8ded13c145d68ba578d7344525cf8eda77c26cec928f2637327ddbc66ed7a010164adcac03c64a9fa60378d8ebb4d4ef6dc8a0abd085daf104110f5427e737d11dcf0f81eb371c02344fdab811faaa2c3f6848969da8dcff13706be21add66cbeb7a1af501f16c59213bb5ff15fb5622c77b4230bf65f7f99b506dab2da006c5685b0000012800000090ee8c783eec420a1c1645d48a5629cf8ce95d1fa8949367a9da12a9ede842d00b13110aee316cb020d0179e109d17c2bdd9ffdf4a5bc64fc72a5cd07458a7ef79c6724c251fb28c7cc17dce89e99d45d31469f8b4ff96a5cae2822972e78debb1e975944e56522f467d32fcb387c2fcb517125a849697ae7c264e80cf0aebdd9e8fd047d3f48a8ca181ddf60a21a4847800000090c21131eace51e663aa5ddf47fac03e4b8c1b3a386f11d0c4d4a75b8989b6176daedcda7cd3bf8250b611569ba72caaa70aa03db71feea8d09e5a4d8abd3d2094a5137aa8c52af5548d8a8fabb5bbcf0c17b6b9196a1dda2389ee4c780831b684ebb6cb86eaeade5d02c3cb5c9c09b5270e2aac6566015226bfaaa7bb1edb01a88c5583cb0a415ceaa8b0031cbce9c4e10000012800000090618ac49800cfa73d6833d7c6b8382e3409e91435c9901b6b0e6fa5de9c09f065853cb0829b9301e3ade7c1b3c01f0cde7b99086205021fc578bdc51e7aa843849c8ef00fb43a30f9a3c5e3f85ffade7b29e73fd40371222f8d668c62863d9235f3b8adb1ac115b5febddc0e305bc7e1c006902c3cdf60732133e0803abd9fd2d509dfb2fbe7742a9f44d82dba0ffd27900000090a184c9e0eefea15471bab69b8f0a6500c5442f6f042110173c5ad0827e5cd1932d38ea76f0aa40cba967adbb9e97e07db74301806f696d0d177cde9fa0ba61f086b206b98b564157ac24a5dedabd82792bbe9a051cd6b48514c3296d6c54cb8647df72025211ad123ee1cca0291ca03a245dcf0768cab5fa534d148c587ee66f5f36b89fa50df893637f0a2aa8db180000000128000000903b09966390159024f0c642e5d657b0635bc31168923f0a3e0736823d1efa7e48a642a25fb718221062383683fb84e2b64619ea07f026297b445f5bd02451f631087fad7617b2d16bb585866593009db0094d06fdcf120b60e1f4b1b4de7601be84406b9a5373ab0ae7a1793773567d1d20e39cc64e8fcd3e65b33d226a559f87e3029f022c545a449c6fe85bbffa7b0000000090c9f21a34cb2673ab1fec1f94b8b54e3829ad11becca8b51a924f18796eb5d6704d2770518fdb1fdd84c65b40fbc68a5a6c8a535d4ee2e118c851439db8b78ed4c57b8e3d11da1562164de0f87396911525a9e502bbb33d46d38cf863102c2f2e74fbd56811eee530baad35810faddca80326e3d63d9799ca7069f6797d294242373b5a58e6f1ed7330d0060939cb48ee0000012800000090367e9fc1b4a260ea686ac8ad04f2e2ed0761c35a27e3108e16f321d20c8acb40b641a4cd1f1c71d2c5e42b59995ea7d47080e33bef859bff011b38a8ef6b043f236f976c0c39a13f192db7011a5831f807013ac9d1c3a9b88810b0e6ded72f02265be72de608b63c06af3375a1e2daf8168bbf4ad7c401d160b6b36bbaf33cd7542211745a0d0d0abc709d284853ae3a00000090d644726cd54c87ea3ce66c7a5af8ec080a8e8a9cb8db41300b151a2c338e7f9f14ac0e231043934a7ed7bb837be46c7d187e90dd38298e904499932add5d825fd22ba4824609f4c54c3db28fc99507a916a8efbec6336f0b8e8390f5a5106612c428a0adc434d9320f9b9d390a4829e5079a5432b99e97699daf0d728421bf8011cb6bf401f53eb0c1beef6b85d8241f0000012800000090bf4cfcc3fbbd79ba831951aa02d8cf650e7d462d4f1c7cd2a5df1a7ebc6eaa87cd66782af865070338a0a76a66096528ad11288bdb1d9016c1e38e2bf1beadf952896e570071c57f7ac313ad813ac1d90b3d76e851416bd1ccb2dba2d128d6e8203cd39ca8b9d50955970c007b7dad4d104e291a8f5df57bdee6008fe68f0d8163da7984dd6509e2a58655ac2d5e74290000009081d736b83b29f9b0611c05a0dda2490330a97ea2ad65e48c042a3c8b0ad80daa2b6d51f6b19fffe03b50afa87da3262e80378f6248cf5efd1cedd041692aec4573d0e1fd5207c8b281825e76225765dc1f37ae1ba00845d72156077c6533826b991f5f788dd1a10cbcd72ea73f6515812b1ee78954d349355a2a5b9c1232eef4c83d94e20649dec3ab24760cda75e10f0000012800000090a3a61d404a07f45cd49966ed22bf3b4e9c9c5878f58915e0472dc8dd2eb594075d8efa7eb429d7ca61a6c9f79fbea29405f228e03d0bd978971e7f2a42856a89c8aaf4cc565f922b9f832af1c22d365c303bd283c6a1e7b378c5179620165d78bbd8700d4a2900e525236299768dff561ca13cbb25aaf32dd350f51521143a7bd81be6834983052b343e95102f69060300000090304e9b7a5f4670f2fcf132a631b18090cf542bd22bb0a45fbcaa1a2f4ff290e8eaf041592ce1d0e0873e0db3a5943d6ae92ea857d2321859ee87f48324df9198b44e02996ca66db592142f89cf938d6b2e98e9558fcf3af3bfd2ef38ae3506a31f4fe45d907853c60dd998a0ad5bef3f2a620064f2facce42d62d5a2506aea0aea0685b21c7558ff45f122aac0e91c8a00000128000000902640abd81a3da57efeb903fb7ee0e5b7f953a7002ec47e3a9abdf3305a41530e7eeea0371df3533bfaa215b6c987be3a6598e20caffdb7723fda7c5af5fac93d62973c5a86a6411304310f4c0d4da8af14e9d113f7df86b49d60342920cc20dbee12dd8f418d11b0842821684e87feda01fc946ef7c05ce56a9b98f19178f8de758e2af5f786b1fb8b004cc85cb23ec70000009013ec1d98f9636f93ead41ab3140fc2a411f5f2e021bbc9f72d95df91ca55084768d93d2ccebf83fa26cae9e8fa83c2b118fe1cdc46eb9daa30b2d011c40849f0fed65cfadc92fbef62d3630dd676c583125d62403618c5c88c41f689de97c1d75082ddcbc95339e74b677eb2d1318c620d0cc8c82f44736c9bdda24e8b0d706003fba7d4b23237920273970abb93545f00000ce40000012800000090d56eeaf9b6fc69437806e1be871c1ec2a0c23aa64a1d82bac9a7429ef2270bd2765c33c91f82598c1f68ddde7699a285cb64bd409502b8e83b42f1e28207a4e874f8a0b1444f2886da4755d73c7863da004d0689e149f89c368d424e5cd74fdacad44ac7584c9a300a1fc9cba944be581dadbe8d6dd1dc5f96fc4c4cccfa300fd2e787e80e7618e9c5be43003ce3d95f00000090f572e6184890cd783a2c867345f8bf18fe1461a046376de7473fb34c2fc2f1862f6b769d98e88f737eca890f5f5cc48db20571ed6660cec27ce064692abf5cb5a26e5202ff3e0e1fb703499d5fda828800f8b556e4c1224f985a8e2ed75c66b12aed838d942929590121f8983bdc5b7517f746adc73b0c09047e69b64eefbe0340c78aeb25efaf3c0912f93b4f98a0ee000001280000009044b6e3ad790cc71cd6c47f871fb2a86629693ec8472f30df83c8cb4f6001e0e78dbd947a4ada49b87a2dcff150b6735851336062fb4c3ba6a3a74bf35c3aead1860d1cbd5c3507e60a2ddf30ae898cc5018d40e135b8e5c7146e5b2864e91c23da095ef0d6ae535b7d9c6817babacd5313112b1fe26b533d29d413a52391cfa119c12eab0515970954c029ffe1f87b5b00000090870a1f0bae78d421ee6c9ac89c1d95a1b18a31d2b7c86ef2af7e568103d612834985339e8c33c7a5d24f90681edee45a8ece287a949c6f25427b8d26fcd5cf0b774dec6d70cbe0f1688c77266f78e72f1d8418bd3266b95e010d48d53cf30031328f6712893c9eaf368695f43f55f6132a50a634471b990ca9754480d43e87116a1df5bf3b91fdd2a639fb96215472b400000128000000900d2bc0b76f2e7fe9b1143b40fddf59fb274426ef2d5f01d7ed24ac9cd6c3b5ca1279f0216fd765c65be395648debc9082c5826acdd804dc1985826a6d30d9bae86783cd9a9b05a178e8bd613985f0cd71dd6a8dc8dde4fe04fc55f5b391456e02bd685d6a9ea14fd36c38d355d62673e2cfc54c674dce7da0b12c50c093f3ab559b8adbbf2b9cc3b4e3ea52509715b0f0000009012d6e407a368b98961a98fccb0ceb799977f6babcc11d9de75203f9b73dbbc2c141c38bbb43b4d3dff3ac3fba44c348fc35edebf22f3bff9af985e67e2dbdef73c0dcac8c368964f0257a5ce18e5e32a2efed8a3befc81d87c130698efd0a7e6a24a430448b702852988840630cbf639164d104f77092c2e2b5118a6e4be061e6143a9b70ebac3a15ac1a5bf9d5a65c60000012800000090aa1fcd5d082096320617c0e66f2b830a5c7c0548be3cefec89c8d5efc2361c6f0b95119c85d64121f78fcd7317e7c3481c4cc26ca0ff51ce151b8e891b3acd558b0d269645cfd61ec41c6e0a390090882a5e9f8e69af9d41543ab3be93a4a765675fe193213864305b82179cfffd52500039937fc63b2efc64a515492970bbb4a62a476c962bfb03626448e49f478437000000903283ac07cf03f2b74193fd9c1a16ff330ebfba1d6a8d4726cc6f39049af672c17930ab4ce63180b24922c18c43c01b4ac0172b5aafd299476b53e5ba1be50f7e877313fb34ee31354f0378b33b0cb9d4116b9298a40ed296d2b23696b6cd3a50986c0bdfd2bbb5439c58af6b351f9cce0103ab28a09841aebfacf6598c0ec25873088139ce3306e3bbf1a8b84993242f00000128000000903f890ff13d5bb64a96df89deceb505ae3bd968054cb6b354bf39a73e0d3908950a0d9aa8c2d5ee6e2b4fc0188a69c9acc5991f91e4d321b865264765c1de168d83c85ba1ac616ce4801017e5e4c34cf009a7f9f287f676bd11c67d9390ab116e7cb9dd8aa6b468a04dd31f5d78f9666322e6b4b017677a7ce3888a6618558310a0a6ac3fa061782f3c8c77d60f493b03000000900fdef5192501a6583cc3cb04a11f34997f3676a0d31183d87fb7e6255f8bfbd22dc5ca480c264ca60e894727271a00cdbab0b96de88c43e699961e0315f60675fff533af703b944fab3e2900cad022f4207fa960b0d7465156700dbb6587a95ef99dbfb10201d98a4064d1172feacf8430312b5dca5204b1ad73cc3599e01f077a070a39dcda3ea7edd272694debcc49000001280000009015560ec3cb3d4cb1a245fd268fb1c81831d317249ab55981783db915eee39b58771efa13b81e2c90852d5c3e7e74580bc8952a487c10f96b953ca1d86ec62284219910fa213d4a028db2cb3b9883685f209ccd6054af646b530afb5951dc48bc61facf9562420135f161a98d6dc78cb2206f2d4869841f67d3275e541e9f9d66e356d27a06bdaa61448c0afbacc8ad3700000090d445aa4041263de462b276c145ab0bddd25aa0c5f875e429c323e3f58d2d5e84a1aaa46e9297e5313840f3a6fdd600e68453e822744e24500eed099c27de245c542afd148c20548ed106ac2c4286641c0d73fb1acf582d06be8c11439786115b3c634b1be76843622d2b14785d6259e12b8f67d232257b9c837a590b2e69259495c3f9966f5dac6b9a7e7773003aced30000012800000090cec753f8114fcc724810c5123315bfbf96dad76dcab51ba41652b10426b9fd65d7a48cfb2784484e0cf61b8b65b20afc8ad669fa2c879d19028338017df945614e3ffe7c7a5a5f7e7bca84473ac862f403832ca2dbe679bbe6d0e1fb7ea7e21930afe46894c13b48446e6005ab935d841d5494ed8e72009c651dca2ac7eea7d33ec5dd615d818fbda959ef598a230c28000000905a08792b87fedc1a668185e3acee53c5144ac408216f98c9b819a648d5c146ba0499a9af83e36ca91c3f6cda0a225e01cd1e41f3ead0c4f4057c8cb6a7b4ed51911ce4b24ac648c3cd180666b4b74377126825d1ae86b7502e11ea18cd1c8d55156a8b7a1f25c21a92ac80e007c41335182b160006561e7773143e3c9a5dfeacf0e8496c2e2c6ddfd321c04d4673047300000128000000904be201a9ffda34daaf047d5b528835dd61911db450880b1bd3a2b7fc8298600159788b7e47f83dc625b8b9c2636b6ce78c5d2a6fae8c0d1d44009d0610dd2c6f82024a4b23afc49164de7c944b5e4d5f0e20f06069ce3ca7fe2f76c21918796142314525e4546f1e83888970e68dca682f51584adf3fd22f76ad10d759867c52cb7197f1649572c342d970b08729725500000090aeb1109cb748d04bf154bb94546157475bac2113d36e8d584e953a57a7fc212355f8fcd186697882282d6dded2e55b85abf920a5c57e756e7545faa36bce08dca2faa5429086a6976b8c4366e45311d41740d1c95e322047f5b5e96262040c69a166a68d6eff9e5e3ae83b261c0aedd61f830bd4c0a38e1f45c720774e902b7550012b2ba038c9d3710d851830b7c0c50000012800000090a492671e46d035652bae1de1e2d3f409c9391c7ad1315f32d2b686121a75c96756d4dd16f0ac1d666cff578f352b4569fbcba5a153ef82c7611c12421ae9027434bfec9260033fcc0267f44e5a3c4b4f1c2f31f6321a58b8f0ab6b7887cfc7107a2bdb59346fbdae29f343c62e2a5f1102f383e52f679f3d9757f3207cea70f06927d9526edf9b33ff2089f899f2825b00000090148bd8adb33b112b1aec51d508591ff6a3a960056bba4697b89ba23edb1e95b995fa9c1f96b530d117488c56b3351ea5990fcc431ad21c67acadab7ead8ec87ddaafdca660fad163ae6e35d3be395dfc14560cada59209dde10b230d7d4c662e3e7cfcaeb7a9a7a340dcaf6fb8fc15442b58edf35c4c02594f1bf3e5ea3e899f0b26ad62f036718681b829dbb55703670000012800000090e8cfe16147cbfbcede698b9c100dd416212652230a29d79d9716fbd8fa08514837c9644e182460c8eb5bdd694a89195e2365eebcd3996c4af7a1c8d3f887450a0d597a12cef9bda224caaab8a8ecbd982aa923fee4ef4f07e28bd74b4e2c8b0a5ef49674b749513e30b1a039186a3e35269a78b9f7207db380eda629301d79a07b27cf70748aca38a1a0b79dad0aa75200000090655afa7a84fdf37709cc9c7a283cb30c178a5446e7d6f18c54607be8526282f15985a92beaa8ae01cd798f9e4cffc106d86021e65154cfb1a47bbcccf2086f6a89226570e73ec7e47a8c842abfafeace2f3c6fdc480aff2705484a3fc91f494dcf5c427290aba416a052de63ecc50fef164919d1aeed69286f215447f69fca971e4a19421952128bd7bd133ba3a3e8a50000012800000090b00d676b1075c815808ac19b9d44e1b76010750dd21adb26c7a8519eb4c197de00b568d2593c1a4c21779ca05f86f074c7a46fdedd80c67185d13a86ce2d524835b8fa30c9b61dac3596b8717214dab4005681bbbdb96dffbccb423a2bd9178ba7075084be235f11da12d99caf6759a52e106f8e5e7d0f016240f1a9654c4750d34452a01d73afebd928384b0a95c0df00000090b770118ade6cba6553985ccb76698268a91a7e59537762d62cb83b5e2fbd6c78fea043ebb9a51314b8588ff85d7afe03837cccdc4f6518e4e51f28d22374f5814e7c6b5648c0d06563333f8926d162932a7f3a03443f27b002a613ba3efd51e22527ac9fa9fa7dd1234244612ce6b8430a02bd9ea02b7e86c7c9591d9086fdb8a986c8fe164fe57189995af4fb8fe3c9", - "calldataHash": "0xcd9a7ed1324b15c82eb2b86042643cd52b67ef1909cdcdefb26d2073d8664a23", + "body": "0x000001000000000000000000000000000000000000000000000000000000000000000140000000000000000000000000000000000000000000000000000000000000014100000000000000000000000000000000000000000000000000000000000001420000000000000000000000000000000000000000000000000000000000000143000000000000000000000000000000000000000000000000000000000000014400000000000000000000000000000000000000000000000000000000000001450000000000000000000000000000000000000000000000000000000000000146000000000000000000000000000000000000000000000000000000000000014700000000000000000000000000000000000000000000000000000000000001480000000000000000000000000000000000000000000000000000000000000149000000000000000000000000000000000000000000000000000000000000014a000000000000000000000000000000000000000000000000000000000000014b000000000000000000000000000000000000000000000000000000000000014c000000000000000000000000000000000000000000000000000000000000014d000000000000000000000000000000000000000000000000000000000000014e000000000000000000000000000000000000000000000000000000000000014f0000000000000000000000000000000000000000000000000000000000000150000000000000000000000000000000000000000000000000000000000000015100000000000000000000000000000000000000000000000000000000000001520000000000000000000000000000000000000000000000000000000000000153000000000000000000000000000000000000000000000000000000000000015400000000000000000000000000000000000000000000000000000000000001550000000000000000000000000000000000000000000000000000000000000156000000000000000000000000000000000000000000000000000000000000015700000000000000000000000000000000000000000000000000000000000001580000000000000000000000000000000000000000000000000000000000000159000000000000000000000000000000000000000000000000000000000000015a000000000000000000000000000000000000000000000000000000000000015b000000000000000000000000000000000000000000000000000000000000015c000000000000000000000000000000000000000000000000000000000000015d000000000000000000000000000000000000000000000000000000000000015e000000000000000000000000000000000000000000000000000000000000015f0000000000000000000000000000000000000000000000000000000000000160000000000000000000000000000000000000000000000000000000000000016100000000000000000000000000000000000000000000000000000000000001620000000000000000000000000000000000000000000000000000000000000163000000000000000000000000000000000000000000000000000000000000016400000000000000000000000000000000000000000000000000000000000001650000000000000000000000000000000000000000000000000000000000000166000000000000000000000000000000000000000000000000000000000000016700000000000000000000000000000000000000000000000000000000000001680000000000000000000000000000000000000000000000000000000000000169000000000000000000000000000000000000000000000000000000000000016a000000000000000000000000000000000000000000000000000000000000016b000000000000000000000000000000000000000000000000000000000000016c000000000000000000000000000000000000000000000000000000000000016d000000000000000000000000000000000000000000000000000000000000016e000000000000000000000000000000000000000000000000000000000000016f0000000000000000000000000000000000000000000000000000000000000170000000000000000000000000000000000000000000000000000000000000017100000000000000000000000000000000000000000000000000000000000001720000000000000000000000000000000000000000000000000000000000000173000000000000000000000000000000000000000000000000000000000000017400000000000000000000000000000000000000000000000000000000000001750000000000000000000000000000000000000000000000000000000000000176000000000000000000000000000000000000000000000000000000000000017700000000000000000000000000000000000000000000000000000000000001780000000000000000000000000000000000000000000000000000000000000179000000000000000000000000000000000000000000000000000000000000017a000000000000000000000000000000000000000000000000000000000000017b000000000000000000000000000000000000000000000000000000000000017c000000000000000000000000000000000000000000000000000000000000017d000000000000000000000000000000000000000000000000000000000000017e000000000000000000000000000000000000000000000000000000000000017f0000000000000000000000000000000000000000000000000000000000000180000000000000000000000000000000000000000000000000000000000000018100000000000000000000000000000000000000000000000000000000000001820000000000000000000000000000000000000000000000000000000000000183000000000000000000000000000000000000000000000000000000000000018400000000000000000000000000000000000000000000000000000000000001850000000000000000000000000000000000000000000000000000000000000186000000000000000000000000000000000000000000000000000000000000018700000000000000000000000000000000000000000000000000000000000001880000000000000000000000000000000000000000000000000000000000000189000000000000000000000000000000000000000000000000000000000000018a000000000000000000000000000000000000000000000000000000000000018b000000000000000000000000000000000000000000000000000000000000018c000000000000000000000000000000000000000000000000000000000000018d000000000000000000000000000000000000000000000000000000000000018e000000000000000000000000000000000000000000000000000000000000018f0000000000000000000000000000000000000000000000000000000000000190000000000000000000000000000000000000000000000000000000000000019100000000000000000000000000000000000000000000000000000000000001920000000000000000000000000000000000000000000000000000000000000193000000000000000000000000000000000000000000000000000000000000019400000000000000000000000000000000000000000000000000000000000001950000000000000000000000000000000000000000000000000000000000000196000000000000000000000000000000000000000000000000000000000000019700000000000000000000000000000000000000000000000000000000000001980000000000000000000000000000000000000000000000000000000000000199000000000000000000000000000000000000000000000000000000000000019a000000000000000000000000000000000000000000000000000000000000019b000000000000000000000000000000000000000000000000000000000000019c000000000000000000000000000000000000000000000000000000000000019d000000000000000000000000000000000000000000000000000000000000019e000000000000000000000000000000000000000000000000000000000000019f00000000000000000000000000000000000000000000000000000000000001a000000000000000000000000000000000000000000000000000000000000001a100000000000000000000000000000000000000000000000000000000000001a200000000000000000000000000000000000000000000000000000000000001a300000000000000000000000000000000000000000000000000000000000001a400000000000000000000000000000000000000000000000000000000000001a500000000000000000000000000000000000000000000000000000000000001a600000000000000000000000000000000000000000000000000000000000001a700000000000000000000000000000000000000000000000000000000000001a800000000000000000000000000000000000000000000000000000000000001a900000000000000000000000000000000000000000000000000000000000001aa00000000000000000000000000000000000000000000000000000000000001ab00000000000000000000000000000000000000000000000000000000000001ac00000000000000000000000000000000000000000000000000000000000001ad00000000000000000000000000000000000000000000000000000000000001ae00000000000000000000000000000000000000000000000000000000000001af00000000000000000000000000000000000000000000000000000000000001b000000000000000000000000000000000000000000000000000000000000001b100000000000000000000000000000000000000000000000000000000000001b200000000000000000000000000000000000000000000000000000000000001b300000000000000000000000000000000000000000000000000000000000001b400000000000000000000000000000000000000000000000000000000000001b500000000000000000000000000000000000000000000000000000000000001b600000000000000000000000000000000000000000000000000000000000001b700000000000000000000000000000000000000000000000000000000000001b800000000000000000000000000000000000000000000000000000000000001b900000000000000000000000000000000000000000000000000000000000001ba00000000000000000000000000000000000000000000000000000000000001bb00000000000000000000000000000000000000000000000000000000000001bc00000000000000000000000000000000000000000000000000000000000001bd00000000000000000000000000000000000000000000000000000000000001be00000000000000000000000000000000000000000000000000000000000001bf00000000000000000000000000000000000000000000000000000000000001c000000000000000000000000000000000000000000000000000000000000001c100000000000000000000000000000000000000000000000000000000000001c200000000000000000000000000000000000000000000000000000000000001c300000000000000000000000000000000000000000000000000000000000001c400000000000000000000000000000000000000000000000000000000000001c500000000000000000000000000000000000000000000000000000000000001c600000000000000000000000000000000000000000000000000000000000001c700000000000000000000000000000000000000000000000000000000000001c800000000000000000000000000000000000000000000000000000000000001c900000000000000000000000000000000000000000000000000000000000001ca00000000000000000000000000000000000000000000000000000000000001cb00000000000000000000000000000000000000000000000000000000000001cc00000000000000000000000000000000000000000000000000000000000001cd00000000000000000000000000000000000000000000000000000000000001ce00000000000000000000000000000000000000000000000000000000000001cf00000000000000000000000000000000000000000000000000000000000001d000000000000000000000000000000000000000000000000000000000000001d100000000000000000000000000000000000000000000000000000000000001d200000000000000000000000000000000000000000000000000000000000001d300000000000000000000000000000000000000000000000000000000000001d400000000000000000000000000000000000000000000000000000000000001d500000000000000000000000000000000000000000000000000000000000001d600000000000000000000000000000000000000000000000000000000000001d700000000000000000000000000000000000000000000000000000000000001d800000000000000000000000000000000000000000000000000000000000001d900000000000000000000000000000000000000000000000000000000000001da00000000000000000000000000000000000000000000000000000000000001db00000000000000000000000000000000000000000000000000000000000001dc00000000000000000000000000000000000000000000000000000000000001dd00000000000000000000000000000000000000000000000000000000000001de00000000000000000000000000000000000000000000000000000000000001df00000000000000000000000000000000000000000000000000000000000001e000000000000000000000000000000000000000000000000000000000000001e100000000000000000000000000000000000000000000000000000000000001e200000000000000000000000000000000000000000000000000000000000001e300000000000000000000000000000000000000000000000000000000000001e400000000000000000000000000000000000000000000000000000000000001e500000000000000000000000000000000000000000000000000000000000001e600000000000000000000000000000000000000000000000000000000000001e700000000000000000000000000000000000000000000000000000000000001e800000000000000000000000000000000000000000000000000000000000001e900000000000000000000000000000000000000000000000000000000000001ea00000000000000000000000000000000000000000000000000000000000001eb00000000000000000000000000000000000000000000000000000000000001ec00000000000000000000000000000000000000000000000000000000000001ed00000000000000000000000000000000000000000000000000000000000001ee00000000000000000000000000000000000000000000000000000000000001ef00000000000000000000000000000000000000000000000000000000000001f000000000000000000000000000000000000000000000000000000000000001f100000000000000000000000000000000000000000000000000000000000001f200000000000000000000000000000000000000000000000000000000000001f300000000000000000000000000000000000000000000000000000000000001f400000000000000000000000000000000000000000000000000000000000001f500000000000000000000000000000000000000000000000000000000000001f600000000000000000000000000000000000000000000000000000000000001f700000000000000000000000000000000000000000000000000000000000001f800000000000000000000000000000000000000000000000000000000000001f900000000000000000000000000000000000000000000000000000000000001fa00000000000000000000000000000000000000000000000000000000000001fb00000000000000000000000000000000000000000000000000000000000001fc00000000000000000000000000000000000000000000000000000000000001fd00000000000000000000000000000000000000000000000000000000000001fe00000000000000000000000000000000000000000000000000000000000001ff0000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000020100000000000000000000000000000000000000000000000000000000000002020000000000000000000000000000000000000000000000000000000000000203000000000000000000000000000000000000000000000000000000000000020400000000000000000000000000000000000000000000000000000000000002050000000000000000000000000000000000000000000000000000000000000206000000000000000000000000000000000000000000000000000000000000020700000000000000000000000000000000000000000000000000000000000002080000000000000000000000000000000000000000000000000000000000000209000000000000000000000000000000000000000000000000000000000000020a000000000000000000000000000000000000000000000000000000000000020b000000000000000000000000000000000000000000000000000000000000020c000000000000000000000000000000000000000000000000000000000000020d000000000000000000000000000000000000000000000000000000000000020e000000000000000000000000000000000000000000000000000000000000020f0000000000000000000000000000000000000000000000000000000000000210000000000000000000000000000000000000000000000000000000000000021100000000000000000000000000000000000000000000000000000000000002120000000000000000000000000000000000000000000000000000000000000213000000000000000000000000000000000000000000000000000000000000021400000000000000000000000000000000000000000000000000000000000002150000000000000000000000000000000000000000000000000000000000000216000000000000000000000000000000000000000000000000000000000000021700000000000000000000000000000000000000000000000000000000000002180000000000000000000000000000000000000000000000000000000000000219000000000000000000000000000000000000000000000000000000000000021a000000000000000000000000000000000000000000000000000000000000021b000000000000000000000000000000000000000000000000000000000000021c000000000000000000000000000000000000000000000000000000000000021d000000000000000000000000000000000000000000000000000000000000021e000000000000000000000000000000000000000000000000000000000000021f0000000000000000000000000000000000000000000000000000000000000220000000000000000000000000000000000000000000000000000000000000022100000000000000000000000000000000000000000000000000000000000002220000000000000000000000000000000000000000000000000000000000000223000000000000000000000000000000000000000000000000000000000000022400000000000000000000000000000000000000000000000000000000000002250000000000000000000000000000000000000000000000000000000000000226000000000000000000000000000000000000000000000000000000000000022700000000000000000000000000000000000000000000000000000000000002280000000000000000000000000000000000000000000000000000000000000229000000000000000000000000000000000000000000000000000000000000022a000000000000000000000000000000000000000000000000000000000000022b000000000000000000000000000000000000000000000000000000000000022c000000000000000000000000000000000000000000000000000000000000022d000000000000000000000000000000000000000000000000000000000000022e000000000000000000000000000000000000000000000000000000000000022f0000000000000000000000000000000000000000000000000000000000000230000000000000000000000000000000000000000000000000000000000000023100000000000000000000000000000000000000000000000000000000000002320000000000000000000000000000000000000000000000000000000000000233000000000000000000000000000000000000000000000000000000000000023400000000000000000000000000000000000000000000000000000000000002350000000000000000000000000000000000000000000000000000000000000236000000000000000000000000000000000000000000000000000000000000023700000000000000000000000000000000000000000000000000000000000002380000000000000000000000000000000000000000000000000000000000000239000000000000000000000000000000000000000000000000000000000000023a000000000000000000000000000000000000000000000000000000000000023b000000000000000000000000000000000000000000000000000000000000023c000000000000000000000000000000000000000000000000000000000000023d000000000000000000000000000000000000000000000000000000000000023e000000000000000000000000000000000000000000000000000000000000023f000001000000000000000000000000000000000000000000000000000000000000000240000000000000000000000000000000000000000000000000000000000000024100000000000000000000000000000000000000000000000000000000000002420000000000000000000000000000000000000000000000000000000000000243000000000000000000000000000000000000000000000000000000000000024400000000000000000000000000000000000000000000000000000000000002450000000000000000000000000000000000000000000000000000000000000246000000000000000000000000000000000000000000000000000000000000024700000000000000000000000000000000000000000000000000000000000002480000000000000000000000000000000000000000000000000000000000000249000000000000000000000000000000000000000000000000000000000000024a000000000000000000000000000000000000000000000000000000000000024b000000000000000000000000000000000000000000000000000000000000024c000000000000000000000000000000000000000000000000000000000000024d000000000000000000000000000000000000000000000000000000000000024e000000000000000000000000000000000000000000000000000000000000024f0000000000000000000000000000000000000000000000000000000000000250000000000000000000000000000000000000000000000000000000000000025100000000000000000000000000000000000000000000000000000000000002520000000000000000000000000000000000000000000000000000000000000253000000000000000000000000000000000000000000000000000000000000025400000000000000000000000000000000000000000000000000000000000002550000000000000000000000000000000000000000000000000000000000000256000000000000000000000000000000000000000000000000000000000000025700000000000000000000000000000000000000000000000000000000000002580000000000000000000000000000000000000000000000000000000000000259000000000000000000000000000000000000000000000000000000000000025a000000000000000000000000000000000000000000000000000000000000025b000000000000000000000000000000000000000000000000000000000000025c000000000000000000000000000000000000000000000000000000000000025d000000000000000000000000000000000000000000000000000000000000025e000000000000000000000000000000000000000000000000000000000000025f0000000000000000000000000000000000000000000000000000000000000260000000000000000000000000000000000000000000000000000000000000026100000000000000000000000000000000000000000000000000000000000002620000000000000000000000000000000000000000000000000000000000000263000000000000000000000000000000000000000000000000000000000000026400000000000000000000000000000000000000000000000000000000000002650000000000000000000000000000000000000000000000000000000000000266000000000000000000000000000000000000000000000000000000000000026700000000000000000000000000000000000000000000000000000000000002680000000000000000000000000000000000000000000000000000000000000269000000000000000000000000000000000000000000000000000000000000026a000000000000000000000000000000000000000000000000000000000000026b000000000000000000000000000000000000000000000000000000000000026c000000000000000000000000000000000000000000000000000000000000026d000000000000000000000000000000000000000000000000000000000000026e000000000000000000000000000000000000000000000000000000000000026f0000000000000000000000000000000000000000000000000000000000000270000000000000000000000000000000000000000000000000000000000000027100000000000000000000000000000000000000000000000000000000000002720000000000000000000000000000000000000000000000000000000000000273000000000000000000000000000000000000000000000000000000000000027400000000000000000000000000000000000000000000000000000000000002750000000000000000000000000000000000000000000000000000000000000276000000000000000000000000000000000000000000000000000000000000027700000000000000000000000000000000000000000000000000000000000002780000000000000000000000000000000000000000000000000000000000000279000000000000000000000000000000000000000000000000000000000000027a000000000000000000000000000000000000000000000000000000000000027b000000000000000000000000000000000000000000000000000000000000027c000000000000000000000000000000000000000000000000000000000000027d000000000000000000000000000000000000000000000000000000000000027e00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000280000000000000000000000000000000000000000000000000000000000000028100000000000000000000000000000000000000000000000000000000000002820000000000000000000000000000000000000000000000000000000000000283000000000000000000000000000000000000000000000000000000000000028400000000000000000000000000000000000000000000000000000000000002850000000000000000000000000000000000000000000000000000000000000286000000000000000000000000000000000000000000000000000000000000028700000000000000000000000000000000000000000000000000000000000002880000000000000000000000000000000000000000000000000000000000000289000000000000000000000000000000000000000000000000000000000000028a000000000000000000000000000000000000000000000000000000000000028b000000000000000000000000000000000000000000000000000000000000028c000000000000000000000000000000000000000000000000000000000000028d000000000000000000000000000000000000000000000000000000000000028e000000000000000000000000000000000000000000000000000000000000028f0000000000000000000000000000000000000000000000000000000000000290000000000000000000000000000000000000000000000000000000000000029100000000000000000000000000000000000000000000000000000000000002920000000000000000000000000000000000000000000000000000000000000293000000000000000000000000000000000000000000000000000000000000029400000000000000000000000000000000000000000000000000000000000002950000000000000000000000000000000000000000000000000000000000000296000000000000000000000000000000000000000000000000000000000000029700000000000000000000000000000000000000000000000000000000000002980000000000000000000000000000000000000000000000000000000000000299000000000000000000000000000000000000000000000000000000000000029a000000000000000000000000000000000000000000000000000000000000029b000000000000000000000000000000000000000000000000000000000000029c000000000000000000000000000000000000000000000000000000000000029d000000000000000000000000000000000000000000000000000000000000029e000000000000000000000000000000000000000000000000000000000000029f00000000000000000000000000000000000000000000000000000000000002a000000000000000000000000000000000000000000000000000000000000002a100000000000000000000000000000000000000000000000000000000000002a200000000000000000000000000000000000000000000000000000000000002a300000000000000000000000000000000000000000000000000000000000002a400000000000000000000000000000000000000000000000000000000000002a500000000000000000000000000000000000000000000000000000000000002a600000000000000000000000000000000000000000000000000000000000002a700000000000000000000000000000000000000000000000000000000000002a800000000000000000000000000000000000000000000000000000000000002a900000000000000000000000000000000000000000000000000000000000002aa00000000000000000000000000000000000000000000000000000000000002ab00000000000000000000000000000000000000000000000000000000000002ac00000000000000000000000000000000000000000000000000000000000002ad00000000000000000000000000000000000000000000000000000000000002ae00000000000000000000000000000000000000000000000000000000000002af00000000000000000000000000000000000000000000000000000000000002b000000000000000000000000000000000000000000000000000000000000002b100000000000000000000000000000000000000000000000000000000000002b200000000000000000000000000000000000000000000000000000000000002b300000000000000000000000000000000000000000000000000000000000002b400000000000000000000000000000000000000000000000000000000000002b500000000000000000000000000000000000000000000000000000000000002b600000000000000000000000000000000000000000000000000000000000002b700000000000000000000000000000000000000000000000000000000000002b800000000000000000000000000000000000000000000000000000000000002b900000000000000000000000000000000000000000000000000000000000002ba00000000000000000000000000000000000000000000000000000000000002bb00000000000000000000000000000000000000000000000000000000000002bc00000000000000000000000000000000000000000000000000000000000002bd00000000000000000000000000000000000000000000000000000000000002be000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002c000000000000000000000000000000000000000000000000000000000000002c100000000000000000000000000000000000000000000000000000000000002c200000000000000000000000000000000000000000000000000000000000002c300000000000000000000000000000000000000000000000000000000000002c400000000000000000000000000000000000000000000000000000000000002c500000000000000000000000000000000000000000000000000000000000002c600000000000000000000000000000000000000000000000000000000000002c700000000000000000000000000000000000000000000000000000000000002c800000000000000000000000000000000000000000000000000000000000002c900000000000000000000000000000000000000000000000000000000000002ca00000000000000000000000000000000000000000000000000000000000002cb00000000000000000000000000000000000000000000000000000000000002cc00000000000000000000000000000000000000000000000000000000000002cd00000000000000000000000000000000000000000000000000000000000002ce00000000000000000000000000000000000000000000000000000000000002cf00000000000000000000000000000000000000000000000000000000000002d000000000000000000000000000000000000000000000000000000000000002d100000000000000000000000000000000000000000000000000000000000002d200000000000000000000000000000000000000000000000000000000000002d300000000000000000000000000000000000000000000000000000000000002d400000000000000000000000000000000000000000000000000000000000002d500000000000000000000000000000000000000000000000000000000000002d600000000000000000000000000000000000000000000000000000000000002d700000000000000000000000000000000000000000000000000000000000002d800000000000000000000000000000000000000000000000000000000000002d900000000000000000000000000000000000000000000000000000000000002da00000000000000000000000000000000000000000000000000000000000002db00000000000000000000000000000000000000000000000000000000000002dc00000000000000000000000000000000000000000000000000000000000002dd00000000000000000000000000000000000000000000000000000000000002de00000000000000000000000000000000000000000000000000000000000002df00000000000000000000000000000000000000000000000000000000000002e000000000000000000000000000000000000000000000000000000000000002e100000000000000000000000000000000000000000000000000000000000002e200000000000000000000000000000000000000000000000000000000000002e300000000000000000000000000000000000000000000000000000000000002e400000000000000000000000000000000000000000000000000000000000002e500000000000000000000000000000000000000000000000000000000000002e600000000000000000000000000000000000000000000000000000000000002e700000000000000000000000000000000000000000000000000000000000002e800000000000000000000000000000000000000000000000000000000000002e900000000000000000000000000000000000000000000000000000000000002ea00000000000000000000000000000000000000000000000000000000000002eb00000000000000000000000000000000000000000000000000000000000002ec00000000000000000000000000000000000000000000000000000000000002ed00000000000000000000000000000000000000000000000000000000000002ee00000000000000000000000000000000000000000000000000000000000002ef00000000000000000000000000000000000000000000000000000000000002f000000000000000000000000000000000000000000000000000000000000002f100000000000000000000000000000000000000000000000000000000000002f200000000000000000000000000000000000000000000000000000000000002f300000000000000000000000000000000000000000000000000000000000002f400000000000000000000000000000000000000000000000000000000000002f500000000000000000000000000000000000000000000000000000000000002f600000000000000000000000000000000000000000000000000000000000002f700000000000000000000000000000000000000000000000000000000000002f800000000000000000000000000000000000000000000000000000000000002f900000000000000000000000000000000000000000000000000000000000002fa00000000000000000000000000000000000000000000000000000000000002fb00000000000000000000000000000000000000000000000000000000000002fc00000000000000000000000000000000000000000000000000000000000002fd00000000000000000000000000000000000000000000000000000000000002fe00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000300000000000000000000000000000000000000000000000000000000000000030100000000000000000000000000000000000000000000000000000000000003020000000000000000000000000000000000000000000000000000000000000303000000000000000000000000000000000000000000000000000000000000030400000000000000000000000000000000000000000000000000000000000003050000000000000000000000000000000000000000000000000000000000000306000000000000000000000000000000000000000000000000000000000000030700000000000000000000000000000000000000000000000000000000000003080000000000000000000000000000000000000000000000000000000000000309000000000000000000000000000000000000000000000000000000000000030a000000000000000000000000000000000000000000000000000000000000030b000000000000000000000000000000000000000000000000000000000000030c000000000000000000000000000000000000000000000000000000000000030d000000000000000000000000000000000000000000000000000000000000030e000000000000000000000000000000000000000000000000000000000000030f0000000000000000000000000000000000000000000000000000000000000310000000000000000000000000000000000000000000000000000000000000031100000000000000000000000000000000000000000000000000000000000003120000000000000000000000000000000000000000000000000000000000000313000000000000000000000000000000000000000000000000000000000000031400000000000000000000000000000000000000000000000000000000000003150000000000000000000000000000000000000000000000000000000000000316000000000000000000000000000000000000000000000000000000000000031700000000000000000000000000000000000000000000000000000000000003180000000000000000000000000000000000000000000000000000000000000319000000000000000000000000000000000000000000000000000000000000031a000000000000000000000000000000000000000000000000000000000000031b000000000000000000000000000000000000000000000000000000000000031c000000000000000000000000000000000000000000000000000000000000031d000000000000000000000000000000000000000000000000000000000000031e000000000000000000000000000000000000000000000000000000000000031f0000000000000000000000000000000000000000000000000000000000000320000000000000000000000000000000000000000000000000000000000000032100000000000000000000000000000000000000000000000000000000000003220000000000000000000000000000000000000000000000000000000000000323000000000000000000000000000000000000000000000000000000000000032400000000000000000000000000000000000000000000000000000000000003250000000000000000000000000000000000000000000000000000000000000326000000000000000000000000000000000000000000000000000000000000032700000000000000000000000000000000000000000000000000000000000003280000000000000000000000000000000000000000000000000000000000000329000000000000000000000000000000000000000000000000000000000000032a000000000000000000000000000000000000000000000000000000000000032b000000000000000000000000000000000000000000000000000000000000032c000000000000000000000000000000000000000000000000000000000000032d000000000000000000000000000000000000000000000000000000000000032e000000000000000000000000000000000000000000000000000000000000032f0000000000000000000000000000000000000000000000000000000000000330000000000000000000000000000000000000000000000000000000000000033100000000000000000000000000000000000000000000000000000000000003320000000000000000000000000000000000000000000000000000000000000333000000000000000000000000000000000000000000000000000000000000033400000000000000000000000000000000000000000000000000000000000003350000000000000000000000000000000000000000000000000000000000000336000000000000000000000000000000000000000000000000000000000000033700000000000000000000000000000000000000000000000000000000000003380000000000000000000000000000000000000000000000000000000000000339000000000000000000000000000000000000000000000000000000000000033a000000000000000000000000000000000000000000000000000000000000033b000000000000000000000000000000000000000000000000000000000000033c000000000000000000000000000000000000000000000000000000000000033d000000000000000000000000000000000000000000000000000000000000033e0000000000000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000540000000000000000000000000000000000000000000000000000000000000054a0000000000000000000000000000000000000000000000000000000000000541000000000000000000000000000000000000000000000000000000000000054b0000000000000000000000000000000000000000000000000000000000000542000000000000000000000000000000000000000000000000000000000000054c0000000000000000000000000000000000000000000000000000000000000543000000000000000000000000000000000000000000000000000000000000054d0000000000000000000000000000000000000000000000000000000000000544000000000000000000000000000000000000000000000000000000000000054e0000000000000000000000000000000000000000000000000000000000000545000000000000000000000000000000000000000000000000000000000000054f00000000000000000000000000000000000000000000000000000000000005460000000000000000000000000000000000000000000000000000000000000550000000000000000000000000000000000000000000000000000000000000054700000000000000000000000000000000000000000000000000000000000005510000000000000000000000000000000000000000000000000000000000000548000000000000000000000000000000000000000000000000000000000000055200000000000000000000000000000000000000000000000000000000000005490000000000000000000000000000000000000000000000000000000000000553000000000000000000000000000000000000000000000000000000000000054a0000000000000000000000000000000000000000000000000000000000000554000000000000000000000000000000000000000000000000000000000000054b0000000000000000000000000000000000000000000000000000000000000555000000000000000000000000000000000000000000000000000000000000054c0000000000000000000000000000000000000000000000000000000000000556000000000000000000000000000000000000000000000000000000000000054d0000000000000000000000000000000000000000000000000000000000000557000000000000000000000000000000000000000000000000000000000000054e0000000000000000000000000000000000000000000000000000000000000558000000000000000000000000000000000000000000000000000000000000054f00000000000000000000000000000000000000000000000000000000000005590000000000000000000000000000000000000000000000000000000000000580000000000000000000000000000000000000000000000000000000000000058a0000000000000000000000000000000000000000000000000000000000000581000000000000000000000000000000000000000000000000000000000000058b0000000000000000000000000000000000000000000000000000000000000582000000000000000000000000000000000000000000000000000000000000058c0000000000000000000000000000000000000000000000000000000000000583000000000000000000000000000000000000000000000000000000000000058d0000000000000000000000000000000000000000000000000000000000000584000000000000000000000000000000000000000000000000000000000000058e0000000000000000000000000000000000000000000000000000000000000585000000000000000000000000000000000000000000000000000000000000058f00000000000000000000000000000000000000000000000000000000000005860000000000000000000000000000000000000000000000000000000000000590000000000000000000000000000000000000000000000000000000000000058700000000000000000000000000000000000000000000000000000000000005910000000000000000000000000000000000000000000000000000000000000588000000000000000000000000000000000000000000000000000000000000059200000000000000000000000000000000000000000000000000000000000005890000000000000000000000000000000000000000000000000000000000000593000000000000000000000000000000000000000000000000000000000000058a0000000000000000000000000000000000000000000000000000000000000594000000000000000000000000000000000000000000000000000000000000058b0000000000000000000000000000000000000000000000000000000000000595000000000000000000000000000000000000000000000000000000000000058c0000000000000000000000000000000000000000000000000000000000000596000000000000000000000000000000000000000000000000000000000000058d0000000000000000000000000000000000000000000000000000000000000597000000000000000000000000000000000000000000000000000000000000058e0000000000000000000000000000000000000000000000000000000000000598000000000000000000000000000000000000000000000000000000000000058f000000000000000000000000000000000000000000000000000000000000059900000000000000000000000000000000000000000000000000000000000005c000000000000000000000000000000000000000000000000000000000000005ca00000000000000000000000000000000000000000000000000000000000005c100000000000000000000000000000000000000000000000000000000000005cb00000000000000000000000000000000000000000000000000000000000005c200000000000000000000000000000000000000000000000000000000000005cc00000000000000000000000000000000000000000000000000000000000005c300000000000000000000000000000000000000000000000000000000000005cd00000000000000000000000000000000000000000000000000000000000005c400000000000000000000000000000000000000000000000000000000000005ce00000000000000000000000000000000000000000000000000000000000005c500000000000000000000000000000000000000000000000000000000000005cf00000000000000000000000000000000000000000000000000000000000005c600000000000000000000000000000000000000000000000000000000000005d000000000000000000000000000000000000000000000000000000000000005c700000000000000000000000000000000000000000000000000000000000005d100000000000000000000000000000000000000000000000000000000000005c800000000000000000000000000000000000000000000000000000000000005d200000000000000000000000000000000000000000000000000000000000005c900000000000000000000000000000000000000000000000000000000000005d300000000000000000000000000000000000000000000000000000000000005ca00000000000000000000000000000000000000000000000000000000000005d400000000000000000000000000000000000000000000000000000000000005cb00000000000000000000000000000000000000000000000000000000000005d500000000000000000000000000000000000000000000000000000000000005cc00000000000000000000000000000000000000000000000000000000000005d600000000000000000000000000000000000000000000000000000000000005cd00000000000000000000000000000000000000000000000000000000000005d700000000000000000000000000000000000000000000000000000000000005ce00000000000000000000000000000000000000000000000000000000000005d800000000000000000000000000000000000000000000000000000000000005cf00000000000000000000000000000000000000000000000000000000000005d90000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000060a0000000000000000000000000000000000000000000000000000000000000601000000000000000000000000000000000000000000000000000000000000060b0000000000000000000000000000000000000000000000000000000000000602000000000000000000000000000000000000000000000000000000000000060c0000000000000000000000000000000000000000000000000000000000000603000000000000000000000000000000000000000000000000000000000000060d0000000000000000000000000000000000000000000000000000000000000604000000000000000000000000000000000000000000000000000000000000060e0000000000000000000000000000000000000000000000000000000000000605000000000000000000000000000000000000000000000000000000000000060f00000000000000000000000000000000000000000000000000000000000006060000000000000000000000000000000000000000000000000000000000000610000000000000000000000000000000000000000000000000000000000000060700000000000000000000000000000000000000000000000000000000000006110000000000000000000000000000000000000000000000000000000000000608000000000000000000000000000000000000000000000000000000000000061200000000000000000000000000000000000000000000000000000000000006090000000000000000000000000000000000000000000000000000000000000613000000000000000000000000000000000000000000000000000000000000060a0000000000000000000000000000000000000000000000000000000000000614000000000000000000000000000000000000000000000000000000000000060b0000000000000000000000000000000000000000000000000000000000000615000000000000000000000000000000000000000000000000000000000000060c0000000000000000000000000000000000000000000000000000000000000616000000000000000000000000000000000000000000000000000000000000060d0000000000000000000000000000000000000000000000000000000000000617000000000000000000000000000000000000000000000000000000000000060e0000000000000000000000000000000000000000000000000000000000000618000000000000000000000000000000000000000000000000000000000000060f000000000000000000000000000000000000000000000000000000000000061900000008000000000000000000000000000000000000000000000000000000000000034000000000000000000000000000000000000000000000000000000000000003410000000000000000000000000000000000000000000000000000000000000380000000000000000000000000000000000000000000000000000000000000038100000000000000000000000000000000000000000000000000000000000003c000000000000000000000000000000000000000000000000000000000000003c100000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000401000000041c72e330b60e0052863df88b19ebb482d412b0a7bbb2fabb9347be5e59453d10078d263242fac5a2ad544b5005bcea367ebc04e01ff7ca279650bc63d9488ac304ad4d395e21ea570da47bf574569c6526312c5c7ad63a6d248f694e5c81c2b60e12693b411d9eb8f564aa43f4aa14e3e30f8574425a6d6491416332b77d2709000000000000000000000000000000000000000000000000000000000000104041414141414141414141414141414141414141410000000000000000000000000000000000000000000000000000000000001080818181818181818181818181818181818181818100000000000000000000000000000000000000000000000000000000000010c0c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c10000000000000000000000000000000000000000000000000000000000001100010101010101010101010101010101010101010100000010151de48ca3efbae39f180fe00b8f472ec9f25be10b4f283a87c6d7839353703914c2ea9dedf77698d4afe23bc663263eed0bf9aa3a8b17d9b74812f185610f9e1570cc6641699e3ae87fa258d80a6d853f7b8ccb211dc244d017e2ca6530f8a12806c860af67e9cd50000378411b8c4c4db172ceb2daa862b259b689ccbdc1e005f140c7c95624c8006774279a01ec1ea88617999e4fe6997b6576c4e1c7395a22048b96b586596bd740d0402e15f5577f7ceb5496b65aafc6d89d7c3b34924b0c3f2d50d16279970d682cada30bfa6b29bc0bac0ee2389f6a0444853eccaa932b2a60561da46a58569d71044a84c639e7f88429826e5622581536eb906d9cdd25a2c0a76f7da6924e10751c755227d2535f4ad258b984e78f9f452a853c52300e212d8e2069e4254d81af07744bcbb81121a38f0e2dbed69a523d3fbf85b75c287ca6f33aadbac2e4f058e05924c140d7895a6ed167caf804b710d2ae3ba62b1b51297b3ea37637af6bd56cf33425d95cc5c96e9c2ee3077322fbec86a0c7f32c15d2a888c6cc122e99478c92470a1311635142d82ad7ae67410beeef4ae31f0902ba2fb964922a4610bb18901f7b923885c1d034da5769a48203ae6f0206a92855e2c01ddb3d6553386b5580d681b8230fa4062948668f834f23e0636eaff70aaa64519aafdf4b040bd2f9836e76b9dc13cfec8065dcdf2834d786e06260d10000381000000e00000001bc00000090ba31e106be659f28af9e2af50d26e9d288793bd2916d001e72b890141088e28edab510df4a749b7353013aea3159668294ffb417f35ce95cb6fce2f0221d812cc4857d625e1a6de8ef2b35b36213ab4616286de404f3fc6463e0e8b3c8f6f8251f122191b6e9fbb1c2cf167dabda8f39040a8bac6c883f89b0ab3b0c1e42bfe51bc975cc64a95028e12e3973e801f67b00000090cf1a7b1afc016e43b921a58db2db12a3e5898a193f7d50907562b5b85e41cadeecb846519ea542dd1629c46544286079c71deb32cccedd1f1174973b6a67aa3aaf1d2383f3220c9364db3bab5e636a6d08c44b3ed62aff9c6317097a655ca306b03eeeb7a30bc8d67d1fca62afb7519e13d782777f78caaf2a8d5bb2ca25f1bb30c4507bb38b914e1cb6de394c47eaff00000090972270ea28acbcd6a954b5e146cee856dd3ef968cbffea1b2e26fe8aa06971f0e8ed6e16de6c6d16da52a856d163d5d489885cbcc8e5389d1fc374fa7fa2722146b3e3ed216d5458023f295c4760c2ea1ad29613ffd7a06c1c8e789be58df9bffcbc51b33964b639a56bc5dd1a51387812f2a6d70cef7584e1fd429ffeea5282e9e526246a41da20e503971e2aab4ec5000001bc00000090eb7ade43f1e76dbee20da4688d5b051f943bae0e4aa13d6c3df97fc368f76d43550019246b1190e00cb20ad8eed3290d9589d0887c900f7dd563e46a8d1cd032130f47fed6c734a21da566075c469ca9006b482df4c9cc45c3666f721cd8f70701754b25a3f1fb4e350ee5fe39bc3ffa18c8563a2f6f82742f48612ba792506205880c01d57a739598bf190feb8596240000009056db89a8f50db43b830026ae48dd55257eca77acda80258fed70ab6544a1da8dc8a5cbf5cd2a6ce9ca2983cd08679b8acf024ec18107b7bae3477de8aaace0d672c802658736d0654a7fe35b810ed34809f0190f92b4a8a070679832bd2f978d06839aa3c12f7263facc03ded7b515d606ec5141d8fdecb686790d39f0f7f380b056b8d8eec3e12522d779459764092100000090255a139bd500720e3731bb9a6c79d111a39618b2e5f7c530ac9847bf2945c5fd11726efd1664ebd7c5ca43a9f001e6e9048151ec3ae655178efecb510735cda8838001ca728b89c9cff98831485a0ad51b5a9d5ad1566b6ce5872da25282fba1e8fb1ab733ceaa1e4cdd5714b5e0d1ba1a34e60123ff9adef7a9aafa7a70afad2b0150256f6bcb582edcdd802322f455000001bc00000090ad3145489922aa1ce466b9c6c7d72ab3806cbfe1142b29704248fb092ffcae20ce010695fada64864571f02888d1a20a5aa6c85bd719753e5a24b112be2165771eeb9f9734c57044eb2be7e8824c630d14af1b5a23cafb9ffb3449c13ad139c1625cce3cf18a30dba95f89318bc26dca1a788d92b8c8cdba555a3b56f61c2702834346ea4b9c995f2a62832453c95ba200000090efb7e3ad6436cf40a50d456603b484b0790c484345d91ef82df22727bf83359189f64f7647567c4a62d967b7c08d97834b0acbcc233dab3cfd4001f19cc05e406707a1752e03e79919a4a5d58e71b29720aafbc5877bc7c2132627780a3c8028b8e670168e23175d776a0791e9dd0ed1005288a9a0ce98fa9918d9e40308c5022e264ba1f04a36c3e747fa8e039698020000009003294bc41bb24fe5cc42ec61e2c7fe1bd0d0a90a37f04a9860159e21cd2ada613cdb72c0a60eadd711d0a14c1fbb8f60840c4ec94c91a74f2f65e989785b3a28abe0876640a898cfd1cd4cf1702ba78d2e9cff04a1744646744b510798e0c4c1d2a1273fb63a9a8fcdfcfc6511b2e3170d66e31114b708a4c85eec819ce2a81d8b3fb0e14b886cf418f5f904818a9513000001bc00000090fc0e40cf1531f14a598f44838136445b088a2a2f45cbbab5da3cc3dcd3a50d9501b376680602ef03fde8f0efbf5e64bdfcd04d2be10467899db77b87f7082e6bb9606f2b3f6578958f7738aeccc2f998135d91d51804d9bd5af9f9bf0cc082cfb4d914ec78b3717588a607d28866895a26d3dbf67613eb7b88507e96c36f8eb3f6d2f035ff29601a7070db25482ca6480000009097af660dc945d784adf1e74f09c76c0d8070aba3c837dd839e01e1fe905a526b297da15eb220ead6988026a4ccd36544d2a2cde5d68b63179505ac1cf61556c5fcb06155a299e98b76d478dfee7254b10474f23c1f1d780f3525ffcaab169a947e8b42a2b384b2a5733a408d8713510a246fbbedfa20466f9551191746bc8bbc612e2d8605f9d70a1ab9ab78393658ed0000009099c961b18e91d5f06f29cabf320bccb0050d377bdacc0b811a1a5401d046ef2d6fd59c1434c6c7f7f658467a1c5df79c6bae907a28dae0ccd73ca52e7148d36d960bf13af6a158381b2b1d3e3d32085c2953c851420fcfd51c7da4402646bdf8b70fce51677ea205131cc5985b6c36661e93db19cb61526afd04356dbd7ae0b742b27c4dfb3866949e5958ca3e842ba9000001bc0000009002c28f7f35048d85da57163a88bae6c1ce86084bcb10f1f2473b9fcfe3c4d31e696db7c1f176d59a8662fd98179eb6bba3d3fdbd9380987823949f7f6670862992d060df1bb03fc7be8e56ea31d1049e25eab063ba144bd855dafe6615b7e3394519bb08fdbd277645f235e627d8f5c922f064f572ff7e9e5d3793d8f17f7be2eb642ef66ab2c937f234ab302db9c01600000090ced262f3fc9841eacecf4ac79ece1a6f329883551b495dc904f1da4fc7149c19b0af3b589f525b192585ad7cf11d37296750f89b42c2f74c78a4cb7b301b08f4995e5ac277c65466654192ed8b7fad9f02e2c8c9b67aec2e4fe51fd582b065a0b1295023088671f1656ef0c899cfd14e24d3823a3b5bf33025daffbe6667c86a071ab485bdcfe78fd70f4ca591a7744800000090bcc6b58413d5bd230d8ecb4e92873d5d59f603c97f90dc0f13a47cedb485246cef9bb7fb9eeb97588ef15e6a560e7807a3bf30c19222223c73d5495e514f9d94ab925eb2efc5cc009abd85306a1891fc06e743b5b79bf848dcadfede5215546b2475e9ba3c3bd3c90a59b06b298c33b30bd6ca5d1de7b231868378fbe77a66d4d7bd8acdee3b91552036f1786a899f8e000001bc000000907d8152fafb9430eb4212fd07e22ef189b74e1a61840e63bac60ae533b51a4ac663cf6f1eea1b7b005de75030992f3df13520fee65eafcbf284055d95061770dd76993321a449b17b3ba8765d4eb25a5e13f3ccc51ccddee670bf64573ede4d604f38baad0e7b745eaeacd14706d15dfc23e21b0eb00589c0b08468185419290deb27e4dbe077c3348d9ab03babad010d00000090ae769576c6e1adaac865282f54be54d7a32f397c72f6b7cac17b3632dc2b7ea2a991549df2d8cc79a8619bf84dffaf8ba5b8032566047508ff713890d1502f9b6c223c2f417db257ac5cd0eb24770faa230c8a792a315873eb4dd5c089ac5ddb21e7f1be282d2a7474d25b7a76a5eb49094555d3778101e0d87b2fc3634faa9e870274db85687e1fb9985a3bccdec32700000090d6419ea66762388b744d8554f1d12fa61e186e87ef656d9fd43afe120faaf85ca3b919bb9e1159b26c6f9373ed8900ec9b07958a7fa94122767e8fbe83fe25bd25ee9b7bbc215169cd5fcd472d29631a2c85122496dc2a16064f0a4d971d00213573c1be7ab46d9cb1688b7a6b8ad6c715cad16545eccd57cfe4e009769a42f43d35f94afb0ed37f56497a4083b4c1c9000001bc00000090578657302fbb2f8cd1f948c6f7ec702485bbb02d000e49b0bb270e4ba42aaed079b180b57324b619358a65bb30e1e99e005eff7cab46e6ebad6a24bc271dc6bf596cfef2bed50660ee5912c7261f602018fe7c0a8aa0039f79e2d7ae32bb2b3e50a55aaf88f6facebeb285461edd481d0853f2e92bc2962d3abd76ee05c051fd4c616902b3da929fbe7147c9be20b33900000090ff20a189a61ff5160a797d3bbf9fa8fe42a4a718dff147034496e00803e918b5010db5c160bdcc2cd20b453f80f52d555e28addc5b3eb493a14a5eb24bb7d6749e725eddb2d15b7abba4ff1d6f51058b064750b8541970f26baee4f5daa75badc7d27cc7de416972251b974fc47fdd2617e2548554329d272dca1848dd9ca17a8655e9c79ed8d65b9e626bb5f4c195cb00000090da7b1475f1369e5dd95e3974f0a61d381e717cd227a6c907b6f79e25348e2de665ce82a5ef35bc7bc8b7186cf954ec7975e763a76e2b4455c0e8f9f6c95044018b6a6612a3ed58f397c92b4f4a94bcc222ffc4c50503009eaf6898361f5cee52f86d18168916c6d828f762c4e9f1e43201d54a8d7d9e228d202cf6e2d7b7732031cf021496f45cc607e5c772ab64c1ce000001bc0000009082828bd7ea8bd0238eb233d84a6d8eb81473be3048e55f7eaebaad27bef571d806ca99b1583a0ff91d2c2dc5c7165b0f8b5291d069f9041f8c134e58abf0b8a7ed410584e83b3570d224a946973edb9304615a0e468b252dfba310ee65f9daa91e885c7d6f41400876430e7e4283cce8164343d81d0d48a970c57c9b641904f1f43584464f43e42fc3e504dc1aa5b0ac00000090b29129ac91e149c208ee449e9369c39ddea7549359465c1dd7b537c1b768e9afc8ce9aadc7064f10f070eff11d526bc86e5c59efc0b1963dd088c344a0d961214951ba851afc71961109521ed643fabd1bc4146b11f60f52a707ded2c1437eed6621c9298cc689d29573092bd5a5d1ec051ac56823011cb0aca04c910b86eb432ccac18e0713ad65ac0e80fd6461220d00000090f264701ba46324c881a50c29a2cbe56d8ce1d52cb12279b9e666d2c821c641e95e79769ea31329b8d108b5889d12aba3fd22803ced02ea159e5ddd413a810e0147497bfe0595045f5afb828074f87841059e29b9947ee7e131674f694e159fd6fa48816b194a40672220689a3ea39ba51a499df559f617205c47ea0b29ccbe38e77afa2f22901a6ac19ecc44b25e024900000e00000001bc0000009044de4596fcd2174f04e08f5878714d65f924bc121137aca1179967c71b97c9f9880aa849d962e6c2194daa6d78a35dd8d7a0d6267bd4014fbf4618b0f7f3b35a8bce6488b5fd9f771288400410d81946029daab01041cabdff51997bda933b63431573fe8ce751f87b9b6640a6ac76e62b89ff965f5678521288c80e7d924586991cc8bd828803774af1110ad6af2d1400000090955411b3931838621ad246ecad090ea826dd4ddb7bba4f2d692e73d6fbe197f0754db7d8cc340a993078595b2e56c9727cbee8412af57451e251a28716a32c0aab99361800b9c9eedbe58a70207b8dc50cfb4c5670dcf4e3dea0b0d90611be362f0811e4738223810dda308e068502b1275033156d228b2ac72d5c13783764ecaf93fdabb89c3a60dd2511eef546ed47000000901a490364cabc8dcd69b5311f1a3146fd1ce7b2ed487e7770cf9edb318ada757cc7d5a5ab38ff4af623532d17a94d6a0ce99967aae09a722e634691ef15ce8f241bf3b34849564ced406f04e40248751819b7222d607629479e4e0bb7d076d7639c8f6ebb93530fb24bbc03e884507e002530933112acb5c27690c1babfe86191035189c8c17c66fdfcbbdbacd583934f000001bc0000009054be3def72a403f5c2c9e65dfddf409582d462514312202f646d792003166b0f85955514e5e307e9935bbcc9995404afe1eb12bf2ec671eadaf9a846782a983585347a2cf8d5682e9fec25a588fe81eb13ba9a153f0210840b5a343c1223e88a80c467332cb74375602f02a409346000107e5340ac4ccaad5b3281cfdbe0212f640df8b676de03b5f8540623253c6b7700000090a0a2767711576ce8e6cd6b6b1ae5cd8686785990afde849f7029ace4c60f67f07b05231f390f23d2baadd5f0e76b9a5ebde244872dd5757180456cec054c62641187283fe89adb7657866faf7c6141320ab18c2342b86331365ea3f744baeec431a00e8c111f1f8503a7362f60f6eaac268c0ff4448be08b68f919909b6846c9b64e18a4ae9d7e6a640d2d3b45ad9a5c00000090174b52e1c4cc5baa99d81bd062bcedcc8055fdef765174be6dd9306fa931d88888d8d069757b1c6901c95158e8536627f997f10126249fb4bfa15f1a252ebc4a8f75bf5ab07db6c530c9f4887381c5f30cd5ada4fa5f13eac5014e84e16fe8be85fcee722e18675ec59856d364338a150167f37baa8120dff1c3a2422373f34b36cc620d32458375f28073ecd0e89875000001bc000000902a4d89127259186300e7dcefe2b9a3c51c3ce7262745575c1893cb6ec67db59cfd6d97faf4d955b98d3a736ef3c2762b096627ff8d84c7b9a766e5b910377ace261a27c57f67e454fc74b3b65be2310d00d4833db1c3ab4bcb66cc02e8e389148c4c24cf6fd4759afc32e54948a302a5239b055f5e3b16ad3dde597a249742ca3151434363779a42e0900689025ab25000000090a47255e90a224451cddb8819b9c15284c0ab2c79cb98278b3c175dff2e628552793b1e850680507fb33a41f13167445f80dafd01f76d5eed4217c123f7414f2475eff882cd5e6c46216537ceb57a40482e307213037d9a9a09dc1446d1a477b95055de78be0a8b6f39aee6e84b9fb5a8022146920ba50aa9621192b700a6068dfb8e2174d2ac773989feecc6d28261b30000009031dac21a1433f531dd18b1632847fc0dde1c17bb02d5ab354c02f4acc795c5a8cff0b773a547814cd9831bcb9abe8e5acd292deb1df4d6e6dcd1a820e3c17a175c89b40c49f67a7eea27e549af42b416198cc216321d12a56329fc95f648f02fa3224088cb61154ecfe1b9628a5747ef26479590b8bdb8b68b2688ec9b7436a3e0602787ee7c1dc53d6cc2e141c9e27a000001bc0000009042036b440f7bbaa76f6cfdc9b78b13c6ed8954565059bbe1b6f3dfb5bd88c2f28a2f29e0e5c261c25a2e9d7e511d072bde43fd9809796effe69e8aea3be54508d8a9fb29bb6a2a2a9a4851820c90b2611fa5229daf2fda66f0832ba0b177916de6245b6144a4d9fd5a6d84d0b3d09b5f138a8fd41f0245790f51d769418351eba188c24422e29d28b6dcfa5e108a5ab50000009029627be6070f320d9c0094d3745572911c217ee1889a111119f5bfea6769c574a55a30db964362ea4f37cc38d99b125bd96910ad35931dfcc5e1d60460cbcdbcfcadc88b1c3c31541b7bb37f546b4dc91eb9f46857491b80dc5b1a6f3b7d335c2c5eff3fea40db67a556f82ad31b54452f733fcefdc204055851f24bfe942753d120dacedbb004351ae40fbcbc40e44700000090e77c6e4d7f802613a018998785edcbd7f2d0fe43fc87b5297c90f040a86854ddac359d6ae8bea1151e3625d27b5d726a6973ac1a715016b94f596652f1b5c34335c29db6a74dc5f870523c9da04268891c8fb300114e4a14bc53480655c4b2b0ae1b32d51db9e05ab97eb74447c662aa26552991acc5c288822e24649477c17ba04d8173c6a271005b74ba702f19f6e9000001bc0000009033b75699124df3a003208e2f077775a0c0cf6b5f43b10d007ac669f67830f4186c27e63d53e8d10ec7e04a587d330a93303ccdce48e4d883814687d33c3c6863376ed002b2a9a3bb715c93b9a7077575186f9f30356dc5e9bbfbc7448ac599026c258f7cfcecf3b1386812f03e6760b129f10aab131e1fd053fffa9e69f0affaa6005b7788f7176ff1add5b4eb021ba8000000900d5f42e0a54bb5cd368f9c464ec55077b38560a2dd87b7fcc8592304c63f8b713bae6a5f6af20ab8ed03a6b800a12059677496aba92268e1d36f3630ce184a2547b161ba35ad3ec88535cdba733d0ad306a7f349d6ea6ba73641ffe063da5e81170232c57e6814e422518f2ed1d5b40724deff7d2e8c352ee005a3bbc20bee5b8a835ffd076356fcd10cc7ca052fb72600000090485c8561600c40dff828e00dc64d85de0386db3cd95adf13dc343e26c62cbcbd50e4f230a7262fe5faca058dcf76603cd258d997d93d2804bdeca854114dee374b14a94cba4bcf81454a0e5cfdcf7e071b8700e9a230d063828289d9db02e2f79f84dbd59221b39851b0f9c14a326a9509a44efa10eaf2de68501bc0d20799417ae2b08b140581df7fd7809666f48878000001bc00000090793c45f5f8ce488890d12547e0be78376fcffb61c9ba15909bd0d32c4863702f7a4308e7be8214eda46614b17ec59046177137f2fd4191f5214e9035bb1307efa167cb0f9dfcde8ad8add21435e6dd4f23fca789a52337d770bb3239c51752950f463602450dd61e38a292f7467c9bbb0236993135d3c1d9fb5c7210bd33fc7f5068db47cd18a9cc57e585c5e05f526e00000090f849a580d2493d30febe102d84a596007bb41749bcd698232336b52a1e0909ad1ce9c8ba3aad02134ae5b160ebcbabe506d9b7db0a935349e979b8873be837775b6e688777cae831c426aa99a5b95fd42c5a899c819de878d741f833adce678a55148c00e3e9ad526fd8e8824367e48113412b6ebd36bfd1eda1129277085d388afc79c6e0c9c5130d377378ffc8c2b3000000901a77e1fdf2943eb04ad871b97872d58513b87084509e93626d91fb435e5cfa0bb54ff8bc4db8d12df9a027c4f5cd281b5ef6ca8e187d878eb2c3dc3f69df34b7a45828827534373c7857f949f23ab28726f8338613dabee6775bce5af93968516d4b88cde4e1e835f389af54a07f98bb2f583429751b5c5743de521b13e42b23dd3ca73823a09df3cbf95161056e8727000001bc00000090a526b2ab5d1424ace96e20ea34dbf9260b792747a1650ec62bfdc8c733c005d018f5143a029a821c22cb72a30c3d32a9a9293e905463204cec2133071ef13a270a49f163a01a7788a27b017c8d80f84003705bcf1f46491f774b4b66a93884c7e204d37b90712af352cc5369cc5bd64716bb58ad99f05542c64b16267213a12549a9f3dc14a7d0b2c9ed43f170293c31000000904d582dd6d58282e96ed78e85573a6bbee047a622bc85480221f99451687ac7e2bfb2bc7e7d6c1186fd0dd8db4f13021a6163e3300104f0594771afe76561fbccd40cd7ea868e4b3788bd8534c4f301b2006810388a2e469d05393d0c3f308af465af0511a02e0875951b1f90ee40338d1080f959493b6d44e1a4cf65a157e779f21c53efe38c7ef3d907887e354ab90b0000009053547b42020ac7e26e414c1b59a37ae16b2e7fee712797526049fecca537a0ec3e3682a0c6bf499dc5bd1ebd7f002a340e9e1788430993454d5e1d63e8f814e0dc25967f318695e3058c6b31322348ec3041f03ed390bd0f98c27f9515aad0d8ca13ef9b231be19633d8897002c590ae1770f43809e212761fb5b381ac99adb7f0f77b1f8f1cea86b4580e6e7fec82a9000001bc00000090ed283635593ca3f7d15a67e70784417958b09467d558ab99746adb7fb73519adcbb7e3a07bedf202a71f9ea17787b40bcd9e2b3d8c543ca2c5c21841412a0e371b735971eedf6b99bd29037e3fb9fb69132446fcc638762adb7d51818d49bffe2e53baff09e8544b330a1b5303b623fa1735d51c1ac2b6c492c9c84d1a6a55026ad443d5e385d0565e9ab987e8ee4142000000907a3aa2434f8a0cce281947d36d27b0e4e74fcd817192a81b6afd27de57f6e573b0ac854034d4a98443f2f11bdba4657ed7807ad8844c1273300e69b8c97dd2f6357a79cb090a0d3f8a1ea3aaf2eb2fba2feea06a3e822e5467185d783c488c59b7bbc3f2b61b9789e490a4e9f3d07e091ffdd6584cdc4af094e14d135133008ed82f86785bd7e8038889155ae9d98620000000901e128afb71d9690e6a4489d62164e5fcc2ef689bf0d6fc7990b7ea5c9cf012387c6c2c5591f66ef06662b282e37ae620e43eb43cf5827314f05aa8707fd593282b096bd0244d3e6714a396396aa23dd90ea70748e823e25d9abe06b2e098a39ffc83c00ae2facf8007ff3c87b0bd02721655b67ba635dbd904c6a289abb1a67e40e8070e89e550d233f908c47e06c3c100000e00000001bc00000090093f193e90ad5fcc72e550a3f0a76dc9ee968de5270bd8ce9c08172fb4c2f3b5a26da0fef66c84858b74f49798dd226b31c81c4312da9d68caad1b3c8b96dbd259eace348007a70e934974220895d3680522475c527adb8f5a4204e4587d46425b8b51451a66c41718931d544c99763b0ac2a4642ee3bdbd4581c9321d21412810cc7418e358adf228510ede35175ba8000000909f933c55a67a8891db1b2d254dbfdc0c1d9b7728a5cb7a0d9d2332c8f231821c5e89e29bf226603d34b2e080b52f4691c0ef7542efe42a4ccb99d41b69c1dcde57fc713ead365379c54479678690b5b30bc2370bc15d494b92f87312d7e9f490d19473a552601a755dc3ae5c081f0a672616a830f55ccd94db52d6b2d47ddf4aacde4e8d578bc7a6d4b4aa7c8aa37118000000906a096f39f3c3ffe3cb67047edcf09f5b852743fce0f1a5e86fab0d998254a71d45b29ad3cd74ec13b9eb9c9834eda1357737ba05e4910a1972f70155999e0df4dd8e990d05989768e4222e17f1e6ee1c218c9f0b2b93ca885905f55be91c92316bef67aee818862317377a4c834f01e52bd04ccdd32305997766884206a1e66aafe4ce850160c6bf1409e4d7cc2862f2000001bc00000090fb0977cc718446ec0e65edaab214165c8ab241eb044ed8e8e90655276091b2caa5b86cd7a216faf034ae4e3dd1e16bb749da5771dd976d8fef43d9fe00f213731dad21fe720481b4202ee296c80be87f0d451f969f70c2ab0745157ff132bcb72f557f429a71d99f757c33c1a807f39e200398cee44bb61e4bbe4ad8cf534f21d221eda0163937272c18a849011b2bdd000000906ad3b55017ea4cf98784aebdbdbba67c19b26a55d9f145b07b7a2264dd5bcce3fdf59ccd88144076fb3015b8928ad38df1f939577eb411f8e1ad8959b5cb1dfa102b127c75a185c8a7911a39a4950770167f7d4a5c0c4a3e154c7ab738608e8135426db350320a6651f9187e242031d928de5e898cc59d1d9e627ae27276bb6e488dcacc1eef5d3e2068fad43df6f9fd000000905088875ac73652da0184f89480a4e6353e891980f990cdbb3cbc00629baeeee6283b7334870127cb2a1e888816e32f44fc89b53cbeddf76eac4ba0c80080e33cd101ca1a16699149271629b994da0c741d6fb377af7f696feda2d648b7fb702462ed652b61895962fc725591d61aa4d918ee63a514436b5b7ae16ccbc59ceccb19fa98ff49d4dbb3645370682986d774000001bc00000090ddf0918144b46250424d393f02144553c7de44279ca2293101e336963aedf73ea2f3bb7ce6cb414a71f93698d6ff4644767674b827463cff11decac38484077c251d1ec137b40ae382b576c7ee06c2a727cc97d0bab880a919ec3a647ee4f573eefe111af28c4c61f660eb20afd7a92d03ef2108d1a0b8002013c9c85e4bafc39100fbeb3269cd2057e54372c4ea0c0400000090aa319ccef974a6bbb46abdff5121f590f0b037081ab8b5da9e648292d4915fecc40bc691abd959b2e690c40f5484a1079fe2daf181106622a366869bf5d91dd8df73a59ee059f52e6447d7e831c1c31720a425a18c509875a514216d3b85797c8eb73e451153fbfb3dd21b8865989f9e1265c57271318d4d43d0f1b4faf7c32e52f82fb8eeed4b57d7e1194449734c2300000090ac0b574712612f176bef83fd0f812b1a100ab33f0c4ac5b9f509eba019429cc2312468493bb0e8d10603f8a21ef4ce9fba8102dd23dcc4c05cda8435bbe30b2ec877acb49ed250daf1c502572f2faafa032b4de8ab4eec8ea3d4d5f4fc039094331c3406fe8ce09f2d8697134c44581c1963f64648ee9a3b5ce0bb52b9c9983179f18fab2ef9f7e4368e16d72a8ae399000001bc00000090d5cda54efbbeb6d54ed2496af376a262cb98bf36031064f72399c7ac2be9864ee33988b56d96393fb7d2eed6d9691d9d8b52ab6dc8bf1a78d521103869c50434aee072583799f9c483b9dd669092e08e0e0609065426a6af1eccf3c216d575aa8bc1a893ec1600392b4786f9286ba5b31ca5f04127a582cb84ba9e3b70e5e97226a411c4d3eb275bccc5e25b483dff91000000905c9e9fd56e8d560e67b778b23277cfea9bd231347a999326e3a264ccc419577b44ad76169a1c2869e665b340ddcbc7a9487ce6b0495d70da9d771c9fa10b28f24ad3f16dbcac3cb1d014f0180d8cc56e083ea65e5c4580b6fcce0ed318bccceca8ed4138f01a695d6ca8e422199c601c218a1037d1d3ad0ad0571f65a3eb5172fae3e14b9762a594df1e52a041e565ec00000090ee81921fadc592d08ec6dacb28d75464ff4871184e26753752afcd70424a7dcce16bfe5880f59d9c5c627b0c340ed6de8243d196fdd6c175a6b1f574c33facd590e5214f04db6b403026e6c8f5e459d92af77b3d45409a6ce29c570b5e0e255857bcf620ce7bd8fbaffbcefbd2f7cd8e10c45b15a6ecb3ae017bd588f5f0b2077136572a8d1b97acf8368e4d9ef3c4b6000001bc0000009094cea4a845852d5205a71eab1377a763da5fbe70ea95e68602ed9530d706e9734fff6f0f63d1c1badfc518e6c71eeff7341d3839d377e6f2565a28ea7d8a9dc778e96eaf95ea3df8174f47ca08d6d8711dca8e742fafed2e609e73f17f2c1c9ab3cdfbaeecc4051c2e8ee2fc80bcdc622297c7914d843c2111c3a2f36286aa1e92b62b22c98b1702732b18461fcd897b000000902564f7b6e01aeb829a03c67cfe9b90d02bf5d0a3490c841cca0eb13d43385c4c9a6c44e43b6a97d7a6cf823aa6212481eea0d50cdb78394e37ad9c208b6319a06c29ac7a4fb39f6512d2c7aa585d4e112a2fab41500e645f0e48daefea78b5250f0af39036eadd04ac3f8d1ea70d55552071d72c960f1ccab956353278ea0b73197f90fe7991a91617f047f265b6dd7b00000090ffe5b429f4cecba7f308784f79f9171cb8cbf0cf688af5f6f345d43f45f9bdd209f58424886104c6d8ef1c599135d142ef79c26de39088f5a6da5fc21ac20253dfd7f02c28a90b6f4f568f6fbacdcd360248c6500072be21b1a8a952e3f9f6429fb8a509ea76054cadede9d738cc880f037cc0726440fbec580757be0ef5f00860cb5aded77968531e3effe172d52a7e000001bc00000090225391f1f07678b6218786b0fb16dcd6f703fdae693fc8947f64f59f9ecbf8608f2b2fe7673bf7212adc28f930c6c679241913e05e918c1021d1baab8165c492c234d874565789f555f35bd44c057e021345c0508967c6eec0503c73cdf25e17c20d22407bb65dbdb2438c991aadade9034e536ce6c41c310897c7aa76570d36fe4580bc72140a977cc031903282426d000000905a5b8d400eba99dc5f3f2003a81b5c476ff36e092e77f4814fc902c561feec7a616ee7aa66bf9e1e9d63427a0b17654bd61d0515aab1329ab28bd5e1d778ed0cf4b8fb27a666fffb37bffa867c7220ea03da67528e3c0d1591ca330b61894ee9e794c8e5f50b8d6ed366b0ac5d78e7142d0293960d9741725c51cfb2ec7edeebefedb9a769256f0c9154725d3854d57a0000009059afadfe209eba3c172cebb6ca552534b448a6471b27582119547321032be5d3188fea33c8ed8c3d60cb4ed488d572515d463a2d0ddd3ef6d237a7658585408860f2d2390cd44c6e5c27fbd7c3a6c9e6238d70cd02964baef06b1907ec9effe1d7c3be3f6c44b725607e57d503298ba119ca39e81a27a701bcc23319aa7a31b583b2aa5c5fa946f762d40389029d0a8a000001bc0000009019f18b0993ea58cc0e60a6ab12d890658ffbc10abba2deb8ae8da0e5ed86deb44c46257de38fcd3a801f11f69bb609d282b440cc5177f384f131cb5b400e4058f53fbecdafc5235360c2b0a04bf1dfd2186e31047ff1c0dc33298124a02b36528ff0012e161cf63bbfe5e133c713dcdd182181450fdb65bf770a28575b54a147555d352eb9793a2f380441fcaf35cd4600000090eef87e9ca7fc37aa991f73e09b86f3fe5253bcfbbc30b979a631b36bbff441f90f292ad60eb2769cb54e467f63b16db29c06550f96c1430c720f9c2071ee2ac78e48b81ae4cf2afda75505db1ba072b00d7de00e7e8f19f99380e6c3042828a8f7befe8f557fec8deee36203a6cb78372ea43ef82b92e4ca5f36bb118ef05c6f107358a4c9d0bedc1e42b032b7c30f4f00000090a3181d013c7c27c80b6ed6302110e44c89fd98c2fb3ff2bde91a2dac237a0a8c1b9790201524d4add68c0e3fa6bc6f83be980bafca18563addfabc32f4e868736eb61d3ba99b0436838a74aa0f6a27b513c6fe8080533c1c994bc365bd66127e0518029fb0d1e6357fe95e72d82579390ad10e764d612a8176912a688584f119c353e48075e7c78915c043bc6f6b9c68000001bc0000009054565047a9143d945bec3ef338e22ef38e31bcecf35d39a8ad9a53932242e8ddfbe12625d981e24ce51cba092fc1a7098017110d642316f2052b6696ef8b048764b0ec7cc884d4d38afce13c5c3b99c919448e796f40205756f1436e1e5040aa0ced2f7df5f4427286a3b50e2cc8de6609eb562e96c664a796c6e9c6ab269f8fe88b21f8f501ba5b59e56367cf0cd75c000000909410338d8a23b6f386369356c3fa8e16937394e862b9a785af0b426a1bf893341cf6b3a56f5de26e38b57943261a636b4f27f08312cbee701b210e00abd3a1cab483c190251ce200b918cece007f6f9c0f0b5b31f9005a5242a724d86e74f421c852b6672b4d346c999465a443e932190fab16bdc74f7df3b8966d6cfc74c4ae5123dd6046f525d306b76cfd90c725b9000000906ce36d5c10f1ceb7973ea03a9d07348c09843ce95e9b46b9831929db43967c60534999bab1e4d6c548d1e967bb5035eb7750c28dff8944cb6056199beb6b81f4dc42cc9721ffd2a0ae94bfa83ca753b802f53b499f999cfe44cd302b87166848eab643805261ea69b1fa606d5f94bc1f2074659ece90d207636f508a701a85a12efe6a1e9fb074885b453366792a23f200000e00000001bc0000009004d2727c81570802fd60f39187fe8139955c3293e7eb446c15f8c34b4b88800b230e7f1621f1b4105a5830a65b082f4de456ff515b9c4794f474eb33778b47e82b96bd212fe4f3d9f3b7e4dc4bfb83881ac62562528d78dfcb7e23db85f34247a5dd9af7ee24f1df1d855a488b07cd0a231dab09e0487652daafe3f5b38ba18c8b8f6c56f998699f97440ba56ac4a3ca00000090918ab44e96807c203a061120c62e8d898f5975c91cd10a40c33a7b97c57e633ab4b01c7f9e8cdb2e9b2505804360d60e07d686e68a98d59965863cb231c5864cbdeb27867dc6d3d575f6311c890d651508153bfcb90f04d88d7ae3bc27455060bbd9117c98097375f3b910fa2b1a26f51f898b19b7dee695e73f771d2a7efd51f97a1b67fb8cc6d4cc2a4fdf1315dd6400000090b6e162c9185d396449572d19f140bae3832edde96355c06f28792f352c9e0f1d16602a80a9bb4b525b0b9ef68f4eaee1f28700e97120f936f7efcfd722f383f76b22b19e022f0ca46e885d352f1990602e73ac7a250e86c2bfda2766738e5385f50188d896bbfd6d125abdebe893359101d9779b506ca9ba4be0dc69899f0d21c92aca8b85eec4ca8b6e58e8882bbeff000001bc00000090eb3d82eb845cb36112c2f181665371298b76838e12dae58ab41723d1cd3353c26c32ee720ea35760272aabd28c3fbfc75abf24faf78508bf7cf1d731074e263b286fdc2faf1c1529bf47b1184b10a62116e49384fb35a370758682bdacb2dd518fdb3a9c95b472c400be19fb9a510cf11752226b7e1ddf74eba9c1589232ee94e9bbbc4079ac97594a18ab4fa42e8b8900000090e4796a030625a284925999aca258aa4388010e731dadd1396dd25decdabaedc1658c229b604223b888e096e04b35179cc499512920ce0d63359e3b00f2b876bbc1655f4e043e3e034f0c541ca9008dc12246a72afa3aba1fbdb8c78d39bdb12ea33310ccc648575924d780396e3c5670080bffa4e9882535ae82f3ddb54962e6a4ce4bc8dc969a4ed78d286c0712d7d700000090c639050d286dc2032baf8c0feef5a51b17ae5142ad49000b4baf316ba5a6c518bcefffb78de74d207bd52b08e92fe7cc3d53852aef8d6db07b8bf8d7b2ac3efe338882570d238d89b603c10d98efac5d29e4fbe16fcad139750859f360a169cb99767b8ea4a5e4b13e1213d330dbd58d03cb09f349c8746f02da530d5ff250b6ae4dff04e844236f8b2a716e128d8bb8000001bc00000090fbae53f1c4b11b030f6572ca0fc4ecb535cd813d5136a61ab5562695386df70413d4cf697f4d63ac1a59faaeedc8dad4d41a1a457e2abe9e5bbce156c2c812bcccc0963efbdcaf5697607f383f8c778a18a241790d2081fc2ea8f42ce362704be163677c8e6377962a0a571ac8725c6e2185d8e812b2dac85eeeb0f2a2eb5f9efbb8324b504d3c00d2da408a74eac2d200000090f3d302381fc23183fcd2aa4267c5086fcac6dc506b596a91df26e2d521cec254fdfc8981e36f9c1fc4bb0df11860e7761d4e0454d061e704b3f4cefe920f09c847612885592567efa4a762887c6aad14074c4d33f30a2b2f299869ea1dd678f72db17edce419c26f167b56d396d4cc521547b04937acf726763f2ecd3c465ad8330a76a470685d1762f46235619c96f800000090efc8705e36daa95de34bf56295bde86b2ce2296fdbff32476db7e83ca1a8dd0151d7dd1bcbbcb0073d9eace69f8bbcf93df2b6dc105330ddb49f4f8d61d1a55b577b3311c325c19e380a185480d748442e6efc007caaf50c94506d1c234f71eab1c19b2a34161332e426121dcd75f9f20dd18e29f55d57daed1aff739f5ab4b44dececfec9395dc44e620020cc46cf65000001bc00000090aa9507ff4c7399f8eae915959531729413f12bec3fd965b24129b2fb0129d1fba6fe9472084590541bd879f41a404a9edf78251856f242e8a9dfc625966695b6f078127499b10dafbac54db22bf057df0146631f3ee9b6968490012cb08275b03474d5905e26705e6edc3af9ac5cab0d0fe1b514c7d92fdde0724866c047d15c07c1807e58e7484c1f82daba3c39193c0000009079d9aed959c3df77f573a4053287536874b727627dbcd5b654257498f18e325f5ce1ec47dcde04471bc1d951654b07bf09f4754a09165c2a69280622567ceee202b61407411df752ca3890373bef274c0f080bef80811bdb9c04f37947fd762c4a92d492de473bea32ec08893a50992b04eda0bf977e89cb530067ba488842ca83711d0296349d674c1ac56afcec60cf0000009090bec024b80a113256a351d1706a64766b375cfeb06cdd20d7ef75b0b3647622f1cbbfcd0a60fc16d29dda344ce39108b8a98d6a6ad2582363f622e871c611a43ae5f098122fc747e6b7627a31cb6e9d1ee2ee99aac798d2486990af2c866b6b3f8c5b3af208f72ade7b51e1cf4888c81f88e8bb1e1af435ef29b251fe6724a708dcd602b495662e2aba9df00975b1ab000001bc00000090d65e642b9d1d9a03a35426c9e93e1c9321a03b39d51954b9c72d2b6a230e8951c7aff800ad81f7bea03fdff671fd88f666cf5b0e226d8de735cba18bc07538abc29d93f42243250f1e5fe0152a83f06c0cbee8237f842b4b6ce451b40ce597bc3c4a06e3939c5a685da56af2f6a3635a0a3c1fb4ab81de5eb4b0508ecbb43df7f5050657d79092250043db9efcfa6a3500000090a0dcb21a7cd02d72b1d18d9efeb0d1da493b42304a14e012228605e5f2f2a5e044b11ad014e87e114ba74e00ba47c96ecbc5d48f7fa74868bfe0c2e00535dbecbe7e796af28dc37c4bdfb6b1ea149bf71b39f68996b10044ced1872871d90d73a35b723f46064ec7bc591d13760e5edc2786029e6c09f2dd1399697b4513db9394fef770d01cb86c21351e18fd724ced00000090dd806ae7ff708846d36f9ddbb6c8f8f8903a2f6d68a06633e707c7be0e5d584f8f51657c46f027ff5024101798a3692a554ab3b8ad185fa4a321e64de7f6fa26eda8e4768a5b8358fd6cf932a138c3ea0c03a0d6b04a12d7a0984f2ae9711483c43ae205251730357842873083c2e19c1f2d576fa667d9d5384ea6e7b2a2141d46f3770bf6eb8aa659f6d254bcb55a7e000001bc00000090892b14aba0efdd81abbd79b8791e7b14fd1b4fa765bc40491e4fddbfa21054b7ee882f95159eaa89c28821a472d33504f738edfc8c04398a16e15e8a41558349f3683a610b049e72399686c61bfd5a802460fbe9225973495867fa3c43588a6c734391f87824aef78bbf4a201e7490a32ddcca538038bd1403fa260abb9e32d21cfe381ef680f4410cca678119e1c28e000000903bf5b5f5bce33dbe74db673db3f58944f456f5276fba5a7a59e93918380b1e151c1ba18cd746607a4d0cee68e36bd17ce577cdb7d18eb7887c7698c8d9ac52af445bad20b520a4bb1733d953d00156632de35bc8ab480c2dab17a10d2d0faed1e7597a45513bad38907ab546c75ebd3a2d69ddfba64193b6633153a915dde34823f2560c0468c8822db4ec69f8b22817000000900bbab109aea3fa753bd5ffb15326043f7b3a5d20d3ac6df24379ba28804959fb4f37dcdfa8c2b17baffb16ef63b1a29229c00dc6b289ce6ce7868f656a0af73cefb428854c07972026f38e45415f40542a8d166cc63ecf982739a3b0acd7483332373e979d16a04c3eacc610fa4963e50aa445b3c940be97a6ced2b5aa8c57f29eab7e4c8548515ce6c252ed733e0e2e000001bc0000009045da1ecba3eb2713931e0edc750f695b1f1b175c6b5c52b5d3f8963446f21e117e9ecc7904ddee87ef3eaf4274dc9ef5dcb0707042a7bc2052f849af4029c5ceb3e6184066d378d21f6506cd6f44b7720cce17b80c0fb48bc6486ce98f879a87c8d65131e0caa7ceba5b9e7bea2b15a82616f160655f922b53b5f32e7d78fa77f21b6c41be2237a7d5bd5763623ed86f00000090eb156a017208ba060689d4614777b3e026b5407a0e981a11d80b2000cba96a622036f63b58f94d8ddb4f3f51432cfa33b2974823715f1abe0b372dabfad69579aa2407ee91aaa7563593254b00948128216fd3efae361690f87eacd013cffa2e55c50a49895e52ca16991ae7ad631da81892664084cb1c521fc0742dc0732e8a638618e22f0f8b2316a8759377f438c10000009028c973afc8072005b575c14cca6bb159002d2024fc4ffcf6b4a90fc443e84ebd23cb498ec0cd46685f730219181b8ffdfdfac8573904bbe98d17096d347c9c8deaa6f18cb539bc7222d5a59c22e775ce0ae863c19c6388afba27d1a35a36ed79e759572be92591b47a92751a88094b05136517e0b93be6f56e431d32b906963ffb1bc9f4f4e7b140e668690efdaef521000001bc00000090c251c2887e122e6cba8c451fa308cc66262d76f435ba48a8f121daded6f254fc8438a1a542472ca5ddb23ab196d7b27c9c268a72d3fca4421272be7eeb7087c09919cb789fdb12606d2cbdd6327caab62a917b9f8e46bf2c83ef29dcd35885ccc9a1b0d88f6e6f78cc419399175651602d67e05de51d75535fec4c7532bd1c74415ff1b41c539a863578983fad6e0a8400000090082cb812c86e14b312a3e43d8560a673bdbde8673d2a728f99cca2b9e7217344343028a7cec9d079432a06e139bde2933fc59f0d8ce7befe6d5a7dbdedf5da00d8b564af7a9c0f159dfe7b8247d0ad57296828fb7fc593d279b9ce9f48e018d69ccda7cd6d207582896bbd0be7b9a9bd280f371cd9b7eac113d7017a1f48e8cffd8991a9c31fb59bd3d609ba0464774e00000090d13cb195beee914e24b867f316ed0a00e1f93ae1dcb1eea05c989770703db9870b8eb3fcce0a12674a2112511bf7a36efb1db8d7ddce9d2ebaba71ea0c79c26b204853d3e1070283efce7cf37ebd775a2b3f0a080652b55c71d984556754bdc5e74239be9a870bad98c9478a5e1f31760f052197f58a5aaae91b6cb1aa03d8aa3d556dfb16780855c3d67ea74e282bfb000033a000000ce400000128000000906ced29e71559289b41a30bf1c8223f7f5e190c5da0f18e3f2fb36755bc81632a23476279b21af617e3d5816669148c207bcfdabcfb5b37d9b93055722276f28be39fe324bd2300bf8242cad86eeabb7205bd36533c669991697f7ac788acd5c818c25e3dddc85b52244d0f6934006afc1181fccaf9c0671fff329245645cf57661f534799facd0b91395793e958799430000009061165e7ade49c3d555e2d506013851883f97491a11138301a64c23d06d36c60855ccdd2ce6b090b52213ac32f93a3c1915aa511aed6aec6b43d4889b7e8e12e349e3c0ccf01091ed55c8808debd2a49b2e0aa4352517caef9be648a1866a644d5c3232d04955edaae334e4f74a32256d01d668ac51f293586688c588fa1248ebb561579b8f1243f64520d602928193610000012800000090c20307cce2ad40429fd085e166598c6e159e2d2daefc9987319ebc658f37ebdef8478eb6420ac9462237030db7d460732d3ad007badf7923d27ede59fd9b76c82b5af2c60804490219e0143d168ee1032c354276018ec209d3840905d6fe7ab1d80c315c2353388c17a5bb292d30c14e0e8ee38cbebeb040b1b49815a01c50110577349a069232cb50749456b8542ca700000090c21be279d7112c8233f699b86da220130309e45b8f46a5773a71c119a9d39a45eade90aff8ab2a61e72bdb611fc799af18a05b3561d7fea5494538ee01e558afab7aef60b0eb51fcd9394c3385cfb0d423c767e83c2e7a1216f859776cdac28b14efc4ae43d6b6809ef2803b18d9cd7c03842e2e13d817c95cefaa7f8ed91e974b80b3d6917a946f6158a19df15a947500000128000000900845864a50a47d07297348aa259971ce32c2ef15021d561bb24e2aa4647489223667995cfd6dfddea6f658d2b42af8b818f6475e82f5ec38e8ef254363d8eaef5602e1a2d980c9f63b765836b8a436f11368746c397c46f8fbc7f610383947dc5cce8c663bd8443557c0fec48692f8b20a6120da540fa31629ba3ebb25da26a1b03276b5d659e019f8e8180a54009855000000908827ea601e3c88179aa5542ad6ca3e054d75359304fe90253f421e8f8ac5de67ca855d06b2c3cd0aa5b78acd7072184cafb9178adce066c2632234f2cb23cb6a06ebda3643f9869e413a6a216e84a29626b1114ba32561c671d54188e45a8323ac4b1660749caeaf154469fdb0a98e2303f50239d3fb942a166effc3f760d630d56fcce63bc9d3a7970893e6d343800a0000012800000090de481777e2521e956c1a82ca6d0468c95986b1b49915f9dbd3544f74f0d459466e8ce587c90cafd599075436e5e74359cec9887c81eeebdf1bea8672b5d10802d515fd85efa7d37a5c5b674ce00ab3522687ee41199561092b7bcd3a1e2210a882b53b9f59423495d3c793244e74e11817a3f58b2142475971a0802b8e1ff58eaa585326eec00da9cd7a92c0eb41a86c000000903cbb053a398485e98af097d1176385ecbc574895fb7e03c83c3c7044c266ca84d8cf849b1a4156b401159fefea93ff8b773639ed58719f3128bdf37640081d1a824ef9e3ec5d9ab1d45bbf92778325df15121af58b9312e2d8e5d0373245187cd8d6c77e0b4e67fd1c54463b77dd2d750ffaf29df1a8e2e798b6fe44e593097924cd52d7154e5b2626f499d04914fc900000012800000090e16c6579c155574b7fd4636bb4cacdd57fecf1694d69c94e1a72ebaf773209bfeed7cca59b3079e09c927f5161c91e335b6f72fc2e7104a459c5c7487de91b25a3355d2112104d19a1f2d0e9fec930b717bcf5da750f585642b4d43d79b87f5d7d275da2ef7c298b7bf5195b920a35b42c8afed45a38322a802a862b4f9af3142eeb31b23c862c681a691fc4cc907d20000000909b8015cfe88f81f4f5c715774601086214f10d5818f9bd191bd3d2137543fc500944fa5707eaaa85c688c7bb34ae2cd0518c2264d332ee6c577fd4d4e882c5e5bd2f0307fd9ae842c8d1d939b29723a92667f1ec789772e054311d82545b5140107b8c0b986b08eebaed37672902eb6e19719f5332e7a2a8180e2fc99caf06d8513a8401743d728de3be3dc52ce8eedb00000128000000902a08b6f9edadfd9b077990874240766afa3fd95d83866dd22304f569e2d33b657152708e9f227cdaf037a357ab0a4ff600f48a30d64d70eb03599647962dbd00f48a9ca96f99b8f6ac410eef7f2bb19907eb42623e48cde44d97064a5e76ed47e6dab6666ff1ea7956f1373d24f533a922859a39dfd5716a7ab2c860d4a893a1344af599276cf2804a6e3fed4b0e89bf0000009012330421895d95a9c8f0cf59381cbd42f3139a7dcc28c6c4dec85ad38d95e734e1149a9b6389902dbe08dea922ff800d6710ae3abeff66941ab1ed689ea8bd6a0eb788f7831b0097f5571ddc3d0830841e178814ecd91babf64d7c096fe4e985f7b9661753498f3f394df532d7631b431cbf7f35df92487a75c12a15251f6b0e73ad9295364213eae0749cbe2fa3b4d200000128000000909d9e2da1bd1ad0b265e7a11351d74a82f053e95d414e3e3509035aa1adf722b700fa7a68e1329d9906c610febfee397c5ee613b19037795585a65a8cc9a13fada7eeb7e68a533b673c4ab1ebf47bbe791a59536bf864b0dbf29e2186e8aa11a9ae564cdeb8e53f2a18b63bae7ae97c200006110189dfa8b9e94dfff867f314a1fbc03bb9e59bfcc9d496b056ec1dd01f00000090bbb2748be6a328c4adc4069ebeb37c5398c1374effef708cbc40754ccba78d6da618b9d26fe7bd0fb01a4bbe3a7a335019cbca751f8325c8c66f5f2c4609f91544ae2f405881cfc6038402e181470d1c01079698e5f2e36f6bc15b2aa5b4cbf659524ea6bbe04e04588d5398ccd3683a048f7b1489b0de7411cfc7cff87d563ffebf153f08584d55e17e304765eca385000001280000009078c5a1db7aee3e9361e5ca420122cf5eb55ab9697d0b41508b7bb179e6ba4f62a90074034bc48f91bdebeb988ce5c675dd0fc6e0090bd38cbf7371dc3457fe10828ca8ca90c393070ab65c81ce1134a61393ef5dc50be99f0eec64555dd2a12753939ec2650923c39f4856d1a68cbcb11037cf8db800fa237d10e4d54446f81231bfc374e6f84b431a88858e591f6c0300000090a920fad261e56a1e0ec1e816594cb719f899fb224fd1288a995571079a700b9f424b63a4cbfab814c3bc101dcedba4efcc8a4f754b0bae9c2ba78b6ee6baa71a24bd2ef46fa1157c48128c096dc709942f0492106bc6c3291da53820067cac2a9d12e17bc638ffdafe921f98e6df37150f627b37f6a549fec31c2daf649bec9f29a608ef138c28334b901f5146b63dad0000012800000090df55310ecf9a1052b12c8ea6b3f325d7fadcaea956437c6a08f5abc9d119c1335975343301985023f32c95efed3ba647563593f1570040135e91958ec6f1862b8a4db97e9703fd417893f918854646f1054122d0af6dc2ffa13c6acd8555cb07ea2a24b033b8290a6437928ce57b909d2a334328988cccc41d72d176224de78ae29ec28e1f5933ce55e88978dfde555600000090d3cf89eef5bde30788ede8d63de64fa16540e0f32f7a2bbf695c4b625fd9ffe14df603d49a8dbcb2d7ff85079f80235d11597b266a416bb52dae66bf24e644ff82c535a74e465a84f3f4546e0242b23c02bd93a36ba8cc649501f6bf99a12bbe6c5728fccf668fa2bd58ed848085caeb2be3e1dd5887b76898d01a6db4e8e4dadc3b1e61cdc57a41b0053981250116b30000012800000090fc86cea3d4aac5eb7dca669d076b2fd061d00e48d28eedb6873afa7b40366e4ff82e26adacd233c8f001921cd3258045efe30bb813162183402a371b40ddb88c2935b78adc21554bf3f007e4ee7d5e9b18689e7b5332a1e05ab70856d743fdaf0fa9da120870cbf04d918a65f16a885a1c19e721585c80691c65d097b6c8c92a4aebd924434c7b6024de8624ece384810000009053ab5bfc42c215b93e1ff640c24d7d5fd4036074d9c8aba43605458a90708559cab63e463aa20871602124e6e36405ee046fe8e82341ab70e1737325bee25f63215e11fc9d73f2a808c0a9644216617715d11054eaf640cf796b6746cbdd3fea488418f52673b553d35dc294f69144c30779432f41b7f8798bee222abd4aea7d3e148793dc477f1c45f57ae8fb6d42b900000128000000905e6e31986ce58e8d566b22248dbd8e742e36db217b7ec9535411ea2ff3d76aaf3b3c3eec489e754063e34fbf5ead13001a5e6f97635565fcbd8a5783d63011e21a823da8bdf690eabd1f75f76879fbcb0f49e857ec71a4ce840e5b0f17918a3a6a8aecc7ae60c921f29bf9857ddcfe8a0ecaa592c24c54eeb37338d671f16c4d5004ba49988524f6e23ab69c807d36800000009012fd8d0c10354b223aaca3b96c3ce882dd6bcc43ea0e79427324753ec7480cea2da54c03241b79606f1d63c330d26ba0b345727e2ff0ee6f1cfbd88bdeffd09bc05507f80111d163726655a51b8ceb692684a81eeba49a4b4e57157231b8338497c267c6f1c184405e1a7d3b8d1561dd22648a8f46a9cb80d858f834a880028276cb70268d5d9427ceeeb5294f66b8f400000ce4000001280000009030f3472bb2aa4afa7f906870a30601b0b42da3696e13c18ec49a94ee262dc1b536b62055c0e05716ad477dc3389e318fe164622664f37818633970b6cb54761d661e61e5b7f1e64195d4ff430bd0d97f2a9c2680803a8a65763022365b7defb845cbab0db45c28f0cde6fd1647040d8f1d08bf8fdf52723a1aab2ad7dc880c9d5bf5b37ed2e80ad5c8d7f13d822811ab000000906fd356b5b6e84cb93c5e067bb5d1ddf99fbb95c87de4a281ca3fa591a0d04960bdea46a9577d1196df1408adfadf1c5ecb273ac874df29c7adc3eac64d5f9e1494273ff4b0aa9dc996532693a66ee85611430e5b22cfad17091b004a87acd321eca932c9e744d9af1543716240eb6853191cd9485100f14fd22d96dcb3f03b20314399ced282ee408fb7eb8d43db77b5000001280000009098132d107bc7c0a5d87728dd6fb4727647e2f4f2cb20fbdda9b9585498c5c03503050a145de389ac72e59fdaadbd3f3dd2c0d853576cb5840d5b0d3ef300dfc94afcff4026a65b3c0825a72017505e711a8c45008e3b5bced0c77908f91c72e0b35b985c12adacab86cf81f2b20187db0050248a789b024b3bfdbcb94b44bddea4e67f1ebf2130fc97dbd257fed593a9000000906108fbe8ea485aea0c3b9dee478d8a2fc395dce9aaed16e08e53b456b3ab7827d6d5a1973394572f90771bce09d05da2992366a7970ec6930a6616d6aadae93c6e2340452c3e46224d14932fc7ffa1a825e7e6b8cc504243e76fc6b52f05aa4830fe7f1e30befb0c6a7efa1f8327842815268491e75d595d08894a3cba7a8b310672fbf79d627cd13744ba6fe52c33ca0000012800000090a640b92d89fcb69e2c200102a972ef00aef23169986bde7e450fb2d0c9850d641acde236c581cc72761a335fec7b27a0fc2bda3504d8046f2a683745404cc5c880aeba3f16d61377fbb723aec4df3a640fc3d6e318f2ddbefad52e99671434cc4f17845a5e93a51487a0ff6b48c68e3414e70a9c45b26b02e540a93fd00d3be97eeb6af5c4e68d2ab48458d23de52a33000000906bf44acbfd2b3aebc38aab3848c867de4c3b359d01193266e6303df1f0ff84430eeb64a1be407b1601c11743bd6a184dbb78e5f53cdc8f227467db585c8ac477193fbdfffb1b4288cd197687bd1d872910cabf3c02086c10f49c414074b75cd589ec279e7edb1d0a5535668893c7341400c73b5350471521e780daa529234c8c053aae6b2eb8ab29fdc0ba78aa6be33300000128000000903622d289412b4951637f9e55a801d7a6a00bce377d288e36121837032f05b258f6921547a4c5b410f30c2125daa1546b6b8d336d82ec74b388bc719d3d34c72347dd83315b121dd320e3434b70b0de482f71e50f882bb1022f5caaad860fb6e2b3e843837dfe28b59955a7725f9ec9330ab23a886f6883f230aa74854695a30224d60e0b4f4ba5fe30c19ef0751ffc9e00000090b88847e072454264065439ed169f92410d4e4654a0b1f39832dbfc3be28eea464798848393e82534b5485828429af27e5166a794544dad0018a9e5d2c5826cdb5d0334fe9f9ef469bfcebc831769d5872c7916e0a8a87c44815b66dc08519b1886fbb45428d83772e77e5db38d44dec52fcf3be71a84b0bf17c080930c6c0119cbdd6ed061a2225d3f23cbddecd36ecf00000128000000904201e3550d2e1f76ba1068c82ec0a67d690c8e51fc9f68c7f36c81263d5ddb29be32e5e3e3b9664d9bf4c4363436e7a41749cc645c29150275f8501a87a0174371cfee4ae8df103d59b0d0b75d7ac10418654975639bd6b9ba06cbe79acb60ef3868b697ddbfd2ed661451d061c3a25c02cb1bfea7d3bd2ebc0f5f0166c649562e96022c6d14714d4367c4d3763a6f93000000901a4abf13152779f3020b104add938d7117f3efee81c8c129e864e087ead16916fbaf4c2f36beb51e706f185afe150cd005ca9b0ec51ec03757c1e43def29e24dcdcad410a5775310b3253db842b7b00e2f772e81f0d2dd8c3ab5efd0591d8d772994a9ca121fc0e601810d87c38070ba246d2fee20ac6b429c525f1528c4115f357457bb61c3109edc71450019e95b2a0000012800000090af135c5f86076eaf2ff68254357089aad9e5feec3a67139dbdc62da177032337ee03e6eeee03c5e017fa6da3d0bc05709006f68b11c277f52f2cddaf691d4fed83e9c46ba62d8189373724bc8e966e850458df493e3c8762e69154386f1cdf20fd5b1515c18ff7dd5e523aa1c167eed52acae16139da38501a6551c47f0743227600e0643ea83b830acf55497c8f519800000090af3b415745232d4b810cd1371c2662441a7745ee6e6899f0fe89dfc88e5e377f85e95bdac825a1d5a8970ae68393b432ea5c886eb848838701adc656330cc7cedd54270324c524f4f7dc46f8dcf48b0f2039a5325bd816ff3b57871e68f153cef59cd172b3dcbe700d0eb44d3cb5820f264ec501f59a78d4128c39fe2880ecb86bb64c4b093e4495ff680f110743059d000001280000009039fb70ce62c23dcfa825a7bf89053dcdab094f14b3d0974ff76cce08f48ff8f7b63497afef0b281a4f156cf0af29ad59f5d36e95eb80d825ea4697ec7f7f710c2b51790b45462f5f129310013071850d014b07614fc802068f90631cc7e0ea6b383e40e4f19b44bd0d0d7d522a8d121a0e275c1ab5f6f9b274ecdf8d280f9750173f2f434b994c2ece09999cb0501ce5000000906d2141941550893d8333f7a1a0a9af9baf9f6e737b71f07db67cf1283b4c939393986b7f0109dfebedcdc19c59e000febda964ad4ce208ba59ea2ef2182ee787e156a18ced9510e50cd4a177220896c716c20c62e0ee3803d408603fb34d70de2880847f829e5ea6c9e4255f3f53ac091d2ea4960b6a99c63b3d58056c861622cdadd11c0178d13fe271636c5686cde10000012800000090e6e105147c3ab0f1ed9f425fd0d8beab8525d5efe0a43872b36b8fa9154e89adb9437888d7c316d410cd9fef9b5deb1681a254986bd1c2be16e5b465af02349c0f01faa6c7331643c9a1ac714654f0a02a4b6ccd3839295344c5b4ddc939084b0d8ce45b9c922dcea2e7e62156a265f104cbc24622883bbcd114b3103b0e4e7b78c3107b2575eb05317f27eeb59bb35c000000909190ec9fe430c035ea72f17bd3bc0b3a970ab2059e32bc49c0a5ddb1d278738d7cdfe01e920411a977934e18824300c9d2137947fbb594137c70803fe1c9629022c3d6ed77c89f35d541116240a803000cb6f57a124eee37947fd8bf6f66cd67846f0f1f1576f522f5f96b2a920386ee208ecb88b3bb9412e3fac2970ceacdc5cc06cac0cf2089981ae0bacb3a1b7d1700000128000000903a28ec3706d2eef4640070428bd729e97b4abd3dab30b987909e5cca650600079c6b6845f201ac65c5a3949c408c2cde406b2d306ba688b65e3c2717e4edcb8b2940fe6f48fce8788c945fdc283b60c2208770380b05ecd318ab816526d340e1d44f0e4b16a7f561ffa26c28bf7779d4052acb479b576a5bbae956727227887eed77007a37954713abb709ff6531860d000000903b8a5676e83b32e7f978b723f1accf0b6c5f191876e43ae4983db637bb1af8a4c699bd1749580fbebd38cef2d10b258f00166f71b14bf35c1c98336cd133fefa21e3b89fdcba4f34858f60ff61f02fa51b23a65ec2bc0434af82356f00751b054ba478b4872320543f56f082435df8bc28a0fbec0d9f1699cf85fe79240bc01b4fa41934ae52f3dafd57db6b095e49be000001280000009007b21328b8c8bd7d2b7ea9db1c48deb7abd40e7e5987696d90d0bb35f3f4d8c4cf515da524a06390ea4c29a7581dbce23d174380038045d19681479f9bbe4642280605ee3ed024fc475e180e376f5558028d37eb5ce1a75ce746d5e5f5d64ef0f888006ffa49180ed079a8cccc22fc830a2b1571a64b4644671b35c7c9fed049d889622c2ac19cc8c9e666dde8f7487e0000009013ebac517052f806e3e8a43f9a76b3fd8014c2c51bac75c18813d340209a1f8f49cde8903283fa0f6e57f99538d34fe76e2c2ca622464b2adb4105235645ff068510094118d808a86fe0c57f9c0067ca1ea8d11f1d4981a817216886744bb09af6f1f9437d0d737b3bc8ab7a277669f711c767ecda7972525d468db22be9c49e6e82ae4d6b053d753046689f1f6095ea0000012800000090624b9506aa525b6d6889e72f9b026880f244534be16924cb6a1248e5450c770687a29c580c5b9ad284ed9273486a579b703fe1c1bf5634d2762460cdbeedeeffda11364f71b3160fbcb8a734b1ae882a25812144653da5a24934286afd0be45c6f1e0153fe509adc5d741340513a826c111df48f270168fa72ffa3775a9a896a782a7cfdbcec88d91f0f14942c9f0e8a000000908839817e7303ba863689869f4a68b545060e5cc4a2680c20f252d0c5dbdbb3213cca4f412c6f2b935e561b839d319ef7a33fa82bf6106110f3c90f0b79ce5f242526f3b84424dd0cb4921494fd53e50a0bee29198df55dd02a54dac81ebdb9b1cdf9889154ffa5762a27696f1368faea2b84a7dffc567c61f7c6a87e082aa3f80f6acc2f16f2b3d9ea54e26cee5b3dee00000ce4000001280000009025e4179a89f006c7561f2f9db9a7375bd6e014fa0478234b1f56679d353489b6c5f499dfca964211832ed03f51b1262b4580ac1e68a534752b47cf2f7798aa42da358a45a3a6888bdff7f174613675ab0ff2e00e2bb76111c569e761440794eb10ee13f6cf1130fa680adab60995c55c1b11b85387ded9cf8fbd255e97d80040b0de541173f02de16e87195b1293a4490000009069416623e8132febf95d02899baa57788bd46cbd1b46c1db9e3fe4498c32ddd372b59f8c80fd9787b3b7adc70a2e50f4dd3b79f8015eb159bd251eede3013635d72c8a105813457558e33262a7f08df21737ac4eb5b7dffaa8d8e4e2f0a4893a146974112f8c3d6190f2162b6f89928504e99551cad7da3198cdeab46290d4fb2d427dd9975e96b2cc6394c85d399ea00000012800000090fde0a703c4367484e2d7452c7ac078b8e59b36c449f09b170c5eb35e5c7407cb04d17840ff92217b30f280b7b740d265db469c41baa3e9bee4bb8767b552076866c77ae3af797703d42311f7f13557b71ac51641bcffaa56fc7bf4b851f155e0935831bb9e362ad98f1b172b3b0bd67b1f5d8e93e1c95ba553ec9d223ee8f3b20d32d8184115af308218d30128803add00000090eedb114f15d635863740f6f166cf200c9abf5a0ba790aeb48fd25177e2a05cae44be9925926537e7b0cbd199c8f5806bc01ad1a921c8aa22ea6620e7b48f51d462c708c3c1c98d5c6cd5765849ee580d1556612d0017c5824430b58b42b40997353a5200a369497e1182e990524c7c000b1f4445af9513fca8bc679754451e6681828d034f7de583d1f106dbb1576aa800000128000000900f5b0b1a2ded4152608ce8966a39171628dcb23a03f2184956b537f0920fd4d01bb19d06a35f2576b99f9ff31c8fdcb0b16455d4ba4f486ca92cecb091c33389517c98054fc81a7c9d648fcc62025b281215827d96434c2606a4416c11de6ff75a969a67e0548e8e3c36196225be2d8523de79ffd1224e59f5126287ccbf9981da6cf746853166c7b8082d74ed3754fc0000009077f89fb4b68a9f1ab542f23f2c45f77709d8b88b0e83a13abb74c9ee9c9b23e29943a931091498b1cbfbd4b219c407b8400e61ea0c47ca55dd8c55cfe6a0e68bfbb9c5ae4c22cfd85dfe79f0f8d7add12d3b87c82b19851e889f571218ccc80ad9ed5cedd60cd7098459ce34fd231dc01ce4dd7153efcba4432ea9dc48e1acdba76d6a232f720e5b3a0d9ef82c6f84940000012800000090658c2fb8283c73e49963439e6047e80cb73ab3159030a1e8944caef2d028af220e15f949472071a9f815af8ce3d8518e5ab7d1487c7ac1218af2feb9e452f65569bb0a76d493a651bbf2b07764af2396208a908d4c81553fc7b813074daabd0c2bb0dc5c404326939e243048e0e0f6582e75ad5acd36c0bc2d47eb922c4ea97aea0030b346cd362a15823aae70330726000000909106f34f3216567269f250a7aefcc379a5a5f73491308209fa4545c9b12d505f0b6cca6304b55cfd679fe153771d69fdc174e86d5505f7538f455bfab5027a14c1d0f79e4441c49783c3687580d76ceb10603aa326d144b193a05a4dd6abef19cddc19e5c484b508736bc5f6c1f6452e15006b0608d7b76d504041a888e8019e2b2e5d59e825f3bf803ec89863c4e95000000128000000908f2d66f61c398d081d91e0cc37b113dd1cf63f37746219f040f08f81183a96c411bd805993055d94f9a2642affd04150fad1022d51e4748ffc5904fc57d4a85d0d0b1684db8617b55255e327ed08749e1d938d69aef70f4a42d3f4096e8d1fd0c22fb303666bfa66851aa236cbcec42e03b1cbf750519018e1db2ad8e4c7ec8e79d8916c5d21d06efc4e497e89ce2db40000009061138607fc1233949b170ec2c0fda3a92bf355c5da9ee4b7dc854bc3dd4b99ad56250fe95b32d68714880174355a85b7f504d0e00a93b4aa951ead1809bec41c85216f8c1bfa9ee91b5198949c68066f0387d32bfb9df687e882e2434b6d682141ece88a5bb0d529e016f48bc37109301625b044c5fa7200b56dd1b64cf238adf700ff3ee89c32a2edc2a5d2bf483ad200000128000000909930bee5b317d075ba5cbba4c8ab537bd0878e00f1c9c940d39beaa135fcc9208388cde74f44f55bb44d8a6067f7867dc92971e18e71c3ff54868db71f73df74207cb533e3e02dbc669fdd5bf27d8a89042cdffa03ff863617453c97bc9b50acf0f9729a283057555aa40a1f364098a9033f9b3e622b53c73c8a2d6245b32811ba323e37832a36f314e255ed362a46d600000090f9b68a55c28a7b95514f66a48e4b03574ee8e7b633b11645223c6c59cbe5db9592d8bf0eedc05fb9263dd076d7a88da4fbaa717a80920513b9c334e10b650a51b0c1a126e3b258a60457be4b7f165b2a0eb7902766aeae1699361bca6a1b99445a75d424c26ec0a4d21032e554f2e763030154d3a6569b962080a19c54e0ddb70f9d20f42d97079bc47b1f0715d876710000012800000090b05b85d84802f2d9c7e94a96c230de0b96e6aa81841cbc29a6c9a1431956847e8fab1c3fe5ea8c24122ff0bb34f6f51fd13deecdfd683e06919463107b54a092c09d807c7a1e9659000af33fb522e0d72a502e4771e499d8363ce7862d905d871d39b05cc7cb5cd289ae9ef4e2f0b85e0ad7df39f1afa28b668ec85d5ce28bf2c2f471b41c24e817949648705eac1d9700000090865c148a995dbfd76f82090b6e7187e665aa4f003f76dcac21fbfda3f6d3e980de7bcf4e870443e5cb8c44d330fc5a45cc2d3b8f545bb8c3156a7d35a5386ab0f37c3737d5b5e06e2b03dc2b94faefbd19bf102dfbb7ac31e502ce4aa05e0160bdcad6f5825fab8c27edd151420a9e28076ef7c36e1bb3c12b183b9583bd82922437045c95d90b491c2872f9333ee35200000128000000901923f96f8868c7e823671f03dc0ad821aaa7d584a8df286c102ba498b76cddaccfb1be4dba3bf8ef4cc68083de9a2e0ba54d28fd2c1b669f98416d84f35fa3d6629d2931d033f8c95a6223c5a0d32da127b9c0b641a641663e9f18d05a68ce7ed5ee82c661cd76c42e2501188897d26b29651201b725415d5674327977266df140e3ca8cebe0cc52f13da6cb5e76ba4500000090d4c3cd035d1089a3d2d3d70b9995cf63418da271a2830c5dc8e2a6b5ce5beada4f3aa71aa102dfc35cbbbe7554c1cf9c5ac6127b55076f423d56f4622ffae47d40adf14d672cff3fb3a15904437111ed2f04363c8bc4df171323ead3dd793ac098acc8f1c3f1685628cce426731cde6f20cf746c1e75f261c9eeb8c6912e587ed851c5d706707429a0d61d4ae839091f0000012800000090131088d98cd6cf8548a230c77e0cacdd54169209cb2ba9ae8beb9880dbd0484f6e3ab7f05e8271a2c161562f25d0361c6609bd5d846546c1f7300f535a8b244d855d7a2b751d32a1629d343b659336ed2349d52ef499bd19e73f9675d0a934890e702cc522cde8f9decc1306e48dd0560feb00a244a14d299f4270f4c8bed06e32a898a234f0dffdb4316fa7e814726e000000901bd6fa36327143be4d65f1ea02bf932a7d067055279544b2a922251af080bf87b207108d9e717161e41721a8020d13db9e07d93293694e4e4ba5ae88062a0181a329db4e5b087710c88ca915e516f1ea176b4dda8bcc83229442089af7f7acb0202bc1b3d032ac0d9105c8c80e5817912546bbe34f018f11ad09f5b1505a581242fe198fafefca4b8e7eeea30c2d03160000012800000090b736f7b6e2f224b3e7570f3f494619ae872d055f6183642a4933e435823d1962fc427256a0610cd81904592ccd45a9ef4613e7da8d8acd1a321f32fb60bc041f7c4613b51c7ca31128a9c2dc9536bd6027766dc17e67fdbf5afaac90c495b9a3efa7c13e10ab3f2e0589039484dbbf60116225004034c411594e2b111b107e4cfa1992d75fefd31669aa06d5bedda6a2000000905f29189ba16aa5615d50c871ec5fd77b0f2a4611984b53cfc504136e06c719ca4f9f5bf54e77cf861f2b2a0aed8501987e00d38166b0855417c31062c7d093ce4f7d444c53e11af0f554da4a59c82966086900c174d97530fefc2250711d88f733f5b16bd73811077d6715caec15e928252b1a85ed3d33609e1404329196a570f911d28639bb67206497a9ca1ba5a7460000012800000090b9d8da40a7e9373882123dcb553c8ed4926326d914feb1f0e724cef1616990552da304f2bbd5ecacf60e1b4fdf6535c28089378cfd500f22de3d62bdf7b52126de23cbf2ea09d7de12af2b168dc9406c28cc0435297e5a7aaa2113ce7b9b87e4ff3d855349e974f019132f3d0147c029162c39f38f83f18d3871e47a20590bf5e2ce92637924ac32ffc8862f29db695a00000090cc99bb3dbb2008b94591505ced444fa0e0f5994d5bd1544fedc76d1191097cd612bd7bd45c2cde7010bd0ad788c4c78bbd75f91bcbb6cd221df3b22f475c5b26e5f3cdc905e04a95904246a3ef73a8972ac85096f0ef02cbcacc38fa329469080b4080e2a9f34ebecd578ae79c53ae7e2d0ded061af7fb0cb654b6cf6be7bdc4e0d641978f1394451d12ea190d8c5e7000000ce4000001280000009093e2f8635a045c41c8d9257adda690fb5beb3a5d56dfe78b0dfc3e02be2a104df2ae35d92bfacdc93e35a8f166d24a1f97499ce93faa066176bc1f06a73d02311507712cb1ce5f04c63e27bfe3c3e0651e9c2f13d5cebdca4626f083a8f36aaa65aae4c74d704355b727d601d2305bbe0a121bb2ebc79160f5c11a8f9ac2b69915824c413cc1bccebab0f5fb550085ee000000909bd5f2117634bc2eb6ac1558ee63de19c9906d306a91e434cffb75722aa6b2b2604a84e4ffa075d03226dc5045b16f71f501235820340e4da21c8b46c7b2a4e61f1e0b69cb985a34257c38569ccd0f1226b948e0f2ce68b0ab7849e9728b0517fb9890846f446661a335854e91c14e83302f87c6ce77d02db8e81bd3ed3fcd9dfc9a2c00ead57cf0b147b65512681fcd0000012800000090c0ff69960190678d193dddb5d32f220bec1e0a9ec238240925558cf7dade6be9038dd0039f31513a96a05c05cad1d883f492d42109006e18aba86c16cb6e0fb876a28df71d8e89fa02060bac14ef04cf0e1e34520905dfa33602d49a96ca766a2b46eeb514153c0f13e057ca2a0ee0ec24374b23c5fd922cb266dbda4ea04b879baff83583e3eeb12831fca1eecaf0cf0000009014f4354e9f6108f7ed4c06e8b6f4ba9040b9261d6d22b677d848590958d43a5507852f3acfb45831a25f4dcbe431ac979204bd0dea3f6623c04ddac1870014371581b84ef68f307342c25569987ebf9c10c8584ab1d72e995795b38b52ec6a3ad522cc1c9517e05154e8157b1d6f87f02a428d121d52569eee3bd8bdd9b330500e882390d0fad2d419755a17fc27213300000128000000901c0728fdd04973e9906fd1b541bff24461f9403a97802a8129ccfbf0bbc7cff8f81cb9fec321e2186365860d08202bf3f7168a618eb6342fd117c213d9d6428fc1537d3e8a01cd4fe21c0442bca55cbf16f3360c61254e7b2d089f38eefa4b283d540cab1e674c833f6f1d98b39369e92989531b35d6e006557c2916d7cc7bc5df35be0d64c8f497278ef232d58093a900000090be5eb11fcb7229bedafb364856d9502f66506f9328fd44644880c9e8e183ae0c861b7720b70af77271bc72291abab5963445b8be8ec35a402f5b23efc77e49aee0b6c65a99bce778b5627b5fee60a0c42d8c9cbe8e39bf439608cff529602ccd005c151987f7bdee3a2bafef9e0dc3122b46d03f266625d5ca0895cc527b6fee308661e23c20639c9bdba02b3ae71c8f0000012800000090ea504b252805bac5de56d205a6297cf38a90d101aacb4538f26a41adf9e120494e2daa93318788a151777b0e8fb5e0444bb0de040f684b48e113a3bd7d43e280263fb782adbb690053923bb0eaa7c0f11d89cebca94e1077de29e1f13450017f2d39e5da7b738a58158467680b87e8a916c6385cd1249ec51e5e2922f249b107ed353789e24e45208805602f96a432ee0000009009852850c074a233370d7d9704885ebbf57d13ddc416cd3809d7ed1591b05f0716560e8328f1efd042a4d1ade629ee9b693ae5866fa1f3970e2d91f41a03250126330bd6e27fb64bf6312c7600770f542be1632e295fb6d9fe45bf91b1030cd0c3150fe3f65ab4d1d2d017c3839898781a6e1eb8f2f4032f4dfd5f0a600ef72662986176bb14b4b7a9c99f66f429106a0000012800000090b9927e80cdb316ac5a9e7d5aefcf6ac01d489ede79e20af58377baac0bd74a49f19db328daeaa5ec07d4ecf7ba55148032c4989ab1f8c30d32cfb74d7a10dc6b9b3b62dc7a27a8db24688e5683038a541f38971f13f8da2bbb892e010c0ef93df1ed8b7a960fe65e7efaf2f274f3869c1afcdcc299eb2080c41e9c5676d524195e22e79730f662f20b04c5c640b233550000009080bd76f074f19aecc02adb0d7b30514b3878b31726f96fe25b68f1fce3b3b191d72f4139d497900637e2c28643f24f581949d196949acded4c29a8a6e300769e5c58d1cc5ec8ccd76006ef4c20d700c01747378dcb6bae7af6907dfc8ea88a7c23f4eb3d32f33c6da243702b6f1cf7f8155920309ef26019c05564716d2c55381a86bcc98712c7a0295832c9770eda20000001280000009011951b508ec3fc32865cde3f8b14e4314665a92561b35282c4b5f1261ad1e28e881900b80d70dc13e96680a528c997f09ed77899928a287f17a8eff3bee09a839f851153bdde9d1577a89c9d48c74f6a0557849194971f6237e73fa31f725b2a1a878914521b094863164d5f5891b1300c41c7999762752ca2adcc89de07f4e1d9b3ba5a1cfef2204561563c5c73901600000090ed0097c38e390151b701a7ac242f6e73c79fac1e0cf1dc2f66fb29c6002e0f6db13a6d6027cf18c4e6308caa17da58ca8d48acc59805585ea6b006facb44654f6f754f9725b685bb5c4ded4de2c690a72aa7923dacd13f83722f0893ebee4b3ee8ce7b8a643acb94ed2925f282ff0c4818d6a0713c5227e13b9e28e9b58cc913d2e66750c5ac23e16ce76598472d6e9d00000128000000907c0e86120a5a037229ee9c3a6ea20bf194396f08ded24d811339ba90f1ae02744218270e0b2f3115ba455b5409284da7031e56eea2eb96d1204eb02c2e6ebb8a0b4f3e98847607cb6b2279958b0197e52ab0e29034302cf56b533d3157b5a419665e50428cced5f15097cd3ec2ea34951d7113c4a2fcf976adc69ae623c2557c19589c89907106001f1b25d2b7d9537c00000090745e83cd5102da600a92eceb7c2712d2ea6704b8a2cc7105dd788ee043cc0f0b23077b5607903c7053aa17c4986e4e9e8c3c9767070b6a814e6e4a89c904b12308c11a09cdafe6faf48b2630e8ad24552d5ea409a7ad8b4b9b117ddb852d61e70d25b30f70d66e0c7907e5c16c87376209020da80311afdc646841e86b55f89c920bfafc0623fd73585eff854c10ddc20000012800000090a626f21ac7482cd903148ee4fe9fbcb0bb37c2b0c25f78682b40d2c65212b9f2907b0d0ba6b357ad998ac2dacdb23a6d626ea1f240967b92a3aa492b6bc3f09a57242e4d2a8d50636f6761ea8738488b0c19b34b570e8823b97dce37517dc9b24639c7410183ef3261a85fada34c0ca510ff73ada4daacc553482d68d672cbb3f674c8f2f0751a37245edf6d5695557d0000009092b9b1bef2731730812331aadc03fdc1aa7603e10f72def23023535b475b25182ef02e5bee562306197922453c7e28c323463902cc16a0295d2cebd6e1cbc85715e8dfa9c8d9ab7ac810e29350360bce02d3ce1075f6198042f4b657d834594564a00700d5e457e7838a00b590ef55550b5893c4bfe5f65fce253caf7141e83111d74368eb8eee18004964feb64dd8bd000001280000009011c36f8adfbb22c9c3d657f7564ee4eb30d37fbd30907b2a0561bdad676980ca96254999cba01fa8050a433a1d0ec2e49722eeb016279c2a51469725498969edc938823df02655a402418f3a6b8a28c70d5d89a7532bc47ab408e4a634bde7976bb2def28668d34b131909defd9379ef0c3c1d4294e1ff613c7423ef3b6e575ee39591b9be108055714df1789da636080000009004dcb05ab956ff0b68077fc113fd949ac3fcbed71a7605d42c3a09174a6fd573d4f66e407e468a1f51fe670b01928a1b93179fee05fd11b661f14bdd6518f61f5e0bb6aa55060e1b8b3a9985cf9049c41a999e111b4a3c3422fa6a55fa8f0dfbe839a4d5f51213c3915f1f6aeb85c7d00903b9c405878112fe5263e476101e1b53a2d2804929612759e2b5354e09ca4c0000012800000090305141bceee489d00e1951280d90286be9dfde8a0c23e802490da8807d919892fff6dc32c9a66663ac0762043b0eb2376390aa1b282bae4d337ad9e6f41d6720ee0f3d0315c1e19b81fd2fafae61de5504eb79685817659363e38f998e7ec51f77fec0f60474e14b5ba3bbe63bd3874a0dafc5fcae9f9258e277597458fdadcee0e822c56a55248acb3700a463154d69000000905a754dd00b1c72387b2b59bba5fe3ab77cf0a4538ddf9f8f658db80c6ec2a1327637e5c05e9ededd5d4da46f842feb545f8eeef74fd5a5a214eb5bc46966c44040e5fd9d2a87c2b15042f987923722a80e7d3a43fe74774c3681b1c792a34fb0a4f5de14e1c6f5af9fed1dea7694dd6c296d23c677c781280cc6c2970227eaa0ca6d690d1f738e8ae5ca76bad02a291e0000012800000090988af0a1f57a9dee97278df9b1fccd62a21cadfb56160960eed6abefc95d5f0fa96cc2e3bce75894bff947d855309e264c75eb95c4532de49e810e59abc43ff98d08fdb9e3b0f3ae561e033983c7ab391f521efd6af2675bea296cb4f257850de0e3ff28205b935b76b05d3584222e0a067a336c8be6a365c107fa95959563cbc11a1c2f63914d41bd5c4b0c698b0d2f00000090674e68e7621622e4a22d90d7aa2a1651bff1b53bd4b9f74e4da2c3a4bdd05513206950613958362efe44c16cf3d2133419737c395c0ef4f04385ee580a561ae1647db60f3da047b382789331edb670be103fba6587fe6f26b1cea9bc26820dcc65ab1a9023fef37e8e52f0cdf5fc69c5083b8f5855fe15e138af8136188b9b0b2d80aa2a60b895d4bc1b0ebe0e4121e3", + "calldataHash": "0x0ef928e73adbc5f53790a7591f274b0f4179a533e21da23f2ed7defe5af7bf41", "decodedHeader": { - "bodyHash": "0xcd9a7ed1324b15c82eb2b86042643cd52b67ef1909cdcdefb26d2073d8664a23", + "bodyHash": "0x0ef928e73adbc5f53790a7591f274b0f4179a533e21da23f2ed7defe5af7bf41", "globalVariables": { "blockNumber": 1, "chainId": 31337, @@ -92,8 +92,8 @@ } } }, - "header": "0x0000000000000000000000000000000000000000000000000000000000007a690000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000a241c83a063083fad29b6c333afcd968f71f8a875544ff1f1f08cae7f770f51000000100d944282e11bdcfa5e8f2b55fe80db4c586087bfc10e0bbba5724d30b8c15e2e0000010001c16141039343d4d403501e66deecff1b024bd76794820a43dc3424087813a2000001801a3d3e40c90cd24822b9c268154ef14d4639febdb7af81b554cb2d651b88dfb100000004160ba3a7c15d7dd592a24b3f14bfa76a0b45378877d4dedc5f126f47844b99b2000000601a005071a487e4891787073a91504fe6ea55280bc6f65a021fd6f7ca1f10aa0200000001cd9a7ed1324b15c82eb2b86042643cd52b67ef1909cdcdefb26d2073d8664a23", + "header": "0x1a005071a487e4891787073a91504fe6ea55280bc6f65a021fd6f7ca1f10aa02000000010ef928e73adbc5f53790a7591f274b0f4179a533e21da23f2ed7defe5af7bf410a241c83a063083fad29b6c333afcd968f71f8a875544ff1f1f08cae7f770f51000000100d944282e11bdcfa5e8f2b55fe80db4c586087bfc10e0bbba5724d30b8c15e2e0000010001c16141039343d4d403501e66deecff1b024bd76794820a43dc3424087813a2000001801a3d3e40c90cd24822b9c268154ef14d4639febdb7af81b554cb2d651b88dfb100000004160ba3a7c15d7dd592a24b3f14bfa76a0b45378877d4dedc5f126f47844b99b2000000600000000000000000000000000000000000000000000000000000000000007a69000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000", "l1ToL2MessagesHash": "0xb213c9c543fce2a66720d26a913fe0d018f72a47ccfe698baafcf4cced343cfd", - "publicInputsHash": "0x124b48fbfadbbd213feab5c7dda66f6908f55c3c899d88d0db822527dcbc34b1" + "publicInputsHash": "0x1256090bf682bee2a1b43969d13bd8921ab74904a46a578d20534b57434fd60d" } } \ No newline at end of file diff --git a/l1-contracts/test/fixtures/mixed_block_1.json b/l1-contracts/test/fixtures/mixed_block_1.json index f0147e8c6cc..805a3869c17 100644 --- a/l1-contracts/test/fixtures/mixed_block_1.json +++ b/l1-contracts/test/fixtures/mixed_block_1.json @@ -52,15 +52,15 @@ ] }, "block": { - "archive": "0x2f3fb377fd6181826fcbfda86813263509bceeeb8c606e61a03386a5bb6d0be1", - "body": "0x000001000000000000000000000000000000000000000000000000000000000000000240000000000000000000000000000000000000000000000000000000000000024100000000000000000000000000000000000000000000000000000000000002420000000000000000000000000000000000000000000000000000000000000243000000000000000000000000000000000000000000000000000000000000024400000000000000000000000000000000000000000000000000000000000002450000000000000000000000000000000000000000000000000000000000000246000000000000000000000000000000000000000000000000000000000000024700000000000000000000000000000000000000000000000000000000000002480000000000000000000000000000000000000000000000000000000000000249000000000000000000000000000000000000000000000000000000000000024a000000000000000000000000000000000000000000000000000000000000024b000000000000000000000000000000000000000000000000000000000000024c000000000000000000000000000000000000000000000000000000000000024d000000000000000000000000000000000000000000000000000000000000024e000000000000000000000000000000000000000000000000000000000000024f0000000000000000000000000000000000000000000000000000000000000250000000000000000000000000000000000000000000000000000000000000025100000000000000000000000000000000000000000000000000000000000002520000000000000000000000000000000000000000000000000000000000000253000000000000000000000000000000000000000000000000000000000000025400000000000000000000000000000000000000000000000000000000000002550000000000000000000000000000000000000000000000000000000000000256000000000000000000000000000000000000000000000000000000000000025700000000000000000000000000000000000000000000000000000000000002580000000000000000000000000000000000000000000000000000000000000259000000000000000000000000000000000000000000000000000000000000025a000000000000000000000000000000000000000000000000000000000000025b000000000000000000000000000000000000000000000000000000000000025c000000000000000000000000000000000000000000000000000000000000025d000000000000000000000000000000000000000000000000000000000000025e000000000000000000000000000000000000000000000000000000000000025f0000000000000000000000000000000000000000000000000000000000000260000000000000000000000000000000000000000000000000000000000000026100000000000000000000000000000000000000000000000000000000000002620000000000000000000000000000000000000000000000000000000000000263000000000000000000000000000000000000000000000000000000000000026400000000000000000000000000000000000000000000000000000000000002650000000000000000000000000000000000000000000000000000000000000266000000000000000000000000000000000000000000000000000000000000026700000000000000000000000000000000000000000000000000000000000002680000000000000000000000000000000000000000000000000000000000000269000000000000000000000000000000000000000000000000000000000000026a000000000000000000000000000000000000000000000000000000000000026b000000000000000000000000000000000000000000000000000000000000026c000000000000000000000000000000000000000000000000000000000000026d000000000000000000000000000000000000000000000000000000000000026e000000000000000000000000000000000000000000000000000000000000026f0000000000000000000000000000000000000000000000000000000000000270000000000000000000000000000000000000000000000000000000000000027100000000000000000000000000000000000000000000000000000000000002720000000000000000000000000000000000000000000000000000000000000273000000000000000000000000000000000000000000000000000000000000027400000000000000000000000000000000000000000000000000000000000002750000000000000000000000000000000000000000000000000000000000000276000000000000000000000000000000000000000000000000000000000000027700000000000000000000000000000000000000000000000000000000000002780000000000000000000000000000000000000000000000000000000000000279000000000000000000000000000000000000000000000000000000000000027a000000000000000000000000000000000000000000000000000000000000027b000000000000000000000000000000000000000000000000000000000000027c000000000000000000000000000000000000000000000000000000000000027d000000000000000000000000000000000000000000000000000000000000027e000000000000000000000000000000000000000000000000000000000000027f0000000000000000000000000000000000000000000000000000000000000280000000000000000000000000000000000000000000000000000000000000028100000000000000000000000000000000000000000000000000000000000002820000000000000000000000000000000000000000000000000000000000000283000000000000000000000000000000000000000000000000000000000000028400000000000000000000000000000000000000000000000000000000000002850000000000000000000000000000000000000000000000000000000000000286000000000000000000000000000000000000000000000000000000000000028700000000000000000000000000000000000000000000000000000000000002880000000000000000000000000000000000000000000000000000000000000289000000000000000000000000000000000000000000000000000000000000028a000000000000000000000000000000000000000000000000000000000000028b000000000000000000000000000000000000000000000000000000000000028c000000000000000000000000000000000000000000000000000000000000028d000000000000000000000000000000000000000000000000000000000000028e000000000000000000000000000000000000000000000000000000000000028f0000000000000000000000000000000000000000000000000000000000000290000000000000000000000000000000000000000000000000000000000000029100000000000000000000000000000000000000000000000000000000000002920000000000000000000000000000000000000000000000000000000000000293000000000000000000000000000000000000000000000000000000000000029400000000000000000000000000000000000000000000000000000000000002950000000000000000000000000000000000000000000000000000000000000296000000000000000000000000000000000000000000000000000000000000029700000000000000000000000000000000000000000000000000000000000002980000000000000000000000000000000000000000000000000000000000000299000000000000000000000000000000000000000000000000000000000000029a000000000000000000000000000000000000000000000000000000000000029b000000000000000000000000000000000000000000000000000000000000029c000000000000000000000000000000000000000000000000000000000000029d000000000000000000000000000000000000000000000000000000000000029e000000000000000000000000000000000000000000000000000000000000029f00000000000000000000000000000000000000000000000000000000000002a000000000000000000000000000000000000000000000000000000000000002a100000000000000000000000000000000000000000000000000000000000002a200000000000000000000000000000000000000000000000000000000000002a300000000000000000000000000000000000000000000000000000000000002a400000000000000000000000000000000000000000000000000000000000002a500000000000000000000000000000000000000000000000000000000000002a600000000000000000000000000000000000000000000000000000000000002a700000000000000000000000000000000000000000000000000000000000002a800000000000000000000000000000000000000000000000000000000000002a900000000000000000000000000000000000000000000000000000000000002aa00000000000000000000000000000000000000000000000000000000000002ab00000000000000000000000000000000000000000000000000000000000002ac00000000000000000000000000000000000000000000000000000000000002ad00000000000000000000000000000000000000000000000000000000000002ae00000000000000000000000000000000000000000000000000000000000002af00000000000000000000000000000000000000000000000000000000000002b000000000000000000000000000000000000000000000000000000000000002b100000000000000000000000000000000000000000000000000000000000002b200000000000000000000000000000000000000000000000000000000000002b300000000000000000000000000000000000000000000000000000000000002b400000000000000000000000000000000000000000000000000000000000002b500000000000000000000000000000000000000000000000000000000000002b600000000000000000000000000000000000000000000000000000000000002b700000000000000000000000000000000000000000000000000000000000002b800000000000000000000000000000000000000000000000000000000000002b900000000000000000000000000000000000000000000000000000000000002ba00000000000000000000000000000000000000000000000000000000000002bb00000000000000000000000000000000000000000000000000000000000002bc00000000000000000000000000000000000000000000000000000000000002bd00000000000000000000000000000000000000000000000000000000000002be00000000000000000000000000000000000000000000000000000000000002bf00000000000000000000000000000000000000000000000000000000000002c000000000000000000000000000000000000000000000000000000000000002c100000000000000000000000000000000000000000000000000000000000002c200000000000000000000000000000000000000000000000000000000000002c300000000000000000000000000000000000000000000000000000000000002c400000000000000000000000000000000000000000000000000000000000002c500000000000000000000000000000000000000000000000000000000000002c600000000000000000000000000000000000000000000000000000000000002c700000000000000000000000000000000000000000000000000000000000002c800000000000000000000000000000000000000000000000000000000000002c900000000000000000000000000000000000000000000000000000000000002ca00000000000000000000000000000000000000000000000000000000000002cb00000000000000000000000000000000000000000000000000000000000002cc00000000000000000000000000000000000000000000000000000000000002cd00000000000000000000000000000000000000000000000000000000000002ce00000000000000000000000000000000000000000000000000000000000002cf00000000000000000000000000000000000000000000000000000000000002d000000000000000000000000000000000000000000000000000000000000002d100000000000000000000000000000000000000000000000000000000000002d200000000000000000000000000000000000000000000000000000000000002d300000000000000000000000000000000000000000000000000000000000002d400000000000000000000000000000000000000000000000000000000000002d500000000000000000000000000000000000000000000000000000000000002d600000000000000000000000000000000000000000000000000000000000002d700000000000000000000000000000000000000000000000000000000000002d800000000000000000000000000000000000000000000000000000000000002d900000000000000000000000000000000000000000000000000000000000002da00000000000000000000000000000000000000000000000000000000000002db00000000000000000000000000000000000000000000000000000000000002dc00000000000000000000000000000000000000000000000000000000000002dd00000000000000000000000000000000000000000000000000000000000002de00000000000000000000000000000000000000000000000000000000000002df00000000000000000000000000000000000000000000000000000000000002e000000000000000000000000000000000000000000000000000000000000002e100000000000000000000000000000000000000000000000000000000000002e200000000000000000000000000000000000000000000000000000000000002e300000000000000000000000000000000000000000000000000000000000002e400000000000000000000000000000000000000000000000000000000000002e500000000000000000000000000000000000000000000000000000000000002e600000000000000000000000000000000000000000000000000000000000002e700000000000000000000000000000000000000000000000000000000000002e800000000000000000000000000000000000000000000000000000000000002e900000000000000000000000000000000000000000000000000000000000002ea00000000000000000000000000000000000000000000000000000000000002eb00000000000000000000000000000000000000000000000000000000000002ec00000000000000000000000000000000000000000000000000000000000002ed00000000000000000000000000000000000000000000000000000000000002ee00000000000000000000000000000000000000000000000000000000000002ef00000000000000000000000000000000000000000000000000000000000002f000000000000000000000000000000000000000000000000000000000000002f100000000000000000000000000000000000000000000000000000000000002f200000000000000000000000000000000000000000000000000000000000002f300000000000000000000000000000000000000000000000000000000000002f400000000000000000000000000000000000000000000000000000000000002f500000000000000000000000000000000000000000000000000000000000002f600000000000000000000000000000000000000000000000000000000000002f700000000000000000000000000000000000000000000000000000000000002f800000000000000000000000000000000000000000000000000000000000002f900000000000000000000000000000000000000000000000000000000000002fa00000000000000000000000000000000000000000000000000000000000002fb00000000000000000000000000000000000000000000000000000000000002fc00000000000000000000000000000000000000000000000000000000000002fd00000000000000000000000000000000000000000000000000000000000002fe00000000000000000000000000000000000000000000000000000000000002ff0000000000000000000000000000000000000000000000000000000000000300000000000000000000000000000000000000000000000000000000000000030100000000000000000000000000000000000000000000000000000000000003020000000000000000000000000000000000000000000000000000000000000303000000000000000000000000000000000000000000000000000000000000030400000000000000000000000000000000000000000000000000000000000003050000000000000000000000000000000000000000000000000000000000000306000000000000000000000000000000000000000000000000000000000000030700000000000000000000000000000000000000000000000000000000000003080000000000000000000000000000000000000000000000000000000000000309000000000000000000000000000000000000000000000000000000000000030a000000000000000000000000000000000000000000000000000000000000030b000000000000000000000000000000000000000000000000000000000000030c000000000000000000000000000000000000000000000000000000000000030d000000000000000000000000000000000000000000000000000000000000030e000000000000000000000000000000000000000000000000000000000000030f0000000000000000000000000000000000000000000000000000000000000310000000000000000000000000000000000000000000000000000000000000031100000000000000000000000000000000000000000000000000000000000003120000000000000000000000000000000000000000000000000000000000000313000000000000000000000000000000000000000000000000000000000000031400000000000000000000000000000000000000000000000000000000000003150000000000000000000000000000000000000000000000000000000000000316000000000000000000000000000000000000000000000000000000000000031700000000000000000000000000000000000000000000000000000000000003180000000000000000000000000000000000000000000000000000000000000319000000000000000000000000000000000000000000000000000000000000031a000000000000000000000000000000000000000000000000000000000000031b000000000000000000000000000000000000000000000000000000000000031c000000000000000000000000000000000000000000000000000000000000031d000000000000000000000000000000000000000000000000000000000000031e000000000000000000000000000000000000000000000000000000000000031f0000000000000000000000000000000000000000000000000000000000000320000000000000000000000000000000000000000000000000000000000000032100000000000000000000000000000000000000000000000000000000000003220000000000000000000000000000000000000000000000000000000000000323000000000000000000000000000000000000000000000000000000000000032400000000000000000000000000000000000000000000000000000000000003250000000000000000000000000000000000000000000000000000000000000326000000000000000000000000000000000000000000000000000000000000032700000000000000000000000000000000000000000000000000000000000003280000000000000000000000000000000000000000000000000000000000000329000000000000000000000000000000000000000000000000000000000000032a000000000000000000000000000000000000000000000000000000000000032b000000000000000000000000000000000000000000000000000000000000032c000000000000000000000000000000000000000000000000000000000000032d000000000000000000000000000000000000000000000000000000000000032e000000000000000000000000000000000000000000000000000000000000032f0000000000000000000000000000000000000000000000000000000000000330000000000000000000000000000000000000000000000000000000000000033100000000000000000000000000000000000000000000000000000000000003320000000000000000000000000000000000000000000000000000000000000333000000000000000000000000000000000000000000000000000000000000033400000000000000000000000000000000000000000000000000000000000003350000000000000000000000000000000000000000000000000000000000000336000000000000000000000000000000000000000000000000000000000000033700000000000000000000000000000000000000000000000000000000000003380000000000000000000000000000000000000000000000000000000000000339000000000000000000000000000000000000000000000000000000000000033a000000000000000000000000000000000000000000000000000000000000033b000000000000000000000000000000000000000000000000000000000000033c000000000000000000000000000000000000000000000000000000000000033d000000000000000000000000000000000000000000000000000000000000033e000000000000000000000000000000000000000000000000000000000000033f000001000000000000000000000000000000000000000000000000000000000000000340000000000000000000000000000000000000000000000000000000000000034100000000000000000000000000000000000000000000000000000000000003420000000000000000000000000000000000000000000000000000000000000343000000000000000000000000000000000000000000000000000000000000034400000000000000000000000000000000000000000000000000000000000003450000000000000000000000000000000000000000000000000000000000000346000000000000000000000000000000000000000000000000000000000000034700000000000000000000000000000000000000000000000000000000000003480000000000000000000000000000000000000000000000000000000000000349000000000000000000000000000000000000000000000000000000000000034a000000000000000000000000000000000000000000000000000000000000034b000000000000000000000000000000000000000000000000000000000000034c000000000000000000000000000000000000000000000000000000000000034d000000000000000000000000000000000000000000000000000000000000034e000000000000000000000000000000000000000000000000000000000000034f0000000000000000000000000000000000000000000000000000000000000350000000000000000000000000000000000000000000000000000000000000035100000000000000000000000000000000000000000000000000000000000003520000000000000000000000000000000000000000000000000000000000000353000000000000000000000000000000000000000000000000000000000000035400000000000000000000000000000000000000000000000000000000000003550000000000000000000000000000000000000000000000000000000000000356000000000000000000000000000000000000000000000000000000000000035700000000000000000000000000000000000000000000000000000000000003580000000000000000000000000000000000000000000000000000000000000359000000000000000000000000000000000000000000000000000000000000035a000000000000000000000000000000000000000000000000000000000000035b000000000000000000000000000000000000000000000000000000000000035c000000000000000000000000000000000000000000000000000000000000035d000000000000000000000000000000000000000000000000000000000000035e000000000000000000000000000000000000000000000000000000000000035f0000000000000000000000000000000000000000000000000000000000000360000000000000000000000000000000000000000000000000000000000000036100000000000000000000000000000000000000000000000000000000000003620000000000000000000000000000000000000000000000000000000000000363000000000000000000000000000000000000000000000000000000000000036400000000000000000000000000000000000000000000000000000000000003650000000000000000000000000000000000000000000000000000000000000366000000000000000000000000000000000000000000000000000000000000036700000000000000000000000000000000000000000000000000000000000003680000000000000000000000000000000000000000000000000000000000000369000000000000000000000000000000000000000000000000000000000000036a000000000000000000000000000000000000000000000000000000000000036b000000000000000000000000000000000000000000000000000000000000036c000000000000000000000000000000000000000000000000000000000000036d000000000000000000000000000000000000000000000000000000000000036e000000000000000000000000000000000000000000000000000000000000036f0000000000000000000000000000000000000000000000000000000000000370000000000000000000000000000000000000000000000000000000000000037100000000000000000000000000000000000000000000000000000000000003720000000000000000000000000000000000000000000000000000000000000373000000000000000000000000000000000000000000000000000000000000037400000000000000000000000000000000000000000000000000000000000003750000000000000000000000000000000000000000000000000000000000000376000000000000000000000000000000000000000000000000000000000000037700000000000000000000000000000000000000000000000000000000000003780000000000000000000000000000000000000000000000000000000000000379000000000000000000000000000000000000000000000000000000000000037a000000000000000000000000000000000000000000000000000000000000037b000000000000000000000000000000000000000000000000000000000000037c000000000000000000000000000000000000000000000000000000000000037d000000000000000000000000000000000000000000000000000000000000037e00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000380000000000000000000000000000000000000000000000000000000000000038100000000000000000000000000000000000000000000000000000000000003820000000000000000000000000000000000000000000000000000000000000383000000000000000000000000000000000000000000000000000000000000038400000000000000000000000000000000000000000000000000000000000003850000000000000000000000000000000000000000000000000000000000000386000000000000000000000000000000000000000000000000000000000000038700000000000000000000000000000000000000000000000000000000000003880000000000000000000000000000000000000000000000000000000000000389000000000000000000000000000000000000000000000000000000000000038a000000000000000000000000000000000000000000000000000000000000038b000000000000000000000000000000000000000000000000000000000000038c000000000000000000000000000000000000000000000000000000000000038d000000000000000000000000000000000000000000000000000000000000038e000000000000000000000000000000000000000000000000000000000000038f0000000000000000000000000000000000000000000000000000000000000390000000000000000000000000000000000000000000000000000000000000039100000000000000000000000000000000000000000000000000000000000003920000000000000000000000000000000000000000000000000000000000000393000000000000000000000000000000000000000000000000000000000000039400000000000000000000000000000000000000000000000000000000000003950000000000000000000000000000000000000000000000000000000000000396000000000000000000000000000000000000000000000000000000000000039700000000000000000000000000000000000000000000000000000000000003980000000000000000000000000000000000000000000000000000000000000399000000000000000000000000000000000000000000000000000000000000039a000000000000000000000000000000000000000000000000000000000000039b000000000000000000000000000000000000000000000000000000000000039c000000000000000000000000000000000000000000000000000000000000039d000000000000000000000000000000000000000000000000000000000000039e000000000000000000000000000000000000000000000000000000000000039f00000000000000000000000000000000000000000000000000000000000003a000000000000000000000000000000000000000000000000000000000000003a100000000000000000000000000000000000000000000000000000000000003a200000000000000000000000000000000000000000000000000000000000003a300000000000000000000000000000000000000000000000000000000000003a400000000000000000000000000000000000000000000000000000000000003a500000000000000000000000000000000000000000000000000000000000003a600000000000000000000000000000000000000000000000000000000000003a700000000000000000000000000000000000000000000000000000000000003a800000000000000000000000000000000000000000000000000000000000003a900000000000000000000000000000000000000000000000000000000000003aa00000000000000000000000000000000000000000000000000000000000003ab00000000000000000000000000000000000000000000000000000000000003ac00000000000000000000000000000000000000000000000000000000000003ad00000000000000000000000000000000000000000000000000000000000003ae00000000000000000000000000000000000000000000000000000000000003af00000000000000000000000000000000000000000000000000000000000003b000000000000000000000000000000000000000000000000000000000000003b100000000000000000000000000000000000000000000000000000000000003b200000000000000000000000000000000000000000000000000000000000003b300000000000000000000000000000000000000000000000000000000000003b400000000000000000000000000000000000000000000000000000000000003b500000000000000000000000000000000000000000000000000000000000003b600000000000000000000000000000000000000000000000000000000000003b700000000000000000000000000000000000000000000000000000000000003b800000000000000000000000000000000000000000000000000000000000003b900000000000000000000000000000000000000000000000000000000000003ba00000000000000000000000000000000000000000000000000000000000003bb00000000000000000000000000000000000000000000000000000000000003bc00000000000000000000000000000000000000000000000000000000000003bd00000000000000000000000000000000000000000000000000000000000003be000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003c000000000000000000000000000000000000000000000000000000000000003c100000000000000000000000000000000000000000000000000000000000003c200000000000000000000000000000000000000000000000000000000000003c300000000000000000000000000000000000000000000000000000000000003c400000000000000000000000000000000000000000000000000000000000003c500000000000000000000000000000000000000000000000000000000000003c600000000000000000000000000000000000000000000000000000000000003c700000000000000000000000000000000000000000000000000000000000003c800000000000000000000000000000000000000000000000000000000000003c900000000000000000000000000000000000000000000000000000000000003ca00000000000000000000000000000000000000000000000000000000000003cb00000000000000000000000000000000000000000000000000000000000003cc00000000000000000000000000000000000000000000000000000000000003cd00000000000000000000000000000000000000000000000000000000000003ce00000000000000000000000000000000000000000000000000000000000003cf00000000000000000000000000000000000000000000000000000000000003d000000000000000000000000000000000000000000000000000000000000003d100000000000000000000000000000000000000000000000000000000000003d200000000000000000000000000000000000000000000000000000000000003d300000000000000000000000000000000000000000000000000000000000003d400000000000000000000000000000000000000000000000000000000000003d500000000000000000000000000000000000000000000000000000000000003d600000000000000000000000000000000000000000000000000000000000003d700000000000000000000000000000000000000000000000000000000000003d800000000000000000000000000000000000000000000000000000000000003d900000000000000000000000000000000000000000000000000000000000003da00000000000000000000000000000000000000000000000000000000000003db00000000000000000000000000000000000000000000000000000000000003dc00000000000000000000000000000000000000000000000000000000000003dd00000000000000000000000000000000000000000000000000000000000003de00000000000000000000000000000000000000000000000000000000000003df00000000000000000000000000000000000000000000000000000000000003e000000000000000000000000000000000000000000000000000000000000003e100000000000000000000000000000000000000000000000000000000000003e200000000000000000000000000000000000000000000000000000000000003e300000000000000000000000000000000000000000000000000000000000003e400000000000000000000000000000000000000000000000000000000000003e500000000000000000000000000000000000000000000000000000000000003e600000000000000000000000000000000000000000000000000000000000003e700000000000000000000000000000000000000000000000000000000000003e800000000000000000000000000000000000000000000000000000000000003e900000000000000000000000000000000000000000000000000000000000003ea00000000000000000000000000000000000000000000000000000000000003eb00000000000000000000000000000000000000000000000000000000000003ec00000000000000000000000000000000000000000000000000000000000003ed00000000000000000000000000000000000000000000000000000000000003ee00000000000000000000000000000000000000000000000000000000000003ef00000000000000000000000000000000000000000000000000000000000003f000000000000000000000000000000000000000000000000000000000000003f100000000000000000000000000000000000000000000000000000000000003f200000000000000000000000000000000000000000000000000000000000003f300000000000000000000000000000000000000000000000000000000000003f400000000000000000000000000000000000000000000000000000000000003f500000000000000000000000000000000000000000000000000000000000003f600000000000000000000000000000000000000000000000000000000000003f700000000000000000000000000000000000000000000000000000000000003f800000000000000000000000000000000000000000000000000000000000003f900000000000000000000000000000000000000000000000000000000000003fa00000000000000000000000000000000000000000000000000000000000003fb00000000000000000000000000000000000000000000000000000000000003fc00000000000000000000000000000000000000000000000000000000000003fd00000000000000000000000000000000000000000000000000000000000003fe00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000040100000000000000000000000000000000000000000000000000000000000004020000000000000000000000000000000000000000000000000000000000000403000000000000000000000000000000000000000000000000000000000000040400000000000000000000000000000000000000000000000000000000000004050000000000000000000000000000000000000000000000000000000000000406000000000000000000000000000000000000000000000000000000000000040700000000000000000000000000000000000000000000000000000000000004080000000000000000000000000000000000000000000000000000000000000409000000000000000000000000000000000000000000000000000000000000040a000000000000000000000000000000000000000000000000000000000000040b000000000000000000000000000000000000000000000000000000000000040c000000000000000000000000000000000000000000000000000000000000040d000000000000000000000000000000000000000000000000000000000000040e000000000000000000000000000000000000000000000000000000000000040f0000000000000000000000000000000000000000000000000000000000000410000000000000000000000000000000000000000000000000000000000000041100000000000000000000000000000000000000000000000000000000000004120000000000000000000000000000000000000000000000000000000000000413000000000000000000000000000000000000000000000000000000000000041400000000000000000000000000000000000000000000000000000000000004150000000000000000000000000000000000000000000000000000000000000416000000000000000000000000000000000000000000000000000000000000041700000000000000000000000000000000000000000000000000000000000004180000000000000000000000000000000000000000000000000000000000000419000000000000000000000000000000000000000000000000000000000000041a000000000000000000000000000000000000000000000000000000000000041b000000000000000000000000000000000000000000000000000000000000041c000000000000000000000000000000000000000000000000000000000000041d000000000000000000000000000000000000000000000000000000000000041e000000000000000000000000000000000000000000000000000000000000041f0000000000000000000000000000000000000000000000000000000000000420000000000000000000000000000000000000000000000000000000000000042100000000000000000000000000000000000000000000000000000000000004220000000000000000000000000000000000000000000000000000000000000423000000000000000000000000000000000000000000000000000000000000042400000000000000000000000000000000000000000000000000000000000004250000000000000000000000000000000000000000000000000000000000000426000000000000000000000000000000000000000000000000000000000000042700000000000000000000000000000000000000000000000000000000000004280000000000000000000000000000000000000000000000000000000000000429000000000000000000000000000000000000000000000000000000000000042a000000000000000000000000000000000000000000000000000000000000042b000000000000000000000000000000000000000000000000000000000000042c000000000000000000000000000000000000000000000000000000000000042d000000000000000000000000000000000000000000000000000000000000042e000000000000000000000000000000000000000000000000000000000000042f0000000000000000000000000000000000000000000000000000000000000430000000000000000000000000000000000000000000000000000000000000043100000000000000000000000000000000000000000000000000000000000004320000000000000000000000000000000000000000000000000000000000000433000000000000000000000000000000000000000000000000000000000000043400000000000000000000000000000000000000000000000000000000000004350000000000000000000000000000000000000000000000000000000000000436000000000000000000000000000000000000000000000000000000000000043700000000000000000000000000000000000000000000000000000000000004380000000000000000000000000000000000000000000000000000000000000439000000000000000000000000000000000000000000000000000000000000043a000000000000000000000000000000000000000000000000000000000000043b000000000000000000000000000000000000000000000000000000000000043c000000000000000000000000000000000000000000000000000000000000043d000000000000000000000000000000000000000000000000000000000000043e0000000000000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000640000000000000000000000000000000000000000000000000000000000000064a0000000000000000000000000000000000000000000000000000000000000641000000000000000000000000000000000000000000000000000000000000064b0000000000000000000000000000000000000000000000000000000000000642000000000000000000000000000000000000000000000000000000000000064c0000000000000000000000000000000000000000000000000000000000000643000000000000000000000000000000000000000000000000000000000000064d0000000000000000000000000000000000000000000000000000000000000644000000000000000000000000000000000000000000000000000000000000064e0000000000000000000000000000000000000000000000000000000000000645000000000000000000000000000000000000000000000000000000000000064f00000000000000000000000000000000000000000000000000000000000006460000000000000000000000000000000000000000000000000000000000000650000000000000000000000000000000000000000000000000000000000000064700000000000000000000000000000000000000000000000000000000000006510000000000000000000000000000000000000000000000000000000000000648000000000000000000000000000000000000000000000000000000000000065200000000000000000000000000000000000000000000000000000000000006490000000000000000000000000000000000000000000000000000000000000653000000000000000000000000000000000000000000000000000000000000064a0000000000000000000000000000000000000000000000000000000000000654000000000000000000000000000000000000000000000000000000000000064b0000000000000000000000000000000000000000000000000000000000000655000000000000000000000000000000000000000000000000000000000000064c0000000000000000000000000000000000000000000000000000000000000656000000000000000000000000000000000000000000000000000000000000064d0000000000000000000000000000000000000000000000000000000000000657000000000000000000000000000000000000000000000000000000000000064e0000000000000000000000000000000000000000000000000000000000000658000000000000000000000000000000000000000000000000000000000000064f00000000000000000000000000000000000000000000000000000000000006590000000000000000000000000000000000000000000000000000000000000680000000000000000000000000000000000000000000000000000000000000068a0000000000000000000000000000000000000000000000000000000000000681000000000000000000000000000000000000000000000000000000000000068b0000000000000000000000000000000000000000000000000000000000000682000000000000000000000000000000000000000000000000000000000000068c0000000000000000000000000000000000000000000000000000000000000683000000000000000000000000000000000000000000000000000000000000068d0000000000000000000000000000000000000000000000000000000000000684000000000000000000000000000000000000000000000000000000000000068e0000000000000000000000000000000000000000000000000000000000000685000000000000000000000000000000000000000000000000000000000000068f00000000000000000000000000000000000000000000000000000000000006860000000000000000000000000000000000000000000000000000000000000690000000000000000000000000000000000000000000000000000000000000068700000000000000000000000000000000000000000000000000000000000006910000000000000000000000000000000000000000000000000000000000000688000000000000000000000000000000000000000000000000000000000000069200000000000000000000000000000000000000000000000000000000000006890000000000000000000000000000000000000000000000000000000000000693000000000000000000000000000000000000000000000000000000000000068a0000000000000000000000000000000000000000000000000000000000000694000000000000000000000000000000000000000000000000000000000000068b0000000000000000000000000000000000000000000000000000000000000695000000000000000000000000000000000000000000000000000000000000068c0000000000000000000000000000000000000000000000000000000000000696000000000000000000000000000000000000000000000000000000000000068d0000000000000000000000000000000000000000000000000000000000000697000000000000000000000000000000000000000000000000000000000000068e0000000000000000000000000000000000000000000000000000000000000698000000000000000000000000000000000000000000000000000000000000068f000000000000000000000000000000000000000000000000000000000000069900000000000000000000000000000000000000000000000000000000000006c000000000000000000000000000000000000000000000000000000000000006ca00000000000000000000000000000000000000000000000000000000000006c100000000000000000000000000000000000000000000000000000000000006cb00000000000000000000000000000000000000000000000000000000000006c200000000000000000000000000000000000000000000000000000000000006cc00000000000000000000000000000000000000000000000000000000000006c300000000000000000000000000000000000000000000000000000000000006cd00000000000000000000000000000000000000000000000000000000000006c400000000000000000000000000000000000000000000000000000000000006ce00000000000000000000000000000000000000000000000000000000000006c500000000000000000000000000000000000000000000000000000000000006cf00000000000000000000000000000000000000000000000000000000000006c600000000000000000000000000000000000000000000000000000000000006d000000000000000000000000000000000000000000000000000000000000006c700000000000000000000000000000000000000000000000000000000000006d100000000000000000000000000000000000000000000000000000000000006c800000000000000000000000000000000000000000000000000000000000006d200000000000000000000000000000000000000000000000000000000000006c900000000000000000000000000000000000000000000000000000000000006d300000000000000000000000000000000000000000000000000000000000006ca00000000000000000000000000000000000000000000000000000000000006d400000000000000000000000000000000000000000000000000000000000006cb00000000000000000000000000000000000000000000000000000000000006d500000000000000000000000000000000000000000000000000000000000006cc00000000000000000000000000000000000000000000000000000000000006d600000000000000000000000000000000000000000000000000000000000006cd00000000000000000000000000000000000000000000000000000000000006d700000000000000000000000000000000000000000000000000000000000006ce00000000000000000000000000000000000000000000000000000000000006d800000000000000000000000000000000000000000000000000000000000006cf00000000000000000000000000000000000000000000000000000000000006d90000000000000000000000000000000000000000000000000000000000000700000000000000000000000000000000000000000000000000000000000000070a0000000000000000000000000000000000000000000000000000000000000701000000000000000000000000000000000000000000000000000000000000070b0000000000000000000000000000000000000000000000000000000000000702000000000000000000000000000000000000000000000000000000000000070c0000000000000000000000000000000000000000000000000000000000000703000000000000000000000000000000000000000000000000000000000000070d0000000000000000000000000000000000000000000000000000000000000704000000000000000000000000000000000000000000000000000000000000070e0000000000000000000000000000000000000000000000000000000000000705000000000000000000000000000000000000000000000000000000000000070f00000000000000000000000000000000000000000000000000000000000007060000000000000000000000000000000000000000000000000000000000000710000000000000000000000000000000000000000000000000000000000000070700000000000000000000000000000000000000000000000000000000000007110000000000000000000000000000000000000000000000000000000000000708000000000000000000000000000000000000000000000000000000000000071200000000000000000000000000000000000000000000000000000000000007090000000000000000000000000000000000000000000000000000000000000713000000000000000000000000000000000000000000000000000000000000070a0000000000000000000000000000000000000000000000000000000000000714000000000000000000000000000000000000000000000000000000000000070b0000000000000000000000000000000000000000000000000000000000000715000000000000000000000000000000000000000000000000000000000000070c0000000000000000000000000000000000000000000000000000000000000716000000000000000000000000000000000000000000000000000000000000070d0000000000000000000000000000000000000000000000000000000000000717000000000000000000000000000000000000000000000000000000000000070e0000000000000000000000000000000000000000000000000000000000000718000000000000000000000000000000000000000000000000000000000000070f000000000000000000000000000000000000000000000000000000000000071900000008000000000000000000000000000000000000000000000000000000000000044000000000000000000000000000000000000000000000000000000000000004410000000000000000000000000000000000000000000000000000000000000480000000000000000000000000000000000000000000000000000000000000048100000000000000000000000000000000000000000000000000000000000004c000000000000000000000000000000000000000000000000000000000000004c100000000000000000000000000000000000000000000000000000000000005000000000000000000000000000000000000000000000000000000000000000501000000042ea6fe02855d8c72905f35f08604467117c037962e324c9a793505138558b3700c94efd9afe573212f9bf596ca3a4b42ae57f59e670a7cb5b9440c54bd8ea2961856bc4892b0b3f156ed2aa87463c389bfce0fd675a37cec77ae5d753fcf593c12f9d3f397c2edc9e4a6a5e485641163525ca802e3bd93994af997a9b9a44f98000000000000000000000000000000000000000000000000000000000000114041414141414141414141414141414141414141410000000000000000000000000000000000000000000000000000000000001180818181818181818181818181818181818181818100000000000000000000000000000000000000000000000000000000000011c0c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1000000000000000000000000000000000000000000000000000000000000120001010101010101010101010101010101010101010000001012e5643e26da426570dd999e0e044e5f83d60f3cd813c55059bc0ea0f4a7c9d413b2d2cea949fa0876265cd8eee3a4dce1e243783562ea07e2de537f469f7bf627abb3d4560e786bafd52f77ac52dea36c50419f32386567bd969b0c38e1bd7405d339cecb99fa74bfd631917f965357f0341d8c4dfe6a8f4b621d8df54c82941d560ac24523012499eeca2594f20ce238b7d21b98ad5c638767d70ee05532c2183e6d64e69b005709dfc4771c7ca5981adc54f3e8bd1b00222461ae90e44eda2f1d4572fe0b0b23100a7ea6d4780b25e826e41ca9e71897e010bcb218887b3d036d44eb30a430b5cfc6660270eb5fb7f274689ac73dfa53ba9d0739fe38637f01f7130af8c5888d4c65ea68109a1d58fe8d7d1ae62098857b0a3a3dcd393ef80ed8bcba6eb5e3b4887a32c51c5853b97a5eb59c87c520f36423c6d7be06071821ca1719330de5e3c51a521778b49cbbc1d53f8ed42e0562bf21ed72e8cb9a410b0e82ef5f7276df41353faef675fb408aeb246b6e2f704cab99bf28d1427e7b0fec7b9929c6effdcd045d3fdcec1d1b73faed495444699fab936630d69b519f0bf4f1453db36439419dbfba703b849d1aa5774fe9a5325e5bf3e7cdda9d1f7f2a9c2a035c72fd4a3e383306aff03448f9accc08a2c665837560cec8675fe2512bfaef35a8fb7df08a81001a7fd4903849c0371dedd87f31295f46269c5205dd0000381000000e00000001bc000000907c1b3a08a2cb8683fcf76e45ae9de5c9d696408c53a9939f5064e661500cac4a2964e0e00a2d6c71f958321068266a0ad7706eac1a5183572be5c3d53ba45ff1734d012091c1faa4caf66c00b6a0b4252ba53f2ae331779ec2b332e67f3b10a097f4c74d6bbcc69fabdbfc1a07956b820a762eec034f3519c6615c7ab60a150c811c029efe9b594f2412a29b64105003000000906bab5e23dbfe7a7696c7090aff4201627797929ea89bec9d6a17ec930fbf0f3d42708d82717dd5dbba0e06b724470f6a9ecf06918af478b4d92ba01a3bf5cc97e531181c10128934d4f2a58760f863381de408544e4b35200214e5bfbb7d191f689934289a36948459656b72b025f2590cf71cfd94c6c0b479f85ae74bab0f42384de7051fa4405e3e1663e0cadec48e00000090b9d3e39d91ad008916bef1383e0a7a18314b2b778569b1bc650be76cbaa70defca5db3dba7234ee8c0c1ae77caadbe6e4d44aefc9016a6ebcb43a30ef76e614ef6072bbf1282ac465c0a7d8f1ad081c523aa58f64bb496593f493c5e18084cbc343f9cce765f11cebbb9f08aa524aaa0107fbe4f10f8fc4d5ebd6f34cc5b6a718b93b35c3cb971b033d51dbf3d71a1e0000001bc00000090d65b1026d291257fb639ab3bd2bef618b0b48a8a0011f78b66ef61da931d3e98d7476e5b783cd04fd256c2ee48e50e6609423babd46f0d4128e062251f200f5efebd8874fbe9803428ace9441ad6be73024d04270212a21b1e315671fd50cecf657008784a40e6a945d0c9933b0b751e0e4270bdf3d96f5660bc332deb55c1d69efee98575540775b0bfeb1795ab0b6800000090c428df8558124ebad08202b4e9df93e9aba73daf792c1c5778d7db24eae062d1f96e40068f382c241371fe92222fe65d6079aef71144a6b5200b640fda76576707df17436b91e16e3702b234bc3b5db2148e9b10bde68adae03ec7397db66e9f38d9b6dad770ed9a4cedd10af990193d010d7ee63c3673e7d19a1a86c85b812a77a27960a061d34b6d3603e9be4fd68b000000900dd0a2f23deaec926322cf81653b6af17ba64cf0771512f67cc6254d5b2655c57ff8bb485ea8b7800db96eae65f0a7c88bfc2106b9bf899dad80284afef5030402d374526f89145f851b824fb54289e50964cc0cfa74628f766fc485bd77b2fd8d991243ca4df56a0d2961c62bcfc8b0143b56669c4243ba4b8a1b23eb6d47baa02a5018715df1ba04c901c8c8bd0177000001bc00000090a90243f2ec68e4f6e6b21048876e4a1312cdb3af73a5cfc0dbcc269d26985fa2055897a67459ebb74f3ac45aa0d6ff3f63dcb9e71f0884497c858f0ae15cca019fe6e93e9baafcaf945bd069a3a5c98e0865700131bef16cc4c47e389f5e0f8c5222696be1a1c09029c7e1ddcf643fa617304820537e972a15547cd43dbc826304a85d5a9fdd345f4033f326fd8b317e00000090a6f785621cd1f8bd394ce02ecd3bf72e1652b7dac8434e0f36be19f5067923427af900b9d89d75e0693d121c4ee41ea5c7b3c3768c2aec19c6db0476c0290e50028b11d31ae04ecd702125a29fd857db05a3826a0ce0a9d720f46e24e33f95c1ffc966b90a1d2d83c7ae9f28e538cacf0cec4bf0ef40d262f77360406230b9456a7c14321fac15cd4dbeaac0672954d500000090ced89c13be6d034f1f3ed73c871c41bf79e2b6f9c03652ea3562484101d06c0fe592debbdea9ff08a4a8e242c3e31b3a39b0b503bcc29f1f3da8c90fad9240b701258f7cd3dc750418cdb045d6f89070259677559b050bf6652a4b3c88edfd90a208d80286a3a627432fbe2bca3d07e5196c31f8e14d2443ed9eb8a12ccf2f2d3f90af296c346adf5e874042f50b8e58000001bc0000009036b8114db5d25a74f20c28ec8fa372279d3de9bf48e22a1466a0e02283af96257e863f638359ea3f4d5626af79ffb9c3755f0201f31deeb9082c5d4bf708589e66edf6386bc795ba50d50a23daee25eb1492ce5b5ea7bc5b2692bce3fcc4d75ce59f4ff60a1925b26288230a41a085d7192a0d71649842bfd019e17062a1b606dd09abbaad2ca4f2d8e19c591583814900000090f448cf92adc1a09fe6a43d3532627994990b9eb5aaa76a43d547045d73c4311a476773a0642db295b91823296cc8eebedf1c9fd738e612e2c07b2b5770618e696f6c4f97e6714ace745c013e68ea1a7317b03ca9059b14736059b181ea3d2d4b35b02525ce4127e892259748c01a81912e694361b8f22c0484b545ec4e2bae6b6b9a04727ccfc5976597374e891ff50e00000090a422ede5cb0a1ee27d05be320b90bcadcaf47b31ff2723625145666809a67f3c2757ee3d5e56ec08fcea4ccf9cd345e2281dd362935cc246680a3115f8b9df3301c3b1e9b8c6a8eb2cb869f8e029b8462a2cbd9f5b38a69ceaedb87e7777e8edcc0c6bdeee33ef17b3fc5dd8d74fb097010b54bc3509deef732f49927ca924a212fa97c5ae076dd285e9f5001bb3755b000001bc000000902388e4f77b866464924fb5d3eb9bb1f4cf8aeee2327dbb5ca6c94d7469a8a4cf955d66341ca63cd8b74b1b81c87fe727cc79d4c52dfc33b8336a6ab5e88e5460d3fea2d8af8ef176c91ee898a1ea3b501af82247408797c0e1b3d309a271ad98109038e1fd88da421de1be702af1c94a2868d845580151b770a3af1ab2ba4ffa38e4696d1174792ceb8169c0e3a40d3f00000090eb7def151cd9a4004475ad0ce963e7e34cc75ddc8689fb9466c4e9ced59197dc3fb3c25a43fa9c62bba236f989e38bfcdef819eba5dcf89d17f6c4025beba3f988497c0b9639b765867338d4b096dc811f1f35b19829cea2a0999d2bcb28db6d3204ed4b7acde9785129e72af98439d31035fe030458a481ce33a27dff24a1ae4796b041643c0c80afcccb1b03e9916e000000906968b696d07368fb5400ea065d9602b3043800c1440c79689952ffd7797d5c614568420845cbc63e9d741e1f5fffa1d9851d30c01c29b1927611f795cf88d2237e7d4ec9037aa9d0d2bfcaf4b5a9355c0c8e9cf86b1c2957799bed4517fd6e7678a52789de5e7d7bbc50b1c4819f7d452f2d0fa9ab1862b6e086fdaf8870a4b1a0720cc10f545d8b1a80d2f7bbd4a03f000001bc00000090c66e589493203da5dc904131056f39a754308b74116ab5ff61fbe83ec2eaf2029b6b617bdae1462ac1c00ce5411ec65c0c5234d7def6a7e8ad98a15b73e2a9c02f50fcb32dc91952a1256a7c0cfe7f9821e175d48758ac9aba3cdca31f3c6fcaa0c616c8fd0736a1930ef29ec83d40c800e48f95794a82dc3f8ea3fd2a823bfb297e541d1b88783cbb52046a5c0f562300000090768193236ad2763b5873968cf429dd9904fbd0e566984a93df8d19b31fa6c7d97b685669fa571770d1104e49deae20e878a40c0836bdb779b82935926c6fbdd1d0a5a0313eee67f020ece80df5e81dc42246e9f9a36c8515a4d80eabc793bcbbefcd84bf5d10711f35971580e81c41280037c6d6da5cfa8c3eed023f32d55c48d0d4294ad7c030781aff4f77b94fcfea00000090c912532e7c09e0a8dab5f7a0c0e3f8364025505f36dd512d2ba05909f99b04cfddfeef1175f65eeaec313c4eae48323611d7b40b7f52bcb507d0c4c80563c66bf52949b1496b5fbb65265a62e7b6843f02e21de4e1dda3aead13660ee9e5b2cb5aa9e614f2bc9c086a0eed7cbaa710b42edf80e0159819eaaf21d15dcfd2f94efeb9525fa6a0f99828876e91682585b1000001bc00000090ef1b83a2fe15a224b3cb05418b3497e13856d86ec0def188a4cf0ced86edae1002081453f26b97ac1691c20788d6c4746f19f06e29c5b23b0e887777b6e30208971d0f2cbd0ed8d91521f4a3c7045e34076df337e47e9fa507516ef13f03ada0c285b92fb61d70e9a0db40d3e163c45e2ee3a7b9f4f6ca902e3a7e98f18b0299031970689089bb5f21c08d2fc94603da000000903b62fbc69c73bfbb0c0443bcf4624f807b1ef4acec60db08a8bccef7f0833e1944cd2ee8644678af13f82e7014c4c728d36bc689b93d5856cd21d4c005bae82d726d64da49fb830601b511e9cef791b62e54ec2d95817842163e2f417ff9cada18ffce9e4588208fecc05500ad078f09057b40278ee50de377d0a121b23a928ecf36c42d1e609261fd79c6c853cf304000000090570872564617956e481624ece8f9f8fa7bc63eba53e28fe4c3c06dc594cb0672e9530b3214c8983cafe960bc97fa3536e3ef44132d8721b793efedb3a17578de05a354348a2c25e83357c4682a39df3206d44fc44579a5ca0920f4196fe08e2d00377513e7ed4145e51de3836faaaa4e181002382bf3915f558af58266a43b2801a97c127dbc10b2840c2e0df5949bac000001bc0000009094212cd20c5afb93ea77dc91e6ad2ecd5dd55ea4e8e7de7ce66c2f7d496f9af69d07f2ffa402f093d6bd3c2d5d246c7763de341e81e5b654b1c29714e79b02ed8aabce6892903ec40e05e0bdac20c8c2237a47816a3cdc1fc64fb4052c9192e2493e19c8a6f2c639aec710ef74b5ad2727850860db08e994d6dadc8f773a7487cc99b29f65b78e76874842e18c59cbc100000090d22273ab92a64992204949d374718bce467241f4eaba3dd635a3b03469b2cbec16e5c37e80258e9b1985cb4675450f19dc8c2b3c3576da96c4ce51a08aa4e3bb3c8015777e3300fe7e2eeb1f57b8675f01a998d4256eb12fbacf0157cab4dbb9f4ccc9d15d5786f2c14d5b453cad59a828312c4bde964f8bf3224a34d5da9c65652b754d3e9db14d985923114c3ae8a70000009016e64044ce8bc509083bb3a8bbd4546a349850ac8c4c2a4e3c1f2b6bb12f46a2069c4bc6fcf80e208fded4592feef5da5448609bec68fbf7e1314b3eb76e5cde198af34a03a051e92b586452758582a11ccdf709902a39cc8940dc42e3ef4e0afc2ad07b53337028ac9dca172b7f475421b2eff3b6c4da731453539197b2d016903d4d1ff7361ad5c5c2fc35ecdc6a2000000e00000001bc000000908f5f5305fbf3044e058b0694519238796f9e67dcc6927252965c4792d1642bfd740e05eccc60eeaa8e4a5b6a085385b2947b7e9f0ef5de46869ad4136e88fbf07123f9570b54623787cefc24533b49ac0e01c777811bd9cac13a289698765bcdf90d8e965689cef3e2faee319c3eb9cc1242762410d2041e045715375e0e060dd857fb744e324b653250e850ff35845b000000906ed36c1c9b2d8c7c394f5c0024cb8510f8558c17d6c83111ee0d4077bb0fc10033c45319684f00450424e3d77369f15eec6a65156daf316522cf5795f0d21c326640da47834e04eb9987af73772f864027aea09f7d3a5e79d39ac7e44f7e2a83ddc472d7ad4d6ac4cd2b235e660eef9115773b7394dcd03632821701533dda5be844f897845e7781985fb961279153f5000000901d10a151dd0b0aa3b5b8d6463174260fdcf462d9a53031d828c4a6e2268c05500373e6a19654b0196fad986d4a1a5fb508596b86081143487d11a8914c16c8a3be4b5ff912f227619cbcd5f0fa9bb3472d659391f8ab820070814fdf2008597dc2feb5a180ff856cd705506219e6ae8512684f4a8fbc073f5cd556bdc28b514a728ad6643d63d0b2a73132e333cda1c6000001bc00000090bf18211d1bf13578fd2bf01072f7331e7f1fac3e4082875ae7e7e7b3ff0b4b37164425b976bc4938a6cf59086ceaf55cfad4d17745bbd7667939b438ac95cbf03c6d7363567a153cd37df714ba7e304004128e90f1076177cf7021df6819fd1fa05e4fc477ef5448abbed7425d02d5cd2120ea74f76498b5771de72eaa6062c4739be7bdbcb945bf50f923295bb84110000000909e92a40e2d7c0803a9c1c2acd2fd309d5dc6a664ed8d8a19520fce1cb1c04a70e77b37e5ab8b86d510dc91d20c590f27e8695f14e3e6280fca591b91fad636e6e0017662a77908d614963b89692a5b2509a593a79f44e6195f385ecf367583615e5e57cb0e0a64e94eca0feb06ebfff40a570a8b8ada1ce1ec4ec1d41816ad5a0e0eb5f5ff60424a342b692e3e00003200000090a488ba549f733799ed5bb466cbaeee0cb5f92530d0fba69ed7d64857893c162834bff5636267fced644542d9ce29cd01c422a9bb136580b369a4b807323f3b3358438e5148fb094a70eecd217f515dd12a94a17a4220490b31e7de13113830cca9a36e7be60e304e53f94ea4a4345a7427cff8058fb4b484e0bc5f4c4593ff22c4329d33d5bf96d2bdf9a152dab4f2c1000001bc00000090b2df28904b5b72cfd178670ecc399d16dd3da01f4afe6d735a7ba5de51d5aa826355206ecde69e6dcbe87e4aff2629ecc23fe3c69166ea1171572fb172f2245e063b0e46dc59e49996cedd02283942ca192a166d30c3418197da6c907f2cf2bf423e066f0fd68c1018af6dfcea86c04e2217a1fb08251948cbdf4b26ad27a5a47fb634267f5f1d06715a41ad3031b31e0000009096c5ddba66f37c8e7761c5cf195c140c6edf6235facb9dd07674edd48b646119a11e05e3addaad9949704f7942d246391fd7743bcf17bcd5e6ef5afdbcc60b5ea13a3605d200be3922f68f84c879d56318a1306cdfa7aaa518661fe032ff2d043113e594bb512552705b20024f7b4f070071db291994809f527f91d79aa40b18046c265b12165cac3b5bde0214220683000000905bb6629675b1d01997f6f33a8bf669e30540b49d31e4895c3369cd810ce5645e5a3e585ddb29382ab9209dac3e68f954423c52cd148ed3969d7e7ab819063070a6dfa3c135a45a1d080f47c428bd69d50b6630d5d2bda9730c9fa5f32cf8c81c03b1be6b30b7de3669b050423c7e132925f6b0bbcb1d5bb0af2c29d8ae2574b196e6e8da740293747f5e20d6f51585fc000001bc000000900e9b1b8cf0d0175eaf2276c35dc87b99a330902503b3bf88a756b750f4eaea3609a401968cf175a77454836cbbc5525ca5ed14edb753b54524dce85926933d149322a31e37102aa8fc1ae44103757be91643d3161252446bf073978f1bdfe311bea78257d05fbba0b263c842474b9da812eded30907e614d95d53856099346a65bc21b56324f01dc9e3bcd98f6220f8b0000009039d7912fc0239dcf903b219c27cdf364c33cd37a30a94afbe18f2778cf2d0e3d892976206e2ebcc2e6d55673d978e65b76461e49ad281d58da534a83c2e3a4f99ffc1848da89a8d25f3fc43775ba84f00baecdc0fff6867148dcffbf9db34bbcd6c1365182d56429f775b70633023e761c2dab8f1069db54ee02ad670457b2d5363d0c7f1408f8b7241e9cd9637da5cb00000090bfcb048a04b754ed6499c538a5e7f5171a93009747e879c6107841670f8ba2effd3ee5a443701ab6ec7f7cca7f1b903e647b64c1d23283fc7ac21aa2e0248576e759e58a8092d866d9c6af7932761c6708b38158792e6eec7fe194f4867bbfaf9bce9e7b31736646bd6b75bfdf57caa21ed0cc1a5ed3cf23e49680957e6ccfe145bca1532019a9ba465af64f12b9b1c8000001bc000000902f2439e3ebb2b14781fad9616f31013916786861336cdf02d81ea1a2d0f82fed8e1a0352b7b5f76699e8a0429c874560b857915338d03c98eea3ce383e048a072b4b030fe128f64184d6b11747be25bb1822e95d9487ac8d32b34a772a4504b3e98dbcea2661ae9c4c7209647d10a4481aef78c9e5a2f06dba8b8f1fcd22868b3918ea74d2181d61798f10fc9391fe000000009038ca3a37a4f433486ca51033d317a37be014d1a960b33bb16b54c6418f2df1a55573ca9e052da45402f3b7bc1b1718073c581eaa6de90161f9de1359763046fa9eba5872f0559d3a40df31678b93605d102029a421b8e9c0cdf8b9aeb79a56694ef916396329000996a10af3551edb4a04887cea168a15ea8fcf8b9b3693d34f34744c6cda7ab63c2cf0f74f04a8660200000090d9f3ff5b9412956db9a6a98a8536aa08f13b2cfd675a0d1de26d311a31ee234d25daf3ac9332e20838e735225908efe42dd6391b8671380b73941fc6428e3ea61f24f9b56365ed89320e72c1a7c3dfeb05b0cace2b85c028619e40c413599155a9fd882caec77f4af38fb56e608ff88d02881fef1658f1a55f6dc1c0db724e6b3930ae928311c7da07db238923a7ab3d000001bc00000090e81f94ae53f3cefc91e9e1dd0daf188e8cd3c9ef1c6e78f9216ab5ed80c48b5546fc5e13048f64bbc159b0c621dcc73048f6dc215e09e00242fb5fc5c5adba821bfb38f7e48706be200ac8ed2e045cf608e7001683439e7575ebd3fbe2744886c97e980f3b76890c32221b8e15b4fe1204b5abb50c5c40526fc850e99deac16d0996bce31e412039eb4e5e41409c5eed000000902e07a04fe6a351dd0f4885901e4c964d58d4b90c041ca27768e0fb352ea7a92cef1ce4b7b78a4c3fd04c78df3741b9a393631b7f305b850d3b4684adede74540cc36ebf64be5be1a2b7aaf858a7abdad1cf71dd2625503f41b2aa6cd8bbb02ce8fc975f6073c56a7d5665d57dcf67f2612dfc622493b15fa2ae49735c9d77eed90b069ce10f26dc7a56be0e27b5dc72b00000090b63ec5dced5d374975f1268fb76ebe294fe413110af5861f3d874c4e2159d712b53d44d7bb594e5e06bb20805a0b83a718451784acf8fe7e2a488f77eb0e5fb232059daea041fbe8c260e772b1786a7120792b5d421cf88206fc781a212554ecb4dce9d3d0ce86ae6a0c3370242062cc0f71c72149897b6c3d023351104fc338f0730b8ed899ec4e9478495e50a79165000001bc000000902a45feef1f690573b1adab340aefcc3718aa5f5da6246496e3a27c0ec30cc19a4c296667a0bda271c960cee763d5c50a79cf2db8680f6fd6b153b557642f2561d92e1a983154177fc3dd576dfce6484c3060e2cff23d56b5400e981ab57bb10f086c8ac4c4b16be77f4a8df2b71e125e02949b090f32a9d2325cc0512c3a29fe917d6532287377c1c95c88ef0c992fac00000090a20f6fc346c15e7e890959858476a0f15f2b3fc318de61e12ba8c5c8aaebd6c1cf9702548b6b930b3a32d37ae19ba0274d11434aac08208618ccf457f457a8e986c5922cf5d9499167fb5bd2125387800f2f9a04f1d5310185d5cc420a9485852747a5c8966ef1fc2998a2363f6219812f0beb7e70c8b49f7fc10b88ddf8cd4e9ac9e6e0891b13e645116069560eef3500000090784818f1d8648c12d54a9c59fcd7be95532ab8af2845f6d3ffc9ad6784dfc7c34468905e2f2a58ff4979401d25309aa43ec338c3648e151cc091800ba72dd541e8e57566a59e0c44bb929591834b91202aea218ad2dde451ce9fc17969662765fae79213a63910b819cb298ae208a25301ddcce3170069482b8253e649daed00e6bf05c2dcb2b55b9410a51187a503ec000001bc0000009004690b61c90265eb3a91db5fbdfa7c7eee1f4b4f359b16e803f41e57a10ae17287feea5c17910a75d7408849bbf6480ced31bc122abfc20571586db97b1610ee5d0fcb287e6975b142cf38b0cef96d3c2e1abd49e8bb69f93f3b49930deb05635be1a971c3fcf56d072964531f803d540e97cd9e5ed3a4c6ac2699e8a0e898b67cf78733ca44d1be440818826562b8d90000009012624585c036d5a50bfeca21aa095b1a7912126044130f201e7a9a68af5ccbf48980797ebdbc0e25324ff6a4b30001836a9ac34087da23c0cf54d97ac2303ea36e4641a3085a017748a1b16a2c31ce8b23f4ea5eef22964dede68b25d97993af88af796df8f3ca9d08c237245bc386430114e431f45c18b7d6cd2679d4b0c39d4ea21a422f0d65698f826bfa12828d8300000090efd36a1245df2761f370ac183478511343d07cbf7c3e48c25bf0974f5bcca31957c2f9ba1ec709cb88d86ba8b73c5a7fb159e1fa87f200dfd7d177fe5fb644b230e9d16d2d9fe530b3195333abfca4241f8a1960a844bcc46abd9e916998086bb5b61dff2a49841f390b4124aec67ade1fcbd225e21183957ff1233fa7bc0ab65f5e6b923bae64a17d85d3780295900d00000e00000001bc00000090947684198f65397ba252f9dbc1f8af99c32aeb32284f3de49c547b0b3114f328502977ca818a2b4a264a487456ce29d0f1418a548e71ca58240a97ff5011de799d72cd0ec3a48f3a4ce6403399c37f330e55917691e8414f521d38f3ee63ba5c24e191e871b406a7a112ab11fd79623106d026049fc195d5f6d13db61db27ce7275f50c6db01e2f6e827950602a835760000009091249f549962d71734d4226ca3442ebd1be20ec7a8ebd8ac4127005879d6b5b692feca8335583a4ae0a6a9ca2ef890337f89de3b0d0d9cbabdea11713f3ee8f44843e8bf98a36c958158456ef9bec22314433d304114fccd775dd84f937283a904c9e34cbb00f1b045894ed2690a29f3094814b960bb88ccfd8fa201627dd9e6dbe1113b92f6ad611721075c318a94bb00000090d07c621e6271708621a319478d0795bef45f713b6de2c471196685c0594594a609db8d5db559a1649a8d1758fea1467283fb6c01daf08762858b48bf0615c1e116f73f8bfdee730c72c56af959018e2a02acb10d80458b041ed34e3022e2b3b398ca07a4650e3201f16b7a03e4ed316e2b8c100851e08a74e8a44bef8292271bb70a527e7493107c7f6137a1eace849d000001bc00000090cf7ad5c44a117719a906954ba9babc0edb51738770b4ee763b16786eaf24fb49faa32760f99342e1b5b5bf14985ce6fae0a7de2e3220f6f11fd89dd1191daeb109fe74b046ff913a6256e0368b26c15b0353414edeea5052ccc39ef500f69baee2a4d866ff0687d450a3dfebda4dd16a2488dad669abb84abcb8304e791a0123943c62be536dcd139543693e23b8f92900000090ca8eadddacf1b9634370e2f35e4041b50fdb7bc6509d633274e89c9f20e46cdc7839f39b7bdf1c86eaaad5adeaf2cf4fbce53e28622234e28b0a7c29d925009a5d95a3e552b90504d2cb2ce48599be7623d6957f71a06e48789c3405c17319c231e5d13059c74e2046cfcb01b195d15e15aa436d9b166a7ec1bdc4c5f80e3d9dc70580b20514c9630b65a71fa4c2b2c600000090ab0d42c3fce474d24597ee47c7f10a98c9f68bfebb211d2a352e84ab938d45bd69759f2a76690f029be1aa30730d0284941de3f796dccdfa1f0529c95e4b6679354dab63ab48ecc79a5e91b3d7d3f95d1e07799e9397ea5d2a6776fbeeaa4ff79c65c4b06810e20ecc2686de6c256bfb00531e2689364b7b81f7692432290d757e4caa95775d586da6d24d9f0fd460b1000001bc00000090d2a6f20ae66b3c42770388248911cc2b69569ec915e4ab4fe8a6c7e1d4aa0262bbe1367360a2c8d201e445d361f4311bfee4871f95b4ceeafac0bd20d229c523ebbe060cd13835e5904e0bb4cce865aa283dfe8dafa40181f02a5ca81541b4e170efb21a66ab761cd4943d42947657c927fe1d12ad7c2a5ddee85c8363d3edba175c87e2682bbdfffe993c9fcd2577eb00000090f14f756111656f5896f07909a24f208168a7175dfd7236ee3d50a11d6aaca5f4e02b0ea1348bd834db882a10dea0aa5bdcd78cad15d555f4f7ae29d79e188a9b0e82264b2018c2cdafa2787a29c4b12b2b7af03f94b35cd827d0745732ec211061a26c6b73eff0bc3e492c1910f4c4dc0295ab73daf1af831b407be133c243c12f7faeb13cc54c177cfee8e2ec1d9eaa00000090221009bdc1b35d2c1f8f98e9c88ed6272c09fe0a5050b71b11600da54e262c86892616e7117ae08df212206b1645442a179796d63c3babb16178a0c64a18daa1d09573cb0035bd68971b00de5d5570a000c90626fed9dfa6f56a30c8983abbc55f791cacc21a91eafd0d4d0f26553f8c253f58e1313862b32be1d830116757b4de42fc122e76367b8bca06b524d1a2d7000001bc000000909f812138b9e775dfd5969502abea67268af1cc21c9bbf14c24618f74e8bf66cbc3ffc22659bda2b6f286ebaf0ec4dcad2160910cf444b5ec4162d4e69a6fb8eec2331c41ad0b10177b2e8e4c2ac98a180a72bdca115a8f467ae53bc69b561f37f3415376076097b186e62c24e2977d630b40c1e975642f810d232937964ab2149babecd8c39b9faa9b946b14638a4918000000903fda1fa8f291baec2fba11067cdf4e363a1f0ae6d2e168fe8445b614ca3e8669ff1872d7d774e11fcac97f48cff4b199c047661b22af335c2027539859262c0feb865fea60aeb493c07bd72459caf3820e170c456d91f8fb70f1097807f76a1d3c3552dcea437dde4b4336d117de2fe6084425c996aecf3bece7742325e4ab116a23526edeb91451923b40769ce07b4700000090d49dfc5cecfbef724d97e87b5024a1057ff0b853835ee0931170970b6ef0afe3630fd198020f91a75de23bfe72621fcb1112e1e315d32cdee93656c96b0463240b988f392e210d8d1235dc76e652308420900759e115b20af866c93192f6bb025c35f9ce5f8e9d607a2918d70aa231b32c7211be4ecd9ebb31b223dba5eee9cffb2c14d002bf4e6c8cd2617c52f92209000001bc0000009052cd51b86e05a112185fcee59644c7868239beeadfecbcca4d334a1546904f4cfb3b16391cf17aa1fd543fca15681a8494500c1b341277b96bee5a43feddea9f5b5b968f46374dd616e74b96c20173410d3ffba84290c2230696ff06819e6cddd55a76a44a710c31ca5bd9e95a5f215314d88ec363fcce41e0556b5f5037cb9ba663626ddde3fba5ca49a18397d2861c00000090195a187ee83284094d52b6597b76a9de1950c68a4a20bc0e1a958b84f3dedd893db8d68af7abf948c04cc946fee7dfd3e98df98cd435c7c0616097c2ebd550f7c3e98a7341315f53468c3a4f7516ff8d23c160006fe19e7637c2258444e080e9c54753dfac170b7c991d734659748c4a09328f81b03ce897fbc6dd4bf283093f526a65e24cfcaf5532756a85e3f0980e0000009057f70fedc5778b142232a47726cd35c4623e7f440ee98e92d918491d17e1ef9ac8de9c6c9d2dfe5d0b38181b709172fae1e9970808ecf061d7a8dba520905d2f8dde99cfa9b6a527596aa783c7d21dd5282708cefb592cf2c17cae26eab29728101185f515f6033731b1e0c050b6b0cf0bfef40ce87ef4ee0412bee0503b16995cf7a5bb5c4100d6a502f80596c1f7ac000001bc00000090a87159ed5a28b9d2876ca81908a405c4d4ce69b04f5c585c787cca6e4e444c7389b1d8f9bee61c6cc5d40a65cb1c66235ef5bb36e274cd24b8b8be107759787935eeaebd7e4f7bf42e1d9e4d1b2cff8215e079b4c27c1bdff61b19ee1e7455df02e2b9d44e6d0113cab1018e8ffc2fd00079cf8c0af9a2d431f1ad14ad1d45a7dfef8080515f3506d0d7123fac6957a7000000903ede5c1517d46f450f68002c97d595f5a35fa49189a8346927926a4be396470ab70757159ac64fb5d215ce07384e3bd7af352c7d63b3bec10627f7072345d365bcd313cfe82b1f6b11088492bf9ff62d27b752571d6a5adbb01f290bb70a267ced42ac421070fea792f6963d2faa1f46112903aacd31f3c8239648fd9a308ab493ebcba7813ee3c1fd85b234bd293464000000904dba3f8d5253847e0410880b0e94de490bfd7b274fb8ff1a1d19da50ca4ac756885cee121f54bd05d4098b6139f0429bb44f8e9298125c7ec4936565ab5ee625503acd59ba4fb8384fecb1faa487ff332444b78ee8b1770ca6e7d8d4a5033c5a841e0bd137dfe66fea79921d8be63d3c17046aa6b02de3ea263e784a01331ab59390396006610ef6249ca469b3b256e5000001bc00000090a318178fd7c767175f9a386439bd1753d04b8cd05fc9ee599f2b3b8b6f4d49509e588d27ae0143272f13f60649625c2cf65e7c60b707f155a1f2d7adeb4523541aceaeda83869188a240ae6f96626bba134792fc15db82bd296c98781fa4187cc2235b9a81683c51719cc7089a62e249191486dffd24778d0d42b360f53320d1396a4535a21c67dabfb7ebab6829429600000090ceebb89ab853d54b103f12d65f145dca0b50e079974b3bffda72918d65ffbf2b6f56773816504aac7d18f645c7a810c2ab27755209342bd1a3d3c7bdb4a0a9f3bef70768fbfe0048f19599382100791a2d3ead79c839dca4469a8e1ab7efad9b49c9c921d5d06ec688c38290cfaf41212dfd1fa3f876165e9e2e4501fea39515129b1920d61deaff829d5c8fd632e40800000090dc880c0a8b4345e819c34e4d4cee8f9b655bbe54ab1fc7086dd2dcdbb92c0abe931df0b7259782b8ea3db0cfffa341a43fef48d99532e19947e67d7a99d1964f7dca4b077387ef4dda2556ecd948f5da2b420825296ac7e697f327e031c600826ef2085458e49c20e39d4abc647f5a642ccfcec29b3e8aeda89451df3bee503b9a4185b54516d68b8c393102242e7d82000001bc000000906c7c882a148444a9b4d95ccd067d18b3b7f3976ee606456437dd3503fcfd8e65a3a0b7149716d3178ebb574a3579a56337ae43b55cd8f89e7c1d1cfc076e28fe3628f2f91ccf6092de236aa93432029e00321c0b18fd00222b7218c0c6974321b5dfb7b9a37be815e77d0ea4559a2f60178cdb0a2cae0e4c6ad3b7eba520b09f74cfbc559826e3499f49918e6da231f90000009081ffb2cb3bbdcda534d9c100bf64d41c630244fb248f255da994c977ea3e7a2591398362d4f8a70860460d5d65ba17aa0e312e47a22f6d6e0e96667ba1ab2b02b898bcea8a5f991e25878b70392514950e237cd9ef6b504942ba6ee37e97de35b072e92afc0071f3362e4f6d7667330c1060da0b1b6d98e5c0873c1a0b8725d85017415cd2ffe4b018d77ee46eaad29300000090fde71d5101f8606e5bd8be1402cae1c9f6fb500d1f6eda8144878cb10f44c93171bb2e96ded3a1d1a6320349a6d5ca84677773742dc57459a772dbabbef35a96eab54f7ed1b4353bfb02ca53c68c1e3d144c6a1cf3e56a76c46213c589008be1dea90938d6e2e20f47f4cfc852ca294d0fea1bc5c52eba75821c70d98a6f6dab13de0624bff4f75974ec7d7f4860e3b100000e00000001bc00000090d9f207c2e4ab524fd2e7b51dca4f4fb421bbbdaa372793c766077aa8545d83bbb6fd42dc13cb1faa91900c92b683bb527414a8ee06ca3bab0ce9f935885198a88bc1ab065be3c41dc936685c6cc8fd6f102711ae2888d2391ceb7391d2773f1f22642b3b8bba7b356734ee0cd13a3d5a095bed4c7a18b005c895b25092a1281879a77e5876af1a56965934f1b01ea01100000090f6e66e9ab940c2d660abd12bf1ac581e825989598ec0617bad0c61fb54fd1a23546d7eb7e47c65389a32b86a7636532255b7567d19551b31451ab28c53665e122b88fbcc80ec0b06f26508ae1bbb82082b2690761b9151ded3f00c3534d4966bb79bd49c193757793604d75d837b3393023b9ad219829bff8798bd903a86bac85d4b6ffe1a4a7e68997248a4121df0ca00000090d4b4c16da25ec69b67ad5075f5f4caad48d49d2fe1dc9588f5809e4266176873d373ff68d6aafaa419693dc8a5f8347f25191b6b0e1aea68caed8331ed5f20d4cb46e7f35f714c7d8750ba404abd768e03f3f2394ed30368b968112e6ef4de0f98d860637b91067f9ea3a1ba95ae459b126db09c405009c60e1ef968e4d359d801d672b8450bcc13e5e58130412995cb000001bc00000090996af5176d961e74e0317c4d426c39f03f1155e8a4ea71df264f7e2765cff15853370c2d324c5cda0ed4fec33210036ef8c6afc30d98bc2fd62a4b42c20babccf769231bd8014508a1417d05bb1110fa21e542a26c0c88d844b9dd00f65989f74c02230087c7941dfd80e33aeb099d522b144046133c21ae3abd46b750220083a524cc0b83791c496beea3433564241700000090bc0474d57f12eb0063ef2c63b1d9e2c29b1927305b109cdda2e344633db5ac45d6642a9f9cb07bd4ea10c7864b9063e886cfda45f4951a8716bdc3d9287d3e524ea82281d2e1463a473d3bbc9a22810617003f5fc24cd8c7b3fb385dccae36562c8495e1daee1241ba6795e6ac98658d23c5fc5aadb784c29bf11e6e3d16801ec2f73bdc6c3e502de4fd1d51243a03990000009013675fab13dacd1fd805c4666d09775c253a761a9279d9d7831289bd7ffefd5ff6f1d6717efe15829aa86cf17451755f48ae5f68bc5f04800d65348993d20e2af9a173b4d67836f70b8f99e9072669b608373b2fd442a610ed78abe40f31b2e835984fe9bc1229293f202f0571a8d9831d43f087d6bfab4471697a8fd1a7df7dfd7beff70b02d5eb70f6f447fc5f0a49000001bc000000903956dcadee164f892e2ce17f5c3350cae9856d708aa761bc58732afab746b49f220021fc0c58a0a4ba9e8d9969b084b9082bb1c8fe2e65fd36620145e208cdbe7a8e1ef4409c40a810934f8508744eef2f838d08c309b3f07a8af4401388000b6e69ea45b326abb2573202de67e5cf4c064e4b9ca1a8514e0dffc98b69c493a195b918f70f79461f692eb8831a6dfb900000009070d9aefb3da2dfe00a7d2af651e2acb69df180cf66eed166bed5d1faf3e3b656517e22142737d2ac36e9ab812f04df082873328d44b77390f183f326f0cc8d2b3b15c6e4f2c29ecff7ca4a43b155e48828e284e51f6521becfa95f55252575b19111b30ab145fb1c7a6502bc59e829c706782348094f0c0c7b163839133d319f784e2d3303aeaed7ddd331faf711f951000000909743d75d6ec72d4297dd828d0f52dfe07f0091facbce0228271033dde57511a839a22ae30cd7c4f6609a2de0e871a581b2e528b0a90db8ff871af2475b8985d3a04afd894c356187f386219610b7fb180670a3a20f5b04af6c5a765462a6844cbbf7d0c72eb5da66321f3311fa95d99d045f2bbed604cf948545266c1f296b4bddfa1d487c780c58d8e71953e645cfc9000001bc000000901eea6f04d80babe64b4795ad61a35c08d32f67378d2380b7bfa04f46d06e6208c1f28d2303ea2c4e8171f3bc2d2c1a9910508baddf162dd9af42c8f7604f886fb7317b025f273ad78773b639af1958180989fefa2599b70c68a028ef4e31ea067b38444a98cc276aa404dc52fffb57712670d1f19e7b7a0238caf85ece99752ef1b36898775eec4bdab128fa10181266000000904e0b81d40cfe9d1b4c3315dc46394adb1a409d447202e106f372d091d481425800026683cc05cd01a4ec5152c44965954bb81cb66463fc61018c549226fcef6d5ba402fa203aa353a965ff9e2feadb7125b0a6d0f5f17552ba90bae6be27efa386db8d807bb07eb388bd1a981f4c9f392f030f279d5e557c7d6051ac0bbfe1868e91541eac030abdc009967c3a6724050000009013041cded588c50538a529d282842e54ae057463f35f2b4844e5dc77761c1920ca5a41ba99b836a664f5214e7fbb4b9f4f06a794dd726f133edffd80623de4077acfa0887865d9cc6d89a1e79bd22e500b4b39c12bd5127dbe36d7153da668274613a31e8ab0683947fc67dffd8e720002e46517bac2a598f2712fb8f529bf6eea93c4772660bef673845e7e756339ce000001bc000000907d2b78935e99681c27d68d2d196425afc040eae419fb3efff2498070d1376a24708f657d887e88e493243bc1012016866572433d3525ab42ed3c69d51336bc1b62ba508a0fabeead6a0fdcd6615d1b011aeb54bf48d725c6c938abc9340863821f656fed760468c8b24b87ce84f908211507b8b4f819af0e73a81d9e3f8ab9ef52394fb3f2a84ecb50004356347ea40f0000009040c20a9d2ae8cc24816017c41a22d9da9c2135d2c3a5b71c82383a8d7f61ba080a6d666d12d5cfe8032a6acd35835a1f03bada40df38cb0419ae80bf2ee0c9efa4b02863f10e37e9c441a359d29dc3130297260327f43b962afb5b6406dd3456b260a5b1b58ee80b9381b17050b63e042a86d67555af1bb334a8d2a6f825a17039e93e8d620afabd5ce9e0aa6412da1d00000090063df44adda8384565dfa07941d978435cf1ad2072ec9b9d79fe5b39a947b7ad68ea617daf9471dd0d1d225d7a544b69c9b38cb894d2a6976ce42bedcc8d3c82c3d177922139ee8103dd4113cfc40018043ee6a9b3d18e56a679f4070799a3cd94fc90063be7efbd85f7fa76e1b5bca92125f9f881b6626b43cdf2bd607a43ad57e83149979332407a32c9bf27f81cfe000001bc00000090f89605945dde7a518c2aab34b78f0831a346c0ddc0bb9734b4437b2ec319093f3bb754fbdce71e62b9f0cdfaa5e1589dee6ff2e9e124f8b4bdd39765dd4a1a4480ea4a792f4665c858c5d9624ded3ccb25eccf8fb852d32a08b9e1e5050bfca43e25bdb2129b1047df887b35ff08d64b165fc2ecf4c27d7825ea8df02f0bf9283ba66366a61de12245bc49116aef6b9600000090068f8311a118ca829a61ce3b443cd79567b12c93cb950c9222f039b112242dc3410f9cddbb555faa0ba3ec6f534690b824a5af190ffbe772162152a7cef290bc6e198ef04d40d6fc6962f3bbe5ff8cfd1bd6447d7ac68ebaadff48ce3296b68fb5c0ace2b42e8649d900ef4bdab307a30b00850ecde2e9ca4e903e32adf86c723393f658e5f45f5dc4d5f703720abd5e000000900d493c43f1f52ab642a486391dc8c7fe4d182e21519865e5cdbd0923bbfba771cb7e271e516167f0918e279b860073fa0c1eb283767d4e159591db2f23bf49d67f93534adac491be319ba9d480eabf0107e9d63c30be1c587c2419b4f3a1f941660b0893528246ba701a6a657daa4837272aa3f90a36648b1c756f19beb3e681b75310fb5e5d8abaa5739dc87d8b8a13000001bc0000009001ffb46e21b01f52ebdbdafc158f4361ef390c0da5615e39dbd15ced8be78d182733e22100b6b14d244a05a332645c7a53f67c814bfc1d8bb246e4f3030ea00d282590fd36a5e104bf2095907cb84cf2157eecc218512df1cabfef1d42218ef2f9ebdcf2ffb79029d050bbcc0103a6b607d7407b4b1902d34e0e53113b4d0c6d360b9231a1f3676ae6ecf09d2c2362e50000009024e6af36bbd2e462b9555cf380fc687a902fcb6d9ff57ee70f3b588132193cf8632b0b6c74b83d14528ebc550c2cd35b19e6ce58bf9993a499fff20d5c7f74e6f340eac36d50d100fb2b9218ba5627b72fb1579edeae78cf2f7c216dbd4358c08cd1a0a295e971c35d798e12c194a05a0f88e844ec1bc1b9452396b91cee2df848bcae4e0b36fbe51725c7b1ebd386e800000090476b0c2836ba8ad84b96a276a398824d54c077b7fbb306013b4f295eb903e467caf963c475ced241d1c32da91d0c0d583896d5e09f46be5959b84deb56a40271e19792b469a402559b816e3ff005dc8b1b57e5db0fb7828f0b17fa47ca36bf2232ec8bece5d8793c7fb0f4e13afc66ad2eded52dece2313bc725d4645105380e4af3309ecd66fef12a76bf674553190d000001bc00000090019a48c420d89ee53949b8e920fb200e169e70536b51adb238dc6f0e2f855073c070690a87908f41d85bf5f2967759fd4fd6a047788274fb75d2dc4484d207ecd19f30819ad59a851be85e5f48cdfa21071f7e89ec63f62dd9e814a8e75b069979e4a8c8f28c26a8e20b95c2008a8c482a565dc01359dfa71490371251c73efe5f2f99c088daaa10066222a71c4d42ef00000090a88a455036b68ab135640510b8e39395977e1ce20588bb0cc84037673b254e35e4792c9c8610337a9486878c6de8bb3528b218d34ea04ab333528e98dcf7f9360f50a1ce0ed54f9f86ade5f2037d7ee12d996dba01634e24558444b31a5ac15c6ea414016b37eb469c40322bb1c7334a087821b940a9de22ffb729f513bc66c20220ea52d8c0be1f5be1c08008dfe7e6000000904308c6b8eb3cc92e54434416aa52413594869ed558f1e02efca0e0ec84a48f04985e3e1d92b88252a680da4e857e4328be9350d3c874c451f5d1e5cf181f9f31bcb1f81656b9591cb07d4f3dbb0d22ea095066a9f9d506cc030ea7cf13c43c3d615d6abbef1708501532e4ee54d3e6d01ef61a694f3c83eb9701ada874b1b43bab8647d05284e030acf7dda064d5c14a000033a000000ce4000001280000009058a11dbbaa33dc29ada68385fb562e19c0248be7a5018a1b7913fe9301989e23e6d3d6159da6a7cfd14d379230c553f4a5fcbacafbc829ac0476e63aed34a81e3d5df51d2a443ce47f18002d149136690c5c1d7b2e5ba79717fc2c3e88f11397d1b5204ee11a5ae3ac773539e81f11a80a57e67bdf5c61472bfdd0d19f46e6a8d5b4bd09fd82938be8d3c67e5f8419b90000009061c505cc43b343b64c6ae23d2d3a7f178f86fa4de2616658fd7444b7ad6d36ca7529cada529342f81ca222781671e52f6da1177d40ad92eb10c1e151e2e70b0942113e8f9f1d80050e9f5968e7098f2d26c8bc433ce063dd5fe37502aaae904a361878356c3dba2440ec803d7efe09d72b3030657aa269d9b0a2fd32f98515cea47fb936be2dcfb05330fd28c27eabef0000012800000090aab3fd20f1c2b74c0a98e44ec5b6d5871a39d7bde3be7c9e305a1b78b5b69e34e96ad2e54bea7bb7b4f1d1fd330b98f057e3e051bac002b6e049d665b7ac853e44b6e85d3c47edeb7ab8e0694b414d572bd4f6798af4632bca1763303a0adbdcb67e80025861638b989bf69b3cdba19704d8b2640c678e6d77f322609349d859e1d079f9592f82d7366bfc8fa1e3d09d0000009051172e8e627c51843f09fbeb88d348b86f71074cb76bae310e8ae139e94693ec0b768827676738a93145102913069cb19fce5739f39cc708f054297a4a11e392f08278baee64ccc7e7ff0ee2767ab3e9010fd066e5e2f91cacb7242a93e0d0cd216f47e0aa346caadbc266d5f5a3e1f909778820fa4fcdd4afe02c26fc232b1b65bc33e8b6ba41012be34e65dc9bc1c50000012800000090dd000b6fc17ef00318e1d655346368f29e0f3f017da41b43666f6e3802396ea1258a57f78f0fd4dea34b23950c0b5330b80109242d9202f0c9ac050fd8a8b481e8edbf4a450dbfd9676cda4323eb146f0a5ac92f52bf8bcc5a0d6f70ec69af45c4fdca41d5591e751f6576c5dd6769930b9b31c156cb0136cc17ad3bf71cb45f1e0c4fcf2deb699303c1b63f330efdc200000090a1c653fc27ccdab5f3a45dfd0b36f5e6015f6c33d709d1bdbf443e656bbd8d359f90d6631eb6ce489d6c25cd8696259add18e66e255c6af271fb4a4eef70a7bd0f1a2ba52dd0c8a818abb615ba1ad868047a84dc3537a251faf4435c25cffe516de034cc5f8300654ddbcf2fb5c688991e988f9a2dda3167b3af648a94690998d49d3f616c337cbc64b5efd9615b44fb000001280000009015839b2123bdc678bad7544bba6605575db0b4f73bd769765ab09ba984346acdbdd66e1e99faa7f104cf9913257398a18bd539f603331e3e4dc10496588a2754e30c56a9baa525429e9d171f2477dbfd08e003a672a180bc75a44bcc92e41bfd9f0165769d969c641ad670cf0b92959708f4365b90cf35ef1039e27a6df2e8c40965e77393d71c5b98c3c54f4cf7c109000000900683e98ef9cd8964ec56a6ed2682b8e94a85f0304cce4072ed7a00a6983c056039ce8f68de1f51e7daf63948cc4b633798ea0cacf136f0b2f56beac7938e3b2dd58c98caa99d99f7f5252b50209aa5e806bb3faede475cf356767c3dfea7fd3c931067b6a0232e864d194371d9582c7009127ac2a0db5a8a0e66ad47a0cdd8006623f63740877f3481139ba407f47c200000012800000090c7d794b31669d4c78c5d77312e2785573675e7b6bab6a54853d89a9d1e08af640c405a361288910a105df8f8c8a8a4afc1cb34237a43c761f05d63af042d9cedac42ce82d683ace0b573e5088f67948a03082cd6b4a4ba24469e8a8932db27390f3c34691288a561e305240a1d71db922bce51b4cb6b3e574317c31c0d465c10a4236a2de41776bf2ca2c28e8c5e4ce7000000906083258d6acc362cb3461027e3300318c10bbf85acc9f3488e8209376f9d0d65c6f07e4a65d1850b76e3f9326d6a87b9ca8902deedf3a66646778d7dd8b0a67ca55aaa1f0ffe24a4f54c415ff1ec9ce62a7c4ff1514a7ea00bf463ec7d54ec35227c15dc583badb708ed54fe42e2155202b3534c0679ee1e923658d3f7995f4a17feac263b60690bcc5d2a2d78f8b1500000012800000090814726dd7bb5c4b5c44f1217c622441ea0ea38db88ef24d7b031c4b207ca5bbb41d1520c63e4f2c34a6f317a32c5ff1585c3b5454fbafb074b13583c90e3f864e668acfdd4fb66df11d6a71e940d41861e5626cd5f7ab0feec7e6cb4887cbc40043efb49b3e15ebd7d5a7a612960e6bb0f01c6e536c9148595d9a52d0d5ec59f2d17920d31d98808e0c1d4bfb7d8cded000000904e81077dd43d002a7e940609558b0e6f63f491162b0612d799c48dad8139f3f06e596dbe2211ba8d3623348a5288fd719e87e37261a8a4c46ccb50483e7fafedcb6f823fff16850e6689488975b49ea91a7742d6c3966ad8956755114b54dbcb8d1cc01534c20611b2b1606ac0892e252050a63ce91a7ab7f6da691306f7599819a877c8a5dcd214127bfba43750ca4d000001280000009043d8e87f88881efbdf9fe3d6d981a79321c69201d1a001f9227724d2385f94402fc30f40d6bb5f5abaccf737e096bec2aa8d808a991c3457529968e6c2d686a2314a187ceb581cc75b57b53e66c8c6843040c55f61701fada588be2f69340cf3443772c2b81327d61849e4f59830898f2ee53f7c840277a979de5db5df84ae770836b68606eeb89114c3b88ff56922ba000000906f8ea16cc4c640c6b5b86f7c2754cefd623cd7789bcbad86951053e0b2bc355a4a79ac7ea269aefc8044a72022a3904be1a842feee01570f0a0be83ac9b81f04a7471051b7a20a197ad893e3f5eec0cc2adca5d6f09e10809238c3de4363c2af7c8c0f54b30f085d04626af86ccaf2bc2d751f44645e44cacdf9eb4305354aadedd930f69a6557d6a2a60d347e37f1b20000012800000090b848f0e992cff482ca897f00e436b6bccc99e4c7ed3e0875c737ce9aaf7bcd96699ecc648ec9fcd724fea3de7943e5653a34cadef91645ee312e75a116d742a1d85de2d7738759acdba78c58650a3b1c094d522339cbc97d4d01620f8c9b5c8e6650072657643becd21e6232ccc23ac617b0ebcdce3425019be128107fa1ba7ce245c0c2f8507f8394c36d365044b6a8000000903f57984eecc6c4bb21f3c97e7d6398215743f197c2c0e5a79fd044f349a0f955a18b7274ba74625c7b5472a02c2c1f0f64d5aeb1b5fed2f64db05f04c0b35fc228160ea7f1d19b7a00365d5af17c2c270287411d24dbe078e4b21dc38be0cb9a8f6465ea8e5b200bbb3bdfa71bce73981d05895cf5b95c3f932df37d8edb80e4c69a49def556bc977f968ec3eae505ee0000012800000090550d964357f7687a3b6d9126f765b4ea42887294396a2741fd0c759ce74376c33d54f5e4f221f0bd939d3281edabe62df3afd9fd8b4ecff170126b26c35a505b4f5915e0bdc91a138dcece72d6667afc2250a85061d63741d069a5f3f91b5608a2385b1e8c6248761b83c5bb65e4229e000e324222e3e295e8305f19bb9d462bcb3a216c8c61de6110f0b1460abcf68500000090d49a1c992f5162de4a3ee22df00939240ee88891919c65994bec0c949de8142c24269151e4ff4eef30b0a287c8a3f5a74e4d7abb215f442c2b21bc223b37830ba243b155663e5b15a39cff7dd3bd025017e80b3fac8e23f64cf2fa43a33a8bdeaed4680c346d79bd2ff1e57df284a09d049003c94c6d25743ed0d5c4fd89a0052f71db7d4d78232f2b8cb92e3234900b00000128000000905be3d7ffc8c42048601533ac19ac6c8efc11c857eac4f58b4b87dce507507e317c4bb5c2c3f1220f8922ac42ebfc321ed7dc23980abffb3c8389aa43e97525b4f559fa4e125120b8cb7679965ecea3dd113303b002d5cb07ec622e8fa17e4fa66f9f8e6b18c24189913715c30e17f06115246c45f34962c0c71310bbbb90f10b08e061746dc165cb8ab5536a0e9b4b6100000090ea8bb348900aaab0c7f4b6cb5afc2b2e6564e55ec4a12465de7aaf174d19f9daadefc949bb6a61634f0c14c804255861e505c8592e96a3790a016081ce3f92c434ad76883f68a1198eb83f93beda89741e85a95cac80c9db098828b23727635780285d94da0caf2e27f37edd1db7fda00f82b9577108c38230e8ce249e51f6898f5324f8ae3a708a464a68658eed3fea0000012800000090d69d3884d9fa8db5d9a0aafdd14096fa5f5e07f0fc2f471eb7ceb7e63c843450b314280aa0b6f3f1bb394aa5253ff8f9e61dd0604ddc6dbccbb9b232b83ea6a921c60ee49a5461d9dbe51efacd0437fd1b6f66bc78f6c35e513bd1dc3250759f138ff632e86034ebe805b5e40cf97afd208ebf9aaa5b079ad436957ff87faf48effd6f806ad31992fd597607e549f95400000090077660556e07674cac5a4eef3bba09ac0121d6aa597c2bfaee86d5c1939f02e9a08ae03d6b3833d03246d9a60965316c6b7350c5025ac2ddde4b5f8a3909894868fceb23008fc3c6bb9607e22e3ccd93137f2d16027be26d718852a0fe5da7875d0aa4e1461c25b29167ba4fa8cdd8fc29fab5f6e55c0e67321b9ca5fa5cab0c4f915046a3a29c1b8d3d943a2a54493000000ce400000128000000901f717e16576c5c10bd8a10c564904c84b046fdca1cb8c83da1be094a9434f747ab51918108f291b53d01c7e48c6c50eda1057710ffaa765a18dfa1d3823575f1c4d21238d44a11f6e112394c7d3e8cfe139c215a641c10ac6ab6c4fef72b5905e62c334e733cfea1d33d2de4fdb79c110b9306b1497909d2f89047de58cf661f86bff436b80ce3e9036cb5593358587c00000090c61c80377b209c6da5a831b2c525a59a14a13cf6cd6e50341fb5f2c21a70da9162847b9f6502d7a51d345ce3098d47f6462273f834ed8a3d19996e1b0c436185e5b4815e43a784eae77bd52cc413fa5d0725d5ca61384ae1abb0462d86e1d71f4f929ac8985c83ca42b0c7350b569d70081e486464fb1503638a53bece15315d1e4132d647ea6cf7f140fb0a2c02dd340000012800000090c860d8efce5b43084983049738c12c4781991242f0e564fbb21d010bc036fd088ea2ba31b627d30279553c74c1c93e84e9abe6fa76c126353bc608ff2b66d76cd376891b6813191ad758ce5f1d5d706d1bc21253d7bc9037b6aba329c82182d5c2046bb20f69c483dd1425ab7386ffd72b1ca2d72a4d8ff1b1e1357d5a00f62023bf7dac6782d3563e5005bd375484280000009020766effa4d23acb703176dc21bd6d2bbda2418176cdf4d14998c6fa6085fbe58a4f7663892dc8863a45cd364ff06413185b383ccc8d4b8e5ab4e0186cc125e420de3fba775a2e7ce19a8fc581949522046c5371b418f9c60180329e473d4f1bebea901360501c27b58c010bfb47fc5a04e855250450a084c00e39b848fce60eb149869d44f5139c86ec19643e503f7f000001280000009068003d2e207fe1f4f0e2903c7f12a889cd97360cea337b73dcefdb3de788919e6975714dfaae6b68977271313cca2bcbecc7b036cf479b846fd7e3a528b8b90aac856589fbead14d91f63b8754c27df11d33331e2930c3a7cbc1bb32e6a349b853fd9d484c27f9d8dd02e390bb4ce2a20bcbabd186e62e3737fe3c9a51011a3a5920b47ed0fa7a563dffffb65dffd77000000090f609f0c7359598df6953914fe57a31e020154b26b4aa28204896e3528a95120740b072bee852be432f772d671bf9f92515192aee0dfc5a5856321c21233c8d7002a03833146cba22d0a4190a08d1a47208fb071c276dafa999649d42b307cf5d86771e8490e452bbefb1baefb573d3762c742280580d7376e9f4ea1d1486bd0c541e3fd46c0b1ee0d09888557bf6d6b00000012800000090e5136e1c5018bdeaebc8a84386131425b551ed9376acde8199f5c48ecc2cef6852185999d2485763ac1b1f53967a90c700bb9aee823b4c656b595edfffbbe1d6d353b587f3054b59a0c3dd5372eb3e370acda847a9d561e15226a15dc9d0f9a5255426e4228b79daf88d5e0e2548760623073a3a3e5177ae05f1197981f452c6190759a1bb1418adf90b13003b95b8210000009031fdb894dad83f81f86c6a179c564c34e8ecfd8b22afc9514c129b9dd58e0c0a9d758063fe7225cdf04075a8323cf1551ab0c2d5304703b053e150e5924eb9679f1279b3b5144a6d9273cd879023ca6806442973f54405ed8cbcf285c3978b5e6510d3cc3c3a08efe916086c23be14c116e0a7a779e86bb9b5f4669e3167ba095bc41b7402ba61931555be1506a892b600000128000000900ef862406629a92c15574c89727bbb7ac1cf45d987b905923dd49a9523cda2f6af918410c959402239a323d54ad02c049dc3ebbcaf8b75a7a6f56946a5bdb39c2762855a72a91df2f9ff850549940cf81333d8e138c20de0899285dc5051a3935384a2190ba786082974296f78b662c114b4f6915fd5a5617de5f05f922bfeb56ba57eedf2d97ec6241f0289dae7df0c0000009090484c79b1e0b61a92ec61ce4ef2c51f480b28b7e2aa87d1b2c1391fd8bd4a4b8aa64f562dc6d35882348fb1e10d76fee3cbf2b4cb1c4480f95a617e7b6347223aea6b44eb532a69e880d288eab281c914debf1a6d0dca7fc5393bae0e930d5425ec17d97b030c3d67fdb23f68ed602f15e95682c5a1eb2088dc7e82a8ddbb589175af124909e9a2d0d4b0769b9c881d0000012800000090d3284c9c659d8b0707267e8b10bd9789f2556c96260eb05798809991c94ab291e727e73ca8f4477b830202315f99233b99c68951eeeaa94899c60f9c6dac4b3f52f436d80945839b3ef755216a37b7aa156c509162c1f88541f78e4e56805ef8a29d564423b719ae3a0a50307ae7f1cb2aef790844732fd1936c27b0f541114364b54dcb737faa15a175652950032c5a0000009017f42abe31639bdc24dc7d9f212ca97c6443784871925f35b8f4a6fa43d4989898fd33ba5275c61e4a2d5bc55cdc335f96e4070bcb8ee5b4107b72886a3932ea89ee9e94d556566e0b0af98388ebfb380e029ebf47e9a00680b51363b3e3a864e1674fcab446cf3d1d01b628f9546b890618779bcdf57db5b499e46b6c00ef69ea56efdebf94e34d594407387111556f0000012800000090b132e62183ded1c670bc4bd895899cd38f06bad9b8bdd4cfd672e20c12c8afc5839ac380c6fb6e68fd0dfdf19cde8d342ca01b34d947b83c652ad8c69a70786fa828c9e9cf21006d30c0de6c72ac6dda0eaf6f4f39fdf3029652ed4eeefb4d8ce2bdb445bef9a446d0c39b88a124bcaa2f03b5fbbee509abacf7cb4b7422575e3682ca5634e496432abd48f5d19c512c000000907c87d96d0d9394843d242f5cc6c163c061fda2dae63e3f659ec53a6216fcfc27767fc426053b1267a6faf53ca8d95cc2efa72eed3f33e215cd499a5c2e75fd5e6931349ae1fc12300ce47e8cf1ab8e9a0629c6a0147758df2b1205878553869afa05c2236f039d0b8a97c0010bfb8827210fd1d69d077d5766a4f7744d48c05a6c70ea1cb5bc73df0701fb54f5e06dd30000012800000090e47e5d22930f7723ca2ed676f15853713f5305623ff0b379bdb579995e997c8cb75cc6d38b20265238ae77728f50ae219e3ea94e91d61cc8ce975cb2401ccf2651ae0d90b7469dc7cd4728befd0a6e860c629dc959061804615987f4fc99c2cd054f02fdb523bb61d90b20d4d551b9561f1ffaa28c3670545c1cb04b86d800066127c64abad06333b7f2910c6150988700000090bcee3f930412919544bcb8eea41b6d5cbc811e0f859575723836ab710f3dfa7dc2336b8c587f63cf549c7199e1274e83e4342bb679a4a310c2d8eee33807f49d1e1d9b71686e031dab782ed97714d981149d1abeb4cb01b550ddf6230d282aa12dde65a87a4db8c851158d88c961418411ed1479306291de7392a48fb0993e96564c9279aedfac6d7b0cfa4ae8c8d0c90000012800000090cc95253f57e1e449d799d9ae88f705d44fe26e4b5bebd668c618424ba0ea1768d44dc1a7b3cd7990561e78e69f056b8e19264ea97f446a7d4fb009616a5b255ecd6d191fda872fd8b9f674f442d890c92448f12b249e081cebdde579134dc7a48874aa64dffed480906145a7c1113cf3189daa1781874bee162ec5f16ee312bf976cab53d24c04016f4dac5b4480f9bc000000904776d02d6cee37a71ec4453e2952e311d9bf36f0348edd0d5b4a3730400525aee6ee5e68029348e088e7c175ecd3bbd673b6a812a7b696c6971d62beb98077b63a32e244fe8c3751bcb8d659c935b75229c50e1735b182fde7ebcc6c9fe25471c50f2f3f95842a6d37dda83bf61c766112c570fe6cc0680ad71d79bd43e90d22e9b1619077c717fb591a9754692996100000012800000090a26e57830438298dd3838384705cf18b35e3a15039693890c52c431e51448366de6cf815d9d04165e37eb33cdfc4273ef58c12398cdd2ce7b9908b2658413862300518f285306a63ab1e9d27442106b320cccdec81c096e7810ee198bc79085f9e92167998213d3217735b229da0034b15d50665a1f0f1928674ccaa57aad3e56aacfd7bbc6e8903f8d2fc56e58df8580000009091aaf6da56e346e06bc185ae1b4707ab118e17c44e837dc7898902e3513b75e47f08a4bbff9c4946fcdf9d9695958740f705c0dcf714dc386d694052e491009611ba3654c18c650bde72c4b0e9588aaa1ee848824c4047be7d47f194fb3ee26e9effc349936f6de348155eabf208f10822bab739e4ed52d9ecf749c133a17cf892b6ea460ab9d1c2d141353553ca7b420000012800000090542778661ad1536265596e9b9acb62c924daa7d39bc9708f161cc30a193d1c26e48de678cd62b96a7adba0eaff03892c3c769a5d3afbe98504326b0218355bce4d8097f73a443c30f674ea9d16b96e7826908b96d258a3db1ca1d7d3e1014acd9233deae60afe89e7d34ccc4be8a23ff1b6cadf34bd65a361fc9ea082dd9ee0fd3fc3295d7250cd31260362ef41b9bea00000090b71c893fc2dfd27bb72055bf2b5da1f092a8b28c7cef6d5c0daa9a535e038fcc9ec51b6c6e7f4b5aa65a8813d75fc186d99b6d2714cec0fd39b4dfe8d9063d314b39950a7fadcd993df3cf226955274216a0aa1a50d95862ace4750bacfdcf95d8a1b11fe38bcce3d27a8419643e3ffa278f5c4ae4597fe9ed6214c05b6559913b06b19737467b977d9c04e6354fde9d00000ce40000012800000090df814d37251e81d9529dbb210309f4a0b4fe9917300bc980db42af0eebd1b708f3911ce74a3b2cd0fcf258894d04382c48d47268ce668a558f54459347c0a0c1bf0359727d927f928010952c0d611cca1cdd23b76143e5305a250be2f3f54929a3a18759ff59046597a6c9d877076fe10aeb57b23c9c454b9bc26ad78796618fb619bc361f38aefc899eea4a187cce6e00000090a8a060ef4b5f61dd86ebc67dec1726c3096d06d6879a2474e055de985cdb00ed0c0af11506162f21d39199bcd886bc17a23df10142d4575c7820d889de0ef15580ad003192010d261c38646a1344368f2a9dff1ae5b23072b70871cd2b7588fd65bd8bd44ed7719eec4e088334e5986021484946bd90786fd4fc39dc52fa86ed7886d001d3ee64206f0c5de7e517dd560000012800000090093af15fdd24dc60a17c63743a008945caf76d4fecfb8b973db7864fa2d23bb18a75df0d7d0c27bb3e8241363f4c2b252264173e1c6478617f1513528342001d4cdc6bafb17ab9799d0aef54910fbf3f07dc8e8f7fbb24b2422fbdf5dcff71a3104d34ab492e30ae6e229fbe3b2a18f510e28ce2d665f568c14f67b707526eb6c5423057221c87e57364d4f929d92a3800000090ea6bcb48020f5d194f522ec07220f2859e160a4def93c50d9b2e3838d744402cc902a12fb836458aa3724d521fbdab0f7ce5f2cad792baa06d37d9b880a3c3a6f39b760c0e6386b2ece755b0b70709af2e6fd20503219361878ca733d0846970bc36fd66c2d65a115d05c9be0f1895a5068551f353629807bb187b328dcb93610d1676470ff6692f37aa2c7a1aa78277000001280000009045fd3ab0ac586a55781d3ad84b47bdd448d4312c21b58756bd6e866d6a3aa459c8c08b3751a69d4ed7dad3494b61cfd4c40af77d69d0f4b74480b1674d47b5c052b0c823d8c6e270dc548de8994cba06135c22ec535e8fd699da3dbb013c8104c07b036013b9733ec7999a99908fb6af14c649a5f2fdef651151524f247f4cc868ff54c895683c6c06af0ecc5352f0cd000000900221be3ec7a77ac0c02a89f5f6afc7ce0d400af4c7f3c9e8f333db0f814453bfbc72cdbcb802cc6dd87b7d2402a70f0750355f7dc44bb5638a71b8484bebc29d26855821bf0bd5752717205f44b6083220e091cd96d0aae102d13623770b3694efcada6486d31e271be9f6ed184dc138007521e86396c8167bf1e0769292d6eb44205a4e7b8d7b14882975f8c852b8ac0000012800000090f621215cbf07f263742ddf8bcf10c81af2a3ba85c2b830458573aa064b63146cc865e2bfa6ece775548f16918f922ed4267fa6c5875fccc25077f561f75b6da876e4dbfbd32a4b10af407180a73c1d04081ca4c9efdd437e2db28e2d4611bcbac333710462cbea53c2481b75bb04e95128499f0e8799df086708db8234819064cf51c67888896ba7bc0d0e89f763439400000090293e6dbdfc2c738098231b4f1c8f0d739be756ad24dfc1bab7245ce3cab2cee0293f34adfc6b2b8545cc225caaf19ed3298dc00bedae7dc5de5516804661b960984916f9b978e6700b002dcb201ccf471e22f3ff617c4874ef51397c30dde547818a89b211f9dbdf3dfd8fd0d8d3a21a09da1a1161f46869d65008c3a039637cfe18c39a19df1374483b42b6cf9767b80000012800000090985d646180b524e4b49ad555323bedfc082613c7d6979162b43fc3c7719c15c801685bcebc7e855b18aaa215f014fb290812dbe0c720ce24fdbd0f4b4953c8a9bc8bf4c2f9ca4bcf73afdbb7430fe659282277f19c72e657c3dfeb0492e55caa22ab062f983eb417eb74fa6e518e6a30150854eb71d0a8aa344b1de99ed6afefdadcca0b97bc7c1c2a9d41997fe83530000000905d1e0305028278eef7df7c8df1d39a9945c64a925cdac4b7247a7724175b3b1cee30168ca5234b6efc50c2d23e7877924e2497d6b7e4ed826686e1a8093aec5ab08ad36cd2e04ef235cf7a30a08ef19c23fb2add0dd306fa4ae8881e91ea81b7db90bd32e28829b96075805fa1cab6900d9e963ff5232efc60f516bd73a5158cfa7a29a9bb07ba3a6c20be2e8315c5c0000001280000009007faeb8e333cced938005055ae4a104329ae809af5e6dcf92c13d351487c87d3915868c20b87e59cbaa6eccb9174d56f1ad6a4922be01d2671f5cc1d1d160d9c03611572b49bde324538fb7dd8e24687297e6490ee16de68a15f0f3db95955d8bf104cdbc6c90c5c76aa1ce1b27109552f0b09ed4e193f5cb47b3f68c5b9aad2e59b3995420e3bc6540d2fcf26d30af700000090ddf990e84cca0077f0d8c4ec255c2eab76c668e84cf5ae5ce39e06aa31ea6bebafea2fc22bbdbd2f227327cdaac2118731b620882606e69069db26b1773eb2d4f245227c34ee85ce7b87f19bc235e58723aac9fda228bf5260b1e9d8c64b1e4ac89f788b294e2a800ec83824e152379a1408b5e850966e49836a51af8ce92c211b3ea936557152c88fdcc16f3e398dbf000001280000009010002d75ba1ff4554ad77a06af2fac51123649ec050a90597c7bbf478b34983b6f7b15944b5efdcd8d54e4ebcf40a56026345a578bb526cff840fd54f335c002673717bc46c72a97dcd059a2d611985e1a19a8367b402f52524385a5ec56e6207a9e7c4a10e84fac572d70e9b3cd1dbb1fa7fe1e39bb6415bbaed8f6303a99a23ec054507ad79c9bc29d0dfc0bd9447b00000090f7ccb463266a4ff7c273e9c0a136956b7c6c429e2ab773a18576ba75a23b8f8f543493d5adc9e49ad9d30b0d3f23932d60020d2f2847ee8357fbc6533eedc9be6b55d81d87500628aa400d331de9d83d2a3fda76c9bdfc820d094625a4596e02db3e604da144fb834934a4e2d93d133e0d404301278631650b7b68bed665cb50e03f214684d822e14a300a71457778e5000001280000009080b451e6c9a2c420625c89eecda47b21b03a949e5315c38d9b1c39e59f5009deade992bfd878ae2397bac5d4bf2d0284aa9f860a70e6f41ac3b1dc5c0349c2b5585f550a5fe67b70b817657c92579da82ab5ea0d7f61481f802c65bd54b3c87f52dae10c80db0c79d9fa1cf9b45b7da51fce4e7fc0463b489c0512b1165f3f42c75ce5eb050843318907374e280d31fa00000090b217fdc174010515389583c88d932d0f285943bd9c3357335e36caee6b9730f391e6f34c191f74f64d501bbc72d370e08cf50504dc2ccef5073ce027c9ab057da6338d64db7891f135a8033c395e9e53206e12f5ebe3796201c8c5fb6d0953641c5a2e89efd038aebcf9a0c4f50d1efe2464346e02ae75c843c6b11a1cd84a1b996417e45d4b9632e9dbff6b8db094650000012800000090e93cdb4a85f24cd964586f1e9702d831f03a265294325040cb2d5510d18d4a5186074cba2d5a70a0a862590867842de3baa87c6ca244fa5e18445f78d21fdc092b3c65a21f34c04f69e10c201013efa12b63b34d3a5f84f6ed2ceedc99608fbc6877950e61e5c971e5d0d70a8a6c65440c083a8218ba4687f3c1c60a94a5a5fd312276373e45a4685282a59c347a5cb200000090e2b0dc32f29f76e093c78c03bd76fa41ff202875dfd2d4dc7b699c2bc3faf4bf2456d6c69ecb03c27f23e8a08f6234f58aa364dc86f829db03509e4076a1f2aa9937c64cec202f020616b3afb1808acb154ae4da1dba87bb1f7ef9ec18b4f81c93699422fbf92201ebb8d6a9051da20d09fd65e6a5dd210d275d2ce5812a6938fe864ddb6b2f2eda2f97eccc7e270cb90000012800000090dc850cdd754d5562d2cd0a79a93dbeaa8073e8c59be2570e7baa1fb1c4708bf5d247b4c48f47da5504112331264d08219e885e7fa72af442e567b79cb2e47bb074f50ff258252ed089b52d73999ad1c6016079807c678fde5d22a5882e20e8444b3bdac43c815022ad11918c83b982cc23b269e045508b459b0147df499459b9cf406fc80a366fe92eb48fae1ef2f020000000901d1f47c4c1cb18a284d574eb6dac526160fce963527d2762b13f81e4410969a6fddcc1f847fc435907806060857bddd7798b4b04001edcfab63ccb41ec96fa3ba28f8ecae989f85a444f4dbbc226a69a24c309b920b961ba352e9ebe153e51137ff5afe88a0c6e1b1e1044d51904c31305b4180fcf006cdeae8184dc4b5e2e0f1fbfeefb57d3309d45ee8d924f0438e50000012800000090c00446a7e4204241776d5234a2bea9ed935e437d9ff8d31cff62c072c294cd709336c171c4d2008a18633174e321640679b645b4cabafc5702f8936605d9825eddd72a4aa53b6899d22642e58486ead90e7f35b24a3beaa472dd3f8be3c8b65c001b10252457d252120c8273f645f52c2a2cd4485def46cf3368fb5e4703f130cf1b6ede3df24c3cba58ccfbfb5c1d710000009022a8ef23801ff2e837f3e5db3361c6897db0cebaebfff4bc19fe2de194ae245718259c23897359d07e8594d4086da22c0969b3cdafdfb20b6df113841c3e2520b776025831c68c0a2a1dd4bc581df7631d6a743a468d357ea936317efca7f6ed04c1be2dc7e6a1b829e3c9fbb423224c0813db64b88a639a1e2bb0d28c118f29d9aea07e5f7eb68c0e6c044d92e6c5a200000ce40000012800000090e2bc3a48af462e994976367fde39209c31d47fe41a4f37fb644f56fe6421a805cdc7cab167dda0238e4b2d6fe9ff7190d5b00977da7d3bbff603adc831d7b5c2991bf9b8fa11f7b0cea097d0f2f4437401198ba8112a0bd4bc1f536d844648050559ba594e2221f41ff991b831afc04c16d1e2987434b415a200227d598641301debed676bc98f6fac8dd6b00ec3d5ef0000009090adc3bdfc913e1e8f6fdd10fd6e3b62f9a64220c762fa0e0074c2b6fc4f61c91fded0e9f550dd1fba9ae651f1ac0450a72f1b41be401fbf02f969d1a3358514748f32d4093cc1c301db661942c58b49274dba34e513a07634442e055dc224fdd4954bc4f5ec39b56f263ef83ce6d81105dfbcf76b28810a08b23399c067c0730cd643ca0a71c14dfd7fe6a7ca4c7cb80000012800000090cbd5b3d8671123dc24f039239bcb164750d2b94f9e10b011bfad3231ea137b6ca803f15a5adddac120f372364e74f8fe2503f3ae41e6e159d22e02e86eff74db1af028b4d491ab8dd8ef1b712c9454291d8e74b1faa3a9a3a2897661d52b5d38c879f0ee6c25d9a4cbb334b344e0c4d724c3310ad42fc29094d89c434ea332abc10a1b59469f892b4fd60b01bdb4fa9200000090183be88ab1402a8105ce14826e74cfd26ac966dd9c06b2fa1cdf0f92d2837637cb37826e4c05c5207220d0eff1a8efc95d161de351749daffdffc974d40d50412fe80440ad1f03fbeeca8b4169086efd1710aedff6957061c9a814b7c86fab671102290d3e28786784e925f5fec867cf1c64cb4e4d2d7e9719ee7ef0ed4b1cc0e4de0a4d6372de36162ba9cd661436370000012800000090492b1ab03ad6554322c047f02efbdd83ed97509f1820395508471b0df7ed58d463e3b73735051b72d82c513eea1b98d4d51cb7b8ca4fe23651f3f5155f18e4555c093b1eb6c2a98171b714c6601f440224e4f0a5e1cfe404f51d314024cf5c4b1424a7dff3597204720623c0d03b83552ff2b3f159e3764f400465a9637d4d5ecd540df7f378b00858927e1df1c029be000000901943fd9faf476880c444febbdb07802a24dd21a945512a7f86560d1acaf786801b297ee3fdad4d14db06afad27c5181aa8c3ed4db540f4f819866471204e2a7efb9903839e71df18c998f3bba2a5c6e504f43bc05c038d0e7301a6f57bb73e9b3d346dd24bfad2cd28024666d7aea47d0a6edac531b795820968adb825f07da1aa3da448e6bf57880f81d830698f1f0d00000128000000901f0b90e626f010f5f9b965348175df86cad98ee79276e02f5a8ab74d96ddfdb75f1da24e300f6252ddfc53c30b7d57c58977a242c8bef37ecf77e7afc8527172780ff4b8bc2e1b52696dd1c6b79faa1e243e88c996d3cf7306f4e3f0062a6c5ddf4d1e0efbc34adb2bea97f1904944270fc64104193d0210726362ad9fe624bd2953651ca3ba77247afbc581b35df64800000090e7ce6a2a5ec7cc4b32e12ba70c1c491206a85c6bf637dbf7ea3e9ef5c52fec6b421e71eb44fc46950137dc8f780d2bec886dc91616afdd2c700c24832cd53fc692a92a3aec923e85eb8a1421877347cf1678ef20365b09bee2f356edeb6066db70c6eaccf4e1afc436136c5acc6ef42f0a64e5fa94a66f3c7ee8fb08debbe7950b0d0307dbc49ebdd86d5295f53bd58d00000128000000905eed1effd49b3c182fd72fc371f22360fafbc935c94329bbea121b76c3f47c10d7a24852dffbece757558a2a906fccf152698cdcff1368c5ffb433e3b9a16135ca0058af88ca48bdcdc00b6e7dd0532511783b35ee2e85bcb2b5c2a2a0178b8bed4b7dce99d2ed823e9ce610b19b8cc62684e4c14c6085508b7e2cb240fa6efd4ea0e755a720a019e47a1b9ead8ebef0000000909861d898f71affefaa9c24629753b3e6988263567d48672571bc46f69b65f35e0371c72a53ab087fede69bcc9bff623055ee1426ab173447a6cf84ec2fdbc151daa772f1c24de647d606fe99bacff8f000b17c743ed65e5abf0d5f7eba1b53adf37c43c6dcbfa399fea776af3842eb2620fe73dd99bde3c733b7966b9da121511e389985f51368d69dddb05d8ca4a45b00000128000000904f4079d8a2b1fef6ab268d17e10f748d360790081658a4dfaf52931efffe7c2f041923dd29a8a0b5ae7c0a16b1915d68921698d3c99351d8325f4da2422360df766a7bf49fab1b29b7d873951f21d3840f521987c97272fc20d483ed63f6a461273ce23bc3aa6dab2976243655248c0b2923163e782dfb8bf27c3171be7f86da6231fb2992e539dd1f4743558826d2e100000090a98c0b3206e0ef65c45ed93069c78aad33e45aa2bfb121a7e5a45313cb5758c6cd78dc20411fab5ce6cfb52413a4593a8afd3b8198cb753cde0a4d96d3839b66fafc974611b39fb9aa04a640c4e251800fa3ceac5567b9421a19ed92da33ec3a9b145ed09ed058837cb8d51da7bbc879052258bdaa60e493eea98e24bbb556d300eb0206ad4a2b336f3ecb818534533000000128000000908aa7ae30702c869425bde7798ed24dadb39c459ff83ea139d9f6ac6e06a984475cf323d7d45e95c240e346e393174c3d5e91ed9a4f05f497bfbb68a6168fb83d82903c1a5bd9513253a2049abd087d5a297db4b7a90452627a890a7fb5b914af3733951cd13229e60c4c72b7f8be532021cc9049bbe19b38a40ca1f5c1921060814928dc8383345821e4fe686c3d30b6000000904811797f420982fbafd20c05b67a7ba97ad472240e24b1539f533fd790c8b31559ba3b593391ce329096c708d20cd8104e7c834b646ce963c5f634cc4c97b85d2a923fca24d6282c01eb098c33c81f8829c69b93ba28f54c7d0bf2bdb9fa695ad3e2fce86f02adb1aa053ac1848fc01e04776495af37c4115237a3fb0e833cfb47032ba8ab4686a7796d23d5e36f9fba000001280000009026dd418e127c509cdb836ab92258ff19b76bd5e36ff73901eb16b3a6bd3a84df61b3657d3f317f95852e0d723ccf96f19b7fc91655a6a597755164266cf8b99becda4a71d594a7469349cc0bc34e3f10062716c1c60b10662c4cfe78d21248409ec50eebca288509c0a0dbf5f320a21b28dec7530b02753f920944d3efdc7d7e59c0a4204ca900e22aa59e04c5c5a6f20000009097ec2bfba0e6dc44f0c7fde2a6b8c08da93af4b60313d597ea441cac361dae66799037a1fc9328b37850cd730a6b2895d111bc7a80c7d94ed8dbed022736042e579a8a0c96e40abb5f61abb1536718f51d87b83c4d69ab74c99be50aee9ceb67d2951a16b265e9356e264c200dcfbf2000967f66bf7f490bba839a2f4a73fd5c15677f6cf311b65672e708eaa2503d5400000128000000903d05177da328f50a6b1735b7f3c7ee275b145e2effcc456a0c5a2b6b85366acdaebac9801eb0510cd1823bd01139ab5d3db0f38d2cec64e653a14a0c5461c5e2a904f640d4ca3bafbb0b0f4be9739cf80bffbee46f92294abe5558926bab3118826687aac02ffbf1d68424fe9af65b2916ed9211d0d3d2d6917c658545188720424ac98fc35342de7cd07429def9422900000090e1d45e36164240913087d829bb92535b93c0ffd41386ba5c3d276dd57611f6e68b3244f1cf5f75764992c8c456850c135e3aed4486dc85eddafd4921cccfaacda04c274181cebe2ed0e580d1350d8a3e1b4777640a7126168ce8772f7ad20463a3d5b9c05dad1c26afd2e9cf762c3e6304f289ac1d13c4edcdae63f8277af15e80590889a55337e81b118ffcdd9982180000012800000090f0f12e1fa0945b93a198c6631fb878417b46cb176a2bbf347eea9ef4d1729d28e940a208f2a1132325f403a3d4661da1e1d0b2544ac39ab2c6023e5fcb2ca1737e0a545703bfa9c4ef3f90dae7cb42151e25fcbd5964fdb9002517105469c59b5482528fcee58c786344c30cde4caee9040346581b540d44d1287d963b5889a0066dcba50ad62940317292d9794cfd530000009078dc1348b125a76fee5aebd336661e4d0214c5cbd94fcddd08c1526f67da9b789cf7bb879f6296647396073b4036b462e0d66e6b45c3e602494b8c99024ba54090fa7d6cf9726b49b6d22aa7bee4cc33096bdd8e3015a9561d352e009dde3a772739291878b2b17e96ee8c415bbb6cad1ceea85f24360cafe7a28cbe08d8074605a72facccd92bb307fcc855d413f8ec00000128000000908d2a8d2e41f9d850def8241eeb22d8fe08c2555c618b155b75d95e96bdb0b0b377cd0ca2376eee3307cb50328931faf5767ff80eddb2ce21f184b7942aa019bd8e60a881715e6c382433e77761296bbd025dbf23d1b00f9d25dbcfda67f9b4ae86a387fb7bdf3c5241e0b78c839b90322a7e03779942b0dbdf47c34b13c7d671358b008a96827396b695f0ac3e32894000000090df5748605961a0e6be2ff2e92b6280110752d8a76a8ec69bf9b7f4d916ca4a5dfede149be73b24e6426e993ded9af3dae9ca39f2e43363dbd1b36a9ec44d2b7736a4936a16096c151be8f8a3f907ac33116b667bba9a8297de6a994b2b7e34ff897749999724668a3753d5caa80d571b0bedc76486de3d07973636e9ee1897e7e62f94352d22ec90a956a16db6d36027", - "calldataHash": "0xf4525fad966caa2a5a1c5c4ca03520c2652aa2835f67fcad64b97e05cfb2870e", + "archive": "0x238d559a05a8fef1cbfcc8b7e59836b7f467fa8e93d433bfce8efb75a6444448", + "body": "0x000001000000000000000000000000000000000000000000000000000000000000000240000000000000000000000000000000000000000000000000000000000000024100000000000000000000000000000000000000000000000000000000000002420000000000000000000000000000000000000000000000000000000000000243000000000000000000000000000000000000000000000000000000000000024400000000000000000000000000000000000000000000000000000000000002450000000000000000000000000000000000000000000000000000000000000246000000000000000000000000000000000000000000000000000000000000024700000000000000000000000000000000000000000000000000000000000002480000000000000000000000000000000000000000000000000000000000000249000000000000000000000000000000000000000000000000000000000000024a000000000000000000000000000000000000000000000000000000000000024b000000000000000000000000000000000000000000000000000000000000024c000000000000000000000000000000000000000000000000000000000000024d000000000000000000000000000000000000000000000000000000000000024e000000000000000000000000000000000000000000000000000000000000024f0000000000000000000000000000000000000000000000000000000000000250000000000000000000000000000000000000000000000000000000000000025100000000000000000000000000000000000000000000000000000000000002520000000000000000000000000000000000000000000000000000000000000253000000000000000000000000000000000000000000000000000000000000025400000000000000000000000000000000000000000000000000000000000002550000000000000000000000000000000000000000000000000000000000000256000000000000000000000000000000000000000000000000000000000000025700000000000000000000000000000000000000000000000000000000000002580000000000000000000000000000000000000000000000000000000000000259000000000000000000000000000000000000000000000000000000000000025a000000000000000000000000000000000000000000000000000000000000025b000000000000000000000000000000000000000000000000000000000000025c000000000000000000000000000000000000000000000000000000000000025d000000000000000000000000000000000000000000000000000000000000025e000000000000000000000000000000000000000000000000000000000000025f0000000000000000000000000000000000000000000000000000000000000260000000000000000000000000000000000000000000000000000000000000026100000000000000000000000000000000000000000000000000000000000002620000000000000000000000000000000000000000000000000000000000000263000000000000000000000000000000000000000000000000000000000000026400000000000000000000000000000000000000000000000000000000000002650000000000000000000000000000000000000000000000000000000000000266000000000000000000000000000000000000000000000000000000000000026700000000000000000000000000000000000000000000000000000000000002680000000000000000000000000000000000000000000000000000000000000269000000000000000000000000000000000000000000000000000000000000026a000000000000000000000000000000000000000000000000000000000000026b000000000000000000000000000000000000000000000000000000000000026c000000000000000000000000000000000000000000000000000000000000026d000000000000000000000000000000000000000000000000000000000000026e000000000000000000000000000000000000000000000000000000000000026f0000000000000000000000000000000000000000000000000000000000000270000000000000000000000000000000000000000000000000000000000000027100000000000000000000000000000000000000000000000000000000000002720000000000000000000000000000000000000000000000000000000000000273000000000000000000000000000000000000000000000000000000000000027400000000000000000000000000000000000000000000000000000000000002750000000000000000000000000000000000000000000000000000000000000276000000000000000000000000000000000000000000000000000000000000027700000000000000000000000000000000000000000000000000000000000002780000000000000000000000000000000000000000000000000000000000000279000000000000000000000000000000000000000000000000000000000000027a000000000000000000000000000000000000000000000000000000000000027b000000000000000000000000000000000000000000000000000000000000027c000000000000000000000000000000000000000000000000000000000000027d000000000000000000000000000000000000000000000000000000000000027e000000000000000000000000000000000000000000000000000000000000027f0000000000000000000000000000000000000000000000000000000000000280000000000000000000000000000000000000000000000000000000000000028100000000000000000000000000000000000000000000000000000000000002820000000000000000000000000000000000000000000000000000000000000283000000000000000000000000000000000000000000000000000000000000028400000000000000000000000000000000000000000000000000000000000002850000000000000000000000000000000000000000000000000000000000000286000000000000000000000000000000000000000000000000000000000000028700000000000000000000000000000000000000000000000000000000000002880000000000000000000000000000000000000000000000000000000000000289000000000000000000000000000000000000000000000000000000000000028a000000000000000000000000000000000000000000000000000000000000028b000000000000000000000000000000000000000000000000000000000000028c000000000000000000000000000000000000000000000000000000000000028d000000000000000000000000000000000000000000000000000000000000028e000000000000000000000000000000000000000000000000000000000000028f0000000000000000000000000000000000000000000000000000000000000290000000000000000000000000000000000000000000000000000000000000029100000000000000000000000000000000000000000000000000000000000002920000000000000000000000000000000000000000000000000000000000000293000000000000000000000000000000000000000000000000000000000000029400000000000000000000000000000000000000000000000000000000000002950000000000000000000000000000000000000000000000000000000000000296000000000000000000000000000000000000000000000000000000000000029700000000000000000000000000000000000000000000000000000000000002980000000000000000000000000000000000000000000000000000000000000299000000000000000000000000000000000000000000000000000000000000029a000000000000000000000000000000000000000000000000000000000000029b000000000000000000000000000000000000000000000000000000000000029c000000000000000000000000000000000000000000000000000000000000029d000000000000000000000000000000000000000000000000000000000000029e000000000000000000000000000000000000000000000000000000000000029f00000000000000000000000000000000000000000000000000000000000002a000000000000000000000000000000000000000000000000000000000000002a100000000000000000000000000000000000000000000000000000000000002a200000000000000000000000000000000000000000000000000000000000002a300000000000000000000000000000000000000000000000000000000000002a400000000000000000000000000000000000000000000000000000000000002a500000000000000000000000000000000000000000000000000000000000002a600000000000000000000000000000000000000000000000000000000000002a700000000000000000000000000000000000000000000000000000000000002a800000000000000000000000000000000000000000000000000000000000002a900000000000000000000000000000000000000000000000000000000000002aa00000000000000000000000000000000000000000000000000000000000002ab00000000000000000000000000000000000000000000000000000000000002ac00000000000000000000000000000000000000000000000000000000000002ad00000000000000000000000000000000000000000000000000000000000002ae00000000000000000000000000000000000000000000000000000000000002af00000000000000000000000000000000000000000000000000000000000002b000000000000000000000000000000000000000000000000000000000000002b100000000000000000000000000000000000000000000000000000000000002b200000000000000000000000000000000000000000000000000000000000002b300000000000000000000000000000000000000000000000000000000000002b400000000000000000000000000000000000000000000000000000000000002b500000000000000000000000000000000000000000000000000000000000002b600000000000000000000000000000000000000000000000000000000000002b700000000000000000000000000000000000000000000000000000000000002b800000000000000000000000000000000000000000000000000000000000002b900000000000000000000000000000000000000000000000000000000000002ba00000000000000000000000000000000000000000000000000000000000002bb00000000000000000000000000000000000000000000000000000000000002bc00000000000000000000000000000000000000000000000000000000000002bd00000000000000000000000000000000000000000000000000000000000002be00000000000000000000000000000000000000000000000000000000000002bf00000000000000000000000000000000000000000000000000000000000002c000000000000000000000000000000000000000000000000000000000000002c100000000000000000000000000000000000000000000000000000000000002c200000000000000000000000000000000000000000000000000000000000002c300000000000000000000000000000000000000000000000000000000000002c400000000000000000000000000000000000000000000000000000000000002c500000000000000000000000000000000000000000000000000000000000002c600000000000000000000000000000000000000000000000000000000000002c700000000000000000000000000000000000000000000000000000000000002c800000000000000000000000000000000000000000000000000000000000002c900000000000000000000000000000000000000000000000000000000000002ca00000000000000000000000000000000000000000000000000000000000002cb00000000000000000000000000000000000000000000000000000000000002cc00000000000000000000000000000000000000000000000000000000000002cd00000000000000000000000000000000000000000000000000000000000002ce00000000000000000000000000000000000000000000000000000000000002cf00000000000000000000000000000000000000000000000000000000000002d000000000000000000000000000000000000000000000000000000000000002d100000000000000000000000000000000000000000000000000000000000002d200000000000000000000000000000000000000000000000000000000000002d300000000000000000000000000000000000000000000000000000000000002d400000000000000000000000000000000000000000000000000000000000002d500000000000000000000000000000000000000000000000000000000000002d600000000000000000000000000000000000000000000000000000000000002d700000000000000000000000000000000000000000000000000000000000002d800000000000000000000000000000000000000000000000000000000000002d900000000000000000000000000000000000000000000000000000000000002da00000000000000000000000000000000000000000000000000000000000002db00000000000000000000000000000000000000000000000000000000000002dc00000000000000000000000000000000000000000000000000000000000002dd00000000000000000000000000000000000000000000000000000000000002de00000000000000000000000000000000000000000000000000000000000002df00000000000000000000000000000000000000000000000000000000000002e000000000000000000000000000000000000000000000000000000000000002e100000000000000000000000000000000000000000000000000000000000002e200000000000000000000000000000000000000000000000000000000000002e300000000000000000000000000000000000000000000000000000000000002e400000000000000000000000000000000000000000000000000000000000002e500000000000000000000000000000000000000000000000000000000000002e600000000000000000000000000000000000000000000000000000000000002e700000000000000000000000000000000000000000000000000000000000002e800000000000000000000000000000000000000000000000000000000000002e900000000000000000000000000000000000000000000000000000000000002ea00000000000000000000000000000000000000000000000000000000000002eb00000000000000000000000000000000000000000000000000000000000002ec00000000000000000000000000000000000000000000000000000000000002ed00000000000000000000000000000000000000000000000000000000000002ee00000000000000000000000000000000000000000000000000000000000002ef00000000000000000000000000000000000000000000000000000000000002f000000000000000000000000000000000000000000000000000000000000002f100000000000000000000000000000000000000000000000000000000000002f200000000000000000000000000000000000000000000000000000000000002f300000000000000000000000000000000000000000000000000000000000002f400000000000000000000000000000000000000000000000000000000000002f500000000000000000000000000000000000000000000000000000000000002f600000000000000000000000000000000000000000000000000000000000002f700000000000000000000000000000000000000000000000000000000000002f800000000000000000000000000000000000000000000000000000000000002f900000000000000000000000000000000000000000000000000000000000002fa00000000000000000000000000000000000000000000000000000000000002fb00000000000000000000000000000000000000000000000000000000000002fc00000000000000000000000000000000000000000000000000000000000002fd00000000000000000000000000000000000000000000000000000000000002fe00000000000000000000000000000000000000000000000000000000000002ff0000000000000000000000000000000000000000000000000000000000000300000000000000000000000000000000000000000000000000000000000000030100000000000000000000000000000000000000000000000000000000000003020000000000000000000000000000000000000000000000000000000000000303000000000000000000000000000000000000000000000000000000000000030400000000000000000000000000000000000000000000000000000000000003050000000000000000000000000000000000000000000000000000000000000306000000000000000000000000000000000000000000000000000000000000030700000000000000000000000000000000000000000000000000000000000003080000000000000000000000000000000000000000000000000000000000000309000000000000000000000000000000000000000000000000000000000000030a000000000000000000000000000000000000000000000000000000000000030b000000000000000000000000000000000000000000000000000000000000030c000000000000000000000000000000000000000000000000000000000000030d000000000000000000000000000000000000000000000000000000000000030e000000000000000000000000000000000000000000000000000000000000030f0000000000000000000000000000000000000000000000000000000000000310000000000000000000000000000000000000000000000000000000000000031100000000000000000000000000000000000000000000000000000000000003120000000000000000000000000000000000000000000000000000000000000313000000000000000000000000000000000000000000000000000000000000031400000000000000000000000000000000000000000000000000000000000003150000000000000000000000000000000000000000000000000000000000000316000000000000000000000000000000000000000000000000000000000000031700000000000000000000000000000000000000000000000000000000000003180000000000000000000000000000000000000000000000000000000000000319000000000000000000000000000000000000000000000000000000000000031a000000000000000000000000000000000000000000000000000000000000031b000000000000000000000000000000000000000000000000000000000000031c000000000000000000000000000000000000000000000000000000000000031d000000000000000000000000000000000000000000000000000000000000031e000000000000000000000000000000000000000000000000000000000000031f0000000000000000000000000000000000000000000000000000000000000320000000000000000000000000000000000000000000000000000000000000032100000000000000000000000000000000000000000000000000000000000003220000000000000000000000000000000000000000000000000000000000000323000000000000000000000000000000000000000000000000000000000000032400000000000000000000000000000000000000000000000000000000000003250000000000000000000000000000000000000000000000000000000000000326000000000000000000000000000000000000000000000000000000000000032700000000000000000000000000000000000000000000000000000000000003280000000000000000000000000000000000000000000000000000000000000329000000000000000000000000000000000000000000000000000000000000032a000000000000000000000000000000000000000000000000000000000000032b000000000000000000000000000000000000000000000000000000000000032c000000000000000000000000000000000000000000000000000000000000032d000000000000000000000000000000000000000000000000000000000000032e000000000000000000000000000000000000000000000000000000000000032f0000000000000000000000000000000000000000000000000000000000000330000000000000000000000000000000000000000000000000000000000000033100000000000000000000000000000000000000000000000000000000000003320000000000000000000000000000000000000000000000000000000000000333000000000000000000000000000000000000000000000000000000000000033400000000000000000000000000000000000000000000000000000000000003350000000000000000000000000000000000000000000000000000000000000336000000000000000000000000000000000000000000000000000000000000033700000000000000000000000000000000000000000000000000000000000003380000000000000000000000000000000000000000000000000000000000000339000000000000000000000000000000000000000000000000000000000000033a000000000000000000000000000000000000000000000000000000000000033b000000000000000000000000000000000000000000000000000000000000033c000000000000000000000000000000000000000000000000000000000000033d000000000000000000000000000000000000000000000000000000000000033e000000000000000000000000000000000000000000000000000000000000033f000001000000000000000000000000000000000000000000000000000000000000000340000000000000000000000000000000000000000000000000000000000000034100000000000000000000000000000000000000000000000000000000000003420000000000000000000000000000000000000000000000000000000000000343000000000000000000000000000000000000000000000000000000000000034400000000000000000000000000000000000000000000000000000000000003450000000000000000000000000000000000000000000000000000000000000346000000000000000000000000000000000000000000000000000000000000034700000000000000000000000000000000000000000000000000000000000003480000000000000000000000000000000000000000000000000000000000000349000000000000000000000000000000000000000000000000000000000000034a000000000000000000000000000000000000000000000000000000000000034b000000000000000000000000000000000000000000000000000000000000034c000000000000000000000000000000000000000000000000000000000000034d000000000000000000000000000000000000000000000000000000000000034e000000000000000000000000000000000000000000000000000000000000034f0000000000000000000000000000000000000000000000000000000000000350000000000000000000000000000000000000000000000000000000000000035100000000000000000000000000000000000000000000000000000000000003520000000000000000000000000000000000000000000000000000000000000353000000000000000000000000000000000000000000000000000000000000035400000000000000000000000000000000000000000000000000000000000003550000000000000000000000000000000000000000000000000000000000000356000000000000000000000000000000000000000000000000000000000000035700000000000000000000000000000000000000000000000000000000000003580000000000000000000000000000000000000000000000000000000000000359000000000000000000000000000000000000000000000000000000000000035a000000000000000000000000000000000000000000000000000000000000035b000000000000000000000000000000000000000000000000000000000000035c000000000000000000000000000000000000000000000000000000000000035d000000000000000000000000000000000000000000000000000000000000035e000000000000000000000000000000000000000000000000000000000000035f0000000000000000000000000000000000000000000000000000000000000360000000000000000000000000000000000000000000000000000000000000036100000000000000000000000000000000000000000000000000000000000003620000000000000000000000000000000000000000000000000000000000000363000000000000000000000000000000000000000000000000000000000000036400000000000000000000000000000000000000000000000000000000000003650000000000000000000000000000000000000000000000000000000000000366000000000000000000000000000000000000000000000000000000000000036700000000000000000000000000000000000000000000000000000000000003680000000000000000000000000000000000000000000000000000000000000369000000000000000000000000000000000000000000000000000000000000036a000000000000000000000000000000000000000000000000000000000000036b000000000000000000000000000000000000000000000000000000000000036c000000000000000000000000000000000000000000000000000000000000036d000000000000000000000000000000000000000000000000000000000000036e000000000000000000000000000000000000000000000000000000000000036f0000000000000000000000000000000000000000000000000000000000000370000000000000000000000000000000000000000000000000000000000000037100000000000000000000000000000000000000000000000000000000000003720000000000000000000000000000000000000000000000000000000000000373000000000000000000000000000000000000000000000000000000000000037400000000000000000000000000000000000000000000000000000000000003750000000000000000000000000000000000000000000000000000000000000376000000000000000000000000000000000000000000000000000000000000037700000000000000000000000000000000000000000000000000000000000003780000000000000000000000000000000000000000000000000000000000000379000000000000000000000000000000000000000000000000000000000000037a000000000000000000000000000000000000000000000000000000000000037b000000000000000000000000000000000000000000000000000000000000037c000000000000000000000000000000000000000000000000000000000000037d000000000000000000000000000000000000000000000000000000000000037e00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000380000000000000000000000000000000000000000000000000000000000000038100000000000000000000000000000000000000000000000000000000000003820000000000000000000000000000000000000000000000000000000000000383000000000000000000000000000000000000000000000000000000000000038400000000000000000000000000000000000000000000000000000000000003850000000000000000000000000000000000000000000000000000000000000386000000000000000000000000000000000000000000000000000000000000038700000000000000000000000000000000000000000000000000000000000003880000000000000000000000000000000000000000000000000000000000000389000000000000000000000000000000000000000000000000000000000000038a000000000000000000000000000000000000000000000000000000000000038b000000000000000000000000000000000000000000000000000000000000038c000000000000000000000000000000000000000000000000000000000000038d000000000000000000000000000000000000000000000000000000000000038e000000000000000000000000000000000000000000000000000000000000038f0000000000000000000000000000000000000000000000000000000000000390000000000000000000000000000000000000000000000000000000000000039100000000000000000000000000000000000000000000000000000000000003920000000000000000000000000000000000000000000000000000000000000393000000000000000000000000000000000000000000000000000000000000039400000000000000000000000000000000000000000000000000000000000003950000000000000000000000000000000000000000000000000000000000000396000000000000000000000000000000000000000000000000000000000000039700000000000000000000000000000000000000000000000000000000000003980000000000000000000000000000000000000000000000000000000000000399000000000000000000000000000000000000000000000000000000000000039a000000000000000000000000000000000000000000000000000000000000039b000000000000000000000000000000000000000000000000000000000000039c000000000000000000000000000000000000000000000000000000000000039d000000000000000000000000000000000000000000000000000000000000039e000000000000000000000000000000000000000000000000000000000000039f00000000000000000000000000000000000000000000000000000000000003a000000000000000000000000000000000000000000000000000000000000003a100000000000000000000000000000000000000000000000000000000000003a200000000000000000000000000000000000000000000000000000000000003a300000000000000000000000000000000000000000000000000000000000003a400000000000000000000000000000000000000000000000000000000000003a500000000000000000000000000000000000000000000000000000000000003a600000000000000000000000000000000000000000000000000000000000003a700000000000000000000000000000000000000000000000000000000000003a800000000000000000000000000000000000000000000000000000000000003a900000000000000000000000000000000000000000000000000000000000003aa00000000000000000000000000000000000000000000000000000000000003ab00000000000000000000000000000000000000000000000000000000000003ac00000000000000000000000000000000000000000000000000000000000003ad00000000000000000000000000000000000000000000000000000000000003ae00000000000000000000000000000000000000000000000000000000000003af00000000000000000000000000000000000000000000000000000000000003b000000000000000000000000000000000000000000000000000000000000003b100000000000000000000000000000000000000000000000000000000000003b200000000000000000000000000000000000000000000000000000000000003b300000000000000000000000000000000000000000000000000000000000003b400000000000000000000000000000000000000000000000000000000000003b500000000000000000000000000000000000000000000000000000000000003b600000000000000000000000000000000000000000000000000000000000003b700000000000000000000000000000000000000000000000000000000000003b800000000000000000000000000000000000000000000000000000000000003b900000000000000000000000000000000000000000000000000000000000003ba00000000000000000000000000000000000000000000000000000000000003bb00000000000000000000000000000000000000000000000000000000000003bc00000000000000000000000000000000000000000000000000000000000003bd00000000000000000000000000000000000000000000000000000000000003be000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003c000000000000000000000000000000000000000000000000000000000000003c100000000000000000000000000000000000000000000000000000000000003c200000000000000000000000000000000000000000000000000000000000003c300000000000000000000000000000000000000000000000000000000000003c400000000000000000000000000000000000000000000000000000000000003c500000000000000000000000000000000000000000000000000000000000003c600000000000000000000000000000000000000000000000000000000000003c700000000000000000000000000000000000000000000000000000000000003c800000000000000000000000000000000000000000000000000000000000003c900000000000000000000000000000000000000000000000000000000000003ca00000000000000000000000000000000000000000000000000000000000003cb00000000000000000000000000000000000000000000000000000000000003cc00000000000000000000000000000000000000000000000000000000000003cd00000000000000000000000000000000000000000000000000000000000003ce00000000000000000000000000000000000000000000000000000000000003cf00000000000000000000000000000000000000000000000000000000000003d000000000000000000000000000000000000000000000000000000000000003d100000000000000000000000000000000000000000000000000000000000003d200000000000000000000000000000000000000000000000000000000000003d300000000000000000000000000000000000000000000000000000000000003d400000000000000000000000000000000000000000000000000000000000003d500000000000000000000000000000000000000000000000000000000000003d600000000000000000000000000000000000000000000000000000000000003d700000000000000000000000000000000000000000000000000000000000003d800000000000000000000000000000000000000000000000000000000000003d900000000000000000000000000000000000000000000000000000000000003da00000000000000000000000000000000000000000000000000000000000003db00000000000000000000000000000000000000000000000000000000000003dc00000000000000000000000000000000000000000000000000000000000003dd00000000000000000000000000000000000000000000000000000000000003de00000000000000000000000000000000000000000000000000000000000003df00000000000000000000000000000000000000000000000000000000000003e000000000000000000000000000000000000000000000000000000000000003e100000000000000000000000000000000000000000000000000000000000003e200000000000000000000000000000000000000000000000000000000000003e300000000000000000000000000000000000000000000000000000000000003e400000000000000000000000000000000000000000000000000000000000003e500000000000000000000000000000000000000000000000000000000000003e600000000000000000000000000000000000000000000000000000000000003e700000000000000000000000000000000000000000000000000000000000003e800000000000000000000000000000000000000000000000000000000000003e900000000000000000000000000000000000000000000000000000000000003ea00000000000000000000000000000000000000000000000000000000000003eb00000000000000000000000000000000000000000000000000000000000003ec00000000000000000000000000000000000000000000000000000000000003ed00000000000000000000000000000000000000000000000000000000000003ee00000000000000000000000000000000000000000000000000000000000003ef00000000000000000000000000000000000000000000000000000000000003f000000000000000000000000000000000000000000000000000000000000003f100000000000000000000000000000000000000000000000000000000000003f200000000000000000000000000000000000000000000000000000000000003f300000000000000000000000000000000000000000000000000000000000003f400000000000000000000000000000000000000000000000000000000000003f500000000000000000000000000000000000000000000000000000000000003f600000000000000000000000000000000000000000000000000000000000003f700000000000000000000000000000000000000000000000000000000000003f800000000000000000000000000000000000000000000000000000000000003f900000000000000000000000000000000000000000000000000000000000003fa00000000000000000000000000000000000000000000000000000000000003fb00000000000000000000000000000000000000000000000000000000000003fc00000000000000000000000000000000000000000000000000000000000003fd00000000000000000000000000000000000000000000000000000000000003fe00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000040100000000000000000000000000000000000000000000000000000000000004020000000000000000000000000000000000000000000000000000000000000403000000000000000000000000000000000000000000000000000000000000040400000000000000000000000000000000000000000000000000000000000004050000000000000000000000000000000000000000000000000000000000000406000000000000000000000000000000000000000000000000000000000000040700000000000000000000000000000000000000000000000000000000000004080000000000000000000000000000000000000000000000000000000000000409000000000000000000000000000000000000000000000000000000000000040a000000000000000000000000000000000000000000000000000000000000040b000000000000000000000000000000000000000000000000000000000000040c000000000000000000000000000000000000000000000000000000000000040d000000000000000000000000000000000000000000000000000000000000040e000000000000000000000000000000000000000000000000000000000000040f0000000000000000000000000000000000000000000000000000000000000410000000000000000000000000000000000000000000000000000000000000041100000000000000000000000000000000000000000000000000000000000004120000000000000000000000000000000000000000000000000000000000000413000000000000000000000000000000000000000000000000000000000000041400000000000000000000000000000000000000000000000000000000000004150000000000000000000000000000000000000000000000000000000000000416000000000000000000000000000000000000000000000000000000000000041700000000000000000000000000000000000000000000000000000000000004180000000000000000000000000000000000000000000000000000000000000419000000000000000000000000000000000000000000000000000000000000041a000000000000000000000000000000000000000000000000000000000000041b000000000000000000000000000000000000000000000000000000000000041c000000000000000000000000000000000000000000000000000000000000041d000000000000000000000000000000000000000000000000000000000000041e000000000000000000000000000000000000000000000000000000000000041f0000000000000000000000000000000000000000000000000000000000000420000000000000000000000000000000000000000000000000000000000000042100000000000000000000000000000000000000000000000000000000000004220000000000000000000000000000000000000000000000000000000000000423000000000000000000000000000000000000000000000000000000000000042400000000000000000000000000000000000000000000000000000000000004250000000000000000000000000000000000000000000000000000000000000426000000000000000000000000000000000000000000000000000000000000042700000000000000000000000000000000000000000000000000000000000004280000000000000000000000000000000000000000000000000000000000000429000000000000000000000000000000000000000000000000000000000000042a000000000000000000000000000000000000000000000000000000000000042b000000000000000000000000000000000000000000000000000000000000042c000000000000000000000000000000000000000000000000000000000000042d000000000000000000000000000000000000000000000000000000000000042e000000000000000000000000000000000000000000000000000000000000042f0000000000000000000000000000000000000000000000000000000000000430000000000000000000000000000000000000000000000000000000000000043100000000000000000000000000000000000000000000000000000000000004320000000000000000000000000000000000000000000000000000000000000433000000000000000000000000000000000000000000000000000000000000043400000000000000000000000000000000000000000000000000000000000004350000000000000000000000000000000000000000000000000000000000000436000000000000000000000000000000000000000000000000000000000000043700000000000000000000000000000000000000000000000000000000000004380000000000000000000000000000000000000000000000000000000000000439000000000000000000000000000000000000000000000000000000000000043a000000000000000000000000000000000000000000000000000000000000043b000000000000000000000000000000000000000000000000000000000000043c000000000000000000000000000000000000000000000000000000000000043d000000000000000000000000000000000000000000000000000000000000043e0000000000000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000640000000000000000000000000000000000000000000000000000000000000064a0000000000000000000000000000000000000000000000000000000000000641000000000000000000000000000000000000000000000000000000000000064b0000000000000000000000000000000000000000000000000000000000000642000000000000000000000000000000000000000000000000000000000000064c0000000000000000000000000000000000000000000000000000000000000643000000000000000000000000000000000000000000000000000000000000064d0000000000000000000000000000000000000000000000000000000000000644000000000000000000000000000000000000000000000000000000000000064e0000000000000000000000000000000000000000000000000000000000000645000000000000000000000000000000000000000000000000000000000000064f00000000000000000000000000000000000000000000000000000000000006460000000000000000000000000000000000000000000000000000000000000650000000000000000000000000000000000000000000000000000000000000064700000000000000000000000000000000000000000000000000000000000006510000000000000000000000000000000000000000000000000000000000000648000000000000000000000000000000000000000000000000000000000000065200000000000000000000000000000000000000000000000000000000000006490000000000000000000000000000000000000000000000000000000000000653000000000000000000000000000000000000000000000000000000000000064a0000000000000000000000000000000000000000000000000000000000000654000000000000000000000000000000000000000000000000000000000000064b0000000000000000000000000000000000000000000000000000000000000655000000000000000000000000000000000000000000000000000000000000064c0000000000000000000000000000000000000000000000000000000000000656000000000000000000000000000000000000000000000000000000000000064d0000000000000000000000000000000000000000000000000000000000000657000000000000000000000000000000000000000000000000000000000000064e0000000000000000000000000000000000000000000000000000000000000658000000000000000000000000000000000000000000000000000000000000064f00000000000000000000000000000000000000000000000000000000000006590000000000000000000000000000000000000000000000000000000000000680000000000000000000000000000000000000000000000000000000000000068a0000000000000000000000000000000000000000000000000000000000000681000000000000000000000000000000000000000000000000000000000000068b0000000000000000000000000000000000000000000000000000000000000682000000000000000000000000000000000000000000000000000000000000068c0000000000000000000000000000000000000000000000000000000000000683000000000000000000000000000000000000000000000000000000000000068d0000000000000000000000000000000000000000000000000000000000000684000000000000000000000000000000000000000000000000000000000000068e0000000000000000000000000000000000000000000000000000000000000685000000000000000000000000000000000000000000000000000000000000068f00000000000000000000000000000000000000000000000000000000000006860000000000000000000000000000000000000000000000000000000000000690000000000000000000000000000000000000000000000000000000000000068700000000000000000000000000000000000000000000000000000000000006910000000000000000000000000000000000000000000000000000000000000688000000000000000000000000000000000000000000000000000000000000069200000000000000000000000000000000000000000000000000000000000006890000000000000000000000000000000000000000000000000000000000000693000000000000000000000000000000000000000000000000000000000000068a0000000000000000000000000000000000000000000000000000000000000694000000000000000000000000000000000000000000000000000000000000068b0000000000000000000000000000000000000000000000000000000000000695000000000000000000000000000000000000000000000000000000000000068c0000000000000000000000000000000000000000000000000000000000000696000000000000000000000000000000000000000000000000000000000000068d0000000000000000000000000000000000000000000000000000000000000697000000000000000000000000000000000000000000000000000000000000068e0000000000000000000000000000000000000000000000000000000000000698000000000000000000000000000000000000000000000000000000000000068f000000000000000000000000000000000000000000000000000000000000069900000000000000000000000000000000000000000000000000000000000006c000000000000000000000000000000000000000000000000000000000000006ca00000000000000000000000000000000000000000000000000000000000006c100000000000000000000000000000000000000000000000000000000000006cb00000000000000000000000000000000000000000000000000000000000006c200000000000000000000000000000000000000000000000000000000000006cc00000000000000000000000000000000000000000000000000000000000006c300000000000000000000000000000000000000000000000000000000000006cd00000000000000000000000000000000000000000000000000000000000006c400000000000000000000000000000000000000000000000000000000000006ce00000000000000000000000000000000000000000000000000000000000006c500000000000000000000000000000000000000000000000000000000000006cf00000000000000000000000000000000000000000000000000000000000006c600000000000000000000000000000000000000000000000000000000000006d000000000000000000000000000000000000000000000000000000000000006c700000000000000000000000000000000000000000000000000000000000006d100000000000000000000000000000000000000000000000000000000000006c800000000000000000000000000000000000000000000000000000000000006d200000000000000000000000000000000000000000000000000000000000006c900000000000000000000000000000000000000000000000000000000000006d300000000000000000000000000000000000000000000000000000000000006ca00000000000000000000000000000000000000000000000000000000000006d400000000000000000000000000000000000000000000000000000000000006cb00000000000000000000000000000000000000000000000000000000000006d500000000000000000000000000000000000000000000000000000000000006cc00000000000000000000000000000000000000000000000000000000000006d600000000000000000000000000000000000000000000000000000000000006cd00000000000000000000000000000000000000000000000000000000000006d700000000000000000000000000000000000000000000000000000000000006ce00000000000000000000000000000000000000000000000000000000000006d800000000000000000000000000000000000000000000000000000000000006cf00000000000000000000000000000000000000000000000000000000000006d90000000000000000000000000000000000000000000000000000000000000700000000000000000000000000000000000000000000000000000000000000070a0000000000000000000000000000000000000000000000000000000000000701000000000000000000000000000000000000000000000000000000000000070b0000000000000000000000000000000000000000000000000000000000000702000000000000000000000000000000000000000000000000000000000000070c0000000000000000000000000000000000000000000000000000000000000703000000000000000000000000000000000000000000000000000000000000070d0000000000000000000000000000000000000000000000000000000000000704000000000000000000000000000000000000000000000000000000000000070e0000000000000000000000000000000000000000000000000000000000000705000000000000000000000000000000000000000000000000000000000000070f00000000000000000000000000000000000000000000000000000000000007060000000000000000000000000000000000000000000000000000000000000710000000000000000000000000000000000000000000000000000000000000070700000000000000000000000000000000000000000000000000000000000007110000000000000000000000000000000000000000000000000000000000000708000000000000000000000000000000000000000000000000000000000000071200000000000000000000000000000000000000000000000000000000000007090000000000000000000000000000000000000000000000000000000000000713000000000000000000000000000000000000000000000000000000000000070a0000000000000000000000000000000000000000000000000000000000000714000000000000000000000000000000000000000000000000000000000000070b0000000000000000000000000000000000000000000000000000000000000715000000000000000000000000000000000000000000000000000000000000070c0000000000000000000000000000000000000000000000000000000000000716000000000000000000000000000000000000000000000000000000000000070d0000000000000000000000000000000000000000000000000000000000000717000000000000000000000000000000000000000000000000000000000000070e0000000000000000000000000000000000000000000000000000000000000718000000000000000000000000000000000000000000000000000000000000070f000000000000000000000000000000000000000000000000000000000000071900000008000000000000000000000000000000000000000000000000000000000000044000000000000000000000000000000000000000000000000000000000000004410000000000000000000000000000000000000000000000000000000000000480000000000000000000000000000000000000000000000000000000000000048100000000000000000000000000000000000000000000000000000000000004c000000000000000000000000000000000000000000000000000000000000004c100000000000000000000000000000000000000000000000000000000000005000000000000000000000000000000000000000000000000000000000000000501000000042ea6fe02855d8c72905f35f08604467117c037962e324c9a793505138558b3700c94efd9afe573212f9bf596ca3a4b42ae57f59e670a7cb5b9440c54bd8ea2961856bc4892b0b3f156ed2aa87463c389bfce0fd675a37cec77ae5d753fcf593c12f9d3f397c2edc9e4a6a5e485641163525ca802e3bd93994af997a9b9a44f98000000000000000000000000000000000000000000000000000000000000114041414141414141414141414141414141414141410000000000000000000000000000000000000000000000000000000000001180818181818181818181818181818181818181818100000000000000000000000000000000000000000000000000000000000011c0c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1000000000000000000000000000000000000000000000000000000000000120001010101010101010101010101010101010101010000001012e5643e26da426570dd999e0e044e5f83d60f3cd813c55059bc0ea0f4a7c9d413b2d2cea949fa0876265cd8eee3a4dce1e243783562ea07e2de537f469f7bf627abb3d4560e786bafd52f77ac52dea36c50419f32386567bd969b0c38e1bd7405d339cecb99fa74bfd631917f965357f0341d8c4dfe6a8f4b621d8df54c82941d560ac24523012499eeca2594f20ce238b7d21b98ad5c638767d70ee05532c2183e6d64e69b005709dfc4771c7ca5981adc54f3e8bd1b00222461ae90e44eda2f1d4572fe0b0b23100a7ea6d4780b25e826e41ca9e71897e010bcb218887b3d036d44eb30a430b5cfc6660270eb5fb7f274689ac73dfa53ba9d0739fe38637f01f7130af8c5888d4c65ea68109a1d58fe8d7d1ae62098857b0a3a3dcd393ef80ed8bcba6eb5e3b4887a32c51c5853b97a5eb59c87c520f36423c6d7be06071821ca1719330de5e3c51a521778b49cbbc1d53f8ed42e0562bf21ed72e8cb9a410b0e82ef5f7276df41353faef675fb408aeb246b6e2f704cab99bf28d1427e7b0fec7b9929c6effdcd045d3fdcec1d1b73faed495444699fab936630d69b519f0bf4f1453db36439419dbfba703b849d1aa5774fe9a5325e5bf3e7cdda9d1f7f2a9c2a035c72fd4a3e383306aff03448f9accc08a2c665837560cec8675fe2512bfaef35a8fb7df08a81001a7fd4903849c0371dedd87f31295f46269c5205dd0000381000000e00000001bc00000090c13d9d0180efb0cf4a6d1676f61f735ed5237557862809c657aa892a154646f002740dcac518dd1d753b4e8c83cc4b820d7a92f8d3455ef8d6b782406a966e38abcccfcba2bece327a31225662a0e51617a0f49b0b6dbffcf2dd0fd020106158903111091982c078d4c3674969f364fc0a71e2354ba07e5794615562312bd212033dc0cfd54419fcc5ab8efdee25f19100000090dccd8f5a0daa473e34d076eeae33bcb6afbc88dbe6897c7b315149811fd15efac96150d7e0fa1579376d42f4b911e155eda5ee5456a9d6c0a699643c6beff9cb0eb2e1b36cf3fade1af2b33ee0c0bb472acae19d029a57a53882b8ba8389fe0e30429fdf159c9693fe2006334692e67b1b1fcf6fa166824ec7076564e555e49dd085a8e4b54bb1ac0f18e31118190e6600000090379379b71c561c7622aaf4ff0d200b4aa507de6b631c841e84ec50b80fb6719d5278706bf3400d47296446f1c13e75cabe1732750f02a7ba2e278a6f5b144cd0333519ed882d956d16cc45175bd00a6c16cf2171d48057133603ac31d8bc578b9b481c0a2040a5725d0224e373b3f043247e2bc5856e7216bc45fa196168132578c74e26d88b4ff36eaef01d3c7f915d000001bc0000009089c7007a588bd867a1faee4af2137ccca39e4d930507643479212f21630c943c6f430108f4bb721838c8f1bb34ff73841fa2c37934cc6e2cdbcfda0e9c468ad150dddc942d41b76c0758433eb4a0242e26e30592948a866293bb4e29a584a8907676dd085cb9360afff7ab84ec5801fe07a56a33221144d05716a7f2db7ae035b7e80a56341d289af3914b0721a00d08000000902b13f3df874d19d5829282e4eb39007639ff7c211e86e7f8be619ca4ba39c5d81c8d145a5192f4a3f10895e2797f2e25a7131a1bcc6b1062f6af45c94d85de2c419ff98bf9cc3715c1039b2e8ed4ad6c0499353d1db9426370e35a27689ea1b19ae662edc37422f8cb8592f9c6f8fde61dd54d1fd3bfbaf5023d7bddf2311ca15af50e55673a51a0a914bf4532c9722000000090539a9203f6b58beb64bc593fcd09ed470344d5394aa75974ffbf7f996c7b066a8f2175d3e9f10ba74227458fa6150ea458ef71baf2845c3ce67f771741aceb9abc9ec54a601399e81afd137ad3434457239ebf4d9c8c846abbc844ddbf723d686b365611aa69147196cf8df5c22ea6dc27f19ee20cf6fc0390a49c304a851e624db98d7e5ad0f450c3c8bad71b4a5de9000001bc00000090da222fd69c4e340b559c3dc9bf8d0bf6008a106d09f504acc95a3ab1c93c1481e2e2704e786271b93745fc97c7b0788a6eb74aa6e72c6ad2b6877d7439eb41279bc6107b7794a16257bbb4d0a20ca42303e778f0158c37a7cf4698c7dc402292b6d224b91f884783885a44c4b22cb2e1197b400ffb4fe08750914ae9639d5447c8bc64ffb989e07b8ce53a2043185c94000000908ea72c947ebf55d77062f0b89b668a142a198842dbd2dac59f115887ae962f7c162ecffe95eb0078e9ecc34874060fcf3da11c14e08a92203b8fed924ccbc787482875ff28aaeb45859aa0d1d01db986137c1764dc112f53424f750a28900c8c53e6973557e33d7376e0730bccf2a5d606a3e795498757161646d549a0a5af18e3958557963648083d6e76c9fc6ad1e100000090fdbeac241ed3f7ca3be7180b73150eef39d6a366bb834fa7903267719e26e83579db2cd65cb64ea43a9d203f5c8d837c1efa6325e91e032006a7f5e98dfbd0eece6aa4c7db4415259601ddc5b049736c0bd34df57ddb365dbc441b7905adc29628e5559ad6d5b3bfe0f0392ebf43fe810d8a808231fb44958c9a96fac08161ac0956714bd3c74d9c851197ca7b1a8c57000001bc000000906e199cef996acff8e6408667d2db579909371083a2b40e70dcd78a3b6c655ee906d32a6a2e4bb9d1ca738f6423f006ffa3f7ceafd91e96eea421645efbb0e40388f9687acb66dd29aa5483254c111a831ba7e8598f6360924da54146a7a03d128a412f9e3ffd0397856b66ab9e8b524925cd75b0ae28efbf9c70b3f5b6a97e3f035453116809651ce45021ff596167f200000090dd2cba45eef3205574b614aa62165a4ee28430fff5b14a32cd63328c61f81579edde9efc3dfe5d7dd1526640f56ef9a8413c7c404907d88f32d16dea6f5958a9f56abce2a07c97569f8c26bcc74f2c9d141b0c142f32949e264a3fa9d1e77083e8b916c2df83261c0da074fc461a2bfe2e1c37540455dfd845002c4b409f9226cb252a4f11eb97706bb34fa6679068cd00000090e69c94a722b2f3cdeab1fe8314357bd692975c2261756d4f2e42893ba0bb2bebdb3512194c20a5b67bd891cb60c2d1968dbe96d5484b4964a5929de3c2a5cd0effa311707ae0fba27fc768c80f4bce83231d783024d854556157346463fb7012bda42dfd618b0aca7f58cc31dd15c6972303ff2ed3ae6d388f478577aaecb76fb12e7238ef29c2e5505477eb86b80477000001bc000000900f5ef582e8f2b358a287f69fb361c846bc362796e2766f502d677b6146517246b69ce262540e375c2424a887054b16608904482f40ef323763ed9e7f299404f25d608e6e0e4bcda16a92354986662e882eda68e23fc827ca6597c85e7b2c7f1a5f9409f6c7223104cf3b5dc3bbff99071977631eb91b2113c5fe3e3ff3ddc8da3bb01bc785683396c5470183f910dab300000090c51abbf871caccb44d13c60c2a6f8429140005f820b70f74077aba9c7f32cf74d9ece0ce1b24cc19980d787ba82d3f9186ed2d08888626deeb8ce1f74846c70ec434efc3e33bfbc86213df64cdf73fdc21fb971bde4dce6ce0cf00e204e065c5b1f57cb613c3ed8ab6e54d31c1636baa264dd3ecedfcbbb1dec253095757d12bca1d76d2631ef94e76245798dd47af030000009022d04f9051a6626fdff3d609739cbacd11741343c4d8ea3177ca242e4de50b37ccad4739ec2c882d5d17bd084f1d3fabc72268d28193b522600a4fb708231e58a7ef5b23f91389137beafd14a7d0df55048f605b84bdde04f25c61ba7101bd5c58d397375879af5a4ffe97152630c801260d6e9ce6fdcaee074e2f665238668386b35a772a861eb4e9b3fc3556ca1974000001bc000000907e2e2070eba81d16a60b826b11ad0a7a348148e4da106d6e92e01e2ca53e99cd643c4faadb85efa26d2686e15df7111e080d9b2f08b8d1799dede4f9091005b95dce8018d40aa6bf530206560bfa3b6005a351fd26639df63ee65b51de7b68e077fdc01ea04b73d878c3895dc223130302ce398479d642a13db0eeea714edbf4b6011a4dce09c1fa516a27aad43606e700000090498ba863b488e2698f2b2020eb4c7927ad3dc4c9bf3d7cc556c123db1ef46dea337cd5cb99ad0b8e521103a54ca7444a8230be7749816a240d8b0f88522c629f98bfc97d8e980244e4aca243dc1d8256289d3b37f200f4c5c9f4cd63a3edb7954c75d547577a5d22bf3f77b69953bdd323b82b33481f27c55dfc4f15c859fd27da61d786836685a16122ef59a7ca7ac70000009046c3512b1c79aa1e065a8e4256c595c9293dca1d56fd05a119cafab59416499ad8aacb94f92d99388f774ff6d7d0ba468fdacdb8d8d595c7be3ac58364d84d220bcc50460aaab158b837c1f834af3bd918cdc85c632337166ef39a085b6112604af2ffec61e77e9023863308bd2566751f5437bcf1ea2387b364b9099d087cfc5bd0e26ecacbe348de1b418d55b4875a000001bc000000908adab8f017417b5bd46fa1e9779632be5afba45eee6a58daa7754be749861997acfceb86f08f30b61ff903dd7acb46108739d67425d42f335498d98640fef4cabee4bc1593be601b8f85aabd966b24fe2147a3b6a75dfec1d644e0076f106a4051769f6aa62715d2e62bec25379e3fdf2091a5b55925577c3485574e37696c83a970b96c169e46877baa784d8a7666c6000000909d4bf0f2d2de7b2396dec1959f7b7de8b805425819c8b80798cae313d89e545d8025ff56d9a92845135ac58fe672a0fc92245eed345b5859f67540a5c19c80c499374d282f293a6c6fe12a8831a09f4a1107c3e23b62b0c34d7bc37d1fa74e9a6bf158f1890db25e9e5af558a463c85f104fffd61d3945110ba4543ff2a78e36daa74aea25b0e4905f0b76b8102901b5000000905584f775caac62723960eaffd596a5f64c7083ddaabdaaebfc2e60fe575109bd1e030a83c7d98fefab9494250ea6191e111f06da98f325b6db114b081d8277593d7c7c21b59248510cd872041c66e8480b33673cd6947e1be4673318549d2fe339e55c81b22301fe039ed1f9aa1004d51492f446b0797f7f27076842a05de5d9c53a8f0b45987af90fa814f5014c7ea8000001bc00000090e41c2efc5d16d3c931e59cb67106901c97b62ea2e65a49df476d10bc4193d36deaf6fc746c076bfeed7572d833c13ad4a51c933a86ac96ba919855df3c97b3a970e095a8de48e656eddb0630d208c43a1ef50bdfb97e408c7228fb2a13553807cc7fa20370e6b1818b11d43242ca70fd2686012dddb4a7920ad9752c93b0d8648338b7d453efc270a19cb0de5fffa2ad000000905aae1d893ce8543ab9ec6b411142dadc73a5c8d4318ea84c92f1482f3ee4c83be1db4e4f24090036eb9aabdf351325fc5865a36ec5b9d8fae372d8e5e42a97872d7ff6161ccbcdd20d56f7328bdcffa2090edc7fa952da75dd796b3c24f7a505acf739c62babb1016e67198d76ee4f7e1fde045d25ee1bab55b3494f55648df759e89e867da0cd6595a0916a0714905300000090772b55f21dcbfdadc07da90c672dd84e3eb7b887beeb448cc1170d05aff5ed6d2a0a67aaa36d0b76ac95acdde219bc952afebb74bad19640888f01e3fb2bdb8aaff26919e5b4ba2963018294487653341bc08d07c211cdea452937f2a2398917bec1a4cbc26f5a7a276f95c7827955e71b7c0d5e6b2836d8d81506520ed72933ec1356eb0e86b950100598e01736e87000000e00000001bc00000090132d9159c2693b4605031d9d3a8614931fd0db820cff1586861610a76845ae37c482268160a392d9503f26c73e4729eb9ba4e48e81ce46acbba5940b5befe62746a0b0d404d6d2050905640ff7ad60170968822a7680b69074574389dcd34b1bd979f232d474a3570a95c3b2720db7a31ce639fc503648592f9b394d65aded02aec9957f94fe094920fc061885fb59bc00000090dde8d4d0b0994f657c19ea77b96c20bccf7b42d2cfc40fc66500b6bd4b7b16f72ed38ee66714fa0727b946425817164bc9957a9fb8e5f742010a8b25824fc0b59941700ed1be933747bc2f18b35a4f01192bb2cdb5e56b6e94f90de95f2d9c8cfcff964523ebe0d4fc7ce9f7ea3026860ac8cff5739701036d90d352667aed8db6aeb4db8d1fa8e6089884c62c0156f8000000904153b073474c5db528f4be51601df0112a8d4d4ba2f2dad5ec82ae03437fcc1e1285f240c75a7713643657728145511fbd10da85ee19bb331be6067e453c6ed6a004eab94cfa133987db6b24fe4b4b5328f6d5edab27e61ced83baa42c7b3152732865ebc7f220b1f139fa6f27d2e05928f542135aa723c11ff508b83338960cf2e075bb43369b6ed46f309ce7e2582b000001bc000000900996b066ce34966c5fa8466a75f45ed2238062b136cda336793b7282c677d084bbdeca74cd1e06ee73e03a4b2319db173e6355dc2cf5eec9a1a0b85dd39b9ac260f7cbc3822ad3891e3c993c082dbfcf1c099f20d14abc5f4eb82e6dd7365592bafeda7e046f7f0396ea4a7b92e91d0513745d615ecf41c7bd8d130985740dff55a3dbe6026a5e80f8ce6951608e9add00000090ae6ef7a3a04a06aba48c357353e6c650967659f01659407980461c4c74de0884f0710ceb1572c65bdaa13b1de3c7d87b2d7ea4c5e175443f499cdcbc419fc4cfc9a6ddb7f4203163cccaef1746833ec62417f587cec58ac40abdfba21cd2add2927c04a6a95289d9a28ac577acb8c595239d5766d3d4c2393156ecb2a13f9226fde236435950396b6a56ee1870822fe100000090f5c8a05db5087e5ffe39815fcb37bacb14bfbf2e953c52772196959a95d165b703dbe921570b16991e99e15b4e2bd68396c4db8e97f4160356add145b3e9ff608f530f2fa55f9813930830f8df5a148e3045546abafd7f81a231ca7b975abf2962a5dbd88b969e5690eedb26ce4d3f30238b380c78bc2d1e4d2e5e919969cc45e415cc276965ab136d16a69cf34758f2000001bc0000009001df829a357a44970ee6cc4d401098330479eb359c3f69bccf7858c574097b6534bb04d7e3f8110b15c79e3d77ea1fdbefa57dd532ba43cf31660e9d4d0afc5b16696f5ff10e768ccef3128d6cd4792909129b9f9c4fd742f07d5a5033662d2c73a0c29d3a3a120535b776e0371fdb32198861115ea1d29ba8d1d39c9a36ad5c70ee0a28366ca0b0590c87e8b5b1453e0000009051c19f51f06efaeed558e6007aec37232a35fb7b7b54799b265865773dbe7b0a0a21282c2e7117651bf2d581ac8b040853c9a1be9b691da9d69a81a6ed5b2f186b05566a1faf567297233df82c15e9b515ec50a7779d8b2a2ce03c230e3c9131c6fceb6ee0257c924492c071100715422d7393f65393f3d52d1a2713d368bf37756f50a18bdbd23e4a7c9b80a6815e2d000000908f2cf32ce81164301b92839f7f83a03f1270b5b93eee777ef10865560ebb475dda85aae36d47b71dfb84331af504fc7e85ba2691d5c08719ac8146c349c9a628e6848c67f3a94d4955e7e77dd73439602c8baedd0694dc98d7b7682d9a2be35064f90b4cc40d6128a1629a383a63e68b10477a7c93e1feb16d9d01f28250d981a0014364a7eaecb958a9e0b8e1fe2794000001bc0000009078bf82480ab9af379874a177f5131c5737a1d315afb04bea2abe470b5c8335c41de1d90ab17530cfd4df0c0053968fe763c4525fe11d27e3831eb0dab5ae94a051be0afdd96c5e52bb00a90bcc7240f007808aedfdf71604a531f3106c8b532736c54d7580f5db68859c9221a6a246f32d0fd2fa766c225e76c431c23b15911c72a6a449b8b332d59a0ffae46065d37b0000009079c4088b4916ee3eea335fa522fb8a2c817929f79779914a6d70bce9560db262320f4f35e377461640fd8f5ed83a8e2c1b6a571b50dfeb335f0ec46eea761e1255947c339d960afdb69f462d4b4a96171f4c0ee5369eda087dd385d3a73553d8f69a66d3cc981513d3f7b97ea277c7da13c5ad6625b3719cc9922a33b900d509372e65685073456a9689d8f3e671cf1c000000903e43310f6a0f4b45a417eda3bd54c5655b6741ce1bf8bb52c759432201cca9859fa2bcd9d25c38eae0a2eb724da6bd423db952927ebc9260e130c594f2573729e52c01a8608786d48ab7dd4f9539f1fb13dc2590cd703450457b7f2e9ee5efcedd9bec09482778efa1f2452087b5ea2608c16ede459ecf2b771b8348b00febdbb4c743a887bf22ab9db65591cdae1ed9000001bc000000903df172e06543a3182cccf2a11084765c3e6bf28b0e0b87b78d4995c5262966bf6e76411c6af26edb7ff83135231bd395d969a78aeabbf1a009b1e92aed0d46bed700fbeec8e60bf18f004dc464e29ab425fbcb2f9ce3eb20afa7714cfbded8ccad46c7c6cb6631a19d5305878f91e6650452bf6b77000046d7e5acc19362d74fe0d1d7cdaf7828e4584e8c7ff5db0a3a000000900e7c0465de744c7dc835b984858450b15d0c9068d49213cde3badeb7b0ed7ead242ef5fb2a36da2327effed1d6e1546ff33189c5c9d8985ee21465891e46c287cf13c5fb8fb5f3706847bb3b75c11b52156bf5b51d8b7620e6790601927a544c713b70db2740e3d511d9fcaa5f6d146d00cdabd162b35f6d7f4f336e4e7b33bbcefb0a8d120108dfd68e915fe346a0e000000090ba5272498ab1c5001f484d38a82b91f3a255d7a5b0bb835742379750c42a449210c814730296432e381eb32d239854ceba60841a3e18cddabaf0c128e9dd673197d0e2ed6c6431cd52ad32a107cd955900cd6b3a0c054e77edd28d86860c5f63a5c48ee87f9b9ef71a9b3a72a01ada8a2490ea1c08b5b48f642f4db559159af3dfb462406abe387e350171ed76abf47e000001bc000000909d08c99ea2da1e2e868070a52b6717503ea37b1c4a801458bc5a5090b2d976e9db9f34b3807f6b9f066f6c3db6fb4f7858e31209b97e6552af165d4f144a2b92d4f677db6964c37dcdbc6b8f2ed48190073dace76834a34d319c7c8008d07e44640bb1db4b6ae72c174dbf5f59c7e304145c4b213d5e30dbe7cab6c50ad3c43ac5df01bacaad452dcd852eb8139027c1000000902f2f2f4042bb83ec7c71440941752fba92929c70e6bbe524fb904414dfd4ca683490c74a9b707a8a94de43c7aec160c4025390ccadf8333c5a217afa28258e83dcfb7c085eed7a5cbd591cb316bda6d60db2c649515dafe5a34157bf952a8837c0f266e9bef1e8097c774c094a1e3fbd221c65fd93c3ab6dcc3a4c72e9c2b51937411e9e935f0e368a8c17b722733221000000902ba5e91c85c88efefe97256b0d2a285261b9f3f766ece5e6ef0d19086b13f410bf9a24df9f0cf17f3abc9fc8d84145ee0f0c05118ef0d0fa0d99320f5daf8b1307513f7c46a8ca355821b98dc7e409a029607cad1fa4290d08b0f377d632e8309fea56003f2abc8f8232157eb0f99e831ec90c50c5c0d90609f5b92bb81cec93f57ebf2e8a85934958ec194a27919ba8000001bc00000090acb6759efa9edf780a8696476098e2b0e698d37f0529cc7e07771e20805ce183ece93a6d8220fe5e41f8f2c4f66f7d7600cab1e5a432239448a4cafac2664f29706b686ecbb9ee7a585e07ac328059a402ff59578da4e6c644f587093d3adb925e26aec2feb8a0ca70a89f09e36c627a07281794087566010deffa8026376f7486b6ba38e3f754db746cf74194a4650a00000090cd127b6b398aa63a9a73b1761bc918762593612e1270efd742b9f44ea325f6a290fc37ab2e78d604f3474b42314cdc14f10515479093ac62e7fb8009218217d17dc2c1be6979425d1f99ef36d05a258e291b3a3cc7dcca71187fb2469a8210fa7d944673c6612a74f7fc91d0d740d4d2201bfd7ddb9f169445c7852cfbc34c98457bd126da955e97f4308dc91310a9c600000090e9c97269047e138e4b47b8cd15b47f75db80aa24ecbcbabbae439e4af1f5554eb1b18500ee95fb4e5fa9fe8fa1ebc4b2352662ad8e557221c17098a3323418c6a5c6e209a9eb3ea6150a37bc5a1aa7760b77664e65a23da337ef538d13a8f322ec6c0cacae03379328a80650cec29a9705ad4a8c798250af9cf409b45074f75128973eccb68e627e2aba87bd1f35dceb000001bc00000090090959743b24692cd5ea95be03a90fe28eddedffc9caa45766141e1a454ae3aa88b9b51520fca9fe0ccab25f78e313a27df6c3fc31ca535fe4d5ecdeeb4ae6cb2e9059afd5036c342d0998d511a835b21e9baad20c0ef3c5be298e5273eca51df8041d08b4f88e08fc3695bb7d3f126a11b4f9af53680091d66168b8b4b2ac9b112d58df3acf91a5c1cc86e6f488c65d00000090d05387d02c443c7363d680111021068fc45fcdfb27d26f3914f05b48eb73dd6495e00c8e192dce422f7dfff826c41e7a5c98efc82d56ec2a1856b46fe18103dfea5b416ea3abaf2491cf6cf960bc2e9f1d5203b3f2410b36bc309f7fd06467953553d215372cf74ce674127ceabe66732d1fe77f64af1c2e4118d09036bf5929f0339a26128b5310bcf267147b085f6e00000090786c69a19ad57b5675bab6576b4f0fe2d6008f0b8e96b4a5691f1ef61b7bd2d3fe369e73b7ba2a0329888bc9a05d4de7315abea648c97744c02cdc0247f9477b634484f3e8daf469c96cfe6e37cd850c26640cb55b63489fecbcfd9688ccbfffcb4102175633b6a5377efcd0b7cc17cf0087ba0d1653cdaf6c68d49fa89706096ea2d7a9c29ad2f3dd867d1df70859a100000e00000001bc00000090a3876e16ed55d821d4636554fababb1fc42d06cbd92febfb62719d17b0f2bdb03d139f03e172349fbb12fa71876e71453c43e13ce97c64f8dbfc93415397633a065a1d515d26b62f3363bfc2854f8bfa10ffdf2a4efaed8b701374ab7f1e679a18ceac9c210fcb9acafb8cf37a73251f08e844a2b2001c82544d3378a05a9549fc7f61910e88cf90347073fd6e82835d00000090b5ff3c7f2f01945fb574824a039d5c8f42610b4a22c8b38b84cce82196b2f2ebaee6887ee5b0cead8b2d6869905cee40342c48e8efc6c2e9f832471f198074b291669e0ce93ba735756fd1c6fca3ebac0aa462812f3112e86d740a2664453eacea944595a408b3d4d8db332594fc5a102aad8663729ef614958a89a8b811cfee1d04540edf80cc168052d388469f0e6000000090b88b5d5719cc71eb2bb8e65e65d5432c51017975c69c91239547519b9e3c2d4628f9e599498bf8e302c4db9d1dae86963a18265772c4779a629a902121419e70a44cee9ae1129d1655e1ac4b1b25df362e67bc16884a13f79792cfe62a93585e14f29b2afbe23f15d1615f3705caacbf2d349c9d6a636d70237841d62796d49e3dae9b0c72fcc3b9bf91180247730568000001bc0000009006c722129a887a0e14bbeb91d2b1daabca1e3ea84f6c08eabc2deda6f75464cb597e5d05d0d823f8bc5f61221a336a976d225ff6fdc4a55a1fae420affad4450d1188825bfd87cd9ff4dbf25801900fa19518a80845efd7cb9eda2de5ea170cde239b239c07bfba655a5bb7dd54b5898210957fb956ec97b2dccb426dea1f357cfd8cfec662257afa8057f879a25c8f4000000905dff93700500f84c17a5d4978e2b0919e31d688d946279884a5cb09846dbc907b40be46b703041b02b2be0b1816374ce7403b92d14f4bcd334a1ca74ed7deb0a7d4a424a18cea800d23aac41f4e319a405f5aa27f508471258f487eb39b1289d102520641b12a47ecfe0d755b9d92806174fdbfd263a80f130e1b44f98423f769a15417b3298de41caf2d78f00850f5d00000090bbfcde9b17102b338768d92ce80368c9a2f4d6949b28be3a44746ed12c0d9ef2e2b66ba398c6050fc7c37ad565242d970e3e439bb08ab9d45dc897ee4828ed045dc4d2b0dcdfc7014e47320e70b14acc1e305b0d9424ff136843f472581ae3891bba2a8452089e70533c2466c89e403d038a8d402008467ee4577d68b2f14766370abc09c249eff0f906d0d1e093b8ba000001bc00000090e31a0d8d00cb9f8fd05817acbbde48215cfcfcafe44646c8d1924850509055c24fd79df0cd8715464e5a1c9bb6cb1f3a4bdd663963eab4c0752aaa1cff3a7b2eb75ab40a996b93f0f2302f6ad963806d0c503bd84ab49a02eeec51d263f1994702f69b0695ceb6cabeb7bba3bf52ad83237badec785ab3a745914806e6f26953a6ca04fc3d7cd696209bf5f104f86ef100000090063f775e7ceb26fe011707735a2e5888e7c230255e25e0979035744f3588eede48b272a0cbc80337c17972944aa6f28f70600506926e61c7630fdcb977bce23d8481128c814a778f9138879e742136b00d089f10d3d8c533045673b43b77fb383b4e661ace6d8d0162c266fbb9a6ee1d1dd8d16898423a2f00855cc213ce2d9044deeecc20a7ee74100ccd6e15a16cf300000090c9f9ff48464c6f94de4ed0abce66d7261db88bbd45ded714b66fb19e5bb89ce727fced3219274c155a314dace0bae0180fa8ab396b989830bd01cbe7928ef72559f89ef4d3d39d77d524a36e6816df1824dbfbcad5773867833c941cf338b17473bf2b82dbbf7946637b68009a1c0e1d170670a34b5b36d17e8dc7a3b901b710cc234ad174728ba4a1a12cb20ca5caf6000001bc00000090e482d47efca5ac34305cdd7cf1e0357dc9a3702db439d0ec32a557be756f27bb31464cf5a6fcebd489d99a93e23f8ec3bc9d6907bc21581d10d66a551180a5d13cab0d2bc41d8a1f6d2352bdb9d51a042d52113e3b937d9964600d48e6d8179044be056af36b7d28717ec773fc116c53028000a5f29c579fab1ac3a2b8650800ae68ac9a53a1f275c208c389013bba6f0000009089ae58cc01b9b4d1988af7aaca738ea51ebe24dee59a27948325a1cbc58e4ab31312369e2cbe9b0b21652e91072f57dfdbacdde7b7b6d221b3ee1c26d55baf5fc7e667b3574a6deed960f1522669f71d13566e4e0b0112c5a12585f5608812a6c602f239e99d3d82ca640ee8eaacfd080b4d7398bec0f577cf72403ccbfbe2f71dcf9ceed0499776ed5ee0c4957cb4c600000090e65d9f202a140c0a2022b6225cf2558d3f5a74a70aeb12acc459db2ca2d3e1826a9a37e98ac6b7c01a555e2114f7951822da3937d011c7a2cefb4c1b94ef44bba2529551281404e375a79950501261b01268dbd966ea9d77da87d9fe434442339186c81fa5c2dd31dffe8c23310e7d3f2a4f8272093f358c6b080b5a38f487a72a7d704b32572c536694618194172be9000001bc00000090e4466379aa91f3bce88e053033ebf202986b24940b07ca54164f0cccd41ca2521d2f1006404038afef6819f047d200d8f16b955629c7bec12ee1c5270f0392d8c98407c12448a429775bac3aad5cefa004872024a2b68eedad94e7663e2f4b21b4bddf32d138d844287cada5ee2dce080a36a7e159a32f219ee6b4e027c82ed2b456ae6e6499b13eee1581011e2e6b4400000090e3038f011ecf8122724726fd8db040ea9e24b16589ed2635f3751b1ade8596162fb96587ae669443d81dabd555a5358cf2395769e1079e10b467b9392e72ce23c810f6ebb2afec33762c8929f7b08f5b1883ccc2b03ea2df7dff0cacc8a2b9d47c2cdfe9be11b2cb64aeee7b22bcb2c31030ab1e56b449cf77bf7341df47fe48f089d5b0419675f8ff6230668da522000000009034fda1924626a90d62ba3a0e77560c6061bf610393bc208e92479ee7a591552f2ef5d34b8cccc41e98566d095b477b6f9b35a0d77db66384489d2c5b759f9b922fe8ca8d89c1e019c90a306a9b228405213482b7e55ea72cfaa28a983538434189af956e90ba1ae65146b08d92d451681b452d1ac8335c202aff95a6f01d387e9e377e313889ce43777c5c0d4915995e000001bc000000908300f26d3083d051387eabc1fa6ea58ad6111d5ad459cde12b4414126838bfe80feb66f89adc287849b52e352bb159abb21d7fe5b2f96afa5a56ac91e2393a7f43dcb867527e553df0b82cd01ea1f65110a950eb54c3ccd5692340d5e4e258770a4c4f5c869fd017c55dd539801b691f1657c78f302683645f577a3811910cbdee1cc7209049d3b1f23eb5d8daf1e1d0000000908480b44d561ea59bcbdac63423d63c3d45b314fa17cdac18a35f02805193dead44d1675d119f0377ca46c6625a3a33f86eb2cb6ee6ac03b9311690ff2d4ddb5670d34a8a577079af14339deb75c09ece1dd33cb17fba31c4deedf7d37ed1b5cefda8e270c3e3883370bb8285fb8fb7dd1527cae5b86022bc1d7c1745e0df1cf1c2501c3398051375ddfbffd4d5ec4c8f00000090770fe8024a65c310145b1edd9638e65b5cc21a4fab5427ee0d5a529aa0f770e6a209dd8608d528210d73c37e2159f2774716cbc7e0dccfc79e39b6b53b762034e77d067237c1de74766583c1f4484ba3064242fb6cefd1993cf4bbcbab8dedda0b7a4546e17068512ce6db5b71e8fbc31cdc30adf2e51dc6858b4865c5f96d769aa34ce8f4b63763d2e7fd0afa3ed132000001bc00000090290b968330d9b2a6a8429b395aff8a353dd65597f38f50ae73c75c1e4b471995b3b23d3d08aa1f5ee4a60471053d1d78fd50a24fc8f4829b43aba4604342c1080a603eaef54b1e03c235f151f8a635be2c715b158619bbe48a16f6201dd37c0323f59537e0e0424c2bdccaf24c5e3b2124f6275ea3f9ab4f0f3393eac7606405653742371717aef2bed00c867d5135b800000090003891a78d433b9cff782fab1b12d3488d4d616f84cac4d51ff1206015f7f2bafb9309521c5425cedf5e4a054e2783c4fd49b54f0c2758c72459b04cf8f3d217ee25ff6369aa0f98a8a1f28bdddf165b0925b0db8f19a1cd1528dd5863d25ee007b07e136a6bbe605c8b5ccabb4e3b8025bf5fa4eba51c3abf2116baa338643c472c3f67fcf8f86ee1225e2a68acb8fa000000906240c30ecc2e1b81aac6375b7624902e826c7ef31eaa1edbb328de81fa510d77ee3984891fa3e065e55a11422a20e7837fa5e2dce0fc007b6b42349a70fd49ccc7103ba8ddace83f4b8becba2cf709c41e377e7c37de9cf6937e975277b598a1b1ed960be7f1cb1468085246647c5c6b1d305e6c6d0704f6045bc8d0ebef9527ad356e325a7727dd1981ae243eb00111000001bc000000900e29e1361514875a00ff70111ff79784f25cfdc3af735a5e7b74e934051ac4ed1992c3f8578624175065276893f775acbe3ab7a307f6352f37128fd69088715466745dee45361e1943a1bb42c79a4ac606f0dc81e6229de80293a839449cf77b84e6b595e9098516dd479ce5ad0d99680a340e7809afc785e4b448a669c076c11aa06f70830474b808079396468f886800000090543bc7a8713ef2d048a6b7d3cb0420b27d2ec2d1cd4cba84c7f8dc2b278df74e392acb5ea8f63992cac9d830c4c41c2558dd15068d18772feb80b7fe078fa12cb1ac04bdcc5f1f13d703b8fae3e1d9391bdb20c632ee66855a0f9797e82e2ca6c8e82b755fe7ff70343360b46364296715903c0f9332b38d5c5f82d5c2678b7be0a1ca117998466b08683ec43f685fea000000903d102425c2f6a06dece97ed3e1024405c8a4b6c80704c0107dc067e4f0ad0dbce5a9c66f477d45adc34a0c6aba10bd89ad720b07508710262f0bc332137a513b6ff63a0de6dc5d1c835dd8fb7b12f0072212f1ee47da9cc45894cf5a987c44bbf1e3d4d135d391d04e725237805b4c1d01c79918589ee1a68bdae93bdc9cca3150910959ab78f4ff7eb936689bdbde9600000e00000001bc000000904f9a864e690819a00fb8224e5d3155788abeefab5507e780edf2a71530813c32f89f2cdab2818b50834af7fe6db96dbf98be1b603550bea8f83ee2e9ee48276318716e1b76c0d7ddf83b13cde5c9b72a29449b6a53fcd372c9435bd66bfa1f1e2ad6f334452b04ab28e9140fa760652b266637eaf4fd6c15199410e0442dfd6853ad8039c839cbc38c8f8a641b4557ec0000009053778bd9d306881e6437f02d1c060c6ac911dc6dc08e14dc2fe7d07707db0bf6d1317e435d10bbf694eead58bd9f247505f45d2474764f9484f51aa3d47b9ece0c873be7a8eabfa750681261208a3fbe1abd5040e0f3cfa195fa47e57c9eeef7abbcc9e44a7a410b8f642a7f73172398091c39940744b315f2bb1aa543bf2300b7df1f145e51a9ecbdd7edf6c1f940ca000000905f8c5f38e2cd1526e302f63617c4c9442d7a701e64f186f4643495bb0f2225f4d447161caa374675056fd347cfc9c326abbcddcd2dbf7fa0a7c65d66a00c9267934cf5024613982dd220b5722e732f2b233018f448a53711c9125341245ea58ccb0319c067fcd85345e2d7c01ddd145017d6eb1fb8dca36f5aa255c7d6cf5d0fbe53d2280505061a10fae56a8037f9ef000001bc000000902d323435155354833a8968b946c70a808c7e5a0c957d741deb6d5e5a8de5a16c9c4e919d122e71018820419b3bb3ea11bcc20004fe62fea8d2ba9fb60fb876b820cfb3f9b1e9a4b150ad8e068ff23c2c18eb725ef932f7edb2f127a03e5f1e6860b836f2bcf6d158b5436b373e26c3c5236af647d18c743d8f4d0cea5c99dd134b47c98959f3e21dd4d432e47a953b35000000904550746a5407fc155dc61fbaa7fd755c1eecb77e8436f97ad949b11abb5620d73e5d8e0a4b17f134538a6acadf3d0dc4002abc8ac8e3346942c62d5987689524de70ca521b9138cb85322d3d139eb015024d269932c7ed0293cf0b10aa5e4fa1aed8b334bd2da9538887291d4a45908123521208b53e8802d8822973c96d095d142847fdd2647c4096490dbc21b89ddf000000909e6a9f692303985214bd3d440f42da18221f968a9842001de8589c9cbbda59b89b0f072eae9806c576ad4e5d36ce09dfbc1ce7192fd51263bea155056bffab8c1fe28c1d7df7cfd69364dfa06463143e1c23fa6a033cfa7aad7ae3d3ff76ef9d9b02db4c233d7e2e273e1363d1aa88510e897831bddcc98055881aeb1416d3a6b7530b777503aebc2e54d6ab10c37d0e000001bc00000090d58a0acfe904837b752f41eb33c3d959affde56bb5947f8e20696e0c68d4e953e8079930620497ab7e7aa39694f7243ece745b53d450678e9f989059ce3c00a2fd2fed4851f4a2981e532c924a4229080d331f051722acf173ea3580dd246afb3f540af9e403be1f550f4ca957ad0ac10fbd4a4d9a643a1f0c6128d7bf44ad7bff2e84cc19ca5db71575b9b52076e5c50000009097a819c4b0baca0937186c55c7840fbf353123c45346afb6366ce03ed1007e6cc6425341d00e7de3f234963e14b1f36990d9a08170dae6b366243b9df8b9ed34c5b9c3752428ebb827164ba27345ac88268b66690366970da8019354582c203b0c91e290f71e0eb314c617c084af18c718f5896b1fa2e3be304b1759530a4b0da0a57d1e5e9d94e96cbcff3ceef39af9000000909aa7ac7b6e139c864a92fc2cae4aa465d428eea35dc90501d60b64d527b85c9dcf116e257495f8f3e4b5ff275ada7c77811fd81e16090b33968a7866f94e4b9e1d1ac3103cba4a1a96cca7a145eb2a9a17c67c30e8843e28fc74702e7701391560da1edf7efe2ccd6548ded4ee8743fa12eba27029beac848fc5cb5542c1b38078ee96b9ff5e44827edfb6abc1ef8c6f000001bc000000905f457d742ead95b5eedb9b948f86be096590d0e8e112383d744ca7ea0640ecb703cd6a42dc251d0ac50a65b6810a2a330524cb21817f1cfe8ddb5da561433d545ca5d3867cb28ee6a7055e620f80b8b40f110d07b3e07ef2b58a4d7310ccb1c9499fd0763aa7ea99229b8c604f28ff02083622ba713712c31103eeea2e1ab0789f2a3fe03d131652cd452fc538be8327000000903b8939cb4709958428dfe265eba9fc58c4a72c3f3f9a5d685681f1828c317d44769dc018b8aa017c3f8a4855e885bbd1b9104f4e12dad6554c86d6e3d68e3b10b81c1ba7874847edddfb85835398930d2e965aa6f1a9348fac83cfd8907d032082fa1832f0e6e9a3370849fdcc2bcd0502c306678c28645be7661b14f7d195e89dab565d436a55c63b9874b820790371000000905ac1167885ea7eeaad310ab9384ef3a85345c6e10bedcfa00f0eddf1d2186ce76e35d94dee3701f21a340d6ca6be5f5771816c78dc7d4d9642a0360f373c273b2f85fe07012da5142754ae9b4c1e683115f318b02e54319c3eec0a1f57ed259fad61b8029918bb04abc88d5418031a472bfb38eacb9e6aafef22d059b2cad66bee5f27951d7653f1d5e6a1da7d7fad25000001bc00000090186c54b312de2502ad90df9d21c0ce039879cb91c919fd22bb38cc261c79c3f6e465013bfecc988abd4b69df333a8f616787e0280e4f87b70a617e4cafae0780bf83078216e35d3d331a1ee4ffd020ad2448a59aeb1b2758f92194e6d3b81afc33f106d6479295451e96e64ceee3e51b1b94bad364c09520d6cc5227c50aadf85f82e0c59e7a3da5967c45f9292f4e9b000000902ecbe834880fde873379b8f70e3f0de3ada567546eae1c9c9af258f4f3312cfe439ee227c5748230dcf227580b6072fc17e3710b4f156cd877bf40f88b2ad26955df72281a2d2cc0754234c05978ad8d0acbadc8f9797ad222723847294785e8e17c28e183001d281a7ed57aebb00ab9016cc25d4e89b4fe2fca8c6454acb10a7ce5ddebd7186f0dc2d52682ea2d4d4a000000904c5c6d664fb12e3471d405a8182e87e91443bcf78b545796e8c73ba29651af4e98c2e7a95c9a9c46dd5d3c8df95a0f5439fb2b296cbb8e7464ddf15c389d2d235dfe994da79aaf9cf6891e8efbd94ab51bc8f73bc8f10fa23f0bda83f9be9e76c25e2af740f2bde9b5b0a0f76fc5fec12e6d9e7203dda27b27eccc42fac592fe6e5d51d991e51d12223ce89f4394cf1d000001bc00000090eb34f161278463b602e60cee956c56a68b4fedeadcb8c77685bdef0b7ea3481ee297cdc07da286af421064251ea71598cab671f1f4996eb1cf176047a6e89c2aee237d289d7bf9fba91ef7799d8cd9bc0f77b2dd8a32a1f2be262f3a001f8cbf4435ef612d0072197f8615a52ff7afa713cabbc93c14bf0200295cf634630cad118a1d988bb10fb3c2814e80a4512575000000900966fca2b9d5cabde2a66d5c70d08172f1703507d741e7a635a4927fefc4ba2b09ef5eca8fce696413a95cd9334da60f7a9862cada5a9fbd788347dd580e99caa43968a6255f5b54610fa3569589a1690144414c7ecc579815de419ef0941b4937da5977957a745d6796ad2aa1383c3e2efec4365cc356b9041a12b290c5d43a3f3b1d77473d597d8a20f23190c05952000000905ba55db35d62212a6e561944103eed603ce9c61a94f386114da015a7d1b89e44aad3a53166f650e9c0dd8587de37c999d8a156b9e17e75d24e0ab4dc413ce6d32c62cd6e4e6290d2242f416c7120b4501f5ed62312005fdf126f018799a41816ff5d0f2a7d572b3af4b6b1d7e7b675931c4eb811312060cd88a5f00013e1b4a3d76e5eb6b433b7decd9525b6ac310678000001bc000000909c5a60a7ea583c9914b81f31779c244ebd687884e42d9f434375722df9f47688056b354b5f02d3130b311b15fde7e71c1d0f7b69135a465394e219e1b0f462b8344e9ce29b417141b88b358a52dede49157da2437df6eb92eebe8edfc1098faa7508c414e5e237ff9c15bfe6d54eee2e1379a4cc167231e2594e62363d1fd43b809995da5720160806ebcad8476c302000000090791a797d26384790a3b36b6dfd89684f28427ca87c8ac83c136294e62cc7cb7a0e2ee61c1c018fb9f78b843380e12c204d4c682289c156895077350ddfcf62fc6e2ebba789d75a571ada468b288e1ae325d5b798db527e7c154acff67a5aa52b91de9983e3c2babda6abf48826ed16be069fb8d5f43234514971c56160f0eaa805feaa5ab8b4b7d58938ac565f95ebc400000090b491cb9ff91c3aadb441623a1b327ec20de34e448ba16d5da4d6fccb99ca54d5c80a8e12ea9d9e81b94363e7ba45b400cfe959dd46886dbb8bd09088761f5b757b33f2449a59b691c5e43b83a89199780696c2991cd1ee09b637fd8958c78579f96f410cd08acc37882ae9bbeb01a78a1f8ce2cb9c1c44496e26f1d5eafcc825b6e36e060aeb33721ca8254c18c3f679000001bc000000907da33c299d26e34eeea01f006a110d5eccb3bc6ee359078ba7db61822c4d330f15fa724fd856f7c52fc1a1b159e48854fc4acc31e2441a8166c09f41a36e28ec4d28fa82d26b0df515cb44877d025b4e11b074afdbdf6ac54b501156d075c5cd2e335143b697d8569bc3f1649971c5ae1765b97b1f3110f32c247593b11f0c469a3eb837b01acc06cb42e7931a81c8f900000090a30179aa3af06f3d0af1256b70daf420df531fd45f1e5b60e30ca87df4a566a56cb04df18e8dc75c574c6159d1f0f1d16a3099cd70523df46ca4edd3af1700bd81b12d34570d92c895ac8e950af5358824981da13cbf6d40b1e6cb7f6ed01acdb38a2e1f8289ccce83fc22f98cdcedef16d7c75f6015cbde52df1f8a398883df68f7f9b83f6ca7db9225d10642d7ae55000000905973c0c6d830bea7f2109523b3a3f0e8b3a0805103f755cc55508a06e6ef0fc44848d1a6cf36ec4457b2579d800c7431ef9822db5565036654354475ef6dc5a4cd3cdc5b0b594dfdad56a2a0c7dc59162955f7e27e655fad747e137f81280b1491cc7d54cace55f4cb97c60e7187d43d1b304492a7615c8d2acff874287f7fbcfc083ef81c5c85e4805b0ffcc2c8cab3000033a000000ce40000012800000090d1905502bfdda3ae7a7ad5b8b4f2f0eeb59cc1752d40934520c727ca05a2572c2a79837c6fa647a2b0fccb5220ae8d669b56bd4a829b9c0378969a2de759580adb811b9a2f86eb5dc40eae174b3cef972ce9bdb652ead9df39d088644e4a8333c50ba5fbef3db0539f062a293a583a7424e214b300e6d33957cb37a88d766ca117901e7bf696bd7a60fc37e380818b88000000908a835e9e543b4d3dc26b5fe41a104021f8cc76a76dd6561a548208afee29332100a35d0b84337985b2fc71aa91c1dad221e06bb0bb66101d07e6751a1e6386a6929bd87e97c762dcb3a9813276337489018cfb72c40a18958c16531796042877664fe5967b33b990051f4fca9f81941f18d2191edf8b4de25881f851e771443597f13d2f6178afe3153201fc53e56e300000012800000090c80e2c8ad9f0df4dff2b3cb6b1cb64ba731bbac16c1afde6a8ed0d80f2065d89bd5c35323ef4289e6d946469dd2135c7afc8d2468e2f31531d4fb75e069e8bb47c40cd63642a6ded6a1f459c161d399f03217510b4e322e452aa0eb0b2e1bb5308b66d500a96d95ea206242f55c2d7910b72005d5c29786648b9909e5dd36fe31f33f04a1fb8ecb5a8020ca9b147d7e600000090b7bc70b9b15248819fb334bb519ca71b94961df9498d1bbabc1c4c6469ae6b9bdf953134a2ac9f49a77f599c80524b1fc19f09fc843bd99d52a0c33f0ef8052c6a6dde62a1d0488e02d3b32831f5184c27050dbb6e761e1a8df2d604278b19fb23bdfe9c178d2c7c076d804852e463db1b60fa77e817d9eb5e847941748a284750e9207abe6e05b5a50431c8bd6884f700000128000000905f665b3b5faff4c044ff5ed2a885d0bc4f22e6af15c3fa75e1516ae0a9b1105ae7e12c261118fbadd5923d5dadc6dcef42785069f58d10fa0355d690fe8a4b558add1498cb1085e6cf6f80cd22ee2c781dbadff6377db9efa8a5c3ca7594f4dcce4b7244e8d9597d4ec442e3b24466c2286ad94eaf7a5716277fa3c981ed52c41ea5e92220055d44b8d18bb37d410d85000000902c7bd784116cff39b2adcd15762380929ad0e311e8365944633b0c3b4256e22f12563f51cf6e7060b40a36ffcce0272451c19b5aa6acc6f59e422beafc3d835ad508bd46d6214382211a4f939a2828271c90ae7f1ac9db3e576b965e53d5269cb929a6cf72113430eb8dfc4718acd6ae03b44eccc4a1778e75156ef832914dd19e87fbf6308ddbde7be1d66a6e050050000001280000009079abf20bd2d8f39a4a63f3d567e7d90fc09feae46719f58811c4f23bf8daab3b8e203a8798e48ee553e517c1dc62bb7ae71de60d12b7aa26721a991d93d8c50eced62dcea7fea4cf7579f72c124ae23a2b9a9151b716671aa2523847c60e117137238181b391927c4b7ebf690c040f8d1302e5b280eb51b772bac3f1374c5cf0ba3a4cde90381af01f713e5f74a2988300000090d0e251b71d84b164fc2a5e92423d28a1fb8790716823ba4a81370d1bf80858e853be3ceb93c8ccd4159a1ce68aefcf40bc6a08978007e8720e37b8aa46326a818c4dcd5b45024a9899cd6f83cc74e61c195bba4b7c8f0f8ad74603c97fb144a2dcecbcf3646087fe1ac79354fa6ad92607b2879cedac1f78ec1f294370e26a2d3c99ccebe2aa6cbc11cc76bfdd99510c00000128000000906cffc8d66ecc763d1f9bdaab61abc993574ed1980e688551a1f473c3bae409ab6bff793f77c5c6243b8836035548c2152116b672a63f55681121fb0598f7f34b42348bdcf9f36e590dc13e39f75d81001f6e603a0e6d781a1aa6ff2e99e983e2929c8faeb88735a911d9a2760d28560e16ecfef2d1bb9f2ba04e5e6b3fd7c2c55fe03b3482bf4bcd253f9cdd882ba97400000090f83c9f1275aca4c32c8d8cbecaccaf943fcd9dc2ed6214c6d30139622e9a4ac84e3a83b18072fcf6b43606375622527e275ed31914205cdb2e547719a8f3a38f734e31d1a0321098613ac9ad847730090fb5c8a755c78ce7801a217c95529fc2f27b12032629ba5d6dad5f84391e150613b8f2305df4b0ad9f80d62f383d76ca5c380c371f688f9009e1e18785ec63e60000012800000090129dd7c39bc4e543b4228ff3cda6d81602edcfcef4a76d785d675661da95dd6c5b6aa104d9c396cad8052dd8e2b0af4d9fd666a9df0cf18a71495704943e84768bd1536ecff3b070d774e25d8abba0ac118f9a46a272f0a052925512be95f59604198c76999f730f75489194f0ee50620a1da9159d2c2fec13f4889ff2504f1e7de758a6706b82430bb66f3df68d73e3000000905aac7a384a7eba4c579bdbece9546dae1d26c942d4539e00df3cf77b69b9ee876b91d63b196c6c4b4ba1bc9396a1d8c48dfcc98bc701d4c0618ef54d3e1ed188447ccdcd8d733cd051863976a2b5e74112f08274aee099890d0575139403bebbae791efaa456c5fbc66485add46880c92fa6ff5005ff848b61d2e09fb25d81d9e08563dd63740af23d49f41035a43d5f0000012800000090af9a4e40e8e108a8cdc3d51fa0a64f553948d41472a33c9466a401f8738fa4e8a2ae87075b434030a1e55bc88f6873f3eb61556c755008d7d00867ac7aa2a8041042c16d36cdf4965ee358af7c2e8c73224490fbbf16e53d62c2ccd7b1d63bd8302fa03838f25210693ca227678d458b13f4567ce36ea57348b0272a9145dac30b3ec73b71dfffb64e7112a68ecbabd80000009031ddbb3923caca21f9baeab0d4ec4b93efbd3374553474fc72beeb1f442fd2b5a67b020ffbf783587bbeb6bae515862f13699961ebbb671dbdf9ad5e5d899d74eb50800e72e41e26adcbf02b7ecc3e9e18f6d051a7d618e7a3648ee7e30a78033e9ecfb4ff8de40608780cd31820e0e6001da3eed13df55b1d49aa277a94e02a49ea6443ab81f04dee97d81762c9e5d300000128000000901fbf647989be185f76f8cb2576048070b5203f324130e5a2a4047c8ba5ce9f3ed3ad818d5b893bb4fe722d3316561e880518a6869b8726022f3bb75a1a3e4b87cb52ced27e8392d4bb5052f94adac58816f385c34702ec0280952432fe6446601176af2bc8bdf457c5bd3fa42839935801d0afd78d27fa50c09d735270053dcf43d26a76e7603dbc7016dfb03d29da4900000090fbd06a73bac0c4b1821816265b032d2b116b124a562628409313c3b0fe21651cb6d73be44ea7ce6cec081137274c91cd92c06f255870a549544f790c1ba7b9146d498c69526a08a5d21ba8d6b25d067e181ce6e311139c9f402f6998d3765a4c7c7ec592ecee5b0e0b9355dd012b96042d81a176d087d0237db9861f7ede02c1f07adadbeef2f419eaff709ca3f95c850000012800000090d7c2bcf98fec6893a4b74c68ad3a0309a5f71211c8e891e6b535eea780dc673c2781a48323f8ade10024be2601a81d0671032e74823f2f55d5b25ab4ca3bada178b7a981c9d1a856354c745b4afc2726255099142c0e31eb2a5da9d98adfcb46d1917b7d84e1e2e77d326987f7cec355112bf6c26d4ba0395ead9f0dce334a0de4efc64a71809810918934bbcb6a461c000000908d7516bbbaea081bb212451b528b8cc86bbce048db2d8c5772ed87ea9d4e728aa7b61c87c57bdd141c6ff39b05b503738d1d28dadf5371b4b060bda65ba3ecbd41be6ef111cf57b6548da2032f0a191a0bdfe1b27d90ceb6b23f04f8a5863e126d0853747b9b082b487198a4920872622af67ae94b4f3179cd5469b1c0bafd8c02b42bc8799e6ae4afb79ea72cde4f86000001280000009019b7e77c5be67c435c76291404bfd10b5b18466c1dd37f8a52fc0977a7bc31f7ea0173215fc5a448a2d24248a18fc60ffa2fbad7d8475951d6e1ec4462bd9b9319c40dfc3790342da046c6a010a64445226f2fdec5819a1fa19020cee7ff19b68b52e988fad1bca1c3ce88a74effe63b2269c7f78fd7d11a7cb61676199fc26ed50acb3bcf72666385bc6dd6da8d07cf000000909adf698c4100086a212716abd6261b4aa923bbf41c554afb8aae3198f79902d4776a3d75a20439ce0799cdaad64a568ff3aa4a057cdea09d83b552488c55c4d634f0da5d5e63cdffe3cc903cc59c80e90b17fca95c2cef6319e776d6ace7695299805c4f888d32edb5202a3f50fce54408244857ba5f6d9e700c2c297451d0ef54e0bfe991e713157d8e305aca7bea27000001280000009092e0543de57e6e227efcdc03e8082029df983f760b71e48e080644b0762ef393426c17c75b79b19eb2d987e60427498a2f56b3d71ebed4a80dce9b312f85db8b05bf9c3b1aaa38518115f75edb89ce3f0a5f1684b6f8543c30faaaa4cbf2c2b27c1769a0a0037f908652f979184d15042b209b37841e256d093ce675fe2447c12c71c9c1484a1bdf489438bf4f1baba0000000902cfd837a912d0bb6d432ab447303d975d1bd04938a49a0c7c64e5ef58fbd6107a46f190dd80404e5788c51979b300f162d1f7ebe4f8cdde34303cdab18fc449cc3dbb3ab5f4d4949eaa49f3749ef0b0a0a1ad2cab1db5b5ef6aac87ccfbc70ea6ee97aab13016f0bcaef27378c4b39040b64ab2ec04016197e4e9f022caa51e9669167200d6da163e5c2300e8c2d1cf400000ce40000012800000090dc587aa4332202c6cb7166c034697783e03233d9ee1f3ee7e1c6602ca72390d529effd755655c207151e09c767522f354e091210eeaaab36f6998df78cf65c65cb3621b310c6b6505789a52beb235e7e029d00de64046fb9ad323d2f31a6910ac78f3d69b3ad2764288711682745395013073a18139125a385b39ab54f8374c6ee1c3a75961eb01724041da6505c2bc600000090bd5aec0b649106c5b0b81a92f71e7f5eeb670ff3d283b008543ea0724c552eb415087e0d6c6f62f722f070fbe94813c5bef249f71e83f71d73760f7e5031b2b8750a949a00a8f9e342eea1e7ead9b8b11330cf4ea7d3dcb98d64b51c884b40530f9c27878169fa4e33a98ec717b24f9a2f668ccfa8b130e6eed8849c5d32fdbb945187c2b24c7bbb269370eda993061a000001280000009019a2be31c8796821dd876846233d0f72d8d55722d08d6300005ba90da68fe75f9937194533834ece95eb25b6dee9e6567b4b80daa63b358a785cb86c8f850cc669ce6d7d30a472e6fe8f37976740444a237232482c8055548f97b72df3ed625f0a4d0695bca06183965300db8badbf6126f2ebc128889d1bca33a6bf88e4806cc26e5966190374f94bfafbef0d21ac7700000090358babb9cb8691971aae68609d38b10feb1d2a8190910d7422a5bfe0aa58f0bc6783ed56287ef8ea4741bc1def75219b838094bbeb8c21476fcc69256ef36b84c3a9d79395aac2d19d4669b1641d3cc721eb517e6e92fc0e0236e950cecbf17d9dd8a8e9670d2b89d2ddb1b6bf65397e2bd643ee46aa88398e566c55e109086ecad8d1d56fdcf79034f6431ab924ec36000001280000009029aeafc335fa8e95ae74da73f71bcc7007c8c33b37711c8214e447120c37746dc97e9c65d7960f7c5e7320e75f79087692feae942b353a54f1165a16d120c271e3e5af74a1e0b9e0f1cd2c5d31971c6e1385483cdb8dd34906ce5d4cabf56deb0e276587c32de7c85e15e5bcad7f2a6e2940acd0f5fef55a9bc98c8aa09014379d83345635bcd48d908bc883c18b7a5800000090881a9e6f7e94e86575c91600d2abbe813a36c564df6b2ca8ec27b51e6f35a0bc4f8d68d5c4075d0e3e87a5550ad353dec40eec028ee1f5b42a520e1b139998f992df29f03daf9d3bac5297de8099d0530bf2c0036b5033120264a9502338f229edcb96a01f1ec2c924062fa313f6cbb02ac0914620a0d5a97e6ce1e9cf0eb7c48c7543a298759b4afb437d2a1dbc48e10000012800000090e5091f2fef0eb8df60f95f8444f9f7745dfa5d699d306ef4836c64e2b98268a7c6fc399564d4d49d1ef7ea4a3d6a7df458a3e257bd1393be9e84cdf4bad769a6f3c5f3c2150a019b0b1c4aa305f04dcf0fe6c8650f71f014dc1e381be69eea2f1e4fc0d308a81489492eb186a6ea3bc31e3b360147677cbce8597942a4dc305a1c485469a7e7920dc1a74500b62b819f000000908cfd83bf0d0ad99129f802f98bf4370798eb4215dd86510f6db1b8ff8c09f3581d2ca57cbe44d237277b457e605a67b76f8da1c39d06bf41b904bf8416481acb03da65940038a83f6ac45d792f2902d1207f03055150bb78d277e49122464c205b4d4f7241ba15ea532aa8cfa65024f40785127305a1449eac0603659300119487f5ef065d8fb4932caedc4c7221503800000128000000904654a6046603b6cc049242caa630c290a5f236bd2d8117f2bf709457025220fd94aed67dc69920ae0241d674e5fb16bfaf405a151c3753fad8f015000da5d3b0c6d4488ab3b2cdcb3cd53bc2c6619c6212e94f10e7b4c7b6ae798d3a04a2babef49dd2d2973facc3ab135dd446b124312471e6a515f341cbf69b4daee6ef8dbab575ce788c1334d57ac0ab27421811dd000000904a95ea082c55c5903663995a454090cddbae42a173c3e14a3e9466f1d4f3b0506b5f4e32c4ad9adb958e2cec97f906733205b216c3206986a66b55770876ead0bad7ef67b620af8399486e235ba7be572f3e3f38f9fef355f6a30c1ca79e2f079239077524bbb3965f19c9a608ad1bb00c6d5ed4acabe3703e614ee07d63f66be71c2602f5d292563a3f9375547b768f0000012800000090c9a80869eb7414055e9aa60e96f1426c1b26926be0fb1e5096140b52e3d9a33367e26f6ee80748faa5c7c8604e0d428b2af4650ac06e5054ed70bfebafe027c1742177bfbbf147042efa25bc3f4b0f882f4104e4968239e13bae19c0a2cf12b1516ef7d95598ccce1e7f894af04196a41f90e78c56e396e36b56d6ce04195c666002f970c065136b7e8380e6b3e9a42e00000090384c10ece0a90d1b7c7ae0fbc69549d807ee6d9e6639ea43192eeeaf9ffada9178b8f3539a0b5dda6ed1ffd3841f3c9227c46288aca019c1c78749a335b596bf13fbaef22250a906482065607bb0b8a72a5ba7f0a2ab4776669acfb5f68a5c09a9664a076b05cd6f46b31552fef89b242d893e40a89ce617bd3e798cd75923f34eede2f2d004b755a3fc0ae4cf811b140000012800000090f07b110e3bb4dd56f549b2e01aedb0b50bc6c1a46fbcb0276d3b680fc2d0a3ba6d07eedf092c2fad2b5ae450b2dab4d613f80a51160f3fdf345396456d13aa6bcaf2c0f81af8423681a92a5ade27d5e12a8391d3905270565eeb55eb99fd39011ee40586cb5b8916ebb2327a7f74228a1a5768b6748494cc156fc28bdb52d9ff1a396e8651c9da2c109175a460751d4f000000905c3bf40c68346b39d431671ada024f4a21e96d7a110953ab1683e79f49fb8ad7ca1b4a4471d163b128b70b6c1e2f7220e03eced83cb2b9a4c50e891e9c4d71700ceb04182913ad2c4b80c566592b501d1e49d7474a65b36dd1f024ba26e16ee454588b8aeecbdf4364019c0a781d121a04b1066d2e035738dcc00d28952630943a12abc1f9d4d1a680901544efebccd70000012800000090fc4a6fc3d816ba0a3885d6a7a901279f62af6dfe8526ef236a4ba9d60149099cae6b220da594b763964d15c366ae002c8316d367f909cc0033d132d4f22eff1b8a11b03c60557808da6cb21cab9d65cb2c1b4a28540767020a55bc55081c5227a5e6f949644f7c86c58b080d8ec4b99e0f4538bd25e6f274978b2f466f009d74e3376f76c026ca8e1bedda1f350da157000000901456cf4dd8e308692b2f994b1942bbf8796aaf378ff14a25903446fa8f070df54c78c017bc78c03aa89115f28f9780743aa738c99a0a150901ce43fd25fcf66ecb1efb1ebb56350b7cc4b86bb6c2388319532180d1c6eaaa938edd4a86916d7b89f43743bd9df883b58efdf9f52e1e350c553c60cb3b671365bde8451bac3f042d25f2c828a8c923ca3e05ce4e8492e200000128000000902903d864ee728289e1f7bf2ae5c9c2949b37d4baca2574a25d380863967a41d73889662558670596e5d322b22061e70cad78bcabd5c17daa5da2d530c8724c1170fe843d83a4869ff8ffe1d6bcb0f2a62c7b8b3e650cb59f6ec647609994e2bb9e96f03965b90f7f89e03f2724391750019e9e76541ec54f958c27fe8b037e99c7481630a92579716879ac717faf758900000090cdf542f37ff778bd9a658de2cf9d49e04f7648ed16f0de2a7c1a64c3b2785649b08baff74fa6cf69cc43acd4a7dd06db48c354c1c4b1431d69a1b55ee89688142245baf3425b88f0f693221ff0ac1272272417b00cd9ed69a300f5f7bf216dc6728865eaee008ee7813b28c75287a74b104cc6b8b7cc79451783d94c59038c61321b6f502b3d0ef71729cb4d54ea1c9e00000128000000902d8a00b5ccfcfb3a4fe9b255e32d5271b8509c43c65aa456e4f4f339cf7154d3fec1b33c295789586216369ff1f949018f880d539bceaa2c7dffe06a886a6aa98d441644292eb57624eaae712a9e30cc0f27bce54b31f47e72ccbb8065093379a245509991c1eca28e60a1bd80317f971964ca59e07bc005f19f438998fdf646aebc6d50fc9806afc8e5f53dd67eef1400000090e7c284f83939609ddc5034139cb7427f2749af0ceda579468f9f12f479d7635c42ae47924ba8d3ab720843b3965e8538bb4d3f5eec343185ab072852a202a1fcc6c29931b249290af29f909b1fd905772f21bc9db8b7e15704662ab924263420dac87f6596d3bc4e71a46a1cf88d4f130485fae93bc967dc32857b8e01d99ebebe50fd7fcb2dd92faa1fe760bd9b117900000128000000908d7ce67b739022c93cf68de7f4152edc7e66e6f3143d1a44eea1b64ec04df99a9d771b30c172a41107d84200910bad13432b7671508aa27af24c750e64002630619a0b65e54108c7cc30ddd12d069e940d114eb6ab90ee9be749a7bcb9d3295d5089b897b7293f24e7fb0973ad1f27cc180fd990f7821070841668a1c06d990c938af7a09aff5a53d7bf728d41bcfd7500000090dff4bf92d32b8b2e3a7371871e4f4d65727e6fb33ed9e2ea1e2422deefe49edf5ef2c295a6bf68ff112ef4e095753b60502bb42147723ec52452ab4a37d4f570ca86fc00d9502f948a5c5fa82eef730406dbc1727dc7284df5eb15541c0d030768979f802a46bbe2e7344d675e2e46431e7346c318f763c8dc24f4c50801e33ce39ff804cf65ce6a686e00d6ab5fb5a500000ce400000128000000907c05563341c4d959bb1ec9f9fc41d77f23142b298c4a1eed904d69a7157b0c3a50189d5c5955bf5d0435d27ac263bd4b211220165c7fafffa2bb9509b22fd06d3980a31d6dc535d8348a7fdb18111578097d8593f94d803409b86b58dde71104bd3db6805e1210826662237a8cd46b7a287d0da7441f6e16bca0c7cb632935fd5200946348a0a63b545772b8423e9b0e0000009029f26d7c01fa7cafab88f9c071037f4c37d2410658cdca53b9fd841e3edd61eefc8b447820c16b64dc580c87d2ee3bd86d980184853c62051086ade474138865436b54fcda93feb678ebb58693b3b14711b516c7b47b506e1e395cc1256b24e2c395e41c5a73a71bab2b04106a9984a50d8e80bf0a83ac05f25a327444f3db4d7475e579de9d471b09f10e483b1d2cc6000001280000009070eadeebee733c4c21a01360efc1e965a2e81f0178035b0b7ec4caa6679b944780d48c11ad55c38a024ebf4a0fae56e705f7a00b0add5e3a5cae06134d0b92771242fe98d4712a3a1c696734edfe95e62c60fcf93377e6e5090f9dd5566a389604e8d7dad82361b9f08688c78fcd524716b361cf210f134447905df5f58684aaf92d1f2fccd3faec8257844c590b155500000090c3a22867a8620f0e9cfffe28abac99b5449612bb6fd54c64303404077ff93221b0a6bbafb6dc1853121a38e8c41ceb201a4f72df30772822d0b0bf66fc5dd591fa7aab4dfd97eeefebf334097310658d0b1835b434bc3c7f4d3eba6051adbe7c0a56fbe6b7c99a3d6bb819b99b0646b710c09af243e9832dab652c0c777fb31c637aa7990452cedbbe5bf99fce564c1a00000128000000905cd7fd8043ebaf521a9cbd850967d37102d09f6578502cff586e78e552fb106abb60f660939c2a3a3425b9124b497d6e6da586baa74107df8af0dce982ce18eedaf56291a4578ee8d1fd147f90dcc8d60c0bfab51bafd8a24ec632ae09d3c9a69be585ce4e2ccae10be1fbd4a9fd76901e434cc1de5dc161de968aca244423a3a0d210d9d85c4518392b51aae13ff5bf00000090048a99423dd6dc09bc6ef055ccaaca0c591ad76d5dd5ee848580b5d183ea8d161b8ce35ca9dda3062b1919d347cfbc77c010a9a05a570f66bafac197419623b391d9cdad6621d9d9231537da704053b228d75d4f7f81682b8d581a30341a1bfd728965b622ff550008bcc73449d31f98098c20a8cb29424f1e69839742c2f17dbdf6a281d2f5fd28fd7182c77a9bed44000001280000009062a63d4cf8d7e88a831a4b2349f029df81f36572692d59e4a00a832fc78ac0c7d51aba71d7c5214c15806414e7c67b80fd6b87f0f5b7fdf255ec1794892d916eace9d91a8c6e4b0a90f009757b7261e8117d0f9c42a7e9b8b32ec9a46ec5fdd90e1ecd316dcda61c20e3c6eb9a8c850b15b0cdb0f70fef21bbef0ca1e514a28b1cb31871c75544235aecbf71a21c545900000090071d96e7f10252ddfef08711ab174fb56815d2886d3cb0ff770d8f271ecb28b52c7538cbe64f64a2062338df714fefb0dda0d2c3bd84bc961f7c78ca64e0dc0fc14aa1461a3cbf46c7a37970035fe98228c639c8b16c7b7a8fa6da42025581728142ca87773a67db46c28d7010a37be02948daaa6e9337189af4e0a7e16bb81c2476fa89bf00293017e757bfc1cb61310000012800000090305a5f090659bc284517b422b4073f2e32dc2ef731975ba67b96b4fcc6c952a52ec5cae273e7baf8885dd09d34cbc26a1ee3ea3498e3b5afe3f6e1aaa16bb544361a14f28cfae1a432e6b9ead74e18c12ef26791a8be4f0f7fd1959c0adaf46aa248fcf9c8cc776a54e188a4359fcb5d20faa413d68296ef1cb4ef274d42fd14aa5a92f37da51a0a6ed70ee12ab729df00000090f2395c0f619282673828c1636b1ea89a24302c610aa201824597322290193f759bdd5fba022e8545ca4e2edf05a40e97a5f41c18c06922a6a51dad573c0b7ee8c86cb0d290cbf2911e85a6813d7e11a20113f2dbceda944ff9308864ddbaa44d3f4c973e8ffb2feb80ff262a90773de82d90b97f239e92bbe51daa611577e7106038b7ceee0653fdfb71fe139effa92f0000012800000090f7312fc5ca7141f83996c597a01d9a0804913e7ef437b745189b553fe644b8ca9feeda938cb44eba925da1e7013fe33dee342cbe9e0b2788b7ae84ceaf235b71f94d9739b3227aea90a9d5405c0842d20c176184b55a38c7b0b8796ba90b07d1c6025fde1202f338cb3823898f23bdbb068c8dd7bb497a495e16ca21540e5f666d72f81f84943458256f1752121363cb00000090cd285bcaae2aaeac2d03b8c6956c3d34a00713d06965c991537134b6e893b5a3883390755fc103d92d3aa86c12f5b4442996d90dea03f021b806587046527c81b2e9f29e9187981dbacf20c462f6d9fb24ea5ae8a3060d7086221c3ab203624d5ffd1f0c5471d39d8abb1cf97db3faf30903520eadaabc77bd632031901e332f9f59eeb827ca7c2ac4cb3fff1cffea7400000128000000902fa51fbf4061a5c510008fc8f50dd7bea7e307c536d6ac7a1be04f63e350854dc001038d15c85f02046cb4ba99cddc1d0854f732c3bbd6c1a2ce3b9539b09ed75cc6799b3e3f7ea1906cb3e19b680978172d5e3a17d534611558b0974f27eeb80f11777d5c318b41e6844a205d90fd101e89e3a3ae05e2e9d335f38993d1ce40886900f317fefd077ba81368619d3f720000009082b1c27b7a64487bbf9d21871c878d04d6ea2d2a2a02373731e778750c81b8c89cd49b77f4af23ceae879f455029fcd1cf1dd56e1bee390dd3ec7c4e442c8a3607aebd50588621cae5b2e8e39b595f0c08a2a2f9fd73e7ce1bcdb28aaaa2a69bb3e85c20b58c861c3e158d4e106c785b0d65a543d817766a0496b91a90177b11a021181890c57d1bbbdc24f889cf1b62000001280000009001486e187b12186066c262477a0c9b4d03da45d3fd17af3487d985c03e46b03827b85622a2d8d00a1d8d2d07a84334cbf46c2ad6237afc95777824fa36a6049a568928d6a44f95f56ce61ea7457676b808c5acb1048ffa52e82ab9c059105deb84d041e13b132aa83142025293d9ee5607d19c7ca42e4ad037fffc86912010ca66386ef730cca4fabf41f7c6f5d13d3c00000090b7b2e46bd11fa912cbb171373688e4dbbbbe2b1b1ad04b37ceed2d53383919ecb1ec5690b91e1b30580453e59ba400bcdb76196d7c9d4927b00729e83ece424027a00e3276a93a61e84f520cc2f9b22209ad7cdd9fc875574302af75edc79983ec50596913c818961ad536298a310bc9183c3356971710818f06d0f260bd55d281087c8443058caaff394fd5a16a591000000128000000907a02b1a361c9e424797122d88f4883f61f09782cf351770c7d5577ad63d8291cca761a30d0a12cd1907a3c5f49470ee3839fc53d553db7bcf7978f5618007f4ea5c8ef5e230de4dd58a41c44a37fd9d129390c2ce362eb410da7ced607affbc53b841f31b58b6c0390d0dfa2b40e523817e47d9632e8e99d4a790f4f1476b47f63d6b90af6afe874347831f17e09820b00000090dfb3da723599fc52984084adc867d5b131624fb3a245e28097259b2ab9b5b60150fa80d7ff242fd0fdfda863778237e27d806cf7cae596e4f7c740689a7841b29c9a42d91eeeb3f3855d3da4d0d6694a1dcd9883ba8e205afe4e4712ef9113b129f648b6d3565fddee1d9202ef11d943145d3d6be489fd048d4626d2bc2ebc67ffdaf751ddb2cfa80f208aebf82aa3ad0000012800000090031c03dea41e91646208787581d5f4e1fb17302c08af4cd0668bc69dcfca307c928f6882dfaefa3f63793669c2168840617186da887e243c32a81d832a7070909d36021d76e58e001b74741e8cf37caa2662b915209192553f3a8171d57594d6bd4fcc3f41a8b27c16b7235ab08e317d1e953df7144645d59c657ccbe4b62ee8d64b3296548d7bbf1563093e87d7af1e00000090607f885db8abe4abde918c437fc0081506c5e8c1f25572fe375e43360c6c1013c597cb2b8a240d62864c00c17ef60005efb0fa59a155efb45fd62f17f862b53635ebe15728533820c500fd561abddf461d242081b026fb75401170bd90373cde8c5ba92a46caa46921dc6e6b71a91b2d2a94d77336cf9aeef2625fe24fd6e30a38a4ab63d1487c217fede88a5da38c17000001280000009086150a0013518186b565e0a6194b5ed3735e8fe2dbffffe3d4f7ed2281729dfa1a3334ecee8ddcebc91b11297ca7faa95d33f42e04e0e504e8f5fab8cd765a62ebd6e207658293914365809ec1497fd2298ad1cfc963aa5be4f2d86833961589ed49aea8df5f799a050918839cb1f4122978dce47fb40af8652e272155161c817cbb6278132d83265032d0f827c175ac00000090ee0452ea31f58cfbfe6862d55fb398794f3a199f3246b25dc4c8e4c61bfdab38f24e55749090130ada3eb60a284a88e294fa3b2e53890cc04849fb7588e10e3c3e4004c852db076c35de46c80a77260e1485f3e68ae14a08291158119ce92e1daeeadf640d5200b1b1db5c0ac2eb06632a83c101c86519295e058572e190e60275aa6a48d510ecdffae2095c6762300b00000ce400000128000000902c803df8807403369c656432cbdce60e1d926579bbba600313a8d722004e1ce464c3497551481be9f557671cffef62cf33348341244dcc7a00192f577d9f6fce776bd7b1529c625dcbdb80c61f2052e607086554e7057fb4303431adaaaf418167ff9fdd6d368d483713bae6a36f271e2bd77291619445eadf6363ef91ab37c95471f15b645264038c8b96b2dcfc8a3d00000090f59f02cfbb765e4a792754cc77ade007c2092e7130b95df0372803afbaf98ed2c5358375a5ee56e7f7e8bbc1dc7cb9243e8266c5361549fd869e956bd4618ed69c66bba2f1ce02f1ff77be776a59581d242876eafda24466264bdc6ac348b1ebe8d441181bde9aa6a534ffd7b446ec6c2bc6cfe5da9ff2c0e01153ad2f16611e830fb986e0aeb74c6c63d47c0c11410800000128000000905567fd5df02f911fca4e64532ef338fbc78f51e0711d133520c87a53dc004d5123b21333da8b8a92f0c02b4cefd1a3b74eedb56197983bfc0782c22d0595ae7bf6fbf909f6d240f412adab0e7330e5f1037eefb93404ec11e5ab0786b4c26da0150d51823dd51a5e9357febdad38f762240b1c7df5f5243248a7697e42b37fd714431b773d88fe2e7053976d4c773d1a00000090acbe7b8b2ff927a57e136525fdcdddd5fc9fec566fdf556f36fb87a2357035fb2e9f1c42a1ac92435a8cc14f17b73a87b1a0a3a6cabd1cb1fb4fc5190a6fe82113a0185071cd5f4c2e744e90ce435ae30ccdd0febe82f66fb54c36568b047519a96a18ebc54166ce442cfea254468de70c9513735ae8838bbc9cf0fe268d9f531bcafcb435e050a753a870466a16345900000128000000909dc9ccaaa169fe8f19996407f90983d83d1c6f297cb95066d7f8ec4313f5511cbc17ecbb4f0174606f923241ffdccb87467cdb5ea0c109e0425538e919ffcfc59591b30b2243bd8d04678a7bf7e5865a01b2ddcc608a28726322ecdfe1a3acf5c78844eb23207c21cc5694371725bcba053ec047b8790e19db88aafad5fa2849dfee7518644406873caa13ff0d0a855900000090348d0b1171214af22f5a822da37c072a2746c5884260dfcbc603c9ed223be74bede40529a01381808b1722f6d5b92f31a3dd0a8a89b2f25c32cac9a0e67e26c3f1566d52b1bbb081363eb3fc5bcd96872ab570861949126649e9d01ca995f837f673925eed0e23f70fcf0d1701b3875f143b10a44e6762968dcd217361d1466acb824d61175b08ca34d9a9374011d7d80000012800000090f48952a0956883a34c401a10c9f97ec53efae1c9ec4c7b5230c864ae0ca7c0fc218729bdbaf89b347614e766d51aa170680688118afe46c5cb2a817b4f1cdcb412e598765d460463398d286e893ba96527fa6cc20569bc654a8cf1e76df5e41520450f3e9646674910a7cc5f2f6ad6cb07b03a6ed5e7670e4494fb13f7d5a75e72cd728d0363d7aa08b7761abef4b3da00000090db2897a0437ec2ba9f366e88ece23670290ff06e269eaafc1eecb43b41aa7f53a96fa2933f28022938dc4d4d7e397844e4a9bcd7f79968ab01e05277e7f8d820aed271e6198e5ee96f6a70bb0c1cbdb929a9c306aeab9c7afbfe3b2c9558798659aef641daefc0a1801b4aa613faba162dc55de1173652dea99a971823c29032661767bd75f24dc53aaf995f98cdc6890000012800000090c7a4aca8720eb3649eac8eb7419ecae0725206544f9f14c135f867014c33595ab494a94226c3fba20a3b6dd078cec20d7032c0478533261815d5c6f34c7490910af1acbf60dfa203a974b3526e0d6f170853c20b3dd2891391e32c4e5e6dae96aae97bf3a0c483a33d2bfed18b518dd60a43da0389df5659213258d86506493a11c476c6173346943409877f3f1eb8280000009044cd6d5591321c78d3ad1ae1bf3920701d1cc0c6a73b5b5d9034c05466de6a3b7c9dcfa0bbca612a895d7a418e1b1513413160f9e6a343415f57b3e9cc3865c966586d3b70c285048326cfd317ee6b9f250307f80b904bbcaae1cf998bab4d7e0c3c9d6067e16993e186577841c0bcc42a7732ed26e008b9e9a8ec5db481cb59cf3533dfc6200ef3ebf40a40c4dff644000001280000009005acab802e3f5f7d14a97db5dc83caa849d21005335eb64ee3f7d7890913e47c41935942c6492765d1683f3e58618210b938eadbca1972fb3ca6f933e13eb53cc28a8cd4bb551016e8e6da5f43bbe527212154a463316eeafe582bae589ec21dc4a3f04ce8be15fa7574cc8f85297a7519d803802bb93115202731de6c949bfdc7b897c2c20e55699a45b639e74197f700000090db8755368a5883f4c8fe4f1bab8967d086a2c03cddbe926a6b89d2193ef0e497f2082b9a924618d54e483ea64081ae51a51c10602447801112189d25e238ca3f40e2c1b0fd34aca316716b7bd3294e4413457e9893aa9397a1d8ef44dd4fce4e51426d55377084185406aa294c6c05e82202efcb16b1d3d895622c79efaf7de68f35c641bc19758cf04bff359e492efd000001280000009087ac7014e5e07bff87399657ee1763c71b8999148890bec2db8c429b1f90bbd42d17eb24235c38a58e5fc5731d4817ac467a3cc83c85940cabee34021c15207429514ff47a00c8b2064f38ed9513daa827655841b9ec89ae70fd3322615750c4e254c912b65a0e47da5e9d887dd6066c14c97dd4139a5e24272d10c6c8af9e008326ffc35057b8e61b56b89dd7026c48000000908f003eda2f032f79d6daa0afae9e777d8395e8b99a14c184826924c613f2c2cfd771420c41e34335484310ae29eb2f42354ce93093db217cd73f1ad1d7c82751c9840f009bf99fae72f6499e5aabe4e7303b2e67e46729ccb482876659117e12fbea701f7f693c686690f16037629e3f2e4afd1cd9ba7c7792e0f75312d43121d679cb3700ba52bb99bf7163175f39340000012800000090fcb668f4eee987dcf91f02506c4e276cbda61f718d249c1b146908ae48773bf119357acb0d33d981d04fa30e254b74786b8af9d6231aed0d2ab609a427aa1cd7269d05a908be3edff62849db15916753094633d30c8e1e1824d63a471510520a61500be387faced8d8f2397897a79b9100b2c3749f0cdb1b89a4635ac91966fef5328f7a51d75f6a64c5cf262929d0ea00000090e1fd1913250e3383ece01108e3676dbf45b6af7cd54328a1a6a9e032b3acd5c84c7330714433f147691a15dde1097a246a54c59aac1547f291930e5fd3994c71eea3b96288c1c2444609b675711a615608fedc92c08b028e141a647c4c6240e10e01a1b517bc9b1fbfffedeaaa84939d108fb5b48bcce4a6403fb3a6297a864177d35ec2f56b2f41c1a5c18fa77c78000000012800000090246b9ef39b4c1f688e2a9bd94cd7886aba49dd6c2d7a994a55b3b210fa54d50b1d94c7314b1dd66727a04194461377f021887f0bf08d7132952ac4fefb34a22382487b2819ff3f689c191ec33cd639fc0354c3c1f82acb0665b97f78cf4d7ea6edbc09645d6fc091fbdda38ab51d614206ed1eb6712031a70239dba48af173cc72ce5c8dbd4b2f2ead260eaf139fc76c00000090c47bca9d4280b30fdd30ff309d250754b715513d9b7d45b38690e683cb07c2aaaeb63b0f0400b0116a77e295240d94e39c7682a0f1ec9e1396aafcb5ba80053a5ffb4cdc262aee196781d2c3c92e5ec31abe900aae102106925359f393e17163def75522a8363506ff77b008dfb3598f15cd1ad0f1cd2c9940d6e35a85fa4aff06b2fca127af77cf85b7ecf2134c127200000128000000901efcd448119223b36296649ae27271c8ce44425c2257bb3b4d322767bbcc93df4e3405b9d57b89cf3a321725617ccd1718e3c2b485bb72e40a5b661e7c6674522447171d2d600265fd1068307f5eddbc031b050c27fc1f6035e51fc86890af02b773a7bf6a2b79151cdefe58e55c368405fbc782501d3ec15e509d762b578fee3711ec85afcbe3ca31714291ff4e84210000009020105be65d60c582c38af508ff84d115ba0be30df8b55ba5b2644bbb15c4dc9dfb46399a7bedc1e12e57530f8d2fdba47e9f59062a9384c5eb496795964f33e222a91ee413495921cd45f18ec0bef4a013d91373d3e7c6b40cb9eab782d295c6bfc1fefe73de88e8ae380363827204bb2fd4f44899b714ae567340e9d2b75ce56290389379b01521fc01b1ca40fd7eb40000012800000090221861a7da93d0ea2098a2dfd72369f097f2390e73e14b94284bddb6aa412027cd015bd818e966516ad0808b28e95ba99b04271cd979480ba3a70513df67c7d10adbbebf39059d48bd90d70fad88a11b15a453727995b3da07902ea4ec062384240e406e45222bc6fd8b85c2a97bf1d2282e381e70d50ed6a430be46b27ae56fde68dfc666c7301c37cb7109283cdee60000009020e262f5717b624c3dc1b984830aeb3377f9952d1efcd31851ea323cd10d6502da352474fbb82c370582a685612f768d4591761d67d3923c697222229eb6e39aa40e9103d896d9085969a6e250ac170826e9d5dd40287b9c06c538743a402ed9c7d4c84429afa70fc4a308caa453ce4919a295d209efe58669e9f8b23280e245ee5c5295c434be404440831f44d4bd63", + "calldataHash": "0x484df1f693f6fe8712cc9129413652b277db358ece78850f1073d963c1258286", "decodedHeader": { - "bodyHash": "0xf4525fad966caa2a5a1c5c4ca03520c2652aa2835f67fcad64b97e05cfb2870e", + "bodyHash": "0x484df1f693f6fe8712cc9129413652b277db358ece78850f1073d963c1258286", "globalVariables": { "blockNumber": 2, "chainId": 31337, - "timestamp": 1705501882, + "timestamp": 1706272843, "version": 1 }, "lastArchive": { @@ -92,8 +92,8 @@ } } }, - "header": "0x0000000000000000000000000000000000000000000000000000000000007a69000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000065a7e4ba06c76caee115a61eeb6788977c68a3bea359061b678a1a4f5ffde13e0451717b0000002024c6dc6d357aad01e10fe1adb877bb28b1df97375b874116e488086ca76e5f9600000200268020a622156e2beac47431b0cd70e1c81fef9a6aa3c365bfcbed9aa7301c5e00000280022612683c6c4a0955c8248d409bc8ec8776d96a3bfe5b5a7e76e492a4f26cb000000008039e689049f104493f0e819b00d874663f0724639f854b8722e8ee829b0f136a000000a01f1de772c009f5b1660876343eb57b7a676a84c695b0c526de2f238c4181090700000002f4525fad966caa2a5a1c5c4ca03520c2652aa2835f67fcad64b97e05cfb2870e", + "header": "0x1f1de772c009f5b1660876343eb57b7a676a84c695b0c526de2f238c4181090700000002484df1f693f6fe8712cc9129413652b277db358ece78850f1073d963c125828606c76caee115a61eeb6788977c68a3bea359061b678a1a4f5ffde13e0451717b0000002024c6dc6d357aad01e10fe1adb877bb28b1df97375b874116e488086ca76e5f9600000200268020a622156e2beac47431b0cd70e1c81fef9a6aa3c365bfcbed9aa7301c5e00000280022612683c6c4a0955c8248d409bc8ec8776d96a3bfe5b5a7e76e492a4f26cb000000008039e689049f104493f0e819b00d874663f0724639f854b8722e8ee829b0f136a000000a00000000000000000000000000000000000000000000000000000000000007a69000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000065b3a84b", "l1ToL2MessagesHash": "0xa10cc8559615be5a44cfb608374b1f84fd11cdb5844ebffafd92a77c068350f1", - "publicInputsHash": "0x280997cb13c04842e88c31fb0d4db23d591c48aea40d9a5aa2e18fd4c72a0358" + "publicInputsHash": "0x2cbde160e7af7c59ad9714ca77d07e5dca90aa6016d28e7939e201190b06740c" } } \ No newline at end of file diff --git a/yarn-project/circuits.js/src/structs/global_variables.ts b/yarn-project/circuits.js/src/structs/global_variables.ts index 2a569fb984c..ea7b1147a8b 100644 --- a/yarn-project/circuits.js/src/structs/global_variables.ts +++ b/yarn-project/circuits.js/src/structs/global_variables.ts @@ -53,7 +53,7 @@ export class GlobalVariables { } static getFields(fields: FieldsOf) { - // Note: The order here must match the order in the HeaderDecoder solidity library. + // Note: The order here must match the order in the HeaderLib solidity library. return [fields.chainId, fields.version, fields.blockNumber, fields.timestamp] as const; } diff --git a/yarn-project/circuits.js/src/structs/header.ts b/yarn-project/circuits.js/src/structs/header.ts index 6c70655e81d..44b17a3009e 100644 --- a/yarn-project/circuits.js/src/structs/header.ts +++ b/yarn-project/circuits.js/src/structs/header.ts @@ -24,17 +24,18 @@ export class Header { } toBuffer() { - // Note: The order here must match the order in the HeaderDecoder solidity library. - return serializeToBuffer(this.globalVariables, this.state, this.lastArchive, this.bodyHash); + // Note: The order here must match the order in the HeaderLib solidity library. + return serializeToBuffer(this.lastArchive, this.bodyHash, this.state, this.globalVariables); } static fromBuffer(buffer: Buffer | BufferReader): Header { const reader = BufferReader.asReader(buffer); - // TODO(#4045): unify ordering here with ordering in constructor. - const globalVariables = reader.readObject(GlobalVariables); - const state = reader.readObject(StateReference); - const lastArchive = reader.readObject(AppendOnlyTreeSnapshot); - const bodyHash = reader.readBytes(NUM_BYTES_PER_SHA256); - return new Header(lastArchive, bodyHash, state, globalVariables); + + return new Header( + reader.readObject(AppendOnlyTreeSnapshot), + reader.readBytes(NUM_BYTES_PER_SHA256), + reader.readObject(StateReference), + reader.readObject(GlobalVariables), + ); } } diff --git a/yarn-project/circuits.js/src/structs/state_reference.ts b/yarn-project/circuits.js/src/structs/state_reference.ts index 21c9359434f..444f44f4b03 100644 --- a/yarn-project/circuits.js/src/structs/state_reference.ts +++ b/yarn-project/circuits.js/src/structs/state_reference.ts @@ -15,7 +15,7 @@ export class StateReference { ) {} toBuffer() { - // Note: The order here must match the order in the HeaderDecoder solidity library. + // Note: The order here must match the order in the HeaderLib solidity library. return serializeToBuffer(this.l1ToL2MessageTree, this.partial); } From fa6915a5f35c3b1b1283f122666d15f836ac682b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jan=20Bene=C5=A1?= Date: Fri, 26 Jan 2024 20:27:52 +0100 Subject: [PATCH 2/5] test: cleaning up circuits test setup (#4235) Fixes #4237 --- .../src/structs/kernel/private_kernel.ts | 31 +- .../src/e2e_nested_contract.test.ts | 32 +- .../foundation/src/serialize/buffer_reader.ts | 10 + .../src/__snapshots__/index.test.ts.snap | 2138 ++++++++--------- .../nested-call-private-kernel-init.hex | 1 + .../nested-call-private-kernel-inner.hex | 2 +- .../nested-call-private-kernel-ordering.hex | 1 + .../noir-protocol-circuits/src/index.test.ts | 276 +-- .../pxe/src/kernel_prover/kernel_prover.ts | 2 + 9 files changed, 1166 insertions(+), 1327 deletions(-) create mode 100644 yarn-project/noir-protocol-circuits/src/fixtures/nested-call-private-kernel-init.hex create mode 100644 yarn-project/noir-protocol-circuits/src/fixtures/nested-call-private-kernel-ordering.hex diff --git a/yarn-project/circuits.js/src/structs/kernel/private_kernel.ts b/yarn-project/circuits.js/src/structs/kernel/private_kernel.ts index 5d05a06fde4..13a6cb87185 100644 --- a/yarn-project/circuits.js/src/structs/kernel/private_kernel.ts +++ b/yarn-project/circuits.js/src/structs/kernel/private_kernel.ts @@ -1,4 +1,4 @@ -import { Fr } from '@aztec/foundation/fields'; +import { Fr, GrumpkinScalar } from '@aztec/foundation/fields'; import { BufferReader, Tuple, serializeToBuffer } from '@aztec/foundation/serialize'; import { FieldsOf } from '@aztec/foundation/types'; @@ -148,6 +148,16 @@ export class PrivateKernelInputsInit { toBuffer() { return serializeToBuffer(this.txRequest, this.privateCall); } + + /** + * Deserializes from a buffer or reader. + * @param buffer - Buffer or reader to read from. + * @returns The deserialized instance. + */ + static fromBuffer(buffer: Buffer | BufferReader): PrivateKernelInputsInit { + const reader = BufferReader.asReader(buffer); + return new PrivateKernelInputsInit(reader.readObject(TxRequest), reader.readObject(PrivateCallData)); + } } /** @@ -239,4 +249,23 @@ export class PrivateKernelInputsOrdering { this.masterNullifierSecretKeys, ); } + + /** + * Deserializes from a buffer or reader. + * @param buffer - Buffer or reader to read from. + * @returns The deserialized instance. + */ + static fromBuffer(buffer: Buffer | BufferReader): PrivateKernelInputsOrdering { + const reader = BufferReader.asReader(buffer); + return new PrivateKernelInputsOrdering( + reader.readObject(PreviousKernelData), + reader.readArray(MAX_NEW_COMMITMENTS_PER_TX, SideEffect), + reader.readNumbers(MAX_NEW_COMMITMENTS_PER_TX), + reader.readArray(MAX_READ_REQUESTS_PER_TX, Fr), + reader.readArray(MAX_NEW_NULLIFIERS_PER_TX, SideEffectLinkedToNoteHash), + reader.readNumbers(MAX_NEW_NULLIFIERS_PER_TX), + reader.readArray(MAX_NEW_NULLIFIERS_PER_TX, Fr), + reader.readArray(MAX_NULLIFIER_KEY_VALIDATION_REQUESTS_PER_TX, GrumpkinScalar), + ); + } } diff --git a/yarn-project/end-to-end/src/e2e_nested_contract.test.ts b/yarn-project/end-to-end/src/e2e_nested_contract.test.ts index f1f4d29b3ae..d3dec0751ea 100644 --- a/yarn-project/end-to-end/src/e2e_nested_contract.test.ts +++ b/yarn-project/end-to-end/src/e2e_nested_contract.test.ts @@ -36,12 +36,32 @@ describe('e2e_nested_contract', () => { .wait(); if (isGenerateTestDataEnabled()) { - const privateKernelInputs = getTestData('private-kernel-inputs-inner'); - const nestedCallPrivateKernelInput = privateKernelInputs[privateKernelInputs.length - 1]; - writeFileSync( - '../noir-protocol-circuits/src/fixtures/nested-call-private-kernel-inner.hex', - nestedCallPrivateKernelInput.toBuffer().toString('hex'), - ); + { + const privateKernelInputsInit = getTestData('private-kernel-inputs-init'); + const nestedCallPrivateKernelInput = privateKernelInputsInit[0]; + writeFileSync( + '../noir-protocol-circuits/src/fixtures/nested-call-private-kernel-init.hex', + nestedCallPrivateKernelInput.toBuffer().toString('hex'), + ); + } + + { + const privateKernelInputsInner = getTestData('private-kernel-inputs-inner'); + const nestedCallPrivateKernelInput = privateKernelInputsInner[privateKernelInputsInner.length - 1]; + writeFileSync( + '../noir-protocol-circuits/src/fixtures/nested-call-private-kernel-inner.hex', + nestedCallPrivateKernelInput.toBuffer().toString('hex'), + ); + } + + { + const privateKernelInputsOrdering = getTestData('private-kernel-inputs-ordering'); + const nestedCallPrivateKernelInput = privateKernelInputsOrdering[0]; + writeFileSync( + '../noir-protocol-circuits/src/fixtures/nested-call-private-kernel-ordering.hex', + nestedCallPrivateKernelInput.toBuffer().toString('hex'), + ); + } } }, 100_000); diff --git a/yarn-project/foundation/src/serialize/buffer_reader.ts b/yarn-project/foundation/src/serialize/buffer_reader.ts index 903abcab077..d11efff3cb5 100644 --- a/yarn-project/foundation/src/serialize/buffer_reader.ts +++ b/yarn-project/foundation/src/serialize/buffer_reader.ts @@ -54,6 +54,16 @@ export class BufferReader { return this.buffer.readUint32BE(this.index - 4); } + /** + * Reads `count` 32-bit unsigned integers from the buffer at the current index position. + * @param count - The number of 32-bit unsigned integers to read. + * @returns An array of 32-bit unsigned integers. + */ + public readNumbers(count: N): Tuple { + const result = Array.from({ length: count }, () => this.readNumber()); + return result as Tuple; + } + /** * Reads a 16-bit unsigned integer from the buffer at the current index position. * Updates the index position by 2 bytes after reading the number. diff --git a/yarn-project/noir-protocol-circuits/src/__snapshots__/index.test.ts.snap b/yarn-project/noir-protocol-circuits/src/__snapshots__/index.test.ts.snap index cbd3abddc4b..ded53766652 100644 --- a/yarn-project/noir-protocol-circuits/src/__snapshots__/index.test.ts.snap +++ b/yarn-project/noir-protocol-circuits/src/__snapshots__/index.test.ts.snap @@ -105,41 +105,41 @@ KernelCircuitPublicInputs { "constants": CombinedConstantData { "blockHeader": BlockHeader { "archiveRoot": Fr { - "asBigInt": 10561895175368852737061915973188839857007468377789560793687187642867659280638n, + "asBigInt": 11760689266673761585698609357698254380616683897751261211845848484095655455234n, "asBuffer": { "data": [ - 23, - 89, - 210, - 33, - 121, - 84, - 25, + 26, + 0, 80, - 63, - 134, - 192, - 50, - 232, - 248, - 118, - 47, - 43, - 115, - 158, - 116, - 131, + 113, + 164, + 135, + 228, + 137, + 23, + 135, + 7, + 58, + 145, 80, - 153, - 88, - 75, - 101, - 49, - 245, - 242, - 115, - 144, - 254, + 79, + 230, + 234, + 85, + 40, + 11, + 198, + 246, + 90, + 2, + 31, + 214, + 247, + 202, + 31, + 16, + 170, + 2, ], "type": "Buffer", }, @@ -385,41 +385,41 @@ KernelCircuitPublicInputs { }, }, "publicDataTreeRoot": Fr { - "asBigInt": 5785871043333994658400733180052743689641713274194136017445890613179954325976n, + "asBigInt": 13940981882517738105981911020707002777955674699044852872880094407282064863456n, "asBuffer": { "data": [ - 12, - 202, - 175, - 220, - 156, - 53, - 55, - 67, - 151, - 13, + 30, + 210, + 80, + 237, + 115, + 219, + 110, + 112, + 128, + 92, 78, - 48, - 90, - 231, - 54, + 252, + 240, + 5, + 110, + 134, + 149, + 183, + 156, + 211, + 186, 65, - 206, - 105, - 79, - 7, - 219, - 103, - 136, - 109, - 39, - 105, - 201, - 237, - 136, - 233, - 105, - 216, + 142, + 130, + 124, + 24, + 77, + 238, + 108, + 111, + 176, + 224, ], "type": "Buffer", }, @@ -427,7 +427,7 @@ KernelCircuitPublicInputs { }, "txContext": TxContext { "chainId": Fr { - "asBigInt": 0n, + "asBigInt": 31337n, "asBuffer": { "data": [ 0, @@ -460,89 +460,89 @@ KernelCircuitPublicInputs { 0, 0, 0, - 0, - 0, + 122, + 105, ], "type": "Buffer", }, }, "contractDeploymentData": ContractDeploymentData { "constructorVkHash": Fr { - "asBigInt": 4946902893997605007258693448883037341256770656195244398892734919432197304822n, + "asBigInt": 1583326240861609738393684596312518968005858067213923665222866669013140837326n, "asBuffer": { "data": [ - 10, - 239, - 217, - 10, - 105, - 166, - 67, - 50, - 76, - 123, - 240, - 169, + 3, + 128, + 33, + 130, + 79, 189, - 59, - 35, - 173, - 160, - 144, - 173, - 136, - 55, - 115, - 253, - 240, - 176, - 173, - 82, - 169, + 152, + 187, + 14, + 56, + 139, + 14, + 254, + 24, 247, - 214, - 241, - 246, + 46, + 147, + 80, + 247, + 69, + 100, + 129, + 113, + 69, + 57, + 186, + 88, + 61, + 227, + 113, + 19, + 206, ], "type": "Buffer", }, }, "contractAddressSalt": Fr { - "asBigInt": 13918524182926832455178861490988425129196887976468020413394338716458484696156n, + "asBigInt": 5715788628466014564753145955124535735977317413547751808173820928060130010488n, "asBuffer": { "data": [ - 30, - 197, - 155, - 3, - 19, - 250, + 12, + 163, + 5, + 143, + 94, + 10, + 226, + 248, + 9, + 137, + 101, 80, - 67, - 2, - 195, - 51, + 33, + 77, 111, - 201, - 17, - 214, - 136, - 237, - 174, - 103, - 196, - 251, - 242, - 41, - 214, - 140, - 127, - 54, - 237, - 135, - 151, - 4, - 92, + 184, + 200, + 96, + 243, + 132, + 162, + 245, + 72, + 217, + 95, + 220, + 148, + 193, + 176, + 199, + 37, + 120, ], "type": "Buffer", }, @@ -550,122 +550,122 @@ KernelCircuitPublicInputs { "deployerPublicKey": Point { "kind": "point", "x": Fr { - "asBigInt": 13513162828633936749079339485623471377790691038584182237805001838837073529635n, + "asBigInt": 18040458897480127764142223692208684686831966101790881484314177406099286746304n, "asBuffer": { "data": [ - 29, - 224, - 45, - 218, - 202, - 198, - 210, - 244, 39, - 229, - 240, - 211, - 206, + 226, + 137, + 179, + 9, + 158, + 32, + 88, + 100, + 81, + 85, + 106, + 132, + 94, + 61, + 117, + 248, 89, - 215, - 41, + 187, 79, - 20, - 98, - 128, - 69, - 93, - 212, - 197, - 130, - 37, - 78, - 11, - 76, - 37, - 75, - 35, + 117, + 127, + 132, + 202, + 1, + 223, + 151, + 46, + 193, + 33, + 100, + 192, ], "type": "Buffer", }, }, "y": Fr { - "asBigInt": 16193209371316637857741102275574203818928254115376185574760513755303226932941n, + "asBigInt": 8351469406419082733708266903523540335749598199220619980033469638087926373102n, "asBuffer": { "data": [ - 35, - 205, - 8, - 29, - 254, - 156, - 13, - 24, - 115, - 182, - 90, - 54, + 18, + 118, + 195, 160, - 136, - 88, - 231, - 58, - 155, - 48, - 208, - 51, - 158, - 148, - 196, + 229, + 74, + 243, + 59, + 218, + 78, + 201, + 25, + 170, + 200, + 125, + 20, + 25, + 192, + 0, + 98, + 161, 145, - 93, - 113, - 16, - 226, - 240, - 126, - 205, + 42, + 19, + 10, + 221, + 248, + 170, + 135, + 60, + 90, + 238, ], "type": "Buffer", }, }, }, "functionTreeRoot": Fr { - "asBigInt": 5733828181279984846924392032049330885938310333906649337231112228024374578179n, + "asBigInt": 5586268305277371185225261204085928914807606659970509385734366170410186349015n, "asBuffer": { "data": [ 12, - 173, - 59, - 83, - 145, - 228, - 10, - 248, - 116, - 62, - 16, - 83, - 192, - 21, - 225, - 106, - 186, - 198, - 16, - 10, - 139, - 145, - 117, - 18, + 89, + 183, + 63, + 146, 192, - 131, - 203, - 76, - 187, - 140, - 204, - 3, + 134, + 236, + 93, + 146, + 14, + 103, + 147, + 231, + 103, + 216, + 7, + 110, + 141, + 70, + 108, + 212, + 159, + 159, + 39, + 183, + 67, + 24, + 246, + 194, + 153, + 215, ], "type": "Buffer", }, @@ -702,7 +702,7 @@ KernelCircuitPublicInputs { "isFeePaymentTx": false, "isRebatePaymentTx": false, "version": Fr { - "asBigInt": 0n, + "asBigInt": 1n, "asBuffer": { "data": [ 0, @@ -736,7 +736,7 @@ KernelCircuitPublicInputs { 0, 0, 0, - 0, + 1, ], "type": "Buffer", }, @@ -972,7 +972,7 @@ KernelCircuitPublicInputs { }, "encryptedLogsHash": [ Fr { - "asBigInt": 116881760094330735023399760917603536324n, + "asBigInt": 120473220418664237265653431576962926917n, "asBuffer": { "data": [ 0, @@ -991,28 +991,28 @@ KernelCircuitPublicInputs { 0, 0, 0, - 87, - 238, - 155, - 177, - 38, - 64, - 133, - 236, - 244, + 90, + 162, + 76, + 91, + 110, + 2, + 154, + 223, 186, - 130, - 116, - 178, - 51, - 205, - 196, + 105, + 154, + 203, + 110, + 138, + 9, + 69, ], "type": "Buffer", }, }, Fr { - "asBigInt": 184145148802329932417389828290829878776n, + "asBigInt": 180349442177515303320141638055784967680n, "asBuffer": { "data": [ 0, @@ -1031,22 +1031,22 @@ KernelCircuitPublicInputs { 0, 0, 0, - 138, - 137, - 16, - 204, - 107, - 147, - 180, + 135, + 174, + 10, + 3, + 101, + 105, + 244, + 51, + 139, + 102, + 231, + 79, 57, - 154, - 30, - 189, - 143, - 191, - 180, - 5, - 248, + 29, + 110, + 0, ], "type": "Buffer", }, @@ -1055,7 +1055,7 @@ KernelCircuitPublicInputs { "newCommitments": [ SideEffect { "counter": Fr { - "asBigInt": 0n, + "asBigInt": 3n, "asBuffer": { "data": [ 0, @@ -1089,47 +1089,47 @@ KernelCircuitPublicInputs { 0, 0, 0, - 0, + 3, ], "type": "Buffer", }, }, "value": Fr { - "asBigInt": 8240305160289019381083256608879877337799989644951984162356314972952353509340n, + "asBigInt": 4250178692161300648335692630634107512801639993593719645811608162083278411334n, "asBuffer": { "data": [ - 18, - 55, - 216, - 241, - 215, - 66, - 41, - 46, + 9, + 101, + 132, + 17, + 119, 0, - 125, - 4, - 230, - 109, - 173, - 105, - 145, - 109, - 210, - 57, - 161, - 19, - 69, - 62, - 207, - 135, - 242, - 27, + 158, + 5, + 144, + 223, + 22, + 216, + 29, + 97, + 16, + 78, + 209, + 183, + 192, + 126, + 83, + 25, + 28, + 253, + 243, + 100, + 48, + 3, + 85, + 151, + 214, 70, - 147, - 51, - 15, - 220, ], "type": "Buffer", }, @@ -6305,81 +6305,81 @@ KernelCircuitPublicInputs { "newContracts": [ NewContractData { "contractAddress": AztecAddress { - "asBigInt": 17136208615489370595324712951074318609059907391564891634353187633922419015940n, + "asBigInt": 10322537727899308771904012032333545782539712384974956048990598232687118880488n, "asBuffer": { "data": [ - 37, - 226, + 22, + 210, + 89, + 108, + 79, + 109, + 231, + 137, + 96, + 251, 192, - 23, - 245, + 216, + 208, + 145, + 85, + 178, 218, - 31, - 153, - 68, - 1, - 230, - 29, - 38, - 190, - 67, - 94, - 60, - 250, - 38, - 239, - 238, + 71, + 93, + 225, + 180, 120, - 76, + 185, + 218, 107, - 78, - 148, - 127, - 118, - 81, - 189, - 65, - 4, + 134, + 97, + 80, + 151, + 119, + 142, + 232, ], "type": "Buffer", }, }, "functionTreeRoot": Fr { - "asBigInt": 5733828181279984846924392032049330885938310333906649337231112228024374578179n, + "asBigInt": 5586268305277371185225261204085928914807606659970509385734366170410186349015n, "asBuffer": { "data": [ 12, - 173, - 59, - 83, - 145, - 228, - 10, - 248, - 116, - 62, - 16, - 83, - 192, - 21, - 225, - 106, - 186, - 198, - 16, - 10, - 139, - 145, - 117, - 18, + 89, + 183, + 63, + 146, 192, - 131, - 203, - 76, - 187, - 140, - 204, - 3, + 134, + 236, + 93, + 146, + 14, + 103, + 147, + 231, + 103, + 216, + 7, + 110, + 141, + 70, + 108, + 212, + 159, + 159, + 39, + 183, + 67, + 24, + 246, + 194, + 153, + 215, ], "type": "Buffer", }, @@ -6578,41 +6578,41 @@ KernelCircuitPublicInputs { }, }, "value": Fr { - "asBigInt": 2567833015098009695197683741929052765845567165156134398536953771337640275556n, + "asBigInt": 18557487041571647491253465533783572374900896515498607932207140777586604671909n, "asBuffer": { "data": [ - 5, - 173, - 87, - 140, - 34, - 169, - 107, - 104, - 191, - 247, - 76, - 132, - 57, - 231, - 109, - 208, - 71, - 246, - 205, - 22, - 148, - 50, - 20, - 219, - 39, + 41, + 7, + 42, + 90, + 194, + 77, + 156, + 63, + 252, + 37, + 82, 232, - 4, - 177, - 237, - 31, - 110, - 100, + 93, + 21, + 12, + 242, + 143, + 127, + 185, + 50, + 149, + 74, + 152, + 156, + 67, + 116, + 134, + 133, + 193, + 68, + 131, + 165, ], "type": "Buffer", }, @@ -6620,7 +6620,7 @@ KernelCircuitPublicInputs { }, SideEffectLinkedToNoteHash { "counter": Fr { - "asBigInt": 0n, + "asBigInt": 2n, "asBuffer": { "data": [ 0, @@ -6654,7 +6654,7 @@ KernelCircuitPublicInputs { 0, 0, 0, - 0, + 2, ], "type": "Buffer", }, @@ -6700,41 +6700,41 @@ KernelCircuitPublicInputs { }, }, "value": Fr { - "asBigInt": 131391450486342918604555900920288880952936359657946230216264970318333633026n, + "asBigInt": 16438423491489947124784078749911006131636547378036801833088015732454017068948n, "asBuffer": { "data": [ - 0, - 74, - 93, - 107, - 195, - 78, - 132, - 197, - 163, - 215, - 166, - 37, - 163, - 119, - 47, - 77, - 47, - 132, - 199, - 212, - 102, + 36, + 87, + 209, + 103, + 56, + 238, + 159, + 64, + 115, + 209, + 45, + 49, + 126, + 57, + 144, + 193, + 142, + 185, + 198, + 82, + 3, + 123, + 214, + 169, + 181, + 205, + 88, + 198, 55, - 105, - 30, - 246, - 78, - 226, - 113, - 30, - 108, - 98, - 2, + 33, + 239, + 148, ], "type": "Buffer", }, @@ -6822,41 +6822,41 @@ KernelCircuitPublicInputs { }, }, "value": Fr { - "asBigInt": 11322578994265849565401386951246010528140686424276775038536393177707801557130n, + "asBigInt": 428170714625336957264161727950592097398222784351822461854326875949878503109n, "asBuffer": { "data": [ - 25, - 8, - 90, - 68, - 120, - 196, - 170, - 57, - 148, - 212, - 165, - 147, - 94, - 175, - 94, - 13, - 88, - 114, - 106, - 117, - 141, - 57, - 138, + 0, + 242, + 86, + 6, + 123, + 121, + 171, + 124, + 214, + 109, 151, - 246, + 205, + 113, + 122, 52, - 223, - 34, - 211, - 61, - 56, - 138, + 127, + 63, + 219, + 103, + 94, + 131, + 233, + 251, + 176, + 206, + 215, + 44, + 137, + 41, + 216, + 102, + 197, ], "type": "Buffer", }, @@ -33291,121 +33291,121 @@ KernelCircuitPublicInputs { "constants": CombinedConstantData { "blockHeader": BlockHeader { "archiveRoot": Fr { - "asBigInt": 16454408415241870546348878448648585202023939838009976777436344301186006982268n, + "asBigInt": 10158515181242313771272129266142503619553755184795631153806639415695924753064n, "asBuffer": { "data": [ - 36, - 96, - 221, - 120, - 255, - 84, - 77, - 189, - 196, - 21, - 86, - 152, - 58, - 120, - 160, - 79, - 51, + 22, + 117, + 132, + 13, + 235, + 208, + 214, + 90, + 177, + 75, + 34, + 241, + 226, + 46, + 102, + 251, + 8, + 249, + 108, + 6, 201, - 115, - 84, - 25, - 174, - 115, - 198, - 176, - 28, - 225, - 170, - 1, - 161, - 30, - 124, + 62, + 2, + 137, + 233, + 148, + 20, + 219, + 108, + 223, + 114, + 168, ], "type": "Buffer", }, }, "contractTreeRoot": Fr { - "asBigInt": 7560433123875024782218581094134672304827144386906267769898854978342522185109n, + "asBigInt": 6568415749042037984926757810931669596906945004802041565559932650144630077823n, "asBuffer": { "data": [ - 16, - 183, - 13, - 178, - 115, - 10, - 171, - 177, - 206, - 77, - 255, - 140, - 146, - 10, - 215, - 175, - 85, - 34, - 54, - 250, - 173, - 91, + 14, + 133, + 151, + 112, + 247, + 88, 33, - 241, + 185, 132, - 54, - 180, - 193, - 51, + 119, + 212, + 186, + 166, + 150, + 10, 23, - 229, - 149, + 35, + 169, + 142, + 209, + 176, + 118, + 188, + 77, + 74, + 183, + 69, + 108, + 237, + 224, + 121, + 127, ], "type": "Buffer", }, }, "globalVariablesHash": Fr { - "asBigInt": 8140039057358195938419571555272824515540763959254571167901752187936176234069n, + "asBigInt": 4957651144733684399923001854900234304058969119810162343440706384384366996898n, "asBuffer": { "data": [ - 17, - 255, - 25, - 77, + 10, + 245, + 238, + 93, + 48, + 169, + 141, + 160, + 245, + 57, + 42, 98, - 70, - 133, - 248, - 186, - 227, - 210, - 73, - 41, - 75, - 246, - 55, - 49, - 249, + 45, + 69, + 103, + 95, + 1, + 62, + 64, + 164, + 141, + 169, + 183, + 138, + 25, + 234, + 183, 51, - 102, - 123, - 249, - 100, - 14, - 111, - 251, - 4, - 89, - 188, - 114, - 94, - 85, + 143, + 83, + 237, + 162, ], "type": "Buffer", }, @@ -33451,81 +33451,81 @@ KernelCircuitPublicInputs { }, }, "noteHashTreeRoot": Fr { - "asBigInt": 10411640244610738920132898994777918396000203239110961103800109809621135187868n, + "asBigInt": 21096372356742043613143668548970006127383930024852699713566094163642473651418n, "asBuffer": { "data": [ - 23, - 4, - 199, - 144, - 87, - 46, 46, - 73, - 138, - 66, - 205, - 44, - 122, - 152, - 177, - 94, - 144, - 215, - 187, - 119, - 180, - 73, - 73, - 204, - 50, - 172, - 178, - 33, - 64, - 142, - 223, - 156, + 164, + 31, + 165, + 7, + 55, + 231, + 190, + 240, + 216, + 74, + 67, + 190, + 145, + 170, + 244, + 134, + 250, + 103, + 201, + 24, + 137, + 127, + 246, + 213, + 201, + 80, + 231, + 90, + 30, + 28, + 218, ], "type": "Buffer", }, }, "nullifierTreeRoot": Fr { - "asBigInt": 2870496465929693759391185653861452222192461193003279384938436954846503527174n, + "asBigInt": 3854537502129371887220012912461119183373952203973454068004402307982707681096n, "asBuffer": { "data": [ - 6, - 88, - 164, - 183, - 120, - 51, - 17, - 217, + 8, + 133, 151, - 69, - 90, - 163, - 196, - 193, - 2, - 74, - 102, - 75, - 238, - 88, - 63, - 199, - 84, - 82, - 4, - 21, - 156, - 124, - 220, + 70, + 28, + 10, + 140, + 109, + 207, 34, - 99, - 6, + 217, + 106, + 254, + 13, + 167, + 170, + 49, + 77, + 141, + 11, + 248, + 0, + 119, + 158, + 250, + 87, + 11, + 2, + 93, + 168, + 103, + 72, ], "type": "Buffer", }, @@ -39764,41 +39764,41 @@ KernelCircuitPublicInputs { }, }, "value": Fr { - "asBigInt": 21339724123947454694513922712420851103341607759645429205369587832535817328596n, + "asBigInt": 21656661793333488699623133973291552050691035067334656041912224559552713545549n, "asBuffer": { "data": [ 47, - 45, - 219, - 23, - 190, - 196, - 137, - 219, - 108, - 231, - 132, - 82, - 202, - 242, - 1, - 209, - 47, + 225, + 60, + 119, + 69, 155, - 150, - 83, - 146, + 37, + 42, + 3, + 220, + 241, + 1, + 152, + 254, + 157, + 61, + 59, + 245, + 157, 115, - 177, - 91, - 92, 204, - 194, - 176, - 79, - 19, - 23, - 212, + 170, + 245, + 90, + 152, + 97, + 100, + 174, + 46, + 73, + 87, + 77, ], "type": "Buffer", }, @@ -66477,41 +66477,41 @@ KernelCircuitPublicInputsFinal { "constants": CombinedConstantData { "blockHeader": BlockHeader { "archiveRoot": Fr { - "asBigInt": 10561895175368852737061915973188839857007468377789560793687187642867659280638n, + "asBigInt": 11760689266673761585698609357698254380616683897751261211845848484095655455234n, "asBuffer": { "data": [ - 23, - 89, - 210, - 33, - 121, - 84, - 25, + 26, + 0, 80, - 63, - 134, - 192, - 50, - 232, - 248, - 118, - 47, - 43, - 115, - 158, - 116, - 131, + 113, + 164, + 135, + 228, + 137, + 23, + 135, + 7, + 58, + 145, 80, - 153, - 88, - 75, - 101, - 49, - 245, - 242, - 115, - 144, - 254, + 79, + 230, + 234, + 85, + 40, + 11, + 198, + 246, + 90, + 2, + 31, + 214, + 247, + 202, + 31, + 16, + 170, + 2, ], "type": "Buffer", }, @@ -66757,41 +66757,41 @@ KernelCircuitPublicInputsFinal { }, }, "publicDataTreeRoot": Fr { - "asBigInt": 5785871043333994658400733180052743689641713274194136017445890613179954325976n, + "asBigInt": 13940981882517738105981911020707002777955674699044852872880094407282064863456n, "asBuffer": { "data": [ - 12, - 202, - 175, - 220, - 156, - 53, - 55, - 67, - 151, - 13, + 30, + 210, + 80, + 237, + 115, + 219, + 110, + 112, + 128, + 92, 78, - 48, - 90, - 231, - 54, + 252, + 240, + 5, + 110, + 134, + 149, + 183, + 156, + 211, + 186, 65, - 206, - 105, - 79, - 7, - 219, - 103, - 136, - 109, - 39, - 105, - 201, - 237, - 136, - 233, - 105, - 216, + 142, + 130, + 124, + 24, + 77, + 238, + 108, + 111, + 176, + 224, ], "type": "Buffer", }, @@ -66799,7 +66799,7 @@ KernelCircuitPublicInputsFinal { }, "txContext": TxContext { "chainId": Fr { - "asBigInt": 0n, + "asBigInt": 31337n, "asBuffer": { "data": [ 0, @@ -66832,89 +66832,89 @@ KernelCircuitPublicInputsFinal { 0, 0, 0, - 0, - 0, + 122, + 105, ], "type": "Buffer", }, }, "contractDeploymentData": ContractDeploymentData { "constructorVkHash": Fr { - "asBigInt": 4946902893997605007258693448883037341256770656195244398892734919432197304822n, + "asBigInt": 1583326240861609738393684596312518968005858067213923665222866669013140837326n, "asBuffer": { "data": [ - 10, - 239, - 217, - 10, - 105, - 166, - 67, - 50, - 76, - 123, - 240, - 169, + 3, + 128, + 33, + 130, + 79, 189, - 59, - 35, - 173, - 160, - 144, - 173, - 136, - 55, - 115, - 253, - 240, - 176, - 173, - 82, - 169, + 152, + 187, + 14, + 56, + 139, + 14, + 254, + 24, 247, - 214, - 241, - 246, + 46, + 147, + 80, + 247, + 69, + 100, + 129, + 113, + 69, + 57, + 186, + 88, + 61, + 227, + 113, + 19, + 206, ], "type": "Buffer", }, }, "contractAddressSalt": Fr { - "asBigInt": 13918524182926832455178861490988425129196887976468020413394338716458484696156n, + "asBigInt": 5715788628466014564753145955124535735977317413547751808173820928060130010488n, "asBuffer": { "data": [ - 30, - 197, - 155, - 3, - 19, - 250, + 12, + 163, + 5, + 143, + 94, + 10, + 226, + 248, + 9, + 137, + 101, 80, - 67, - 2, - 195, - 51, + 33, + 77, 111, - 201, - 17, - 214, - 136, - 237, - 174, - 103, - 196, - 251, - 242, - 41, - 214, - 140, - 127, - 54, - 237, - 135, - 151, - 4, - 92, + 184, + 200, + 96, + 243, + 132, + 162, + 245, + 72, + 217, + 95, + 220, + 148, + 193, + 176, + 199, + 37, + 120, ], "type": "Buffer", }, @@ -66922,122 +66922,122 @@ KernelCircuitPublicInputsFinal { "deployerPublicKey": Point { "kind": "point", "x": Fr { - "asBigInt": 13513162828633936749079339485623471377790691038584182237805001838837073529635n, + "asBigInt": 18040458897480127764142223692208684686831966101790881484314177406099286746304n, "asBuffer": { "data": [ - 29, - 224, - 45, - 218, - 202, - 198, - 210, - 244, 39, - 229, - 240, - 211, - 206, + 226, + 137, + 179, + 9, + 158, + 32, + 88, + 100, + 81, + 85, + 106, + 132, + 94, + 61, + 117, + 248, 89, - 215, - 41, + 187, 79, - 20, - 98, - 128, - 69, - 93, - 212, - 197, - 130, - 37, - 78, - 11, - 76, - 37, - 75, - 35, + 117, + 127, + 132, + 202, + 1, + 223, + 151, + 46, + 193, + 33, + 100, + 192, ], "type": "Buffer", }, }, "y": Fr { - "asBigInt": 16193209371316637857741102275574203818928254115376185574760513755303226932941n, + "asBigInt": 8351469406419082733708266903523540335749598199220619980033469638087926373102n, "asBuffer": { "data": [ - 35, - 205, - 8, - 29, - 254, - 156, - 13, - 24, - 115, - 182, - 90, - 54, + 18, + 118, + 195, 160, - 136, - 88, - 231, - 58, - 155, - 48, - 208, - 51, - 158, - 148, - 196, + 229, + 74, + 243, + 59, + 218, + 78, + 201, + 25, + 170, + 200, + 125, + 20, + 25, + 192, + 0, + 98, + 161, 145, - 93, - 113, - 16, - 226, - 240, - 126, - 205, + 42, + 19, + 10, + 221, + 248, + 170, + 135, + 60, + 90, + 238, ], "type": "Buffer", }, }, }, "functionTreeRoot": Fr { - "asBigInt": 5733828181279984846924392032049330885938310333906649337231112228024374578179n, + "asBigInt": 5586268305277371185225261204085928914807606659970509385734366170410186349015n, "asBuffer": { "data": [ 12, - 173, - 59, - 83, - 145, - 228, - 10, - 248, - 116, - 62, - 16, - 83, - 192, - 21, - 225, - 106, - 186, - 198, - 16, - 10, - 139, - 145, - 117, - 18, + 89, + 183, + 63, + 146, 192, - 131, - 203, - 76, - 187, - 140, - 204, - 3, + 134, + 236, + 93, + 146, + 14, + 103, + 147, + 231, + 103, + 216, + 7, + 110, + 141, + 70, + 108, + 212, + 159, + 159, + 39, + 183, + 67, + 24, + 246, + 194, + 153, + 215, ], "type": "Buffer", }, @@ -67074,7 +67074,7 @@ KernelCircuitPublicInputsFinal { "isFeePaymentTx": false, "isRebatePaymentTx": false, "version": Fr { - "asBigInt": 0n, + "asBigInt": 1n, "asBuffer": { "data": [ 0, @@ -67108,7 +67108,7 @@ KernelCircuitPublicInputsFinal { 0, 0, 0, - 0, + 1, ], "type": "Buffer", }, @@ -67344,7 +67344,7 @@ KernelCircuitPublicInputsFinal { }, "encryptedLogsHash": [ Fr { - "asBigInt": 116881760094330735023399760917603536324n, + "asBigInt": 120473220418664237265653431576962926917n, "asBuffer": { "data": [ 0, @@ -67363,28 +67363,28 @@ KernelCircuitPublicInputsFinal { 0, 0, 0, - 87, - 238, - 155, - 177, - 38, - 64, - 133, - 236, - 244, + 90, + 162, + 76, + 91, + 110, + 2, + 154, + 223, 186, - 130, - 116, - 178, - 51, - 205, - 196, + 105, + 154, + 203, + 110, + 138, + 9, + 69, ], "type": "Buffer", }, }, Fr { - "asBigInt": 184145148802329932417389828290829878776n, + "asBigInt": 180349442177515303320141638055784967680n, "asBuffer": { "data": [ 0, @@ -67403,22 +67403,22 @@ KernelCircuitPublicInputsFinal { 0, 0, 0, - 138, - 137, - 16, - 204, - 107, - 147, - 180, + 135, + 174, + 10, + 3, + 101, + 105, + 244, + 51, + 139, + 102, + 231, + 79, 57, - 154, - 30, - 189, - 143, - 191, - 180, - 5, - 248, + 29, + 110, + 0, ], "type": "Buffer", }, @@ -67427,7 +67427,7 @@ KernelCircuitPublicInputsFinal { "newCommitments": [ SideEffect { "counter": Fr { - "asBigInt": 0n, + "asBigInt": 3n, "asBuffer": { "data": [ 0, @@ -67461,47 +67461,47 @@ KernelCircuitPublicInputsFinal { 0, 0, 0, - 0, + 3, ], "type": "Buffer", }, }, "value": Fr { - "asBigInt": 12771775224118191483898915169603387229405021446030587347982956765852896294728n, + "asBigInt": 19405992485366774859947666833557573771278578023241022468020211386079897703171n, "asBuffer": { "data": [ - 28, - 60, - 145, - 144, 42, - 59, - 23, - 71, - 27, - 191, - 185, - 73, - 59, - 54, - 69, - 245, - 187, - 21, - 225, - 58, - 128, - 182, - 212, - 12, - 224, - 176, - 240, - 147, - 18, - 147, - 119, - 72, + 231, + 103, + 10, + 222, + 129, + 122, + 215, + 5, + 246, + 181, + 87, + 22, + 29, + 178, + 221, + 11, + 40, + 94, + 239, + 172, + 84, + 194, + 158, + 121, + 122, + 231, + 139, + 25, + 19, + 211, + 3, ], "type": "Buffer", }, @@ -72677,81 +72677,81 @@ KernelCircuitPublicInputsFinal { "newContracts": [ NewContractData { "contractAddress": AztecAddress { - "asBigInt": 17136208615489370595324712951074318609059907391564891634353187633922419015940n, + "asBigInt": 10322537727899308771904012032333545782539712384974956048990598232687118880488n, "asBuffer": { "data": [ - 37, - 226, + 22, + 210, + 89, + 108, + 79, + 109, + 231, + 137, + 96, + 251, 192, - 23, - 245, + 216, + 208, + 145, + 85, + 178, 218, - 31, - 153, - 68, - 1, - 230, - 29, - 38, - 190, - 67, - 94, - 60, - 250, - 38, - 239, - 238, + 71, + 93, + 225, + 180, 120, - 76, + 185, + 218, 107, - 78, - 148, - 127, - 118, - 81, - 189, - 65, - 4, + 134, + 97, + 80, + 151, + 119, + 142, + 232, ], "type": "Buffer", }, }, "functionTreeRoot": Fr { - "asBigInt": 5733828181279984846924392032049330885938310333906649337231112228024374578179n, + "asBigInt": 5586268305277371185225261204085928914807606659970509385734366170410186349015n, "asBuffer": { "data": [ 12, - 173, - 59, - 83, - 145, - 228, - 10, - 248, - 116, - 62, - 16, - 83, - 192, - 21, - 225, - 106, - 186, - 198, - 16, - 10, - 139, - 145, - 117, - 18, + 89, + 183, + 63, + 146, 192, - 131, - 203, - 76, - 187, - 140, - 204, - 3, + 134, + 236, + 93, + 146, + 14, + 103, + 147, + 231, + 103, + 216, + 7, + 110, + 141, + 70, + 108, + 212, + 159, + 159, + 39, + 183, + 67, + 24, + 246, + 194, + 153, + 215, ], "type": "Buffer", }, @@ -72950,41 +72950,41 @@ KernelCircuitPublicInputsFinal { }, }, "value": Fr { - "asBigInt": 11322578994265849565401386951246010528140686424276775038536393177707801557130n, + "asBigInt": 18557487041571647491253465533783572374900896515498607932207140777586604671909n, "asBuffer": { "data": [ - 25, - 8, + 41, + 7, + 42, 90, + 194, + 77, + 156, + 63, + 252, + 37, + 82, + 232, + 93, + 21, + 12, + 242, + 143, + 127, + 185, + 50, + 149, + 74, + 152, + 156, + 67, + 116, + 134, + 133, + 193, 68, - 120, - 196, - 170, - 57, - 148, - 212, + 131, 165, - 147, - 94, - 175, - 94, - 13, - 88, - 114, - 106, - 117, - 141, - 57, - 138, - 151, - 246, - 52, - 223, - 34, - 211, - 61, - 56, - 138, ], "type": "Buffer", }, @@ -73072,41 +73072,41 @@ KernelCircuitPublicInputsFinal { }, }, "value": Fr { - "asBigInt": 7094590644143379362066385400655107720501862419669243795306142485975929345465n, + "asBigInt": 428170714625336957264161727950592097398222784351822461854326875949878503109n, "asBuffer": { "data": [ - 15, - 175, - 101, - 96, - 137, - 229, - 168, - 211, - 33, - 182, - 79, - 66, - 15, - 192, - 8, 0, - 87, - 54, - 160, - 180, - 240, - 184, - 88, - 136, - 145, - 36, - 19, - 146, - 200, - 38, - 85, - 185, + 242, + 86, + 6, + 123, + 121, + 171, + 124, + 214, + 109, + 151, + 205, + 113, + 122, + 52, + 127, + 63, + 219, + 103, + 94, + 131, + 233, + 251, + 176, + 206, + 215, + 44, + 137, + 41, + 216, + 102, + 197, ], "type": "Buffer", }, @@ -73194,41 +73194,41 @@ KernelCircuitPublicInputsFinal { }, }, "value": Fr { - "asBigInt": 131391450486342918604555900920288880952936359657946230216264970318333633026n, + "asBigInt": 16438423491489947124784078749911006131636547378036801833088015732454017068948n, "asBuffer": { "data": [ - 0, - 74, - 93, - 107, - 195, - 78, - 132, - 197, - 163, - 215, - 166, - 37, - 163, - 119, - 47, - 77, - 47, - 132, - 199, - 212, - 102, + 36, + 87, + 209, + 103, + 56, + 238, + 159, + 64, + 115, + 209, + 45, + 49, + 126, + 57, + 144, + 193, + 142, + 185, + 198, + 82, + 3, + 123, + 214, + 169, + 181, + 205, + 88, + 198, 55, - 105, - 30, - 246, - 78, - 226, - 113, - 30, - 108, - 98, - 2, + 33, + 239, + 148, ], "type": "Buffer", }, diff --git a/yarn-project/noir-protocol-circuits/src/fixtures/nested-call-private-kernel-init.hex b/yarn-project/noir-protocol-circuits/src/fixtures/nested-call-private-kernel-init.hex new file mode 100644 index 00000000000..eb1a73f2ce3 --- /dev/null +++ b/yarn-project/noir-protocol-circuits/src/fixtures/nested-call-private-kernel-init.hex @@ -0,0 +1 @@ +16d2596c4f6de78960fbc0d8d09155b2da475de1b478b9da6b86615097778ee8af9f8c440001012e524f85d95e8fa38f77391385df385a7a1a918642efcbbc49ac3f12e0a2d6d600000127e289b3099e20586451556a845e3d75f859bb4f757f84ca01df972ec12164c01276c3a0e54af33bda4ec919aac87d1419c00062a1912a130addf8aa873c5aee038021824fbd98bb0e388b0efe18f72e9350f7456481714539ba583de37113ce0c59b73f92c086ec5d920e6793e767d8076e8d466cd49f9f27b74318f6c299d70ca3058f5e0ae2f809896550214d6fb8c860f384a2f548d95fdc94c1b0c7257800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000007a69000000000000000000000000000000000000000000000000000000000000000116d2596c4f6de78960fbc0d8d09155b2da475de1b478b9da6b86615097778ee8af9f8c44000101000000000000000000000000000000000000000000000000000000000000000016d2596c4f6de78960fbc0d8d09155b2da475de1b478b9da6b86615097778ee80000000000000000000000000000000000000000000000000000000000000000af9f8c44000001000000022e524f85d95e8fa38f77391385df385a7a1a918642efcbbc49ac3f12e0a2d6d600000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000079d727c3024940dd1aa7a74c061ed27a8de22f4c464e7837a59c4b3f878c612000000000000000000000000000000000000000000000000000000000000000300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003579f468b2283611cc4d7adfbb93b8a4815d93ac0b1e1d11dace012cf73c7aa00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000f0d91f67256590a414cfbb398de2bd00000000000000000000000000000000650871b6772a84d6f6f9ad61b862afd500000000000000000000000000000000e3b0c44298fc1c149afbf4c8996fb9240000000000000000000000000000000027ae41e4649b934ca495991b7852b85500000000000000000000000000000000000000000000000000000000000000f8000000000000000000000000000000000000000000000000000000000000000416642d9ccd8346c403aa4c3fa451178b22534a27035cdaa6ec34ae53b29c50cb0bcfa3e9f1a8922ee92c6dc964d6595907c1804a86753774322b468f69d4f2781864fcdaa80ff2719154fa7c8a9050662972707168d69eac9db6fd3110829f801864fcdaa80ff2719154fa7c8a9050662972707168d69eac9db6fd3110829f801a005071a487e4891787073a91504fe6ea55280bc6f65a021fd6f7ca1f10aa0200000000000000000000000000000000000000000000000000000000000000001ed250ed73db6e70805c4efcf0056e8695b79cd3ba418e827c184dee6c6fb0e0200569267c0f73ac89aaa414239398db9445dd4ad3a8cf37015cd55b8d4c5e8d27e289b3099e20586451556a845e3d75f859bb4f757f84ca01df972ec12164c01276c3a0e54af33bda4ec919aac87d1419c00062a1912a130addf8aa873c5aee038021824fbd98bb0e388b0efe18f72e9350f7456481714539ba583de37113ce0c59b73f92c086ec5d920e6793e767d8076e8d466cd49f9f27b74318f6c299d70ca3058f5e0ae2f809896550214d6fb8c860f384a2f548d95fdc94c1b0c7257800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000007a69000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000200000800000000740000000f00000003515f3109623eb3c25aa5b16a1a79fd558bac7a7ce62c4560a8c537c77ce80dd339128d1d37b6582ee9e6df9567efb64313471dfa18f520f9ce53161b50dbf7731bc5f900000003515f322bc4cce83a486a92c92fd59bd84e0f92595baa639fc2ed86b00ffa0dfded2a092a669a3bdb7a273a015eda494457cc7ed5236f26cee330c290d45a33b9daa94800000003515f332729426c008c085a81bd34d8ef12dd31e80130339ef99d50013a89e4558eee6d0fa4ffe2ee7b7b62eb92608b2251ac31396a718f9b34978888789042b790a30100000003515f342be6b6824a913eb7a57b03cb1ee7bfb4de02f2f65fe8a4e97baa7766ddb353a82a8a25c49dc63778cd9fe96173f12a2bc77f3682f4c4448f98f1df82c75234a100000003515f351f85760d6ab567465aadc2f180af9eae3800e6958fec96aef53fd8a7b195d7c000c6267a0dd5cfc22b3fe804f53e266069c0e36f51885baec1e7e67650c62e170000000c515f41524954484d455449430d9d0f8ece2aa12012fa21e6e5c859e97bd5704e5c122064a66051294bc5e04213f61f54a0ebdf6fee4d4a6ecf693478191de0c2899bcd8e86a636c8d3eff43400000003515f43224a99d02c86336737c8dd5b746c40d2be6aead8393889a76a18d664029096e90f7fe81adcc92a74350eada9622ac453f49ebac24a066a1f83b394df54dfa0130000000c515f46495845445f42415345060e8a013ed289c2f9fd7473b04f6594b138ddb4b4cf6b901622a14088f04b8d2c83ff74fce56e3d5573b99c7b26d85d5046ce0c6559506acb7a675e7713eb3a00000007515f4c4f4749430721a91cb8da4b917e054f72147e1760cfe0ef3d45090ac0f4961d84ec1996961a25e787b26bd8b50b1a99450f77a424a83513c2b33af268cd253b0587ff50c700000003515f4d05dbd8623b8652511e1eb38d38887a69eceb082f807514f09e127237c5213b401b9325b48c6c225968002318095f89d0ef9cf629b2b7f0172e03bc39aacf6ed800000007515f52414e474504b57a3805e41df328f5ca9aefa40fad5917391543b7b65c6476e60b8f72e9ad07c92f3b3e11c8feae96dedc4b14a6226ef3201244f37cfc1ee5b96781f48d2b000000075349474d415f3125001d1954a18571eaa007144c5a567bb0d2be4def08a8be918b8c05e3b27d312c59ed41e09e144eab5de77ca89a2fd783be702a47c951d3112e3de02ce6e47c000000075349474d415f3223994e6a23618e60fa01c449a7ab88378709197e186d48d604bfb6931ffb15ad11c5ec7a0700570f80088fd5198ab5d5c227f2ad2a455a6edeec024156bb7beb000000075349474d415f3300cda5845f23468a13275d18bddae27c6bb189cf9aa95b6a03a0cb6688c7e8d829639b45cf8607c525cc400b55ebf90205f2f378626dc3406cc59b2d1b474fba000000075349474d415f342d299e7928496ea2d37f10b43afd6a80c90a33b483090d18069ffa275eedb2fc2f82121e8de43dc036d99b478b6227ceef34248939987a19011f065d8b5cef5c0000000010000000000000000100000002000000030000000400000005000000060000000700000008000000090000000a0000000b0000000c0000000d0000000e0000000f00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000b1301bc5321eae0e761ecea83f7f3a4be7da44c1d5664b7574b029f7389c2f70795770e6b327df89fa57f0d476aa0e8b8fdffcb5f544c3a315abdbecdfab6312b5ac8eca3afd0371dddcc78379dc80d849682168c535ed170e776b0094270671815c075eca513bce742e9f29095020b3950373e725a18df06db0ae1ae74ec5a088e24f56e7369ae790a14d8ed7eec981cb1597f960c380345374b0f4c72b74a0c49057400ccf3c52b1da4b585fd0aa68a7ed28d714956c6d085b34a8733ce5d2ae9b2906669e826e5e376ce2ff3327b1e028867d50d4930f681e09874bfd1351ce17a75c19d9d6a2807761abcd228d0890acc38274beb0dea5154562365a02e166b40dd0be40ad157209f8056f2a608bf307850e4bb8da812643409faf5441e203ad62a41c8e7d3e07d3b614ed4ecb1543286061ddf0be411e7e96db5de72a10451503884f41c251ffb99a8c3256382f4d27093e3676b5e55032c13883d729514baec9c8829457251cb3442bb18caa4611c62f88277f82be8ba6e2c9da37eb3067009c9cdd247d1312c91a929629d0ed027ba5523f16d741791835a1ea73cdf0474e7d5f472577f7bab0198ff26249088d4cf5eccd14ed6e53352efd4c8363a199b635523c221dafb684a3a4d48da495293c72fb8396d41b919f0ac53c3735a1bf94004107944602259d6b068468ee5cac4897884f6d3be21444b2f33e7f34a00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 \ No newline at end of file diff --git a/yarn-project/noir-protocol-circuits/src/fixtures/nested-call-private-kernel-inner.hex b/yarn-project/noir-protocol-circuits/src/fixtures/nested-call-private-kernel-inner.hex index 2d88fca417b..89ad1f2ec0b 100644 --- a/yarn-project/noir-protocol-circuits/src/fixtures/nested-call-private-kernel-inner.hex +++ b/yarn-project/noir-protocol-circuits/src/fixtures/nested-call-private-kernel-inner.hex @@ -1 +1 @@ -0000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000002000000000000001000000bd300000bd400000bd500000bd600000bd700000bd800000bd900000bda00000bdb00000bdc00000bdd00000bde00000bdf00000be000000be100000be20000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002f2ddb17bec489db6ce78452caf201d12f9b96539273b15b5cccc2b04f1317d4000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002d9d9f041d621210021290b243c4e39f3bc4ff4f1b2f79b22656258ee704a03f208a42096c178db6a6aa5966f45efa184e965f2b60307135a9e80d70b5b9b6fa00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d3735899d9fa7162447ca631f0ba2cd500000000000000000000000000000000eb57d0965a756d78291da33072610eb200000000000000000000000000000000d3735899d9fa7162447ca631f0ba2cd500000000000000000000000000000000eb57d0965a756d78291da33072610eb2000000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001704c790572e2e498a42cd2c7a98b15e90d7bb77b44949cc32acb221408edf9c0658a4b7783311d997455aa3c4c1024a664bee583fc7545204159c7cdc22630610b70db2730aabb1ce4dff8c920ad7af552236faad5b21f18436b4c13317e5951864fcdaa80ff2719154fa7c8a9050662972707168d69eac9db6fd3110829f802460dd78ff544dbdc41556983a78a04f33c9735419ae73c6b01ce1aa01a11e7c00000000000000000000000000000000000000000000000000000000000000001ed250ed73db6e70805c4efcf0056e8695b79cd3ba418e827c184dee6c6fb0e011ff194d624685f8bae3d249294bf63731f933667bf9640e6ffb0459bc725e550000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000007a69000000000000000000000000000000000000000000000000000000000000000101000000000000000200000800000000740000000f00000003515f3109623eb3c25aa5b16a1a79fd558bac7a7ce62c4560a8c537c77ce80dd339128d1d37b6582ee9e6df9567efb64313471dfa18f520f9ce53161b50dbf7731bc5f900000003515f322bc4cce83a486a92c92fd59bd84e0f92595baa639fc2ed86b00ffa0dfded2a092a669a3bdb7a273a015eda494457cc7ed5236f26cee330c290d45a33b9daa94800000003515f332729426c008c085a81bd34d8ef12dd31e80130339ef99d50013a89e4558eee6d0fa4ffe2ee7b7b62eb92608b2251ac31396a718f9b34978888789042b790a30100000003515f342be6b6824a913eb7a57b03cb1ee7bfb4de02f2f65fe8a4e97baa7766ddb353a82a8a25c49dc63778cd9fe96173f12a2bc77f3682f4c4448f98f1df82c75234a100000003515f351f85760d6ab567465aadc2f180af9eae3800e6958fec96aef53fd8a7b195d7c000c6267a0dd5cfc22b3fe804f53e266069c0e36f51885baec1e7e67650c62e170000000c515f41524954484d455449430d9d0f8ece2aa12012fa21e6e5c859e97bd5704e5c122064a66051294bc5e04213f61f54a0ebdf6fee4d4a6ecf693478191de0c2899bcd8e86a636c8d3eff43400000003515f43224a99d02c86336737c8dd5b746c40d2be6aead8393889a76a18d664029096e90f7fe81adcc92a74350eada9622ac453f49ebac24a066a1f83b394df54dfa0130000000c515f46495845445f42415345060e8a013ed289c2f9fd7473b04f6594b138ddb4b4cf6b901622a14088f04b8d2c83ff74fce56e3d5573b99c7b26d85d5046ce0c6559506acb7a675e7713eb3a00000007515f4c4f4749430721a91cb8da4b917e054f72147e1760cfe0ef3d45090ac0f4961d84ec1996961a25e787b26bd8b50b1a99450f77a424a83513c2b33af268cd253b0587ff50c700000003515f4d05dbd8623b8652511e1eb38d38887a69eceb082f807514f09e127237c5213b401b9325b48c6c225968002318095f89d0ef9cf629b2b7f0172e03bc39aacf6ed800000007515f52414e474504b57a3805e41df328f5ca9aefa40fad5917391543b7b65c6476e60b8f72e9ad07c92f3b3e11c8feae96dedc4b14a6226ef3201244f37cfc1ee5b96781f48d2b000000075349474d415f3125001d1954a18571eaa007144c5a567bb0d2be4def08a8be918b8c05e3b27d312c59ed41e09e144eab5de77ca89a2fd783be702a47c951d3112e3de02ce6e47c000000075349474d415f3223994e6a23618e60fa01c449a7ab88378709197e186d48d604bfb6931ffb15ad11c5ec7a0700570f80088fd5198ab5d5c227f2ad2a455a6edeec024156bb7beb000000075349474d415f3300cda5845f23468a13275d18bddae27c6bb189cf9aa95b6a03a0cb6688c7e8d829639b45cf8607c525cc400b55ebf90205f2f378626dc3406cc59b2d1b474fba000000075349474d415f342d299e7928496ea2d37f10b43afd6a80c90a33b483090d18069ffa275eedb2fc2f82121e8de43dc036d99b478b6227ceef34248939987a19011f065d8b5cef5c0000000010000000000000000100000002000000030000000400000005000000060000000700000008000000090000000a0000000b0000000c0000000d0000000e0000000f000000000034c2db5ec41939b45baa4cbc5805b6f7654b8cacabbf44ec1c8802855747e20c045b96a2e0638d8e7912190df5767d0511ca49ee6efb82a762cd524eef0aca0d5ef42ebeca288776efbb10251e97e0734df52be7c16706b7ac3917a747525c2519eb09831a76da276ad79bf836fc4ffa12770eee0861c6169bdde9deb799bc0906bca1000100208a42096c178db6a6aa5966f45efa184e965f2b60307135a9e80d70b5b9b6fa2519eb09831a76da276ad79bf836fc4ffa12770eee0861c6169bdde9deb799bc00000000000000000000000000000000000000000000000000000000000000000906bca1000000000000031124bf00bac5cd7fc8570fe0e40c34b8d093801a155d53e0b478d960b3a424810000000000000000000000000000000000000000000000000000000000007a6a0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000300000000000000000000000000000000e3b0c44298fc1c149afbf4c8996fb9240000000000000000000000000000000027ae41e4649b934ca495991b7852b85500000000000000000000000000000000e3b0c44298fc1c149afbf4c8996fb9240000000000000000000000000000000027ae41e4649b934ca495991b7852b855000000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000041704c790572e2e498a42cd2c7a98b15e90d7bb77b44949cc32acb221408edf9c0658a4b7783311d997455aa3c4c1024a664bee583fc7545204159c7cdc22630610b70db2730aabb1ce4dff8c920ad7af552236faad5b21f18436b4c13317e5951864fcdaa80ff2719154fa7c8a9050662972707168d69eac9db6fd3110829f802460dd78ff544dbdc41556983a78a04f33c9735419ae73c6b01ce1aa01a11e7c00000000000000000000000000000000000000000000000000000000000000001ed250ed73db6e70805c4efcf0056e8695b79cd3ba418e827c184dee6c6fb0e011ff194d624685f8bae3d249294bf63731f933667bf9640e6ffb0459bc725e550000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000007a69000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000200000800000000740000000f00000003515f3109623eb3c25aa5b16a1a79fd558bac7a7ce62c4560a8c537c77ce80dd339128d1d37b6582ee9e6df9567efb64313471dfa18f520f9ce53161b50dbf7731bc5f900000003515f322bc4cce83a486a92c92fd59bd84e0f92595baa639fc2ed86b00ffa0dfded2a092a669a3bdb7a273a015eda494457cc7ed5236f26cee330c290d45a33b9daa94800000003515f332729426c008c085a81bd34d8ef12dd31e80130339ef99d50013a89e4558eee6d0fa4ffe2ee7b7b62eb92608b2251ac31396a718f9b34978888789042b790a30100000003515f342be6b6824a913eb7a57b03cb1ee7bfb4de02f2f65fe8a4e97baa7766ddb353a82a8a25c49dc63778cd9fe96173f12a2bc77f3682f4c4448f98f1df82c75234a100000003515f351f85760d6ab567465aadc2f180af9eae3800e6958fec96aef53fd8a7b195d7c000c6267a0dd5cfc22b3fe804f53e266069c0e36f51885baec1e7e67650c62e170000000c515f41524954484d455449430d9d0f8ece2aa12012fa21e6e5c859e97bd5704e5c122064a66051294bc5e04213f61f54a0ebdf6fee4d4a6ecf693478191de0c2899bcd8e86a636c8d3eff43400000003515f43224a99d02c86336737c8dd5b746c40d2be6aead8393889a76a18d664029096e90f7fe81adcc92a74350eada9622ac453f49ebac24a066a1f83b394df54dfa0130000000c515f46495845445f42415345060e8a013ed289c2f9fd7473b04f6594b138ddb4b4cf6b901622a14088f04b8d2c83ff74fce56e3d5573b99c7b26d85d5046ce0c6559506acb7a675e7713eb3a00000007515f4c4f4749430721a91cb8da4b917e054f72147e1760cfe0ef3d45090ac0f4961d84ec1996961a25e787b26bd8b50b1a99450f77a424a83513c2b33af268cd253b0587ff50c700000003515f4d05dbd8623b8652511e1eb38d38887a69eceb082f807514f09e127237c5213b401b9325b48c6c225968002318095f89d0ef9cf629b2b7f0172e03bc39aacf6ed800000007515f52414e474504b57a3805e41df328f5ca9aefa40fad5917391543b7b65c6476e60b8f72e9ad07c92f3b3e11c8feae96dedc4b14a6226ef3201244f37cfc1ee5b96781f48d2b000000075349474d415f3125001d1954a18571eaa007144c5a567bb0d2be4def08a8be918b8c05e3b27d312c59ed41e09e144eab5de77ca89a2fd783be702a47c951d3112e3de02ce6e47c000000075349474d415f3223994e6a23618e60fa01c449a7ab88378709197e186d48d604bfb6931ffb15ad11c5ec7a0700570f80088fd5198ab5d5c227f2ad2a455a6edeec024156bb7beb000000075349474d415f3300cda5845f23468a13275d18bddae27c6bb189cf9aa95b6a03a0cb6688c7e8d829639b45cf8607c525cc400b55ebf90205f2f378626dc3406cc59b2d1b474fba000000075349474d415f342d299e7928496ea2d37f10b43afd6a80c90a33b483090d18069ffa275eedb2fc2f82121e8de43dc036d99b478b6227ceef34248939987a19011f065d8b5cef5c0000000010000000000000000100000002000000030000000400000005000000060000000700000008000000090000000a0000000b0000000c0000000d0000000e0000000f00000000000000000000000000000000000000000000000000000000000000050d16a772cc25d5e15b5b16a936c9634e992d644b19e6b7ace8ed8ab04dc02f9c22968087f3c0e4dc3fbce3b4a39cfc6a75835d29fd71683553d989987b76dae607a4ab4e6f2462441e4f5873373663025aa95bb6727922de84ed63c3fc45da430803aa8ad8a2355c621c88da55b38f2c2ff74855db99adf11e9caf517a0177321a9fdb505152f9c2baaffe4a30ee80775b58ebf8c2dde76435835b085c6f70ca0000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000027b1d0839a5b23baf12a8d195b18ac288fcf401afb2f70b8a4b529ede5fa9fed01dfa8f1878f2bc5c2ad8eb822147c11c44ac9fb865dce67c45a78e7c8eec6b10bcd1f91cf7bdd471d0a30c58c4706f3fdab3807a954b8f5b5e3bfec87d001bb06e62084ee7b602fe9abc15632dda3269f56fb0c6e12519a2eb2ec897091919d03c9e2e67178ac638746f068907e6677b4cc7a9592ef234ab6ab518f17efffa015d28cad4c0736decea8997cb324cf0a0e0602f4d74472cd977bce2c8dd9923f268ed1e1c94c3a45a14db4108bc306613a1c23fab68e0466a002dfb0a3f8d2ab0cd8d5695bc2dde99dd531671f76f1482f14ddba8eeca7cb9686d4a62359c257047fbb7eb974155702149e58ea6ad91f4c6e953e693db35e953e250d8ceac9a900c5ae2526e665e2c7c698c11a06098b7159f720606d50e7660deb55758b0b022ced19489ab456b8b6c424594cdbbae59c36dfdd4c4621c4032da2d8a9674be51df5a245ffc1da14b46fe56a605f2a47b1cff1592bab4f66cfe5dfe990af6ab52871d090615d14eadb52228c635c90e0adf31176f0814f6525c23e7d7b318c931a2b85ff013d4b2b25074297c7e44aa61f4836d0862b36db2e6ce2b5542f9ea9177b9a10bbee32f77c719c6f8d071a18476cbeb021e155c642bbf93c716ce94300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 \ No newline at end of file +0000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000002000000000000001000000bd300000bd400000bd500000bd600000bd700000bd800000bd900000bda00000bdb00000bdc00000bdd00000bde00000bdf00000be000000be100000be20000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002fe13c77459b252a03dcf10198fe9d3d3bf59d73ccaaf55a986164ae2e49574d0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000013342ec9b3ada56cd39725be22a81b6d98c50e21224698310d94275d598b93a10096732a5d448ecb65a295b6240ac087994c5ca64b9da239004ad7a8b49e8c6200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d3735899d9fa7162447ca631f0ba2cd500000000000000000000000000000000eb57d0965a756d78291da33072610eb200000000000000000000000000000000d3735899d9fa7162447ca631f0ba2cd500000000000000000000000000000000eb57d0965a756d78291da33072610eb2000000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002ea41fa50737e7bef0d84a43be91aaf486fa67c918897ff6d5c950e75a1e1cda088597461c0a8c6dcf22d96afe0da7aa314d8d0bf800779efa570b025da867480e859770f75821b98477d4baa6960a1723a98ed1b076bc4d4ab7456cede0797f1864fcdaa80ff2719154fa7c8a9050662972707168d69eac9db6fd3110829f801675840debd0d65ab14b22f1e22e66fb08f96c06c93e0289e99414db6cdf72a800000000000000000000000000000000000000000000000000000000000000001ed250ed73db6e70805c4efcf0056e8695b79cd3ba418e827c184dee6c6fb0e00af5ee5d30a98da0f5392a622d45675f013e40a48da9b78a19eab7338f53eda20000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000007a69000000000000000000000000000000000000000000000000000000000000000101000000000000000200000800000000740000000f00000003515f3109623eb3c25aa5b16a1a79fd558bac7a7ce62c4560a8c537c77ce80dd339128d1d37b6582ee9e6df9567efb64313471dfa18f520f9ce53161b50dbf7731bc5f900000003515f322bc4cce83a486a92c92fd59bd84e0f92595baa639fc2ed86b00ffa0dfded2a092a669a3bdb7a273a015eda494457cc7ed5236f26cee330c290d45a33b9daa94800000003515f332729426c008c085a81bd34d8ef12dd31e80130339ef99d50013a89e4558eee6d0fa4ffe2ee7b7b62eb92608b2251ac31396a718f9b34978888789042b790a30100000003515f342be6b6824a913eb7a57b03cb1ee7bfb4de02f2f65fe8a4e97baa7766ddb353a82a8a25c49dc63778cd9fe96173f12a2bc77f3682f4c4448f98f1df82c75234a100000003515f351f85760d6ab567465aadc2f180af9eae3800e6958fec96aef53fd8a7b195d7c000c6267a0dd5cfc22b3fe804f53e266069c0e36f51885baec1e7e67650c62e170000000c515f41524954484d455449430d9d0f8ece2aa12012fa21e6e5c859e97bd5704e5c122064a66051294bc5e04213f61f54a0ebdf6fee4d4a6ecf693478191de0c2899bcd8e86a636c8d3eff43400000003515f43224a99d02c86336737c8dd5b746c40d2be6aead8393889a76a18d664029096e90f7fe81adcc92a74350eada9622ac453f49ebac24a066a1f83b394df54dfa0130000000c515f46495845445f42415345060e8a013ed289c2f9fd7473b04f6594b138ddb4b4cf6b901622a14088f04b8d2c83ff74fce56e3d5573b99c7b26d85d5046ce0c6559506acb7a675e7713eb3a00000007515f4c4f4749430721a91cb8da4b917e054f72147e1760cfe0ef3d45090ac0f4961d84ec1996961a25e787b26bd8b50b1a99450f77a424a83513c2b33af268cd253b0587ff50c700000003515f4d05dbd8623b8652511e1eb38d38887a69eceb082f807514f09e127237c5213b401b9325b48c6c225968002318095f89d0ef9cf629b2b7f0172e03bc39aacf6ed800000007515f52414e474504b57a3805e41df328f5ca9aefa40fad5917391543b7b65c6476e60b8f72e9ad07c92f3b3e11c8feae96dedc4b14a6226ef3201244f37cfc1ee5b96781f48d2b000000075349474d415f3125001d1954a18571eaa007144c5a567bb0d2be4def08a8be918b8c05e3b27d312c59ed41e09e144eab5de77ca89a2fd783be702a47c951d3112e3de02ce6e47c000000075349474d415f3223994e6a23618e60fa01c449a7ab88378709197e186d48d604bfb6931ffb15ad11c5ec7a0700570f80088fd5198ab5d5c227f2ad2a455a6edeec024156bb7beb000000075349474d415f3300cda5845f23468a13275d18bddae27c6bb189cf9aa95b6a03a0cb6688c7e8d829639b45cf8607c525cc400b55ebf90205f2f378626dc3406cc59b2d1b474fba000000075349474d415f342d299e7928496ea2d37f10b43afd6a80c90a33b483090d18069ffa275eedb2fc2f82121e8de43dc036d99b478b6227ceef34248939987a19011f065d8b5cef5c0000000010000000000000000100000002000000030000000400000005000000060000000700000008000000090000000a0000000b0000000c0000000d0000000e0000000f000000002ef02854e1cd336c9781167973c2650a4afa61b3bc29a24d854b7344c0fcbcc218d8ccd26bc265098021e3d3460534dc9549563a0d60bd9647177abed77e78e815b022a028c19417864ca9fa91ecc53ea55dac9c85dd5f2850b99e0986505c381fe48c5f818c1bc15f37f9014b5d80b345bbc6f4fceeb3189b25ed525b52369f0906bca10001000096732a5d448ecb65a295b6240ac087994c5ca64b9da239004ad7a8b49e8c621fe48c5f818c1bc15f37f9014b5d80b345bbc6f4fceeb3189b25ed525b52369f00000000000000000000000000000000000000000000000000000000000000000906bca1000000000000031124bf00bac5cd7fc8570fe0e40c34b8d093801a155d53e0b478d960b3a424810000000000000000000000000000000000000000000000000000000000007a6a0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000300000000000000000000000000000000e3b0c44298fc1c149afbf4c8996fb9240000000000000000000000000000000027ae41e4649b934ca495991b7852b85500000000000000000000000000000000e3b0c44298fc1c149afbf4c8996fb9240000000000000000000000000000000027ae41e4649b934ca495991b7852b855000000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000042ea41fa50737e7bef0d84a43be91aaf486fa67c918897ff6d5c950e75a1e1cda088597461c0a8c6dcf22d96afe0da7aa314d8d0bf800779efa570b025da867480e859770f75821b98477d4baa6960a1723a98ed1b076bc4d4ab7456cede0797f1864fcdaa80ff2719154fa7c8a9050662972707168d69eac9db6fd3110829f801675840debd0d65ab14b22f1e22e66fb08f96c06c93e0289e99414db6cdf72a800000000000000000000000000000000000000000000000000000000000000001ed250ed73db6e70805c4efcf0056e8695b79cd3ba418e827c184dee6c6fb0e00af5ee5d30a98da0f5392a622d45675f013e40a48da9b78a19eab7338f53eda20000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000007a69000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000200000800000000740000000f00000003515f3109623eb3c25aa5b16a1a79fd558bac7a7ce62c4560a8c537c77ce80dd339128d1d37b6582ee9e6df9567efb64313471dfa18f520f9ce53161b50dbf7731bc5f900000003515f322bc4cce83a486a92c92fd59bd84e0f92595baa639fc2ed86b00ffa0dfded2a092a669a3bdb7a273a015eda494457cc7ed5236f26cee330c290d45a33b9daa94800000003515f332729426c008c085a81bd34d8ef12dd31e80130339ef99d50013a89e4558eee6d0fa4ffe2ee7b7b62eb92608b2251ac31396a718f9b34978888789042b790a30100000003515f342be6b6824a913eb7a57b03cb1ee7bfb4de02f2f65fe8a4e97baa7766ddb353a82a8a25c49dc63778cd9fe96173f12a2bc77f3682f4c4448f98f1df82c75234a100000003515f351f85760d6ab567465aadc2f180af9eae3800e6958fec96aef53fd8a7b195d7c000c6267a0dd5cfc22b3fe804f53e266069c0e36f51885baec1e7e67650c62e170000000c515f41524954484d455449430d9d0f8ece2aa12012fa21e6e5c859e97bd5704e5c122064a66051294bc5e04213f61f54a0ebdf6fee4d4a6ecf693478191de0c2899bcd8e86a636c8d3eff43400000003515f43224a99d02c86336737c8dd5b746c40d2be6aead8393889a76a18d664029096e90f7fe81adcc92a74350eada9622ac453f49ebac24a066a1f83b394df54dfa0130000000c515f46495845445f42415345060e8a013ed289c2f9fd7473b04f6594b138ddb4b4cf6b901622a14088f04b8d2c83ff74fce56e3d5573b99c7b26d85d5046ce0c6559506acb7a675e7713eb3a00000007515f4c4f4749430721a91cb8da4b917e054f72147e1760cfe0ef3d45090ac0f4961d84ec1996961a25e787b26bd8b50b1a99450f77a424a83513c2b33af268cd253b0587ff50c700000003515f4d05dbd8623b8652511e1eb38d38887a69eceb082f807514f09e127237c5213b401b9325b48c6c225968002318095f89d0ef9cf629b2b7f0172e03bc39aacf6ed800000007515f52414e474504b57a3805e41df328f5ca9aefa40fad5917391543b7b65c6476e60b8f72e9ad07c92f3b3e11c8feae96dedc4b14a6226ef3201244f37cfc1ee5b96781f48d2b000000075349474d415f3125001d1954a18571eaa007144c5a567bb0d2be4def08a8be918b8c05e3b27d312c59ed41e09e144eab5de77ca89a2fd783be702a47c951d3112e3de02ce6e47c000000075349474d415f3223994e6a23618e60fa01c449a7ab88378709197e186d48d604bfb6931ffb15ad11c5ec7a0700570f80088fd5198ab5d5c227f2ad2a455a6edeec024156bb7beb000000075349474d415f3300cda5845f23468a13275d18bddae27c6bb189cf9aa95b6a03a0cb6688c7e8d829639b45cf8607c525cc400b55ebf90205f2f378626dc3406cc59b2d1b474fba000000075349474d415f342d299e7928496ea2d37f10b43afd6a80c90a33b483090d18069ffa275eedb2fc2f82121e8de43dc036d99b478b6227ceef34248939987a19011f065d8b5cef5c0000000010000000000000000100000002000000030000000400000005000000060000000700000008000000090000000a0000000b0000000c0000000d0000000e0000000f0000000000000000000000000000000000000000000000000000000000000004117957eae867c3a73358ea71d42be6920041849595ce05bf5b2067fb52d854772d6e08f4bcb48e1725e18fb89faa36164b86f5ed9d8825e33389d2d63ea5f54211a8166baa0849ba660891d24d5cf2a1b3edefe030b60b55a31180ce1d7f7c2a0803aa8ad8a2355c621c88da55b38f2c2ff74855db99adf11e9caf517a0177321a9fdb505152f9c2baaffe4a30ee80775b58ebf8c2dde76435835b085c6f70ca0000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000027b1d0839a5b23baf12a8d195b18ac288fcf401afb2f70b8a4b529ede5fa9fed14c17ee934da7e9640962565bea1610b3f22dee4a2b7fc337c33894261bad3430bcd1f91cf7bdd471d0a30c58c4706f3fdab3807a954b8f5b5e3bfec87d001bb06e62084ee7b602fe9abc15632dda3269f56fb0c6e12519a2eb2ec897091919d03c9e2e67178ac638746f068907e6677b4cc7a9592ef234ab6ab518f17efffa015d28cad4c0736decea8997cb324cf0a0e0602f4d74472cd977bce2c8dd9923f268ed1e1c94c3a45a14db4108bc306613a1c23fab68e0466a002dfb0a3f8d2ab0cd8d5695bc2dde99dd531671f76f1482f14ddba8eeca7cb9686d4a62359c257047fbb7eb974155702149e58ea6ad91f4c6e953e693db35e953e250d8ceac9a900c5ae2526e665e2c7c698c11a06098b7159f720606d50e7660deb55758b0b022ced19489ab456b8b6c424594cdbbae59c36dfdd4c4621c4032da2d8a9674be51df5a245ffc1da14b46fe56a605f2a47b1cff1592bab4f66cfe5dfe990af6ab52871d090615d14eadb52228c635c90e0adf31176f0814f6525c23e7d7b318c931a2b85ff013d4b2b25074297c7e44aa61f4836d0862b36db2e6ce2b5542f9ea9177b9a10bbee32f77c719c6f8d071a18476cbeb021e155c642bbf93c716ce94300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 \ No newline at end of file diff --git a/yarn-project/noir-protocol-circuits/src/fixtures/nested-call-private-kernel-ordering.hex b/yarn-project/noir-protocol-circuits/src/fixtures/nested-call-private-kernel-ordering.hex new file mode 100644 index 00000000000..eacfd2fb52c --- /dev/null +++ b/yarn-project/noir-protocol-circuits/src/fixtures/nested-call-private-kernel-ordering.hex @@ -0,0 +1 @@ +0000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000002000000000000001000000bd300000bd400000bd500000bd600000bd700000bd800000bd900000bda00000bdb00000bdc00000bdd00000bde00000bdf00000be000000be100000be200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000965841177009e0590df16d81d61104ed1b7c07e53191cfdf36430035597d646000000000000000000000000000000000000000000000000000000000000000300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000029072a5ac24d9c3ffc2552e85d150cf28f7fb932954a989c43748685c14483a5000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002457d16738ee9f4073d12d317e3990c18eb9c652037bd6a9b5cd58c63721ef940000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000200f256067b79ab7cd66d97cd717a347f3fdb675e83e9fbb0ced72c8929d866c50000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000005aa24c5b6e029adfba699acb6e8a09450000000000000000000000000000000087ae0a036569f4338b66e74f391d6e00000000000000000000000000000000001c9ecec90e28d2461650418635878a5c0000000000000000000000000000000091e49f47586ecf75f2b0cbb94e89711200000000000000000000000000000000000000000000000000000000000000f8000000000000000000000000000000000000000000000000000000000000000416d2596c4f6de78960fbc0d8d09155b2da475de1b478b9da6b86615097778ee800000000000000000000000000000000000000000000000000000000000000000c59b73f92c086ec5d920e6793e767d8076e8d466cd49f9f27b74318f6c299d700000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000016642d9ccd8346c403aa4c3fa451178b22534a27035cdaa6ec34ae53b29c50cb0bcfa3e9f1a8922ee92c6dc964d6595907c1804a86753774322b468f69d4f2781864fcdaa80ff2719154fa7c8a9050662972707168d69eac9db6fd3110829f801864fcdaa80ff2719154fa7c8a9050662972707168d69eac9db6fd3110829f801a005071a487e4891787073a91504fe6ea55280bc6f65a021fd6f7ca1f10aa0200000000000000000000000000000000000000000000000000000000000000001ed250ed73db6e70805c4efcf0056e8695b79cd3ba418e827c184dee6c6fb0e0200569267c0f73ac89aaa414239398db9445dd4ad3a8cf37015cd55b8d4c5e8d00000127e289b3099e20586451556a845e3d75f859bb4f757f84ca01df972ec12164c01276c3a0e54af33bda4ec919aac87d1419c00062a1912a130addf8aa873c5aee038021824fbd98bb0e388b0efe18f72e9350f7456481714539ba583de37113ce0c59b73f92c086ec5d920e6793e767d8076e8d466cd49f9f27b74318f6c299d70ca3058f5e0ae2f809896550214d6fb8c860f384a2f548d95fdc94c1b0c7257800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000007a69000000000000000000000000000000000000000000000000000000000000000101000000000000000200000800000000740000000f00000003515f3109623eb3c25aa5b16a1a79fd558bac7a7ce62c4560a8c537c77ce80dd339128d1d37b6582ee9e6df9567efb64313471dfa18f520f9ce53161b50dbf7731bc5f900000003515f322bc4cce83a486a92c92fd59bd84e0f92595baa639fc2ed86b00ffa0dfded2a092a669a3bdb7a273a015eda494457cc7ed5236f26cee330c290d45a33b9daa94800000003515f332729426c008c085a81bd34d8ef12dd31e80130339ef99d50013a89e4558eee6d0fa4ffe2ee7b7b62eb92608b2251ac31396a718f9b34978888789042b790a30100000003515f342be6b6824a913eb7a57b03cb1ee7bfb4de02f2f65fe8a4e97baa7766ddb353a82a8a25c49dc63778cd9fe96173f12a2bc77f3682f4c4448f98f1df82c75234a100000003515f351f85760d6ab567465aadc2f180af9eae3800e6958fec96aef53fd8a7b195d7c000c6267a0dd5cfc22b3fe804f53e266069c0e36f51885baec1e7e67650c62e170000000c515f41524954484d455449430d9d0f8ece2aa12012fa21e6e5c859e97bd5704e5c122064a66051294bc5e04213f61f54a0ebdf6fee4d4a6ecf693478191de0c2899bcd8e86a636c8d3eff43400000003515f43224a99d02c86336737c8dd5b746c40d2be6aead8393889a76a18d664029096e90f7fe81adcc92a74350eada9622ac453f49ebac24a066a1f83b394df54dfa0130000000c515f46495845445f42415345060e8a013ed289c2f9fd7473b04f6594b138ddb4b4cf6b901622a14088f04b8d2c83ff74fce56e3d5573b99c7b26d85d5046ce0c6559506acb7a675e7713eb3a00000007515f4c4f4749430721a91cb8da4b917e054f72147e1760cfe0ef3d45090ac0f4961d84ec1996961a25e787b26bd8b50b1a99450f77a424a83513c2b33af268cd253b0587ff50c700000003515f4d05dbd8623b8652511e1eb38d38887a69eceb082f807514f09e127237c5213b401b9325b48c6c225968002318095f89d0ef9cf629b2b7f0172e03bc39aacf6ed800000007515f52414e474504b57a3805e41df328f5ca9aefa40fad5917391543b7b65c6476e60b8f72e9ad07c92f3b3e11c8feae96dedc4b14a6226ef3201244f37cfc1ee5b96781f48d2b000000075349474d415f3125001d1954a18571eaa007144c5a567bb0d2be4def08a8be918b8c05e3b27d312c59ed41e09e144eab5de77ca89a2fd783be702a47c951d3112e3de02ce6e47c000000075349474d415f3223994e6a23618e60fa01c449a7ab88378709197e186d48d604bfb6931ffb15ad11c5ec7a0700570f80088fd5198ab5d5c227f2ad2a455a6edeec024156bb7beb000000075349474d415f3300cda5845f23468a13275d18bddae27c6bb189cf9aa95b6a03a0cb6688c7e8d829639b45cf8607c525cc400b55ebf90205f2f378626dc3406cc59b2d1b474fba000000075349474d415f342d299e7928496ea2d37f10b43afd6a80c90a33b483090d18069ffa275eedb2fc2f82121e8de43dc036d99b478b6227ceef34248939987a19011f065d8b5cef5c0000000010000000000000000100000002000000030000000400000005000000060000000700000008000000090000000a0000000b0000000c0000000d0000000e0000000f000000001d86f35530ce6e4503b61ca79a0bc9478cdb17197ccccbdccc9de7a9fc938d172b2cc343733e841e9f9f645a5c8ffd45233353cf0f8b86b4f77e7368496954f9063894ea629fc50bde88d48566bcfa398bdd69eccb13e38936364f477218336c0965841177009e0590df16d81d61104ed1b7c07e53191cfdf36430035597d6460000000000000000000000000000000000000000000000000000000000000003000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000002000000030000000400000005000000060000000700000008000000090000000a0000000b0000000c0000000d0000000e0000000f000000100000001100000012000000130000001400000015000000160000001700000018000000190000001a0000001b0000001c0000001d0000001e0000001f000000200000002100000022000000230000002400000025000000260000002700000028000000290000002a0000002b0000002c0000002d0000002e0000002f000000300000003100000032000000330000003400000035000000360000003700000038000000390000003a0000003b0000003c0000003d0000003e0000003f0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000029072a5ac24d9c3ffc2552e85d150cf28f7fb932954a989c43748685c14483a50000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000f256067b79ab7cd66d97cd717a347f3fdb675e83e9fbb0ced72c8929d866c5000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000012457d16738ee9f4073d12d317e3990c18eb9c652037bd6a9b5cd58c63721ef9400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000200000001000000030000000400000005000000060000000700000008000000090000000a0000000b0000000c0000000d0000000e0000000f000000100000001100000012000000130000001400000015000000160000001700000018000000190000001a0000001b0000001c0000001d0000001e0000001f000000200000002100000022000000230000002400000025000000260000002700000028000000290000002a0000002b0000002c0000002d0000002e0000002f000000300000003100000032000000330000003400000035000000360000003700000038000000390000003a0000003b0000003c0000003d0000003e0000003f00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 \ No newline at end of file diff --git a/yarn-project/noir-protocol-circuits/src/index.test.ts b/yarn-project/noir-protocol-circuits/src/index.test.ts index 714aa50f9d0..3fe9e1afbc3 100644 --- a/yarn-project/noir-protocol-circuits/src/index.test.ts +++ b/yarn-project/noir-protocol-circuits/src/index.test.ts @@ -1,65 +1,22 @@ import { - AggregationObject, AztecAddress, - BlockHeader, - CONTRACT_TREE_HEIGHT, - CallContext, - CallRequest, - CombinedAccumulatedData, - CombinedConstantData, ContractDeploymentData, EthAddress, - FUNCTION_TREE_HEIGHT, FunctionData, FunctionLeafPreimage, FunctionSelector, - KernelCircuitPublicInputs, - MAX_NEW_COMMITMENTS_PER_CALL, - MAX_NEW_COMMITMENTS_PER_TX, - MAX_NEW_L2_TO_L1_MSGS_PER_CALL, - MAX_NEW_NULLIFIERS_PER_CALL, - MAX_NEW_NULLIFIERS_PER_TX, - MAX_NULLIFIER_KEY_VALIDATION_REQUESTS_PER_CALL, - MAX_NULLIFIER_KEY_VALIDATION_REQUESTS_PER_TX, - MAX_OPTIONALLY_REVEALED_DATA_LENGTH_PER_TX, - MAX_PRIVATE_CALL_STACK_LENGTH_PER_CALL, - MAX_PRIVATE_CALL_STACK_LENGTH_PER_TX, - MAX_PUBLIC_CALL_STACK_LENGTH_PER_CALL, - MAX_PUBLIC_CALL_STACK_LENGTH_PER_TX, - MAX_PUBLIC_DATA_READS_PER_TX, - MAX_PUBLIC_DATA_UPDATE_REQUESTS_PER_TX, - MAX_READ_REQUESTS_PER_CALL, - MAX_READ_REQUESTS_PER_TX, - MembershipWitness, - NewContractData, - NullifierKeyValidationRequest, - NullifierKeyValidationRequestContext, - OptionallyRevealedData, Point, - PreviousKernelData, - PrivateCallData, - PrivateCallStackItem, - PrivateCircuitPublicInputs, PrivateKernelInputsInit, PrivateKernelInputsInner, PrivateKernelInputsOrdering, PublicCallStackItem, PublicCircuitPublicInputs, - PublicDataRead, - PublicDataUpdateRequest, - RETURN_VALUES_LENGTH, - ReadRequestMembershipWitness, SideEffect, - SideEffectLinkedToNoteHash, TxContext, TxRequest, - VK_TREE_HEIGHT, - VerificationKey, - makeEmptyProof, } from '@aztec/circuits.js'; import { computeCompleteAddress, computeFunctionLeaf, computeTxHash } from '@aztec/circuits.js/abis'; -import { makeTuple } from '@aztec/foundation/array'; -import { Fr, GrumpkinScalar } from '@aztec/foundation/fields'; +import { Fr } from '@aztec/foundation/fields'; import { DebugLogger, createDebugLogger } from '@aztec/foundation/log'; import { fileURLToPath } from '@aztec/foundation/url'; @@ -68,228 +25,31 @@ import { dirname, resolve } from 'path'; import { executeInit, executeInner, executeOrdering } from './index.js'; -function _makeEmptyReadRequest() { - return makeTuple(MAX_READ_REQUESTS_PER_TX, () => SideEffect.empty()); -} - describe('Private kernel', () => { let logger: DebugLogger; + beforeAll(() => { logger = createDebugLogger('noir-private-kernel'); }); - // Taken from e2e_nested_contract => performs nested calls => first deployment + // Taken from e2e_nested_contract => performs nested calls => first init (corresponds to deployment) + // To regenerate fixture data run the following on the yarn-project/e2e folder + // AZTEC_GENERATE_TEST_DATA=1 yarn test e2e_nested_contract -t 'performs nested calls' it('Executes private kernel init circuit for a contract deployment', async () => { logger('Initialized Noir instance with private kernel init circuit'); - const txOrigin = AztecAddress.fromString('0x25e2c017f5da1f994401e61d26be435e3cfa26efee784c6b4e947f7651bd4104'); - const argsHash = Fr.fromString('0x113c609cd625d5afd9f09daa2031011af161334e7508be0b1310ad2b7ff166af'); - const deployerPubKey = new Point( - Fr.fromString('0x1de02ddacac6d2f427e5f0d3ce59d7294f146280455dd4c582254e0b4c254b23'), - Fr.fromString('0x23cd081dfe9c0d1873b65a36a08858e73a9b30d0339e94c4915d7110e2f07ecd'), - ); - const contractDeploymentData = new ContractDeploymentData( - deployerPubKey, - Fr.fromString('0x0aefd90a69a643324c7bf0a9bd3b23ada090ad883773fdf0b0ad52a9f7d6f1f6'), - Fr.fromString('0x0cad3b5391e40af8743e1053c015e16abac6100a8b917512c083cb4cbb8ccc03'), - Fr.fromString('0x1ec59b0313fa504302c3336fc911d688edae67c4fbf229d68c7f36ed8797045c'), - EthAddress.ZERO, - ); - const selector = FunctionSelector.fromString('0xaf9f8c44'); - const functionData = new FunctionData(selector, false, true, true); - const txContext = new TxContext(false, false, true, contractDeploymentData, Fr.ZERO, Fr.ZERO); - const txRequest = new TxRequest(txOrigin, functionData, argsHash, txContext); - - const contractAddress = AztecAddress.fromString( - '0x25e2c017f5da1f994401e61d26be435e3cfa26efee784c6b4e947f7651bd4104', - ); - - const newCommitments = makeTuple(MAX_NEW_COMMITMENTS_PER_CALL, () => SideEffect.empty()); - newCommitments[0] = new SideEffect( - Fr.fromString('0x0aced88c953b70873e4a33dde4620dc43a709c15013c46c60d167de8e1c32315'), - Fr.ZERO, - ); - - const newNullifiers = makeTuple(MAX_NEW_NULLIFIERS_PER_CALL, () => SideEffectLinkedToNoteHash.empty()); - newNullifiers[0] = new SideEffectLinkedToNoteHash( - Fr.fromString('0x03579f468b2283611cc4d7adfbb93b8a4815d93ac0b1e1d11dace012cf73c7aa'), - Fr.ZERO, - Fr.ZERO, - ); - - const callContext = new CallContext(AztecAddress.ZERO, contractAddress, Fr.ZERO, selector, false, false, true, 0); - - const blockHeader = new BlockHeader( - Fr.fromString('0x16642d9ccd8346c403aa4c3fa451178b22534a27035cdaa6ec34ae53b29c50cb'), - Fr.fromString('0x0bcfa3e9f1a8922ee92c6dc964d6595907c1804a86753774322b468f69d4f278'), - Fr.fromString('0x1864fcdaa80ff2719154fa7c8a9050662972707168d69eac9db6fd3110829f80'), - Fr.fromString('0x1864fcdaa80ff2719154fa7c8a9050662972707168d69eac9db6fd3110829f80'), - Fr.fromString('0x1759d221795419503f86c032e8f8762f2b739e74835099584b6531f5f27390fe'), - Fr.ZERO, // TODO(#3441) - Fr.fromString('0x0ccaafdc9c353743970d4e305ae73641ce694f07db67886d2769c9ed88e969d8'), - Fr.fromString('0x200569267c0f73ac89aaa414239398db9445dd4ad3a8cf37015cd55b8d4c5e8d'), - ); - - const appPublicInputs = new PrivateCircuitPublicInputs( - callContext, - argsHash, - makeTuple(RETURN_VALUES_LENGTH, () => Fr.ZERO), - makeTuple(MAX_READ_REQUESTS_PER_CALL, () => SideEffect.empty()), - makeTuple(MAX_NULLIFIER_KEY_VALIDATION_REQUESTS_PER_CALL, () => NullifierKeyValidationRequest.empty()), - newCommitments, - newNullifiers, - makeTuple(MAX_PRIVATE_CALL_STACK_LENGTH_PER_CALL, () => Fr.ZERO), - makeTuple(MAX_PUBLIC_CALL_STACK_LENGTH_PER_CALL, () => Fr.ZERO), - makeTuple(MAX_NEW_L2_TO_L1_MSGS_PER_CALL, () => Fr.ZERO), - Fr.ZERO, - [Fr.fromString('0x9cc0744c0dde14f24854659b052ffb7e'), Fr.fromString('0x28120e19a5cc9ec344f3d6d41b6fada2')], - [Fr.fromString('0xe3b0c44298fc1c149afbf4c8996fb924'), Fr.fromString('0x27ae41e4649b934ca495991b7852b855')], - Fr.fromString('0xf8'), - Fr.fromString('0x04'), - blockHeader, - contractDeploymentData, - Fr.ZERO, - Fr.ZERO, - ); - - const callStackItem = new PrivateCallStackItem(contractAddress, functionData, appPublicInputs, false); + const filepath = resolve(dirname(fileURLToPath(import.meta.url)), './fixtures/nested-call-private-kernel-init.hex'); + const serialized = Buffer.from(readFileSync(filepath).toString(), 'hex'); + const kernelInputs = PrivateKernelInputsInit.fromBuffer(serialized); - const privateCall = new PrivateCallData( - callStackItem, - makeTuple(MAX_PRIVATE_CALL_STACK_LENGTH_PER_CALL, () => CallRequest.empty()), - makeTuple(MAX_PUBLIC_CALL_STACK_LENGTH_PER_CALL, () => CallRequest.empty()), - makeEmptyProof(), - VerificationKey.makeFake(), - MembershipWitness.empty(FUNCTION_TREE_HEIGHT, 0n), - MembershipWitness.empty(CONTRACT_TREE_HEIGHT, 0n), - makeTuple(MAX_READ_REQUESTS_PER_CALL, () => ReadRequestMembershipWitness.empty(0n)), - Fr.ZERO, - Fr.ZERO, - ); - const kernelInputs = new PrivateKernelInputsInit(txRequest, privateCall); + // We check that the test data is for a contract deployment + expect(kernelInputs.txRequest.txContext.isContractDeploymentTx).toBe(true); const kernelOutputs = await executeInit(kernelInputs); expect(kernelOutputs).toMatchSnapshot(); }); - // Taken from e2e_nested_contract => performs nested calls => first ordering - it('Executes private kernel ordering after a deployment', async () => { - const contractAddress = AztecAddress.fromString( - '0x25e2c017f5da1f994401e61d26be435e3cfa26efee784c6b4e947f7651bd4104', - ); - - const deployerPubKey = new Point( - Fr.fromString('0x1de02ddacac6d2f427e5f0d3ce59d7294f146280455dd4c582254e0b4c254b23'), - Fr.fromString('0x23cd081dfe9c0d1873b65a36a08858e73a9b30d0339e94c4915d7110e2f07ecd'), - ); - - const contractDeploymentData = new ContractDeploymentData( - deployerPubKey, - Fr.fromString('0x0aefd90a69a643324c7bf0a9bd3b23ada090ad883773fdf0b0ad52a9f7d6f1f6'), - Fr.fromString('0x0cad3b5391e40af8743e1053c015e16abac6100a8b917512c083cb4cbb8ccc03'), - Fr.fromString('0x1ec59b0313fa504302c3336fc911d688edae67c4fbf229d68c7f36ed8797045c'), - EthAddress.ZERO, - ); - const txContext = new TxContext(false, false, true, contractDeploymentData, Fr.ZERO, Fr.ZERO); - - const newCommitments = makeTuple(MAX_NEW_COMMITMENTS_PER_TX, () => SideEffect.empty()); - newCommitments[0] = new SideEffect( - Fr.fromString('0x0aced88c953b70873e4a33dde4620dc43a709c15013c46c60d167de8e1c32315'), - Fr.ZERO, - ); - - const newNullifiers = makeTuple(MAX_NEW_NULLIFIERS_PER_TX, () => SideEffectLinkedToNoteHash.empty()); - const sortedNewNullifiers = makeTuple(MAX_NEW_NULLIFIERS_PER_TX, i => newNullifiers[i]); - - newNullifiers[0] = new SideEffectLinkedToNoteHash( - Fr.fromString('0x0faf656089e5a8d321b64f420fc008005736a0b4f0b8588891241392c82655b9'), - Fr.ZERO, - new Fr(1), - ); - newNullifiers[1] = new SideEffectLinkedToNoteHash( - Fr.fromString('0x4a5d6bc34e84c5a3d7a625a3772f4d2f84c7d46637691ef64ee2711e6c6202'), - Fr.ZERO, - new Fr(2), - ); - newNullifiers[2] = new SideEffectLinkedToNoteHash( - Fr.fromString('0x19085a4478c4aa3994d4a5935eaf5e0d58726a758d398a97f634df22d33d388a'), - Fr.ZERO, - Fr.ZERO, - ); - - sortedNewNullifiers[0] = newNullifiers[2]; - sortedNewNullifiers[1] = newNullifiers[0]; - sortedNewNullifiers[2] = newNullifiers[1]; - - const sortedNewNullifiersIndexes = makeTuple(MAX_NEW_NULLIFIERS_PER_TX, i => - sortedNewNullifiers.indexOf(newNullifiers[i]), - ); - - const combinedAccumulatedData = new CombinedAccumulatedData( - AggregationObject.makeFake(), - makeTuple(MAX_READ_REQUESTS_PER_TX, () => SideEffect.empty()), - makeTuple(MAX_NULLIFIER_KEY_VALIDATION_REQUESTS_PER_TX, () => NullifierKeyValidationRequestContext.empty()), - newCommitments, - newNullifiers, - makeTuple(MAX_PRIVATE_CALL_STACK_LENGTH_PER_TX, () => CallRequest.empty()), - makeTuple(MAX_PUBLIC_CALL_STACK_LENGTH_PER_TX, () => CallRequest.empty()), - makeTuple(MAX_NEW_L2_TO_L1_MSGS_PER_CALL, () => new Fr(0n)), - [Fr.fromString('0x57ee9bb1264085ecf4ba8274b233cdc4'), Fr.fromString('0x8a8910cc6b93b4399a1ebd8fbfb405f8')], - [Fr.fromString('0x1c9ecec90e28d2461650418635878a5c'), Fr.fromString('0x91e49f47586ecf75f2b0cbb94e897112')], - Fr.fromString('0xf8'), - new Fr(4), - [ - new NewContractData( - contractAddress, - EthAddress.ZERO, - Fr.fromString('0x0cad3b5391e40af8743e1053c015e16abac6100a8b917512c083cb4cbb8ccc03'), - ), - ], - makeTuple(MAX_OPTIONALLY_REVEALED_DATA_LENGTH_PER_TX, () => OptionallyRevealedData.empty()), - makeTuple(MAX_PUBLIC_DATA_UPDATE_REQUESTS_PER_TX, () => PublicDataUpdateRequest.empty()), - makeTuple(MAX_PUBLIC_DATA_READS_PER_TX, () => PublicDataRead.empty()), - ); - - const blockHeader = new BlockHeader( - Fr.fromString('0x16642d9ccd8346c403aa4c3fa451178b22534a27035cdaa6ec34ae53b29c50cb'), - Fr.fromString('0x0bcfa3e9f1a8922ee92c6dc964d6595907c1804a86753774322b468f69d4f278'), - Fr.fromString('0x1864fcdaa80ff2719154fa7c8a9050662972707168d69eac9db6fd3110829f80'), - Fr.fromString('0x1864fcdaa80ff2719154fa7c8a9050662972707168d69eac9db6fd3110829f80'), - Fr.fromString('0x1759d221795419503f86c032e8f8762f2b739e74835099584b6531f5f27390fe'), - Fr.ZERO, // TODO(#3441) - Fr.fromString('0x0ccaafdc9c353743970d4e305ae73641ce694f07db67886d2769c9ed88e969d8'), - Fr.fromString('0x200569267c0f73ac89aaa414239398db9445dd4ad3a8cf37015cd55b8d4c5e8d'), - ); - - const constants = new CombinedConstantData(blockHeader, txContext); - - const kernelPublicInputs = new KernelCircuitPublicInputs(combinedAccumulatedData, constants, true); - - const previousKernelData = new PreviousKernelData( - kernelPublicInputs, - makeEmptyProof(), - VerificationKey.makeFake(), - 0, - makeTuple(VK_TREE_HEIGHT, () => Fr.ZERO), - ); - - const kernelInputs = new PrivateKernelInputsOrdering( - previousKernelData, - newCommitments, - makeTuple(MAX_NEW_COMMITMENTS_PER_TX, i => i), - makeTuple(MAX_READ_REQUESTS_PER_TX, () => Fr.ZERO), - sortedNewNullifiers, - sortedNewNullifiersIndexes, - makeTuple(MAX_NEW_NULLIFIERS_PER_TX, () => Fr.ZERO), - makeTuple(MAX_NULLIFIER_KEY_VALIDATION_REQUESTS_PER_TX, () => GrumpkinScalar.ZERO), - ); - - const kernelOutputs = await executeOrdering(kernelInputs); - - expect(kernelOutputs).toMatchSnapshot(); - }); - // Taken from e2e_nested_contract => performs nested calls => last inner // To regenerate fixture data run the following on the yarn-project/e2e folder // AZTEC_GENERATE_TEST_DATA=1 yarn test e2e_nested_contract -t 'performs nested calls' @@ -307,6 +67,22 @@ describe('Private kernel', () => { expect(kernelOutputs).toMatchSnapshot(); }); + + // Taken from e2e_nested_contract => performs nested calls => first ordering + // To regenerate fixture data run the following on the yarn-project/e2e folder + // AZTEC_GENERATE_TEST_DATA=1 yarn test e2e_nested_contract -t 'performs nested calls' + it('Executes private kernel ordering after a deployment', async () => { + const filepath = resolve( + dirname(fileURLToPath(import.meta.url)), + './fixtures/nested-call-private-kernel-ordering.hex', + ); + const serialized = Buffer.from(readFileSync(filepath).toString(), 'hex'); + const kernelInputs = PrivateKernelInputsOrdering.fromBuffer(serialized); + + const kernelOutputs = await executeOrdering(kernelInputs); + + expect(kernelOutputs).toMatchSnapshot(); + }); }); describe('Noir compatibility tests (interop_testing.nr)', () => { diff --git a/yarn-project/pxe/src/kernel_prover/kernel_prover.ts b/yarn-project/pxe/src/kernel_prover/kernel_prover.ts index 2afaffa6b9e..7dc509c4986 100644 --- a/yarn-project/pxe/src/kernel_prover/kernel_prover.ts +++ b/yarn-project/pxe/src/kernel_prover/kernel_prover.ts @@ -141,6 +141,7 @@ export class KernelProver { if (firstIteration) { const proofInput = new PrivateKernelInputsInit(txRequest, privateCallData); + pushTestData('private-kernel-inputs-init', proofInput); output = await this.proofCreator.createProofInit(proofInput); } else { const previousVkMembershipWitness = await this.oracle.getVkMembershipWitness(previousVerificationKey); @@ -202,6 +203,7 @@ export class KernelProver { nullifierCommitmentHints, masterNullifierSecretKeys, ); + pushTestData('private-kernel-inputs-ordering', privateInputs); const outputFinal = await this.proofCreator.createProofOrdering(privateInputs); // Only return the notes whose commitment is in the commitments of the final proof. From 11f400f6580d4c3fee52a5e97d84fcdf0dbad779 Mon Sep 17 00:00:00 2001 From: esau <152162806+sklppy88@users.noreply.github.com> Date: Fri, 26 Jan 2024 14:16:09 -0600 Subject: [PATCH 3/5] feat: Deserialize AztecAddress when contract's view function returns it in Aztec.js #3641 (#4224) resolves #3641 --- .../end-to-end/src/e2e_card_game.test.ts | 30 +++++++------------ .../src/shared/cross_chain_test_harness.ts | 3 +- yarn-project/foundation/src/abi/decoder.ts | 8 ++++- 3 files changed, 18 insertions(+), 23 deletions(-) diff --git a/yarn-project/end-to-end/src/e2e_card_game.test.ts b/yarn-project/end-to-end/src/e2e_card_game.test.ts index b4b881cd08e..69d7bbae065 100644 --- a/yarn-project/end-to-end/src/e2e_card_game.test.ts +++ b/yarn-project/end-to-end/src/e2e_card_game.test.ts @@ -28,9 +28,7 @@ const cardToField = (card: Card): bigint => { }; interface PlayerGameEntry { - address: { - inner: bigint; - }; + address: AztecAddress; deck_strength: bigint; points: bigint; } @@ -183,16 +181,12 @@ describe('e2e_card_game', () => { expect((await contract.methods.view_game(GAME_ID).view({ from: firstPlayer })) as Game).toMatchObject({ players: [ { - address: { - inner: firstPlayer.toBigInt(), - }, + address: firstPlayer, deck_strength: expect.anything(), points: 0n, }, { - address: { - inner: 0n, - }, + address: AztecAddress.ZERO, deck_strength: 0n, points: 0n, }, @@ -227,16 +221,12 @@ describe('e2e_card_game', () => { expect((await contract.methods.view_game(GAME_ID).view({ from: firstPlayer })) as Game).toMatchObject({ players: expect.arrayContaining([ { - address: { - inner: firstPlayer.toBigInt(), - }, + address: firstPlayer, deck_strength: expect.anything(), points: 0n, }, { - address: { - inner: secondPlayer.toBigInt(), - }, + address: secondPlayer, deck_strength: expect.anything(), points: 0n, }, @@ -281,16 +271,16 @@ describe('e2e_card_game', () => { async function playGame(playerDecks: { address: AztecAddress; deck: Card[] }[], id = GAME_ID) { const initialGameState = (await contract.methods.view_game(id).view({ from: firstPlayer })) as Game; - const players = initialGameState.players.map(player => player.address.inner); + const players = initialGameState.players.map(player => player.address); const cards = players.map( - player => playerDecks.find(playerDeckEntry => playerDeckEntry.address.toBigInt() === player)!.deck, + player => playerDecks.find(playerDeckEntry => playerDeckEntry.address.equals(player))!.deck, ); for (let roundIndex = 0; roundIndex < cards.length; roundIndex++) { for (let playerIndex = 0; playerIndex < players.length; playerIndex++) { const player = players[playerIndex]; const card = cards[playerIndex][roundIndex]; - await contractFor(AztecAddress.fromBigInt(player)).methods.play_card(id, card).send().wait(); + await contractFor(player).methods.play_card(id, card).send().wait(); } } @@ -315,8 +305,8 @@ describe('e2e_card_game', () => { ]); const sortedByPoints = game.players.sort((a, b) => Number(b.points - a.points)); - const winner = AztecAddress.fromBigInt(sortedByPoints[0].address.inner); - const loser = AztecAddress.fromBigInt(sortedByPoints[1].address.inner); + const winner = sortedByPoints[0].address; + const loser = sortedByPoints[1].address; await expect( contractFor(loser).methods.claim_cards(GAME_ID, game.rounds_cards.map(cardToField)).send().wait(), diff --git a/yarn-project/end-to-end/src/shared/cross_chain_test_harness.ts b/yarn-project/end-to-end/src/shared/cross_chain_test_harness.ts index db556b0ffe2..d72c2f1e8f2 100644 --- a/yarn-project/end-to-end/src/shared/cross_chain_test_harness.ts +++ b/yarn-project/end-to-end/src/shared/cross_chain_test_harness.ts @@ -104,8 +104,7 @@ export async function deployAndInitializeTokenAndBridgeContracts( throw new Error(`Token admin is not ${owner}`); } - // TODO(#3641) - Fix deserialization and compare AztecAddress directly - if ((await bridge.methods.token().view()).inner !== token.address.toBigInt()) { + if (!(await bridge.methods.token().view()).equals(token.address)) { throw new Error(`Bridge token is not ${token.address}`); } diff --git a/yarn-project/foundation/src/abi/decoder.ts b/yarn-project/foundation/src/abi/decoder.ts index ac509d59ba1..e1f4558afa2 100644 --- a/yarn-project/foundation/src/abi/decoder.ts +++ b/yarn-project/foundation/src/abi/decoder.ts @@ -1,10 +1,12 @@ +import { AztecAddress } from '../aztec-address/index.js'; import { Fr } from '../fields/index.js'; import { ABIParameter, type ABIType, ABIVariable, FunctionArtifact } from './abi.js'; +import { isAztecAddressStruct } from './utils.js'; /** * The type of our decoded ABI. */ -export type DecodedReturn = bigint | boolean | DecodedReturn[] | { [key: string]: DecodedReturn }; +export type DecodedReturn = bigint | boolean | AztecAddress | DecodedReturn[] | { [key: string]: DecodedReturn }; /** * Decodes return values from a function call. @@ -38,6 +40,10 @@ class ReturnValuesDecoder { } case 'struct': { const struct: { [key: string]: DecodedReturn } = {}; + if (isAztecAddressStruct(abiType)) { + return new AztecAddress(this.getNextField().toBuffer()); + } + for (const field of abiType.fields) { struct[field.name] = this.decodeReturn(field.type); } From b82e70c61771c8a3cef4026dc522f2c99147180b Mon Sep 17 00:00:00 2001 From: Facundo Date: Fri, 26 Jan 2024 20:45:17 +0000 Subject: [PATCH 4/5] fix(avm): fix usage of Fr with tagged memory (#4240) Some calls to TaggedMemory were using `Fr` since it respected the defined interface. This was too lax, we really only want specific types in memory. We may allow conversion, but we cannot allow just any type that satisfies the interface. Therefore I'm changing this to specific classes. Ref #4213. --- .../src/avm/avm_memory_types.ts | 57 ++++++++++--------- .../src/avm/opcodes/external_calls.test.ts | 12 ++-- .../src/avm/opcodes/external_calls.ts | 10 ++-- .../src/avm/opcodes/storage.test.ts | 2 +- .../acir-simulator/src/avm/opcodes/storage.ts | 8 ++- 5 files changed, 49 insertions(+), 40 deletions(-) diff --git a/yarn-project/acir-simulator/src/avm/avm_memory_types.ts b/yarn-project/acir-simulator/src/avm/avm_memory_types.ts index 69ed95c4a66..8d6d240c922 100644 --- a/yarn-project/acir-simulator/src/avm/avm_memory_types.ts +++ b/yarn-project/acir-simulator/src/avm/avm_memory_types.ts @@ -2,31 +2,35 @@ import { Fr } from '@aztec/foundation/fields'; import { strict as assert } from 'assert'; -export interface MemoryValue { - add(rhs: MemoryValue): MemoryValue; - sub(rhs: MemoryValue): MemoryValue; - mul(rhs: MemoryValue): MemoryValue; - div(rhs: MemoryValue): MemoryValue; +export abstract class MemoryValue { + public abstract add(rhs: MemoryValue): MemoryValue; + public abstract sub(rhs: MemoryValue): MemoryValue; + public abstract mul(rhs: MemoryValue): MemoryValue; + public abstract div(rhs: MemoryValue): MemoryValue; + + // We need this to be able to build an instance of the subclasses. + public abstract build(n: bigint): MemoryValue; // Use sparingly. - toBigInt(): bigint; + public abstract toBigInt(): bigint; } -export interface IntegralValue extends MemoryValue { - shl(rhs: IntegralValue): IntegralValue; - shr(rhs: IntegralValue): IntegralValue; - and(rhs: IntegralValue): IntegralValue; - or(rhs: IntegralValue): IntegralValue; - xor(rhs: IntegralValue): IntegralValue; - not(): IntegralValue; +export abstract class IntegralValue extends MemoryValue { + public abstract shl(rhs: IntegralValue): IntegralValue; + public abstract shr(rhs: IntegralValue): IntegralValue; + public abstract and(rhs: IntegralValue): IntegralValue; + public abstract or(rhs: IntegralValue): IntegralValue; + public abstract xor(rhs: IntegralValue): IntegralValue; + public abstract not(): IntegralValue; } // TODO: Optimize calculation of mod, etc. Can only do once per class? -abstract class UnsignedInteger implements IntegralValue { +abstract class UnsignedInteger extends IntegralValue { private readonly bitmask: bigint; private readonly mod: bigint; protected constructor(private n: bigint, private bits: bigint) { + super(); assert(bits > 0); // x % 2^n == x & (2^n - 1) this.mod = 1n << bits; @@ -34,9 +38,7 @@ abstract class UnsignedInteger implements IntegralValue { assert(n < this.mod); } - // We need this to be able to build an instance of the subclass - // and not of type UnsignedInteger. - protected abstract build(n: bigint): UnsignedInteger; + public abstract build(n: bigint): UnsignedInteger; public add(rhs: UnsignedInteger): UnsignedInteger { assert(this.bits == rhs.bits); @@ -93,10 +95,6 @@ abstract class UnsignedInteger implements IntegralValue { public toBigInt(): bigint { return this.n; } - - public equals(rhs: UnsignedInteger) { - return this.bits == rhs.bits && this.toBigInt() == rhs.toBigInt(); - } } export class Uint8 extends UnsignedInteger { @@ -104,7 +102,7 @@ export class Uint8 extends UnsignedInteger { super(BigInt(n), 8n); } - protected build(n: bigint): Uint8 { + public build(n: bigint): Uint8 { return new Uint8(n); } } @@ -114,7 +112,7 @@ export class Uint16 extends UnsignedInteger { super(BigInt(n), 16n); } - protected build(n: bigint): Uint16 { + public build(n: bigint): Uint16 { return new Uint16(n); } } @@ -124,7 +122,7 @@ export class Uint32 extends UnsignedInteger { super(BigInt(n), 32n); } - protected build(n: bigint): Uint32 { + public build(n: bigint): Uint32 { return new Uint32(n); } } @@ -134,7 +132,7 @@ export class Uint64 extends UnsignedInteger { super(BigInt(n), 64n); } - protected build(n: bigint): Uint64 { + public build(n: bigint): Uint64 { return new Uint64(n); } } @@ -144,19 +142,24 @@ export class Uint128 extends UnsignedInteger { super(BigInt(n), 128n); } - protected build(n: bigint): Uint128 { + public build(n: bigint): Uint128 { return new Uint128(n); } } -export class Field implements MemoryValue { +export class Field extends MemoryValue { public static readonly MODULUS: bigint = Fr.MODULUS; private readonly rep: Fr; constructor(v: number | bigint | Fr) { + super(); this.rep = new Fr(v); } + public build(n: bigint): Field { + return new Field(n); + } + public add(rhs: Field): Field { return new Field(this.rep.add(rhs.rep)); } diff --git a/yarn-project/acir-simulator/src/avm/opcodes/external_calls.test.ts b/yarn-project/acir-simulator/src/avm/opcodes/external_calls.test.ts index 7a2f74df0e4..8f6fd076038 100644 --- a/yarn-project/acir-simulator/src/avm/opcodes/external_calls.test.ts +++ b/yarn-project/acir-simulator/src/avm/opcodes/external_calls.test.ts @@ -40,7 +40,7 @@ describe('External Calls', () => { const addr = new Fr(123456n); const argsOffset = 2; - const args = [new Fr(1n), new Fr(2n), new Fr(3n)]; + const args = [new Field(1n), new Field(2n), new Field(3n)]; const argsSize = args.length; const retOffset = 8; @@ -48,8 +48,8 @@ describe('External Calls', () => { const successOffset = 7; - machineState.memory.set(0, gas); - machineState.memory.set(1, addr); + machineState.memory.set(0, new Field(gas)); + machineState.memory.set(1, new Field(addr)); machineState.memory.setSlice(2, args); const otherContextInstructions: [Opcode, any[]][] = [ @@ -72,10 +72,10 @@ describe('External Calls', () => { await instruction.execute(machineState, journal); const successValue = machineState.memory.get(successOffset); - expect(successValue).toEqual(new Fr(1n)); + expect(successValue).toEqual(new Field(1n)); const retValue = machineState.memory.getSlice(retOffset, retSize); - expect(retValue).toEqual([new Fr(1n), new Fr(2n)]); + expect(retValue).toEqual([new Field(1n), new Field(2n)]); // Check that the storage call has been merged into the parent journal const { storageWrites } = journal.flush(); @@ -126,7 +126,7 @@ describe('External Calls', () => { // No revert has occurred, but the nested execution has failed const successValue = machineState.memory.get(successOffset); - expect(successValue).toEqual(new Fr(0n)); + expect(successValue).toEqual(new Field(0n)); }); }); }); diff --git a/yarn-project/acir-simulator/src/avm/opcodes/external_calls.ts b/yarn-project/acir-simulator/src/avm/opcodes/external_calls.ts index fc98f6c780c..280b1284f02 100644 --- a/yarn-project/acir-simulator/src/avm/opcodes/external_calls.ts +++ b/yarn-project/acir-simulator/src/avm/opcodes/external_calls.ts @@ -39,10 +39,11 @@ export class Call extends Instruction { // We only take as much data as was specified in the return size -> TODO: should we be reverting here const returnData = returnObject.output.slice(0, this.retSize); + const convertedReturnData = returnData.map(f => new Field(f)); // Write our return data into memory - machineState.memory.set(this.successOffset, new Fr(success)); - machineState.memory.setSlice(this.retOffset, returnData); + machineState.memory.set(this.successOffset, new Field(success ? 1 : 0)); + machineState.memory.setSlice(this.retOffset, convertedReturnData); if (success) { avmContext.mergeJournal(); @@ -84,10 +85,11 @@ export class StaticCall extends Instruction { // We only take as much data as was specified in the return size -> TODO: should we be reverting here const returnData = returnObject.output.slice(0, this.retSize); + const convertedReturnData = returnData.map(f => new Field(f)); // Write our return data into memory - machineState.memory.set(this.successOffset, new Fr(success)); - machineState.memory.setSlice(this.retOffset, returnData); + machineState.memory.set(this.successOffset, new Field(success ? 1 : 0)); + machineState.memory.setSlice(this.retOffset, convertedReturnData); if (success) { avmContext.mergeJournal(); diff --git a/yarn-project/acir-simulator/src/avm/opcodes/storage.test.ts b/yarn-project/acir-simulator/src/avm/opcodes/storage.test.ts index 47bc4433862..e62b0abc561 100644 --- a/yarn-project/acir-simulator/src/avm/opcodes/storage.test.ts +++ b/yarn-project/acir-simulator/src/avm/opcodes/storage.test.ts @@ -63,6 +63,6 @@ describe('Storage Instructions', () => { expect(journal.readStorage).toBeCalledWith(address, new Fr(a.toBigInt())); const actual = machineState.memory.get(1); - expect(actual).toEqual(expectedResult); + expect(actual).toEqual(new Field(expectedResult)); }); }); diff --git a/yarn-project/acir-simulator/src/avm/opcodes/storage.ts b/yarn-project/acir-simulator/src/avm/opcodes/storage.ts index e8f078f7909..419cbecc1da 100644 --- a/yarn-project/acir-simulator/src/avm/opcodes/storage.ts +++ b/yarn-project/acir-simulator/src/avm/opcodes/storage.ts @@ -1,6 +1,7 @@ import { Fr } from '@aztec/foundation/fields'; import { AvmMachineState } from '../avm_machine_state.js'; +import { Field } from '../avm_memory_types.js'; import { AvmInterpreterError } from '../interpreter/interpreter.js'; import { AvmJournal } from '../journal/journal.js'; import { Instruction } from './instruction.js'; @@ -44,9 +45,12 @@ export class SLoad extends Instruction { async execute(machineState: AvmMachineState, journal: AvmJournal): Promise { const slot = machineState.memory.get(this.slotOffset); - const data = journal.readStorage(machineState.executionEnvironment.storageAddress, new Fr(slot.toBigInt())); + const data: Fr = await journal.readStorage( + machineState.executionEnvironment.storageAddress, + new Fr(slot.toBigInt()), + ); - machineState.memory.set(this.destOffset, await data); + machineState.memory.set(this.destOffset, new Field(data)); this.incrementPc(machineState); } From 9e6250aacbe2d47aa71dee9fa5e43c66eec73e75 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Nicol=C3=A1s=20Venturo?= Date: Fri, 26 Jan 2024 19:29:45 -0300 Subject: [PATCH 5/5] chore: delete MemoryDB (#4241) This module is not being used anywhere and was just being kept around as a reference. However this results in a maintenance burden as this shares tests with the KV DB, which means we have to keep feature parity (see e.g. https://github.com/AztecProtocol/aztec-packages/pull/4238). The KV DB is in a good place already, and we can always look at the repo history if we wish to bring this back, so the simplest path forward is to remove this. --- .../end-to-end/src/e2e_persistence.test.ts | 2 +- yarn-project/pxe/src/database/index.ts | 1 - .../pxe/src/database/memory_db.test.ts | 67 ----- yarn-project/pxe/src/database/memory_db.ts | 248 ------------------ 4 files changed, 1 insertion(+), 317 deletions(-) delete mode 100644 yarn-project/pxe/src/database/memory_db.test.ts delete mode 100644 yarn-project/pxe/src/database/memory_db.ts diff --git a/yarn-project/end-to-end/src/e2e_persistence.test.ts b/yarn-project/end-to-end/src/e2e_persistence.test.ts index 98726df23a7..7750291f270 100644 --- a/yarn-project/end-to-end/src/e2e_persistence.test.ts +++ b/yarn-project/end-to-end/src/e2e_persistence.test.ts @@ -153,7 +153,7 @@ describe('Aztec persistence', () => { expect(ownerBalance).toEqual(initialOwnerBalance - 500n); expect(targetBalance).toEqual(500n); - }); + }, 30_000); }); describe.each([ diff --git a/yarn-project/pxe/src/database/index.ts b/yarn-project/pxe/src/database/index.ts index 35d4e000a20..4685cc2f7a8 100644 --- a/yarn-project/pxe/src/database/index.ts +++ b/yarn-project/pxe/src/database/index.ts @@ -1,2 +1 @@ export * from './pxe_database.js'; -export * from './memory_db.js'; diff --git a/yarn-project/pxe/src/database/memory_db.test.ts b/yarn-project/pxe/src/database/memory_db.test.ts deleted file mode 100644 index f505efa4a79..00000000000 --- a/yarn-project/pxe/src/database/memory_db.test.ts +++ /dev/null @@ -1,67 +0,0 @@ -import { AztecAddress, Fr } from '@aztec/circuits.js'; - -import { MemoryDB } from './memory_db.js'; -import { randomNoteDao } from './note_dao.test.js'; -import { describePxeDatabase } from './pxe_database_test_suite.js'; - -describe('Memory DB', () => { - let db: MemoryDB; - - beforeEach(() => { - db = new MemoryDB(); - }); - - describePxeDatabase(() => db); - - describe('NoteDao', () => { - const contractAddress = AztecAddress.random(); - const storageSlot = Fr.random(); - - const createNotes = (numberOfNotes: number, sameStorage = true) => - Array(numberOfNotes) - .fill(0) - .map(() => - randomNoteDao({ - contractAddress: sameStorage ? contractAddress : AztecAddress.random(), - storageSlot: sameStorage ? storageSlot : Fr.random(), - }), - ); - - it('should add and get notes', async () => { - const notes = createNotes(3, false); - for (let i = 0; i < notes.length; ++i) { - await db.addNote(notes[i]); - } - - for (let i = 0; i < notes.length; ++i) { - const result = await db.getNotes({ - contractAddress: notes[i].contractAddress, - storageSlot: notes[i].storageSlot, - }); - expect(result).toEqual([notes[i]]); - } - }); - - it('should batch add notes', async () => { - const notes = createNotes(3, false); - await db.addNotes(notes); - - for (let i = 0; i < notes.length; ++i) { - const result = await db.getNotes({ - contractAddress: notes[i].contractAddress, - storageSlot: notes[i].storageSlot, - }); - expect(result).toEqual([notes[i]]); - } - }); - - it('should get all notes with the same contract storage slot', async () => { - const notes = createNotes(3); - await db.addNotes(notes); - - const result = await db.getNotes({ contractAddress, storageSlot }); - expect(result.length).toBe(notes.length); - expect(result).toEqual(expect.objectContaining(notes)); - }); - }); -}); diff --git a/yarn-project/pxe/src/database/memory_db.ts b/yarn-project/pxe/src/database/memory_db.ts deleted file mode 100644 index 5390c654b94..00000000000 --- a/yarn-project/pxe/src/database/memory_db.ts +++ /dev/null @@ -1,248 +0,0 @@ -import { MerkleTreeId, NoteFilter } from '@aztec/circuit-types'; -import { BlockHeader, CompleteAddress, PublicKey } from '@aztec/circuits.js'; -import { ContractArtifact } from '@aztec/foundation/abi'; -import { AztecAddress } from '@aztec/foundation/aztec-address'; -import { Fr, Point } from '@aztec/foundation/fields'; -import { createDebugLogger } from '@aztec/foundation/log'; -import { ContractInstanceWithAddress } from '@aztec/types/contracts'; - -import { MemoryContractDatabase } from '../contract_database/index.js'; -import { DeferredNoteDao } from './deferred_note_dao.js'; -import { NoteDao } from './note_dao.js'; -import { PxeDatabase } from './pxe_database.js'; - -/** - * The MemoryDB class provides an in-memory implementation of a database to manage transactions and auxiliary data. - * It extends the MemoryContractDatabase, allowing it to store contract-related data as well. - * The class offers methods to add, fetch, and remove transaction records and auxiliary data based on various filters such as transaction hash, address, and storage slot. - * As an in-memory database, the stored data will not persist beyond the life of the application instance. - */ -export class MemoryDB extends MemoryContractDatabase implements PxeDatabase { - private notesTable: NoteDao[] = []; - private deferredNotesTable: DeferredNoteDao[] = []; - private treeRoots: Record | undefined; - private globalVariablesHash: Fr | undefined; - private blockNumber: number | undefined; - private addresses: CompleteAddress[] = []; - private authWitnesses: Record = {}; - private syncedBlockPerPublicKey = new Map(); - // A capsule is a "blob" of data that is passed to the contract through an oracle. - // We are using a stack to keep track of the capsules that are passed to the contract. - private capsuleStack: Fr[][] = []; - - private contractArtifacts = new Map(); - private contractInstances = new Map(); - - constructor(logSuffix?: string) { - super(createDebugLogger(logSuffix ? 'aztec:memory_db_' + logSuffix : 'aztec:memory_db')); - } - - public addContractArtifact(id: Fr, contract: ContractArtifact): Promise { - this.contractArtifacts.set(id.toString(), contract); - return Promise.resolve(); - } - - public getContractArtifact(id: Fr): Promise { - const contract = this.contractArtifacts.get(id.toString()); - return Promise.resolve(contract); - } - - public addContractInstance(contract: ContractInstanceWithAddress): Promise { - this.contractInstances.set(contract.address.toString(), contract); - return Promise.resolve(); - } - - public getContractInstance(address: AztecAddress): Promise { - const contract = this.contractInstances.get(address.toString()); - return Promise.resolve(contract); - } - - /** - * Add a auth witness to the database. - * @param messageHash - The message hash. - * @param witness - An array of field elements representing the auth witness. - */ - public addAuthWitness(messageHash: Fr, witness: Fr[]): Promise { - this.authWitnesses[messageHash.toString()] = witness; - return Promise.resolve(); - } - - /** - * Fetching the auth witness for a given message hash. - * @param messageHash - The message hash. - * @returns A Promise that resolves to an array of field elements representing the auth witness. - */ - public getAuthWitness(messageHash: Fr): Promise { - return Promise.resolve(this.authWitnesses[messageHash.toString()]); - } - - public addNote(note: NoteDao): Promise { - this.notesTable.push(note); - return Promise.resolve(); - } - - public addDeferredNotes(notes: DeferredNoteDao[]): Promise { - this.deferredNotesTable.push(...notes); - return Promise.resolve(); - } - - public getDeferredNotesByContract(contractAddress: AztecAddress): Promise { - return Promise.resolve(this.deferredNotesTable.filter(note => note.contractAddress.equals(contractAddress))); - } - - public removeDeferredNotesByContract(contractAddress: AztecAddress): Promise { - const removed: DeferredNoteDao[] = []; - this.deferredNotesTable = this.deferredNotesTable.filter(note => { - if (note.contractAddress.equals(contractAddress)) { - removed.push(note); - return false; - } - return true; - }); - return Promise.resolve(removed); - } - - public addCapsule(capsule: Fr[]): Promise { - this.capsuleStack.push(capsule); - return Promise.resolve(); - } - - public popCapsule(): Promise { - return Promise.resolve(this.capsuleStack.pop()); - } - - public addNotes(notes: NoteDao[]) { - this.notesTable.push(...notes); - return Promise.resolve(); - } - - public async getNotes(filter: NoteFilter): Promise { - let ownerPublicKey: PublicKey | undefined; - if (filter.owner !== undefined) { - const ownerCompleteAddress = await this.getCompleteAddress(filter.owner); - if (ownerCompleteAddress === undefined) { - throw new Error(`Owner ${filter.owner.toString()} not found in memory database`); - } - ownerPublicKey = ownerCompleteAddress.publicKey; - } - - return this.notesTable.filter( - note => - (filter.contractAddress == undefined || note.contractAddress.equals(filter.contractAddress)) && - (filter.txHash == undefined || note.txHash.equals(filter.txHash)) && - (filter.storageSlot == undefined || note.storageSlot.equals(filter.storageSlot!)) && - (ownerPublicKey == undefined || note.publicKey.equals(ownerPublicKey!)), - ); - } - - public removeNullifiedNotes(nullifiers: Fr[], account: PublicKey) { - const nullifierSet = new Set(nullifiers.map(nullifier => nullifier.toString())); - const [remaining, removed] = this.notesTable.reduce( - (acc: [NoteDao[], NoteDao[]], note) => { - const nullifier = note.siloedNullifier.toString(); - if (note.publicKey.equals(account) && nullifierSet.has(nullifier)) { - acc[1].push(note); - } else { - acc[0].push(note); - } - return acc; - }, - [[], []], - ); - - this.notesTable = remaining; - - return Promise.resolve(removed); - } - - public getTreeRoots(): Record { - const roots = this.treeRoots; - if (!roots) { - throw new Error(`Tree roots not set in memory database`); - } - return roots; - } - - private setTreeRoots(roots: Record) { - this.treeRoots = roots; - } - - public getBlockHeader(): BlockHeader { - const roots = this.getTreeRoots(); - if (!this.globalVariablesHash) { - throw new Error(`Global variables hash not set in memory database`); - } - return new BlockHeader( - roots[MerkleTreeId.NOTE_HASH_TREE], - roots[MerkleTreeId.NULLIFIER_TREE], - roots[MerkleTreeId.CONTRACT_TREE], - roots[MerkleTreeId.L1_TO_L2_MESSAGE_TREE], - roots[MerkleTreeId.ARCHIVE], - Fr.ZERO, // todo: private kernel vk tree root - roots[MerkleTreeId.PUBLIC_DATA_TREE], - this.globalVariablesHash, - ); - } - - public setBlockData(blockNumber: number, blockHeader: BlockHeader): Promise { - this.globalVariablesHash = blockHeader.globalVariablesHash; - this.blockNumber = blockNumber; - this.setTreeRoots({ - [MerkleTreeId.NOTE_HASH_TREE]: blockHeader.noteHashTreeRoot, - [MerkleTreeId.NULLIFIER_TREE]: blockHeader.nullifierTreeRoot, - [MerkleTreeId.CONTRACT_TREE]: blockHeader.contractTreeRoot, - [MerkleTreeId.L1_TO_L2_MESSAGE_TREE]: blockHeader.l1ToL2MessageTreeRoot, - [MerkleTreeId.ARCHIVE]: blockHeader.archiveRoot, - [MerkleTreeId.PUBLIC_DATA_TREE]: blockHeader.publicDataTreeRoot, - }); - - return Promise.resolve(); - } - - public getBlockNumber(): number | undefined { - return this.blockNumber; - } - - public addCompleteAddress(completeAddress: CompleteAddress): Promise { - const accountIndex = this.addresses.findIndex(r => r.address.equals(completeAddress.address)); - if (accountIndex !== -1) { - if (this.addresses[accountIndex].equals(completeAddress)) { - return Promise.resolve(false); - } - - return Promise.reject( - new Error( - `Complete address with aztec address ${completeAddress.address.toString()} but different public key or partial key already exists in memory database`, - ), - ); - } - this.addresses.push(completeAddress); - return Promise.resolve(true); - } - - public getCompleteAddress(address: AztecAddress): Promise { - const recipient = this.addresses.find(r => r.address.equals(address)); - return Promise.resolve(recipient); - } - - public getCompleteAddresses(): Promise { - return Promise.resolve(this.addresses); - } - - getSynchedBlockNumberForPublicKey(publicKey: Point): number | undefined { - return this.syncedBlockPerPublicKey.get(publicKey.toString()); - } - - setSynchedBlockNumberForPublicKey(publicKey: Point, blockNumber: number): Promise { - this.syncedBlockPerPublicKey.set(publicKey.toString(), blockNumber); - return Promise.resolve(true); - } - - public estimateSize() { - const notesSize = this.notesTable.reduce((sum, note) => sum + note.getSize(), 0); - const treeRootsSize = this.treeRoots ? Object.entries(this.treeRoots).length * Fr.SIZE_IN_BYTES : 0; - const authWits = Object.entries(this.authWitnesses); - const authWitsSize = authWits.reduce((sum, [key, value]) => sum + key.length + value.length * Fr.SIZE_IN_BYTES, 0); - return notesSize + treeRootsSize + authWitsSize + this.addresses.length * CompleteAddress.SIZE_IN_BYTES; - } -}