FTM Price: $0.69 (+6.12%)
Gas: 24 GWei

Contract

0x8b8407c6184f1f0Fd1082e83d6A3b8349cAcEd12
 

Overview

FTM Balance

Fantom LogoFantom LogoFantom Logo0 FTM

FTM Value

$0.00

Multichain Info

1 address found via
Transaction Hash
Method
Block
From
To
Value
Transfer785287932024-03-31 7:57:5414 days ago1711871874IN
Circuits of Value: COVAL Token
0 FTM0.00532712102.06791045
Approve777624592024-03-20 3:44:5925 days ago1710906299IN
Circuits of Value: COVAL Token
0 FTM0.03302047667.24206718
Approve777621802024-03-20 3:40:5525 days ago1710906055IN
Circuits of Value: COVAL Token
0 FTM0.03295348680.39326782
Approve774207932024-03-15 20:04:1430 days ago1710533054IN
Circuits of Value: COVAL Token
0 FTM0.0045746591.98605335
Approve773607732024-03-15 2:40:0230 days ago1710470402IN
Circuits of Value: COVAL Token
0 FTM0.0117228898.83473471
Transfer769911792024-03-08 15:04:3437 days ago1709910274IN
Circuits of Value: COVAL Token
0 FTM0.00755422132.6069801
Transfer769866872024-03-08 11:37:0337 days ago1709897823IN
Circuits of Value: COVAL Token
0 FTM0.0022560839.60332394
Approve769690582024-03-08 2:08:4838 days ago1709863728IN
Circuits of Value: COVAL Token
0 FTM0.0017776956.73546193
Approve761845022024-02-24 3:24:0650 days ago1708745046IN
Circuits of Value: COVAL Token
0 FTM0.0009017828.78062298
Approve747178122024-01-24 8:07:4981 days ago1706083669IN
Circuits of Value: COVAL Token
0 FTM0.0028877103
Approve679673422023-09-08 5:36:59219 days ago1694151419IN
Circuits of Value: COVAL Token
0 FTM0.00351965112.33057072
Approve679673002023-09-08 5:34:33219 days ago1694151273IN
Circuits of Value: COVAL Token
0 FTM0.00503267103.9099831
Approve669277482023-08-13 2:37:31245 days ago1691894251IN
Circuits of Value: COVAL Token
0 FTM0.0024339450.25393737
Approve660467542023-07-19 11:06:24270 days ago1689764784IN
Circuits of Value: COVAL Token
0 FTM0.0025973491.06788037
Approve660467312023-07-19 11:05:32270 days ago1689764732IN
Circuits of Value: COVAL Token
0 FTM0.0044426491.75030429
Approve652679552023-07-07 6:14:43282 days ago1688710483IN
Circuits of Value: COVAL Token
0 FTM0.134667235,086.96535979
Approve554384132023-02-09 20:57:18430 days ago1675976238IN
Circuits of Value: COVAL Token
0 FTM0.00913299183.64415037
Approve554383562023-02-09 20:56:05430 days ago1675976165IN
Circuits of Value: COVAL Token
0 FTM0.00922511185.49659606
Approve554382892023-02-09 20:54:59430 days ago1675976099IN
Circuits of Value: COVAL Token
0 FTM0.00924569185.91043699
Approve553634512023-02-08 19:22:18431 days ago1675884138IN
Circuits of Value: COVAL Token
0 FTM0.0043060286.58449565
Transfer552737642023-02-07 16:51:37432 days ago1675788697IN
Circuits of Value: COVAL Token
0 FTM0.00575081147.36222426
Transfer546616492023-01-29 12:58:32441 days ago1674997112IN
Circuits of Value: COVAL Token
0 FTM0.0023327640.94937094
Transfer484277342022-10-04 22:21:37558 days ago1664922097IN
Circuits of Value: COVAL Token
0 FTM0.000136752.62148943
Approve464782832022-09-06 14:20:40586 days ago1662474040IN
Circuits of Value: COVAL Token
0 FTM0.000132572.66577609
Approve432644032022-07-21 21:33:27633 days ago1658439207IN
Circuits of Value: COVAL Token
0 FTM0.000203624.20426747
View all transactions

Latest 1 internal transaction

Parent Txn Hash Block From To Value
26389942021-03-08 15:59:431133 days ago1615219183  Contract Creation0 FTM
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
ConfigurableERC20

Compiler Version
v0.6.12+commit.27d51765

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at ftmscan.com on 2021-03-08
*/

/*
   _____             __ _                       _     _      
  / ____|           / _(_)                     | |   | |     v2 -> Matic Compatible
 | |     ___  _ __ | |_ _  __ _ _   _ _ __ __ _| |__ | | ___ 
 | |    / _ \| '_ \|  _| |/ _` | | | | '__/ _` | '_ \| |/ _ \
 | |___| (_) | | | | | | | (_| | |_| | | | (_| | |_) | |  __/
  \_____\___/|_| |_|_| |_|\__, |\__,_|_|  \__,_|_.__/|_|\___|
                           __/ |                             
  ______ _____   _____ ___|___/_                             
 |  ____|  __ \ / ____|__ \ / _ \                            
 | |__  | |__) | |       ) | | | |                           
 |  __| |  _  /| |      / /| | | |                           
 | |____| | \ \| |____ / /_| |_| |                           
 |______|_|  \_\\_____|____|\___/ 
 
 By the team that brought you:
  --- > Circuits of Value (http://circuitsofvalue.com)
  --- > Emblem Vault (https://emblem.finance)
  
 Documentation:
  --- > Github (https://github.com/EmblemLabs/ConfigurableERC20)
  
 UI:
  --- > (https://emblemlabs.github.io/ConfigurableERC20/)
*/

//  SPDX-License-Identifier: MIT

pragma solidity ^0.6.12;

interface IERC20 {
    function totalSupply() external view returns (uint256);

    function balanceOf(address account) external view returns (uint256);

    function transfer(address recipient, uint256 amount)
        external
        returns (bool);

    function allowance(address owner, address spender)
        external
        view
        returns (uint256);

    function approve(address spender, uint256 amount) external returns (bool);

    function transferFrom(
        address sender,
        address recipient,
        uint256 amount
    ) external returns (bool);

    event Transfer(address indexed from, address indexed to, uint256 value);
    event Approval(
        address indexed owner,
        address indexed spender,
        uint256 value
    );
}

contract Context {
    constructor() internal {}

    // solhint-disable-previous-line no-empty-blocks

    function _msgSender() internal view returns (address payable) {
        return msg.sender;
    }
}

abstract contract Configurable is Context, IERC20 {
    using SafeMath for uint256;
    mapping(address => uint256) internal _balances;
    mapping(address => mapping(address => uint256)) internal _allowances;
    uint256 internal _totalSupply;
    address public resolver;
    address private governance;
    bool private _transferable = true;
    bool private _burnable = true;
    bool private _visible = true;
    bool private _allowPrivateTransactions = false;
    bool private _locked = false;
    bool private _forever = false;
    uint256 private _lockBlock = 0;
    string public name;
    string public symbol;
    uint8 public decimals;

    mapping(address => bool) public minters;
    mapping(address => bool) public viewers;
    mapping(address => bool) public depositers;

    function _isGoverner() internal view returns (bool) {
        return _msgSender() == governance;
    }

    function _isViewer() internal view returns (bool) {
        return viewers[_msgSender()];
    }

    function _isMinter() internal view returns (bool) {
        return minters[_msgSender()];
    }
    
    function _isDepositer() internal view returns (bool) {
        return depositers[_msgSender()];
    }


    function transferable() public view returns (bool) {
        return _transferable;
    }

    function burnable() public view returns (bool) {
        return _burnable;
    }

    function visible() public view returns (bool) {
        return _visible;
    }

    function visibleOrAdmin() public view returns (bool) {
        return _visible || _isGoverner();
    }

    function allowPrivateTransactions() public view returns (bool) {
        return _allowPrivateTransactions;
    }

    function blockNumberLocked() public view returns (bool) {
        return _lockBlock != 0 && block.number < _lockBlock;
    }

    function locked() public view returns (bool) {
        return _locked || blockNumberLocked();
    }

    function lockedPermenantly() public view returns (bool) {
        return locked() && _forever;
    }

    function blocksTillUnlock() public view returns (uint256) {
        if (_lockBlock > block.number) {
            return _lockBlock.sub(block.number);
        } else {
            return 0;
        }
    }

    modifier isTransferable() {
        require(_transferable, "Contract does not allow transfering");
        _;
    }

    modifier isBurnable() {
        require(_burnable, "Contract does not allow burning");
        _;
    }

    modifier isVisibleOrCanView() {
        require(
            _visible || _isViewer() || _isGoverner(),
            "Contract is private and you are not Governer or on viewers list"
        );
        _;
    }

    modifier canSendPrivateOrGoverner() {
        require(
            _allowPrivateTransactions || _isGoverner(),
            "Contract cannot send private transactions"
        );
        _;
    }

    modifier onlyOwner() {
        require(_isGoverner(), "Sender is not Governer");
        _;
    }

    modifier notLocked() {
        require(!locked(), "Contract is locked to governance changes");
        _;
    }

    modifier canMint() {
        require(_isMinter(), "No Minting Privilages");
        _;
    }
    
    modifier canDeposit() {
        require(_isDepositer(), "No Depositing Privilages");
        _;
    }

    function unLock() public onlyOwner {
        require(
            !lockedPermenantly(),
            "Contract locked forever to governance changes"
        );
        require(
            !blockNumberLocked(),
            "Contract has been locked until a blocknumber"
        );
        require(locked(), "Contract not locked");
        _locked = false;
    }

    function lockForever() public onlyOwner {
        require(
            !lockedPermenantly(),
            "Contract locked forever to governance changes"
        );
        require(
            !blockNumberLocked(),
            "Contract has been locked until a blocknumber"
        );
        _locked = true;
        _forever = true;
    }

    function lockTemporarily() public onlyOwner notLocked {
        _locked = true;
    }

    function lockTemporarilyTillBlock(uint256 blockNumber)
        public
        onlyOwner
        notLocked
    {
        require(
            block.number < blockNumber,
            "Provided Block numbner is in the past"
        );
        _lockBlock = blockNumber;
    }

    function toggleBurnable() public onlyOwner notLocked {
        _burnable = !_burnable;
    }

    function toggleTransferable() public onlyOwner notLocked {
        _transferable = !_transferable;
    }

    function toggleVisibility() public onlyOwner notLocked {
        _visible = !_visible;
    }

    function togglePrivateTransferability() public onlyOwner notLocked {
        _allowPrivateTransactions = !_allowPrivateTransactions;
    }

    function setGovernance(address _governance) public onlyOwner notLocked {
        _setGovernance(_governance);
    }
    
    /* For compatibility with Ownable */
    function transferOwnership(address _governance) public onlyOwner notLocked {
        _setGovernance(_governance);
    }

    function _setGovernance(address _governance) internal {
        minters[governance] = false; // Remove old owner from minters list
        viewers[governance] = false; // Remove old owner from viewers list
        depositers[governance] = false; //Remove old owner from depositer list
        minters[_governance] = true; // Add new owner to minters list
        viewers[_governance] = true; // Add new owner to viewers list
        depositers[_governance] = true; //Add new owner from depositer list
        governance = _governance; // Set new owner
    }
}

