ETH Price: $1,982.31 (-1.88%)

Contract

0x954EA32Fc98e404b15e6EDb6875E1FbFABD9A9ee
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

More Info

Private Name Tags

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Transfer120403182021-03-15 1:44:511818 days ago1615772691IN
0x954EA32F...FABD9A9ee
0 ETH0.00368492136
Transfer120402942021-03-15 1:41:021818 days ago1615772462IN
0x954EA32F...FABD9A9ee
0 ETH0.00690849121
Transfer120029752021-03-09 7:30:401824 days ago1615275040IN
0x954EA32F...FABD9A9ee
0 ETH0.00543025129
Transfer119559242021-03-02 1:47:091831 days ago1614649629IN
0x954EA32F...FABD9A9ee
0 ETH0.00442123105
Transfer119559112021-03-02 1:43:281831 days ago1614649408IN
0x954EA32F...FABD9A9ee
0 ETH0.0042095100
Transfer119558822021-03-02 1:38:011831 days ago1614649081IN
0x954EA32F...FABD9A9ee
0 ETH0.00281788104
Transfer119558642021-03-02 1:32:291831 days ago1614648749IN
0x954EA32F...FABD9A9ee
0 ETH0.0054240295
Transfer119453222021-02-28 10:42:001833 days ago1614508920IN
0x954EA32F...FABD9A9ee
0 ETH0.0037043688
Transfer119369172021-02-27 3:24:271834 days ago1614396267IN
0x954EA32F...FABD9A9ee
0 ETH0.00538816128
Transfer119332282021-02-26 13:52:401834 days ago1614347560IN
0x954EA32F...FABD9A9ee
0 ETH0.00333711123
Transfer119332092021-02-26 13:48:411834 days ago1614347321IN
0x954EA32F...FABD9A9ee
0 ETH0.00788407138
Transfer119326472021-02-26 11:47:331835 days ago1614340053IN
0x954EA32F...FABD9A9ee
0 ETH0.00295466109
Transfer119326242021-02-26 11:42:341835 days ago1614339754IN
0x954EA32F...FABD9A9ee
0 ETH0.00605334106
Transfer119299212021-02-26 1:43:421835 days ago1614303822IN
0x954EA32F...FABD9A9ee
0 ETH0.00503967186
Transfer119299022021-02-26 1:37:581835 days ago1614303478IN
0x954EA32F...FABD9A9ee
0 ETH0.00999162175
Transfer119248282021-02-25 7:00:251836 days ago1614236425IN
0x954EA32F...FABD9A9ee
0 ETH0.00521978124
Transfer119248232021-02-25 6:59:241836 days ago1614236364IN
0x954EA32F...FABD9A9ee
0 ETH0.00513559122
Transfer119248012021-02-25 6:54:111836 days ago1614236051IN
0x954EA32F...FABD9A9ee
0 ETH0.00513559122
Transfer119245732021-02-25 6:06:281836 days ago1614233188IN
0x954EA32F...FABD9A9ee
0 ETH0.00930648163
Transfer119245022021-02-25 5:52:011836 days ago1614232321IN
0x954EA32F...FABD9A9ee
0 ETH0.00463324171
Transfer119245022021-02-25 5:52:011836 days ago1614232321IN
0x954EA32F...FABD9A9ee
0 ETH0.00463324171
Transfer119244912021-02-25 5:47:541836 days ago1614232074IN
0x954EA32F...FABD9A9ee
0 ETH0.00839296147
Transfer119244862021-02-25 5:46:311836 days ago1614231991IN
0x954EA32F...FABD9A9ee
0 ETH0.00782201137
Transfer119236902021-02-25 2:42:571836 days ago1614220977IN
0x954EA32F...FABD9A9ee
0 ETH0.00490636181
Transfer119236642021-02-25 2:35:011836 days ago1614220501IN
0x954EA32F...FABD9A9ee
0 ETH0.00845183148
View all transactions

View more zero value Internal Transactions in Advanced View mode

Advanced mode:
Loading...
Loading
Loading...
Loading
Cross-Chain Transactions

Block Transaction Difficulty Gas Used Reward
View All Blocks Produced

Validator Index Block Amount
View All Withdrawals

Transaction Hash Block Value Eth2 PubKey Valid
View All Deposits
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
TFA

Compiler Version
v0.5.11+commit.c082d0b4

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, None license
/**
 *Submitted for verification at Etherscan.io on 2020-08-28
*/

pragma solidity ^0.5.11;

interface IERC20 {
    event Transfer(address indexed _from, address indexed _to, uint256 _value);
    event Approval(address indexed _owner, address indexed _spender, uint256 _value);

    function transfer(address _to, uint256 _value) external returns (bool);
    function transferFrom(address _from, address _to, uint256 _value) external returns (bool);
    function approve(address _spender, uint256 _value) external returns (bool);
    function balanceOf(address _target) external view returns (uint256);
    function allowance(address _target, address _spender) external view returns (uint256);
}

// File: contracts/Interface/IMint.sol


interface IMint {
    function mint(uint256 _value) external returns (bool);
    function finishMint() external returns (bool);
}

// File: contracts/Interface/IBurn.sol


interface IBurn {
    function burn(uint256 _value) external returns(bool);
}

// File: contracts/Library/Ownable.sol


/**
 * @dev Contract module which provides a basic access control mechanism, where
 * there is an account (an owner) that can be granted exclusive access to
 * specific functions.
 *
 * This module is used through inheritance. It will make available the modifier
 * `onlyOwner`, which can be applied to your functions to restrict their use to
 * the owner.
 */
contract Ownable {
    address private _owner;

    event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);

    /**
     * @dev Initializes the contract setting the deployer as the initial owner.
     */
    constructor() internal {
        _owner = msg.sender;
        emit OwnershipTransferred(address(0), _owner);
    }

    /**
     * @dev Returns the address of the current owner.
     */
    function owner() external view returns (address) {
        return _owner;
    }

    /**
     * @dev Throws if called by any account other than the owner.
     */
    modifier onlyOwner() {
        require(isOwner(), "Ownable: caller is not the owner");
        _;
    }

    /**
     * @dev Returns true if the caller is the current owner.
     */
    function isOwner() public view returns (bool) {
        return msg.sender == _owner;
    }

    /**
     * @dev Leaves the contract without owner. It will not be possible to call
     * `onlyOwner` functions anymore. Can only be called by the current owner.
     *
     * NOTE: Renouncing ownership will leave the contract without an owner,
     * thereby removing any functionality that is only available to the owner.
     */
    function renounceOwnership() external onlyOwner {
        emit OwnershipTransferred(_owner, address(0));
        _owner = address(0);
    }

    /**
     * @dev Transfers ownership of the contract to a new account (`newOwner`).
     * Can only be called by the current owner.
     */
    function transferOwnership(address newOwner) external onlyOwner {
        _transferOwnership(newOwner);
    }

    /**
     * @dev Transfers ownership of the contract to a new account (`newOwner`).
     */
    function _transferOwnership(address newOwner) internal {
        require(newOwner != address(0), "Ownable: new owner is the zero address");
        emit OwnershipTransferred(_owner, newOwner);
        _owner = newOwner;
    }
}

// File: contracts/Library/SafeMath.sol


/**
 * @dev Wrappers over Solidity's arithmetic operations with added overflow
 * checks.
 *
 * Arithmetic operations in Solidity wrap on overflow. This can easily result
 * in bugs, because programmers usually assume that an overflow raises an
 * error, which is the standard behavior in high level programming languages.
 * `SafeMath` restores this intuition by reverting the transaction when an
 * operation overflows.
 *
 * Using this library instead of the unchecked operations eliminates an entire
 * class of bugs, so it's recommended to use it always.
 */
