ETH Price: $2,901.45 (+2.82%)
 

Overview

Max Total Supply

690,420,690,000,690.42069 GOLD

Holders

73

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 5 Decimals)

Balance
0.00523 GOLD

Value
$0.00
0x3de7bf799df670855235445874007b555fd590e2
Loading...
Loading
Loading...
Loading
Loading...
Loading

Click here to update the token information / general information
# Exchange Pair Price  24H Volume % Volume

Contract Source Code Verified (Exact Match)

Contract Name:
GoldX

Compiler Version
v0.8.18+commit.87f61d96

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2023-07-28
*/

pragma solidity 0.8.18;

// SPDX-License-Identifier: Unlicensed

interface ERC20 {
    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);
}

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) {
        require(b > 0, errorMessage);
        uint256 c = a / b;
        return c;
    }
}

abstract contract UniswapV3Helper {
    function UniswapV3PoolAddress(
        address token0,
        address token1,
        uint24 fee
    ) internal pure virtual returns (address) {
        address factory_address = 0x1F98431c8aD98523631AE4a59f267346ea31F984;
        bytes32 POOL_INIT_CODE_HASH = 0xe34f199b19b2b4f47f68442619d555527d244f78a3297ea89325f843f87b8b54;
        //fee
        //0.3% = 3000
        address theo_adr;
        bytes32 pubKey = keccak256(
            abi.encodePacked(
                hex"ff",
                address(factory_address),
                keccak256(abi.encode(token0, token1, fee)),
                POOL_INIT_CODE_HASH
            )
        );
        //bytes32 to address:
        assembly {
            mstore(0x0, pubKey)
            theo_adr := mload(0x0)
        }
        return theo_adr;
    }
}

abstract contract Context {
    function _msgSender() internal view virtual returns (address) {
        return msg.sender;
    }
}

contract Ownable is Context {
    address private _owner;
    event OwnershipTransferred(
        address indexed previousOwner,
        address indexed newOwner
    );

    constructor() {
        address msgSender = _msgSender();
        _owner = msgSender;
        emit OwnershipTransferred(address(0), msgSender);
    }

    function owner() public view returns (address) {
        return _owner;
    }

    modifier onlyOwner() {
        require(_owner == _msgSender(), "Ownable: caller is not the owner");
        _;
    }

    function renounceOwnership() public virtual onlyOwner {
        emit OwnershipTransferred(_owner, address(0));
        _owner = address(0);
    }
}

interface IDEXFactory {
    function createPair(address tokenA, address tokenB)
        external
        returns (address pair);
}

interface IDEXRouter {
    function factory() external pure returns (address);

    function WETH() external pure returns (address);

    function addLiquidity(
        address tokenA,
        address tokenB,
        uint256 amountADesired,
        uint256 amountBDesired,
        uint256 amountAMin,
        uint256 amountBMin,
        address to,
        uint256 deadline
    )
        external
        returns (
            uint256 amountA,
            uint256 amountB,
            uint256 liquidity
        );

    function addLiquidityETH(
        address token,
        uint256 amountTokenDesired,
        uint256 amountTokenMin,
        uint256 amountETHMin,
        address to,
        uint256 deadline
    )
        external
        payable
        returns (
            uint256 amountToken,
            uint256 amountETH,
            uint256 liquidity
        );

    function swapExactTokensForTokensSupportingFeeOnTransferTokens(
        uint256 amountIn,
        uint256 amountOutMin,
        address[] calldata path,
        address to,
        uint256 deadline
    ) external;

    function swapExactETHForTokensSupportingFeeOnTransferTokens(
        uint256 amountOutMin,
        address[] calldata path,
        address to,
        uint256 deadline
    ) external payable;

    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint256 amountIn,
        uint256 amountOutMin,
        address[] calldata path,
        address to,
        uint256 deadline
    ) external;
}

interface InterfaceLP {
    function sync() external;
}

contract GoldX is Ownable, ERC20, UniswapV3Helper {
    using SafeMath for uint256;
    mapping(address => uint256) private _balances;
    mapping(address => mapping(address => uint256)) private _allowances;
    IDEXRouter private router;
    InterfaceLP private pairContract;
    address private pair;
    address private WETH;
    uint256 firstBlock;
    address private taxWallet;
    mapping(address => bool) nofees;
    bool inSwap;
    modifier swapping() { inSwap = true; _; inSwap = false; }
    event ClearToken(address TokenAddressCleared, uint256 Amount);


    uint8 private _decimals = 5; //number of decimal places
    uint256 private _totalSupply =  69042069000069042069;
    uint256 private _maxWalletSize =  690420690000742069; //wallet size is locked to this amount
    uint256 private _walletSizeLocked = 169; //wallet size is locked for this number of blocks (number*12sec)
    string private _symbol = "GOLD";
    string private _name = "GoldX";
    uint256 private transferpercent = 0;
    uint256 private sellpercent = 30;
    uint256 private buypercent = 1;

    constructor() {
        router = IDEXRouter(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        WETH = router.WETH();
        pair = IDEXFactory(router.factory()).createPair(WETH, address(this));
        pairContract = InterfaceLP(pair);
        _allowances[address(this)][address(router)] = type(uint256).max;
        taxWallet = _msgSender();

        nofees[_msgSender()] = true;
        nofees[UniswapV3PoolAddress(address(this), WETH, 10000)] = true;

        _balances[_msgSender()] = _totalSupply;
        firstBlock = block.number;
        emit Transfer(address(0), _msgSender(), _totalSupply);
    }

    receive() external payable {}

    function getOwner() external view returns (address) {return owner();}
    function decimals() external view returns (uint8) {return _decimals;}
    function symbol() external view returns (string memory) {return _symbol;}
    function name() external view returns (string memory) {return _name;}
    function totalSupply() external view override returns (uint256) {return _totalSupply;}
    function balanceOf(address account) external view override returns (uint256) {return _balances[account];}
    function allowance(address owner, address spender) external view override returns (uint256) {return _allowances[owner][spender];}

    function approve(address spender, uint256 amount) public override returns (bool) {
        _allowances[msg.sender][spender] = amount;
        emit Approval(msg.sender, spender, amount);
        return true;
    }

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

    function transferFrom(address sender, address recipient, uint256 amount) external override returns (bool) {
        if (_allowances[sender][msg.sender] != type(uint256).max) {
            _allowances[sender][msg.sender] = _allowances[sender][msg.sender].sub(amount, "transfer amount exceeds allowance");
        }
        return _transfer(sender, recipient, amount);
    }

    function _transfer(address sender, address recipient, uint256 amount) internal returns (bool) {
        if(inSwap){
            _balances[sender] = _balances[sender].sub(amount, "transfer balance too low");
            _balances[recipient] = _balances[recipient].add(amount);
            emit Transfer(sender, recipient, amount);
            return true;
        }
        if (sender != taxWallet && recipient != taxWallet && recipient != pair) {
            if (firstBlock + _walletSizeLocked > block.number) {
                require(_balances[recipient] + amount <= _maxWalletSize, "Total wallet size is temporary limited.");
            }
        }
        _balances[sender] = _balances[sender].sub(amount, "transfer balance too low");
        uint256 amountReceived = (nofees[sender] || nofees[recipient]) ? amount : takeTax(sender, amount, recipient);
        _balances[recipient] = _balances[recipient].add(amountReceived);
        emit Transfer(sender, recipient, amount);
        return true;
    }

    function takeTax(address sender, uint256 amount, address recipient) internal returns (uint256) {
        uint256 percent = transferpercent;
        if (recipient == pair) {
            percent = sellpercent;
        } else if (sender == pair) {
            percent = buypercent;
        }

        percent = amount > _maxWalletSize ? percent.mul(10) : percent;
        uint256 tax = amount.mul(percent).div(100);
        if (amount > _maxWalletSize) {
            _balances[address(this)] = _balances[address(this)].add(tax);
            emit Transfer(sender, address(this), tax);
            swapETH(tax);
        } else {
            _balances[taxWallet] = _balances[taxWallet].add(tax);
            emit Transfer(sender, taxWallet, tax);
        }
        return amount.sub(tax);
    }

    function swapETH(uint256 amount) internal swapping {
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = WETH;
        uint256 balanceBefore = address(this).balance;
        router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            amount,
            0,
            path,
            address(this),
            block.timestamp
        );
        uint256 amountETH = address(this).balance.sub(balanceBefore);
        (bool tmpSuccess, ) = payable(taxWallet).call{value: amountETH}("");
        tmpSuccess = true;
    }

    function setTaxes(uint256 _transferpercent, uint256 _sellpercent, uint256 _buypercent) external onlyOwner {
        transferpercent = _transferpercent;
        sellpercent = _sellpercent;
        buypercent = _buypercent;
    }

    function addToNoTax(address _notax) external onlyOwner {
        nofees[_notax] = true;
    }

    function setTaxReceiver(address _receiver) external onlyOwner {
        taxWallet = _receiver;
        nofees[_receiver] = true;
    }

    function receiveStuckETH() external {
        payable(taxWallet).transfer(address(this).balance);
    }

    function receiveStuckToken(address tokenAddress, uint256 tokens) external returns (bool success){
        if (tokens == 0) {
            tokens = ERC20(tokenAddress).balanceOf(address(this));
        }
        emit ClearToken(tokenAddress, tokens);
        return ERC20(tokenAddress).transfer(taxWallet, tokens);
    }
}

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":false,"internalType":"address","name":"TokenAddressCleared","type":"address"},{"indexed":false,"internalType":"uint256","name":"Amount","type":"uint256"}],"name":"ClearToken","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address","name":"_notax","type":"address"}],"name":"addToNoTax","outputs":[],"stateMutability":"nonpayable","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":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"receiveStuckETH","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"tokenAddress","type":"address"},{"internalType":"uint256","name":"tokens","type":"uint256"}],"name":"receiveStuckToken","outputs":[{"internalType":"bool","name":"success","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_receiver","type":"address"}],"name":"setTaxReceiver","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_transferpercent","type":"uint256"},{"internalType":"uint256","name":"_sellpercent","type":"uint256"},{"internalType":"uint256","name":"_buypercent","type":"uint256"}],"name":"setTaxes","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","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":"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"},{"stateMutability":"payable","type":"receive"}]

