ETH Price: $3,479.80 (+2.11%)
Gas: 7 Gwei

Contract

0x196a26eF25Beea61f9199e3F9d4C5C03377DF786
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Token Holdings

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Value
Unstake202129682024-07-01 16:49:3554 mins ago1719852575IN
0x196a26eF...3377DF786
0 ETH0.000555796.44193321
Stake202129382024-07-01 16:43:351 hr ago1719852215IN
0x196a26eF...3377DF786
0 ETH0.0005396.10630206
Stake202116302024-07-01 12:20:475 hrs ago1719836447IN
0x196a26eF...3377DF786
0 ETH0.000482223.93786973
Unstake202116072024-07-01 12:15:595 hrs ago1719836159IN
0x196a26eF...3377DF786
0 ETH0.000284523.71003817
Stake202030722024-06-30 7:40:5934 hrs ago1719733259IN
0x196a26eF...3377DF786
0 ETH0.000230042.6068587
Stake202018662024-06-30 3:38:2338 hrs ago1719718703IN
0x196a26eF...3377DF786
0 ETH0.000311953.73776914
Stake202001552024-06-29 21:54:2343 hrs ago1719698063IN
0x196a26eF...3377DF786
0 ETH0.000328463.9356314
Stake201995242024-06-29 19:47:1145 hrs ago1719690431IN
0x196a26eF...3377DF786
0 ETH0.000180522.16335325
Stake201980472024-06-29 14:50:472 days ago1719672647IN
0x196a26eF...3377DF786
0 ETH0.000481125.7656155
Stake201977942024-06-29 13:59:352 days ago1719669575IN
0x196a26eF...3377DF786
0 ETH0.000506025.73414896
Stake201975252024-06-29 13:04:592 days ago1719666299IN
0x196a26eF...3377DF786
0 ETH0.000458485.19543962
Stake201968302024-06-29 10:44:592 days ago1719657899IN
0x196a26eF...3377DF786
0 ETH0.000650754.05692109
Stake201966212024-06-29 10:03:112 days ago1719655391IN
0x196a26eF...3377DF786
0 ETH0.000762454.61520023
Stake201957522024-06-29 7:07:592 days ago1719644879IN
0x196a26eF...3377DF786
0 ETH0.000411634.66458041
Stake201935392024-06-28 23:42:352 days ago1719618155IN
0x196a26eF...3377DF786
0 ETH0.000645494.02415693
Stake201924462024-06-28 20:02:352 days ago1719604955IN
0x196a26eF...3377DF786
0 ETH0.000821564.83256041
Unstake201923522024-06-28 19:43:472 days ago1719603827IN
0x196a26eF...3377DF786
0 ETH0.000403775.26585147
Stake201910292024-06-28 15:17:473 days ago1719587867IN
0x196a26eF...3377DF786
0 ETH0.0020365411.97838499
Stake201908962024-06-28 14:50:593 days ago1719586259IN
0x196a26eF...3377DF786
0 ETH0.0009222210.4505066
Stake201892532024-06-28 9:21:113 days ago1719566471IN
0x196a26eF...3377DF786
0 ETH0.000955495.62037127
Stake201854012024-06-27 20:25:593 days ago1719519959IN
0x196a26eF...3377DF786
0 ETH0.001045216.14810392
Unstake201827832024-06-27 11:39:354 days ago1719488375IN
0x196a26eF...3377DF786
0 ETH0.000552237.20195321
Stake201819832024-06-27 8:58:594 days ago1719478739IN
0x196a26eF...3377DF786
0 ETH0.000786667.46655888
Unstake201819762024-06-27 8:57:354 days ago1719478655IN
0x196a26eF...3377DF786
0 ETH0.000689747.99335789
Stake201788832024-06-26 22:36:234 days ago1719441383IN
0x196a26eF...3377DF786
0 ETH0.000573856.50190236
View all transactions

View more zero value Internal Transactions in Advanced View mode

Advanced mode:
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
LOKAStaking

Compiler Version
v0.8.10+commit.fc410830

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2023-01-30
*/

pragma solidity ^0.8.0;


// SPDX-License-Identifier: MIT
// OpenZeppelin Contracts (last updated v4.6.0) (token/ERC20/IERC20.sol)
/**
 * @dev Interface of the ERC20 standard as defined in the EIP.
 */
interface IERC20 {
    /**
     * @dev Emitted when `value` tokens are moved from one account (`from`) to
     * another (`to`).
     *
     * Note that `value` may be zero.
     */
    event Transfer(address indexed from, address indexed to, uint256 value);

    /**
     * @dev Emitted when the allowance of a `spender` for an `owner` is set by
     * a call to {approve}. `value` is the new allowance.
     */
    event Approval(address indexed owner, address indexed spender, uint256 value);

    /**
     * @dev Returns the amount of tokens in existence.
     */
    function totalSupply() external view returns (uint256);

    /**
     * @dev Returns the amount of tokens owned by `account`.
     */
    function balanceOf(address account) external view returns (uint256);

    /**
     * @dev Moves `amount` tokens from the caller's account to `to`.
     *
     * Returns a boolean value indicating whether the operation succeeded.
     *
     * Emits a {Transfer} event.
     */
    function transfer(address to, uint256 amount) external returns (bool);

    /**
     * @dev Returns the remaining number of tokens that `spender` will be
     * allowed to spend on behalf of `owner` through {transferFrom}. This is
     * zero by default.
     *
     * This value changes when {approve} or {transferFrom} are called.
     */
    function allowance(address owner, address spender) external view returns (uint256);

    /**
     * @dev Sets `amount` as the allowance of `spender` over the caller's tokens.
     *
     * Returns a boolean value indicating whether the operation succeeded.
     *
     * IMPORTANT: Beware that changing an allowance with this method brings the risk
     * that someone may use both the old and the new allowance by unfortunate
     * transaction ordering. One possible solution to mitigate this race
     * condition is to first reduce the spender's allowance to 0 and set the
     * desired value afterwards:
     * https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729
     *
     * Emits an {Approval} event.
     */
    function approve(address spender, uint256 amount) external returns (bool);

    /**
     * @dev Moves `amount` tokens from `from` to `to` using the
     * allowance mechanism. `amount` is then deducted from the caller's
     * allowance.
     *
     * Returns a boolean value indicating whether the operation succeeded.
     *
     * Emits a {Transfer} event.
     */
    function transferFrom(
        address from,
        address to,
        uint256 amount
    ) external returns (bool);
}

// OpenZeppelin Contracts v4.4.1 (utils/Context.sol)
/**
 * @dev Provides information about the current execution context, including the
 * sender of the transaction and its data. While these are generally available
 * via msg.sender and msg.data, they should not be accessed in such a direct
 * manner, since when dealing with meta-transactions the account sending and
 * paying for execution may not be the actual sender (as far as an application
 * is concerned).
 *
 * This contract is only required for intermediate, library-like contracts.
 */
abstract contract Context {
    function _msgSender() internal view virtual returns (address) {
        return msg.sender;
    }

    function _msgData() internal view virtual returns (bytes calldata) {
        return msg.data;
    }
}

contract Membership is Context {
    address private owner;
    event MembershipChanged(address indexed owner, uint256 level);
    event OwnerTransferred(address indexed preOwner, address indexed newOwner);

    mapping(address => uint256) internal membership;

    constructor() {
        owner = _msgSender();
        setMembership(_msgSender(), 1);
    }

    function transferOwner(address newOwner) public onlyOwner {
        address preOwner = owner;
        setMembership(newOwner, 1);
        setMembership(preOwner, 0);
        owner = newOwner;
        emit OwnerTransferred(preOwner, newOwner);
    }

    function setMembership(address key, uint256 level) public onlyOwner {
        membership[key] = level;
        emit MembershipChanged(key, level);
    }

    modifier onlyOwner() {
        require(isOwner(), "Membership : caller is not the owner");
        _;
    }

    function isOwner() public view returns (bool) {
        return _msgSender() == owner;
    }


    modifier onlyAdmin() {
        require(isAdmin(), "Membership : caller is not a admin");
        _;
    }

    function isAdmin() public view returns (bool) {
        return membership[_msgSender()] == 1;
    }

    modifier onlyMinter() {
        require(isMinter(), "Memberhsip : caller is not a Minter");
        _;
    }

    function isMinter() public view returns (bool) {
        return isOwner() || membership[_msgSender()] == 11;
    }
    
    function getMembership(address account) public view returns (uint256){
        return membership[account];
    }
}

// OpenZeppelin Contracts v4.4.1 (utils/introspection/IERC165.sol)
/**
 * @dev Interface of the ERC165 standard, as defined in the
 * https://eips.ethereum.org/EIPS/eip-165[EIP].
 *
 * Implementers can declare support of contract interfaces, which can then be
 * queried by others ({ERC165Checker}).
 *
 * For an implementation, see {ERC165}.
 */
interface IERC165 {
    /**
     * @dev Returns true if this contract implements the interface defined by
     * `interfaceId`. See the corresponding
     * https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[EIP section]
     * to learn more about how these ids are created.
     *
     * This function call must use less than 30 000 gas.
     */
    function supportsInterface(bytes4 interfaceId) external view returns (bool);
}

// OpenZeppelin Contracts (last updated v4.6.0) (token/ERC721/IERC721.sol)
/**
 * @dev Required interface of an ERC721 compliant contract.
 */
interface IERC721 is IERC165 {
    /**
     * @dev Emitted when `tokenId` token is transferred from `from` to `to`.
     */
    event Transfer(address indexed from, address indexed to, uint256 indexed tokenId);

    /**
     * @dev Emitted when `owner` enables `approved` to manage the `tokenId` token.
     */
    event Approval(address indexed owner, address indexed approved, uint256 indexed tokenId);

    /**
     * @dev Emitted when `owner` enables or disables (`approved`) `operator` to manage all of its assets.
     */
    event ApprovalForAll(address indexed owner, address indexed operator, bool approved);

    /**
     * @dev Returns the number of tokens in ``owner``'s account.
     */
    function balanceOf(address owner) external view returns (uint256 balance);

    /**
     * @dev Returns the owner of the `tokenId` token.
     *
     * Requirements:
     *
     * - `tokenId` must exist.
     */
    function ownerOf(uint256 tokenId) external view returns (address owner);

    /**
     * @dev Safely transfers `tokenId` token from `from` to `to`.
     *
     * Requirements:
     *
     * - `from` cannot be the zero address.
     * - `to` cannot be the zero address.
     * - `tokenId` token must exist and be owned by `from`.
     * - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}.
     * - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer.
     *
     * Emits a {Transfer} event.
     */
    function safeTransferFrom(
        address from,
        address to,
        uint256 tokenId,
        bytes calldata data
    ) external;

    /**
     * @dev Safely transfers `tokenId` token from `from` to `to`, checking first that contract recipients
     * are aware of the ERC721 protocol to prevent tokens from being forever locked.
     *
     * Requirements:
     *
     * - `from` cannot be the zero address.
     * - `to` cannot be the zero address.
     * - `tokenId` token must exist and be owned by `from`.
     * - If the caller is not `from`, it must be have been allowed to move this token by either {approve} or {setApprovalForAll}.
     * - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer.
     *
     * Emits a {Transfer} event.
     */
    function safeTransferFrom(
        address from,
        address to,
        uint256 tokenId
    ) external;

    /**
     * @dev Transfers `tokenId` token from `from` to `to`.
     *
     * WARNING: Usage of this method is discouraged, use {safeTransferFrom} whenever possible.
     *
     * Requirements:
     *
     * - `from` cannot be the zero address.
     * - `to` cannot be the zero address.
     * - `tokenId` token must be owned by `from`.
     * - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}.
     *
     * Emits a {Transfer} event.
     */
    function transferFrom(
        address from,
        address to,
        uint256 tokenId
    ) external;