library SafeMath {
    /**
     * @dev Returns the addition of two unsigned integers, reverting on
     * overflow.
     *
     * Counterpart to Solidity's `+` operator.
     *
     * Requirements:
     * - Addition cannot overflow.
     */
    function add(uint256 a, uint256 b) internal pure returns (uint256) {
        uint256 c = a + b;
        require(c >= a, "SafeMath: addition overflow");

        return c;
    }

    /**
     * @dev Returns the subtraction of two unsigned integers, reverting on
     * overflow (when the result is negative).
     *
     * Counterpart to Solidity's `-` operator.
     *
     * Requirements:
     * - Subtraction cannot overflow.
     */
    function sub(uint256 a, uint256 b) internal pure returns (uint256) {
        return sub(a, b, "SafeMath: subtraction overflow");
    }

    /**
     * @dev Returns the subtraction of two unsigned integers, reverting with custom message on
     * overflow (when the result is negative).
     *
     * Counterpart to Solidity's `-` operator.
     *
     * Requirements:
     * - Subtraction cannot overflow.
     *
     * _Available since v2.4.0._
     */
    function sub(uint256 a, uint256 b, string memory errorMessage)
        internal
        pure
        returns (uint256)
    {
        require(b <= a, errorMessage);
        uint256 c = a - b;

        return c;
    }

    /**
     * @dev Returns the multiplication of two unsigned integers, reverting on
     * overflow.
     *
     * Counterpart to Solidity's `*` operator.
     *
     * Requirements:
     * - Multiplication cannot overflow.
     */
    function mul(uint256 a, uint256 b) internal pure returns (uint256) {
        // Gas optimization: this is cheaper than requiring 'a' not being zero, but the
        // benefit is lost if 'b' is also tested.
        // See: https://github.com/OpenZeppelin/openzeppelin-contracts/pull/522
        if (a == 0) {
            return 0;
        }

        uint256 c = a * b;
        require(c / a == b, "SafeMath: multiplication overflow");

        return c;
    }

    /**
     * @dev Returns the integer division of two unsigned integers. Reverts on
     * division by zero. The result is rounded towards zero.
     *
     * Counterpart to Solidity's `/` operator. Note: this function uses a
     * `revert` opcode (which leaves remaining gas untouched) while Solidity
     * uses an invalid opcode to revert (consuming all remaining gas).
     *
     * Requirements:
     * - The divisor cannot be zero.
     */
    function div(uint256 a, uint256 b) internal pure returns (uint256) {
        return div(a, b, "SafeMath: division by zero");
    }

    /**
     * @dev Returns the integer division of two unsigned integers. Reverts with custom message on
     * division by zero. The result is rounded towards zero.
     *
     * Counterpart to Solidity's `/` operator. Note: this function uses a
     * `revert` opcode (which leaves remaining gas untouched) while Solidity
     * uses an invalid opcode to revert (consuming all remaining gas).
     *
     * Requirements:
     * - The divisor cannot be zero.
     *
     * _Available since v2.4.0._
     */
    function div(uint256 a, uint256 b, string memory errorMessage)
        internal
        pure
        returns (uint256)
    {
        // Solidity only automatically asserts when dividing by 0
        require(b > 0, errorMessage);
        uint256 c = a / b;
        // assert(a == b * c + a % b); // There is no case in which this doesn't hold

        return c;
    }

    /**
     * @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo),
     * Reverts when dividing by zero.
     *
     * Counterpart to Solidity's `%` operator. This function uses a `revert`
     * opcode (which leaves remaining gas untouched) while Solidity uses an
     * invalid opcode to revert (consuming all remaining gas).
     *
     * Requirements:
     * - The divisor cannot be zero.
     */
    function mod(uint256 a, uint256 b) internal pure returns (uint256) {
        return mod(a, b, "SafeMath: modulo by zero");
    }

    /**
     * @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo),
     * Reverts with custom message when dividing by zero.
     *
     * Counterpart to Solidity's `%` operator. This function uses a `revert`
     * opcode (which leaves remaining gas untouched) while Solidity uses an
     * invalid opcode to revert (consuming all remaining gas).
     *
     * Requirements:
     * - The divisor cannot be zero.
     *
     * _Available since v2.4.0._
     */
    function mod(uint256 a, uint256 b, string memory errorMessage)
        internal
        pure
        returns (uint256)
    {
        require(b != 0, errorMessage);
        return a % b;
    }
}

// File: contracts/Library/Freezer.sol



contract Freezer is Ownable {
    event Freezed(address dsc);
    event Unfreezed(address dsc);

    mapping(address => bool) public freezing;

    modifier isFreezed(address src) {
        require(freezing[src] == false, "Freeze/Fronzen-Account");
        _;
    }

    /**
    * @notice The Freeze function sets the transfer limit
    * for a specific address.
    * @param dsc address The specify address want to limit the transfer.
    */
    function freeze(address dsc) external onlyOwner {
        require(dsc != address(0), "Freeze/Zero-Address");
        require(freezing[dsc] == false, "Freeze/Already-Freezed");

        freezing[dsc] = true;

        emit Freezed(dsc);
    }

    /**
    * @notice The Freeze function removes the transfer limit
    * for a specific address.
    * @param dsc address The specify address want to remove the transfer.
    */
    function unFreeze(address dsc) external onlyOwner {
        require(freezing[dsc] == true, "Freeze/Already-Unfreezed");

        delete freezing[dsc];

        emit Unfreezed(dsc);
    }
}

// File: contracts/Library/Pauser.sol




contract Pauser is Ownable {
    event Pause(address pauser);
    event Resume(address resumer);

    bool public pausing;

    modifier isPause() {
        require(pausing == false, "Pause/Pause-Functionality");
        _;
    }

    function pause() external onlyOwner {
        require(pausing == false, "Pause/Already-Pausing");

        pausing = true;

        emit Pause(msg.sender);
    }

    function resume() external onlyOwner {
        require(pausing == true, "Pause/Already-Resuming");

        pausing = false;

        emit Resume(msg.sender);
    }
}

// File: contracts/Library/Locker.sol

contract Locker is Ownable {
    event LockedUp(address target, uint256 value);

    using SafeMath for uint256;

    mapping(address => uint256) public lockup;

    modifier isLockup(address _target, uint256 _value) {
        uint256 balance = IERC20(address(this)).balanceOf(_target);
        require(
            balance.sub(_value, "Locker/Underflow-Value") >= lockup[_target],
            "Locker/Impossible-Over-Lockup"
        );
        _;
    }

    function lock(address target, uint256 value) internal onlyOwner returns (bool) {
        lockup[target] = lockup[target].add(value);
        emit LockedUp(target, lockup[target]);
    }

    function decreaseLockup(address target, uint256 value) external onlyOwner returns (bool) {
        require(lockup[target] > 0, "Locker/Not-Lockedup");

        lockup[target] = lockup[target].sub(value, "Locker/Impossible-Underflow");

        emit LockedUp(target, lockup[target]);
    }

    function deleteLockup(address target) external onlyOwner returns (bool) {
        require(lockup[target] > 0, "Locker/Not-Lockedup");

        delete lockup[target];

        emit LockedUp(target, 0);
    }
}

// File: contracts/Library/Minter.sol


