Source Code
Overview
ETH Balance
0 ETH
Eth Value
$0.00Loading...
Loading
Loading...
Loading
Cross-Chain Transactions
Loading...
Loading
Similar Match Source Code This contract matches the deployed Bytecode of the Source Code for Contract 0x862c5E80...4Dfba388d The constructor portion of the code might be different and could alter the actual behaviour of the contract
Contract Name:
Vyper_contract
Compiler Version
vyper:0.4.2
Contract Source Code (Vyper Json-Input format)
# pragma version ~=0.4.2
# pragma nonreentrancy off
"""
@title Multi-Token Recovery Contract
@custom:contract-name recoverooor
@license GNU Affero General Public License v3.0 only
@author pcaversaccio
@notice These functions support (batch) recovery of both native assets
and tokens across any standard (e.g., ERC-20, ERC-721, ERC-1155).
When using EIP-7702 (https://eips.ethereum.org/EIPS/eip-7702),
you can delegate to this contract and safely invoke and broadcast
the appropriate recovery function from a trusted `OWNER` account.
For batch recovery of native assets alongside multiple token transfers
in a single transaction, use the `recover_multicall` function.
@custom:security This contract is untested and has not undergone a security audit.
Use with caution!
"""
# @dev We import the `IERC20`, `IERC721`, and `IERC1155` interfaces to
# enable easy recovery of these token types when EIP-7702 delegation is
# used.
from ethereum.ercs import IERC20
from ethereum.ercs import IERC721
from snekmate.tokens.interfaces import IERC1155
# @dev We import the `multicall` module.
# @notice Please note that the `multicall` module is stateless and therefore
# does not require the `initializes` keyword for initialisation.
from snekmate.utils import multicall
# @dev Stores the upper bound for batch calls.
_BATCH_SIZE: constant(uint8) = 128
# @dev Sets the trusted `OWNER` account.
# @notice We use an `immutable` variable instead of storage, since writes to storage
# in the constructor do not persist when using this contract as an implementation.
OWNER: public(immutable(address))
@deploy
def __init__(owner_: address):
"""
@dev Transfers the ownership of the contract to a
(trusted) account `owner_`.
@param owner_ The 20-byte address of the owner.
"""
OWNER = owner_
@external
def recover_eth():
"""
@dev Transfers the full ether balance to a (trusted)
account `OWNER`.
"""
self._check_owner()
# We force the full ether balance into the `OWNER` address.
# For the `selfdestruct` behaviour, see: https://eips.ethereum.org/EIPS/eip-6780.
selfdestruct(OWNER)
@external
def recover_erc20(tokens: DynArray[IERC20, _BATCH_SIZE]):
"""
@dev Transfers the full ERC-20 balances of the specified
contract addresses to a (trusted) account `OWNER`.
@param tokens The 20-byte array of ERC-20 token contract
addresses that are being transferred.
"""
self._check_owner()
for token: IERC20 in tokens:
assert extcall token.transfer(
OWNER, staticcall token.balanceOf(self), default_return_value=True
), "recoverooor: erc-20 transfer operation did not succeed"
@external
def recover_erc721(
tokens: DynArray[IERC721, _BATCH_SIZE], token_ids: DynArray[DynArray[uint256, _BATCH_SIZE], _BATCH_SIZE]
):
"""
@dev Transfers all ERC-721 `token_ids` of the specified
contract addresses to a (trusted) account `OWNER`.
@param tokens The 20-byte array of ERC-721 token contract
addresses that are being transferred. Note that the
length must match the 32-byte `token_ids` array.
@param token_ids The 32-byte array of ERC-721 `token_ids`
for each ERC-721 contract that are being transferred.
Note that the length must match the 20-byte `tokens`
array.
"""
self._check_owner()
assert len(tokens) == len(token_ids), "recoverooor: `tokens` and `token_ids` length mismatch"
idx: uint256 = empty(uint256)
for token: IERC721 in tokens:
ids: DynArray[uint256, _BATCH_SIZE] = token_ids[idx]
for id: uint256 in ids:
extcall token.transferFrom(self, OWNER, id)
idx = unsafe_add(idx, 1)
@external
def recover_erc1155(
tokens: DynArray[IERC1155, _BATCH_SIZE],
ids: DynArray[DynArray[uint256, _BATCH_SIZE], _BATCH_SIZE],
amounts: DynArray[DynArray[uint256, _BATCH_SIZE], _BATCH_SIZE],
):
"""
@dev Transfers all `amounts` for the token type `ids` of the
specified ERC-1155 contract addresses `tokens` to a (trusted)
account `OWNER`.
@param tokens The 20-byte array of ERC-1155 token contract
addresses that are being transferred. Note that the
length must match the 32-byte `ids` and `amounts` arrays.
@param ids The 32-byte array of token identifiers. Note that the
length must match the 20-byte `tokens` arrays. Furthermore,
note that for each array entry the order and length must
match the 32-byte `amounts` array.
@param amounts The 32-byte array of token amounts that are
being transferred. Note that the length must match the
20-byte `tokens` arrays. Furthermore, note that for each
array entry the order and length must match the 32-byte
`ids` array.
"""
self._check_owner()
assert len(tokens) == len(ids), "recoverooor: `tokens` and `ids` length mismatch"
assert len(tokens) == len(amounts), "recoverooor: `tokens` and `amounts` length mismatch"
idx: uint256 = empty(uint256)
for token: IERC1155 in tokens:
assert len(ids[idx]) == len(amounts[idx]), "recoverooor: `ids` and `amounts` length mismatch"
extcall token.safeBatchTransferFrom(self, OWNER, ids[idx], amounts[idx], b"")
idx = unsafe_add(idx, 1)
@external
@payable
def recover_multicall(
data: DynArray[multicall.BatchValue, multicall._DYNARRAY_BOUND]
) -> DynArray[multicall.Result, multicall._DYNARRAY_BOUND]:
"""
@dev Aggregates function calls with a `msg.value`, ensuring
that each function returns successfully if required. Since
this function uses `CALL`, the `msg.sender` will be the
`recoverooor` contract itself.
@notice This function is fully customisable and does not enforce
any transfers to a (trusted) `OWNER` account, although this
is still the recommended approach.
@param data The array of `BatchValue` structs.
@return DynArray The array of `Result` structs.
"""
self._check_owner()
return multicall._multicall_value(data)
@internal
def _check_owner():
"""
@dev Throws if the sender is not the owner.
"""
assert msg.sender == OWNER, "recoverooor: caller is not the owner"# pragma version ~=0.4.2
"""
@title EIP-1155 Interface Definition
@custom:contract-name IERC1155
@license GNU Affero General Public License v3.0 only
@author pcaversaccio
@notice The required interface definition of an ERC-1155
compliant smart contract as defined in:
https://eips.ethereum.org/EIPS/eip-1155. Note that
smart contracts implementing the ERC-1155 standard
must implement all of the functions in the ERC-1155
interface. For more details, please refer to:
https://eips.ethereum.org/EIPS/eip-1155#specification.
Note that Vyper interfaces that implement functions
with return values that require an upper bound (e.g.
`Bytes`, `DynArray`, or `String`), the upper bound
defined in the interface represents the lower bound
of the implementation:
https://github.com/vyperlang/vyper/pull/3205.
On how to use interfaces in Vyper, please visit:
https://vyper.readthedocs.io/en/latest/interfaces.html#interfaces.
"""
# @dev We import and implement the `IERC165` interface,
# which is a built-in interface of the Vyper compiler.
from ethereum.ercs import IERC165
implements: IERC165
# @dev Emitted when `_value` tokens of token type
# `_id` are transferred from `_from` to `_to` by
# `_operator`.
event TransferSingle:
_operator: indexed(address)
_from: indexed(address)
_to: indexed(address)
_id: uint256
_value: uint256
# @dev Equivalent to multiple `TransferSingle` events,
# where `_operator`, `_from`, and `_to` are the same
# for all transfers.
event TransferBatch:
_operator: indexed(address)
_from: indexed(address)
_to: indexed(address)
_ids: DynArray[uint256, 128]
_values: DynArray[uint256, 128]
# @dev Emitted when `_owner` grants or revokes permission
# to `_operator` to transfer their tokens, according to
# `_approved`.
event ApprovalForAll:
_owner: indexed(address)
_operator: indexed(address)
_approved: bool
# @dev Emitted when the Uniform Resource Identifier (URI)
# for token type `_id` changes to `_value`, if it is a
# non-programmatic URI. Note that if an `URI` event was
# emitted for `_id`, the EIP-1155 standard guarantees that
# `_value` will equal the value returned by {IERC1155MetadataURI-uri}.
event URI:
_value: String[512]
_id: indexed(uint256)
@external
@view
def supportsInterface(interfaceId: bytes4) -> bool:
"""
@dev Returns `True` if this contract implements the
interface defined by `interfaceId`.
@notice For more details on how these identifiers are
created, please refer to:
https://eips.ethereum.org/EIPS/eip-165.
@param interfaceId The 4-byte interface identifier.
@return bool The verification whether the contract
implements the interface or not.
"""
...
@external
def safeTransferFrom(_from: address, _to: address, _id: uint256, _value: uint256, _data: Bytes[1_024]):
"""
@dev Transfers `_value` tokens of token type `_id` from
`_from` to `_to`.
@notice Note that `_to` cannot be the zero address. Also,
if the caller is not `_from`, it must have been
approved to spend `_from`'s tokens via `setApprovalForAll`.
Furthermore, `_from` must have a balance of tokens
of type `_id` of at least `_value`. Eventually, if
`_to` refers to a smart contract, it must implement
{IERC1155Receiver-onERC1155Received} and return the
acceptance magic value.
WARNING: This function can potentially allow a reentrancy
attack when transferring tokens to an untrusted contract,
when invoking {IERC1155Receiver-onERC1155Received} on the
receiver. Ensure to follow the checks-effects-interactions
(CEI) pattern and consider employing reentrancy guards when
interacting with untrusted contracts.
@param _from The 20-byte address which previously
owned the token.
@param _to The 20-byte receiver address.
@param _id The 32-byte identifier of the token.
@param _value The 32-byte token amount that is
being transferred.
@param _data The maximum 1,024-byte additional data
with no specified format.
"""
...
@external
def safeBatchTransferFrom(
_from: address, _to: address, _ids: DynArray[uint256, 128], _values: DynArray[uint256, 128], _data: Bytes[1_024]
):
"""
@dev Batched version of `safeTransferFrom`.
@notice Note that `_ids` and `_values` must have the
same length. Also, if `_to` refers to a smart
contract, it must implement {IERC1155Receiver-onERC1155BatchReceived}
and return the acceptance magic value.
WARNING: This function can potentially allow a reentrancy
attack when transferring tokens to an untrusted contract,
when invoking {IERC1155Receiver-onERC1155BatchReceived} on
the receiver. Ensure to follow the checks-effects-interactions
(CEI) pattern and consider employing reentrancy guards when
interacting with untrusted contracts.
@param _from The 20-byte address which previously
owned the token.
@param _to The 20-byte receiver address.
@param _ids The 32-byte array of token identifiers. Note
that the order and length must match the 32-byte
`_values` array.
@param _values The 32-byte array of token amounts that are being
transferred. Note that the order and length must match
the 32-byte `_ids` array.
@param _data The maximum 1,024-byte additional data
with no specified format.
"""
...
@external
@view
def balanceOf(_owner: address, _id: uint256) -> uint256:
"""
@dev Returns the amount of tokens of token type
`_id` owned by `_owner`.
@param _owner The 20-byte owner address.
@param _id The 32-byte identifier of the token.
@return uint256 The 32-byte token amount owned
by `_owner`.
"""
...
@external
@view
def balanceOfBatch(_owners: DynArray[address, 128], _ids: DynArray[uint256, 128]) -> DynArray[uint256, 128]:
"""
@dev Batched version of `balanceOf`.
@notice Note that `_owners` and `_ids` must have the
same length.
@param _owners The 20-byte array of owner addresses.
@param _ids The 32-byte array of token identifiers.
@return DynArray The 32-byte array of token amounts
owned by `_owners`.
"""
...
@external
def setApprovalForAll(_operator: address, _approved: bool):
"""
@dev Grants or revokes permission to `_operator` to
transfer the caller's tokens, according to `_approved`.
@notice Note that `_operator` cannot be the caller.
@param _operator The 20-byte operator address.
@param _approved The Boolean variable that sets the
approval status.
"""
...
@external
@view
def isApprovedForAll(_owner: address, _operator: address) -> bool:
"""
@dev Returns `True` if `_operator` is approved to transfer
`_owner`'s tokens.
@notice Note that `_operator` cannot be the caller.
@param _owner The 20-byte owner address.
@param _operator The 20-byte operator address.
@return bool The verification whether `_operator` is approved
or not.
"""
...# pragma version ~=0.4.2
# pragma nonreentrancy off
"""
@title Multicall Functions
@custom:contract-name multicall
@license GNU Affero General Public License v3.0 only
@author pcaversaccio
@notice These functions can be used to batch together multiple `external`
function calls into one single `external` function call. Please note
that this contract is written in the most agnostic way possible and
users should adjust statically allocatable memory to their specific
needs before deploying it:
https://github.com/pcaversaccio/snekmate/discussions/82.
The implementation is inspired by Matt Solomon's implementation here:
https://github.com/mds1/multicall/blob/main/src/Multicall3.sol.
@custom:security You must ensure that any contract that integrates the `CALL`-based
`multicall` and `multicall_value` functions never holds funds after
the end of a transaction. Otherwise, any ETH, tokens, or other funds
held by this contract can be stolen. Also, never approve a contract
that integrates the `CALL`-based functions `multicall` and `multicall_value`
to spend your tokens. If you do, anyone can steal your tokens! Eventually,
please make sure you understand how `msg.sender` works in `CALL` vs
`DELEGATECALL` to the multicall contract, as well as the risks of
using `msg.value` in a multicall. To learn more about the latter, see:
- https://github.com/runtimeverification/verified-smart-contracts/wiki/List-of-Security-Vulnerabilities#payable-multicall,
- https://samczsun.com/two-rights-might-make-a-wrong.
"""
# @dev Stores the 1-byte upper bound for the dynamic arrays.
_DYNARRAY_BOUND: constant(uint8) = max_value(uint8)
# @dev Batch struct for ordinary (i.e. `nonpayable`) function calls.
struct Batch:
target: address
allow_failure: bool
calldata: Bytes[1_024]
# @dev Batch struct for `payable` function calls.
struct BatchValue:
target: address
allow_failure: bool
value: uint256
calldata: Bytes[1_024]
# @dev Batch struct for ordinary (i.e. `nonpayable`) function calls
# using this contract as destination address.
struct BatchSelf:
allow_failure: bool
calldata: Bytes[1_024]
# @dev Result struct for function call results.
struct Result:
success: bool
return_data: Bytes[max_value(uint8)]
@deploy
@payable
def __init__():
"""
@dev To omit the opcodes for checking the `msg.value`
in the creation-time EVM bytecode, the constructor
is declared as `payable`.
"""
pass
@internal
def _multicall(data: DynArray[Batch, _DYNARRAY_BOUND]) -> DynArray[Result, _DYNARRAY_BOUND]:
"""
@dev Aggregates function calls, ensuring that each
function returns successfully if required.
Since this function uses `CALL`, the `msg.sender`
will be the multicall contract itself.
@notice It is important to note that an external call
via `raw_call` does not perform an external code
size check on the target address.
@param data The array of `Batch` structs.
@return DynArray The array of `Result` structs.
"""
results: DynArray[Result, _DYNARRAY_BOUND] = []
success: bool = empty(bool)
return_data: Bytes[max_value(uint8)] = b""
for batch: Batch in data:
if batch.allow_failure:
success, return_data = raw_call(batch.target, batch.calldata, max_outsize=255, revert_on_failure=False)
else:
success = True
return_data = raw_call(batch.target, batch.calldata, max_outsize=255)
results.append(Result(success=success, return_data=return_data))
return results
@internal
@payable
def _multicall_value(data: DynArray[BatchValue, _DYNARRAY_BOUND]) -> DynArray[Result, _DYNARRAY_BOUND]:
"""
@dev Aggregates function calls with a `msg.value`,
ensuring that each function returns successfully
if required. Since this function uses `CALL`,
the `msg.sender` will be the multicall contract
itself.
@notice It is important to note that an external call
via `raw_call` does not perform an external code
size check on the target address.
@param data The array of `BatchValue` structs.
@return DynArray The array of `Result` structs.
"""
value_accumulator: uint256 = empty(uint256)
results: DynArray[Result, _DYNARRAY_BOUND] = []
success: bool = empty(bool)
return_data: Bytes[max_value(uint8)] = b""
for batch: BatchValue in data:
msg_value: uint256 = batch.value
# WARNING: If you expect to hold any funds in a contract that integrates
# this function, you must ensure that the next line uses checked arithmetic!
# Please read the contract-level security notice carefully. For further
# insights also, see the following X thread:
# https://x.com/Guhu95/status/1736983530343981307.
value_accumulator = unsafe_add(value_accumulator, msg_value)
if batch.allow_failure:
success, return_data = raw_call(
batch.target, batch.calldata, max_outsize=255, value=msg_value, revert_on_failure=False
)
else:
success = True
return_data = raw_call(batch.target, batch.calldata, max_outsize=255, value=msg_value)
results.append(Result(success=success, return_data=return_data))
assert msg.value == value_accumulator, "multicall: value mismatch"
return results
@internal
def _multicall_self(data: DynArray[BatchSelf, _DYNARRAY_BOUND]) -> DynArray[Result, _DYNARRAY_BOUND]:
"""
@dev Aggregates function calls using `DELEGATECALL`,
ensuring that each function returns successfully
if required. Since this function uses `DELEGATECALL`,
the `msg.sender` remains the same account that
invoked the function `multicall_self` in the first place.
@notice Developers can include this function in their own
contract so that users can submit multiple function
calls in one transaction. Since the `msg.sender` is
preserved, it's equivalent to sending multiple transactions
from an EOA (externally-owned account, i.e. non-contract account).
Furthermore, it is important to note that an external
call via `raw_call` does not perform an external code
size check on the target address.
@param data The array of `BatchSelf` structs.
@return DynArray The array of `Result` structs.
"""
results: DynArray[Result, _DYNARRAY_BOUND] = []
success: bool = empty(bool)
return_data: Bytes[max_value(uint8)] = b""
for batch: BatchSelf in data:
if batch.allow_failure:
success, return_data = raw_call(
self, batch.calldata, max_outsize=255, is_delegate_call=True, revert_on_failure=False
)
else:
success = True
return_data = raw_call(self, batch.calldata, max_outsize=255, is_delegate_call=True)
results.append(Result(success=success, return_data=return_data))
return results
@internal
@view
def _multistaticcall(data: DynArray[Batch, _DYNARRAY_BOUND]) -> DynArray[Result, _DYNARRAY_BOUND]:
"""
@dev Aggregates static function calls, ensuring that each
function returns successfully if required.
@notice It is important to note that an external call
via `raw_call` does not perform an external code
size check on the target address.
@param data The array of `Batch` structs.
@return DynArray The array of `Result` structs.
"""
results: DynArray[Result, _DYNARRAY_BOUND] = []
success: bool = empty(bool)
return_data: Bytes[max_value(uint8)] = b""
for batch: Batch in data:
if batch.allow_failure:
success, return_data = raw_call(
batch.target, batch.calldata, max_outsize=255, is_static_call=True, revert_on_failure=False
)
else:
success = True
return_data = raw_call(batch.target, batch.calldata, max_outsize=255, is_static_call=True)
results.append(Result(success=success, return_data=return_data))
return results{
"outputSelection": {
"recoverooor.vy": [
"evm.bytecode",
"evm.deployedBytecode",
"abi"
]
},
"search_paths": [
"venv/Lib/site-packages",
"venv",
"."
]
}Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
Contract ABI
API[{"inputs":[],"name":"recover_eth","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"name":"tokens","type":"address[]"}],"name":"recover_erc20","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"name":"tokens","type":"address[]"},{"name":"token_ids","type":"uint256[][]"}],"name":"recover_erc721","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"name":"tokens","type":"address[]"},{"name":"ids","type":"uint256[][]"},{"name":"amounts","type":"uint256[][]"}],"name":"recover_erc1155","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"components":[{"name":"target","type":"address"},{"name":"allow_failure","type":"bool"},{"name":"value","type":"uint256"},{"name":"calldata","type":"bytes"}],"name":"data","type":"tuple[]"}],"name":"recover_multicall","outputs":[{"components":[{"name":"success","type":"bool"},{"name":"return_data","type":"bytes"}],"name":"","type":"tuple[]"}],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"OWNER","outputs":[{"name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"name":"owner_","type":"address"}],"outputs":[],"stateMutability":"nonpayable","type":"constructor"}]Contract Creation Code
0x610f27515034610036576020610f985f395f518060a01c61003657604052604051610f2752610f2761003a61000039610f47610000f35b5f80fd5f3560e01c60026007820660011b610f1901601e395f51565b633db132b18118610bda5734610f1557610030610bde565b6020610f275f395f51ff005b6358525fea8118610bda57602436103417610f15576004356004016080813511610f155780355f8160808111610f1557801561009a57905b8060051b6020850101358060a01c610f15578160051b6101600152600101818118610074575b5050806101405250506100ab610bde565b5f6101405160808111610f1557801561022d57905b8060051b6101600151611160526111605163a9059cbb6111c0526020610f276111e039611160516370a0823161118052306111a0526020611180602461119c845afa61010e573d5f5f3e3d5ffd5b60203d10610f15576111809050516112005260206111c060446111dc5f855af161013a573d5f5f3e3d5ffd5b3d61015157803b15610f155760016112205261017b565b3d602081183d6020100218806111c0016111e011610f15576111c0518060011c610f155761122052505b611220905051610222576020806112c0526036611240527f7265636f7665726f6f6f723a206572632d3230207472616e73666572206f7065611260527f726174696f6e20646964206e6f7420737563636565640000000000000000000061128052611240816112c001605682825e8051806020830101601f825f03163682375050601f19601f8251602001011690509050810190506308c379a06112a052806004016112bcfd5b6001018181186100c0575b5050005b63e05cd5268118610bda57604436103417610f15576004356004016080813511610f155780355f8160808111610f1557801561028f57905b8060051b6020850101358060a01c610f15578160051b6101600152600101818118610269575b5050806101405250506024356004016080813511610f155780355f8160808111610f155780156102f857905b8060051b60208501013560208501016080813511610f1557803560208160051b0161102084026111800181848237505050506001018181186102bb575b505080611160525050610309610bde565b611160516101405118156103bc576020806208220052603562082180527f7265636f7665726f6f6f723a2060746f6b656e736020616e642060746f6b656e620821a0527f5f69647360206c656e677468206d69736d617463680000000000000000000000620821c05262082180816208220001605582825e8051806020830101601f825f03163682375050601f19601f8251602001011690509050810190506308c379a0620821e05280600401620821fcfd5b5f62082180525f6101405160808111610f155780156104a657905b8060051b6101600151620821a052611020620821805161116051811015610f15570261118001805160208160051b018083620821c05e5050505f620821c05160808111610f1557801561048c57905b8060051b620821e00151620831e052620821a0516323b872dd62083200523062083220526020610f276208324039620831e0516208326052803b15610f15575f6208320060646208321c5f855af1610480573d5f5f3e3d5ffd5b50600101818118610426575b5050600162082180510162082180526001018181186103d7575b5050005b630cab397581186109d557606436103417610f15576004356004016080813511610f155780355f8160808111610f1557801561050857905b8060051b6020850101358060a01c610f15578160051b61016001526001018181186104e2575b5050806101405250506024356004016080813511610f155780355f8160808111610f1557801561057157905b8060051b60208501013560208501016080813511610f1557803560208160051b016110208402611180018184823750505050600101818118610534575b5050806111605250506044356004016080813511610f155780355f8160808111610f155780156105db57905b8060051b60208501013560208501016080813511610f1557803560208160051b016110208402620821a001818482375050505060010181811861059d575b505080620821805250506105ed610bde565b611160516101405118156106a0576020806210322052602f621031a0527f7265636f7665726f6f6f723a2060746f6b656e736020616e6420606964736020621031c0527f6c656e677468206d69736d617463680000000000000000000000000000000000621031e052621031a0816210322001604f82825e8051806020830101601f825f03163682375050601f19601f8251602001011690509050810190506308c379a06210320052806004016210321cfd5b62082180516101405118156107545760208062103220526033621031a0527f7265636f7665726f6f6f723a2060746f6b656e736020616e642060616d6f756e621031c0527f747360206c656e677468206d69736d6174636800000000000000000000000000621031e052621031a0816210322001605382825e8051806020830101601f825f03163682375050601f19601f8251602001011690509050810190506308c379a06210320052806004016210321cfd5b5f621031a0525f6101405160808111610f155780156109d157905b8060051b6101600151621031c052611020621031a0516208218051811015610f155702620821a00151611020621031a05161116051811015610f1557026111800151181561085c5760208062103260526030621031e0527f7265636f7665726f6f6f723a20606964736020616e642060616d6f756e74736062103200527f206c656e677468206d69736d61746368000000000000000000000000000000006210322052621031e0816210326001605082825e8051806020830101601f825f03163682375050601f19601f8251602001011690509050810190506308c379a06210324052806004016210325cfd5b621031c051632eb2c2d6621032005260a03062103220526020610f276210324039806210326052611020621031a05161116051811015610f155702611180018162103220015f82518083528060051b5f8260808111610f155780156108dc57905b8060051b6020880101518160051b6020880101526001018181186108bd575b505082016020019150509050905081019050806210328052611020621031a0516208218051811015610f155702620821a0018162103220015f82518083528060051b5f8260808111610f1557801561094f57905b8060051b6020880101518160051b602088010152600101818118610930575b50508201602001915050905090508101905080621032a0528062103220015f81528051806020830101601f825f03163682375050601f19601f82516020010116905081015050803b15610f15575f621032006121046210321c5f855af16109b8573d5f5f3e3d5ffd5b506001621031a05101621031a05260010181811861076f575b5050005b63117803e38118610bda5734610f15576020610f2760403960206040f35b63352312598118610bda576023361115610f155760043560040160ff813511610f155780355f8160ff8111610f15578015610a9b57905b8060051b602085010135602085010161048082026205c3400181358060a01c610f1557815260208201358060011c610f15576020820152604082013560408201526060820135820180356104008111610f155750602081350160608301818382375050505050600101818118610a2a575b5050806205c320525050610aad610bde565b602080620b7da0526205c320515f8160ff8111610f15578015610b1757905b61048081026205c340016104808202606001815181526020820151602082015260408201516040820152606082016020815101606083018183825e5050505050600101818118610acc575b50508060405250610b2a620a3ec0610c85565b620a3ec081620b7da0015f82518083528060051b5f8260ff8111610f15578015610bc257905b828160051b602088010152610140810260208801018360208801016040825182528060208301526020830181830160208251018083835e508051806020830101601f825f03163682375050601f19601f8251602001011690509050810190509050905083019250600101818118610b50575b505082016020019150509050905081019050620b7da0f35b5f5ffd5b6020610f275f395f51331815610c835760208060c05260246040527f7265636f7665726f6f6f723a2063616c6c6572206973206e6f7420746865206f6060527f776e65720000000000000000000000000000000000000000000000000000000060805260408160c001604482825e8051806020830101601f825f03163682375050601f19601f8251602001011690509050810190506308c379a060a0528060040160bcfd5b565b60403662047be0375f6205bae0525f6205bb00525f60405160ff8111610f15578015610e2f57905b610480810260600180516205bc205260208101516205bc405260408101516205bc605260608101602081510180826205bc805e5050506205bc60516205c0a0526205c0a05162047be0510162047be0526205bc4051610d7a5760016205bae0526205bc20516205c0a0515a6205bc8060ff6205c0e0825160208401868887f19050905090509050610d40573d5f5f3e3d5ffd5b3d60ff81183d60ff1002186205c0c0526205c0c0602081510180826205c1e05e505060206205c1e05101806205c1e06205bb005e50610de6565b6205bc20516205c0a0515a6205bc8060ff6205c0e0825160208401868887f190509050905090506205c1e0523d60ff81183d60ff1002186205c0c0526205c0c0602081510180826205c2005e50506205c1e0516205bae05260206205c2005101806205c2006205bb005e505b62047c005160fe8111610f1557610140810262047c20016205bae051815260206205bb00510160208201816205bb00825e5050506001810162047c005250600101818118610cad575b505062047be051341815610ebc576020806205bc805260196205bc20527f6d756c746963616c6c3a2076616c7565206d69736d61746368000000000000006205bc40526205bc20816205bc8001603982825e8051806020830101601f825f03163682375050601f19601f8251602001011690509050810190506308c379a06205bc6052806004016205bc7cfd5b62047c00515f8160ff8111610f15578015610f0c57905b610140810262047c20016101408202602086010181518152602082016020815101602083018183825e5050505050600101818118610ed3575b50508082525050565b5f80fd0bda00180bda023109f3003c04aa855820af71d809a9eabbed8515c90d13066261f47a89b9fc0264b203ee21d64753cc41190f27810e1820a1657679706572830004020037000000000000000000000000ca4d21f2bfce5cfc11a8d8d508adcf48f28c3fba
Deployed Bytecode
0x5f3560e01c60026007820660011b610f1901601e395f51565b633db132b18118610bda5734610f1557610030610bde565b6020610f275f395f51ff005b6358525fea8118610bda57602436103417610f15576004356004016080813511610f155780355f8160808111610f1557801561009a57905b8060051b6020850101358060a01c610f15578160051b6101600152600101818118610074575b5050806101405250506100ab610bde565b5f6101405160808111610f1557801561022d57905b8060051b6101600151611160526111605163a9059cbb6111c0526020610f276111e039611160516370a0823161118052306111a0526020611180602461119c845afa61010e573d5f5f3e3d5ffd5b60203d10610f15576111809050516112005260206111c060446111dc5f855af161013a573d5f5f3e3d5ffd5b3d61015157803b15610f155760016112205261017b565b3d602081183d6020100218806111c0016111e011610f15576111c0518060011c610f155761122052505b611220905051610222576020806112c0526036611240527f7265636f7665726f6f6f723a206572632d3230207472616e73666572206f7065611260527f726174696f6e20646964206e6f7420737563636565640000000000000000000061128052611240816112c001605682825e8051806020830101601f825f03163682375050601f19601f8251602001011690509050810190506308c379a06112a052806004016112bcfd5b6001018181186100c0575b5050005b63e05cd5268118610bda57604436103417610f15576004356004016080813511610f155780355f8160808111610f1557801561028f57905b8060051b6020850101358060a01c610f15578160051b6101600152600101818118610269575b5050806101405250506024356004016080813511610f155780355f8160808111610f155780156102f857905b8060051b60208501013560208501016080813511610f1557803560208160051b0161102084026111800181848237505050506001018181186102bb575b505080611160525050610309610bde565b611160516101405118156103bc576020806208220052603562082180527f7265636f7665726f6f6f723a2060746f6b656e736020616e642060746f6b656e620821a0527f5f69647360206c656e677468206d69736d617463680000000000000000000000620821c05262082180816208220001605582825e8051806020830101601f825f03163682375050601f19601f8251602001011690509050810190506308c379a0620821e05280600401620821fcfd5b5f62082180525f6101405160808111610f155780156104a657905b8060051b6101600151620821a052611020620821805161116051811015610f15570261118001805160208160051b018083620821c05e5050505f620821c05160808111610f1557801561048c57905b8060051b620821e00151620831e052620821a0516323b872dd62083200523062083220526020610f276208324039620831e0516208326052803b15610f15575f6208320060646208321c5f855af1610480573d5f5f3e3d5ffd5b50600101818118610426575b5050600162082180510162082180526001018181186103d7575b5050005b630cab397581186109d557606436103417610f15576004356004016080813511610f155780355f8160808111610f1557801561050857905b8060051b6020850101358060a01c610f15578160051b61016001526001018181186104e2575b5050806101405250506024356004016080813511610f155780355f8160808111610f1557801561057157905b8060051b60208501013560208501016080813511610f1557803560208160051b016110208402611180018184823750505050600101818118610534575b5050806111605250506044356004016080813511610f155780355f8160808111610f155780156105db57905b8060051b60208501013560208501016080813511610f1557803560208160051b016110208402620821a001818482375050505060010181811861059d575b505080620821805250506105ed610bde565b611160516101405118156106a0576020806210322052602f621031a0527f7265636f7665726f6f6f723a2060746f6b656e736020616e6420606964736020621031c0527f6c656e677468206d69736d617463680000000000000000000000000000000000621031e052621031a0816210322001604f82825e8051806020830101601f825f03163682375050601f19601f8251602001011690509050810190506308c379a06210320052806004016210321cfd5b62082180516101405118156107545760208062103220526033621031a0527f7265636f7665726f6f6f723a2060746f6b656e736020616e642060616d6f756e621031c0527f747360206c656e677468206d69736d6174636800000000000000000000000000621031e052621031a0816210322001605382825e8051806020830101601f825f03163682375050601f19601f8251602001011690509050810190506308c379a06210320052806004016210321cfd5b5f621031a0525f6101405160808111610f155780156109d157905b8060051b6101600151621031c052611020621031a0516208218051811015610f155702620821a00151611020621031a05161116051811015610f1557026111800151181561085c5760208062103260526030621031e0527f7265636f7665726f6f6f723a20606964736020616e642060616d6f756e74736062103200527f206c656e677468206d69736d61746368000000000000000000000000000000006210322052621031e0816210326001605082825e8051806020830101601f825f03163682375050601f19601f8251602001011690509050810190506308c379a06210324052806004016210325cfd5b621031c051632eb2c2d6621032005260a03062103220526020610f276210324039806210326052611020621031a05161116051811015610f155702611180018162103220015f82518083528060051b5f8260808111610f155780156108dc57905b8060051b6020880101518160051b6020880101526001018181186108bd575b505082016020019150509050905081019050806210328052611020621031a0516208218051811015610f155702620821a0018162103220015f82518083528060051b5f8260808111610f1557801561094f57905b8060051b6020880101518160051b602088010152600101818118610930575b50508201602001915050905090508101905080621032a0528062103220015f81528051806020830101601f825f03163682375050601f19601f82516020010116905081015050803b15610f15575f621032006121046210321c5f855af16109b8573d5f5f3e3d5ffd5b506001621031a05101621031a05260010181811861076f575b5050005b63117803e38118610bda5734610f15576020610f2760403960206040f35b63352312598118610bda576023361115610f155760043560040160ff813511610f155780355f8160ff8111610f15578015610a9b57905b8060051b602085010135602085010161048082026205c3400181358060a01c610f1557815260208201358060011c610f15576020820152604082013560408201526060820135820180356104008111610f155750602081350160608301818382375050505050600101818118610a2a575b5050806205c320525050610aad610bde565b602080620b7da0526205c320515f8160ff8111610f15578015610b1757905b61048081026205c340016104808202606001815181526020820151602082015260408201516040820152606082016020815101606083018183825e5050505050600101818118610acc575b50508060405250610b2a620a3ec0610c85565b620a3ec081620b7da0015f82518083528060051b5f8260ff8111610f15578015610bc257905b828160051b602088010152610140810260208801018360208801016040825182528060208301526020830181830160208251018083835e508051806020830101601f825f03163682375050601f19601f8251602001011690509050810190509050905083019250600101818118610b50575b505082016020019150509050905081019050620b7da0f35b5f5ffd5b6020610f275f395f51331815610c835760208060c05260246040527f7265636f7665726f6f6f723a2063616c6c6572206973206e6f7420746865206f6060527f776e65720000000000000000000000000000000000000000000000000000000060805260408160c001604482825e8051806020830101601f825f03163682375050601f19601f8251602001011690509050810190506308c379a060a0528060040160bcfd5b565b60403662047be0375f6205bae0525f6205bb00525f60405160ff8111610f15578015610e2f57905b610480810260600180516205bc205260208101516205bc405260408101516205bc605260608101602081510180826205bc805e5050506205bc60516205c0a0526205c0a05162047be0510162047be0526205bc4051610d7a5760016205bae0526205bc20516205c0a0515a6205bc8060ff6205c0e0825160208401868887f19050905090509050610d40573d5f5f3e3d5ffd5b3d60ff81183d60ff1002186205c0c0526205c0c0602081510180826205c1e05e505060206205c1e05101806205c1e06205bb005e50610de6565b6205bc20516205c0a0515a6205bc8060ff6205c0e0825160208401868887f190509050905090506205c1e0523d60ff81183d60ff1002186205c0c0526205c0c0602081510180826205c2005e50506205c1e0516205bae05260206205c2005101806205c2006205bb005e505b62047c005160fe8111610f1557610140810262047c20016205bae051815260206205bb00510160208201816205bb00825e5050506001810162047c005250600101818118610cad575b505062047be051341815610ebc576020806205bc805260196205bc20527f6d756c746963616c6c3a2076616c7565206d69736d61746368000000000000006205bc40526205bc20816205bc8001603982825e8051806020830101601f825f03163682375050601f19601f8251602001011690509050810190506308c379a06205bc6052806004016205bc7cfd5b62047c00515f8160ff8111610f15578015610f0c57905b610140810262047c20016101408202602086010181518152602082016020815101602083018183825e5050505050600101818118610ed3575b50508082525050565b5f80fd0bda00180bda023109f3003c04aa000000000000000000000000ca4d21f2bfce5cfc11a8d8d508adcf48f28c3fba
Deployed Bytecode Sourcemap
0:6382:0:-;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1:-;-1:-1:-1:-;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1:-;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1:-;-1:-1:-1;-1:-1:-1;-1:-1:-1;2009:19:0;-1:-1:-1;-1:-1:-1;2009:19:0:i;2009:19:0:-;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;1887:315:0;-1:-1:-1:-;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1:-;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1:-;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;2233:37:0;-1:-1:-1;-1:-1:-1;2233:37:0;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1:-;2233:37:0;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1:-;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1:-;-1:-1:-1;-1:-1:-1:-;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;2233:37:0;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1:-;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1:-;-1:-1:-1:-;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;2233:37:0;-1:-1:-1;-1:-1:-1;-1:-1:-1;2524:19:0;-1:-1:-1;-1:-1:-1;2524:19:0:i;2524:19:0:-;-1:-1:-1;2569:6:0;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;2215:547:0;2215:547:0;2215:547:0;-1:-1:-1;-1:-1:-1;2215:547:0:-;2215:547:0;2215:547:0;2215:547:0;-1:-1:-1;-1:-1:-1;2215:547:0:-;2215:547:0;2215:547:0:-;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;2600:5:0;-1:-1:-1;-1:-1:-1;2592:112:0;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;2646:5:0;-1:-1:-1;-1:-1:-1;2635:32:0;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;2662:4:0;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;2635:32:0;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1:-;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1:-;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1:-;-1:-1:-1;-1:-1:-1;-1:-1:-1;2635:32:0;2635:32:0;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;2592:112:0;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1:-;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1:-;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1:-;2592:112:0;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1:-;2690:4:0;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1:-;-1:-1:-1:-;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1:-;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1:-;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1:-;-1:-1:-1;-1:-1:-1;-1:-1:-1;2592:112:0;2592:112:0;-1:-1:-1;2215:547:0;-1:-1:-1;-1:-1:-1;2585:177:0:-;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;2706:56:0;-1:-1:-1;-1:-1:-1;2706:56:0;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;2706:56:0;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;2706:56:0;2706:56:0;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;2215:547:0:-;2215:547:0;-1:-1:-1;2215:547:0;2215:547:0;2215:547:0;2215:547:0;2215:547:0;-1:-1:-1;-1:-1:-1;2215:547:0:-;2215:547:0:-;2215:547:0;2215:547:0;2215:547:0;-1:-1:-1:-;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1:-;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1:-;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;2799:38:0;-1:-1:-1;-1:-1:-1;2799:38:0;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1:-;2799:38:0;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1:-;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1:-;-1:-1:-1;-1:-1:-1:-;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;2799:38:0;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1:-;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1:-;-1:-1:-1:-;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;2799:38:0;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;2839:64:0;-1:-1:-1;-1:-1:-1;2839:64:0;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1:-;2839:64:0;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1:-;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1:-;-1:-1:-1;-1:-1:-1:-;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;2839:64:0;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;2839:64:0;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1:-;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1:-;-1:-1:-1:-;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;2839:64:0;-1:-1:-1;-1:-1:-1;-1:-1:-1;3441:19:0;-1:-1:-1;-1:-1:-1;3441:19:0:i;3441:19:0:-;3491:9:0;-1:-1:-1;-1:-1:-1;3487:14:0;3476:6:0;-1:-1:-1;-1:-1:-1;3472:11:0;3472:29:0;3472:29:0;3465:93:0;-1:-1:-1;-1:-1:-1;3465:93:0:-;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;3503:55:0;-1:-1:-1;-1:-1:-1;-1:-1:-1;3503:55:0;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;3503:55:0;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;3503:55:0;3503:55:0;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;3465:93:0:-;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;3563:29:0;-1:-1:-1;3619:6:0;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;2775:1033:0;2775:1033:0;2775:1033:0;-1:-1:-1;-1:-1:-1;2775:1033:0:-;2775:1033:0;2775:1033:0;2775:1033:0;-1:-1:-1;-1:-1:-1;2775:1033:0:-;2775:1033:0;2775:1033:0:-;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;3683:3:0;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;3673:9:0;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1:-;3673:14:0;3673:14:0;-1:-1:-1;-1:-1:-1;3673:14:0;3635:52:0;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;3635:52:0;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;3635:52:0;3635:52:0;-1:-1:-1;3715:3:0;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1:-;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1:-;-1:-1:-1;-1:-1:-1:-;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;3740:5:0;-1:-1:-1;-1:-1:-1;-1:-1:-1;3732:43:0;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;3759:4:0;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;3772:2:0;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;3732:43:0;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1:-;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;3732:43:0;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1:-;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1:-;3732:43:0;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1:-;-1:-1:-1:-;-1:-1:-1;-1:-1:-1;3806:1:0;-1:-1:-1;3801:3:0;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;3790:18:0;3784:3:0;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;2775:1033:0;-1:-1:-1;2775:1033:0;2775:1033:0;2775:1033:0;2775:1033:0;2775:1033:0;-1:-1:-1;-1:-1:-1;2775:1033:0:-;2775:1033:0:-;2775:1033:0;2775:1033:0;2775:1033:0;-1:-1:-1:-;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1:-;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1:-;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;3846:39:0;-1:-1:-1;-1:-1:-1;3846:39:0;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1:-;3846:39:0;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1:-;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1:-;-1:-1:-1;-1:-1:-1:-;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;3846:39:0;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1:-;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1:-;-1:-1:-1:-;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;3846:39:0;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;3891:58:0;-1:-1:-1;-1:-1:-1;3891:58:0;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1:-;3891:58:0;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1:-;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1:-;-1:-1:-1;-1:-1:-1:-;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;3891:58:0;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;3891:58:0;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1:-;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1:-;-1:-1:-1:-;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;3891:58:0;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;3955:62:0;-1:-1:-1;-1:-1:-1;3955:62:0;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1:-;3955:62:0;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1:-;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1:-;-1:-1:-1;-1:-1:-1:-;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;3955:62:0;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;3955:62:0;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1:-;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1:-;-1:-1:-1:-;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;3955:62:0;-1:-1:-1;-1:-1:-1;-1:-1:-1;4941:19:0;-1:-1:-1;-1:-1:-1;4941:19:0:i;4941:19:0:-;4991:3:0;-1:-1:-1;-1:-1:-1;4987:8:0;4976:6:0;-1:-1:-1;-1:-1:-1;4972:11:0;4972:23:0;4972:23:0;4965:81:0;-1:-1:-1;-1:-1:-1;4965:81:0:-;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;4997:49:0;-1:-1:-1;-1:-1:-1;-1:-1:-1;4997:49:0;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;4997:49:0;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;4997:49:0;4997:49:0;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;4965:81:0:-;5077:7:0;-1:-1:-1;-1:-1:-1;-1:-1:-1;5073:12:0;5062:6:0;-1:-1:-1;-1:-1:-1;5058:11:0;5058:27:0;5058:27:0;5051:89:0;-1:-1:-1;-1:-1:-1;5051:89:0:-;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;5087:53:0;-1:-1:-1;-1:-1:-1;-1:-1:-1;5087:53:0;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;5087:53:0;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;5087:53:0;5087:53:0;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;5051:89:0:-;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;5145:29:0;-1:-1:-1;5202:6:0;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;3821:1609:0;3821:1609:0;3821:1609:0;-1:-1:-1;-1:-1:-1;3821:1609:0:-;3821:1609:0;3821:1609:0;3821:1609:0;-1:-1:-1;-1:-1:-1;3821:1609:0:-;3821:1609:0;3821:1609:0:-;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;5254:3:0;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;5246:7:0;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1:-;5246:12:0;5246:12:0;-1:-1:-1;-1:-1:-1;-1:-1:-1;5246:12:0;5242:17:0;-1:-1:-1;-1:-1:-1;-1:-1:-1;5233:3:0;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;5229:3:0;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1:-;5229:8:0;5229:8:0;-1:-1:-1;-1:-1:-1;5229:8:0;5225:13:0;5225:34:0;5225:34:0;5218:93:0;-1:-1:-1;-1:-1:-1;5218:93:0:-;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;5261:50:0;-1:-1:-1;-1:-1:-1;-1:-1:-1;5261:50:0;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;5261:50:0;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;5261:50:0;5261:50:0;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;5218:93:0:-;5328:5:0;-1:-1:-1;-1:-1:-1;-1:-1:-1;5320:77:0;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;5356:4:0;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;5373:3:0;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;5369:3:0;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1:-;5369:8:0;5369:8:0;-1:-1:-1;-1:-1:-1;5369:8:0;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1:-;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1:-;-1:-1:-1;-1:-1:-1:-;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1:-;-1:-1:-1:-;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;5387:3:0;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;5379:7:0;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1:-;5379:12:0;5379:12:0;-1:-1:-1;-1:-1:-1;-1:-1:-1;5379:12:0;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1:-;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1:-;-1:-1:-1;-1:-1:-1:-;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1:-;-1:-1:-1:-;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;5320:77:0;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1:-;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;5320:77:0;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1:-;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1:-;5320:77:0;5428:1:0;-1:-1:-1;5423:3:0;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;5412:18:0;5406:3:0;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;3821:1609:0;-1:-1:-1;3821:1609:0;3821:1609:0;3821:1609:0;3821:1609:0;3821:1609:0;-1:-1:-1;-1:-1:-1;3821:1609:0:-;3821:1609:0:-;3821:1609:0;3821:1609:0;3821:1609:0;-1:-1:-1:-;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1:-;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1:-;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;1622:33:0;-1:-1:-1;1622:33:0;-1:-1:-1:-;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1:-;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1:-;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;5479:63:0;-1:-1:-1;-1:-1:-1;5479:63:0;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1:-;5479:63:0;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1:-;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1:-;-1:-1:-1;-1:-1:-1:-;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;5479:63:0;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;5479:63:0;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1:-;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1:-;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1:-;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1:-;-1:-1:-1:-;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;5479:63:0;-1:-1:-1;-1:-1:-1;-1:-1:-1;6151:19:0;-1:-1:-1;-1:-1:-1;6151:19:0:i;6151:19:0:-;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;6209:4:0;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1:-;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1:-;-1:-1:-1;-1:-1:-1:-;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1:-;-1:-1:-1:-;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;6182:32:0;-1:-1:-1;-1:-1:-1;-1:-1:-1;6182:32:0;-1:-1:-1;-1:-1:-1;-1:-1:-1;6182:32:0;-1:-1:-1;-1:-1:-1;6182:32:0:i;6182:32:0:-;6182:32:0;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1:-;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1:-;-1:-1:-1;-1:-1:-1:-;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1:-;-1:-1:-1:-;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;5452:762:0;-1:-1:-1;-1:-1:-1;-1:-1:-1;5452:762:0;-1:-1:-1:-;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1:-;6322:19:0;6322:19:0;6322:19:0;-1:-1:-1;-1:-1:-1;6322:19:0;6322:19:0;6322:19:0;6322:19:0;6322:10:0;6322:19:0;6322:19:0;-1:-1:-1;-1:-1:-1;-1:-1:-1;6315:66:0:-;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;6343:38:0;-1:-1:-1;6343:38:0;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;6343:38:0;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;6343:38:0;6343:38:0;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1:-;-1:-1:-1:-;-1:-1:-1:-;4470:43:2;-1:-1:-1;4470:43:2;4470:43:2;-1:-1:-1;-1:-1:-1;-1:-1:-1;4470:43:2;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;4570:27:2;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;4602:42:2;-1:-1:-1;4674:4:2;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1:-;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1:-;-1:-1:-1;-1:-1:-1:-;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;4709:11:2;-1:-1:-1;-1:-1:-1;-1:-1:-1;4688:32:2;4688:32:2;-1:-1:-1;-1:-1:-1;-1:-1:-1;4688:32:2;5137:9:2;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;5118:17:2;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;5107:40:2;5087:17:2;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;5159:19:2;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;5156:326:2;-1:-1:-1;-1:-1:-1;5156:326:2:-;5379:4:2;-1:-1:-1;5369:7:2;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;5419:12:2;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;5472:9:2;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;5433:14:2;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;5410:72:2;-1:-1:-1;-1:-1:-1;5410:72:2:-;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;5410:72:2:-;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;5396:86:2;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;5396:11:2;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;5396:86:2;5156:326:2;-1:-1:-1;-1:-1:-1;5156:326:2:-;5156:326:2:-;5241:12:2;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;5294:9:2;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;5255:14:2;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;5192:7:2;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;5201:11:2;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;5156:326:2:-;5491:7:2;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1:-;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;5521:7:2;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;5542:11:2;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;5542:11:2;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;5491:7:2;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1:-;-1:-1:-1:-;-1:-1:-1;-1:-1:-1;5580:17:2;-1:-1:-1;-1:-1:-1;-1:-1:-1;5567:30:2;5567:9:2;5567:30:2;5567:30:2;5560:66:2;-1:-1:-1;-1:-1:-1;5560:66:2:-;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;5599:27:2;-1:-1:-1;-1:-1:-1;-1:-1:-1;5599:27:2;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;5599:27:2;5599:27:2;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;5560:66:2:-;5638:7:2;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1:-;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1:-;-1:-1:-1;-1:-1:-1:-;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1:-;-1:-1:-1:-;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;5631:14:2;5631:14:2;-1:-1:-1:-;-1:-1:-1:-;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1;-1:-1:-1
Loading...
Loading
Loading...
Loading
Net Worth in USD
$0.00
Net Worth in ETH
0
Multichain Portfolio | 33 Chains
| Chain | Token | Portfolio % | Price | Amount | Value |
|---|
Loading...
Loading
Loading...
Loading
Loading...
Loading
A contract address hosts a smart contract, which is a set of code stored on the blockchain that runs when predetermined conditions are met. Learn more about addresses in our Knowledge Base.