    /**
     * @dev Gives permission to `to` to transfer `tokenId` token to another account.
     * The approval is cleared when the token is transferred.
     *
     * Only a single account can be approved at a time, so approving the zero address clears previous approvals.
     *
     * Requirements:
     *
     * - The caller must own the token or be an approved operator.
     * - `tokenId` must exist.
     *
     * Emits an {Approval} event.
     */
    function approve(address to, uint256 tokenId) external;

    /**
     * @dev Approve or remove `operator` as an operator for the caller.
     * Operators can call {transferFrom} or {safeTransferFrom} for any token owned by the caller.
     *
     * Requirements:
     *
     * - The `operator` cannot be the caller.
     *
     * Emits an {ApprovalForAll} event.
     */
    function setApprovalForAll(address operator, bool _approved) external;

    /**
     * @dev Returns the account approved for `tokenId` token.
     *
     * Requirements:
     *
     * - `tokenId` must exist.
     */
    function getApproved(uint256 tokenId) external view returns (address operator);

    /**
     * @dev Returns if the `operator` is allowed to manage all of the assets of `owner`.
     *
     * See {setApprovalForAll}
     */
    function isApprovedForAll(address owner, address operator) external view returns (bool);
}

contract Transmitter is Membership {
    function checkToken(address token, address payer, uint256 amount) public view {
        require(IERC20(token).balanceOf(payer)>=amount, "Insufficient balance");
        require(IERC20(token).allowance(payer, address(this))>=amount, "Not approved");
    }
    function checkNft(address nft, address owner, uint256 tokenId) public view {
        require(IERC721(nft).ownerOf(tokenId) == owner, "Not owner");
        require(IERC721(nft).isApprovedForAll(owner, address(this)), "Not approved");
    }
    function transferToken(address token, address payer, address receiver, uint256 amount) public onlyMinter{
        IERC20(token).transferFrom(payer, receiver, amount);
    }
    function transferNft(address nft, address owner, address proposer, uint256 tokenId) public onlyMinter{
        IERC721(nft).transferFrom(owner, proposer, tokenId);
    }
}

contract LOKAStaking is Membership{
    event Stake(address indexed from, uint256 indexed continent, uint256 amount);
    event Unstake(address indexed from, uint256 indexed continent, uint256 amount);
    address payable private receiver;
    address LOKA;
    Transmitter transmitter;
    address[] internal stakers;
    mapping(uint256 => uint256) private continents;
    mapping(address => mapping (uint256 => uint256) ) public stakes;
    mapping(address => uint256) public indexes;

    constructor(address _loka, Transmitter _transmitter) {
        setLoka(_loka);
        setTransmitter(_transmitter);
        setReceiver(payable(_msgSender()));
    }
    function setTransmitter(Transmitter _transmitter) public onlyOwner {
        transmitter = _transmitter;
    }
    function setReceiver(address payable _receiver) public onlyOwner {
        receiver = _receiver;
    }
    function setLoka(address _loka) public onlyOwner {
        LOKA = _loka;
    }
    function getReceiver() public view returns(address) {
        return receiver;
    }
    function getTransmitter() public view returns(address) {
        return address(transmitter);
    }
    function getStakerCount() public view returns(uint256){
        return stakers.length;
    }
    function getStakers() public view returns(address[] memory){
        return stakers;
    }
    function getStakersRange(uint256 start, uint256 end) public view returns(address[] memory){
        address[] memory addresses = new address[](end-start);
         for(uint256 i=start; i<end; ++i){
            addresses[i-start] = stakers[i];
        }
        return addresses;
    }
    function getAmount() public view returns(uint256[] memory){
        uint256[] memory amounts = new uint256[](stakers.length);
        for(uint256 i=0; i<stakers.length; ++i){
            amounts[i] = stakes[stakers[i]][0];
        }
        return amounts;
    }
    function getAmountRange(uint256 start, uint256 end) public view returns(uint256[] memory){
        uint256[] memory amounts = new uint256[](end-start);
        for(uint256 i=start; i<end; ++i){
            amounts[i-start] = stakes[stakers[i]][0];
        }
        return amounts;
    }
    function getAmounts(uint256 size) public view returns(uint256[][] memory){
        uint256[][] memory amounts = new uint256[][](stakers.length);
        for(uint256 i=0; i<stakers.length; ++i){
            amounts[i] = new uint256[](size);
            for(uint256 j=0; j<size; ++j)
                amounts[i][j] = stakes[stakers[i]][j];
        }
        return amounts;
    }
    function getAmountsByAddress(uint256 size, address[] memory owners) public view returns(uint256[][] memory){
        uint256[][] memory amounts = new uint256[][](owners.length);
        for(uint256 i=0; i<owners.length; ++i){
            amounts[i] = new uint256[](size);
            for(uint256 j=0; j<size; ++j)
                amounts[i][j] = stakes[owners[i]][j];
        }
        return amounts;
    }
    function getAmountsRange(uint256 size, uint256 start, uint256 end) public view returns(uint256[][] memory){
        uint256[][] memory amounts = new uint256[][](end-start);
        for(uint256 i=start; i<end; ++i){
            amounts[i-start] = new uint256[](size);
            for(uint256 j=0; j<size; ++j)
                amounts[i-start][j] = stakes[stakers[i]][j];
        }
        return amounts;
    }
    function stake(uint256 continent, uint256 amount) public {
        require(continent>0, "Invalid index");
        require(amount>0, "Invalid amount");
        transmitter.transferToken(LOKA, _msgSender(), receiver, amount);
        continents[continent] += amount;
        continents[0] += amount;
        stakes[_msgSender()][continent] += amount;
        stakes[_msgSender()][0] += amount;
        if(indexes[_msgSender()]==0)
        {
            stakers.push(_msgSender());
            indexes[_msgSender()] = stakers.length;
        }
        emit Stake(_msgSender(), continent, amount);
    }
    function unstake(uint256 continent, uint256 amount) public {
        require(continent>0, "Invalid index");
        require(amount>0, "Invalid amount");
        require(stakes[_msgSender()][continent]>=amount, "Insufficient balance");
        transmitter.transferToken(LOKA, receiver, _msgSender(), amount);
        continents[continent] -= amount;
        continents[0] -= amount;
        stakes[_msgSender()][continent] -= amount;
        stakes[_msgSender()][0] -= amount;
        emit Unstake(_msgSender(), continent, amount);
    }
    
    function stakeOf(address owner, uint256 continent) public view returns(uint256) {
        return stakes[owner][continent];
    }
    function totalStakeOf(address owner) public view returns(uint256) {
        return stakes[owner][0];
    }
    function allStakeOf(address owner, uint256 size) public view returns(uint256[] memory) {
        uint256[] memory all = new uint256[](size);
        for(uint256 i=0; i<size; ++i)
            all[i] = stakes[owner][i];
        return all;
    }

    function stakeOfContinent(uint256 index) public view returns(uint256) {
        return continents[index];
    }
    function totalStakeOfContinent() public view returns(uint256) {
        return continents[0];
    }
    function allStakeOfContinent(uint256 size) public view returns(uint256[] memory) {
        uint256[] memory all = new uint256[](size);
        for(uint256 i=0; i<size; ++i)
            all[i] = continents[i];
        return all;
    }
}

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"address","name":"_loka","type":"address"},{"internalType":"contract Transmitter","name":"_transmitter","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":false,"internalType":"uint256","name":"level","type":"uint256"}],"name":"MembershipChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"preOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnerTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"uint256","name":"continent","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"Stake","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"uint256","name":"continent","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"Unstake","type":"event"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"uint256","name":"size","type":"uint256"}],"name":"allStakeOf","outputs":[{"internalType":"uint256[]","name":"","type":"uint256[]"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"size","type":"uint256"}],"name":"allStakeOfContinent","outputs":[{"internalType":"uint256[]","name":"","type":"uint256[]"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getAmount","outputs":[{"internalType":"uint256[]","name":"","type":"uint256[]"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"start","type":"uint256"},{"internalType":"uint256","name":"end","type":"uint256"}],"name":"getAmountRange","outputs":[{"internalType":"uint256[]","name":"","type":"uint256[]"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"size","type":"uint256"}],"name":"getAmounts","outputs":[{"internalType":"uint256[][]","name":"","type":"uint256[][]"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"size","type":"uint256"},{"internalType":"address[]","name":"owners","type":"address[]"}],"name":"getAmountsByAddress","outputs":[{"internalType":"uint256[][]","name":"","type":"uint256[][]"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"size","type":"uint256"},{"internalType":"uint256","name":"start","type":"uint256"},{"internalType":"uint256","name":"end","type":"uint256"}],"name":"getAmountsRange","outputs":[{"internalType":"uint256[][]","name":"","type":"uint256[][]"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"getMembership","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getReceiver","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getStakerCount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getStakers","outputs":[{"internalType":"address[]","name":"","type":"address[]"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"start","type":"uint256"},{"internalType":"uint256","name":"end","type":"uint256"}],"name":"getStakersRange","outputs":[{"internalType":"address[]","name":"","type":"address[]"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getTransmitter","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"indexes","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"isAdmin","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"isMinter","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"isOwner","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_loka","type":"address"}],"name":"setLoka","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"key","type":"address"},{"internalType":"uint256","name":"level","type":"uint256"}],"name":"setMembership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address payable","name":"_receiver","type":"address"}],"name":"setReceiver","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"contract Transmitter","name":"_transmitter","type":"address"}],"name":"setTransmitter","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"continent","type":"uint256"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"stake","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"uint256","name":"continent","type":"uint256"}],"name":"stakeOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"index","type":"uint256"}],"name":"stakeOfContinent","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"uint256","name":"","type":"uint256"}],"name":"stakes","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"name":"totalStakeOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalStakeOfContinent","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwner","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"continent","type":"uint256"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"unstake","outputs":[],"stateMutability":"nonpayable","type":"function"}]