contract Minter is Ownable {
    event Finished();

    bool public minting;

    modifier isMinting() {
        require(minting == true, "Minter/Finish-Minting");
        _;
    }

    constructor() public {
        minting = true;
    }

    function finishMint() external onlyOwner returns (bool) {
        require(minting == true, "Minter/Already-Finish");

        minting = false;

        emit Finished();

        return true;
    }
}

// File: contracts/Token.sol



/**
 * @notice The contract implements the ERC20 specification of Token. It implements "Mint"
 * and "Burn" functions incidentally. "Mint" can only be called by the Owner of the
 * corresponding Contract, and "Burn" can be called by any Token owner. Owner of the
 * contract can use "Pauser" to stop working, "Freezer" to freeze accounts and "Locker"
 * to maintain Token minimum balance for some owners.
 */
contract TFA is IERC20, IMint, IBurn, Ownable, Freezer, Pauser, Locker, Minter {
    using SafeMath for uint256;

    string public constant name = "The Flex of Asset";
    string public constant symbol = "TFA";
    uint8 public constant decimals = 6;
    uint256 public totalSupply = 10000000000;

    mapping(address => uint256) private balances;
    mapping(address => mapping(address => uint256)) private approved;

    constructor() public Minter() {
        totalSupply = totalSupply.mul(10**uint256(decimals));
        balances[msg.sender] = totalSupply;
    }

    function transfer(address to, uint256 value)
        external
        isFreezed(msg.sender)
        isLockup(msg.sender, value)
        isPause
        returns (bool)
    {
        require(to != address(0), "Not-Allow-Zero-Address");

        balances[msg.sender] = balances[msg.sender].sub(value);
        balances[to] = balances[to].add(value);

        emit Transfer(msg.sender, to, value);

        return true;
    }

    function transferWithLockup(address to, uint256 value)
        external
        onlyOwner
        isLockup(msg.sender, value)
        isPause
        returns (bool)
    {
        require(to != address(0), "Not-Allow-Zero-Address");

        balances[msg.sender] = balances[msg.sender].sub(value);
        balances[to] = balances[to].add(value);

        lock(to, value);

        emit Transfer(msg.sender, to, value);

        return true;
    }

    function transferFrom(address from, address to, uint256 value)
        external
        isFreezed(from)
        isLockup(from, value)
        isPause
        returns (bool)
    {
        require(from != address(0), "Not-Allow-Zero-Address");
        require(to != address(0), "Not-Allow-Zero-Address");

        balances[from] = balances[from].sub(value);
        balances[to] = balances[to].add(value);
        approved[from][msg.sender] = approved[from][msg.sender].sub(value);

        emit Transfer(from, to, value);

        return true;
    }

    function mint(uint256 value) external isMinting onlyOwner isPause returns (bool) {
        totalSupply = totalSupply.add(value);
        balances[msg.sender] = balances[msg.sender].add(value);

        emit Transfer(address(0), msg.sender, value);

        return true;
    }

    function burn(uint256 value) external isPause returns (bool) {
        require(value <= balances[msg.sender], "");

        balances[msg.sender] = balances[msg.sender].sub(value);
        totalSupply = totalSupply.sub(value);

        emit Transfer(msg.sender, address(0), value);

        return true;
    }

    function approve(address spender, uint256 value) external isPause returns (bool) {
        require(spender != address(0), "Not-Allow-Zero-Address");
        approved[msg.sender][spender] = value;
        emit Approval(msg.sender, spender, value);

        return true;
    }

    function balanceOf(address target) external view returns (uint256) {
        return balances[target];
    }

    function allowance(address target, address spender) external view returns (uint256) {
        return approved[target][spender];
    }
}

Contract Security Audit

Contract ABI

API
[{"constant":false,"inputs":[],"name":"resume","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"lockup","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"freezing","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"pausing","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"target","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"name":"decreaseLockup","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"uint256","name":"value","type":"uint256"}],"name":"burn","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"target","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"renounceOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"minting","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"dsc","type":"address"}],"name":"unFreeze","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"pause","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"name":"transferWithLockup","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"dsc","type":"address"}],"name":"freeze","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"isOwner","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"uint256","name":"value","type":"uint256"}],"name":"mint","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"target","type":"address"}],"name":"deleteLockup","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"target","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"finishMint","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"inputs":[],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[],"name":"Finished","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"target","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"LockedUp","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"pauser","type":"address"}],"name":"Pause","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"resumer","type":"address"}],"name":"Resume","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"dsc","type":"address"}],"name":"Freezed","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"dsc","type":"address"}],"name":"Unfreezed","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"_from","type":"address"},{"indexed":true,"internalType":"address","name":"_to","type":"address"},{"indexed":false,"internalType":"uint256","name":"_value","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"_owner","type":"address"},{"indexed":true,"internalType":"address","name":"_spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"_value","type":"uint256"}],"name":"Approval","type":"event"}]