contract ERC20 is IERC20, Configurable {
    using SafeMath for uint256;

    function totalSupply()
        public
        override
        view
        isVisibleOrCanView
        returns (uint256)
    {
        return _totalSupply;
    }

    function balanceOf(address account)
        public
        override
        view
        isVisibleOrCanView
        returns (uint256)
    {
        return _balances[account];
    }

    function allowance(address owner, address spender)
        public
        override
        view
        returns (uint256)
    {
        return _allowances[owner][spender];
    }

    function approve(address spender, uint256 amount)
        public
        override
        returns (bool)
    {
        _approve(_msgSender(), spender, amount);
        return true;
    }

    function transferFrom(
        address sender,
        address recipient,
        uint256 amount
    ) public override isTransferable returns (bool) {
        _transferFromPrivate(sender, recipient, amount, visible());
        _approve(
            sender,
            _msgSender(),
            _allowances[sender][_msgSender()].sub(
                amount,
                "ERC20: transfer amount exceeds allowance"
            )
        );
        return true;
    }
    
    function withdraw(uint256 amount) external {
        _burn(_msgSender(), amount);
    }
    
    function deposit(address user, bytes calldata depositData)
        external
        canDeposit
    {
        uint256 amount = abi.decode(depositData, (uint256));
        _mint(user, amount);
    }

    function _transferFromPrivate(
        address sender,
        address recipient,
        uint256 amount,
        bool _private
    ) internal isTransferable returns (bool) {
        _transferPrivate(sender, recipient, amount, _private);
        _approve(
            sender,
            _msgSender(),
            _allowances[sender][_msgSender()].sub(
                amount,
                "ERC20: transfer amount exceeds allowance"
            )
        );
        return true;
    }

    function increaseAllowance(address spender, uint256 addedValue)
        public
        returns (bool)
    {
        _approve(
            _msgSender(),
            spender,
            _allowances[_msgSender()][spender].add(addedValue)
        );
        return true;
    }

    function decreaseAllowance(address spender, uint256 subtractedValue)
        public
        returns (bool)
    {
        _approve(
            _msgSender(),
            spender,
            _allowances[_msgSender()][spender].sub(
                subtractedValue,
                "ERC20: decreased allowance below zero"
            )
        );
        return true;
    }

    function transfer(address recipient, uint256 amount)
        public
        override
        isTransferable
        returns (bool)
    {
        _transfer(_msgSender(), recipient, amount);
        return true;
    }

    function _transfer(
        address sender,
        address recipient,
        uint256 amount
    ) internal isTransferable {
        _transferPrivate(sender, recipient, amount, !visible());
    }

    function _transferPrivate(
        address sender,
        address recipient,
        uint256 amount,
        bool _private
    ) internal isTransferable {
        require(sender != address(0), "ERC20: transfer from the zero address");
        require(recipient != address(0), "ERC20: transfer to the zero address");

        _balances[sender] = _balances[sender].sub(
            amount,
            "ERC20: transfer amount exceeds balance"
        );
        _balances[recipient] = _balances[recipient].add(amount);
        if (!_private) {
            emit Transfer(sender, recipient, amount);
        }
    }

    function _mint(address account, uint256 amount) internal {
        require(account != address(0), "ERC20: mint to the zero address");

        _totalSupply = _totalSupply.add(amount);
        _balances[account] = _balances[account].add(amount);
        if (visible()) {
            emit Transfer(address(0), account, amount);
        }
    }

    function _burn(address account, uint256 amount) internal {
        require(account != address(0), "ERC20: burn from the zero address");

        _balances[account] = _balances[account].sub(
            amount,
            "ERC20: burn amount exceeds balance"
        );
        _totalSupply = _totalSupply.sub(amount);
        if (visible()) {
            emit Transfer(account, address(0), amount);
        }
    }

    function _approve(
        address owner,
        address spender,
        uint256 amount
    ) internal {
        require(owner != address(0), "ERC20: approve from the zero address");
        require(spender != address(0), "ERC20: approve to the zero address");

        _allowances[owner][spender] = amount;
        if (visible()) {
            emit Approval(owner, spender, amount);
        }
    }
}

library SafeMath {
    function add(uint256 a, uint256 b) internal pure returns (uint256) {
        uint256 c = a + b;
        require(c >= a, "SafeMath: addition overflow");

        return c;
    }

    function sub(uint256 a, uint256 b) internal pure returns (uint256) {
        return sub(a, b, "SafeMath: subtraction overflow");
    }

    function sub(
        uint256 a,
        uint256 b,
        string memory errorMessage
    ) internal pure returns (uint256) {
        require(b <= a, errorMessage);
        uint256 c = a - b;

        return c;
    }

    function mul(uint256 a, uint256 b) internal pure returns (uint256) {
        if (a == 0) {
            return 0;
        }

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

        return c;
    }

    function div(uint256 a, uint256 b) internal pure returns (uint256) {
        return div(a, b, "SafeMath: division by zero");
    }

    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;

        return c;
    }
}

library Address {
    function isContract(address account) internal view returns (bool) {
        bytes32 codehash;

            bytes32 accountHash
         = 0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470;
        // solhint-disable-next-line no-inline-assembly
        assembly {
            codehash := extcodehash(account)
        }
        return (codehash != 0x0 && codehash != accountHash);
    }
}

library SafeERC20 {
    using SafeMath for uint256;
    using Address for address;

    function safeTransfer(
        IERC20 token,
        address to,
        uint256 value
    ) internal {
        callOptionalReturn(
            token,
            abi.encodeWithSelector(token.transfer.selector, to, value)
        );
    }

    function safeTransferFrom(
        IERC20 token,
        address from,
        address to,
        uint256 value
    ) internal {
        callOptionalReturn(
            token,
            abi.encodeWithSelector(token.transferFrom.selector, from, to, value)
        );
    }

    function safeApprove(
        IERC20 token,
        address spender,
        uint256 value
    ) internal {
        require(
            (value == 0) || (token.allowance(address(this), spender) == 0),
            "SafeERC20: approve from non-zero to non-zero allowance"
        );
        callOptionalReturn(
            token,
            abi.encodeWithSelector(token.approve.selector, spender, value)
        );
    }

    function callOptionalReturn(IERC20 token, bytes memory data) private {
        require(address(token).isContract(), "SafeERC20: call to non-contract");

        // solhint-disable-next-line avoid-low-level-calls
        (bool success, bytes memory returndata) = address(token).call(data);
        require(success, "SafeERC20: low-level call failed");

        if (returndata.length > 0) {
            // Return data is optional
            // solhint-disable-next-line max-line-length
            require(
                abi.decode(returndata, (bool)),
                "SafeERC20: ERC20 operation did not succeed"
            );
        }
    }
}

contract ConfigurableERC20 is ERC20 {
    
    using SafeERC20 for IERC20;
    using Address for address;
    using SafeMath for uint256;
    bool initialized = false;

    constructor() public {
        require(!initialized, 'Already initialized');
        name = "Circuits of Value V2";
        symbol = "COVAL";
        decimals = 8;
        _setGovernance(msg.sender);
        initialized = true;
    }
    
    function init() public {
        // require(!initialized, 'Already initialized');
        // name = "ChangeMe";
        // symbol = "CHANGE";
        // decimals = 18;
        // _setGovernance(msg.sender);
        // initialized = true;
    }

    function transfer(
        address to,
        uint256 amount,
        bool _private
    ) public isTransferable canSendPrivateOrGoverner {
        _transferPrivate(_msgSender(), to, amount, _private);
    }

    function transferFrom(
        address from,
        address to,
        uint256 amount,
        bool _private
    ) public isTransferable canSendPrivateOrGoverner {
        _transferPrivate(from, to, amount, _private);
    }

    function mint(address account, uint256 amount) public canMint notLocked {
        _mint(account, amount);
    }

    function burn(uint256 amount) public isBurnable {
        _burn(_msgSender(), amount);
    }

    function changeContractDetails(
        string calldata _name,
        string calldata _symbol,
        uint8 _decimals
    ) public onlyOwner notLocked {
        name = _name;
        symbol = _symbol;
        decimals = _decimals;
    }

    function addMinter(address _minter) public onlyOwner notLocked {
        minters[_minter] = true;
    }

    function removeMinter(address _minter) public onlyOwner notLocked {
        minters[_minter] = false;
    }

    function addViewer(address _viewer) public onlyOwner notLocked {
        viewers[_viewer] = true;
    }

    function removeViewer(address _viewer) public onlyOwner notLocked {
        viewers[_viewer] = false;
    }
    
    function addDepositer(address _depositer) public onlyOwner notLocked {
        depositers[_depositer] = true;
    }

    function removeDepositer(address _depositer) public onlyOwner notLocked {
        depositers[_depositer] = false;
    }
}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"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"},{"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"},{"inputs":[{"internalType":"address","name":"_depositer","type":"address"}],"name":"addDepositer","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_minter","type":"address"}],"name":"addMinter","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_viewer","type":"address"}],"name":"addViewer","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"allowPrivateTransactions","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"blockNumberLocked","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"blocksTillUnlock","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"burn","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"burnable","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"string","name":"_name","type":"string"},{"internalType":"string","name":"_symbol","type":"string"},{"internalType":"uint8","name":"_decimals","type":"uint8"}],"name":"changeContractDetails","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"user","type":"address"},{"internalType":"bytes","name":"depositData","type":"bytes"}],"name":"deposit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"depositers","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"init","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"lockForever","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"lockTemporarily","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"blockNumber","type":"uint256"}],"name":"lockTemporarilyTillBlock","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"locked","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"lockedPermenantly","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"mint","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"minters","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_depositer","type":"address"}],"name":"removeDepositer","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_minter","type":"address"}],"name":"removeMinter","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_viewer","type":"address"}],"name":"removeViewer","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"resolver","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_governance","type":"address"}],"name":"setGovernance","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"toggleBurnable","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"togglePrivateTransferability","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"toggleTransferable","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"toggleVisibility","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"bool","name":"_private","type":"bool"}],"name":"transfer","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"bool","name":"_private","type":"bool"}],"name":"transferFrom","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_governance","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"transferable","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"unLock","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"viewers","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"visible","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"visibleOrAdmin","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"withdraw","outputs":[],"stateMutability":"nonpayable","type":"function"}]