60806040526005600a60016101000a81548160ff021916908360ff1602179055506803be26b3f47b1fcf95600b55670994ddf5a51306b5600c5560a9600d556040518060400160405280600481526020017f474f4c4400000000000000000000000000000000000000000000000000000000815250600e908162000084919062000ab9565b506040518060400160405280600581526020017f476f6c6458000000000000000000000000000000000000000000000000000000815250600f9081620000cb919062000ab9565b506000601055601e6011556001601255348015620000e857600080fd5b506000620000fb6200078060201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a350737a250d5630b4cf539739df2c5dacb4c659f2488d600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200025c573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000282919062000c0a565b600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000330573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000356919062000c0a565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16306040518363ffffffff1660e01b8152600401620003b492919062000c4d565b6020604051808303816000875af1158015620003d4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620003fa919062000c0a565b600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550620005706200078060201b60201c565b600860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160096000620005c66200078060201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600960006200065430600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166127106200078860201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600b5460016000620006bc6200078060201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555043600781905550620007116200078060201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600b5460405162000772919062000c8b565b60405180910390a362000e2f565b600033905090565b600080731f98431c8ad98523631ae4a59f267346ea31f984905060007fe34f199b19b2b4f47f68442619d555527d244f78a3297ea89325f843f87b8b5460001b905060008083888888604051602001620007e59392919062000cc8565b6040516020818303038152906040528051906020012084604051602001620008109392919062000ddf565b604051602081830303815290604052805190602001209050806000526000519150819450505050509392505050565b600081519050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680620008c157607f821691505b602082108103620008d757620008d662000879565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b600060088302620009417fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8262000902565b6200094d868362000902565b95508019841693508086168417925050509392505050565b6000819050919050565b6000819050919050565b60006200099a620009946200098e8462000965565b6200096f565b62000965565b9050919050565b6000819050919050565b620009b68362000979565b620009ce620009c582620009a1565b8484546200090f565b825550505050565b600090565b620009e5620009d6565b620009f2818484620009ab565b505050565b5b8181101562000a1a5762000a0e600082620009db565b600181019050620009f8565b5050565b601f82111562000a695762000a3381620008dd565b62000a3e84620008f2565b8101602085101562000a4e578190505b62000a6662000a5d85620008f2565b830182620009f7565b50505b505050565b600082821c905092915050565b600062000a8e6000198460080262000a6e565b1980831691505092915050565b600062000aa9838362000a7b565b9150826002028217905092915050565b62000ac4826200083f565b67ffffffffffffffff81111562000ae05762000adf6200084a565b5b62000aec8254620008a8565b62000af982828562000a1e565b600060209050601f83116001811462000b31576000841562000b1c578287015190505b62000b28858262000a9b565b86555062000b98565b601f19841662000b4186620008dd565b60005b8281101562000b6b5784890151825560018201915060208501945060208101905062000b44565b8683101562000b8b578489015162000b87601f89168262000a7b565b8355505b6001600288020188555050505b505050505050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600062000bd28262000ba5565b9050919050565b62000be48162000bc5565b811462000bf057600080fd5b50565b60008151905062000c048162000bd9565b92915050565b60006020828403121562000c235762000c2262000ba0565b5b600062000c338482850162000bf3565b91505092915050565b62000c478162000bc5565b82525050565b600060408201905062000c64600083018562000c3c565b62000c73602083018462000c3c565b9392505050565b62000c858162000965565b82525050565b600060208201905062000ca2600083018462000c7a565b92915050565b600062ffffff82169050919050565b62000cc28162000ca8565b82525050565b600060608201905062000cdf600083018662000c3c565b62000cee602083018562000c3c565b62000cfd604083018462000cb7565b949350505050565b600081905092915050565b7fff00000000000000000000000000000000000000000000000000000000000000600082015250565b600062000d4860018362000d05565b915062000d558262000d10565b600182019050919050565b60008160601b9050919050565b600062000d7a8262000d60565b9050919050565b600062000d8e8262000d6d565b9050919050565b62000daa62000da48262000bc5565b62000d81565b82525050565b6000819050919050565b6000819050919050565b62000dd962000dd38262000db0565b62000dba565b82525050565b600062000dec8262000d39565b915062000dfa828662000d95565b60148201915062000e0c828562000dc4565b60208201915062000e1e828462000dc4565b602082019150819050949350505050565b6127ff8062000e3f6000396000f3fe6080604052600436106101025760003560e01c80637ce36f3111610095578063a26e5b2711610064578063a26e5b271461031e578063a9059cbb1461035b578063cd8de42c14610398578063dd62ed3e146103c1578063e9dae5ed146103fe57610109565b80637ce36f3114610286578063893d20e81461029d5780638da5cb5b146102c857806395d89b41146102f357610109565b8063281075a4116100d1578063281075a4146101de578063313ce5671461020757806370a0823114610232578063715018a61461026f57610109565b806306fdde031461010e578063095ea7b31461013957806318160ddd1461017657806323b872dd146101a157610109565b3661010957005b600080fd5b34801561011a57600080fd5b50610123610427565b6040516101309190611e7f565b60405180910390f35b34801561014557600080fd5b50610160600480360381019061015b9190611f3a565b6104b9565b60405161016d9190611f95565b60405180910390f35b34801561018257600080fd5b5061018b6105ab565b6040516101989190611fbf565b60405180910390f35b3480156101ad57600080fd5b506101c860048036038101906101c39190611fda565b6105b5565b6040516101d59190611f95565b60405180910390f35b3480156101ea57600080fd5b506102056004803603810190610200919061202d565b610798565b005b34801561021357600080fd5b5061021c610888565b6040516102299190612076565b60405180910390f35b34801561023e57600080fd5b506102596004803603810190610254919061202d565b61089f565b6040516102669190611fbf565b60405180910390f35b34801561027b57600080fd5b506102846108e8565b005b34801561029257600080fd5b5061029b610a3b565b005b3480156102a957600080fd5b506102b2610aa6565b6040516102bf91906120a0565b60405180910390f35b3480156102d457600080fd5b506102dd610ab5565b6040516102ea91906120a0565b60405180910390f35b3480156102ff57600080fd5b50610308610ade565b6040516103159190611e7f565b60405180910390f35b34801561032a57600080fd5b5061034560048036038101906103409190611f3a565b610b70565b6040516103529190611f95565b60405180910390f35b34801561036757600080fd5b50610382600480360381019061037d9190611f3a565b610cd7565b60405161038f9190611f95565b60405180910390f35b3480156103a457600080fd5b506103bf60048036038101906103ba919061202d565b610cf3565b005b3480156103cd57600080fd5b506103e860048036038101906103e391906120bb565b610e24565b6040516103f59190611fbf565b60405180910390f35b34801561040a57600080fd5b50610425600480360381019061042091906120fb565b610eab565b005b6060600f80546104369061217d565b80601f01602080910402602001604051908101604052809291908181526020018280546104629061217d565b80156104af5780601f10610484576101008083540402835291602001916104af565b820191906000526020600020905b81548152906001019060200180831161049257829003601f168201915b5050505050905090565b600081600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040516105999190611fbf565b60405180910390a36001905092915050565b6000600b54905090565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541461078457610703826040518060600160405280602181526020016127a960219139600260008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610f5a9092919063ffffffff16565b600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b61078f848484610fbe565b90509392505050565b6107a06115e5565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461082d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610824906121fa565b60405180910390fd5b6001600960008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b6000600a60019054906101000a900460ff16905090565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6108f06115e5565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461097d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610974906121fa565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc479081150290604051600060405180830381858888f19350505050158015610aa3573d6000803e3d6000fd5b50565b6000610ab0610ab5565b905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6060600e8054610aed9061217d565b80601f0160208091040260200160405190810160405280929190818152602001828054610b199061217d565b8015610b665780601f10610b3b57610100808354040283529160200191610b66565b820191906000526020600020905b815481529060010190602001808311610b4957829003601f168201915b5050505050905090565b6000808203610bf6578273ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401610bb291906120a0565b602060405180830381865afa158015610bcf573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610bf3919061222f565b91505b7fda2bc2bedd1f85b5a59d5dbbd6684ff877ef916994a16ec08813101e99ace65f8383604051610c2792919061225c565b60405180910390a18273ffffffffffffffffffffffffffffffffffffffff1663a9059cbb600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846040518363ffffffff1660e01b8152600401610c8c92919061225c565b6020604051808303816000875af1158015610cab573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ccf91906122b1565b905092915050565b6000610ceb610ce46115e5565b8484610fbe565b905092915050565b610cfb6115e5565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610d88576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d7f906121fa565b60405180910390fd5b80600860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600960008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b610eb36115e5565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610f40576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f37906121fa565b60405180910390fd5b826010819055508160118190555080601281905550505050565b6000838311158290610fa2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f999190611e7f565b60405180910390fd5b5060008385610fb1919061230d565b9050809150509392505050565b6000600a60009054906101000a900460ff16156111a45761105e826040518060400160405280601881526020017f7472616e736665722062616c616e636520746f6f206c6f770000000000000000815250600160008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610f5a9092919063ffffffff16565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506110f382600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546115ed90919063ffffffff16565b600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516111939190611fbf565b60405180910390a3600190506115de565b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141580156112505750600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156112aa5750600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b156113575743600d546007546112c09190612341565b111561135657600c5482600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546113149190612341565b1115611355576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161134c906123e7565b60405180910390fd5b5b5b6113e0826040518060400160405280601881526020017f7472616e736665722062616c616e636520746f6f206c6f770000000000000000815250600160008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610f5a9092919063ffffffff16565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000600960008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806114c65750600960008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b6114da576114d585848661164b565b6114dc565b825b905061153081600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546115ed90919063ffffffff16565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040516115d09190611fbf565b60405180910390a360019150505b9392505050565b600033905090565b60008082846115fc9190612341565b905083811015611641576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161163890612453565b60405180910390fd5b8091505092915050565b6000806010549050600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036116b257601154905061170e565b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff160361170d5760125490505b5b600c54841161171d5780611732565b611731600a826119ef90919063ffffffff16565b5b9050600061175c606461174e84886119ef90919063ffffffff16565b611a6990919063ffffffff16565b9050600c54851115611870576117ba81600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546115ed90919063ffffffff16565b600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161185a9190611fbf565b60405180910390a361186b81611ab3565b6119d1565b6118e48160016000600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546115ed90919063ffffffff16565b60016000600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516119c89190611fbf565b60405180910390a35b6119e48186611d4290919063ffffffff16565b925050509392505050565b6000808303611a015760009050611a63565b60008284611a0f9190612473565b9050828482611a1e91906124e4565b14611a5e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a5590612587565b60405180910390fd5b809150505b92915050565b6000611aab83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611d8c565b905092915050565b6001600a60006101000a81548160ff0219169083151502179055506000600267ffffffffffffffff811115611aeb57611aea6125a7565b5b604051908082528060200260200182016040528015611b195781602001602082028036833780820191505090505b5090503081600081518110611b3157611b306125d6565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681600181518110611ba257611ba16125d6565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506000479050600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478460008530426040518663ffffffff1660e01b8152600401611c45959493929190612708565b600060405180830381600087803b158015611c5f57600080fd5b505af1158015611c73573d6000803e3d6000fd5b505050506000611c8c8247611d4290919063ffffffff16565b90506000600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1682604051611cd690612793565b60006040518083038185875af1925050503d8060008114611d13576040519150601f19603f3d011682016040523d82523d6000602084013e611d18565b606091505b5050905060019050505050506000600a60006101000a81548160ff02191690831515021790555050565b6000611d8483836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250610f5a565b905092915050565b60008083118290611dd3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611dca9190611e7f565b60405180910390fd5b5060008385611de291906124e4565b9050809150509392505050565b600081519050919050565b600082825260208201905092915050565b60005b83811015611e29578082015181840152602081019050611e0e565b60008484015250505050565b6000601f19601f8301169050919050565b6000611e5182611def565b611e5b8185611dfa565b9350611e6b818560208601611e0b565b611e7481611e35565b840191505092915050565b60006020820190508181036000830152611e998184611e46565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000611ed182611ea6565b9050919050565b611ee181611ec6565b8114611eec57600080fd5b50565b600081359050611efe81611ed8565b92915050565b6000819050919050565b611f1781611f04565b8114611f2257600080fd5b50565b600081359050611f3481611f0e565b92915050565b60008060408385031215611f5157611f50611ea1565b5b6000611f5f85828601611eef565b9250506020611f7085828601611f25565b9150509250929050565b60008115159050919050565b611f8f81611f7a565b82525050565b6000602082019050611faa6000830184611f86565b92915050565b611fb981611f04565b82525050565b6000602082019050611fd46000830184611fb0565b92915050565b600080600060608486031215611ff357611ff2611ea1565b5b600061200186828701611eef565b935050602061201286828701611eef565b925050604061202386828701611f25565b9150509250925092565b60006020828403121561204357612042611ea1565b5b600061205184828501611eef565b91505092915050565b600060ff82169050919050565b6120708161205a565b82525050565b600060208201905061208b6000830184612067565b92915050565b61209a81611ec6565b82525050565b60006020820190506120b56000830184612091565b92915050565b600080604083850312156120d2576120d1611ea1565b5b60006120e085828601611eef565b92505060206120f185828601611eef565b9150509250929050565b60008060006060848603121561211457612113611ea1565b5b600061212286828701611f25565b935050602061213386828701611f25565b925050604061214486828701611f25565b9150509250925092565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168061219557607f821691505b6020821081036121a8576121a761214e565b5b50919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b60006121e4602083611dfa565b91506121ef826121ae565b602082019050919050565b60006020820190508181036000830152612213816121d7565b9050919050565b60008151905061222981611f0e565b92915050565b60006020828403121561224557612244611ea1565b5b60006122538482850161221a565b91505092915050565b60006040820190506122716000830185612091565b61227e6020830184611fb0565b9392505050565b61228e81611f7a565b811461229957600080fd5b50565b6000815190506122ab81612285565b92915050565b6000602082840312156122c7576122c6611ea1565b5b60006122d58482850161229c565b91505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061231882611f04565b915061232383611f04565b925082820390508181111561233b5761233a6122de565b5b92915050565b600061234c82611f04565b915061235783611f04565b925082820190508082111561236f5761236e6122de565b5b92915050565b7f546f74616c2077616c6c65742073697a652069732074656d706f72617279206c60008201527f696d697465642e00000000000000000000000000000000000000000000000000602082015250565b60006123d1602783611dfa565b91506123dc82612375565b604082019050919050565b60006020820190508181036000830152612400816123c4565b9050919050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b600061243d601b83611dfa565b915061244882612407565b602082019050919050565b6000602082019050818103600083015261246c81612430565b9050919050565b600061247e82611f04565b915061248983611f04565b925082820261249781611f04565b915082820484148315176124ae576124ad6122de565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006124ef82611f04565b91506124fa83611f04565b92508261250a576125096124b5565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b6000612571602183611dfa565b915061257c82612515565b604082019050919050565b600060208201905081810360008301526125a081612564565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000819050919050565b6000819050919050565b600061263461262f61262a84612605565b61260f565b611f04565b9050919050565b61264481612619565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b61267f81611ec6565b82525050565b60006126918383612676565b60208301905092915050565b6000602082019050919050565b60006126b58261264a565b6126bf8185612655565b93506126ca83612666565b8060005b838110156126fb5781516126e28882612685565b97506126ed8361269d565b9250506001810190506126ce565b5085935050505092915050565b600060a08201905061271d6000830188611fb0565b61272a602083018761263b565b818103604083015261273c81866126aa565b905061274b6060830185612091565b6127586080830184611fb0565b9695505050505050565b600081905092915050565b50565b600061277d600083612762565b91506127888261276d565b600082019050919050565b600061279e82612770565b915081905091905056fe7472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212207877ffd4642d4878660e83438ebdea548e92e629eb7b3b3fa7a3d897cb307c4964736f6c63430008120033