60806040523480156200001157600080fd5b5060405162003146380380620031468339818101604052810190620000379190620004bb565b62000047620000f260201b60201c565b6000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550620000a86200009a620000f260201b60201c565b6001620000fa60201b60201c565b620000b982620001e460201b60201c565b620000ca816200027a60201b60201c565b620000ea620000de620000f260201b60201c565b6200031060201b60201c565b5050620005e3565b600033905090565b6200010a620003a660201b60201c565b6200014c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620001439062000589565b60405180910390fd5b80600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff167f65efeaf737ce094d287661b6a56bb530dce1fc30853708d1912a74f8ae65ffbb82604051620001d89190620005c6565b60405180910390a25050565b620001f4620003a660201b60201c565b62000236576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200022d9062000589565b60405180910390fd5b80600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6200028a620003a660201b60201c565b620002cc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620002c39062000589565b60405180910390fd5b80600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b62000320620003a660201b60201c565b62000362576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620003599062000589565b60405180910390fd5b80600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16620003f0620000f260201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1614905090565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006200043e8262000411565b9050919050565b620004508162000431565b81146200045c57600080fd5b50565b600081519050620004708162000445565b92915050565b6000620004838262000431565b9050919050565b620004958162000476565b8114620004a157600080fd5b50565b600081519050620004b5816200048a565b92915050565b60008060408385031215620004d557620004d46200040c565b5b6000620004e5858286016200045f565b9250506020620004f885828601620004a4565b9150509250929050565b600082825260208201905092915050565b7f4d656d62657273686970203a2063616c6c6572206973206e6f7420746865206f60008201527f776e657200000000000000000000000000000000000000000000000000000000602082015250565b60006200057160248362000502565b91506200057e8262000513565b604082019050919050565b60006020820190508181036000830152620005a48162000562565b9050919050565b6000819050919050565b620005c081620005ab565b82525050565b6000602082019050620005dd6000830184620005b5565b92915050565b612b5380620005f36000396000f3fe608060405234801561001057600080fd5b50600436106101cf5760003560e01c8063718da7ee116101045780639e2c8a5b116100a2578063d321fe2911610071578063d321fe2914610568578063e3f56eaa14610586578063ec95c4c9146105b6578063ed87169c146105e6576101cf565b80639e2c8a5b146104e25780639fe32732146104fe578063b6db75a01461051a578063cd401c1d14610538576101cf565b80638610d094116100de5780638610d0941461045a578063874dae881461048a5780638f32d59b146104a657806398aca922146104c4576101cf565b8063718da7ee146103f25780637b0472f01461040e57806384c6fbba1461042a576101cf565b80634fb2e45d11610171578063584b62a11161014b578063584b62a11461034457806359f7cf50146103745780635bb5d121146103a45780636b701c95146103c2576101cf565b80634fb2e45d146102ee57806350e59eb31461030a57806355d95e0b14610328576101cf565b80632045d91f116101ad5780632045d91f146102405780632db78d931461027057806334c5a044146102a057806343352d61146102d0576101cf565b80630b5f0f1f146101d45780631319649d146101f25780631643c7f514610210575b600080fd5b6101dc610616565b6040516101e99190611f38565b60405180910390f35b6101fa610631565b6040516102079190611f38565b60405180910390f35b61022a60048036038101906102259190611ff1565b61063e565b60405161023791906120ef565b60405180910390f35b61025a60048036038101906102559190612111565b610724565b60405161026791906120ef565b60405180910390f35b61028a60048036038101906102859190612151565b610861565b6040516102979190611f38565b60405180910390f35b6102ba60048036038101906102b59190612151565b610879565b6040516102c79190611f38565b60405180910390f35b6102d86108c2565b6040516102e5919061223c565b60405180910390f35b61030860048036038101906103039190612151565b610950565b005b610312610a71565b60405161031f9190612279565b60405180910390f35b610342600480360381019061033d9190612151565b610ad1565b005b61035e60048036038101906103599190611ff1565b610b5c565b60405161036b9190611f38565b60405180910390f35b61038e60048036038101906103899190612294565b610b81565b60405161039b91906123f2565b60405180910390f35b6103ac610d51565b6040516103b99190612423565b60405180910390f35b6103dc60048036038101906103d79190612597565b610d7b565b6040516103e991906123f2565b60405180910390f35b61040c60048036038101906104079190612631565b610f20565b005b61042860048036038101906104239190612111565b610fab565b005b610444600480360381019061043f9190612294565b6113a3565b60405161045191906120ef565b60405180910390f35b610474600480360381019061046f9190612111565b61144b565b604051610481919061223c565b60405180910390f35b6104a4600480360381019061049f9190611ff1565b611566565b005b6104ae611643565b6040516104bb9190612279565b60405180910390f35b6104cc6116a1565b6040516104d99190612423565b60405180910390f35b6104fc60048036038101906104f79190612111565b6116cb565b005b6105186004803603810190610513919061269c565b611a53565b005b610522611ade565b60405161052f9190612279565b60405180910390f35b610552600480360381019061054d91906126c9565b611b2e565b60405161055f91906123f2565b60405180910390f35b610570611d1a565b60405161057d91906120ef565b60405180910390f35b6105a0600480360381019061059b9190612151565b611e45565b6040516105ad9190611f38565b60405180910390f35b6105d060048036038101906105cb9190612294565b611e9f565b6040516105dd9190611f38565b60405180910390f35b61060060048036038101906105fb9190611ff1565b611ebc565b60405161060d9190611f38565b60405180910390f35b60006006600080815260200190815260200160002054905090565b6000600580549050905090565b606060008267ffffffffffffffff81111561065c5761065b612454565b5b60405190808252806020026020018201604052801561068a5781602001602082028036833780820191505090505b50905060005b8381101561071957600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828152602001908152602001600020548282815181106106fc576106fb61271c565b5b602002602001018181525050806107129061277a565b9050610690565b508091505092915050565b60606000838361073491906127c3565b67ffffffffffffffff81111561074d5761074c612454565b5b60405190808252806020026020018201604052801561077b5781602001602082028036833780820191505090505b50905060008490505b838110156108565760076000600583815481106107a4576107a361271c565b5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008081526020019081526020016000205482868361082891906127c3565b815181106108395761083861271c565b5b6020026020010181815250508061084f9061277a565b9050610784565b508091505092915050565b60086020528060005260406000206000915090505481565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6060600580548060200260200160405190810160405280929190818152602001828054801561094657602002820191906000526020600020905b8160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190600101908083116108fc575b5050505050905090565b610958611643565b610997576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161098e9061287a565b60405180910390fd5b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690506109c8826001611566565b6109d3816000611566565b816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8934ce4adea8d9ce0d714d2c22b86790e41b7731c84b926fbbdc1d40ff6533c960405160405180910390a35050565b6000610a7b611643565b80610acc5750600b60016000610a8f611f17565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054145b905090565b610ad9611643565b610b18576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b0f9061287a565b60405180910390fd5b80600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6007602052816000526040600020602052806000526040600020600091509150505481565b6060600060058054905067ffffffffffffffff811115610ba457610ba3612454565b5b604051908082528060200260200182016040528015610bd757816020015b6060815260200190600190039081610bc25790505b50905060005b600580549050811015610d47578367ffffffffffffffff811115610c0457610c03612454565b5b604051908082528060200260200182016040528015610c325781602001602082028036833780820191505090505b50828281518110610c4657610c4561271c565b5b602002602001018190525060005b84811015610d35576007600060058481548110610c7457610c7361271c565b5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082815260200190815260200160002054838381518110610cfe57610cfd61271c565b5b60200260200101518281518110610d1857610d1761271c565b5b60200260200101818152505080610d2e9061277a565b9050610c54565b5080610d409061277a565b9050610bdd565b5080915050919050565b6000600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606000825167ffffffffffffffff811115610d9a57610d99612454565b5b604051908082528060200260200182016040528015610dcd57816020015b6060815260200190600190039081610db85790505b50905060005b8351811015610f15578467ffffffffffffffff811115610df657610df5612454565b5b604051908082528060200260200182016040528015610e245781602001602082028036833780820191505090505b50828281518110610e3857610e3761271c565b5b602002602001018190525060005b85811015610f035760076000868481518110610e6557610e6461271c565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082815260200190815260200160002054838381518110610ecc57610ecb61271c565b5b60200260200101518281518110610ee657610ee561271c565b5b60200260200101818152505080610efc9061277a565b9050610e46565b5080610f0e9061277a565b9050610dd3565b508091505092915050565b610f28611643565b610f67576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f5e9061287a565b60405180910390fd5b80600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60008211610fee576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fe5906128e6565b60405180910390fd5b60008111611031576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161102890612952565b60405180910390fd5b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16632c54de4f600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1661109a611f17565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16856040518563ffffffff1660e01b81526004016110dd94939291906129d1565b600060405180830381600087803b1580156110f757600080fd5b505af115801561110b573d6000803e3d6000fd5b50505050806006600084815260200190815260200160002060008282546111329190612a16565b925050819055508060066000808152602001908152602001600020600082825461115c9190612a16565b925050819055508060076000611170611f17565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600084815260200190815260200160002060008282546111ca9190612a16565b9250508190555080600760006111de611f17565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600080815260200190815260200160002060008282546112389190612a16565b9250508190555060006008600061124d611f17565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541415611349576005611298611f17565b9080600181540180825580915050600190039060005260206000200160009091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506005805490506008600061130a611f17565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b81611352611f17565b73ffffffffffffffffffffffffffffffffffffffff167f5af417134f72a9d41143ace85b0a26dce6f550f894f2cbc1eeee8810603d91b6836040516113979190611f38565b60405180910390a35050565b606060008267ffffffffffffffff8111156113c1576113c0612454565b5b6040519080825280602002602001820160405280156113ef5781602001602082028036833780820191505090505b50905060005b838110156114415760066000828152602001908152602001600020548282815181106114245761142361271c565b5b6020026020010181815250508061143a9061277a565b90506113f5565b5080915050919050565b60606000838361145b91906127c3565b67ffffffffffffffff81111561147457611473612454565b5b6040519080825280602002602001820160405280156114a25781602001602082028036833780820191505090505b50905060008490505b8381101561155b57600581815481106114c7576114c661271c565b5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168286836114ff91906127c3565b815181106115105761150f61271c565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050806115549061277a565b90506114ab565b508091505092915050565b61156e611643565b6115ad576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115a49061287a565b60405180910390fd5b80600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff167f65efeaf737ce094d287661b6a56bb530dce1fc30853708d1912a74f8ae65ffbb826040516116379190611f38565b60405180910390a25050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16611685611f17565b73ffffffffffffffffffffffffffffffffffffffff1614905090565b6000600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6000821161170e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611705906128e6565b60405180910390fd5b60008111611751576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161174890612952565b60405180910390fd5b806007600061175e611f17565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008481526020019081526020016000205410156117eb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117e290612ab8565b60405180910390fd5b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16632c54de4f600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16611877611f17565b856040518563ffffffff1660e01b81526004016118979493929190612ad8565b600060405180830381600087803b1580156118b157600080fd5b505af11580156118c5573d6000803e3d6000fd5b50505050806006600084815260200190815260200160002060008282546118ec91906127c3565b925050819055508060066000808152602001908152602001600020600082825461191691906127c3565b92505081905550806007600061192a611f17565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000848152602001908152602001600020600082825461198491906127c3565b925050819055508060076000611998611f17565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600080815260200190815260200160002060008282546119f291906127c3565b9250508190555081611a02611f17565b73ffffffffffffffffffffffffffffffffffffffff167ff960dbf9e5d0682f7a298ed974e33a28b4464914b7a2bfac12ae419a9afeb28083604051611a479190611f38565b60405180910390a35050565b611a5b611643565b611a9a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a919061287a565b60405180910390fd5b80600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60006001806000611aed611f17565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414905090565b606060008383611b3e91906127c3565b67ffffffffffffffff811115611b5757611b56612454565b5b604051908082528060200260200182016040528015611b8a57816020015b6060815260200190600190039081611b755790505b50905060008490505b83811015611d0e578567ffffffffffffffff811115611bb557611bb4612454565b5b604051908082528060200260200182016040528015611be35781602001602082028036833780820191505090505b50828683611bf191906127c3565b81518110611c0257611c0161271c565b5b602002602001018190525060005b86811015611cfc576007600060058481548110611c3057611c2f61271c565b5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082815260200190815260200160002054838784611cb491906127c3565b81518110611cc557611cc461271c565b5b60200260200101518281518110611cdf57611cde61271c565b5b60200260200101818152505080611cf59061277a565b9050611c10565b5080611d079061277a565b9050611b93565b50809150509392505050565b6060600060058054905067ffffffffffffffff811115611d3d57611d3c612454565b5b604051908082528060200260200182016040528015611d6b5781602001602082028036833780820191505090505b50905060005b600580549050811015611e3d576007600060058381548110611d9657611d9561271c565b5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600080815260200190815260200160002054828281518110611e2057611e1f61271c565b5b60200260200101818152505080611e369061277a565b9050611d71565b508091505090565b6000600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000808152602001908152602001600020549050919050565b600060066000838152602001908152602001600020549050919050565b6000600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600083815260200190815260200160002054905092915050565b600033905090565b6000819050919050565b611f3281611f1f565b82525050565b6000602082019050611f4d6000830184611f29565b92915050565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000611f9282611f67565b9050919050565b611fa281611f87565b8114611fad57600080fd5b50565b600081359050611fbf81611f99565b92915050565b611fce81611f1f565b8114611fd957600080fd5b50565b600081359050611feb81611fc5565b92915050565b6000806040838503121561200857612007611f5d565b5b600061201685828601611fb0565b925050602061202785828601611fdc565b9150509250929050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b61206681611f1f565b82525050565b6000612078838361205d565b60208301905092915050565b6000602082019050919050565b600061209c82612031565b6120a6818561203c565b93506120b18361204d565b8060005b838110156120e25781516120c9888261206c565b97506120d483612084565b9250506001810190506120b5565b5085935050505092915050565b600060208201905081810360008301526121098184612091565b905092915050565b6000806040838503121561212857612127611f5d565b5b600061213685828601611fdc565b925050602061214785828601611fdc565b9150509250929050565b60006020828403121561216757612166611f5d565b5b600061217584828501611fb0565b91505092915050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b6121b381611f87565b82525050565b60006121c583836121aa565b60208301905092915050565b6000602082019050919050565b60006121e98261217e565b6121f38185612189565b93506121fe8361219a565b8060005b8381101561222f57815161221688826121b9565b9750612221836121d1565b925050600181019050612202565b5085935050505092915050565b6000602082019050818103600083015261225681846121de565b905092915050565b60008115159050919050565b6122738161225e565b82525050565b600060208201905061228e600083018461226a565b92915050565b6000602082840312156122aa576122a9611f5d565b5b60006122b884828501611fdc565b91505092915050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b600082825260208201905092915050565b600061230982612031565b61231381856122ed565b935061231e8361204d565b8060005b8381101561234f578151612336888261206c565b975061234183612084565b925050600181019050612322565b5085935050505092915050565b600061236883836122fe565b905092915050565b6000602082019050919050565b6000612388826122c1565b61239281856122cc565b9350836020820285016123a4856122dd565b8060005b858110156123e057848403895281516123c1858261235c565b94506123cc83612370565b925060208a019950506001810190506123a8565b50829750879550505050505092915050565b6000602082019050818103600083015261240c818461237d565b905092915050565b61241d81611f87565b82525050565b60006020820190506124386000830184612414565b92915050565b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b61248c82612443565b810181811067ffffffffffffffff821117156124ab576124aa612454565b5b80604052505050565b60006124be611f53565b90506124ca8282612483565b919050565b600067ffffffffffffffff8211156124ea576124e9612454565b5b602082029050602081019050919050565b600080fd5b600061251361250e846124cf565b6124b4565b90508083825260208201905060208402830185811115612536576125356124fb565b5b835b8181101561255f578061254b8882611fb0565b845260208401935050602081019050612538565b5050509392505050565b600082601f83011261257e5761257d61243e565b5b813561258e848260208601612500565b91505092915050565b600080604083850312156125ae576125ad611f5d565b5b60006125bc85828601611fdc565b925050602083013567ffffffffffffffff8111156125dd576125dc611f62565b5b6125e985828601612569565b9150509250929050565b60006125fe82611f67565b9050919050565b61260e816125f3565b811461261957600080fd5b50565b60008135905061262b81612605565b92915050565b60006020828403121561264757612646611f5d565b5b60006126558482850161261c565b91505092915050565b600061266982611f87565b9050919050565b6126798161265e565b811461268457600080fd5b50565b60008135905061269681612670565b92915050565b6000602082840312156126b2576126b1611f5d565b5b60006126c084828501612687565b91505092915050565b6000806000606084860312156126e2576126e1611f5d565b5b60006126f086828701611fdc565b935050602061270186828701611fdc565b925050604061271286828701611fdc565b9150509250925092565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061278582611f1f565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8214156127b8576127b761274b565b5b600182019050919050565b60006127ce82611f1f565b91506127d983611f1f565b9250828210156127ec576127eb61274b565b5b828203905092915050565b600082825260208201905092915050565b7f4d656d62657273686970203a2063616c6c6572206973206e6f7420746865206f60008201527f776e657200000000000000000000000000000000000000000000000000000000602082015250565b60006128646024836127f7565b915061286f82612808565b604082019050919050565b6000602082019050818103600083015261289381612857565b9050919050565b7f496e76616c696420696e64657800000000000000000000000000000000000000600082015250565b60006128d0600d836127f7565b91506128db8261289a565b602082019050919050565b600060208201905081810360008301526128ff816128c3565b9050919050565b7f496e76616c696420616d6f756e74000000000000000000000000000000000000600082015250565b600061293c600e836127f7565b915061294782612906565b602082019050919050565b6000602082019050818103600083015261296b8161292f565b9050919050565b6000819050919050565b600061299761299261298d84611f67565b612972565b611f67565b9050919050565b60006129a98261297c565b9050919050565b60006129bb8261299e565b9050919050565b6129cb816129b0565b82525050565b60006080820190506129e66000830187612414565b6129f36020830186612414565b612a0060408301856129c2565b612a0d6060830184611f29565b95945050505050565b6000612a2182611f1f565b9150612a2c83611f1f565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115612a6157612a6061274b565b5b828201905092915050565b7f496e73756666696369656e742062616c616e6365000000000000000000000000600082015250565b6000612aa26014836127f7565b9150612aad82612a6c565b602082019050919050565b60006020820190508181036000830152612ad181612a95565b9050919050565b6000608082019050612aed6000830187612414565b612afa60208301866129c2565b612b076040830185612414565b612b146060830184611f29565b9594505050505056fea2646970667358221220d16bd7c7279aa7805b0e742c2ac770085d319cdaabeb0204513e546f7de3997f64736f6c634300080a003300000000000000000000000061e90a50137e1f645c9ef4a0d3a4f01477738406000000000000000000000000be681f8b55a765c048dc2bcdfd5ab05d839bb4c0