60806040526402540be4006005553480156200001a57600080fd5b50336000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a36001600460006101000a81548160ff02191690831515021790555062000115600660ff16600a0a6005546200016760201b6200379a1790919060201c565b600581905550600554600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550620001f2565b6000808314156200017c5760009050620001ec565b60008284029050828482816200018e57fe5b0414620001e7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602181526020018062003a9e6021913960400191505060405180910390fd5b809150505b92915050565b61389c80620002026000396000f3fe608060405234801561001057600080fd5b50600436106101a95760003560e01c80637dc2268c116100f957806395d89b4111610097578063c0f75e3d11610071578063c0f75e3d14610802578063dd62ed3e1461085e578063e4cc18be146108d6578063f2fde38b146108f8576101a9565b806395d89b41146106d3578063a0712d6814610756578063a9059cbb1461079c576101a9565b80638ac41193116100d35780638ac41193146105bd5780638d1fdf2f146106235780638da5cb5b146106675780638f32d59b146106b1576101a9565b80637dc2268c1461054d57806383cfab421461056f5780638456cb59146105b3576101a9565b806323b872dd11610166578063313ce56711610140578063313ce5671461048157806342966c68146104a557806370a08231146104eb578063715018a614610543576101a9565b806323b872dd146103735780632a07a0bf146103f9578063305208a41461041b576101a9565b8063046f7da2146101ae57806306fdde03146101b8578063095ea7b31461023b5780630df19d35146102a15780631576c3d8146102f957806318160ddd14610355575b600080fd5b6101b661093c565b005b6101c0610abf565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156102005780820151818401526020810190506101e5565b50505050905090810190601f16801561022d5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6102876004803603604081101561025157600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610af8565b604051808215151515815260200191505060405180910390f35b6102e3600480360360208110156102b757600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610d15565b6040518082815260200191505060405180910390f35b61033b6004803603602081101561030f57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610d2d565b604051808215151515815260200191505060405180910390f35b61035d610d4d565b6040518082815260200191505060405180910390f35b6103df6004803603606081101561038957600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610d53565b604051808215151515815260200191505060405180910390f35b610401611454565b604051808215151515815260200191505060405180910390f35b6104676004803603604081101561043157600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611467565b604051808215151515815260200191505060405180910390f35b610489611714565b604051808260ff1660ff16815260200191505060405180910390f35b6104d1600480360360208110156104bb57600080fd5b8101908080359060200190929190505050611719565b604051808215151515815260200191505060405180910390f35b61052d6004803603602081101561050157600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611952565b6040518082815260200191505060405180910390f35b61054b61199b565b005b610555611ad4565b604051808215151515815260200191505060405180910390f35b6105b16004803603602081101561058557600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611ae7565b005b6105bb611cdc565b005b610609600480360360408110156105d357600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611e5f565b604051808215151515815260200191505060405180910390f35b6106656004803603602081101561063957600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061236a565b005b61066f61260a565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6106b9612633565b604051808215151515815260200191505060405180910390f35b6106db61268a565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561071b578082015181840152602081019050610700565b50505050905090810190601f1680156107485780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6107826004803603602081101561076c57600080fd5b81019080803590602001909291905050506126c3565b604051808215151515815260200191505060405180910390f35b6107e8600480360360408110156107b257600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050612970565b604051808215151515815260200191505060405180910390f35b6108446004803603602081101561081857600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612ebe565b604051808215151515815260200191505060405180910390f35b6108c06004803603604081101561087457600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506130a3565b6040518082815260200191505060405180910390f35b6108de61312a565b604051808215151515815260200191505060405180910390f35b61093a6004803603602081101561090e57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061327d565b005b610944612633565b6109b6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b60011515600260009054906101000a900460ff16151514610a3f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260168152602001807f50617573652f416c72656164792d526573756d696e670000000000000000000081525060200191505060405180910390fd5b6000600260006101000a81548160ff0219169083151502179055507fdc5393690c6579b944c67b47465cff82c4f93733768919fe80c29ef57717776333604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a1565b6040518060400160405280601181526020017f54686520466c6578206f6620417373657400000000000000000000000000000081525081565b6000801515600260009054906101000a900460ff16151514610b82576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260198152602001807f50617573652f50617573652d46756e6374696f6e616c6974790000000000000081525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415610c25576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260168152602001807f4e6f742d416c6c6f772d5a65726f2d416464726573730000000000000000000081525060200191505060405180910390fd5b81600760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040518082815260200191505060405180910390a36001905092915050565b60036020528060005260406000206000915090505481565b60016020528060005260406000206000915054906101000a900460ff1681565b60055481565b60008360001515600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16151514610e1c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260168152602001807f467265657a652f46726f6e7a656e2d4163636f756e740000000000000000000081525060200191505060405180910390fd5b848360003073ffffffffffffffffffffffffffffffffffffffff166370a08231846040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b158015610e9d57600080fd5b505afa158015610eb1573d6000803e3d6000fd5b505050506040513d6020811015610ec757600080fd5b81019080805190602001909291905050509050600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610f64836040518060400160405280601681526020017f4c6f636b65722f556e646572666c6f772d56616c756500000000000000000000815250846133039092919063ffffffff16565b1015610fd8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601d8152602001807f4c6f636b65722f496d706f737369626c652d4f7665722d4c6f636b757000000081525060200191505060405180910390fd5b60001515600260009054906101000a900460ff16151514611061576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260198152602001807f50617573652f50617573652d46756e6374696f6e616c6974790000000000000081525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff161415611104576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260168152602001807f4e6f742d416c6c6f772d5a65726f2d416464726573730000000000000000000081525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff1614156111a7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260168152602001807f4e6f742d416c6c6f772d5a65726f2d416464726573730000000000000000000081525060200191505060405180910390fd5b6111f986600660008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546133c390919063ffffffff16565b600660008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061128e86600660008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461340d90919063ffffffff16565b600660008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061136086600760008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546133c390919063ffffffff16565b600760008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508673ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef886040518082815260200191505060405180910390a360019450505050509392505050565b600260009054906101000a900460ff1681565b6000611471612633565b6114e3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b6000600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205411611598576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260138152602001807f4c6f636b65722f4e6f742d4c6f636b656475700000000000000000000000000081525060200191505060405180910390fd5b611621826040518060400160405280601b81526020017f4c6f636b65722f496d706f737369626c652d556e646572666c6f770000000000815250600360008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546133039092919063ffffffff16565b600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055507fdf72d37adc3f256068f06daa37fec845a1b3b4dadc14a62dd3e89252387be0ef83600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019250505060405180910390a192915050565b600681565b6000801515600260009054906101000a900460ff161515146117a3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260198152602001807f50617573652f50617573652d46756e6374696f6e616c6974790000000000000081525060200191505060405180910390fd5b600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054821115611833576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526000815260200160200191505060405180910390fd5b61188582600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546133c390919063ffffffff16565b600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506118dd826005546133c390919063ffffffff16565b600581905550600073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a360019050919050565b6000600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6119a3612633565b611a15576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b600460009054906101000a900460ff1681565b611aef612633565b611b61576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b60011515600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16151514611c27576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260188152602001807f467265657a652f416c72656164792d556e667265657a6564000000000000000081525060200191505060405180910390fd5b600160008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81549060ff02191690557f4d1fe3cc0f516ce2cfc5e83d52ee28af7f55376b18f58e7081c5fd25d8eeb1df81604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a150565b611ce4612633565b611d56576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b60001515600260009054906101000a900460ff16151514611ddf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260158152602001807f50617573652f416c72656164792d50617573696e67000000000000000000000081525060200191505060405180910390fd5b6001600260006101000a81548160ff0219169083151502179055507f5ee71a369c8672edded508e624ffc9257fa1ae6886ef32905c18e60196bca39933604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a1565b6000611e69612633565b611edb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b338260003073ffffffffffffffffffffffffffffffffffffffff166370a08231846040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b158015611f5c57600080fd5b505afa158015611f70573d6000803e3d6000fd5b505050506040513d6020811015611f8657600080fd5b81019080805190602001909291905050509050600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612023836040518060400160405280601681526020017f4c6f636b65722f556e646572666c6f772d56616c756500000000000000000000815250846133039092919063ffffffff16565b1015612097576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601d8152602001807f4c6f636b65722f496d706f737369626c652d4f7665722d4c6f636b757000000081525060200191505060405180910390fd5b60001515600260009054906101000a900460ff16151514612120576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260198152602001807f50617573652f50617573652d46756e6374696f6e616c6974790000000000000081525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff1614156121c3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260168152602001807f4e6f742d416c6c6f772d5a65726f2d416464726573730000000000000000000081525060200191505060405180910390fd5b61221585600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546133c390919063ffffffff16565b600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506122aa85600660008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461340d90919063ffffffff16565b600660008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506122f78686613495565b508573ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef876040518082815260200191505060405180910390a36001935050505092915050565b612372612633565b6123e4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415612487576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260138152602001807f467265657a652f5a65726f2d416464726573730000000000000000000000000081525060200191505060405180910390fd5b60001515600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615151461254d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260168152602001807f467265657a652f416c72656164792d467265657a65640000000000000000000081525060200191505060405180910390fd5b60018060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055507f0de8364a528e5ca2869160b20c375fe85b4e98d24a9cb48b4dc49c5f76d05b2481604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a150565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614905090565b6040518060400160405280600381526020017f544641000000000000000000000000000000000000000000000000000000000081525081565b600060011515600460009054906101000a900460ff1615151461274e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260158152602001807f4d696e7465722f46696e6973682d4d696e74696e67000000000000000000000081525060200191505060405180910390fd5b612756612633565b6127c8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b60001515600260009054906101000a900460ff16151514612851576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260198152602001807f50617573652f50617573652d46756e6374696f6e616c6974790000000000000081525060200191505060405180910390fd5b6128668260055461340d90919063ffffffff16565b6005819055506128be82600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461340d90919063ffffffff16565b600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503373ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a360019050919050565b60003360001515600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16151514612a39576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260168152602001807f467265657a652f46726f6e7a656e2d4163636f756e740000000000000000000081525060200191505060405180910390fd5b338360003073ffffffffffffffffffffffffffffffffffffffff166370a08231846040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b158015612aba57600080fd5b505afa158015612ace573d6000803e3d6000fd5b505050506040513d6020811015612ae457600080fd5b81019080805190602001909291905050509050600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612b81836040518060400160405280601681526020017f4c6f636b65722f556e646572666c6f772d56616c756500000000000000000000815250846133039092919063ffffffff16565b1015612bf5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601d8152602001807f4c6f636b65722f496d706f737369626c652d4f7665722d4c6f636b757000000081525060200191505060405180910390fd5b60001515600260009054906101000a900460ff16151514612c7e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260198152602001807f50617573652f50617573652d46756e6374696f6e616c6974790000000000000081525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff161415612d21576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260168152602001807f4e6f742d416c6c6f772d5a65726f2d416464726573730000000000000000000081525060200191505060405180910390fd5b612d7386600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546133c390919063ffffffff16565b600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612e0886600660008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461340d90919063ffffffff16565b600660008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef886040518082815260200191505060405180910390a3600194505050505092915050565b6000612ec8612633565b612f3a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b6000600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205411612fef576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260138152602001807f4c6f636b65722f4e6f742d4c6f636b656475700000000000000000000000000081525060200191505060405180910390fd5b600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600090557fdf72d37adc3f256068f06daa37fec845a1b3b4dadc14a62dd3e89252387be0ef826000604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019250505060405180910390a1919050565b6000600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6000613134612633565b6131a6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b60011515600460009054906101000a900460ff1615151461322f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260158152602001807f4d696e7465722f416c72656164792d46696e697368000000000000000000000081525060200191505060405180910390fd5b6000600460006101000a81548160ff0219169083151502179055507f1578538d7847a99e818f068c208cae026fdafea1610a44858adeff8dc70aeb2b60405160405180910390a16001905090565b613285612633565b6132f7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b61330081613656565b50565b60008383111582906133b0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561337557808201518184015260208101905061335a565b50505050905090810190601f1680156133a25780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b5060008385039050809150509392505050565b600061340583836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250613303565b905092915050565b60008082840190508381101561348b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f536166654d6174683a206164646974696f6e206f766572666c6f77000000000081525060200191505060405180910390fd5b8091505092915050565b600061349f612633565b613511576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b61356382600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461340d90919063ffffffff16565b600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055507fdf72d37adc3f256068f06daa37fec845a1b3b4dadc14a62dd3e89252387be0ef83600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019250505060405180910390a192915050565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614156136dc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001806138216026913960400191505060405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000808314156137ad576000905061381a565b60008284029050828482816137be57fe5b0414613815576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260218152602001806138476021913960400191505060405180910390fd5b809150505b9291505056fe4f776e61626c653a206e6577206f776e657220697320746865207a65726f2061646472657373536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f77a265627a7a723158208b7f6499e88c31acfb2e11f28f6d3ab50db66012a6b152c8d96c41ede2b9bb1b64736f6c634300050b0032536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f77