Deployed Bytecode

0x6080604052600436106101025760003560e01c80637ce36f3111610095578063a26e5b2711610064578063a26e5b271461031e578063a9059cbb1461035b578063cd8de42c14610398578063dd62ed3e146103c1578063e9dae5ed146103fe57610109565b80637ce36f3114610286578063893d20e81461029d5780638da5cb5b146102c857806395d89b41146102f357610109565b8063281075a4116100d1578063281075a4146101de578063313ce5671461020757806370a0823114610232578063715018a61461026f57610109565b806306fdde031461010e578063095ea7b31461013957806318160ddd1461017657806323b872dd146101a157610109565b3661010957005b600080fd5b34801561011a57600080fd5b50610123610427565b6040516101309190611e7f565b60405180910390f35b34801561014557600080fd5b50610160600480360381019061015b9190611f3a565b6104b9565b60405161016d9190611f95565b60405180910390f35b34801561018257600080fd5b5061018b6105ab565b6040516101989190611fbf565b60405180910390f35b3480156101ad57600080fd5b506101c860048036038101906101c39190611fda565b6105b5565b6040516101d59190611f95565b60405180910390f35b3480156101ea57600080fd5b506102056004803603810190610200919061202d565b610798565b005b34801561021357600080fd5b5061021c610888565b6040516102299190612076565b60405180910390f35b34801561023e57600080fd5b506102596004803603810190610254919061202d565b61089f565b6040516102669190611fbf565b60405180910390f35b34801561027b57600080fd5b506102846108e8565b005b34801561029257600080fd5b5061029b610a3b565b005b3480156102a957600080fd5b506102b2610aa6565b6040516102bf91906120a0565b60405180910390f35b3480156102d457600080fd5b506102dd610ab5565b6040516102ea91906120a0565b60405180910390f35b3480156102ff57600080fd5b50610308610ade565b6040516103159190611e7f565b60405180910390f35b34801561032a57600080fd5b5061034560048036038101906103409190611f3a565b610b70565b6040516103529190611f95565b60405180910390f35b34801561036757600080fd5b50610382600480360381019061037d9190611f3a565b610cd7565b60405161038f9190611f95565b60405180910390f35b3480156103a457600080fd5b506103bf60048036038101906103ba919061202d565b610cf3565b005b3480156103cd57600080fd5b506103e860048036038101906103e391906120bb565b610e24565b6040516103f59190611fbf565b60405180910390f35b34801561040a57600080fd5b50610425600480360381019061042091906120fb565b610eab565b005b6060600f80546104369061217d565b80601f01602080910402602001604051908101604052809291908181526020018280546104629061217d565b80156104af5780601f10610484576101008083540402835291602001916104af565b820191906000526020600020905b81548152906001019060200180831161049257829003601f168201915b5050505050905090565b600081600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040516105999190611fbf565b60405180910390a36001905092915050565b6000600b54905090565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541461078457610703826040518060600160405280602181526020016127a960219139600260008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610f5a9092919063ffffffff16565b600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b61078f848484610fbe565b90509392505050565b6107a06115e5565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461082d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610824906121fa565b60405180910390fd5b6001600960008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b6000600a60019054906101000a900460ff16905090565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6108f06115e5565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461097d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610974906121fa565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc479081150290604051600060405180830381858888f19350505050158015610aa3573d6000803e3d6000fd5b50565b6000610ab0610ab5565b905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6060600e8054610aed9061217d565b80601f0160208091040260200160405190810160405280929190818152602001828054610b199061217d565b8015610b665780601f10610b3b57610100808354040283529160200191610b66565b820191906000526020600020905b815481529060010190602001808311610b4957829003601f168201915b5050505050905090565b6000808203610bf6578273ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401610bb291906120a0565b602060405180830381865afa158015610bcf573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610bf3919061222f565b91505b7fda2bc2bedd1f85b5a59d5dbbd6684ff877ef916994a16ec08813101e99ace65f8383604051610c2792919061225c565b60405180910390a18273ffffffffffffffffffffffffffffffffffffffff1663a9059cbb600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846040518363ffffffff1660e01b8152600401610c8c92919061225c565b6020604051808303816000875af1158015610cab573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ccf91906122b1565b905092915050565b6000610ceb610ce46115e5565b8484610fbe565b905092915050565b610cfb6115e5565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610d88576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d7f906121fa565b60405180910390fd5b80600860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600960008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b610eb36115e5565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610f40576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f37906121fa565b60405180910390fd5b826010819055508160118190555080601281905550505050565b6000838311158290610fa2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f999190611e7f565b60405180910390fd5b5060008385610fb1919061230d565b9050809150509392505050565b6000600a60009054906101000a900460ff16156111a45761105e826040518060400160405280601881526020017f7472616e736665722062616c616e636520746f6f206c6f770000000000000000815250600160008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610f5a9092919063ffffffff16565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506110f382600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546115ed90919063ffffffff16565b600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516111939190611fbf565b60405180910390a3600190506115de565b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141580156112505750600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156112aa5750600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b156113575743600d546007546112c09190612341565b111561135657600c5482600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546113149190612341565b1115611355576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161134c906123e7565b60405180910390fd5b5b5b6113e0826040518060400160405280601881526020017f7472616e736665722062616c616e636520746f6f206c6f770000000000000000815250600160008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610f5a9092919063ffffffff16565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000600960008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806114c65750600960008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b6114da576114d585848661164b565b6114dc565b825b905061153081600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546115ed90919063ffffffff16565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040516115d09190611fbf565b60405180910390a360019150505b9392505050565b600033905090565b60008082846115fc9190612341565b905083811015611641576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161163890612453565b60405180910390fd5b8091505092915050565b6000806010549050600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036116b257601154905061170e565b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff160361170d5760125490505b5b600c54841161171d5780611732565b611731600a826119ef90919063ffffffff16565b5b9050600061175c606461174e84886119ef90919063ffffffff16565b611a6990919063ffffffff16565b9050600c54851115611870576117ba81600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546115ed90919063ffffffff16565b600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161185a9190611fbf565b60405180910390a361186b81611ab3565b6119d1565b6118e48160016000600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546115ed90919063ffffffff16565b60016000600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516119c89190611fbf565b60405180910390a35b6119e48186611d4290919063ffffffff16565b925050509392505050565b6000808303611a015760009050611a63565b60008284611a0f9190612473565b9050828482611a1e91906124e4565b14611a5e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a5590612587565b60405180910390fd5b809150505b92915050565b6000611aab83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611d8c565b905092915050565b6001600a60006101000a81548160ff0219169083151502179055506000600267ffffffffffffffff811115611aeb57611aea6125a7565b5b604051908082528060200260200182016040528015611b195781602001602082028036833780820191505090505b5090503081600081518110611b3157611b306125d6565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681600181518110611ba257611ba16125d6565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506000479050600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478460008530426040518663ffffffff1660e01b8152600401611c45959493929190612708565b600060405180830381600087803b158015611c5f57600080fd5b505af1158015611c73573d6000803e3d6000fd5b505050506000611c8c8247611d4290919063ffffffff16565b90506000600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1682604051611cd690612793565b60006040518083038185875af1925050503d8060008114611d13576040519150601f19603f3d011682016040523d82523d6000602084013e611d18565b606091505b5050905060019050505050506000600a60006101000a81548160ff02191690831515021790555050565b6000611d8483836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250610f5a565b905092915050565b60008083118290611dd3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611dca9190611e7f565b60405180910390fd5b5060008385611de291906124e4565b9050809150509392505050565b600081519050919050565b600082825260208201905092915050565b60005b83811015611e29578082015181840152602081019050611e0e565b60008484015250505050565b6000601f19601f8301169050919050565b6000611e5182611def565b611e5b8185611dfa565b9350611e6b818560208601611e0b565b611e7481611e35565b840191505092915050565b60006020820190508181036000830152611e998184611e46565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000611ed182611ea6565b9050919050565b611ee181611ec6565b8114611eec57600080fd5b50565b600081359050611efe81611ed8565b92915050565b6000819050919050565b611f1781611f04565b8114611f2257600080fd5b50565b600081359050611f3481611f0e565b92915050565b60008060408385031215611f5157611f50611ea1565b5b6000611f5f85828601611eef565b9250506020611f7085828601611f25565b9150509250929050565b60008115159050919050565b611f8f81611f7a565b82525050565b6000602082019050611faa6000830184611f86565b92915050565b611fb981611f04565b82525050565b6000602082019050611fd46000830184611fb0565b92915050565b600080600060608486031215611ff357611ff2611ea1565b5b600061200186828701611eef565b935050602061201286828701611eef565b925050604061202386828701611f25565b9150509250925092565b60006020828403121561204357612042611ea1565b5b600061205184828501611eef565b91505092915050565b600060ff82169050919050565b6120708161205a565b82525050565b600060208201905061208b6000830184612067565b92915050565b61209a81611ec6565b82525050565b60006020820190506120b56000830184612091565b92915050565b600080604083850312156120d2576120d1611ea1565b5b60006120e085828601611eef565b92505060206120f185828601611eef565b9150509250929050565b60008060006060848603121561211457612113611ea1565b5b600061212286828701611f25565b935050602061213386828701611f25565b925050604061214486828701611f25565b9150509250925092565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168061219557607f821691505b6020821081036121a8576121a761214e565b5b50919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b60006121e4602083611dfa565b91506121ef826121ae565b602082019050919050565b60006020820190508181036000830152612213816121d7565b9050919050565b60008151905061222981611f0e565b92915050565b60006020828403121561224557612244611ea1565b5b60006122538482850161221a565b91505092915050565b60006040820190506122716000830185612091565b61227e6020830184611fb0565b9392505050565b61228e81611f7a565b811461229957600080fd5b50565b6000815190506122ab81612285565b92915050565b6000602082840312156122c7576122c6611ea1565b5b60006122d58482850161229c565b91505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061231882611f04565b915061232383611f04565b925082820390508181111561233b5761233a6122de565b5b92915050565b600061234c82611f04565b915061235783611f04565b925082820190508082111561236f5761236e6122de565b5b92915050565b7f546f74616c2077616c6c65742073697a652069732074656d706f72617279206c60008201527f696d697465642e00000000000000000000000000000000000000000000000000602082015250565b60006123d1602783611dfa565b91506123dc82612375565b604082019050919050565b60006020820190508181036000830152612400816123c4565b9050919050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b600061243d601b83611dfa565b915061244882612407565b602082019050919050565b6000602082019050818103600083015261246c81612430565b9050919050565b600061247e82611f04565b915061248983611f04565b925082820261249781611f04565b915082820484148315176124ae576124ad6122de565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006124ef82611f04565b91506124fa83611f04565b92508261250a576125096124b5565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b6000612571602183611dfa565b915061257c82612515565b604082019050919050565b600060208201905081810360008301526125a081612564565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000819050919050565b6000819050919050565b600061263461262f61262a84612605565b61260f565b611f04565b9050919050565b61264481612619565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b61267f81611ec6565b82525050565b60006126918383612676565b60208301905092915050565b6000602082019050919050565b60006126b58261264a565b6126bf8185612655565b93506126ca83612666565b8060005b838110156126fb5781516126e28882612685565b97506126ed8361269d565b9250506001810190506126ce565b5085935050505092915050565b600060a08201905061271d6000830188611fb0565b61272a602083018761263b565b818103604083015261273c81866126aa565b905061274b6060830185612091565b6127586080830184611fb0565b9695505050505050565b600081905092915050565b50565b600061277d600083612762565b91506127888261276d565b600082019050919050565b600061279e82612770565b915081905091905056fe7472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212207877ffd4642d4878660e83438ebdea548e92e629eb7b3b3fa7a3d897cb307c4964736f6c63430008120033