60806040526004805462ffffff60b81b1960ff60b01b1960ff60a81b1960ff60a01b19909316600160a01b1792909216600160a81b1791909116600160b01b171690556000600555600c805460ff191690553480156200005e57600080fd5b50600c5460ff1615620000b8576040805162461bcd60e51b815260206004820152601360248201527f416c726561647920696e697469616c697a656400000000000000000000000000604482015290519081900360640190fd5b6040805180820190915260148082527f4369726375697473206f662056616c75652056320000000000000000000000006020909201918252620000fe91600691620001f7565b506040805180820190915260058082526410d3d5905360da1b60209092019182526200012d91600791620001f7565b506008805460ff191681179055620001453362000158565b600c805460ff1916600117905562000293565b600480546001600160a01b039081166000908152600960208181526040808420805460ff19908116909155865486168552600a808452828620805483169055875487168652600b80855283872080548416905598909616808652938352818520805482166001908117909155958352818520805482168717905596909152909120805490941690911790925580546001600160a01b0319169091179055565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106200023a57805160ff19168380011785556200026a565b828001600101855582156200026a579182015b828111156200026a5782518255916020019190600101906200024d565b50620002789291506200027c565b5090565b5b808211156200027857600081556001016200027d565b61285d80620002a36000396000f3fe608060405234801561001057600080fd5b50600436106102a05760003560e01c806395d89b4111610167578063cf2c52cb116100ce578063dd62ed3e11610087578063dd62ed3e1461087c578063e1ad1162146108aa578063e1c7392a146108de578063ed10e33c146108e6578063f2fde38b1461075a578063f46eccc4146108ee576102a0565b8063cf2c52cb14610798578063cf30901214610818578063d1d9891414610820578063d47356a314610846578063d6bfc22f1461086c578063da424e6f14610874576102a0565b8063a69439aa11610120578063a69439aa14610708578063a9059cbb1461072e578063ab033ea91461075a578063af6a6d7914610780578063b3cc59db14610788578063c08c9f9a14610790576102a0565b806395d89b4114610681578063983b2d5614610689578063a0065b5b146106af578063a07c7ce4146106b7578063a2f0d957146106bf578063a457c2d7146106dc576102a0565b8063425a71c01161020b578063601f8cf5116101c4578063601f8cf5146105c15780636384c045146105e75780636f2293ab1461060d57806370a082311461064b57806390f3173b1461067157806392ff0d3114610679576102a0565b8063425a71c0146104bf57806342966c6814610584578063432d6c67146105a157806343918ad8146105a9578063439ec2ee146105b15780634437d99e146105b9576102a0565b80632e1a7d4d1161025d5780632e1a7d4d146103fe5780633092afd51461041b578063313ce56714610441578063395093511461045f5780633bce1d481461048b57806340c10f1914610493576102a0565b806304f3bcec146102a557806306fdde03146102c9578063095ea7b31461034657806317ac10db1461038657806318160ddd146103ae57806323b872dd146103c8575b600080fd5b6102ad610914565b604080516001600160a01b039092168252519081900360200190f35b6102d1610923565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561030b5781810151838201526020016102f3565b50505050905090810190601f1680156103385780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6103726004803603604081101561035c57600080fd5b506001600160a01b0381351690602001356109b1565b604080519115158252519081900360200190f35b6103ac6004803603602081101561039c57600080fd5b50356001600160a01b03166109ce565b005b6103b6610a7d565b60408051918252519081900360200190f35b610372600480360360608110156103de57600080fd5b506001600160a01b03813581169160208101359091169060400135610aec565b6103ac6004803603602081101561041457600080fd5b5035610bc5565b6103ac6004803603602081101561043157600080fd5b50356001600160a01b0316610bd9565b610449610c85565b6040805160ff9092168252519081900360200190f35b6103726004803603604081101561047557600080fd5b506001600160a01b038135169060200135610c8e565b610372610cdc565b6103ac600480360360408110156104a957600080fd5b506001600160a01b038135169060200135610cec565b6103ac600480360360608110156104d557600080fd5b8101906020810181356401000000008111156104f057600080fd5b82018360208201111561050257600080fd5b8035906020019184600183028401116401000000008311171561052457600080fd5b91939092909160208101903564010000000081111561054257600080fd5b82018360208201111561055457600080fd5b8035906020019184600183028401116401000000008311171561057657600080fd5b91935091503560ff16610d8f565b6103ac6004803603602081101561059a57600080fd5b5035610e4e565b610372610eac565b6103ac610ecf565b6103ac610f7b565b6103b661101b565b6103ac600480360360208110156105d757600080fd5b50356001600160a01b0316611043565b610372600480360360208110156105fd57600080fd5b50356001600160a01b03166110f2565b6103ac6004803603608081101561062357600080fd5b506001600160a01b038135811691602081013590911690604081013590606001351515611107565b6103b66004803603602081101561066157600080fd5b50356001600160a01b03166111b7565b6103ac61123a565b61037261132d565b6102d161133d565b6103ac6004803603602081101561069f57600080fd5b50356001600160a01b0316611398565b610372611447565b610372611460565b6103ac600480360360208110156106d557600080fd5b5035611470565b610372600480360360408110156106f257600080fd5b506001600160a01b03813516906020013561153e565b6103726004803603602081101561071e57600080fd5b50356001600160a01b03166115a6565b6103726004803603604081101561074457600080fd5b506001600160a01b0381351690602001356115bb565b6103ac6004803603602081101561077057600080fd5b50356001600160a01b0316611618565b6103726116ac565b6103ac6116bc565b610372611768565b6103ac600480360360408110156107ae57600080fd5b6001600160a01b0382351691908101906040810160208201356401000000008111156107d957600080fd5b8201836020820111156107eb57600080fd5b8035906020019184600183028401116401000000008311171561080d57600080fd5b50909250905061178a565b610372611803565b6103ac6004803603602081101561083657600080fd5b50356001600160a01b0316611821565b6103ac6004803603602081101561085c57600080fd5b50356001600160a01b03166118cd565b6103ac611979565b6103ac611a25565b6103b66004803603604081101561089257600080fd5b506001600160a01b0381358116916020013516611ad1565b6103ac600480360360608110156108c057600080fd5b506001600160a01b0381351690602081013590604001351515611afc565b6103ac611bb2565b6103ac611bb4565b6103726004803603602081101561090457600080fd5b50356001600160a01b0316611ce1565b6003546001600160a01b031681565b6006805460408051602060026001851615610100026000190190941693909304601f810184900484028201840190925281815292918301828280156109a95780601f1061097e576101008083540402835291602001916109a9565b820191906000526020600020905b81548152906001019060200180831161098c57829003601f168201915b505050505081565b60006109c56109be611cf6565b8484611cfa565b50600192915050565b6109d6611e09565b610a15576040805162461bcd60e51b815260206004820152601660248201526000805160206126be833981519152604482015290519081900360640190fd5b610a1d611803565b15610a595760405162461bcd60e51b81526004018080602001828103825260288152602001806127db6028913960400191505060405180910390fd5b6001600160a01b03166000908152600b60205260409020805460ff19166001179055565b600454600090600160b01b900460ff1680610a9b5750610a9b611e2f565b80610aa95750610aa9611e09565b610ae45760405162461bcd60e51b815260040180806020018281038252603f815260200180612753603f913960400191505060405180910390fd5b506002545b90565b600454600090600160a01b900460ff16610b375760405162461bcd60e51b815260040180806020018281038252602381526020018061269b6023913960400191505060405180910390fd5b610b4a848484610b456116ac565b611e5f565b50610bbb84610b57611cf6565b610bb68560405180606001604052806028815260200161270a602891396001600160a01b038a16600090815260016020526040812090610b95611cf6565b6001600160a01b031681526020810191909152604001600020549190611f0b565b611cfa565b5060019392505050565b610bd6610bd0611cf6565b82611fa2565b50565b610be1611e09565b610c20576040805162461bcd60e51b815260206004820152601660248201526000805160206126be833981519152604482015290519081900360640190fd5b610c28611803565b15610c645760405162461bcd60e51b81526004018080602001828103825260288152602001806127db6028913960400191505060405180910390fd5b6001600160a01b03166000908152600960205260409020805460ff19169055565b60085460ff1681565b60006109c5610c9b611cf6565b84610bb68560016000610cac611cf6565b6001600160a01b03908116825260208083019390935260409182016000908120918c16815292529020549061209f565b600454600160b81b900460ff1690565b610cf4612100565b610d3d576040805162461bcd60e51b81526020600482015260156024820152744e6f204d696e74696e672050726976696c6167657360581b604482015290519081900360640190fd5b610d45611803565b15610d815760405162461bcd60e51b81526004018080602001828103825260288152602001806127db6028913960400191505060405180910390fd5b610d8b828261210e565b5050565b610d97611e09565b610dd6576040805162461bcd60e51b815260206004820152601660248201526000805160206126be833981519152604482015290519081900360640190fd5b610dde611803565b15610e1a5760405162461bcd60e51b81526004018080602001828103825260288152602001806127db6028913960400191505060405180910390fd5b610e26600686866124ff565b50610e33600784846124ff565b506008805460ff191660ff9290921691909117905550505050565b600454600160a81b900460ff16610bc5576040805162461bcd60e51b815260206004820152601f60248201527f436f6e747261637420646f6573206e6f7420616c6c6f77206275726e696e6700604482015290519081900360640190fd5b600454600090600160b01b900460ff1680610eca5750610eca611e09565b905090565b610ed7611e09565b610f16576040805162461bcd60e51b815260206004820152601660248201526000805160206126be833981519152604482015290519081900360640190fd5b610f1e611803565b15610f5a5760405162461bcd60e51b81526004018080602001828103825260288152602001806127db6028913960400191505060405180910390fd5b6004805460ff60b01b198116600160b01b9182900460ff1615909102179055565b610f83611e09565b610fc2576040805162461bcd60e51b815260206004820152601660248201526000805160206126be833981519152604482015290519081900360640190fd5b610fca611803565b156110065760405162461bcd60e51b81526004018080602001828103825260288152602001806127db6028913960400191505060405180910390fd5b6004805460ff60c01b1916600160c01b179055565b600043600554111561103b576005546110349043612207565b9050610ae9565b506000610ae9565b61104b611e09565b61108a576040805162461bcd60e51b815260206004820152601660248201526000805160206126be833981519152604482015290519081900360640190fd5b611092611803565b156110ce5760405162461bcd60e51b81526004018080602001828103825260288152602001806127db6028913960400191505060405180910390fd5b6001600160a01b03166000908152600a60205260409020805460ff19166001179055565b600b6020526000908152604090205460ff1681565b600454600160a01b900460ff1661114f5760405162461bcd60e51b815260040180806020018281038252602381526020018061269b6023913960400191505060405180910390fd5b600454600160b81b900460ff168061116a575061116a611e09565b6111a55760405162461bcd60e51b81526004018080602001828103825260298152602001806125d86029913960400191505060405180910390fd5b6111b184848484612249565b50505050565b600454600090600160b01b900460ff16806111d557506111d5611e2f565b806111e357506111e3611e09565b61121e5760405162461bcd60e51b815260040180806020018281038252603f815260200180612753603f913960400191505060405180910390fd5b506001600160a01b031660009081526020819052604090205490565b611242611e09565b611281576040805162461bcd60e51b815260206004820152601660248201526000805160206126be833981519152604482015290519081900360640190fd5b611289611768565b156112c55760405162461bcd60e51b815260040180806020018281038252602d81526020018061266e602d913960400191505060405180910390fd5b6112cd611447565b156113095760405162461bcd60e51b815260040180806020018281038252602c8152602001806126de602c913960400191505060405180910390fd5b6004805460ff60c81b1960ff60c01b19909116600160c01b1716600160c81b179055565b600454600160a01b900460ff1690565b6007805460408051602060026001851615610100026000190190941693909304601f810184900484028201840190925281815292918301828280156109a95780601f1061097e576101008083540402835291602001916109a9565b6113a0611e09565b6113df576040805162461bcd60e51b815260206004820152601660248201526000805160206126be833981519152604482015290519081900360640190fd5b6113e7611803565b156114235760405162461bcd60e51b81526004018080602001828103825260288152602001806127db6028913960400191505060405180910390fd5b6001600160a01b03166000908152600960205260409020805460ff19166001179055565b6000600554600014158015610eca575050600554431090565b600454600160a81b900460ff1690565b611478611e09565b6114b7576040805162461bcd60e51b815260206004820152601660248201526000805160206126be833981519152604482015290519081900360640190fd5b6114bf611803565b156114fb5760405162461bcd60e51b81526004018080602001828103825260288152602001806127db6028913960400191505060405180910390fd5b8043106115395760405162461bcd60e51b81526004018080602001828103825260258152602001806126236025913960400191505060405180910390fd5b600555565b60006109c561154b611cf6565b84610bb6856040518060600160405280602581526020016128036025913960016000611575611cf6565b6001600160a01b03908116825260208083019390935260409182016000908120918d16815292529020549190611f0b565b600a6020526000908152604090205460ff1681565b600454600090600160a01b900460ff166116065760405162461bcd60e51b815260040180806020018281038252602381526020018061269b6023913960400191505060405180910390fd5b6109c5611611611cf6565b84846123f6565b611620611e09565b61165f576040805162461bcd60e51b815260206004820152601660248201526000805160206126be833981519152604482015290519081900360640190fd5b611667611803565b156116a35760405162461bcd60e51b81526004018080602001828103825260288152602001806127db6028913960400191505060405180910390fd5b610bd681612452565b600454600160b01b900460ff1690565b6116c4611e09565b611703576040805162461bcd60e51b815260206004820152601660248201526000805160206126be833981519152604482015290519081900360640190fd5b61170b611803565b156117475760405162461bcd60e51b81526004018080602001828103825260288152602001806127db6028913960400191505060405180910390fd5b6004805460ff60a81b198116600160a81b9182900460ff1615909102179055565b6000611772611803565b8015610eca575050600454600160c81b900460ff1690565b6117926124f1565b6117e3576040805162461bcd60e51b815260206004820152601860248201527f4e6f204465706f736974696e672050726976696c616765730000000000000000604482015290519081900360640190fd5b6000828260208110156117f557600080fd5b503590506111b1848261210e565b600454600090600160c01b900460ff1680610eca5750610eca611447565b611829611e09565b611868576040805162461bcd60e51b815260206004820152601660248201526000805160206126be833981519152604482015290519081900360640190fd5b611870611803565b156118ac5760405162461bcd60e51b81526004018080602001828103825260288152602001806127db6028913960400191505060405180910390fd5b6001600160a01b03166000908152600a60205260409020805460ff19169055565b6118d5611e09565b611914576040805162461bcd60e51b815260206004820152601660248201526000805160206126be833981519152604482015290519081900360640190fd5b61191c611803565b156119585760405162461bcd60e51b81526004018080602001828103825260288152602001806127db6028913960400191505060405180910390fd5b6001600160a01b03166000908152600b60205260409020805460ff19169055565b611981611e09565b6119c0576040805162461bcd60e51b815260206004820152601660248201526000805160206126be833981519152604482015290519081900360640190fd5b6119c8611803565b15611a045760405162461bcd60e51b81526004018080602001828103825260288152602001806127db6028913960400191505060405180910390fd5b6004805460ff60a01b198116600160a01b9182900460ff1615909102179055565b611a2d611e09565b611a6c576040805162461bcd60e51b815260206004820152601660248201526000805160206126be833981519152604482015290519081900360640190fd5b611a74611803565b15611ab05760405162461bcd60e51b81526004018080602001828103825260288152602001806127db6028913960400191505060405180910390fd5b6004805460ff60b81b198116600160b81b9182900460ff1615909102179055565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b600454600160a01b900460ff16611b445760405162461bcd60e51b815260040180806020018281038252602381526020018061269b6023913960400191505060405180910390fd5b600454600160b81b900460ff1680611b5f5750611b5f611e09565b611b9a5760405162461bcd60e51b81526004018080602001828103825260298152602001806125d86029913960400191505060405180910390fd5b611bad611ba5611cf6565b848484612249565b505050565b565b611bbc611e09565b611bfb576040805162461bcd60e51b815260206004820152601660248201526000805160206126be833981519152604482015290519081900360640190fd5b611c03611768565b15611c3f5760405162461bcd60e51b815260040180806020018281038252602d81526020018061266e602d913960400191505060405180910390fd5b611c47611447565b15611c835760405162461bcd60e51b815260040180806020018281038252602c8152602001806126de602c913960400191505060405180910390fd5b611c8b611803565b611cd2576040805162461bcd60e51b815260206004820152601360248201527210dbdb9d1c9858dd081b9bdd081b1bd8dad959606a1b604482015290519081900360640190fd5b6004805460ff60c01b19169055565b60096020526000908152604090205460ff1681565b3390565b6001600160a01b038316611d3f5760405162461bcd60e51b81526004018080602001828103825260248152602001806127b76024913960400191505060405180910390fd5b6001600160a01b038216611d845760405162461bcd60e51b81526004018080602001828103825260228152602001806126016022913960400191505060405180910390fd5b6001600160a01b038084166000908152600160209081526040808320938616835292905220819055611db46116ac565b15611bad57816001600160a01b0316836001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040518082815260200191505060405180910390a3505050565b6004546000906001600160a01b0316611e20611cf6565b6001600160a01b031614905090565b6000600a6000611e3d611cf6565b6001600160a01b0316815260208101919091526040016000205460ff16905090565b600454600090600160a01b900460ff16611eaa5760405162461bcd60e51b815260040180806020018281038252602381526020018061269b6023913960400191505060405180910390fd5b611eb685858585612249565b611f0085611ec2611cf6565b610bb68660405180606001604052806028815260200161270a602891396001600160a01b038b16600090815260016020526040812090610b95611cf6565b506001949350505050565b60008184841115611f9a5760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b83811015611f5f578181015183820152602001611f47565b50505050905090810190601f168015611f8c5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b505050900390565b6001600160a01b038216611fe75760405162461bcd60e51b81526004018080602001828103825260218152602001806127326021913960400191505060405180910390fd5b612024816040518060600160405280602281526020016125b6602291396001600160a01b0385166000908152602081905260409020549190611f0b565b6001600160a01b03831660009081526020819052604090205560025461204a9082612207565b6002556120556116ac565b15610d8b576040805182815290516000916001600160a01b038516917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9181900360200190a35050565b6000828201838110156120f9576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b9392505050565b600060096000611e3d611cf6565b6001600160a01b038216612169576040805162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604482015290519081900360640190fd5b600254612176908261209f565b6002556001600160a01b03821660009081526020819052604090205461219c908261209f565b6001600160a01b0383166000908152602081905260409020556121bd6116ac565b15610d8b576040805182815290516001600160a01b038416916000917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9181900360200190a35050565b60006120f983836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611f0b565b600454600160a01b900460ff166122915760405162461bcd60e51b815260040180806020018281038252602381526020018061269b6023913960400191505060405180910390fd5b6001600160a01b0384166122d65760405162461bcd60e51b81526004018080602001828103825260258152602001806127926025913960400191505060405180910390fd5b6001600160a01b03831661231b5760405162461bcd60e51b81526004018080602001828103825260238152602001806125936023913960400191505060405180910390fd5b61235882604051806060016040528060268152602001612648602691396001600160a01b0387166000908152602081905260409020549190611f0b565b6001600160a01b038086166000908152602081905260408082209390935590851681522054612387908361209f565b6001600160a01b038416600090815260208190526040902055806111b157826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a350505050565b600454600160a01b900460ff1661243e5760405162461bcd60e51b815260040180806020018281038252602381526020018061269b6023913960400191505060405180910390fd5b611bad83838361244c6116ac565b15612249565b600480546001600160a01b039081166000908152600960208181526040808420805460ff19908116909155865486168552600a808452828620805483169055875487168652600b80855283872080548416905598909616808652938352818520805482166001908117909155958352818520805482168717905596909152909120805490941690911790925580546001600160a01b0319169091179055565b6000600b6000611e3d611cf6565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106125405782800160ff1982351617855561256d565b8280016001018555821561256d579182015b8281111561256d578235825591602001919060010190612552565b5061257992915061257d565b5090565b5b80821115612579576000815560010161257e56fe45524332303a207472616e7366657220746f20746865207a65726f206164647265737345524332303a206275726e20616d6f756e7420657863656564732062616c616e6365436f6e74726163742063616e6e6f742073656e642070726976617465207472616e73616374696f6e7345524332303a20617070726f766520746f20746865207a65726f206164647265737350726f766964656420426c6f636b206e756d626e657220697320696e20746865207061737445524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e6365436f6e7472616374206c6f636b656420666f726576657220746f20676f7665726e616e6365206368616e676573436f6e747261637420646f6573206e6f7420616c6c6f77207472616e73666572696e6753656e646572206973206e6f7420476f7665726e657200000000000000000000436f6e747261637420686173206265656e206c6f636b656420756e74696c206120626c6f636b6e756d62657245524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a206275726e2066726f6d20746865207a65726f2061646472657373436f6e7472616374206973207072697661746520616e6420796f7520617265206e6f7420476f7665726e6572206f72206f6e2076696577657273206c69737445524332303a207472616e736665722066726f6d20746865207a65726f206164647265737345524332303a20617070726f76652066726f6d20746865207a65726f2061646472657373436f6e7472616374206973206c6f636b656420746f20676f7665726e616e6365206368616e67657345524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa2646970667358221220dbb11a83bf8b1a9495cdf61292cd2f1bab8a639383d0e14c3dfac1ab7996769a64736f6c634300060c0033