Deployed Bytecode

0x608060405234801561001057600080fd5b50600436106101cf5760003560e01c8063718da7ee116101045780639e2c8a5b116100a2578063d321fe2911610071578063d321fe2914610568578063e3f56eaa14610586578063ec95c4c9146105b6578063ed87169c146105e6576101cf565b80639e2c8a5b146104e25780639fe32732146104fe578063b6db75a01461051a578063cd401c1d14610538576101cf565b80638610d094116100de5780638610d0941461045a578063874dae881461048a5780638f32d59b146104a657806398aca922146104c4576101cf565b8063718da7ee146103f25780637b0472f01461040e57806384c6fbba1461042a576101cf565b80634fb2e45d11610171578063584b62a11161014b578063584b62a11461034457806359f7cf50146103745780635bb5d121146103a45780636b701c95146103c2576101cf565b80634fb2e45d146102ee57806350e59eb31461030a57806355d95e0b14610328576101cf565b80632045d91f116101ad5780632045d91f146102405780632db78d931461027057806334c5a044146102a057806343352d61146102d0576101cf565b80630b5f0f1f146101d45780631319649d146101f25780631643c7f514610210575b600080fd5b6101dc610616565b6040516101e99190611f38565b60405180910390f35b6101fa610631565b6040516102079190611f38565b60405180910390f35b61022a60048036038101906102259190611ff1565b61063e565b60405161023791906120ef565b60405180910390f35b61025a60048036038101906102559190612111565b610724565b60405161026791906120ef565b60405180910390f35b61028a60048036038101906102859190612151565b610861565b6040516102979190611f38565b60405180910390f35b6102ba60048036038101906102b59190612151565b610879565b6040516102c79190611f38565b60405180910390f35b6102d86108c2565b6040516102e5919061223c565b60405180910390f35b61030860048036038101906103039190612151565b610950565b005b610312610a71565b60405161031f9190612279565b60405180910390f35b610342600480360381019061033d9190612151565b610ad1565b005b61035e60048036038101906103599190611ff1565b610b5c565b60405161036b9190611f38565b60405180910390f35b61038e60048036038101906103899190612294565b610b81565b60405161039b91906123f2565b60405180910390f35b6103ac610d51565b6040516103b99190612423565b60405180910390f35b6103dc60048036038101906103d79190612597565b610d7b565b6040516103e991906123f2565b60405180910390f35b61040c60048036038101906104079190612631565b610f20565b005b61042860048036038101906104239190612111565b610fab565b005b610444600480360381019061043f9190612294565b6113a3565b60405161045191906120ef565b60405180910390f35b610474600480360381019061046f9190612111565b61144b565b604051610481919061223c565b60405180910390f35b6104a4600480360381019061049f9190611ff1565b611566565b005b6104ae611643565b6040516104bb9190612279565b60405180910390f35b6104cc6116a1565b6040516104d99190612423565b60405180910390f35b6104fc60048036038101906104f79190612111565b6116cb565b005b6105186004803603810190610513919061269c565b611a53565b005b610522611ade565b60405161052f9190612279565b60405180910390f35b610552600480360381019061054d91906126c9565b611b2e565b60405161055f91906123f2565b60405180910390f35b610570611d1a565b60405161057d91906120ef565b60405180910390f35b6105a0600480360381019061059b9190612151565b611e45565b6040516105ad9190611f38565b60405180910390f35b6105d060048036038101906105cb9190612294565b611e9f565b6040516105dd9190611f38565b60405180910390f35b61060060048036038101906105fb9190611ff1565b611ebc565b60405161060d9190611f38565b60405180910390f35b60006006600080815260200190815260200160002054905090565b6000600580549050905090565b606060008267ffffffffffffffff81111561065c5761065b612454565b5b60405190808252806020026020018201604052801561068a5781602001602082028036833780820191505090505b50905060005b8381101561071957600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828152602001908152602001600020548282815181106106fc576106fb61271c565b5b602002602001018181525050806107129061277a565b9050610690565b508091505092915050565b60606000838361073491906127c3565b67ffffffffffffffff81111561074d5761074c612454565b5b60405190808252806020026020018201604052801561077b5781602001602082028036833780820191505090505b50905060008490505b838110156108565760076000600583815481106107a4576107a361271c565b5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008081526020019081526020016000205482868361082891906127c3565b815181106108395761083861271c565b5b6020026020010181815250508061084f9061277a565b9050610784565b508091505092915050565b60086020528060005260406000206000915090505481565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6060600580548060200260200160405190810160405280929190818152602001828054801561094657602002820191906000526020600020905b8160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190600101908083116108fc575b5050505050905090565b610958611643565b610997576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161098e9061287a565b60405180910390fd5b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690506109c8826001611566565b6109d3816000611566565b816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8934ce4adea8d9ce0d714d2c22b86790e41b7731c84b926fbbdc1d40ff6533c960405160405180910390a35050565b6000610a7b611643565b80610acc5750600b60016000610a8f611f17565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054145b905090565b610ad9611643565b610b18576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b0f9061287a565b60405180910390fd5b80600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6007602052816000526040600020602052806000526040600020600091509150505481565b6060600060058054905067ffffffffffffffff811115610ba457610ba3612454565b5b604051908082528060200260200182016040528015610bd757816020015b6060815260200190600190039081610bc25790505b50905060005b600580549050811015610d47578367ffffffffffffffff811115610c0457610c03612454565b5b604051908082528060200260200182016040528015610c325781602001602082028036833780820191505090505b50828281518110610c4657610c4561271c565b5b602002602001018190525060005b84811015610d35576007600060058481548110610c7457610c7361271c565b5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082815260200190815260200160002054838381518110610cfe57610cfd61271c565b5b60200260200101518281518110610d1857610d1761271c565b5b60200260200101818152505080610d2e9061277a565b9050610c54565b5080610d409061277a565b9050610bdd565b5080915050919050565b6000600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606000825167ffffffffffffffff811115610d9a57610d99612454565b5b604051908082528060200260200182016040528015610dcd57816020015b6060815260200190600190039081610db85790505b50905060005b8351811015610f15578467ffffffffffffffff811115610df657610df5612454565b5b604051908082528060200260200182016040528015610e245781602001602082028036833780820191505090505b50828281518110610e3857610e3761271c565b5b602002602001018190525060005b85811015610f035760076000868481518110610e6557610e6461271c565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082815260200190815260200160002054838381518110610ecc57610ecb61271c565b5b60200260200101518281518110610ee657610ee561271c565b5b60200260200101818152505080610efc9061277a565b9050610e46565b5080610f0e9061277a565b9050610dd3565b508091505092915050565b610f28611643565b610f67576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f5e9061287a565b60405180910390fd5b80600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60008211610fee576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fe5906128e6565b60405180910390fd5b60008111611031576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161102890612952565b60405180910390fd5b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16632c54de4f600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1661109a611f17565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16856040518563ffffffff1660e01b81526004016110dd94939291906129d1565b600060405180830381600087803b1580156110f757600080fd5b505af115801561110b573d6000803e3d6000fd5b50505050806006600084815260200190815260200160002060008282546111329190612a16565b925050819055508060066000808152602001908152602001600020600082825461115c9190612a16565b925050819055508060076000611170611f17565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600084815260200190815260200160002060008282546111ca9190612a16565b9250508190555080600760006111de611f17565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600080815260200190815260200160002060008282546112389190612a16565b9250508190555060006008600061124d611f17565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541415611349576005611298611f17565b9080600181540180825580915050600190039060005260206000200160009091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506005805490506008600061130a611f17565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b81611352611f17565b73ffffffffffffffffffffffffffffffffffffffff167f5af417134f72a9d41143ace85b0a26dce6f550f894f2cbc1eeee8810603d91b6836040516113979190611f38565b60405180910390a35050565b606060008267ffffffffffffffff8111156113c1576113c0612454565b5b6040519080825280602002602001820160405280156113ef5781602001602082028036833780820191505090505b50905060005b838110156114415760066000828152602001908152602001600020548282815181106114245761142361271c565b5b6020026020010181815250508061143a9061277a565b90506113f5565b5080915050919050565b60606000838361145b91906127c3565b67ffffffffffffffff81111561147457611473612454565b5b6040519080825280602002602001820160405280156114a25781602001602082028036833780820191505090505b50905060008490505b8381101561155b57600581815481106114c7576114c661271c565b5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168286836114ff91906127c3565b815181106115105761150f61271c565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050806115549061277a565b90506114ab565b508091505092915050565b61156e611643565b6115ad576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115a49061287a565b60405180910390fd5b80600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff167f65efeaf737ce094d287661b6a56bb530dce1fc30853708d1912a74f8ae65ffbb826040516116379190611f38565b60405180910390a25050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16611685611f17565b73ffffffffffffffffffffffffffffffffffffffff1614905090565b6000600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6000821161170e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611705906128e6565b60405180910390fd5b60008111611751576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161174890612952565b60405180910390fd5b806007600061175e611f17565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008481526020019081526020016000205410156117eb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117e290612ab8565b60405180910390fd5b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16632c54de4f600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16611877611f17565b856040518563ffffffff1660e01b81526004016118979493929190612ad8565b600060405180830381600087803b1580156118b157600080fd5b505af11580156118c5573d6000803e3d6000fd5b50505050806006600084815260200190815260200160002060008282546118ec91906127c3565b925050819055508060066000808152602001908152602001600020600082825461191691906127c3565b92505081905550806007600061192a611f17565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000848152602001908152602001600020600082825461198491906127c3565b925050819055508060076000611998611f17565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600080815260200190815260200160002060008282546119f291906127c3565b9250508190555081611a02611f17565b73ffffffffffffffffffffffffffffffffffffffff167ff960dbf9e5d0682f7a298ed974e33a28b4464914b7a2bfac12ae419a9afeb28083604051611a479190611f38565b60405180910390a35050565b611a5b611643565b611a9a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a919061287a565b60405180910390fd5b80600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60006001806000611aed611f17565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414905090565b606060008383611b3e91906127c3565b67ffffffffffffffff811115611b5757611b56612454565b5b604051908082528060200260200182016040528015611b8a57816020015b6060815260200190600190039081611b755790505b50905060008490505b83811015611d0e578567ffffffffffffffff811115611bb557611bb4612454565b5b604051908082528060200260200182016040528015611be35781602001602082028036833780820191505090505b50828683611bf191906127c3565b81518110611c0257611c0161271c565b5b602002602001018190525060005b86811015611cfc576007600060058481548110611c3057611c2f61271c565b5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082815260200190815260200160002054838784611cb491906127c3565b81518110611cc557611cc461271c565b5b60200260200101518281518110611cdf57611cde61271c565b5b60200260200101818152505080611cf59061277a565b9050611c10565b5080611d079061277a565b9050611b93565b50809150509392505050565b6060600060058054905067ffffffffffffffff811115611d3d57611d3c612454565b5b604051908082528060200260200182016040528015611d6b5781602001602082028036833780820191505090505b50905060005b600580549050811015611e3d576007600060058381548110611d9657611d9561271c565b5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600080815260200190815260200160002054828281518110611e2057611e1f61271c565b5b60200260200101818152505080611e369061277a565b9050611d71565b508091505090565b6000600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000808152602001908152602001600020549050919050565b600060066000838152602001908152602001600020549050919050565b6000600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600083815260200190815260200160002054905092915050565b600033905090565b6000819050919050565b611f3281611f1f565b82525050565b6000602082019050611f4d6000830184611f29565b92915050565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000611f9282611f67565b9050919050565b611fa281611f87565b8114611fad57600080fd5b50565b600081359050611fbf81611f99565b92915050565b611fce81611f1f565b8114611fd957600080fd5b50565b600081359050611feb81611fc5565b92915050565b6000806040838503121561200857612007611f5d565b5b600061201685828601611fb0565b925050602061202785828601611fdc565b9150509250929050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b61206681611f1f565b82525050565b6000612078838361205d565b60208301905092915050565b6000602082019050919050565b600061209c82612031565b6120a6818561203c565b93506120b18361204d565b8060005b838110156120e25781516120c9888261206c565b97506120d483612084565b9250506001810190506120b5565b5085935050505092915050565b600060208201905081810360008301526121098184612091565b905092915050565b6000806040838503121561212857612127611f5d565b5b600061213685828601611fdc565b925050602061214785828601611fdc565b9150509250929050565b60006020828403121561216757612166611f5d565b5b600061217584828501611fb0565b91505092915050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b6121b381611f87565b82525050565b60006121c583836121aa565b60208301905092915050565b6000602082019050919050565b60006121e98261217e565b6121f38185612189565b93506121fe8361219a565b8060005b8381101561222f57815161221688826121b9565b9750612221836121d1565b925050600181019050612202565b5085935050505092915050565b6000602082019050818103600083015261225681846121de565b905092915050565b60008115159050919050565b6122738161225e565b82525050565b600060208201905061228e600083018461226a565b92915050565b6000602082840312156122aa576122a9611f5d565b5b60006122b884828501611fdc565b91505092915050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b600082825260208201905092915050565b600061230982612031565b61231381856122ed565b935061231e8361204d565b8060005b8381101561234f578151612336888261206c565b975061234183612084565b925050600181019050612322565b5085935050505092915050565b600061236883836122fe565b905092915050565b6000602082019050919050565b6000612388826122c1565b61239281856122cc565b9350836020820285016123a4856122dd565b8060005b858110156123e057848403895281516123c1858261235c565b94506123cc83612370565b925060208a019950506001810190506123a8565b50829750879550505050505092915050565b6000602082019050818103600083015261240c818461237d565b905092915050565b61241d81611f87565b82525050565b60006020820190506124386000830184612414565b92915050565b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b61248c82612443565b810181811067ffffffffffffffff821117156124ab576124aa612454565b5b80604052505050565b60006124be611f53565b90506124ca8282612483565b919050565b600067ffffffffffffffff8211156124ea576124e9612454565b5b602082029050602081019050919050565b600080fd5b600061251361250e846124cf565b6124b4565b90508083825260208201905060208402830185811115612536576125356124fb565b5b835b8181101561255f578061254b8882611fb0565b845260208401935050602081019050612538565b5050509392505050565b600082601f83011261257e5761257d61243e565b5b813561258e848260208601612500565b91505092915050565b600080604083850312156125ae576125ad611f5d565b5b60006125bc85828601611fdc565b925050602083013567ffffffffffffffff8111156125dd576125dc611f62565b5b6125e985828601612569565b9150509250929050565b60006125fe82611f67565b9050919050565b61260e816125f3565b811461261957600080fd5b50565b60008135905061262b81612605565b92915050565b60006020828403121561264757612646611f5d565b5b60006126558482850161261c565b91505092915050565b600061266982611f87565b9050919050565b6126798161265e565b811461268457600080fd5b50565b60008135905061269681612670565b92915050565b6000602082840312156126b2576126b1611f5d565b5b60006126c084828501612687565b91505092915050565b6000806000606084860312156126e2576126e1611f5d565b5b60006126f086828701611fdc565b935050602061270186828701611fdc565b925050604061271286828701611fdc565b9150509250925092565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061278582611f1f565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8214156127b8576127b761274b565b5b600182019050919050565b60006127ce82611f1f565b91506127d983611f1f565b9250828210156127ec576127eb61274b565b5b828203905092915050565b600082825260208201905092915050565b7f4d656d62657273686970203a2063616c6c6572206973206e6f7420746865206f60008201527f776e657200000000000000000000000000000000000000000000000000000000602082015250565b60006128646024836127f7565b915061286f82612808565b604082019050919050565b6000602082019050818103600083015261289381612857565b9050919050565b7f496e76616c696420696e64657800000000000000000000000000000000000000600082015250565b60006128d0600d836127f7565b91506128db8261289a565b602082019050919050565b600060208201905081810360008301526128ff816128c3565b9050919050565b7f496e76616c696420616d6f756e74000000000000000000000000000000000000600082015250565b600061293c600e836127f7565b915061294782612906565b602082019050919050565b6000602082019050818103600083015261296b8161292f565b9050919050565b6000819050919050565b600061299761299261298d84611f67565b612972565b611f67565b9050919050565b60006129a98261297c565b9050919050565b60006129bb8261299e565b9050919050565b6129cb816129b0565b82525050565b60006080820190506129e66000830187612414565b6129f36020830186612414565b612a0060408301856129c2565b612a0d6060830184611f29565b95945050505050565b6000612a2182611f1f565b9150612a2c83611f1f565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115612a6157612a6061274b565b5b828201905092915050565b7f496e73756666696369656e742062616c616e6365000000000000000000000000600082015250565b6000612aa26014836127f7565b9150612aad82612a6c565b602082019050919050565b60006020820190508181036000830152612ad181612a95565b9050919050565b6000608082019050612aed6000830187612414565b612afa60208301866129c2565b612b076040830185612414565b612b146060830184611f29565b9594505050505056fea2646970667358221220d16bd7c7279aa7805b0e742c2ac770085d319cdaabeb0204513e546f7de3997f64736f6c634300080a0033

Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)