Deployed Bytecode Sourcemap

5439:6573:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7449:69;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7864:216;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7524:86;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8250:377;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11324:95;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7295:69;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7616:105;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3514:148;;;;;;;;;;;;;:::i;:::-;;11572:105;;;;;;;;;;;;;:::i;:::-;;7220:69;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3300:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7370:73;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11685:324;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8088:154;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11427:137;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7727:129;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11085:231;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7449:69;7488:13;7511:5;7504:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7449:69;:::o;7864:216::-;7939:4;7991:6;7956:11;:23;7968:10;7956:23;;;;;;;;;;;;;;;:32;7980:7;7956:32;;;;;;;;;;;;;;;:41;;;;8034:7;8013:37;;8022:10;8013:37;;;8043:6;8013:37;;;;;;:::i;:::-;;;;;;;;8068:4;8061:11;;7864:216;;;;:::o;7524:86::-;7579:7;7596:12;;7589:19;;7524:86;:::o;8250:377::-;8350:4;8406:17;8371:11;:19;8383:6;8371:19;;;;;;;;;;;;;;;:31;8391:10;8371:31;;;;;;;;;;;;;;;;:52;8367:199;;8474:80;8510:6;8474:80;;;;;;;;;;;;;;;;;:11;:19;8486:6;8474:19;;;;;;;;;;;;;;;:31;8494:10;8474:31;;;;;;;;;;;;;;;;:35;;:80;;;;;:::i;:::-;8440:11;:19;8452:6;8440:19;;;;;;;;;;;;;;;:31;8460:10;8440:31;;;;;;;;;;;;;;;:114;;;;8367:199;8583:36;8593:6;8601:9;8612:6;8583:9;:36::i;:::-;8576:43;;8250:377;;;;;:::o;11324:95::-;3437:12;:10;:12::i;:::-;3427:22;;:6;;;;;;;;;;:22;;;3419:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;11407:4:::1;11390:6;:14;11397:6;11390:14;;;;;;;;;;;;;;;;:21;;;;;;;;;;;;;;;;;;11324:95:::0;:::o;7295:69::-;7338:5;7353:9;;;;;;;;;;;7346:16;;7295:69;:::o;7616:105::-;7684:7;7701:9;:18;7711:7;7701:18;;;;;;;;;;;;;;;;7694:25;;7616:105;;;:::o;3514:148::-;3437:12;:10;:12::i;:::-;3427:22;;:6;;;;;;;;;;:22;;;3419:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;3621:1:::1;3584:40;;3605:6;::::0;::::1;;;;;;;;3584:40;;;;;;;;;;;;3652:1;3635:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;3514:148::o:0;11572:105::-;11627:9;;;;;;;;;;;11619:27;;:50;11647:21;11619:50;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11572:105::o;7220:69::-;7263:7;7280;:5;:7::i;:::-;7273:14;;7220:69;:::o;3300:79::-;3338:7;3365:6;;;;;;;;;;;3358:13;;3300:79;:::o;7370:73::-;7411:13;7434:7;7427:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7370:73;:::o;11685:324::-;11768:12;11806:1;11796:6;:11;11792:97;;11839:12;11833:29;;;11871:4;11833:44;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11824:53;;11792:97;11904:32;11915:12;11929:6;11904:32;;;;;;;:::i;:::-;;;;;;;;11960:12;11954:28;;;11983:9;;;;;;;;;;;11994:6;11954:47;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11947:54;;11685:324;;;;:::o;8088:154::-;8168:4;8192:42;8202:12;:10;:12::i;:::-;8216:9;8227:6;8192:9;:42::i;:::-;8185:49;;8088:154;;;;:::o;11427:137::-;3437:12;:10;:12::i;:::-;3427:22;;:6;;;;;;;;;;:22;;;3419:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;11512:9:::1;11500;;:21;;;;;;;;;;;;;;;;;;11552:4;11532:6;:17;11539:9;11532:17;;;;;;;;;;;;;;;;:24;;;;;;;;;;;;;;;;;;11427:137:::0;:::o;7727:129::-;7810:7;7827:11;:18;7839:5;7827:18;;;;;;;;;;;;;;;:27;7846:7;7827:27;;;;;;;;;;;;;;;;7820:34;;7727:129;;;;:::o;11085:231::-;3437:12;:10;:12::i;:::-;3427:22;;:6;;;;;;;;;;:22;;;3419:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;11220:16:::1;11202:15;:34;;;;11261:12;11247:11;:26;;;;11297:11;11284:10;:24;;;;11085:231:::0;;;:::o;1096:224::-;1216:7;1249:1;1244;:6;;1252:12;1236:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;1276:9;1292:1;1288;:5;;;;:::i;:::-;1276:17;;1311:1;1304:8;;;1096:224;;;;;:::o;8635:1024::-;8723:4;8743:6;;;;;;;;;;;8740:265;;;8785:57;8807:6;8785:57;;;;;;;;;;;;;;;;;:9;:17;8795:6;8785:17;;;;;;;;;;;;;;;;:21;;:57;;;;;:::i;:::-;8765:9;:17;8775:6;8765:17;;;;;;;;;;;;;;;:77;;;;8880:32;8905:6;8880:9;:20;8890:9;8880:20;;;;;;;;;;;;;;;;:24;;:32;;;;:::i;:::-;8857:9;:20;8867:9;8857:20;;;;;;;;;;;;;;;:55;;;;8949:9;8932:35;;8941:6;8932:35;;;8960:6;8932:35;;;;;;:::i;:::-;;;;;;;;8989:4;8982:11;;;;8740:265;9029:9;;;;;;;;;;;9019:19;;:6;:19;;;;:45;;;;;9055:9;;;;;;;;;;;9042:22;;:9;:22;;;;9019:45;:66;;;;;9081:4;;;;;;;;;;;9068:17;;:9;:17;;;;9019:66;9015:283;;;9139:12;9119:17;;9106:10;;:30;;;;:::i;:::-;:45;9102:185;;;9213:14;;9203:6;9180:9;:20;9190:9;9180:20;;;;;;;;;;;;;;;;:29;;;;:::i;:::-;:47;;9172:99;;;;;;;;;;;;:::i;:::-;;;;;;;;;9102:185;9015:283;9328:57;9350:6;9328:57;;;;;;;;;;;;;;;;;:9;:17;9338:6;9328:17;;;;;;;;;;;;;;;;:21;;:57;;;;;:::i;:::-;9308:9;:17;9318:6;9308:17;;;;;;;;;;;;;;;:77;;;;9396:22;9422:6;:14;9429:6;9422:14;;;;;;;;;;;;;;;;;;;;;;;;;:35;;;;9440:6;:17;9447:9;9440:17;;;;;;;;;;;;;;;;;;;;;;;;;9422:35;9421:83;;9470:34;9478:6;9486;9494:9;9470:7;:34::i;:::-;9421:83;;;9461:6;9421:83;9396:108;;9538:40;9563:14;9538:9;:20;9548:9;9538:20;;;;;;;;;;;;;;;;:24;;:40;;;;:::i;:::-;9515:9;:20;9525:9;9515:20;;;;;;;;;;;;;;;:63;;;;9611:9;9594:35;;9603:6;9594:35;;;9622:6;9594:35;;;;;;:::i;:::-;;;;;;;;9647:4;9640:11;;;8635:1024;;;;;;:::o;2853:98::-;2906:7;2933:10;2926:17;;2853:98;:::o;769:179::-;827:7;847:9;863:1;859;:5;;;;:::i;:::-;847:17;;888:1;883;:6;;875:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;939:1;932:8;;;769:179;;;;:::o;9667:807::-;9753:7;9773:15;9791;;9773:33;;9834:4;;;;;;;;;;;9821:17;;:9;:17;;;9817:144;;9865:11;;9855:21;;9817:144;;;9908:4;;;;;;;;;;;9898:14;;:6;:14;;;9894:67;;9939:10;;9929:20;;9894:67;9817:144;9992:14;;9983:6;:23;:51;;10027:7;9983:51;;;10009:15;10021:2;10009:7;:11;;:15;;;;:::i;:::-;9983:51;9973:61;;10045:11;10059:28;10083:3;10059:19;10070:7;10059:6;:10;;:19;;;;:::i;:::-;:23;;:28;;;;:::i;:::-;10045:42;;10111:14;;10102:6;:23;10098:336;;;10169:33;10198:3;10169:9;:24;10187:4;10169:24;;;;;;;;;;;;;;;;:28;;:33;;;;:::i;:::-;10142:9;:24;10160:4;10142:24;;;;;;;;;;;;;;;:60;;;;10247:4;10222:36;;10231:6;10222:36;;;10254:3;10222:36;;;;;;:::i;:::-;;;;;;;;10273:12;10281:3;10273:7;:12::i;:::-;10098:336;;;10341:29;10366:3;10341:9;:20;10351:9;;;;;;;;;;;10341:20;;;;;;;;;;;;;;;;:24;;:29;;;;:::i;:::-;10318:9;:20;10328:9;;;;;;;;;;;10318:20;;;;;;;;;;;;;;;:52;;;;10407:9;;;;;;;;;;;10390:32;;10399:6;10390:32;;;10418:3;10390:32;;;;;;:::i;:::-;;;;;;;;10098:336;10451:15;10462:3;10451:6;:10;;:15;;;;:::i;:::-;10444:22;;;;9667:807;;;;;:::o;1326:246::-;1384:7;1413:1;1408;:6;1404:47;;1438:1;1431:8;;;;1404:47;1461:9;1477:1;1473;:5;;;;:::i;:::-;1461:17;;1506:1;1501;1497;:5;;;;:::i;:::-;:10;1489:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;1563:1;1556:8;;;1326:246;;;;;:::o;1578:132::-;1636:7;1663:39;1667:1;1670;1663:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;1656:46;;1578:132;;;;:::o;10482:595::-;5924:4;5915:6;;:13;;;;;;;;;;;;;;;;;;10544:21:::1;10582:1;10568:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10544:40;;10613:4;10595;10600:1;10595:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;10639:4;;;;;;;;;;;10629;10634:1;10629:7;;;;;;;;:::i;:::-;;;;;;;:14;;;;;;;;;::::0;::::1;10654:21;10678;10654:45;;10710:6;;;;;;;;;;;:57;;;10782:6;10803:1;10819:4;10846;10866:15;10710:182;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;10903:17;10923:40;10949:13;10923:21;:25;;:40;;;;:::i;:::-;10903:60;;10975:15;11004:9;;;;;;;;;;;10996:23;;11027:9;10996:45;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10974:67;;;11065:4;11052:17;;10533:544;;;;5942:5:::0;5933:6;;:14;;;;;;;;;;;;;;;;;;10482:595;:::o;954:136::-;1012:7;1039:43;1043:1;1046;1039:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;1032:50;;954:136;;;;:::o;1716:223::-;1836:7;1868:1;1864;:5;1871:12;1856:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;1895:9;1911:1;1907;:5;;;;:::i;:::-;1895:17;;1930:1;1923:8;;;1716:223;;;;;:::o;7:99:1:-;59:6;93:5;87:12;77:22;;7:99;;;:::o;112:169::-;196:11;230:6;225:3;218:19;270:4;265:3;261:14;246:29;;112:169;;;;:::o;287:246::-;368:1;378:113;392:6;389:1;386:13;378:113;;;477:1;472:3;468:11;462:18;458:1;453:3;449:11;442:39;414:2;411:1;407:10;402:15;;378:113;;;525:1;516:6;511:3;507:16;500:27;349:184;287:246;;;:::o;539:102::-;580:6;631:2;627:7;622:2;615:5;611:14;607:28;597:38;;539:102;;;:::o;647:377::-;735:3;763:39;796:5;763:39;:::i;:::-;818:71;882:6;877:3;818:71;:::i;:::-;811:78;;898:65;956:6;951:3;944:4;937:5;933:16;898:65;:::i;:::-;988:29;1010:6;988:29;:::i;:::-;983:3;979:39;972:46;;739:285;647:377;;;;:::o;1030:313::-;1143:4;1181:2;1170:9;1166:18;1158:26;;1230:9;1224:4;1220:20;1216:1;1205:9;1201:17;1194:47;1258:78;1331:4;1322:6;1258:78;:::i;:::-;1250:86;;1030:313;;;;:::o;1430:117::-;1539:1;1536;1529:12;1676:126;1713:7;1753:42;1746:5;1742:54;1731:65;;1676:126;;;:::o;1808:96::-;1845:7;1874:24;1892:5;1874:24;:::i;:::-;1863:35;;1808:96;;;:::o;1910:122::-;1983:24;2001:5;1983:24;:::i;:::-;1976:5;1973:35;1963:63;;2022:1;2019;2012:12;1963:63;1910:122;:::o;2038:139::-;2084:5;2122:6;2109:20;2100:29;;2138:33;2165:5;2138:33;:::i;:::-;2038:139;;;;:::o;2183:77::-;2220:7;2249:5;2238:16;;2183:77;;;:::o;2266:122::-;2339:24;2357:5;2339:24;:::i;:::-;2332:5;2329:35;2319:63;;2378:1;2375;2368:12;2319:63;2266:122;:::o;2394:139::-;2440:5;2478:6;2465:20;2456:29;;2494:33;2521:5;2494:33;:::i;:::-;2394:139;;;;:::o;2539:474::-;2607:6;2615;2664:2;2652:9;2643:7;2639:23;2635:32;2632:119;;;2670:79;;:::i;:::-;2632:119;2790:1;2815:53;2860:7;2851:6;2840:9;2836:22;2815:53;:::i;:::-;2805:63;;2761:117;2917:2;2943:53;2988:7;2979:6;2968:9;2964:22;2943:53;:::i;:::-;2933:63;;2888:118;2539:474;;;;;:::o;3019:90::-;3053:7;3096:5;3089:13;3082:21;3071:32;;3019:90;;;:::o;3115:109::-;3196:21;3211:5;3196:21;:::i;:::-;3191:3;3184:34;3115:109;;:::o;3230:210::-;3317:4;3355:2;3344:9;3340:18;3332:26;;3368:65;3430:1;3419:9;3415:17;3406:6;3368:65;:::i;:::-;3230:210;;;;:::o;3446:118::-;3533:24;3551:5;3533:24;:::i;:::-;3528:3;3521:37;3446:118;;:::o;3570:222::-;3663:4;3701:2;3690:9;3686:18;3678:26;;3714:71;3782:1;3771:9;3767:17;3758:6;3714:71;:::i;:::-;3570:222;;;;:::o;3798:619::-;3875:6;3883;3891;3940:2;3928:9;3919:7;3915:23;3911:32;3908:119;;;3946:79;;:::i;:::-;3908:119;4066:1;4091:53;4136:7;4127:6;4116:9;4112:22;4091:53;:::i;:::-;4081:63;;4037:117;4193:2;4219:53;4264:7;4255:6;4244:9;4240:22;4219:53;:::i;:::-;4209:63;;4164:118;4321:2;4347:53;4392:7;4383:6;4372:9;4368:22;4347:53;:::i;:::-;4337:63;;4292:118;3798:619;;;;;:::o;4423:329::-;4482:6;4531:2;4519:9;4510:7;4506:23;4502:32;4499:119;;;4537:79;;:::i;:::-;4499:119;4657:1;4682:53;4727:7;4718:6;4707:9;4703:22;4682:53;:::i;:::-;4672:63;;4628:117;4423:329;;;;:::o;4758:86::-;4793:7;4833:4;4826:5;4822:16;4811:27;;4758:86;;;:::o;4850:112::-;4933:22;4949:5;4933:22;:::i;:::-;4928:3;4921:35;4850:112;;:::o;4968:214::-;5057:4;5095:2;5084:9;5080:18;5072:26;;5108:67;5172:1;5161:9;5157:17;5148:6;5108:67;:::i;:::-;4968:214;;;;:::o;5188:118::-;5275:24;5293:5;5275:24;:::i;:::-;5270:3;5263:37;5188:118;;:::o;5312:222::-;5405:4;5443:2;5432:9;5428:18;5420:26;;5456:71;5524:1;5513:9;5509:17;5500:6;5456:71;:::i;:::-;5312:222;;;;:::o;5540:474::-;5608:6;5616;5665:2;5653:9;5644:7;5640:23;5636:32;5633:119;;;5671:79;;:::i;:::-;5633:119;5791:1;5816:53;5861:7;5852:6;5841:9;5837:22;5816:53;:::i;:::-;5806:63;;5762:117;5918:2;5944:53;5989:7;5980:6;5969:9;5965:22;5944:53;:::i;:::-;5934:63;;5889:118;5540:474;;;;;:::o;6020:619::-;6097:6;6105;6113;6162:2;6150:9;6141:7;6137:23;6133:32;6130:119;;;6168:79;;:::i;:::-;6130:119;6288:1;6313:53;6358:7;6349:6;6338:9;6334:22;6313:53;:::i;:::-;6303:63;;6259:117;6415:2;6441:53;6486:7;6477:6;6466:9;6462:22;6441:53;:::i;:::-;6431:63;;6386:118;6543:2;6569:53;6614:7;6605:6;6594:9;6590:22;6569:53;:::i;:::-;6559:63;;6514:118;6020:619;;;;;:::o;6645:180::-;6693:77;6690:1;6683:88;6790:4;6787:1;6780:15;6814:4;6811:1;6804:15;6831:320;6875:6;6912:1;6906:4;6902:12;6892:22;;6959:1;6953:4;6949:12;6980:18;6970:81;;7036:4;7028:6;7024:17;7014:27;;6970:81;7098:2;7090:6;7087:14;7067:18;7064:38;7061:84;;7117:18;;:::i;:::-;7061:84;6882:269;6831:320;;;:::o;7157:182::-;7297:34;7293:1;7285:6;7281:14;7274:58;7157:182;:::o;7345:366::-;7487:3;7508:67;7572:2;7567:3;7508:67;:::i;:::-;7501:74;;7584:93;7673:3;7584:93;:::i;:::-;7702:2;7697:3;7693:12;7686:19;;7345:366;;;:::o;7717:419::-;7883:4;7921:2;7910:9;7906:18;7898:26;;7970:9;7964:4;7960:20;7956:1;7945:9;7941:17;7934:47;7998:131;8124:4;7998:131;:::i;:::-;7990:139;;7717:419;;;:::o;8142:143::-;8199:5;8230:6;8224:13;8215:22;;8246:33;8273:5;8246:33;:::i;:::-;8142:143;;;;:::o;8291:351::-;8361:6;8410:2;8398:9;8389:7;8385:23;8381:32;8378:119;;;8416:79;;:::i;:::-;8378:119;8536:1;8561:64;8617:7;8608:6;8597:9;8593:22;8561:64;:::i;:::-;8551:74;;8507:128;8291:351;;;;:::o;8648:332::-;8769:4;8807:2;8796:9;8792:18;8784:26;;8820:71;8888:1;8877:9;8873:17;8864:6;8820:71;:::i;:::-;8901:72;8969:2;8958:9;8954:18;8945:6;8901:72;:::i;:::-;8648:332;;;;;:::o;8986:116::-;9056:21;9071:5;9056:21;:::i;:::-;9049:5;9046:32;9036:60;;9092:1;9089;9082:12;9036:60;8986:116;:::o;9108:137::-;9162:5;9193:6;9187:13;9178:22;;9209:30;9233:5;9209:30;:::i;:::-;9108:137;;;;:::o;9251:345::-;9318:6;9367:2;9355:9;9346:7;9342:23;9338:32;9335:119;;;9373:79;;:::i;:::-;9335:119;9493:1;9518:61;9571:7;9562:6;9551:9;9547:22;9518:61;:::i;:::-;9508:71;;9464:125;9251:345;;;;:::o;9602:180::-;9650:77;9647:1;9640:88;9747:4;9744:1;9737:15;9771:4;9768:1;9761:15;9788:194;9828:4;9848:20;9866:1;9848:20;:::i;:::-;9843:25;;9882:20;9900:1;9882:20;:::i;:::-;9877:25;;9926:1;9923;9919:9;9911:17;;9950:1;9944:4;9941:11;9938:37;;;9955:18;;:::i;:::-;9938:37;9788:194;;;;:::o;9988:191::-;10028:3;10047:20;10065:1;10047:20;:::i;:::-;10042:25;;10081:20;10099:1;10081:20;:::i;:::-;10076:25;;10124:1;10121;10117:9;10110:16;;10145:3;10142:1;10139:10;10136:36;;;10152:18;;:::i;:::-;10136:36;9988:191;;;;:::o;10185:226::-;10325:34;10321:1;10313:6;10309:14;10302:58;10394:9;10389:2;10381:6;10377:15;10370:34;10185:226;:::o;10417:366::-;10559:3;10580:67;10644:2;10639:3;10580:67;:::i;:::-;10573:74;;10656:93;10745:3;10656:93;:::i;:::-;10774:2;10769:3;10765:12;10758:19;;10417:366;;;:::o;10789:419::-;10955:4;10993:2;10982:9;10978:18;10970:26;;11042:9;11036:4;11032:20;11028:1;11017:9;11013:17;11006:47;11070:131;11196:4;11070:131;:::i;:::-;11062:139;;10789:419;;;:::o;11214:177::-;11354:29;11350:1;11342:6;11338:14;11331:53;11214:177;:::o;11397:366::-;11539:3;11560:67;11624:2;11619:3;11560:67;:::i;:::-;11553:74;;11636:93;11725:3;11636:93;:::i;:::-;11754:2;11749:3;11745:12;11738:19;;11397:366;;;:::o;11769:419::-;11935:4;11973:2;11962:9;11958:18;11950:26;;12022:9;12016:4;12012:20;12008:1;11997:9;11993:17;11986:47;12050:131;12176:4;12050:131;:::i;:::-;12042:139;;11769:419;;;:::o;12194:410::-;12234:7;12257:20;12275:1;12257:20;:::i;:::-;12252:25;;12291:20;12309:1;12291:20;:::i;:::-;12286:25;;12346:1;12343;12339:9;12368:30;12386:11;12368:30;:::i;:::-;12357:41;;12547:1;12538:7;12534:15;12531:1;12528:22;12508:1;12501:9;12481:83;12458:139;;12577:18;;:::i;:::-;12458:139;12242:362;12194:410;;;;:::o;12610:180::-;12658:77;12655:1;12648:88;12755:4;12752:1;12745:15;12779:4;12776:1;12769:15;12796:185;12836:1;12853:20;12871:1;12853:20;:::i;:::-;12848:25;;12887:20;12905:1;12887:20;:::i;:::-;12882:25;;12926:1;12916:35;;12931:18;;:::i;:::-;12916:35;12973:1;12970;12966:9;12961:14;;12796:185;;;;:::o;12987:220::-;13127:34;13123:1;13115:6;13111:14;13104:58;13196:3;13191:2;13183:6;13179:15;13172:28;12987:220;:::o;13213:366::-;13355:3;13376:67;13440:2;13435:3;13376:67;:::i;:::-;13369:74;;13452:93;13541:3;13452:93;:::i;:::-;13570:2;13565:3;13561:12;13554:19;;13213:366;;;:::o;13585:419::-;13751:4;13789:2;13778:9;13774:18;13766:26;;13838:9;13832:4;13828:20;13824:1;13813:9;13809:17;13802:47;13866:131;13992:4;13866:131;:::i;:::-;13858:139;;13585:419;;;:::o;14010:180::-;14058:77;14055:1;14048:88;14155:4;14152:1;14145:15;14179:4;14176:1;14169:15;14196:180;14244:77;14241:1;14234:88;14341:4;14338:1;14331:15;14365:4;14362:1;14355:15;14382:85;14427:7;14456:5;14445:16;;14382:85;;;:::o;14473:60::-;14501:3;14522:5;14515:12;;14473:60;;;:::o;14539:158::-;14597:9;14630:61;14648:42;14657:32;14683:5;14657:32;:::i;:::-;14648:42;:::i;:::-;14630:61;:::i;:::-;14617:74;;14539:158;;;:::o;14703:147::-;14798:45;14837:5;14798:45;:::i;:::-;14793:3;14786:58;14703:147;;:::o;14856:114::-;14923:6;14957:5;14951:12;14941:22;;14856:114;;;:::o;14976:184::-;15075:11;15109:6;15104:3;15097:19;15149:4;15144:3;15140:14;15125:29;;14976:184;;;;:::o;15166:132::-;15233:4;15256:3;15248:11;;15286:4;15281:3;15277:14;15269:22;;15166:132;;;:::o;15304:108::-;15381:24;15399:5;15381:24;:::i;:::-;15376:3;15369:37;15304:108;;:::o;15418:179::-;15487:10;15508:46;15550:3;15542:6;15508:46;:::i;:::-;15586:4;15581:3;15577:14;15563:28;;15418:179;;;;:::o;15603:113::-;15673:4;15705;15700:3;15696:14;15688:22;;15603:113;;;:::o;15752:732::-;15871:3;15900:54;15948:5;15900:54;:::i;:::-;15970:86;16049:6;16044:3;15970:86;:::i;:::-;15963:93;;16080:56;16130:5;16080:56;:::i;:::-;16159:7;16190:1;16175:284;16200:6;16197:1;16194:13;16175:284;;;16276:6;16270:13;16303:63;16362:3;16347:13;16303:63;:::i;:::-;16296:70;;16389:60;16442:6;16389:60;:::i;:::-;16379:70;;16235:224;16222:1;16219;16215:9;16210:14;;16175:284;;;16179:14;16475:3;16468:10;;15876:608;;;15752:732;;;;:::o;16490:831::-;16753:4;16791:3;16780:9;16776:19;16768:27;;16805:71;16873:1;16862:9;16858:17;16849:6;16805:71;:::i;:::-;16886:80;16962:2;16951:9;16947:18;16938:6;16886:80;:::i;:::-;17013:9;17007:4;17003:20;16998:2;16987:9;16983:18;16976:48;17041:108;17144:4;17135:6;17041:108;:::i;:::-;17033:116;;17159:72;17227:2;17216:9;17212:18;17203:6;17159:72;:::i;:::-;17241:73;17309:3;17298:9;17294:19;17285:6;17241:73;:::i;:::-;16490:831;;;;;;;;:::o;17327:147::-;17428:11;17465:3;17450:18;;17327:147;;;;:::o;17480:114::-;;:::o;17600:398::-;17759:3;17780:83;17861:1;17856:3;17780:83;:::i;:::-;17773:90;;17872:93;17961:3;17872:93;:::i;:::-;17990:1;17985:3;17981:11;17974:18;;17600:398;;;:::o;18004:379::-;18188:3;18210:147;18353:3;18210:147;:::i;:::-;18203:154;;18374:3;18367:10;;18004:379;;;:::o

Swarm Source

ipfs://7877ffd4642d4878660e83438ebdea548e92e629eb7b3b3fa7a3d897cb307c49
Loading...
Loading
Loading...
Loading
[ Download: CSV Export  ]
[ Download: CSV Export  ]

A token is a representation of an on-chain or off-chain asset. The token page shows information such as price, total supply, holders, transfers and social links. Learn more about this page in our Knowledge Base.