Deployed Bytecode

0x608060405234801561001057600080fd5b50600436106102a05760003560e01c806395d89b4111610167578063cf2c52cb116100ce578063dd62ed3e11610087578063dd62ed3e1461087c578063e1ad1162146108aa578063e1c7392a146108de578063ed10e33c146108e6578063f2fde38b1461075a578063f46eccc4146108ee576102a0565b8063cf2c52cb14610798578063cf30901214610818578063d1d9891414610820578063d47356a314610846578063d6bfc22f1461086c578063da424e6f14610874576102a0565b8063a69439aa11610120578063a69439aa14610708578063a9059cbb1461072e578063ab033ea91461075a578063af6a6d7914610780578063b3cc59db14610788578063c08c9f9a14610790576102a0565b806395d89b4114610681578063983b2d5614610689578063a0065b5b146106af578063a07c7ce4146106b7578063a2f0d957146106bf578063a457c2d7146106dc576102a0565b8063425a71c01161020b578063601f8cf5116101c4578063601f8cf5146105c15780636384c045146105e75780636f2293ab1461060d57806370a082311461064b57806390f3173b1461067157806392ff0d3114610679576102a0565b8063425a71c0146104bf57806342966c6814610584578063432d6c67146105a157806343918ad8146105a9578063439ec2ee146105b15780634437d99e146105b9576102a0565b80632e1a7d4d1161025d5780632e1a7d4d146103fe5780633092afd51461041b578063313ce56714610441578063395093511461045f5780633bce1d481461048b57806340c10f1914610493576102a0565b806304f3bcec146102a557806306fdde03146102c9578063095ea7b31461034657806317ac10db1461038657806318160ddd146103ae57806323b872dd146103c8575b600080fd5b6102ad610914565b604080516001600160a01b039092168252519081900360200190f35b6102d1610923565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561030b5781810151838201526020016102f3565b50505050905090810190601f1680156103385780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6103726004803603604081101561035c57600080fd5b506001600160a01b0381351690602001356109b1565b604080519115158252519081900360200190f35b6103ac6004803603602081101561039c57600080fd5b50356001600160a01b03166109ce565b005b6103b6610a7d565b60408051918252519081900360200190f35b610372600480360360608110156103de57600080fd5b506001600160a01b03813581169160208101359091169060400135610aec565b6103ac6004803603602081101561041457600080fd5b5035610bc5565b6103ac6004803603602081101561043157600080fd5b50356001600160a01b0316610bd9565b610449610c85565b6040805160ff9092168252519081900360200190f35b6103726004803603604081101561047557600080fd5b506001600160a01b038135169060200135610c8e565b610372610cdc565b6103ac600480360360408110156104a957600080fd5b506001600160a01b038135169060200135610cec565b6103ac600480360360608110156104d557600080fd5b8101906020810181356401000000008111156104f057600080fd5b82018360208201111561050257600080fd5b8035906020019184600183028401116401000000008311171561052457600080fd5b91939092909160208101903564010000000081111561054257600080fd5b82018360208201111561055457600080fd5b8035906020019184600183028401116401000000008311171561057657600080fd5b91935091503560ff16610d8f565b6103ac6004803603602081101561059a57600080fd5b5035610e4e565b610372610eac565b6103ac610ecf565b6103ac610f7b565b6103b661101b565b6103ac600480360360208110156105d757600080fd5b50356001600160a01b0316611043565b610372600480360360208110156105fd57600080fd5b50356001600160a01b03166110f2565b6103ac6004803603608081101561062357600080fd5b506001600160a01b038135811691602081013590911690604081013590606001351515611107565b6103b66004803603602081101561066157600080fd5b50356001600160a01b03166111b7565b6103ac61123a565b61037261132d565b6102d161133d565b6103ac6004803603602081101561069f57600080fd5b50356001600160a01b0316611398565b610372611447565b610372611460565b6103ac600480360360208110156106d557600080fd5b5035611470565b610372600480360360408110156106f257600080fd5b506001600160a01b03813516906020013561153e565b6103726004803603602081101561071e57600080fd5b50356001600160a01b03166115a6565b6103726004803603604081101561074457600080fd5b506001600160a01b0381351690602001356115bb565b6103ac6004803603602081101561077057600080fd5b50356001600160a01b0316611618565b6103726116ac565b6103ac6116bc565b610372611768565b6103ac600480360360408110156107ae57600080fd5b6001600160a01b0382351691908101906040810160208201356401000000008111156107d957600080fd5b8201836020820111156107eb57600080fd5b8035906020019184600183028401116401000000008311171561080d57600080fd5b50909250905061178a565b610372611803565b6103ac6004803603602081101561083657600080fd5b50356001600160a01b0316611821565b6103ac6004803603602081101561085c57600080fd5b50356001600160a01b03166118cd565b6103ac611979565b6103ac611a25565b6103b66004803603604081101561089257600080fd5b506001600160a01b0381358116916020013516611ad1565b6103ac600480360360608110156108c057600080fd5b506001600160a01b0381351690602081013590604001351515611afc565b6103ac611bb2565b6103ac611bb4565b6103726004803603602081101561090457600080fd5b50356001600160a01b0316611ce1565b6003546001600160a01b031681565b6006805460408051602060026001851615610100026000190190941693909304601f810184900484028201840190925281815292918301828280156109a95780601f1061097e576101008083540402835291602001916109a9565b820191906000526020600020905b81548152906001019060200180831161098c57829003601f168201915b505050505081565b60006109c56109be611cf6565b8484611cfa565b50600192915050565b6109d6611e09565b610a15576040805162461bcd60e51b815260206004820152601660248201526000805160206126be833981519152604482015290519081900360640190fd5b610a1d611803565b15610a595760405162461bcd60e51b81526004018080602001828103825260288152602001806127db6028913960400191505060405180910390fd5b6001600160a01b03166000908152600b60205260409020805460ff19166001179055565b600454600090600160b01b900460ff1680610a9b5750610a9b611e2f565b80610aa95750610aa9611e09565b610ae45760405162461bcd60e51b815260040180806020018281038252603f815260200180612753603f913960400191505060405180910390fd5b506002545b90565b600454600090600160a01b900460ff16610b375760405162461bcd60e51b815260040180806020018281038252602381526020018061269b6023913960400191505060405180910390fd5b610b4a848484610b456116ac565b611e5f565b50610bbb84610b57611cf6565b610bb68560405180606001604052806028815260200161270a602891396001600160a01b038a16600090815260016020526040812090610b95611cf6565b6001600160a01b031681526020810191909152604001600020549190611f0b565b611cfa565b5060019392505050565b610bd6610bd0611cf6565b82611fa2565b50565b610be1611e09565b610c20576040805162461bcd60e51b815260206004820152601660248201526000805160206126be833981519152604482015290519081900360640190fd5b610c28611803565b15610c645760405162461bcd60e51b81526004018080602001828103825260288152602001806127db6028913960400191505060405180910390fd5b6001600160a01b03166000908152600960205260409020805460ff19169055565b60085460ff1681565b60006109c5610c9b611cf6565b84610bb68560016000610cac611cf6565b6001600160a01b03908116825260208083019390935260409182016000908120918c16815292529020549061209f565b600454600160b81b900460ff1690565b610cf4612100565b610d3d576040805162461bcd60e51b81526020600482015260156024820152744e6f204d696e74696e672050726976696c6167657360581b604482015290519081900360640190fd5b610d45611803565b15610d815760405162461bcd60e51b81526004018080602001828103825260288152602001806127db6028913960400191505060405180910390fd5b610d8b828261210e565b5050565b610d97611e09565b610dd6576040805162461bcd60e51b815260206004820152601660248201526000805160206126be833981519152604482015290519081900360640190fd5b610dde611803565b15610e1a5760405162461bcd60e51b81526004018080602001828103825260288152602001806127db6028913960400191505060405180910390fd5b610e26600686866124ff565b50610e33600784846124ff565b506008805460ff191660ff9290921691909117905550505050565b600454600160a81b900460ff16610bc5576040805162461bcd60e51b815260206004820152601f60248201527f436f6e747261637420646f6573206e6f7420616c6c6f77206275726e696e6700604482015290519081900360640190fd5b600454600090600160b01b900460ff1680610eca5750610eca611e09565b905090565b610ed7611e09565b610f16576040805162461bcd60e51b815260206004820152601660248201526000805160206126be833981519152604482015290519081900360640190fd5b610f1e611803565b15610f5a5760405162461bcd60e51b81526004018080602001828103825260288152602001806127db6028913960400191505060405180910390fd5b6004805460ff60b01b198116600160b01b9182900460ff1615909102179055565b610f83611e09565b610fc2576040805162461bcd60e51b815260206004820152601660248201526000805160206126be833981519152604482015290519081900360640190fd5b610fca611803565b156110065760405162461bcd60e51b81526004018080602001828103825260288152602001806127db6028913960400191505060405180910390fd5b6004805460ff60c01b1916600160c01b179055565b600043600554111561103b576005546110349043612207565b9050610ae9565b506000610ae9565b61104b611e09565b61108a576040805162461bcd60e51b815260206004820152601660248201526000805160206126be833981519152604482015290519081900360640190fd5b611092611803565b156110ce5760405162461bcd60e51b81526004018080602001828103825260288152602001806127db6028913960400191505060405180910390fd5b6001600160a01b03166000908152600a60205260409020805460ff19166001179055565b600b6020526000908152604090205460ff1681565b600454600160a01b900460ff1661114f5760405162461bcd60e51b815260040180806020018281038252602381526020018061269b6023913960400191505060405180910390fd5b600454600160b81b900460ff168061116a575061116a611e09565b6111a55760405162461bcd60e51b81526004018080602001828103825260298152602001806125d86029913960400191505060405180910390fd5b6111b184848484612249565b50505050565b600454600090600160b01b900460ff16806111d557506111d5611e2f565b806111e357506111e3611e09565b61121e5760405162461bcd60e51b815260040180806020018281038252603f815260200180612753603f913960400191505060405180910390fd5b506001600160a01b031660009081526020819052604090205490565b611242611e09565b611281576040805162461bcd60e51b815260206004820152601660248201526000805160206126be833981519152604482015290519081900360640190fd5b611289611768565b156112c55760405162461bcd60e51b815260040180806020018281038252602d81526020018061266e602d913960400191505060405180910390fd5b6112cd611447565b156113095760405162461bcd60e51b815260040180806020018281038252602c8152602001806126de602c913960400191505060405180910390fd5b6004805460ff60c81b1960ff60c01b19909116600160c01b1716600160c81b179055565b600454600160a01b900460ff1690565b6007805460408051602060026001851615610100026000190190941693909304601f810184900484028201840190925281815292918301828280156109a95780601f1061097e576101008083540402835291602001916109a9565b6113a0611e09565b6113df576040805162461bcd60e51b815260206004820152601660248201526000805160206126be833981519152604482015290519081900360640190fd5b6113e7611803565b156114235760405162461bcd60e51b81526004018080602001828103825260288152602001806127db6028913960400191505060405180910390fd5b6001600160a01b03166000908152600960205260409020805460ff19166001179055565b6000600554600014158015610eca575050600554431090565b600454600160a81b900460ff1690565b611478611e09565b6114b7576040805162461bcd60e51b815260206004820152601660248201526000805160206126be833981519152604482015290519081900360640190fd5b6114bf611803565b156114fb5760405162461bcd60e51b81526004018080602001828103825260288152602001806127db6028913960400191505060405180910390fd5b8043106115395760405162461bcd60e51b81526004018080602001828103825260258152602001806126236025913960400191505060405180910390fd5b600555565b60006109c561154b611cf6565b84610bb6856040518060600160405280602581526020016128036025913960016000611575611cf6565b6001600160a01b03908116825260208083019390935260409182016000908120918d16815292529020549190611f0b565b600a6020526000908152604090205460ff1681565b600454600090600160a01b900460ff166116065760405162461bcd60e51b815260040180806020018281038252602381526020018061269b6023913960400191505060405180910390fd5b6109c5611611611cf6565b84846123f6565b611620611e09565b61165f576040805162461bcd60e51b815260206004820152601660248201526000805160206126be833981519152604482015290519081900360640190fd5b611667611803565b156116a35760405162461bcd60e51b81526004018080602001828103825260288152602001806127db6028913960400191505060405180910390fd5b610bd681612452565b600454600160b01b900460ff1690565b6116c4611e09565b611703576040805162461bcd60e51b815260206004820152601660248201526000805160206126be833981519152604482015290519081900360640190fd5b61170b611803565b156117475760405162461bcd60e51b81526004018080602001828103825260288152602001806127db6028913960400191505060405180910390fd5b6004805460ff60a81b198116600160a81b9182900460ff1615909102179055565b6000611772611803565b8015610eca575050600454600160c81b900460ff1690565b6117926124f1565b6117e3576040805162461bcd60e51b815260206004820152601860248201527f4e6f204465706f736974696e672050726976696c616765730000000000000000604482015290519081900360640190fd5b6000828260208110156117f557600080fd5b503590506111b1848261210e565b600454600090600160c01b900460ff1680610eca5750610eca611447565b611829611e09565b611868576040805162461bcd60e51b815260206004820152601660248201526000805160206126be833981519152604482015290519081900360640190fd5b611870611803565b156118ac5760405162461bcd60e51b81526004018080602001828103825260288152602001806127db6028913960400191505060405180910390fd5b6001600160a01b03166000908152600a60205260409020805460ff19169055565b6118d5611e09565b611914576040805162461bcd60e51b815260206004820152601660248201526000805160206126be833981519152604482015290519081900360640190fd5b61191c611803565b156119585760405162461bcd60e51b81526004018080602001828103825260288152602001806127db6028913960400191505060405180910390fd5b6001600160a01b03166000908152600b60205260409020805460ff19169055565b611981611e09565b6119c0576040805162461bcd60e51b815260206004820152601660248201526000805160206126be833981519152604482015290519081900360640190fd5b6119c8611803565b15611a045760405162461bcd60e51b81526004018080602001828103825260288152602001806127db6028913960400191505060405180910390fd5b6004805460ff60a01b198116600160a01b9182900460ff1615909102179055565b611a2d611e09565b611a6c576040805162461bcd60e51b815260206004820152601660248201526000805160206126be833981519152604482015290519081900360640190fd5b611a74611803565b15611ab05760405162461bcd60e51b81526004018080602001828103825260288152602001806127db6028913960400191505060405180910390fd5b6004805460ff60b81b198116600160b81b9182900460ff1615909102179055565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b600454600160a01b900460ff16611b445760405162461bcd60e51b815260040180806020018281038252602381526020018061269b6023913960400191505060405180910390fd5b600454600160b81b900460ff1680611b5f5750611b5f611e09565b611b9a5760405162461bcd60e51b81526004018080602001828103825260298152602001806125d86029913960400191505060405180910390fd5b611bad611ba5611cf6565b848484612249565b505050565b565b611bbc611e09565b611bfb576040805162461bcd60e51b815260206004820152601660248201526000805160206126be833981519152604482015290519081900360640190fd5b611c03611768565b15611c3f5760405162461bcd60e51b815260040180806020018281038252602d81526020018061266e602d913960400191505060405180910390fd5b611c47611447565b15611c835760405162461bcd60e51b815260040180806020018281038252602c8152602001806126de602c913960400191505060405180910390fd5b611c8b611803565b611cd2576040805162461bcd60e51b815260206004820152601360248201527210dbdb9d1c9858dd081b9bdd081b1bd8dad959606a1b604482015290519081900360640190fd5b6004805460ff60c01b19169055565b60096020526000908152604090205460ff1681565b3390565b6001600160a01b038316611d3f5760405162461bcd60e51b81526004018080602001828103825260248152602001806127b76024913960400191505060405180910390fd5b6001600160a01b038216611d845760405162461bcd60e51b81526004018080602001828103825260228152602001806126016022913960400191505060405180910390fd5b6001600160a01b038084166000908152600160209081526040808320938616835292905220819055611db46116ac565b15611bad57816001600160a01b0316836001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040518082815260200191505060405180910390a3505050565b6004546000906001600160a01b0316611e20611cf6565b6001600160a01b031614905090565b6000600a6000611e3d611cf6565b6001600160a01b0316815260208101919091526040016000205460ff16905090565b600454600090600160a01b900460ff16611eaa5760405162461bcd60e51b815260040180806020018281038252602381526020018061269b6023913960400191505060405180910390fd5b611eb685858585612249565b611f0085611ec2611cf6565b610bb68660405180606001604052806028815260200161270a602891396001600160a01b038b16600090815260016020526040812090610b95611cf6565b506001949350505050565b60008184841115611f9a5760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b83811015611f5f578181015183820152602001611f47565b50505050905090810190601f168015611f8c5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b505050900390565b6001600160a01b038216611fe75760405162461bcd60e51b81526004018080602001828103825260218152602001806127326021913960400191505060405180910390fd5b612024816040518060600160405280602281526020016125b6602291396001600160a01b0385166000908152602081905260409020549190611f0b565b6001600160a01b03831660009081526020819052604090205560025461204a9082612207565b6002556120556116ac565b15610d8b576040805182815290516000916001600160a01b038516917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9181900360200190a35050565b6000828201838110156120f9576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b9392505050565b600060096000611e3d611cf6565b6001600160a01b038216612169576040805162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604482015290519081900360640190fd5b600254612176908261209f565b6002556001600160a01b03821660009081526020819052604090205461219c908261209f565b6001600160a01b0383166000908152602081905260409020556121bd6116ac565b15610d8b576040805182815290516001600160a01b038416916000917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9181900360200190a35050565b60006120f983836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611f0b565b600454600160a01b900460ff166122915760405162461bcd60e51b815260040180806020018281038252602381526020018061269b6023913960400191505060405180910390fd5b6001600160a01b0384166122d65760405162461bcd60e51b81526004018080602001828103825260258152602001806127926025913960400191505060405180910390fd5b6001600160a01b03831661231b5760405162461bcd60e51b81526004018080602001828103825260238152602001806125936023913960400191505060405180910390fd5b61235882604051806060016040528060268152602001612648602691396001600160a01b0387166000908152602081905260409020549190611f0b565b6001600160a01b038086166000908152602081905260408082209390935590851681522054612387908361209f565b6001600160a01b038416600090815260208190526040902055806111b157826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a350505050565b600454600160a01b900460ff1661243e5760405162461bcd60e51b815260040180806020018281038252602381526020018061269b6023913960400191505060405180910390fd5b611bad83838361244c6116ac565b15612249565b600480546001600160a01b039081166000908152600960208181526040808420805460ff19908116909155865486168552600a808452828620805483169055875487168652600b80855283872080548416905598909616808652938352818520805482166001908117909155958352818520805482168717905596909152909120805490941690911790925580546001600160a01b0319169091179055565b6000600b6000611e3d611cf6565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106125405782800160ff1982351617855561256d565b8280016001018555821561256d579182015b8281111561256d578235825591602001919060010190612552565b5061257992915061257d565b5090565b5b80821115612579576000815560010161257e56fe45524332303a207472616e7366657220746f20746865207a65726f206164647265737345524332303a206275726e20616d6f756e7420657863656564732062616c616e6365436f6e74726163742063616e6e6f742073656e642070726976617465207472616e73616374696f6e7345524332303a20617070726f766520746f20746865207a65726f206164647265737350726f766964656420426c6f636b206e756d626e657220697320696e20746865207061737445524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e6365436f6e7472616374206c6f636b656420666f726576657220746f20676f7665726e616e6365206368616e676573436f6e747261637420646f6573206e6f7420616c6c6f77207472616e73666572696e6753656e646572206973206e6f7420476f7665726e657200000000000000000000436f6e747261637420686173206265656e206c6f636b656420756e74696c206120626c6f636b6e756d62657245524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a206275726e2066726f6d20746865207a65726f2061646472657373436f6e7472616374206973207072697661746520616e6420796f7520617265206e6f7420476f7665726e6572206f72206f6e2076696577657273206c69737445524332303a207472616e736665722066726f6d20746865207a65726f206164647265737345524332303a20617070726f76652066726f6d20746865207a65726f2061646472657373436f6e7472616374206973206c6f636b656420746f20676f7665726e616e6365206368616e67657345524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa2646970667358221220dbb11a83bf8b1a9495cdf61292cd2f1bab8a639383d0e14c3dfac1ab7996769a64736f6c634300060c0033