00000000000000000000000061e90a50137e1f645c9ef4a0d3a4f01477738406000000000000000000000000be681f8b55a765c048dc2bcdfd5ab05d839bb4c0

-----Decoded View---------------
Arg [0] : _loka (address): 0x61E90A50137E1F645c9eF4a0d3A4f01477738406
Arg [1] : _transmitter (address): 0xBE681f8B55A765c048dC2BCdfD5Ab05d839BB4C0

-----Encoded View---------------
2 Constructor Arguments found :
Arg [0] : 00000000000000000000000061e90a50137e1f645c9ef4a0d3a4f01477738406
Arg [1] : 000000000000000000000000be681f8b55a765c048dc2bcdfd5ab05d839bb4c0


Deployed Bytecode Sourcemap

11784:5645:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17080:101;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12977:94;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16705:248;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13745:293;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12237:42;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5152:114;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13077:92;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4034:254;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5024:116;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12692:80;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12167:63;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14044:384;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12870:101;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14434:415;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12582:104;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;15278:613;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;17187:239;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13175:290;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4296:155;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4577:93;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12778:86;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15897:546;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12464:112;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4796:101;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14855:417;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13471:268;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16591:108;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16961:113;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16455:130;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17080:101;17133:7;17160:10;:13;17171:1;17160:13;;;;;;;;;;;;17153:20;;17080:101;:::o;12977:94::-;13023:7;13049;:14;;;;13042:21;;12977:94;:::o;16705:248::-;16774:16;16803:20;16840:4;16826:19;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16803:42;;16860:9;16856:68;16875:4;16873:1;:6;16856:68;;;16908:6;:13;16915:5;16908:13;;;;;;;;;;;;;;;:16;16922:1;16908:16;;;;;;;;;;;;16899:3;16903:1;16899:6;;;;;;;;:::i;:::-;;;;;;;:25;;;;;16881:3;;;;:::i;:::-;;;16856:68;;;;16942:3;16935:10;;;16705:248;;;;:::o;13745:293::-;13817:16;13845:24;13890:5;13886:3;:9;;;;:::i;:::-;13872:24;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13845:51;;13911:9;13921:5;13911:15;;13907:99;13930:3;13928:1;:5;13907:99;;;13973:6;:18;13980:7;13988:1;13980:10;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;13973:18;;;;;;;;;;;;;;;:21;13992:1;13973:21;;;;;;;;;;;;13954:7;13964:5;13962:1;:7;;;;:::i;:::-;13954:16;;;;;;;;:::i;:::-;;;;;;;:40;;;;;13935:3;;;;:::i;:::-;;;13907:99;;;;14023:7;14016:14;;;13745:293;;;;:::o;12237:42::-;;;;;;;;;;;;;;;;;:::o;5152:114::-;5213:7;5239:10;:19;5250:7;5239:19;;;;;;;;;;;;;;;;5232:26;;5152:114;;;:::o;13077:92::-;13119:16;13154:7;13147:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13077:92;:::o;4034:254::-;4499:9;:7;:9::i;:::-;4491:58;;;;;;;;;;;;:::i;:::-;;;;;;;;;4103:16:::1;4122:5:::0;::::1;;;;;;;;;;4103:24;;4138:26;4152:8;4162:1;4138:13;:26::i;:::-;4175;4189:8;4199:1;4175:13;:26::i;:::-;4220:8;4212:5;::::0;:16:::1;;;;;;;;;;;;;;;;;;4271:8;4244:36;;4261:8;4244:36;;;;;;;;;;;;4092:196;4034:254:::0;:::o;5024:116::-;5065:4;5089:9;:7;:9::i;:::-;:43;;;;5130:2;5102:10;:24;5113:12;:10;:12::i;:::-;5102:24;;;;;;;;;;;;;;;;:30;5089:43;5082:50;;5024:116;:::o;12692:80::-;4499:9;:7;:9::i;:::-;4491:58;;;;;;;;;;;;:::i;:::-;;;;;;;;;12759:5:::1;12752:4;;:12;;;;;;;;;;;;;;;;;;12692:80:::0;:::o;12167:63::-;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;14044:384::-;14098:18;14128:26;14173:7;:14;;;;14157:31;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14128:60;;14203:9;14199:197;14218:7;:14;;;;14216:1;:16;14199:197;;;14280:4;14266:19;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14253:7;14261:1;14253:10;;;;;;;;:::i;:::-;;;;;;;:32;;;;14304:9;14300:84;14319:4;14317:1;:6;14300:84;;;14363:6;:18;14370:7;14378:1;14370:10;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;14363:18;;;;;;;;;;;;;;;:21;14382:1;14363:21;;;;;;;;;;;;14347:7;14355:1;14347:10;;;;;;;;:::i;:::-;;;;;;;;14358:1;14347:13;;;;;;;;:::i;:::-;;;;;;;:37;;;;;14325:3;;;;:::i;:::-;;;14300:84;;;;14234:3;;;;:::i;:::-;;;14199:197;;;;14413:7;14406:14;;;14044:384;;;:::o;12870:101::-;12916:7;12951:11;;;;;;;;;;;12936:27;;12870:101;:::o;14434:415::-;14522:18;14552:26;14597:6;:13;14581:30;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14552:59;;14626:9;14622:195;14641:6;:13;14639:1;:15;14622:195;;;14702:4;14688:19;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14675:7;14683:1;14675:10;;;;;;;;:::i;:::-;;;;;;;:32;;;;14726:9;14722:83;14741:4;14739:1;:6;14722:83;;;14785:6;:17;14792:6;14799:1;14792:9;;;;;;;;:::i;:::-;;;;;;;;14785:17;;;;;;;;;;;;;;;:20;14803:1;14785:20;;;;;;;;;;;;14769:7;14777:1;14769:10;;;;;;;;:::i;:::-;;;;;;;;14780:1;14769:13;;;;;;;;:::i;:::-;;;;;;;:36;;;;;14747:3;;;;:::i;:::-;;;14722:83;;;;14656:3;;;;:::i;:::-;;;14622:195;;;;14834:7;14827:14;;;14434:415;;;;:::o;12582:104::-;4499:9;:7;:9::i;:::-;4491:58;;;;;;;;;;;;:::i;:::-;;;;;;;;;12669:9:::1;12658:8;;:20;;;;;;;;;;;;;;;;;;12582:104:::0;:::o;15278:613::-;15364:1;15354:9;:11;15346:37;;;;;;;;;;;;:::i;:::-;;;;;;;;;15409:1;15402:6;:8;15394:35;;;;;;;;;;;;:::i;:::-;;;;;;;;;15440:11;;;;;;;;;;;:25;;;15466:4;;;;;;;;;;;15472:12;:10;:12::i;:::-;15486:8;;;;;;;;;;;15496:6;15440:63;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15539:6;15514:10;:21;15525:9;15514:21;;;;;;;;;;;;:31;;;;;;;:::i;:::-;;;;;;;;15573:6;15556:10;:13;15567:1;15556:13;;;;;;;;;;;;:23;;;;;;;:::i;:::-;;;;;;;;15625:6;15590;:20;15597:12;:10;:12::i;:::-;15590:20;;;;;;;;;;;;;;;:31;15611:9;15590:31;;;;;;;;;;;;:41;;;;;;;:::i;:::-;;;;;;;;15669:6;15642;:20;15649:12;:10;:12::i;:::-;15642:20;;;;;;;;;;;;;;;:23;15663:1;15642:23;;;;;;;;;;;;:33;;;;;;;:::i;:::-;;;;;;;;15712:1;15689:7;:21;15697:12;:10;:12::i;:::-;15689:21;;;;;;;;;;;;;;;;:24;15686:144;;;15739:7;15752:12;:10;:12::i;:::-;15739:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15804:7;:14;;;;15780:7;:21;15788:12;:10;:12::i;:::-;15780:21;;;;;;;;;;;;;;;:38;;;;15686:144;15865:9;15851:12;:10;:12::i;:::-;15845:38;;;15876:6;15845:38;;;;;;:::i;:::-;;;;;;;;15278:613;;:::o;17187:239::-;17250:16;17279:20;17316:4;17302:19;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17279:42;;17336:9;17332:65;17351:4;17349:1;:6;17332:65;;;17384:10;:13;17395:1;17384:13;;;;;;;;;;;;17375:3;17379:1;17375:6;;;;;;;;:::i;:::-;;;;;;;:22;;;;;17357:3;;;;:::i;:::-;;;17332:65;;;;17415:3;17408:10;;;17187:239;;;:::o;13175:290::-;13248:16;13276:26;13323:5;13319:3;:9;;;;:::i;:::-;13305:24;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13276:53;;13345:9;13355:5;13345:15;;13341:90;13364:3;13362:1;:5;13341:90;;;13409:7;13417:1;13409:10;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;13388:9;13400:5;13398:1;:7;;;;:::i;:::-;13388:18;;;;;;;;:::i;:::-;;;;;;;:31;;;;;;;;;;;13369:3;;;;:::i;:::-;;;13341:90;;;;13448:9;13441:16;;;13175:290;;;;:::o;4296:155::-;4499:9;:7;:9::i;:::-;4491:58;;;;;;;;;;;;:::i;:::-;;;;;;;;;4393:5:::1;4375:10;:15;4386:3;4375:15;;;;;;;;;;;;;;;:23;;;;4432:3;4414:29;;;4437:5;4414:29;;;;;;:::i;:::-;;;;;;;;4296:155:::0;;:::o;4577:93::-;4617:4;4657:5;;;;;;;;;;;4641:21;;:12;:10;:12::i;:::-;:21;;;4634:28;;4577:93;:::o;12778:86::-;12821:7;12848:8;;;;;;;;;;;12841:15;;12778:86;:::o;15897:546::-;15985:1;15975:9;:11;15967:37;;;;;;;;;;;;:::i;:::-;;;;;;;;;16030:1;16023:6;:8;16015:35;;;;;;;;;;;;:::i;:::-;;;;;;;;;16102:6;16069;:20;16076:12;:10;:12::i;:::-;16069:20;;;;;;;;;;;;;;;:31;16090:9;16069:31;;;;;;;;;;;;:39;;16061:72;;;;;;;;;;;;:::i;:::-;;;;;;;;;16144:11;;;;;;;;;;;:25;;;16170:4;;;;;;;;;;;16176:8;;;;;;;;;;;16186:12;:10;:12::i;:::-;16200:6;16144:63;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16243:6;16218:10;:21;16229:9;16218:21;;;;;;;;;;;;:31;;;;;;;:::i;:::-;;;;;;;;16277:6;16260:10;:13;16271:1;16260:13;;;;;;;;;;;;:23;;;;;;;:::i;:::-;;;;;;;;16329:6;16294;:20;16301:12;:10;:12::i;:::-;16294:20;;;;;;;;;;;;;;;:31;16315:9;16294:31;;;;;;;;;;;;:41;;;;;;;:::i;:::-;;;;;;;;16373:6;16346;:20;16353:12;:10;:12::i;:::-;16346:20;;;;;;;;;;;;;;;:23;16367:1;16346:23;;;;;;;;;;;;:33;;;;;;;:::i;:::-;;;;;;;;16417:9;16403:12;:10;:12::i;:::-;16395:40;;;16428:6;16395:40;;;;;;:::i;:::-;;;;;;;;15897:546;;:::o;12464:112::-;4499:9;:7;:9::i;:::-;4491:58;;;;;;;;;;;;:::i;:::-;;;;;;;;;12556:12:::1;12542:11;;:26;;;;;;;;;;;;;;;;;;12464:112:::0;:::o;4796:101::-;4836:4;4888:1;4860:10;:24;4871:12;:10;:12::i;:::-;4860:24;;;;;;;;;;;;;;;;:29;4853:36;;4796:101;:::o;14855:417::-;14942:18;14972:26;15021:5;15017:3;:9;;;;:::i;:::-;15001:26;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14972:55;;15042:9;15052:5;15042:15;;15038:202;15061:3;15059:1;:5;15038:202;;;15118:4;15104:19;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15085:7;15095:5;15093:1;:7;;;;:::i;:::-;15085:16;;;;;;;;:::i;:::-;;;;;;;:38;;;;15142:9;15138:90;15157:4;15155:1;:6;15138:90;;;15207:6;:18;15214:7;15222:1;15214:10;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;15207:18;;;;;;;;;;;;;;;:21;15226:1;15207:21;;;;;;;;;;;;15185:7;15195:5;15193:1;:7;;;;:::i;:::-;15185:16;;;;;;;;:::i;:::-;;;;;;;;15202:1;15185:19;;;;;;;;:::i;:::-;;;;;;;:43;;;;;15163:3;;;;:::i;:::-;;;15138:90;;;;15066:3;;;;:::i;:::-;;;15038:202;;;;15257:7;15250:14;;;14855:417;;;;;:::o;13471:268::-;13512:16;13540:24;13581:7;:14;;;;13567:29;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13540:56;;13611:9;13607:100;13626:7;:14;;;;13624:1;:16;13607:100;;;13674:6;:18;13681:7;13689:1;13681:10;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;13674:18;;;;;;;;;;;;;;;:21;13693:1;13674:21;;;;;;;;;;;;13661:7;13669:1;13661:10;;;;;;;;:::i;:::-;;;;;;;:34;;;;;13642:3;;;;:::i;:::-;;;13607:100;;;;13724:7;13717:14;;;13471:268;:::o;16591:108::-;16648:7;16675:6;:13;16682:5;16675:13;;;;;;;;;;;;;;;:16;16689:1;16675:16;;;;;;;;;;;;16668:23;;16591:108;;;:::o;16961:113::-;17022:7;17049:10;:17;17060:5;17049:17;;;;;;;;;;;;17042:24;;16961:113;;;:::o;16455:130::-;16526:7;16553:6;:13;16560:5;16553:13;;;;;;;;;;;;;;;:24;16567:9;16553:24;;;;;;;;;;;;16546:31;;16455:130;;;;:::o;3445:98::-;3498:7;3525:10;3518:17;;3445:98;:::o;7:77:1:-;44:7;73:5;62:16;;7:77;;;:::o;90:118::-;177:24;195:5;177:24;:::i;:::-;172:3;165:37;90:118;;:::o;214:222::-;307:4;345:2;334:9;330:18;322:26;;358:71;426:1;415:9;411:17;402:6;358:71;:::i;:::-;214:222;;;;:::o;442:75::-;475:6;508:2;502:9;492:19;;442:75;:::o;523:117::-;632:1;629;622:12;646:117;755:1;752;745:12;769:126;806:7;846:42;839:5;835:54;824:65;;769:126;;;:::o;901:96::-;938:7;967:24;985:5;967:24;:::i;:::-;956:35;;901:96;;;:::o;1003:122::-;1076:24;1094:5;1076:24;:::i;:::-;1069:5;1066:35;1056:63;;1115:1;1112;1105:12;1056:63;1003:122;:::o;1131:139::-;1177:5;1215:6;1202:20;1193:29;;1231:33;1258:5;1231:33;:::i;:::-;1131:139;;;;:::o;1276:122::-;1349:24;1367:5;1349:24;:::i;:::-;1342:5;1339:35;1329:63;;1388:1;1385;1378:12;1329:63;1276:122;:::o;1404:139::-;1450:5;1488:6;1475:20;1466:29;;1504:33;1531:5;1504:33;:::i;:::-;1404:139;;;;:::o;1549:474::-;1617:6;1625;1674:2;1662:9;1653:7;1649:23;1645:32;1642:119;;;1680:79;;:::i;:::-;1642:119;1800:1;1825:53;1870:7;1861:6;1850:9;1846:22;1825:53;:::i;:::-;1815:63;;1771:117;1927:2;1953:53;1998:7;1989:6;1978:9;1974:22;1953:53;:::i;:::-;1943:63;;1898:118;1549:474;;;;;:::o;2029:114::-;2096:6;2130:5;2124:12;2114:22;;2029:114;;;:::o;2149:184::-;2248:11;2282:6;2277:3;2270:19;2322:4;2317:3;2313:14;2298:29;;2149:184;;;;:::o;2339:132::-;2406:4;2429:3;2421:11;;2459:4;2454:3;2450:14;2442:22;;2339:132;;;:::o;2477:108::-;2554:24;2572:5;2554:24;:::i;:::-;2549:3;2542:37;2477:108;;:::o;2591:179::-;2660:10;2681:46;2723:3;2715:6;2681:46;:::i;:::-;2759:4;2754:3;2750:14;2736:28;;2591:179;;;;:::o;2776:113::-;2846:4;2878;2873:3;2869:14;2861:22;;2776:113;;;:::o;2925:732::-;3044:3;3073:54;3121:5;3073:54;:::i;:::-;3143:86;3222:6;3217:3;3143:86;:::i;:::-;3136:93;;3253:56;3303:5;3253:56;:::i;:::-;3332:7;3363:1;3348:284;3373:6;3370:1;3367:13;3348:284;;;3449:6;3443:13;3476:63;3535:3;3520:13;3476:63;:::i;:::-;3469:70;;3562:60;3615:6;3562:60;:::i;:::-;3552:70;;3408:224;3395:1;3392;3388:9;3383:14;;3348:284;;;3352:14;3648:3;3641:10;;3049:608;;;2925:732;;;;:::o;3663:373::-;3806:4;3844:2;3833:9;3829:18;3821:26;;3893:9;3887:4;3883:20;3879:1;3868:9;3864:17;3857:47;3921:108;4024:4;4015:6;3921:108;:::i;:::-;3913:116;;3663:373;;;;:::o;4042:474::-;4110:6;4118;4167:2;4155:9;4146:7;4142:23;4138:32;4135:119;;;4173:79;;:::i;:::-;4135:119;4293:1;4318:53;4363:7;4354:6;4343:9;4339:22;4318:53;:::i;:::-;4308:63;;4264:117;4420:2;4446:53;4491:7;4482:6;4471:9;4467:22;4446:53;:::i;:::-;4436:63;;4391:118;4042:474;;;;;:::o;4522:329::-;4581:6;4630:2;4618:9;4609:7;4605:23;4601:32;4598:119;;;4636:79;;:::i;:::-;4598:119;4756:1;4781:53;4826:7;4817:6;4806:9;4802:22;4781:53;:::i;:::-;4771:63;;4727:117;4522:329;;;;:::o;4857:114::-;4924:6;4958:5;4952:12;4942:22;;4857:114;;;:::o;4977:184::-;5076:11;5110:6;5105:3;5098:19;5150:4;5145:3;5141:14;5126:29;;4977:184;;;;:::o;5167:132::-;5234:4;5257:3;5249:11;;5287:4;5282:3;5278:14;5270:22;;5167:132;;;:::o;5305:108::-;5382:24;5400:5;5382:24;:::i;:::-;5377:3;5370:37;5305:108;;:::o;5419:179::-;5488:10;5509:46;5551:3;5543:6;5509:46;:::i;:::-;5587:4;5582:3;5578:14;5564:28;;5419:179;;;;:::o;5604:113::-;5674:4;5706;5701:3;5697:14;5689:22;;5604:113;;;:::o;5753:732::-;5872:3;5901:54;5949:5;5901:54;:::i;:::-;5971:86;6050:6;6045:3;5971:86;:::i;:::-;5964:93;;6081:56;6131:5;6081:56;:::i;:::-;6160:7;6191:1;6176:284;6201:6;6198:1;6195:13;6176:284;;;6277:6;6271:13;6304:63;6363:3;6348:13;6304:63;:::i;:::-;6297:70;;6390:60;6443:6;6390:60;:::i;:::-;6380:70;;6236:224;6223:1;6220;6216:9;6211:14;;6176:284;;;6180:14;6476:3;6469:10;;5877:608;;;5753:732;;;;:::o;6491:373::-;6634:4;6672:2;6661:9;6657:18;6649:26;;6721:9;6715:4;6711:20;6707:1;6696:9;6692:17;6685:47;6749:108;6852:4;6843:6;6749:108;:::i;:::-;6741:116;;6491:373;;;;:::o;6870:90::-;6904:7;6947:5;6940:13;6933:21;6922:32;;6870:90;;;:::o;6966:109::-;7047:21;7062:5;7047:21;:::i;:::-;7042:3;7035:34;6966:109;;:::o;7081:210::-;7168:4;7206:2;7195:9;7191:18;7183:26;;7219:65;7281:1;7270:9;7266:17;7257:6;7219:65;:::i;:::-;7081:210;;;;:::o;7297:329::-;7356:6;7405:2;7393:9;7384:7;7380:23;7376:32;7373:119;;;7411:79;;:::i;:::-;7373:119;7531:1;7556:53;7601:7;7592:6;7581:9;7577:22;7556:53;:::i;:::-;7546:63;;7502:117;7297:329;;;;:::o;7632:139::-;7724:6;7758:5;7752:12;7742:22;;7632:139;;;:::o;7777:209::-;7901:11;7935:6;7930:3;7923:19;7975:4;7970:3;7966:14;7951:29;;7777:209;;;;:::o;7992:157::-;8084:4;8107:3;8099:11;;8137:4;8132:3;8128:14;8120:22;;7992:157;;;:::o;8155:174::-;8244:11;8278:6;8273:3;8266:19;8318:4;8313:3;8309:14;8294:29;;8155:174;;;;:::o;8365:712::-;8474:3;8503:54;8551:5;8503:54;:::i;:::-;8573:76;8642:6;8637:3;8573:76;:::i;:::-;8566:83;;8673:56;8723:5;8673:56;:::i;:::-;8752:7;8783:1;8768:284;8793:6;8790:1;8787:13;8768:284;;;8869:6;8863:13;8896:63;8955:3;8940:13;8896:63;:::i;:::-;8889:70;;8982:60;9035:6;8982:60;:::i;:::-;8972:70;;8828:224;8815:1;8812;8808:9;8803:14;;8768:284;;;8772:14;9068:3;9061:10;;8479:598;;;8365:712;;;;:::o;9083:256::-;9202:10;9237:96;9329:3;9321:6;9237:96;:::i;:::-;9223:110;;9083:256;;;;:::o;9345:138::-;9440:4;9472;9467:3;9463:14;9455:22;;9345:138;;;:::o;9523:1111::-;9692:3;9721:79;9794:5;9721:79;:::i;:::-;9816:111;9920:6;9915:3;9816:111;:::i;:::-;9809:118;;9953:3;9998:4;9990:6;9986:17;9981:3;9977:27;10028:81;10103:5;10028:81;:::i;:::-;10132:7;10163:1;10148:441;10173:6;10170:1;10167:13;10148:441;;;10244:9;10238:4;10234:20;10229:3;10222:33;10295:6;10289:13;10323:114;10432:4;10417:13;10323:114;:::i;:::-;10315:122;;10460:85;10538:6;10460:85;:::i;:::-;10450:95;;10574:4;10569:3;10565:14;10558:21;;10208:381;10195:1;10192;10188:9;10183:14;;10148:441;;;10152:14;10605:4;10598:11;;10625:3;10618:10;;9697:937;;;;;9523:1111;;;;:::o;10640:473::-;10833:4;10871:2;10860:9;10856:18;10848:26;;10920:9;10914:4;10910:20;10906:1;10895:9;10891:17;10884:47;10948:158;11101:4;11092:6;10948:158;:::i;:::-;10940:166;;10640:473;;;;:::o;11119:118::-;11206:24;11224:5;11206:24;:::i;:::-;11201:3;11194:37;11119:118;;:::o;11243:222::-;11336:4;11374:2;11363:9;11359:18;11351:26;;11387:71;11455:1;11444:9;11440:17;11431:6;11387:71;:::i;:::-;11243:222;;;;:::o;11471:117::-;11580:1;11577;11570:12;11594:102;11635:6;11686:2;11682:7;11677:2;11670:5;11666:14;11662:28;11652:38;;11594:102;;;:::o;11702:180::-;11750:77;11747:1;11740:88;11847:4;11844:1;11837:15;11871:4;11868:1;11861:15;11888:281;11971:27;11993:4;11971:27;:::i;:::-;11963:6;11959:40;12101:6;12089:10;12086:22;12065:18;12053:10;12050:34;12047:62;12044:88;;;12112:18;;:::i;:::-;12044:88;12152:10;12148:2;12141:22;11931:238;11888:281;;:::o;12175:129::-;12209:6;12236:20;;:::i;:::-;12226:30;;12265:33;12293:4;12285:6;12265:33;:::i;:::-;12175:129;;;:::o;12310:311::-;12387:4;12477:18;12469:6;12466:30;12463:56;;;12499:18;;:::i;:::-;12463:56;12549:4;12541:6;12537:17;12529:25;;12609:4;12603;12599:15;12591:23;;12310:311;;;:::o;12627:117::-;12736:1;12733;12726:12;12767:710;12863:5;12888:81;12904:64;12961:6;12904:64;:::i;:::-;12888:81;:::i;:::-;12879:90;;12989:5;13018:6;13011:5;13004:21;13052:4;13045:5;13041:16;13034:23;;13105:4;13097:6;13093:17;13085:6;13081:30;13134:3;13126:6;13123:15;13120:122;;;13153:79;;:::i;:::-;13120:122;13268:6;13251:220;13285:6;13280:3;13277:15;13251:220;;;13360:3;13389:37;13422:3;13410:10;13389:37;:::i;:::-;13384:3;13377:50;13456:4;13451:3;13447:14;13440:21;;13327:144;13311:4;13306:3;13302:14;13295:21;;13251:220;;;13255:21;12869:608;;12767:710;;;;;:::o;13500:370::-;13571:5;13620:3;13613:4;13605:6;13601:17;13597:27;13587:122;;13628:79;;:::i;:::-;13587:122;13745:6;13732:20;13770:94;13860:3;13852:6;13845:4;13837:6;13833:17;13770:94;:::i;:::-;13761:103;;13577:293;13500:370;;;;:::o;13876:684::-;13969:6;13977;14026:2;14014:9;14005:7;14001:23;13997:32;13994:119;;;14032:79;;:::i;:::-;13994:119;14152:1;14177:53;14222:7;14213:6;14202:9;14198:22;14177:53;:::i;:::-;14167:63;;14123:117;14307:2;14296:9;14292:18;14279:32;14338:18;14330:6;14327:30;14324:117;;;14360:79;;:::i;:::-;14324:117;14465:78;14535:7;14526:6;14515:9;14511:22;14465:78;:::i;:::-;14455:88;;14250:303;13876:684;;;;;:::o;14566:104::-;14611:7;14640:24;14658:5;14640:24;:::i;:::-;14629:35;;14566:104;;;:::o;14676:138::-;14757:32;14783:5;14757:32;:::i;:::-;14750:5;14747:43;14737:71;;14804:1;14801;14794:12;14737:71;14676:138;:::o;14820:155::-;14874:5;14912:6;14899:20;14890:29;;14928:41;14963:5;14928:41;:::i;:::-;14820:155;;;;:::o;14981:345::-;15048:6;15097:2;15085:9;15076:7;15072:23;15068:32;15065:119;;;15103:79;;:::i;:::-;15065:119;15223:1;15248:61;15301:7;15292:6;15281:9;15277:22;15248:61;:::i;:::-;15238:71;;15194:125;14981:345;;;;:::o;15332:115::-;15388:7;15417:24;15435:5;15417:24;:::i;:::-;15406:35;;15332:115;;;:::o;15453:160::-;15545:43;15582:5;15545:43;:::i;:::-;15538:5;15535:54;15525:82;;15603:1;15600;15593:12;15525:82;15453:160;:::o;15619:177::-;15684:5;15722:6;15709:20;15700:29;;15738:52;15784:5;15738:52;:::i;:::-;15619:177;;;;:::o;15802:367::-;15880:6;15929:2;15917:9;15908:7;15904:23;15900:32;15897:119;;;15935:79;;:::i;:::-;15897:119;16055:1;16080:72;16144:7;16135:6;16124:9;16120:22;16080:72;:::i;:::-;16070:82;;16026:136;15802:367;;;;:::o;16175:619::-;16252:6;16260;16268;16317:2;16305:9;16296:7;16292:23;16288:32;16285:119;;;16323:79;;:::i;:::-;16285:119;16443:1;16468:53;16513:7;16504:6;16493:9;16489:22;16468:53;:::i;:::-;16458:63;;16414:117;16570:2;16596:53;16641:7;16632:6;16621:9;16617:22;16596:53;:::i;:::-;16586:63;;16541:118;16698:2;16724:53;16769:7;16760:6;16749:9;16745:22;16724:53;:::i;:::-;16714:63;;16669:118;16175:619;;;;;:::o;16800:180::-;16848:77;16845:1;16838:88;16945:4;16942:1;16935:15;16969:4;16966:1;16959:15;16986:180;17034:77;17031:1;17024:88;17131:4;17128:1;17121:15;17155:4;17152:1;17145:15;17172:233;17211:3;17234:24;17252:5;17234:24;:::i;:::-;17225:33;;17280:66;17273:5;17270:77;17267:103;;;17350:18;;:::i;:::-;17267:103;17397:1;17390:5;17386:13;17379:20;;17172:233;;;:::o;17411:191::-;17451:4;17471:20;17489:1;17471:20;:::i;:::-;17466:25;;17505:20;17523:1;17505:20;:::i;:::-;17500:25;;17544:1;17541;17538:8;17535:34;;;17549:18;;:::i;:::-;17535:34;17594:1;17591;17587:9;17579:17;;17411:191;;;;:::o;17608:169::-;17692:11;17726:6;17721:3;17714:19;17766:4;17761:3;17757:14;17742:29;;17608:169;;;;:::o;17783:223::-;17923:34;17919:1;17911:6;17907:14;17900:58;17992:6;17987:2;17979:6;17975:15;17968:31;17783:223;:::o;18012:366::-;18154:3;18175:67;18239:2;18234:3;18175:67;:::i;:::-;18168:74;;18251:93;18340:3;18251:93;:::i;:::-;18369:2;18364:3;18360:12;18353:19;;18012:366;;;:::o;18384:419::-;18550:4;18588:2;18577:9;18573:18;18565:26;;18637:9;18631:4;18627:20;18623:1;18612:9;18608:17;18601:47;18665:131;18791:4;18665:131;:::i;:::-;18657:139;;18384:419;;;:::o;18809:163::-;18949:15;18945:1;18937:6;18933:14;18926:39;18809:163;:::o;18978:366::-;19120:3;19141:67;19205:2;19200:3;19141:67;:::i;:::-;19134:74;;19217:93;19306:3;19217:93;:::i;:::-;19335:2;19330:3;19326:12;19319:19;;18978:366;;;:::o;19350:419::-;19516:4;19554:2;19543:9;19539:18;19531:26;;19603:9;19597:4;19593:20;19589:1;19578:9;19574:17;19567:47;19631:131;19757:4;19631:131;:::i;:::-;19623:139;;19350:419;;;:::o;19775:164::-;19915:16;19911:1;19903:6;19899:14;19892:40;19775:164;:::o;19945:366::-;20087:3;20108:67;20172:2;20167:3;20108:67;:::i;:::-;20101:74;;20184:93;20273:3;20184:93;:::i;:::-;20302:2;20297:3;20293:12;20286:19;;19945:366;;;:::o;20317:419::-;20483:4;20521:2;20510:9;20506:18;20498:26;;20570:9;20564:4;20560:20;20556:1;20545:9;20541:17;20534:47;20598:131;20724:4;20598:131;:::i;:::-;20590:139;;20317:419;;;:::o;20742:60::-;20770:3;20791:5;20784:12;;20742:60;;;:::o;20808:142::-;20858:9;20891:53;20909:34;20918:24;20936:5;20918:24;:::i;:::-;20909:34;:::i;:::-;20891:53;:::i;:::-;20878:66;;20808:142;;;:::o;20956:126::-;21006:9;21039:37;21070:5;21039:37;:::i;:::-;21026:50;;20956:126;;;:::o;21088:134::-;21146:9;21179:37;21210:5;21179:37;:::i;:::-;21166:50;;21088:134;;;:::o;21228:147::-;21323:45;21362:5;21323:45;:::i;:::-;21318:3;21311:58;21228:147;;:::o;21381:569::-;21566:4;21604:3;21593:9;21589:19;21581:27;;21618:71;21686:1;21675:9;21671:17;21662:6;21618:71;:::i;:::-;21699:72;21767:2;21756:9;21752:18;21743:6;21699:72;:::i;:::-;21781:80;21857:2;21846:9;21842:18;21833:6;21781:80;:::i;:::-;21871:72;21939:2;21928:9;21924:18;21915:6;21871:72;:::i;:::-;21381:569;;;;;;;:::o;21956:305::-;21996:3;22015:20;22033:1;22015:20;:::i;:::-;22010:25;;22049:20;22067:1;22049:20;:::i;:::-;22044:25;;22203:1;22135:66;22131:74;22128:1;22125:81;22122:107;;;22209:18;;:::i;:::-;22122:107;22253:1;22250;22246:9;22239:16;;21956:305;;;;:::o;22267:170::-;22407:22;22403:1;22395:6;22391:14;22384:46;22267:170;:::o;22443:366::-;22585:3;22606:67;22670:2;22665:3;22606:67;:::i;:::-;22599:74;;22682:93;22771:3;22682:93;:::i;:::-;22800:2;22795:3;22791:12;22784:19;;22443:366;;;:::o;22815:419::-;22981:4;23019:2;23008:9;23004:18;22996:26;;23068:9;23062:4;23058:20;23054:1;23043:9;23039:17;23032:47;23096:131;23222:4;23096:131;:::i;:::-;23088:139;;22815:419;;;:::o;23240:569::-;23425:4;23463:3;23452:9;23448:19;23440:27;;23477:71;23545:1;23534:9;23530:17;23521:6;23477:71;:::i;:::-;23558:80;23634:2;23623:9;23619:18;23610:6;23558:80;:::i;:::-;23648:72;23716:2;23705:9;23701:18;23692:6;23648:72;:::i;:::-;23730;23798:2;23787:9;23783:18;23774:6;23730:72;:::i;:::-;23240:569;;;;;;;:::o

Swarm Source

ipfs://d16bd7c7279aa7805b0e742c2ac770085d319cdaabeb0204513e546f7de3997f

Block Transaction Difficulty Gas Used Reward
View All Blocks Produced

Block Uncle Number Difficulty Gas Used Reward
View All Uncles
Loading...
Loading
Loading...
Loading

Validator Index Block Amount
View All Withdrawals

Transaction Hash Block Value Eth2 PubKey Valid
View All Deposits
Loading...
Loading
[ Download: CSV Export  ]

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.