Contract 0x8b8407c6184f1f0fd1082e83d6a3b8349caced12 8

 
Txn Hash Method
Block
From
To
Value [Txn Fee]
0x522da7266063d30a29912b292bd3784e83eafd7f1dabb0cb7a76b9d62f2b0f8bTransfer546616492023-01-29 12:58:323 days 22 hrs ago0xadf740f9a53173d230c3e2c4038454e850561075 IN  Circuits of Value: COVAL Token0 FTM0.002332762814
0xd96ff4d7ff3ed904002c8f0218a3a74a3d1887ff59dcacb089500aed68f991b2Transfer484277342022-10-04 22:21:37120 days 12 hrs ago0x285fbe8d062a1441b41519f5ce410ad2c1c1c6c1 IN  Circuits of Value: COVAL Token0 FTM0.000136755239
0x4923fdd2b244243795145d9f52572e365786da125858ec9642ccb9f150e78582Approve464782832022-09-06 14:20:40148 days 20 hrs ago0xd94621b5bbb221457c0f20a584908d89d04ef55d IN  Circuits of Value: COVAL Token0 FTM0.000132574376
0xd91419f2487b935a166279cb71e71d544cdb35c2a2c5cbc70b088a8626a68504Approve432644032022-07-21 21:33:27195 days 13 hrs ago0x3d311ace8379ec83c641063005713ae5a4a4dd70 IN  Circuits of Value: COVAL Token0 FTM0.000203625286
0x5b341460ac1e4f6988639a81472b6d94b71542c9937f6daa5883a2395e9c0facApprove432616332022-07-21 20:41:08195 days 14 hrs ago0x0220d5473f7c5365239abde0ce58eb9169e58103 IN  Circuits of Value: COVAL Token0 FTM0.000241961935
0x90f584e8146a2e34a214f69d80a803abe0e33a7eac8396d92de8d01bde38bc6eTransfer432615592022-07-21 20:39:49195 days 14 hrs ago0x0220d5473f7c5365239abde0ce58eb9169e58103 IN  Circuits of Value: COVAL Token0 FTM0.003710980935
0xaa77bab99daef58c71667de1e86bb114de86a79f9b69aa83e874dbb5626738b5Approve432226142022-07-21 7:00:29196 days 4 hrs ago0x030c8c0a9d2a81c236bb907689ae6751b954caf3 IN  Circuits of Value: COVAL Token0 FTM0.00023050424
0x772ce43ba6cfbf03ddbfe75b63ea5bb101325d1adfbd5d6eb2b674f11ce3be9aTransfer432222142022-07-21 6:52:51196 days 4 hrs ago0x0220d5473f7c5365239abde0ce58eb9169e58103 IN  Circuits of Value: COVAL Token0 FTM0.000396021
0x7b2baa396b0a6369f400145c6a90c7f0efe69225b1a5c386c455c6602557ee54Approve430939042022-07-19 10:06:23198 days 54 mins ago0x0220d5473f7c5365239abde0ce58eb9169e58103 IN  Circuits of Value: COVAL Token0 FTM0.000757419601
0x6266dea25c4ef5958e84ec1571915b0c8e65a09936b26477128a9a1d304c8f3fApprove388635652022-05-23 7:27:13255 days 3 hrs ago0x511dbe9e6b7ede607f47d00a681bd5c7a6d397a1 IN  Circuits of Value: COVAL Token0 FTM0.065258844
0x9d9f37969708837d795acb9de74b48db7c4b29fefa27866f4f2674719977a74eApprove292423862022-01-28 2:13:51370 days 8 hrs ago0x285fbe8d062a1441b41519f5ce410ad2c1c1c6c1 IN  Circuits of Value: COVAL Token0 FTM0.039471204696
0x95aab03ae5add2470b3d5b34de7f31d6ec77f114e4f227ea6b147aea604fc5aaApprove286797962022-01-21 23:54:19376 days 11 hrs ago0x285fbe8d062a1441b41519f5ce410ad2c1c1c6c1 IN  Circuits of Value: COVAL Token0 FTM0.057204375134
0xaa723ccde4548ce4b1ff09a2178431ef5af02e78f6e9c855df464bd3462549deTransfer283138912022-01-18 5:45:11380 days 5 hrs ago0xc8f78366929e752783c5735f02aa7a701239748a IN  Circuits of Value: COVAL Token0 FTM0.018677616854
0x992d509438d02d5894d4d873ac5bd730c04d97ea94eaa9996ea31ab9de1e9b29Approve281455512022-01-16 14:37:21381 days 20 hrs ago0xc8f78366929e752783c5735f02aa7a701239748a IN  Circuits of Value: COVAL Token0 FTM0.017536800396
0x07b81be63a623b78a157c882327ef36adf72577ffce0d2ae0ce41d5a964754d8Approve244883422021-12-09 21:10:02419 days 13 hrs ago0xc00a6614b8030ce216302016e11c6b4140b5e499 IN  Circuits of Value: COVAL Token0 FTM0.009603138641
0x332c27a0cf2d5e809d3805e76f8944c85513bbdca6a00a7092c3dc6fe8a94e47Approve241859392021-12-06 20:14:09422 days 14 hrs ago0x9c89064ce9253dfd6ad2fabe36f49c32367ee3d5 IN  Circuits of Value: COVAL Token0 FTM0.015013167
0x3812fdfb381e05b5918a213cd555aef42a75b525e0b33529e5664017fb053dc1Approve241793952021-12-06 18:33:49422 days 16 hrs ago0xbb3bad2a51a6dd3b428fd3d95e05e0caf81da5c2 IN  Circuits of Value: COVAL Token0 FTM0.01205966812
0x739a337817d7d4f8a8a3df100e0ee2a90d7d21c07996d6b35a510b2f5270c35bApprove241788362021-12-06 18:26:19422 days 16 hrs ago0x511dbe9e6b7ede607f47d00a681bd5c7a6d397a1 IN  Circuits of Value: COVAL Token0 FTM0.013402842453
0x3b2d63fc1722eefb656cb4d12fc80200ad6ecb68bdc3471e351b7e889055e687Approve235133392021-11-29 21:39:16429 days 13 hrs ago0x3827b3b788b3bf8282c5c733d0f16989f8b41389 IN  Circuits of Value: COVAL Token0 FTM0.007838672341
0x39be7de144d120656de308e6ba586914c691469bd75098b4ce88eb817be699d8Approve235133072021-11-29 21:38:47429 days 13 hrs ago0x3827b3b788b3bf8282c5c733d0f16989f8b41389 IN  Circuits of Value: COVAL Token0 FTM0.006960748
0xcc9a02b9d82dc813c7cd4c61b5cd8de764e26a2640331f0bf180a104814be8acApprove235128502021-11-29 21:32:49429 days 13 hrs ago0x3827b3b788b3bf8282c5c733d0f16989f8b41389 IN  Circuits of Value: COVAL Token0 FTM0.008190773472
0x3f59ec95e0e9f28179b01243bce76988548c94cfa7363036b772456c3d3e5ae0Approve191111532021-10-14 22:26:53475 days 12 hrs ago0x261e24907f66fea18594bdd144ad81908fec005a IN  Circuits of Value: COVAL Token0 FTM0.005868172024
0xb16f3ffabb40658bdda130c696f0ac5bc65dec2deed3a9fa7809c75ec6f7d1ceApprove186729052021-10-09 12:49:29480 days 22 hrs ago0x7ff315ae57fab67470ad97fc0487c4e736f63145 IN  Circuits of Value: COVAL Token0 FTM0.006214572013
0x878e25a77ac51a24a4a129e416390537ceca09613f91d5fc1b108de3ad794537Approve179997042021-09-30 15:09:03489 days 19 hrs ago0xa2a6117bda69d57dbb98fee113dad91fd503337e IN  Circuits of Value: COVAL Token0 FTM0.006465775093
0xcc0a077dde34841da423c8d2517ab9f7a9c2cb12a51e387e13be60d2ec36a35dApprove169745582021-09-13 0:54:09507 days 10 hrs ago0x5a63264914a1ecb626e32e8ad683704ba7b0621f IN  Circuits of Value: COVAL Token0 FTM0.003909234829
[ Download CSV Export 

OVERVIEW

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

Latest 1 internal transaction
Parent Txn Hash Block From To Value
0x35e0d2320a318147ae54d0f17328405d117986b41d79f09c02335bc38e95285b26389942021-03-08 15:59:43695 days 19 hrs ago Circuits of Value: Deployer  Contract Creation0 FTM
[ Download CSV Export 
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 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 Gas Used Reward
Age Block Fee Address BC Fee Address Voting Power Jailed Incoming
Validator ID :
0 FTM

Amount Staked
0

Amount Delegated
0

Staking Total
0

Staking Start Epoch
0

Staking Start Time
0

Proof of Importance
0

Origination Score
0

Validation Score
0

Active
0

Online
0

Downtime
0 s
Address Amount claimed Rewards Created On Epoch Created On
Block Uncle Number Difficulty Gas Used Reward
Loading
Loading
Make sure to use the "Vote Down" button for any spammy posts, and the "Vote Up" for interesting conversations.