Deployed Bytecode Sourcemap

16725:2341:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2456:23;;;:::i;:::-;;;;-1:-1:-1;;;;;2456:23:0;;;;;;;;;;;;;;2791:18;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8760:193;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;8760:193:0;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;18817:117;;;;;;;;;;;;;;;;-1:-1:-1;18817:117:0;-1:-1:-1;;;;;18817:117:0;;:::i;:::-;;8195:169;;;:::i;:::-;;;;;;;;;;;;;;;;8961:483;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;8961:483:0;;;;;;;;;;;;;;;;;:::i;9456:89::-;;;;;;;;;;;;;;;;-1:-1:-1;9456:89:0;;:::i;18466:109::-;;;;;;;;;;;;;;;;-1:-1:-1;18466:109:0;-1:-1:-1;;;;;18466:109:0;;:::i;2843:21::-;;;:::i;:::-;;;;;;;;;;;;;;;;;;;10278:283;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;10278:283:0;;;;;;;;:::i;3843:114::-;;;:::i;17876:113::-;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;17876:113:0;;;;;;;;:::i;18099:246::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;18099:246:0;-1:-1:-1;18099:246:0;;;;:::i;17997:94::-;;;;;;;;;;;;;;;;-1:-1:-1;17997:94:0;;:::i;3731:104::-;;;:::i;6992:94::-;;;:::i;6392:87::-;;;:::i;4318:210::-;;;:::i;18583:105::-;;;;;;;;;;;;;;;;-1:-1:-1;18583:105:0;-1:-1:-1;;;;;18583:105:0;;:::i;2965:42::-;;;;;;;;;;;;;;;;-1:-1:-1;2965:42:0;-1:-1:-1;;;;;2965:42:0;;:::i;17636:232::-;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;17636:232:0;;;;;;;;;;;;;;;;;;;;;;;;:::i;8372:188::-;;;;;;;;;;;;;;;;-1:-1:-1;8372:188:0;-1:-1:-1;;;;;8372:188:0;;:::i;6034:350::-;;;:::i;3455:90::-;;;:::i;2816:20::-;;;:::i;18353:105::-;;;;;;;;;;;;;;;;-1:-1:-1;18353:105:0;-1:-1:-1;;;;;18353:105:0;;:::i;3965:126::-;;;:::i;3553:82::-;;;:::i;6487:281::-;;;;;;;;;;;;;;;;-1:-1:-1;6487:281:0;;:::i;10569:383::-;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;10569:383:0;;;;;;;;:::i;2919:39::-;;;;;;;;;;;;;;;;-1:-1:-1;2919:39:0;-1:-1:-1;;;;;2919:39:0;;:::i;10960:223::-;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;10960:223:0;;;;;;;;:::i;7242:117::-;;;;;;;;;;;;;;;;-1:-1:-1;7242:117:0;-1:-1:-1;;;;;7242:117:0;;:::i;3643:80::-;;;:::i;6776:94::-;;;:::i;4208:102::-;;;:::i;9557:202::-;;;;;;;;;;;;;;;;-1:-1:-1;;;;;9557:202:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;9557:202:0;;-1:-1:-1;9557:202:0;-1:-1:-1;9557:202:0;:::i;4099:101::-;;;:::i;18696:109::-;;;;;;;;;;;;;;;;-1:-1:-1;18696:109:0;-1:-1:-1;;;;;18696:109:0;;:::i;18942:121::-;;;;;;;;;;;;;;;;-1:-1:-1;18942:121:0;-1:-1:-1;;;;;18942:121:0;;:::i;6878:106::-;;;:::i;7094:140::-;;;:::i;8568:184::-;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;8568:184:0;;;;;;;;;;:::i;17415:213::-;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;17415:213:0;;;;;;;;;;;;;;;:::i;17157:250::-;;;:::i;5655:371::-;;;:::i;2873:39::-;;;;;;;;;;;;;;;;-1:-1:-1;2873:39:0;-1:-1:-1;;;;;2873:39:0;;:::i;2456:23::-;;;-1:-1:-1;;;;;2456:23:0;;:::o;2791:18::-;;;;;;;;;;;;;;;-1:-1:-1;;2791:18:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;8760:193::-;8862:4;8884:39;8893:12;:10;:12::i;:::-;8907:7;8916:6;8884:8;:39::i;:::-;-1:-1:-1;8941:4:0;8760:193;;;;:::o;18817:117::-;5246:13;:11;:13::i;:::-;5238:48;;;;;-1:-1:-1;;;5238:48:0;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;5238:48:0;;;;;;;;;;;;;;;5355:8:::1;:6;:8::i;:::-;5354:9;5346:62;;;;-1:-1:-1::0;;;5346:62:0::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;;;;;18897:22:0::2;;::::0;;;:10:::2;:22;::::0;;;;:29;;-1:-1:-1;;18897:29:0::2;18922:4;18897:29;::::0;;18817:117::o;8195:169::-;4839:8;;8312:7;;-1:-1:-1;;;4839:8:0;;;;;:23;;;4851:11;:9;:11::i;:::-;4839:40;;;;4866:13;:11;:13::i;:::-;4817:153;;;;-1:-1:-1;;;4817:153:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;8344:12:0::1;::::0;4981:1:::1;8195:169:::0;:::o;8961:483::-;4581:13;;9108:4;;-1:-1:-1;;;4581:13:0;;;;4573:61;;;;-1:-1:-1;;;4573:61:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9125:58:::1;9146:6;9154:9;9165:6;9173:9;:7;:9::i;:::-;9125:20;:58::i;:::-;;9194:220;9217:6;9238:12;:10;:12::i;:::-;9265:138;9321:6;9265:138;;;;;;;;;;;;;;;;;-1:-1:-1::0;;;;;9265:19:0;::::1;;::::0;;;:11:::1;:19;::::0;;;;;9285:12:::1;:10;:12::i;:::-;-1:-1:-1::0;;;;;9265:33:0::1;::::0;;::::1;::::0;::::1;::::0;;;;;;-1:-1:-1;9265:33:0;;;:138;:37:::1;:138::i;:::-;9194:8;:220::i;:::-;-1:-1:-1::0;9432:4:0::1;8961:483:::0;;;;;:::o;9456:89::-;9510:27;9516:12;:10;:12::i;:::-;9530:6;9510:5;:27::i;:::-;9456:89;:::o;18466:109::-;5246:13;:11;:13::i;:::-;5238:48;;;;;-1:-1:-1;;;5238:48:0;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;5238:48:0;;;;;;;;;;;;;;;5355:8:::1;:6;:8::i;:::-;5354:9;5346:62;;;;-1:-1:-1::0;;;5346:62:0::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;;;;;18543:16:0::2;18562:5;18543:16:::0;;;:7:::2;:16;::::0;;;;:24;;-1:-1:-1;;18543:24:0::2;::::0;;18466:109::o;2843:21::-;;;;;;:::o;10278:283::-;10376:4;10398:133;10421:12;:10;:12::i;:::-;10448:7;10470:50;10509:10;10470:11;:25;10482:12;:10;:12::i;:::-;-1:-1:-1;;;;;10470:25:0;;;;;;;;;;;;;;;;;-1:-1:-1;10470:25:0;;;:34;;;;;;;;;;;:38;:50::i;3843:114::-;3924:25;;-1:-1:-1;;;3924:25:0;;;;;3843:114::o;17876:113::-;5474:11;:9;:11::i;:::-;5466:45;;;;;-1:-1:-1;;;5466:45:0;;;;;;;;;;;;-1:-1:-1;;;5466:45:0;;;;;;;;;;;;;;;5355:8:::1;:6;:8::i;:::-;5354:9;5346:62;;;;-1:-1:-1::0;;;5346:62:0::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17959:22:::2;17965:7;17974:6;17959:5;:22::i;:::-;17876:113:::0;;:::o;18099:246::-;5246:13;:11;:13::i;:::-;5238:48;;;;;-1:-1:-1;;;5238:48:0;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;5238:48:0;;;;;;;;;;;;;;;5355:8:::1;:6;:8::i;:::-;5354:9;5346:62;;;;-1:-1:-1::0;;;5346:62:0::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18267:12:::2;:4;18274:5:::0;;18267:12:::2;:::i;:::-;-1:-1:-1::0;18290:16:0::2;:6;18299:7:::0;;18290:16:::2;:::i;:::-;-1:-1:-1::0;18317:8:0::2;:20:::0;;-1:-1:-1;;18317:20:0::2;;::::0;;;::::2;::::0;;;::::2;::::0;;-1:-1:-1;;;;18099:246:0:o;17997:94::-;4703:9;;-1:-1:-1;;;4703:9:0;;;;4695:53;;;;;-1:-1:-1;;;4695:53:0;;;;;;;;;;;;;;;;;;;;;;;;;;;3731:104;3802:8;;3778:4;;-1:-1:-1;;;3802:8:0;;;;;:25;;;3814:13;:11;:13::i;:::-;3795:32;;3731:104;:::o;6992:94::-;5246:13;:11;:13::i;:::-;5238:48;;;;;-1:-1:-1;;;5238:48:0;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;5238:48:0;;;;;;;;;;;;;;;5355:8:::1;:6;:8::i;:::-;5354:9;5346:62;;;;-1:-1:-1::0;;;5346:62:0::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7070:8:::2;::::0;;-1:-1:-1;;;;7058:20:0;::::2;-1:-1:-1::0;;;7070:8:0;;;::::2;;;7069:9;7058:20:::0;;::::2;;::::0;;6992:94::o;6392:87::-;5246:13;:11;:13::i;:::-;5238:48;;;;;-1:-1:-1;;;5238:48:0;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;5238:48:0;;;;;;;;;;;;;;;5355:8:::1;:6;:8::i;:::-;5354:9;5346:62;;;;-1:-1:-1::0;;;5346:62:0::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6457:7:::2;:14:::0;;-1:-1:-1;;;;6457:14:0::2;-1:-1:-1::0;;;6457:14:0::2;::::0;;6392:87::o;4318:210::-;4367:7;4404:12;4391:10;;:25;4387:134;;;4440:10;;:28;;4455:12;4440:14;:28::i;:::-;4433:35;;;;4387:134;-1:-1:-1;4508:1:0;4501:8;;18583:105;5246:13;:11;:13::i;:::-;5238:48;;;;;-1:-1:-1;;;5238:48:0;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;5238:48:0;;;;;;;;;;;;;;;5355:8:::1;:6;:8::i;:::-;5354:9;5346:62;;;;-1:-1:-1::0;;;5346:62:0::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;;;;;18657:16:0::2;;::::0;;;:7:::2;:16;::::0;;;;:23;;-1:-1:-1;;18657:23:0::2;18676:4;18657:23;::::0;;18583:105::o;2965:42::-;;;;;;;;;;;;;;;:::o;17636:232::-;4581:13;;-1:-1:-1;;;4581:13:0;;;;4573:61;;;;-1:-1:-1;;;4573:61:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5067:25:::1;::::0;-1:-1:-1;;;5067:25:0;::::1;;;::::0;:42:::1;;;5096:13;:11;:13::i;:::-;5045:133;;;;-1:-1:-1::0;;;5045:133:0::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17816:44:::2;17833:4;17839:2;17843:6;17851:8;17816:16;:44::i;:::-;17636:232:::0;;;;:::o;8372:188::-;4839:8;;8502:7;;-1:-1:-1;;;4839:8:0;;;;;:23;;;4851:11;:9;:11::i;:::-;4839:40;;;;4866:13;:11;:13::i;:::-;4817:153;;;;-1:-1:-1;;;4817:153:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;8534:18:0::1;:9;:18:::0;;;::::1;::::0;;;;;;;;8372:188::o;6034:350::-;5246:13;:11;:13::i;:::-;5238:48;;;;;-1:-1:-1;;;5238:48:0;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;5238:48:0;;;;;;;;;;;;;;;6108:19:::1;:17;:19::i;:::-;6107:20;6085:115;;;;-1:-1:-1::0;;;6085:115:0::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6234:19;:17;:19::i;:::-;6233:20;6211:114;;;;-1:-1:-1::0;;;6211:114:0::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6336:7;:14:::0;;-1:-1:-1;;;;;;;;6336:14:0;;::::1;-1:-1:-1::0;;;6336:14:0::1;6361:15;-1:-1:-1::0;;;6361:15:0::1;::::0;;6034:350::o;3455:90::-;3524:13;;-1:-1:-1;;;3524:13:0;;;;;3455:90::o;2816:20::-;;;;;;;;;;;;;;;-1:-1:-1;;2816:20:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18353:105;5246:13;:11;:13::i;:::-;5238:48;;;;;-1:-1:-1;;;5238:48:0;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;5238:48:0;;;;;;;;;;;;;;;5355:8:::1;:6;:8::i;:::-;5354:9;5346:62;;;;-1:-1:-1::0;;;5346:62:0::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;;;;;18427:16:0::2;;::::0;;;:7:::2;:16;::::0;;;;:23;;-1:-1:-1;;18427:23:0::2;18446:4;18427:23;::::0;;18353:105::o;3965:126::-;4015:4;4039:10;;4053:1;4039:15;;:44;;;;-1:-1:-1;;4073:10:0;;4058:12;:25;;3965:126::o;3553:82::-;3618:9;;-1:-1:-1;;;3618:9:0;;;;;3553:82::o;6487:281::-;5246:13;:11;:13::i;:::-;5238:48;;;;;-1:-1:-1;;;5238:48:0;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;5238:48:0;;;;;;;;;;;;;;;5355:8:::1;:6;:8::i;:::-;5354:9;5346:62;;;;-1:-1:-1::0;;;5346:62:0::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6649:11:::2;6634:12;:26;6612:113;;;;-1:-1:-1::0;;;6612:113:0::2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6736:10;:24:::0;6487:281::o;10569:383::-;10672:4;10694:228;10717:12;:10;:12::i;:::-;10744:7;10766:145;10823:15;10766:145;;;;;;;;;;;;;;;;;:11;:25;10778:12;:10;:12::i;:::-;-1:-1:-1;;;;;10766:25:0;;;;;;;;;;;;;;;;;-1:-1:-1;10766:25:0;;;:34;;;;;;;;;;;:145;:38;:145::i;2919:39::-;;;;;;;;;;;;;;;:::o;10960:223::-;4581:13;;11089:4;;-1:-1:-1;;;4581:13:0;;;;4573:61;;;;-1:-1:-1;;;4573:61:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11111:42:::1;11121:12;:10;:12::i;:::-;11135:9;11146:6;11111:9;:42::i;7242:117::-:0;5246:13;:11;:13::i;:::-;5238:48;;;;;-1:-1:-1;;;5238:48:0;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;5238:48:0;;;;;;;;;;;;;;;5355:8:::1;:6;:8::i;:::-;5354:9;5346:62;;;;-1:-1:-1::0;;;5346:62:0::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7324:27:::2;7339:11;7324:14;:27::i;3643:80::-:0;3707:8;;-1:-1:-1;;;3707:8:0;;;;;3643:80::o;6776:94::-;5246:13;:11;:13::i;:::-;5238:48;;;;;-1:-1:-1;;;5238:48:0;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;5238:48:0;;;;;;;;;;;;;;;5355:8:::1;:6;:8::i;:::-;5354:9;5346:62;;;;-1:-1:-1::0;;;5346:62:0::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6853:9:::2;::::0;;-1:-1:-1;;;;6840:22:0;::::2;-1:-1:-1::0;;;6853:9:0;;;::::2;;;6852:10;6840:22:::0;;::::2;;::::0;;6776:94::o;4208:102::-;4258:4;4282:8;:6;:8::i;:::-;:20;;;;-1:-1:-1;;4294:8:0;;-1:-1:-1;;;4294:8:0;;;;;4208:102::o;9557:202::-;5584:14;:12;:14::i;:::-;5576:51;;;;;-1:-1:-1;;;5576:51:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;9670:14:::1;9698:11;;9687:34;;;;;;;::::0;::::1;;-1:-1:-1::0;9687:34:0::1;::::0;-1:-1:-1;9732:19:0::1;9738:4:::0;9687:34;9732:5:::1;:19::i;4099:101::-:0;4162:7;;4138:4;;-1:-1:-1;;;4162:7:0;;;;;:30;;;4173:19;:17;:19::i;18696:109::-;5246:13;:11;:13::i;:::-;5238:48;;;;;-1:-1:-1;;;5238:48:0;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;5238:48:0;;;;;;;;;;;;;;;5355:8:::1;:6;:8::i;:::-;5354:9;5346:62;;;;-1:-1:-1::0;;;5346:62:0::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;;;;;18773:16:0::2;18792:5;18773:16:::0;;;:7:::2;:16;::::0;;;;:24;;-1:-1:-1;;18773:24:0::2;::::0;;18696:109::o;18942:121::-;5246:13;:11;:13::i;:::-;5238:48;;;;;-1:-1:-1;;;5238:48:0;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;5238:48:0;;;;;;;;;;;;;;;5355:8:::1;:6;:8::i;:::-;5354:9;5346:62;;;;-1:-1:-1::0;;;5346:62:0::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;;;;;19025:22:0::2;19050:5;19025:22:::0;;;:10:::2;:22;::::0;;;;:30;;-1:-1:-1;;19025:30:0::2;::::0;;18942:121::o;6878:106::-;5246:13;:11;:13::i;:::-;5238:48;;;;;-1:-1:-1;;;5238:48:0;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;5238:48:0;;;;;;;;;;;;;;;5355:8:::1;:6;:8::i;:::-;5354:9;5346:62;;;;-1:-1:-1::0;;;5346:62:0::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6963:13:::2;::::0;;-1:-1:-1;;;;6946:30:0;::::2;-1:-1:-1::0;;;6963:13:0;;;::::2;;;6962:14;6946:30:::0;;::::2;;::::0;;6878:106::o;7094:140::-;5246:13;:11;:13::i;:::-;5238:48;;;;;-1:-1:-1;;;5238:48:0;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;5238:48:0;;;;;;;;;;;;;;;5355:8:::1;:6;:8::i;:::-;5354:9;5346:62;;;;-1:-1:-1::0;;;5346:62:0::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7201:25:::2;::::0;;-1:-1:-1;;;;7172:54:0;::::2;-1:-1:-1::0;;;7201:25:0;;;::::2;;;7200:26;7172:54:::0;;::::2;;::::0;;7094:140::o;8568:184::-;-1:-1:-1;;;;;8717:18:0;;;8685:7;8717:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;8568:184::o;17415:213::-;4581:13;;-1:-1:-1;;;4581:13:0;;;;4573:61;;;;-1:-1:-1;;;4573:61:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5067:25:::1;::::0;-1:-1:-1;;;5067:25:0;::::1;;;::::0;:42:::1;;;5096:13;:11;:13::i;:::-;5045:133;;;;-1:-1:-1::0;;;5045:133:0::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17568:52:::2;17585:12;:10;:12::i;:::-;17599:2;17603:6;17611:8;17568:16;:52::i;:::-;17415:213:::0;;;:::o;17157:250::-;:::o;5655:371::-;5246:13;:11;:13::i;:::-;5238:48;;;;;-1:-1:-1;;;5238:48:0;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;5238:48:0;;;;;;;;;;;;;;;5724:19:::1;:17;:19::i;:::-;5723:20;5701:115;;;;-1:-1:-1::0;;;5701:115:0::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5850:19;:17;:19::i;:::-;5849:20;5827:114;;;;-1:-1:-1::0;;;5827:114:0::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5960:8;:6;:8::i;:::-;5952:40;;;::::0;;-1:-1:-1;;;5952:40:0;;::::1;;::::0;::::1;::::0;::::1;::::0;;;;-1:-1:-1;;;5952:40:0;;;;;;;;;;;;;::::1;;6003:7;:15:::0;;-1:-1:-1;;;;6003:15:0::1;::::0;;5655:371::o;2873:39::-;;;;;;;;;;;;;;;:::o;2097:98::-;2177:10;2097:98;:::o;12829:413::-;-1:-1:-1;;;;;12957:19:0;;12949:68;;;;-1:-1:-1;;;12949:68:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;13036:21:0;;13028:68;;;;-1:-1:-1;;;13028:68:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;13109:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;:36;;;13160:9;:7;:9::i;:::-;13156:79;;;13207:7;-1:-1:-1;;;;;13191:32:0;13200:5;-1:-1:-1;;;;;13191:32:0;;13216:6;13191:32;;;;;;;;;;;;;;;;;;12829:413;;;:::o;3016:104::-;3102:10;;3062:4;;-1:-1:-1;;;;;3102:10:0;3086:12;:10;:12::i;:::-;-1:-1:-1;;;;;3086:26:0;;3079:33;;3016:104;:::o;3128:97::-;3172:4;3196:7;:21;3204:12;:10;:12::i;:::-;-1:-1:-1;;;;;3196:21:0;;;;;;;;;;;;-1:-1:-1;3196:21:0;;;;;-1:-1:-1;3128:97:0;:::o;9767:503::-;4581:13;;9939:4;;-1:-1:-1;;;4581:13:0;;;;4573:61;;;;-1:-1:-1;;;4573:61:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9956:53:::1;9973:6;9981:9;9992:6;10000:8;9956:16;:53::i;:::-;10020:220;10043:6;10064:12;:10;:12::i;:::-;10091:138;10147:6;10091:138;;;;;;;;;;;;;;;;;-1:-1:-1::0;;;;;10091:19:0;::::1;;::::0;;;:11:::1;:19;::::0;;;;;10111:12:::1;:10;:12::i;10020:220::-;-1:-1:-1::0;10258:4:0::1;9767:503:::0;;;;;;:::o;13606:226::-;13726:7;13762:12;13754:6;;;;13746:29;;;;-1:-1:-1;;;13746:29:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;13798:5:0;;;13606:226::o;12395:426::-;-1:-1:-1;;;;;12471:21:0;;12463:67;;;;-1:-1:-1;;;12463:67:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12564:105;12601:6;12564:105;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;12564:18:0;;:9;:18;;;;;;;;;;;;:105;:22;:105::i;:::-;-1:-1:-1;;;;;12543:18:0;;:9;:18;;;;;;;;;;:126;12695:12;;:24;;12712:6;12695:16;:24::i;:::-;12680:12;:39;12734:9;:7;:9::i;:::-;12730:84;;;12765:37;;;;;;;;12791:1;;-1:-1:-1;;;;;12765:37:0;;;;;;;;;;;;12395:426;;:::o;13273:181::-;13331:7;13363:5;;;13387:6;;;;13379:46;;;;;-1:-1:-1;;;13379:46:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;13445:1;13273:181;-1:-1:-1;;;13273:181:0:o;3233:97::-;3277:4;3301:7;:21;3309:12;:10;:12::i;12038:349::-;-1:-1:-1;;;;;12114:21:0;;12106:65;;;;;-1:-1:-1;;;12106:65:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;12199:12;;:24;;12216:6;12199:16;:24::i;:::-;12184:12;:39;-1:-1:-1;;;;;12255:18:0;;:9;:18;;;;;;;;;;;:30;;12278:6;12255:22;:30::i;:::-;-1:-1:-1;;;;;12234:18:0;;:9;:18;;;;;;;;;;:51;12300:9;:7;:9::i;:::-;12296:84;;;12331:37;;;;;;;;-1:-1:-1;;;;;12331:37:0;;;12348:1;;12331:37;;;;;;;;;12038:349;;:::o;13462:136::-;13520:7;13547:43;13551:1;13554;13547:43;;;;;;;;;;;;;;;;;:3;:43::i;11401:629::-;4581:13;;-1:-1:-1;;;4581:13:0;;;;4573:61;;;;-1:-1:-1;;;4573:61:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;11579:20:0;::::1;11571:70;;;;-1:-1:-1::0;;;11571:70:0::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;;;;;11660:23:0;::::1;11652:71;;;;-1:-1:-1::0;;;11652:71:0::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11756:108;11792:6;11756:108;;;;;;;;;;;;;;;;;-1:-1:-1::0;;;;;11756:17:0;::::1;:9;:17:::0;;;::::1;::::0;;;;;;;;:108;:21:::1;:108::i;:::-;-1:-1:-1::0;;;;;11736:17:0;;::::1;:9;:17:::0;;;::::1;::::0;;;;;;;:128;;;;11898:20;;::::1;::::0;;;;:32:::1;::::0;11923:6;11898:24:::1;:32::i;:::-;-1:-1:-1::0;;;;;11875:20:0;::::1;:9;:20:::0;;;::::1;::::0;;;;;;:55;11946:8;11941:82:::1;;11993:9;-1:-1:-1::0;;;;;11976:35:0::1;11985:6;-1:-1:-1::0;;;;;11976:35:0::1;;12004:6;11976:35;;;;;;;;;;;;;;;;;;11401:629:::0;;;;:::o;11191:202::-;4581:13;;-1:-1:-1;;;4581:13:0;;;;4573:61;;;;-1:-1:-1;;;4573:61:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11330:55:::1;11347:6;11355:9;11366:6;11375:9;:7;:9::i;:::-;11374:10;11330:16;:55::i;7542:565::-:0;7615:10;;;-1:-1:-1;;;;;7615:10:0;;;7629:5;7607:19;;;:7;:19;;;;;;;;:27;;-1:-1:-1;;7607:27:0;;;;;;7691:10;;;;7683:19;;:7;:19;;;;;;:27;;;;;;7770:10;;;;7759:22;;:10;:22;;;;;;:30;;;;;;7839:20;;;;;;;;;;;;;:27;;;;7615:10;7839:27;;;;;;7910:20;;;;;;:27;;;;;;;;7981:23;;;;;;;:30;;;;;;;;;;;8058:24;;-1:-1:-1;;;;;;8058:24:0;;;;;;7542:565::o;3342:103::-;3389:4;3413:10;:24;3424:12;:10;:12::i;-1:-1:-1:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;

Swarm Source

ipfs://dbb11a83bf8b1a9495cdf61292cd2f1bab8a639383d0e14c3dfac1ab7996769a

Block Transaction Difficulty Gas Used Reward
View All Blocks Produced

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

OVERVIEW

Emblem Vault's proprietary technology temporarily locks your NFT from any compatible blockchain inside a modern ERC-721 Ethereum NFT

Loading...
Loading

Validator Index Block Amount
View All Withdrawals

Txn Hash Block Value Eth2 PubKey Valid
View All Deposits
[ Download: CSV Export  ]
[ 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.