Deployed Bytecode

0x608060405234801561001057600080fd5b50600436106101a95760003560e01c80637dc2268c116100f957806395d89b4111610097578063c0f75e3d11610071578063c0f75e3d14610802578063dd62ed3e1461085e578063e4cc18be146108d6578063f2fde38b146108f8576101a9565b806395d89b41146106d3578063a0712d6814610756578063a9059cbb1461079c576101a9565b80638ac41193116100d35780638ac41193146105bd5780638d1fdf2f146106235780638da5cb5b146106675780638f32d59b146106b1576101a9565b80637dc2268c1461054d57806383cfab421461056f5780638456cb59146105b3576101a9565b806323b872dd11610166578063313ce56711610140578063313ce5671461048157806342966c68146104a557806370a08231146104eb578063715018a614610543576101a9565b806323b872dd146103735780632a07a0bf146103f9578063305208a41461041b576101a9565b8063046f7da2146101ae57806306fdde03146101b8578063095ea7b31461023b5780630df19d35146102a15780631576c3d8146102f957806318160ddd14610355575b600080fd5b6101b661093c565b005b6101c0610abf565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156102005780820151818401526020810190506101e5565b50505050905090810190601f16801561022d5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6102876004803603604081101561025157600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610af8565b604051808215151515815260200191505060405180910390f35b6102e3600480360360208110156102b757600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610d15565b6040518082815260200191505060405180910390f35b61033b6004803603602081101561030f57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610d2d565b604051808215151515815260200191505060405180910390f35b61035d610d4d565b6040518082815260200191505060405180910390f35b6103df6004803603606081101561038957600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610d53565b604051808215151515815260200191505060405180910390f35b610401611454565b604051808215151515815260200191505060405180910390f35b6104676004803603604081101561043157600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611467565b604051808215151515815260200191505060405180910390f35b610489611714565b604051808260ff1660ff16815260200191505060405180910390f35b6104d1600480360360208110156104bb57600080fd5b8101908080359060200190929190505050611719565b604051808215151515815260200191505060405180910390f35b61052d6004803603602081101561050157600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611952565b6040518082815260200191505060405180910390f35b61054b61199b565b005b610555611ad4565b604051808215151515815260200191505060405180910390f35b6105b16004803603602081101561058557600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611ae7565b005b6105bb611cdc565b005b610609600480360360408110156105d357600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611e5f565b604051808215151515815260200191505060405180910390f35b6106656004803603602081101561063957600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061236a565b005b61066f61260a565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6106b9612633565b604051808215151515815260200191505060405180910390f35b6106db61268a565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561071b578082015181840152602081019050610700565b50505050905090810190601f1680156107485780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6107826004803603602081101561076c57600080fd5b81019080803590602001909291905050506126c3565b604051808215151515815260200191505060405180910390f35b6107e8600480360360408110156107b257600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050612970565b604051808215151515815260200191505060405180910390f35b6108446004803603602081101561081857600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612ebe565b604051808215151515815260200191505060405180910390f35b6108c06004803603604081101561087457600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506130a3565b6040518082815260200191505060405180910390f35b6108de61312a565b604051808215151515815260200191505060405180910390f35b61093a6004803603602081101561090e57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061327d565b005b610944612633565b6109b6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b60011515600260009054906101000a900460ff16151514610a3f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260168152602001807f50617573652f416c72656164792d526573756d696e670000000000000000000081525060200191505060405180910390fd5b6000600260006101000a81548160ff0219169083151502179055507fdc5393690c6579b944c67b47465cff82c4f93733768919fe80c29ef57717776333604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a1565b6040518060400160405280601181526020017f54686520466c6578206f6620417373657400000000000000000000000000000081525081565b6000801515600260009054906101000a900460ff16151514610b82576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260198152602001807f50617573652f50617573652d46756e6374696f6e616c6974790000000000000081525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415610c25576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260168152602001807f4e6f742d416c6c6f772d5a65726f2d416464726573730000000000000000000081525060200191505060405180910390fd5b81600760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040518082815260200191505060405180910390a36001905092915050565b60036020528060005260406000206000915090505481565b60016020528060005260406000206000915054906101000a900460ff1681565b60055481565b60008360001515600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16151514610e1c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260168152602001807f467265657a652f46726f6e7a656e2d4163636f756e740000000000000000000081525060200191505060405180910390fd5b848360003073ffffffffffffffffffffffffffffffffffffffff166370a08231846040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b158015610e9d57600080fd5b505afa158015610eb1573d6000803e3d6000fd5b505050506040513d6020811015610ec757600080fd5b81019080805190602001909291905050509050600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610f64836040518060400160405280601681526020017f4c6f636b65722f556e646572666c6f772d56616c756500000000000000000000815250846133039092919063ffffffff16565b1015610fd8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601d8152602001807f4c6f636b65722f496d706f737369626c652d4f7665722d4c6f636b757000000081525060200191505060405180910390fd5b60001515600260009054906101000a900460ff16151514611061576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260198152602001807f50617573652f50617573652d46756e6374696f6e616c6974790000000000000081525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff161415611104576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260168152602001807f4e6f742d416c6c6f772d5a65726f2d416464726573730000000000000000000081525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff1614156111a7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260168152602001807f4e6f742d416c6c6f772d5a65726f2d416464726573730000000000000000000081525060200191505060405180910390fd5b6111f986600660008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546133c390919063ffffffff16565b600660008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061128e86600660008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461340d90919063ffffffff16565b600660008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061136086600760008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546133c390919063ffffffff16565b600760008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508673ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef886040518082815260200191505060405180910390a360019450505050509392505050565b600260009054906101000a900460ff1681565b6000611471612633565b6114e3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b6000600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205411611598576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260138152602001807f4c6f636b65722f4e6f742d4c6f636b656475700000000000000000000000000081525060200191505060405180910390fd5b611621826040518060400160405280601b81526020017f4c6f636b65722f496d706f737369626c652d556e646572666c6f770000000000815250600360008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546133039092919063ffffffff16565b600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055507fdf72d37adc3f256068f06daa37fec845a1b3b4dadc14a62dd3e89252387be0ef83600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019250505060405180910390a192915050565b600681565b6000801515600260009054906101000a900460ff161515146117a3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260198152602001807f50617573652f50617573652d46756e6374696f6e616c6974790000000000000081525060200191505060405180910390fd5b600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054821115611833576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526000815260200160200191505060405180910390fd5b61188582600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546133c390919063ffffffff16565b600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506118dd826005546133c390919063ffffffff16565b600581905550600073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a360019050919050565b6000600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6119a3612633565b611a15576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b600460009054906101000a900460ff1681565b611aef612633565b611b61576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b60011515600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16151514611c27576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260188152602001807f467265657a652f416c72656164792d556e667265657a6564000000000000000081525060200191505060405180910390fd5b600160008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81549060ff02191690557f4d1fe3cc0f516ce2cfc5e83d52ee28af7f55376b18f58e7081c5fd25d8eeb1df81604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a150565b611ce4612633565b611d56576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b60001515600260009054906101000a900460ff16151514611ddf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260158152602001807f50617573652f416c72656164792d50617573696e67000000000000000000000081525060200191505060405180910390fd5b6001600260006101000a81548160ff0219169083151502179055507f5ee71a369c8672edded508e624ffc9257fa1ae6886ef32905c18e60196bca39933604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a1565b6000611e69612633565b611edb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b338260003073ffffffffffffffffffffffffffffffffffffffff166370a08231846040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b158015611f5c57600080fd5b505afa158015611f70573d6000803e3d6000fd5b505050506040513d6020811015611f8657600080fd5b81019080805190602001909291905050509050600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612023836040518060400160405280601681526020017f4c6f636b65722f556e646572666c6f772d56616c756500000000000000000000815250846133039092919063ffffffff16565b1015612097576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601d8152602001807f4c6f636b65722f496d706f737369626c652d4f7665722d4c6f636b757000000081525060200191505060405180910390fd5b60001515600260009054906101000a900460ff16151514612120576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260198152602001807f50617573652f50617573652d46756e6374696f6e616c6974790000000000000081525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff1614156121c3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260168152602001807f4e6f742d416c6c6f772d5a65726f2d416464726573730000000000000000000081525060200191505060405180910390fd5b61221585600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546133c390919063ffffffff16565b600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506122aa85600660008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461340d90919063ffffffff16565b600660008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506122f78686613495565b508573ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef876040518082815260200191505060405180910390a36001935050505092915050565b612372612633565b6123e4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415612487576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260138152602001807f467265657a652f5a65726f2d416464726573730000000000000000000000000081525060200191505060405180910390fd5b60001515600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615151461254d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260168152602001807f467265657a652f416c72656164792d467265657a65640000000000000000000081525060200191505060405180910390fd5b60018060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055507f0de8364a528e5ca2869160b20c375fe85b4e98d24a9cb48b4dc49c5f76d05b2481604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a150565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614905090565b6040518060400160405280600381526020017f544641000000000000000000000000000000000000000000000000000000000081525081565b600060011515600460009054906101000a900460ff1615151461274e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260158152602001807f4d696e7465722f46696e6973682d4d696e74696e67000000000000000000000081525060200191505060405180910390fd5b612756612633565b6127c8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b60001515600260009054906101000a900460ff16151514612851576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260198152602001807f50617573652f50617573652d46756e6374696f6e616c6974790000000000000081525060200191505060405180910390fd5b6128668260055461340d90919063ffffffff16565b6005819055506128be82600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461340d90919063ffffffff16565b600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503373ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a360019050919050565b60003360001515600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16151514612a39576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260168152602001807f467265657a652f46726f6e7a656e2d4163636f756e740000000000000000000081525060200191505060405180910390fd5b338360003073ffffffffffffffffffffffffffffffffffffffff166370a08231846040518263ffffffff1660e01b8152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b158015612aba57600080fd5b505afa158015612ace573d6000803e3d6000fd5b505050506040513d6020811015612ae457600080fd5b81019080805190602001909291905050509050600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612b81836040518060400160405280601681526020017f4c6f636b65722f556e646572666c6f772d56616c756500000000000000000000815250846133039092919063ffffffff16565b1015612bf5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601d8152602001807f4c6f636b65722f496d706f737369626c652d4f7665722d4c6f636b757000000081525060200191505060405180910390fd5b60001515600260009054906101000a900460ff16151514612c7e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260198152602001807f50617573652f50617573652d46756e6374696f6e616c6974790000000000000081525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff161415612d21576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260168152602001807f4e6f742d416c6c6f772d5a65726f2d416464726573730000000000000000000081525060200191505060405180910390fd5b612d7386600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546133c390919063ffffffff16565b600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612e0886600660008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461340d90919063ffffffff16565b600660008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef886040518082815260200191505060405180910390a3600194505050505092915050565b6000612ec8612633565b612f3a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b6000600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205411612fef576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260138152602001807f4c6f636b65722f4e6f742d4c6f636b656475700000000000000000000000000081525060200191505060405180910390fd5b600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600090557fdf72d37adc3f256068f06daa37fec845a1b3b4dadc14a62dd3e89252387be0ef826000604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019250505060405180910390a1919050565b6000600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6000613134612633565b6131a6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b60011515600460009054906101000a900460ff1615151461322f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260158152602001807f4d696e7465722f416c72656164792d46696e697368000000000000000000000081525060200191505060405180910390fd5b6000600460006101000a81548160ff0219169083151502179055507f1578538d7847a99e818f068c208cae026fdafea1610a44858adeff8dc70aeb2b60405160405180910390a16001905090565b613285612633565b6132f7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b61330081613656565b50565b60008383111582906133b0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561337557808201518184015260208101905061335a565b50505050905090810190601f1680156133a25780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b5060008385039050809150509392505050565b600061340583836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250613303565b905092915050565b60008082840190508381101561348b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f536166654d6174683a206164646974696f6e206f766572666c6f77000000000081525060200191505060405180910390fd5b8091505092915050565b600061349f612633565b613511576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b61356382600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461340d90919063ffffffff16565b600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055507fdf72d37adc3f256068f06daa37fec845a1b3b4dadc14a62dd3e89252387be0ef83600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019250505060405180910390a192915050565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614156136dc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001806138216026913960400191505060405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000808314156137ad576000905061381a565b60008284029050828482816137be57fe5b0414613815576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260218152602001806138476021913960400191505060405180910390fd5b809150505b9291505056fe4f776e61626c653a206e6577206f776e657220697320746865207a65726f2061646472657373536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f77a265627a7a723158208b7f6499e88c31acfb2e11f28f6d3ab50db66012a6b152c8d96c41ede2b9bb1b64736f6c634300050b0032

Deployed Bytecode Sourcemap

12929:3234:0:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;12929:3234:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10555:170;;;:::i;:::-;;13050:49;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;13050:49:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15620:280;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;15620:280:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;10896:41;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;10896:41:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;9090:40;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;9090:40:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;13191;;;:::i;:::-;;;;;;;;;;;;;;;;;;;14432:565;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;14432:565:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;10240:19;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;11444:294;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;11444:294:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;13150:34;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;15295:317;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;15295:317:0;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;15908:109;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;15908:109:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;2619:142;;;:::i;:::-;;12067:19;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;9888:192;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;9888:192:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;10380:167;;;:::i;:::-;;13962:462;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;13962:462:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;9448:247;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;9448:247:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;1808:81;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;2176:92;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;13106:37;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;13106:37:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15005:282;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;15005:282:0;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;13518:436;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;13518:436:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;11746:212;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;11746:212:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;16025:135;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;16025:135:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;12266:204;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;2916:111;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;2916:111:0;;;;;;;;;;;;;;;;;;;:::i;:::-;;10555:170;2022:9;:7;:9::i;:::-;2014:54;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10622:4;10611:15;;:7;;;;;;;;;;;:15;;;10603:50;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10676:5;10666:7;;:15;;;;;;;;;;;;;;;;;;10699:18;10706:10;10699:18;;;;;;;;;;;;;;;;;;;;;;10555:170::o;13050:49::-;;;;;;;;;;;;;;;;;;;:::o;15620:280::-;15695:4;10317:5;10306:16;;:7;;;;;;;;;;;:16;;;10298:54;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15739:1;15720:21;;:7;:21;;;;15712:56;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15811:5;15779:8;:20;15788:10;15779:20;;;;;;;;;;;;;;;:29;15800:7;15779:29;;;;;;;;;;;;;;;:37;;;;15853:7;15832:36;;15841:10;15832:36;;;15862:5;15832:36;;;;;;;;;;;;;;;;;;15888:4;15881:11;;15620:280;;;;:::o;10896:41::-;;;;;;;;;;;;;;;;;:::o;9090:40::-;;;;;;;;;;;;;;;;;;;;;;:::o;13191:::-;;;;:::o;14432:565::-;14604:4;14532;9207:5;9190:22;;:8;:13;9199:3;9190:13;;;;;;;;;;;;;;;;;;;;;;;;;:22;;;9182:57;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14556:4;14562:5;11008:15;11041:4;11026:31;;;11058:7;11026:40;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;11026:40:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;11026:40:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;11026:40:0;;;;;;;;;;;;;;;;11008:58;;11148:6;:15;11155:7;11148:15;;;;;;;;;;;;;;;;11099:45;11111:6;11099:45;;;;;;;;;;;;;;;;;:7;:11;;:45;;;;;:::i;:::-;:64;;11077:143;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10317:5;10306:16;;:7;;;;;;;;;;;:16;;;10298:54;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14650:1;14634:18;;:4;:18;;;;14626:53;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14712:1;14698:16;;:2;:16;;;;14690:51;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14771:25;14790:5;14771:8;:14;14780:4;14771:14;;;;;;;;;;;;;;;;:18;;:25;;;;:::i;:::-;14754:8;:14;14763:4;14754:14;;;;;;;;;;;;;;;:42;;;;14822:23;14839:5;14822:8;:12;14831:2;14822:12;;;;;;;;;;;;;;;;:16;;:23;;;;:::i;:::-;14807:8;:12;14816:2;14807:12;;;;;;;;;;;;;;;:38;;;;14885:37;14916:5;14885:8;:14;14894:4;14885:14;;;;;;;;;;;;;;;:26;14900:10;14885:26;;;;;;;;;;;;;;;;:30;;:37;;;;:::i;:::-;14856:8;:14;14865:4;14856:14;;;;;;;;;;;;;;;:26;14871:10;14856:26;;;;;;;;;;;;;;;:66;;;;14955:2;14940:25;;14949:4;14940:25;;;14959:5;14940:25;;;;;;;;;;;;;;;;;;14985:4;14978:11;;9250:1;;;14432:565;;;;;;:::o;10240:19::-;;;;;;;;;;;;;:::o;11444:294::-;11527:4;2022:9;:7;:9::i;:::-;2014:54;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11569:1;11552:6;:14;11559:6;11552:14;;;;;;;;;;;;;;;;:18;11544:50;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11624:56;11643:5;11624:56;;;;;;;;;;;;;;;;;:6;:14;11631:6;11624:14;;;;;;;;;;;;;;;;:18;;:56;;;;;:::i;:::-;11607:6;:14;11614:6;11607:14;;;;;;;;;;;;;;;:73;;;;11698:32;11707:6;11715;:14;11722:6;11715:14;;;;;;;;;;;;;;;;11698:32;;;;;;;;;;;;;;;;;;;;;;;;;;;;11444:294;;;;:::o;13150:34::-;13183:1;13150:34;:::o;15295:317::-;15350:4;10317:5;10306:16;;:7;;;;;;;;;;;:16;;;10298:54;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15384:8;:20;15393:10;15384:20;;;;;;;;;;;;;;;;15375:5;:29;;15367:42;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15445:31;15470:5;15445:8;:20;15454:10;15445:20;;;;;;;;;;;;;;;;:24;;:31;;;;:::i;:::-;15422:8;:20;15431:10;15422:20;;;;;;;;;;;;;;;:54;;;;15501:22;15517:5;15501:11;;:15;;:22;;;;:::i;:::-;15487:11;:36;;;;15570:1;15541:39;;15550:10;15541:39;;;15574:5;15541:39;;;;;;;;;;;;;;;;;;15600:4;15593:11;;15295:317;;;:::o;15908:109::-;15966:7;15993:8;:16;16002:6;15993:16;;;;;;;;;;;;;;;;15986:23;;15908:109;;;:::o;2619:142::-;2022:9;:7;:9::i;:::-;2014:54;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2720:1;2683:40;;2704:6;;;;;;;;;;;2683:40;;;;;;;;;;;;2751:1;2734:6;;:19;;;;;;;;;;;;;;;;;;2619:142::o;12067:19::-;;;;;;;;;;;;;:::o;9888:192::-;2022:9;:7;:9::i;:::-;2014:54;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9974:4;9957:21;;:8;:13;9966:3;9957:13;;;;;;;;;;;;;;;;;;;;;;;;;:21;;;9949:58;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10027:8;:13;10036:3;10027:13;;;;;;;;;;;;;;;;10020:20;;;;;;;;;;;10058:14;10068:3;10058:14;;;;;;;;;;;;;;;;;;;;;;9888:192;:::o;10380:167::-;2022:9;:7;:9::i;:::-;2014:54;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10446:5;10435:16;;:7;;;;;;;;;;;:16;;;10427:50;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10500:4;10490:7;;:14;;;;;;;;;;;;;;;;;;10522:17;10528:10;10522:17;;;;;;;;;;;;;;;;;;;;;;10380:167::o;13962:462::-;14126:4;2022:9;:7;:9::i;:::-;2014:54;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14072:10;14084:5;11008:15;11041:4;11026:31;;;11058:7;11026:40;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;11026:40:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;11026:40:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;11026:40:0;;;;;;;;;;;;;;;;11008:58;;11148:6;:15;11155:7;11148:15;;;;;;;;;;;;;;;;11099:45;11111:6;11099:45;;;;;;;;;;;;;;;;;:7;:11;;:45;;;;;:::i;:::-;:64;;11077:143;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10317:5;10306:16;;:7;;;;;;;;;;;:16;;;10298:54;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14170:1;14156:16;;:2;:16;;;;14148:51;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14235:31;14260:5;14235:8;:20;14244:10;14235:20;;;;;;;;;;;;;;;;:24;;:31;;;;:::i;:::-;14212:8;:20;14221:10;14212:20;;;;;;;;;;;;;;;:54;;;;14292:23;14309:5;14292:8;:12;14301:2;14292:12;;;;;;;;;;;;;;;;:16;;:23;;;;:::i;:::-;14277:8;:12;14286:2;14277:12;;;;;;;;;;;;;;;:38;;;;14328:15;14333:2;14337:5;14328:4;:15::i;:::-;;14382:2;14361:31;;14370:10;14361:31;;;14386:5;14361:31;;;;;;;;;;;;;;;;;;14412:4;14405:11;;2079:1;;;13962:462;;;;:::o;9448:247::-;2022:9;:7;:9::i;:::-;2014:54;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9530:1;9515:17;;:3;:17;;;;9507:49;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9592:5;9575:22;;:8;:13;9584:3;9575:13;;;;;;;;;;;;;;;;;;;;;;;;;:22;;;9567:57;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9653:4;9637:8;:13;9646:3;9637:13;;;;;;;;;;;;;;;;:20;;;;;;;;;;;;;;;;;;9675:12;9683:3;9675:12;;;;;;;;;;;;;;;;;;;;;;9448:247;:::o;1808:81::-;1848:7;1875:6;;;;;;;;;;;1868:13;;1808:81;:::o;2176:92::-;2216:4;2254:6;;;;;;;;;;;2240:20;;:10;:20;;;2233:27;;2176:92;:::o;13106:37::-;;;;;;;;;;;;;;;;;;;:::o;15005:282::-;15080:4;12146;12135:15;;:7;;;;;;;;;;;:15;;;12127:49;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2022:9;:7;:9::i;:::-;2014:54;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10317:5;10306:16;;:7;;;;;;;;;;;:16;;;10298:54;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15111:22;15127:5;15111:11;;:15;;:22;;;;:::i;:::-;15097:11;:36;;;;15167:31;15192:5;15167:8;:20;15176:10;15167:20;;;;;;;;;;;;;;;;:24;;:31;;;;:::i;:::-;15144:8;:20;15153:10;15144:20;;;;;;;;;;;;;;;:54;;;;15237:10;15216:39;;15233:1;15216:39;;;15249:5;15216:39;;;;;;;;;;;;;;;;;;15275:4;15268:11;;15005:282;;;:::o;13518:436::-;13684:4;13600:10;9207:5;9190:22;;:8;:13;9199:3;9190:13;;;;;;;;;;;;;;;;;;;;;;;;;:22;;;9182:57;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13630:10;13642:5;11008:15;11041:4;11026:31;;;11058:7;11026:40;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;11026:40:0;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;11026:40:0;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;11026:40:0;;;;;;;;;;;;;;;;11008:58;;11148:6;:15;11155:7;11148:15;;;;;;;;;;;;;;;;11099:45;11111:6;11099:45;;;;;;;;;;;;;;;;;:7;:11;;:45;;;;;:::i;:::-;:64;;11077:143;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10317:5;10306:16;;:7;;;;;;;;;;;:16;;;10298:54;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13728:1;13714:16;;:2;:16;;;;13706:51;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13793:31;13818:5;13793:8;:20;13802:10;13793:20;;;;;;;;;;;;;;;;:24;;:31;;;;:::i;:::-;13770:8;:20;13779:10;13770:20;;;;;;;;;;;;;;;:54;;;;13850:23;13867:5;13850:8;:12;13859:2;13850:12;;;;;;;;;;;;;;;;:16;;:23;;;;:::i;:::-;13835:8;:12;13844:2;13835:12;;;;;;;;;;;;;;;:38;;;;13912:2;13891:31;;13900:10;13891:31;;;13916:5;13891:31;;;;;;;;;;;;;;;;;;13942:4;13935:11;;9250:1;;;13518:436;;;;;:::o;11746:212::-;11812:4;2022:9;:7;:9::i;:::-;2014:54;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11854:1;11837:6;:14;11844:6;11837:14;;;;;;;;;;;;;;;;:18;11829:50;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11899:6;:14;11906:6;11899:14;;;;;;;;;;;;;;;11892:21;;;11931:19;11940:6;11948:1;11931:19;;;;;;;;;;;;;;;;;;;;;;;;;;;;11746:212;;;:::o;16025:135::-;16100:7;16127:8;:16;16136:6;16127:16;;;;;;;;;;;;;;;:25;16144:7;16127:25;;;;;;;;;;;;;;;;16120:32;;16025:135;;;;:::o;12266:204::-;12316:4;2022:9;:7;:9::i;:::-;2014:54;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12352:4;12341:15;;:7;;;;;;;;;;;:15;;;12333:49;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12405:5;12395:7;;:15;;;;;;;;;;;;;;;;;;12428:10;;;;;;;;;;12458:4;12451:11;;12266:204;:::o;2916:111::-;2022:9;:7;:9::i;:::-;2014:54;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2991:28;3010:8;2991:18;:28::i;:::-;2916:111;:::o;5175:224::-;5288:7;5326:1;5321;:6;;5329:12;5313:29;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;5313:29:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5353:9;5369:1;5365;:5;5353:17;;5390:1;5383:8;;;5175:224;;;;;:::o;4702:136::-;4760:7;4787:43;4791:1;4794;4787:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;4780:50;;4702:136;;;;:::o;4246:181::-;4304:7;4324:9;4340:1;4336;:5;4324:17;;4365:1;4360;:6;;4352:46;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4418:1;4411:8;;;4246:181;;;;:::o;11248:188::-;11321:4;2022:9;:7;:9::i;:::-;2014:54;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11355:25;11374:5;11355:6;:14;11362:6;11355:14;;;;;;;;;;;;;;;;:18;;:25;;;;:::i;:::-;11338:6;:14;11345:6;11338:14;;;;;;;;;;;;;;;:42;;;;11396:32;11405:6;11413;:14;11420:6;11413:14;;;;;;;;;;;;;;;;11396:32;;;;;;;;;;;;;;;;;;;;;;;;;;;;11248:188;;;;:::o;3133:229::-;3227:1;3207:22;;:8;:22;;;;3199:73;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3317:8;3288:38;;3309:6;;;;;;;;;;;3288:38;;;;;;;;;;;;3346:8;3337:6;;:17;;;;;;;;;;;;;;;;;;3133:229;:::o;5650:471::-;5708:7;5958:1;5953;:6;5949:47;;;5983:1;5976:8;;;;5949:47;6008:9;6024:1;6020;:5;6008:17;;6053:1;6048;6044;:5;;;;;;:10;6036:56;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6112:1;6105:8;;;5650:471;;;;;:::o

Swarm Source

bzzr://8b7f6499e88c31acfb2e11f28f6d3ab50db66012a6b152c8d96c41ede2b9bb1b

Block Uncle Number Difficulty Gas Used Reward
View All Uncles
Loading...
Loading
Loading...
Loading
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.