ETH Price: $3,068.43 (+2.58%)
Gas: 4 Gwei

Token

PENGY (PENGY)
 

Overview

Max Total Supply

2,999,990,000.999999999999999998 PENGY

Holders

1,305

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
10,381,422.719904825912672245 PENGY

Value
$0.00
0xf619bc5e192795243d27bc12636b417bf9ee1c19
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:
Pengy

Compiler Version
v0.8.18+commit.87f61d96

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, MIT license
/**
 *Submitted for verification at Etherscan.io on 2023-07-24
*/

// SPDX-License-Identifier: MIT
pragma solidity 0.8.18;

//        |-----------------------------------------------------------------------------------------------------------|
//        |                                                                        %################.                 |
//        |                                                                       #####################@              |
//        |                                                         |           ######    @#####    &####             |
//        |                                                         |           ###%        ,         ###%            |
//        |                                                         |          &###,  /&@@     @(@@   ####            |
//        |                                                         |           ###@       &..%      *####            |
//        |  $$$$$$$\  $$$$$$$$\ $$\   $$\  $$$$$$\ $$\     $$\     |           @####     .,,,,@    #####             |
//        |  $$  __$$\ $$  _____|$$$\  $$ |$$  __$$\\$$\   $$  |    |            %##(       ,*      @##(@             |
//        |  $$ |  $$ |$$ |      $$$$\ $$ |$$ /  \__|\$$\ $$  /     |        /#&##@                    ##&#&          |
//        |  $$$$$$$  |$$$$$\    $$ $$\$$ |$$ |$$$$\  \$$$$  /      |       ######                        #(###       |
//        |  $$  ____/ $$  __|   $$ \$$$$ |$$ |\_$$ |  \$$  /       |    #######                          ######.     |
//        |  $$ |      $$ |      $$ |\$$$ |$$ |  $$ |   $$ |        |  &#######@                          ##(#####    |
//        |  $$ |      $$$$$$$$\ $$ | \$$ |\$$$$$$  |   $$ |        |        ###                           &##        |
//        |  \__|      \________|\__|  \__| \______/    \__|        |        &##%                          ###        |
//        |                                                         |         %###                        @##@        |
//        |                                                         |           %###@                  &###&          |
//        |                                                                    &,,,,,&################@,,,,,%         |
//        |                                                                  ,.,,,.*%@               /(.,,,,/@        |
//        |-----------------------------------------------------------------------------------------------------------|
//                                -----> Ken and the community makes penguins fly! 🚀  <-----     */

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

    function decimals() external view returns (uint8);

    function symbol() external view returns (string memory);

    function name() external view returns (string memory);

    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
    );
}

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

    function WETH() external pure returns (address);
}

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

contract Pengy is IERC20 {
    string private _name;
    string private _symbol;
    uint8 private constant _decimals = 18;
    uint256 private _totalSupply;

    mapping(address => bool) public isExcludedFromFees;
    mapping(address => uint256) private _balances;
    mapping(address => mapping(address => uint256)) private _allowances;

    address public owner;
    address public constant feeWallet = 0xe7bE0E9c3a5650dB004E306FC9D9cCE97eEe7166; 
    address public immutable pair;
    address public immutable router;
    address public constant DEAD = 0x000000000000000000000000000000000000dEaD;
    address public immutable WETH;

    modifier onlyDeployer() {
        require(msg.sender == owner, "Only the owner can do that");
        _;
    }

    constructor() {
        owner = msg.sender;
        _name = "PENGY";
        _symbol = "PENGY";
        _totalSupply = 3_000_000_000 * (10 ** _decimals);
        router = 0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D; // Uniswap V2 router

        WETH = IDEXRouter(router).WETH();

        pair = IDEXFactory(IDEXRouter(router).factory()).createPair(
            address(this),
            WETH
        );

        isExcludedFromFees[owner] = true;
        

        _balances[owner] = _totalSupply;
        emit Transfer(address(0), owner, _totalSupply);
    }

    receive() external payable {}

    function name() public view override returns (string memory) {
        return _name;
    }

    function totalSupply() public view override returns (uint256) {
        return _totalSupply - _balances[DEAD];
    }

    function decimals() public pure override returns (uint8) {
        return _decimals;
    }

    function symbol() public view override returns (string memory) {
        return _symbol;
    }

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

    function rescueEth(uint256 amount) external onlyDeployer {
        (bool success, ) = address(owner).call{value: amount}("");
        success = true;
    }

    function rescueToken(address token, uint256 amount) external onlyDeployer {
        IERC20(token).transfer(owner, amount);
    }

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

    function transfer(
        address recipient,
        uint256 amount
    ) external override returns (bool) {
        return _transferFrom(msg.sender, recipient, amount);
    }

    function approveMax(address spender) external returns (bool) {
        return approve(spender, type(uint256).max);
    }

    function approve(
        address spender,
        uint256 amount
    ) public override returns (bool) {
        require(spender != address(0), "Can't use zero address here");
        _allowances[msg.sender][spender] = amount;
        emit Approval(msg.sender, spender, amount);
        return true;
    }

    function increaseAllowance(
        address spender,
        uint256 addedValue
    ) public returns (bool) {
        require(spender != address(0), "Can't use zero address here");
        _allowances[msg.sender][spender] =
            allowance(msg.sender, spender) +
            addedValue;
        emit Approval(msg.sender, spender, _allowances[msg.sender][spender]);
        return true;
    }

    function decreaseAllowance(
        address spender,
        uint256 subtractedValue
    ) public returns (bool) {
        require(spender != address(0), "Can't use zero address here");
        require(
            allowance(msg.sender, spender) >= subtractedValue,
            "Can't subtract more than current allowance"
        );
        _allowances[msg.sender][spender] =
            allowance(msg.sender, spender) -
            subtractedValue;
        emit Approval(msg.sender, spender, _allowances[msg.sender][spender]);
        return true;
    }

    function transferFrom(
        address sender,
        address recipient,
        uint256 amount
    ) external override returns (bool) {
        if (_allowances[sender][msg.sender] != type(uint256).max) {
            require(
                _allowances[sender][msg.sender] >= amount,
                "Insufficient Allowance"
            );
            _allowances[sender][msg.sender] -= amount;
            emit Approval(sender, msg.sender, _allowances[sender][msg.sender]);
        }
        return _transferFrom(sender, recipient, amount);
    }

    function _transferFrom(
        address sender,
        address recipient,
        uint256 amount
    ) internal returns (bool) {
        if (!checkTaxFree(sender, recipient)) {
            _lowGasTransfer(sender, feeWallet, amount / 100);
            amount = (amount * 99) / 100;
        }
        return _lowGasTransfer(sender, recipient, amount);
    }

    function checkTaxFree(
        address sender,
        address recipient
    ) internal view returns (bool) {
        if (isExcludedFromFees[sender] || isExcludedFromFees[recipient])
            return true;
        if (sender == pair || recipient == pair) return false;
        return true;
    }

    function _lowGasTransfer(
        address sender,
        address recipient,
        uint256 amount
    ) internal returns (bool) {
        require(sender != address(0), "Can't use zero addresses here");
        require(
            amount <= _balances[sender],
            "Can't transfer more than you own"
        );
        if (amount == 0) return true;
        _balances[sender] -= amount;
        _balances[recipient] += amount;
        emit Transfer(sender, recipient, amount);
        return true;
    }

    function excludeFromFees(
        address excludedWallet,
        bool status
    ) external onlyDeployer {
        isExcludedFromFees[excludedWallet] = status;
    }

    function renounceOwnership() external onlyDeployer {
        owner = address(0);
    }
}

/*

The topics and opinions discussed by Ken the Crypto and the PENGY community are intended to convey general information only. All opinions expressed by Ken or the community should be treated as such.

This contract does not provide legal, investment, financial, tax, or any other type of similar advice.

As with all alternative currencies, Do Your Own Research (DYOR) before purchasing. Ken and the rest of the PENGY community are working to increase coin adoption, but no individual or community shall be held responsible for any financial losses or gains that may be incurred as a result of trading PENGY.

If you’re with us — Hop In, We’re Going Places 🚀

*/

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"DEAD","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"WETH","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"holder","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":"spender","type":"address"}],"name":"approveMax","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":"pure","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":"excludedWallet","type":"address"},{"internalType":"bool","name":"status","type":"bool"}],"name":"excludeFromFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"feeWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"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":[{"internalType":"address","name":"","type":"address"}],"name":"isExcludedFromFees","outputs":[{"internalType":"bool","name":"","type":"bool"}],"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":"pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"rescueEth","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"token","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"rescueToken","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"router","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","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"}]

60e06040523480156200001157600080fd5b5033600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506040518060400160405280600581526020017f50454e47590000000000000000000000000000000000000000000000000000008152506000908162000099919062000710565b506040518060400160405280600581526020017f50454e475900000000000000000000000000000000000000000000000000000081525060019081620000e0919062000710565b506012600a620000f1919062000987565b63b2d05e00620001029190620009d8565b600281905550737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1660a08173ffffffffffffffffffffffffffffffffffffffff168152505060a05173ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200019e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001c4919062000a8d565b73ffffffffffffffffffffffffffffffffffffffff1660c08173ffffffffffffffffffffffffffffffffffffffff168152505060a05173ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000245573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200026b919062000a8d565b73ffffffffffffffffffffffffffffffffffffffff1663c9c653963060c0516040518363ffffffff1660e01b8152600401620002a992919062000ad0565b6020604051808303816000875af1158015620002c9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002ef919062000a8d565b73ffffffffffffffffffffffffffffffffffffffff1660808173ffffffffffffffffffffffffffffffffffffffff1681525050600160036000600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555060025460046000600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60025460405162000488919062000b0e565b60405180910390a362000b2b565b600081519050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806200051857607f821691505b6020821081036200052e576200052d620004d0565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b600060088302620005987fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8262000559565b620005a4868362000559565b95508019841693508086168417925050509392505050565b6000819050919050565b6000819050919050565b6000620005f1620005eb620005e584620005bc565b620005c6565b620005bc565b9050919050565b6000819050919050565b6200060d83620005d0565b620006256200061c82620005f8565b84845462000566565b825550505050565b600090565b6200063c6200062d565b6200064981848462000602565b505050565b5b8181101562000671576200066560008262000632565b6001810190506200064f565b5050565b601f821115620006c0576200068a8162000534565b620006958462000549565b81016020851015620006a5578190505b620006bd620006b48562000549565b8301826200064e565b50505b505050565b600082821c905092915050565b6000620006e560001984600802620006c5565b1980831691505092915050565b6000620007008383620006d2565b9150826002028217905092915050565b6200071b8262000496565b67ffffffffffffffff811115620007375762000736620004a1565b5b620007438254620004ff565b6200075082828562000675565b600060209050601f83116001811462000788576000841562000773578287015190505b6200077f8582620006f2565b865550620007ef565b601f198416620007988662000534565b60005b82811015620007c2578489015182556001820191506020850194506020810190506200079b565b86831015620007e25784890151620007de601f891682620006d2565b8355505b6001600288020188555050505b505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b600185111562000885578086048111156200085d576200085c620007f7565b5b60018516156200086d5780820291505b80810290506200087d8562000826565b94506200083d565b94509492505050565b600082620008a0576001905062000973565b81620008b0576000905062000973565b8160018114620008c95760028114620008d4576200090a565b600191505062000973565b60ff841115620008e957620008e8620007f7565b5b8360020a915084821115620009035762000902620007f7565b5b5062000973565b5060208310610133831016604e8410600b8410161715620009445782820a9050838111156200093e576200093d620007f7565b5b62000973565b62000953848484600162000833565b925090508184048111156200096d576200096c620007f7565b5b81810290505b9392505050565b600060ff82169050919050565b60006200099482620005bc565b9150620009a1836200097a565b9250620009d07fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff84846200088e565b905092915050565b6000620009e582620005bc565b9150620009f283620005bc565b925082820262000a0281620005bc565b9150828204841483151762000a1c5762000a1b620007f7565b5b5092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600062000a558262000a28565b9050919050565b62000a678162000a48565b811462000a7357600080fd5b50565b60008151905062000a878162000a5c565b92915050565b60006020828403121562000aa65762000aa562000a23565b5b600062000ab68482850162000a76565b91505092915050565b62000aca8162000a48565b82525050565b600060408201905062000ae7600083018562000abf565b62000af6602083018462000abf565b9392505050565b62000b0881620005bc565b82525050565b600060208201905062000b25600083018462000afd565b92915050565b60805160a05160c05161228162000b6960003960006113e3015260006115910152600081816113aa015281816116d2015261172701526122816000f3fe6080604052600436106101445760003560e01c8063715018a6116100b6578063a9059cbb1161006f578063a9059cbb14610491578063ad5c4648146104ce578063c0246668146104f9578063dd62ed3e14610522578063f25f4b561461055f578063f887ea401461058a5761014b565b8063715018a614610393578063739f08c8146103aa5780638da5cb5b146103d357806395d89b41146103fe578063a457c2d714610429578063a8aa1b31146104665761014b565b8063313ce56711610108578063313ce5671461024b57806333f3d62814610276578063395093511461029f5780634fbee193146102dc578063571ac8b01461031957806370a08231146103565761014b565b806303fd2a451461015057806306fdde031461017b578063095ea7b3146101a657806318160ddd146101e357806323b872dd1461020e5761014b565b3661014b57005b600080fd5b34801561015c57600080fd5b506101656105b5565b60405161017291906119ef565b60405180910390f35b34801561018757600080fd5b506101906105bb565b60405161019d9190611a9a565b60405180910390f35b3480156101b257600080fd5b506101cd60048036038101906101c89190611b23565b61064d565b6040516101da9190611b7e565b60405180910390f35b3480156101ef57600080fd5b506101f86107ad565b6040516102059190611ba8565b60405180910390f35b34801561021a57600080fd5b5061023560048036038101906102309190611bc3565b610803565b6040516102429190611b7e565b60405180910390f35b34801561025757600080fd5b50610260610af0565b60405161026d9190611c32565b60405180910390f35b34801561028257600080fd5b5061029d60048036038101906102989190611b23565b610af9565b005b3480156102ab57600080fd5b506102c660048036038101906102c19190611b23565b610c2e565b6040516102d39190611b7e565b60405180910390f35b3480156102e857600080fd5b5061030360048036038101906102fe9190611c4d565b610e1e565b6040516103109190611b7e565b60405180910390f35b34801561032557600080fd5b50610340600480360381019061033b9190611c4d565b610e3e565b60405161034d9190611b7e565b60405180910390f35b34801561036257600080fd5b5061037d60048036038101906103789190611c4d565b610e71565b60405161038a9190611ba8565b60405180910390f35b34801561039f57600080fd5b506103a8610eba565b005b3480156103b657600080fd5b506103d160048036038101906103cc9190611c7a565b610f8e565b005b3480156103df57600080fd5b506103e86110b4565b6040516103f591906119ef565b60405180910390f35b34801561040a57600080fd5b506104136110da565b6040516104209190611a9a565b60405180910390f35b34801561043557600080fd5b50610450600480360381019061044b9190611b23565b61116c565b60405161045d9190611b7e565b60405180910390f35b34801561047257600080fd5b5061047b6113a8565b60405161048891906119ef565b60405180910390f35b34801561049d57600080fd5b506104b860048036038101906104b39190611b23565b6113cc565b6040516104c59190611b7e565b60405180910390f35b3480156104da57600080fd5b506104e36113e1565b6040516104f091906119ef565b60405180910390f35b34801561050557600080fd5b50610520600480360381019061051b9190611cd3565b611405565b005b34801561052e57600080fd5b5061054960048036038101906105449190611d13565b6114f0565b6040516105569190611ba8565b60405180910390f35b34801561056b57600080fd5b50610574611577565b60405161058191906119ef565b60405180910390f35b34801561059657600080fd5b5061059f61158f565b6040516105ac91906119ef565b60405180910390f35b61dead81565b6060600080546105ca90611d82565b80601f01602080910402602001604051908101604052809291908181526020018280546105f690611d82565b80156106435780601f1061061857610100808354040283529160200191610643565b820191906000526020600020905b81548152906001019060200180831161062657829003601f168201915b5050505050905090565b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036106bd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106b490611dff565b60405180910390fd5b81600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258460405161079b9190611ba8565b60405180910390a36001905092915050565b60006004600061dead73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546002546107fe9190611e4e565b905090565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414610adc5781600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541015610967576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161095e90611ece565b60405180910390fd5b81600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546109f39190611e4e565b925050819055503373ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925600560008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054604051610ad39190611ba8565b60405180910390a35b610ae78484846115b3565b90509392505050565b60006012905090565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610b89576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b8090611f3a565b60405180910390fd5b8173ffffffffffffffffffffffffffffffffffffffff1663a9059cbb600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16836040518363ffffffff1660e01b8152600401610be6929190611f5a565b6020604051808303816000875af1158015610c05573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c299190611f98565b505050565b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610c9e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c9590611dff565b60405180910390fd5b81610ca933856114f0565b610cb39190611fc5565b600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054604051610e0c9190611ba8565b60405180910390a36001905092915050565b60036020528060005260406000206000915054906101000a900460ff1681565b6000610e6a827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff61064d565b9050919050565b6000600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610f4a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f4190611f3a565b60405180910390fd5b6000600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461101e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161101590611f3a565b60405180910390fd5b6000600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16826040516110669061202a565b60006040518083038185875af1925050503d80600081146110a3576040519150601f19603f3d011682016040523d82523d6000602084013e6110a8565b606091505b50509050600190505050565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6060600180546110e990611d82565b80601f016020809104026020016040519081016040528092919081815260200182805461111590611d82565b80156111625780601f1061113757610100808354040283529160200191611162565b820191906000526020600020905b81548152906001019060200180831161114557829003601f168201915b5050505050905090565b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036111dc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111d390611dff565b60405180910390fd5b816111e733856114f0565b1015611228576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161121f906120b1565b60405180910390fd5b8161123333856114f0565b61123d9190611e4e565b600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040516113969190611ba8565b60405180910390a36001905092915050565b7f000000000000000000000000000000000000000000000000000000000000000081565b60006113d93384846115b3565b905092915050565b7f000000000000000000000000000000000000000000000000000000000000000081565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611495576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161148c90611f3a565b60405180910390fd5b80600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b6000600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b73e7be0e9c3a5650db004e306fc9d9cce97eee716681565b7f000000000000000000000000000000000000000000000000000000000000000081565b60006115bf848461161f565b61160b576115ee8473e7be0e9c3a5650db004e306fc9d9cce97eee71666064856115e99190612100565b61178e565b5060646063836115fe9190612131565b6116089190612100565b91505b61161684848461178e565b90509392505050565b6000600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806116c25750600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b156116d05760019050611788565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16148061177557507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b156117835760009050611788565b600190505b92915050565b60008073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16036117fe576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117f5906121bf565b60405180910390fd5b600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054821115611880576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118779061222b565b60405180910390fd5b6000820361189157600190506119a7565b81600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546118e09190611e4e565b9250508190555081600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546119369190611fc5565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161199a9190611ba8565b60405180910390a3600190505b9392505050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006119d9826119ae565b9050919050565b6119e9816119ce565b82525050565b6000602082019050611a0460008301846119e0565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b83811015611a44578082015181840152602081019050611a29565b60008484015250505050565b6000601f19601f8301169050919050565b6000611a6c82611a0a565b611a768185611a15565b9350611a86818560208601611a26565b611a8f81611a50565b840191505092915050565b60006020820190508181036000830152611ab48184611a61565b905092915050565b600080fd5b611aca816119ce565b8114611ad557600080fd5b50565b600081359050611ae781611ac1565b92915050565b6000819050919050565b611b0081611aed565b8114611b0b57600080fd5b50565b600081359050611b1d81611af7565b92915050565b60008060408385031215611b3a57611b39611abc565b5b6000611b4885828601611ad8565b9250506020611b5985828601611b0e565b9150509250929050565b60008115159050919050565b611b7881611b63565b82525050565b6000602082019050611b936000830184611b6f565b92915050565b611ba281611aed565b82525050565b6000602082019050611bbd6000830184611b99565b92915050565b600080600060608486031215611bdc57611bdb611abc565b5b6000611bea86828701611ad8565b9350506020611bfb86828701611ad8565b9250506040611c0c86828701611b0e565b9150509250925092565b600060ff82169050919050565b611c2c81611c16565b82525050565b6000602082019050611c476000830184611c23565b92915050565b600060208284031215611c6357611c62611abc565b5b6000611c7184828501611ad8565b91505092915050565b600060208284031215611c9057611c8f611abc565b5b6000611c9e84828501611b0e565b91505092915050565b611cb081611b63565b8114611cbb57600080fd5b50565b600081359050611ccd81611ca7565b92915050565b60008060408385031215611cea57611ce9611abc565b5b6000611cf885828601611ad8565b9250506020611d0985828601611cbe565b9150509250929050565b60008060408385031215611d2a57611d29611abc565b5b6000611d3885828601611ad8565b9250506020611d4985828601611ad8565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680611d9a57607f821691505b602082108103611dad57611dac611d53565b5b50919050565b7f43616e277420757365207a65726f206164647265737320686572650000000000600082015250565b6000611de9601b83611a15565b9150611df482611db3565b602082019050919050565b60006020820190508181036000830152611e1881611ddc565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000611e5982611aed565b9150611e6483611aed565b9250828203905081811115611e7c57611e7b611e1f565b5b92915050565b7f496e73756666696369656e7420416c6c6f77616e636500000000000000000000600082015250565b6000611eb8601683611a15565b9150611ec382611e82565b602082019050919050565b60006020820190508181036000830152611ee781611eab565b9050919050565b7f4f6e6c7920746865206f776e65722063616e20646f2074686174000000000000600082015250565b6000611f24601a83611a15565b9150611f2f82611eee565b602082019050919050565b60006020820190508181036000830152611f5381611f17565b9050919050565b6000604082019050611f6f60008301856119e0565b611f7c6020830184611b99565b9392505050565b600081519050611f9281611ca7565b92915050565b600060208284031215611fae57611fad611abc565b5b6000611fbc84828501611f83565b91505092915050565b6000611fd082611aed565b9150611fdb83611aed565b9250828201905080821115611ff357611ff2611e1f565b5b92915050565b600081905092915050565b50565b6000612014600083611ff9565b915061201f82612004565b600082019050919050565b600061203582612007565b9150819050919050565b7f43616e2774207375627472616374206d6f7265207468616e2063757272656e7460008201527f20616c6c6f77616e636500000000000000000000000000000000000000000000602082015250565b600061209b602a83611a15565b91506120a68261203f565b604082019050919050565b600060208201905081810360008301526120ca8161208e565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061210b82611aed565b915061211683611aed565b925082612126576121256120d1565b5b828204905092915050565b600061213c82611aed565b915061214783611aed565b925082820261215581611aed565b9150828204841483151761216c5761216b611e1f565b5b5092915050565b7f43616e277420757365207a65726f206164647265737365732068657265000000600082015250565b60006121a9601d83611a15565b91506121b482612173565b602082019050919050565b600060208201905081810360008301526121d88161219c565b9050919050565b7f43616e2774207472616e73666572206d6f7265207468616e20796f75206f776e600082015250565b6000612215602083611a15565b9150612220826121df565b602082019050919050565b6000602082019050818103600083015261224481612208565b905091905056fea26469706673582212207ea2070b278a6d9f4ebeca15dbdde72ca4380966da583d3a883d8f8082a6e63464736f6c63430008120033

Deployed Bytecode

0x6080604052600436106101445760003560e01c8063715018a6116100b6578063a9059cbb1161006f578063a9059cbb14610491578063ad5c4648146104ce578063c0246668146104f9578063dd62ed3e14610522578063f25f4b561461055f578063f887ea401461058a5761014b565b8063715018a614610393578063739f08c8146103aa5780638da5cb5b146103d357806395d89b41146103fe578063a457c2d714610429578063a8aa1b31146104665761014b565b8063313ce56711610108578063313ce5671461024b57806333f3d62814610276578063395093511461029f5780634fbee193146102dc578063571ac8b01461031957806370a08231146103565761014b565b806303fd2a451461015057806306fdde031461017b578063095ea7b3146101a657806318160ddd146101e357806323b872dd1461020e5761014b565b3661014b57005b600080fd5b34801561015c57600080fd5b506101656105b5565b60405161017291906119ef565b60405180910390f35b34801561018757600080fd5b506101906105bb565b60405161019d9190611a9a565b60405180910390f35b3480156101b257600080fd5b506101cd60048036038101906101c89190611b23565b61064d565b6040516101da9190611b7e565b60405180910390f35b3480156101ef57600080fd5b506101f86107ad565b6040516102059190611ba8565b60405180910390f35b34801561021a57600080fd5b5061023560048036038101906102309190611bc3565b610803565b6040516102429190611b7e565b60405180910390f35b34801561025757600080fd5b50610260610af0565b60405161026d9190611c32565b60405180910390f35b34801561028257600080fd5b5061029d60048036038101906102989190611b23565b610af9565b005b3480156102ab57600080fd5b506102c660048036038101906102c19190611b23565b610c2e565b6040516102d39190611b7e565b60405180910390f35b3480156102e857600080fd5b5061030360048036038101906102fe9190611c4d565b610e1e565b6040516103109190611b7e565b60405180910390f35b34801561032557600080fd5b50610340600480360381019061033b9190611c4d565b610e3e565b60405161034d9190611b7e565b60405180910390f35b34801561036257600080fd5b5061037d60048036038101906103789190611c4d565b610e71565b60405161038a9190611ba8565b60405180910390f35b34801561039f57600080fd5b506103a8610eba565b005b3480156103b657600080fd5b506103d160048036038101906103cc9190611c7a565b610f8e565b005b3480156103df57600080fd5b506103e86110b4565b6040516103f591906119ef565b60405180910390f35b34801561040a57600080fd5b506104136110da565b6040516104209190611a9a565b60405180910390f35b34801561043557600080fd5b50610450600480360381019061044b9190611b23565b61116c565b60405161045d9190611b7e565b60405180910390f35b34801561047257600080fd5b5061047b6113a8565b60405161048891906119ef565b60405180910390f35b34801561049d57600080fd5b506104b860048036038101906104b39190611b23565b6113cc565b6040516104c59190611b7e565b60405180910390f35b3480156104da57600080fd5b506104e36113e1565b6040516104f091906119ef565b60405180910390f35b34801561050557600080fd5b50610520600480360381019061051b9190611cd3565b611405565b005b34801561052e57600080fd5b5061054960048036038101906105449190611d13565b6114f0565b6040516105569190611ba8565b60405180910390f35b34801561056b57600080fd5b50610574611577565b60405161058191906119ef565b60405180910390f35b34801561059657600080fd5b5061059f61158f565b6040516105ac91906119ef565b60405180910390f35b61dead81565b6060600080546105ca90611d82565b80601f01602080910402602001604051908101604052809291908181526020018280546105f690611d82565b80156106435780601f1061061857610100808354040283529160200191610643565b820191906000526020600020905b81548152906001019060200180831161062657829003601f168201915b5050505050905090565b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036106bd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106b490611dff565b60405180910390fd5b81600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258460405161079b9190611ba8565b60405180910390a36001905092915050565b60006004600061dead73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546002546107fe9190611e4e565b905090565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414610adc5781600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541015610967576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161095e90611ece565b60405180910390fd5b81600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546109f39190611e4e565b925050819055503373ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925600560008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054604051610ad39190611ba8565b60405180910390a35b610ae78484846115b3565b90509392505050565b60006012905090565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610b89576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b8090611f3a565b60405180910390fd5b8173ffffffffffffffffffffffffffffffffffffffff1663a9059cbb600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16836040518363ffffffff1660e01b8152600401610be6929190611f5a565b6020604051808303816000875af1158015610c05573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c299190611f98565b505050565b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610c9e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c9590611dff565b60405180910390fd5b81610ca933856114f0565b610cb39190611fc5565b600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054604051610e0c9190611ba8565b60405180910390a36001905092915050565b60036020528060005260406000206000915054906101000a900460ff1681565b6000610e6a827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff61064d565b9050919050565b6000600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610f4a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f4190611f3a565b60405180910390fd5b6000600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461101e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161101590611f3a565b60405180910390fd5b6000600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16826040516110669061202a565b60006040518083038185875af1925050503d80600081146110a3576040519150601f19603f3d011682016040523d82523d6000602084013e6110a8565b606091505b50509050600190505050565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6060600180546110e990611d82565b80601f016020809104026020016040519081016040528092919081815260200182805461111590611d82565b80156111625780601f1061113757610100808354040283529160200191611162565b820191906000526020600020905b81548152906001019060200180831161114557829003601f168201915b5050505050905090565b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036111dc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111d390611dff565b60405180910390fd5b816111e733856114f0565b1015611228576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161121f906120b1565b60405180910390fd5b8161123333856114f0565b61123d9190611e4e565b600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040516113969190611ba8565b60405180910390a36001905092915050565b7f0000000000000000000000004212a9b491e0836b950fdc517777ffeaa471e75681565b60006113d93384846115b3565b905092915050565b7f000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc281565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611495576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161148c90611f3a565b60405180910390fd5b80600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b6000600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b73e7be0e9c3a5650db004e306fc9d9cce97eee716681565b7f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d81565b60006115bf848461161f565b61160b576115ee8473e7be0e9c3a5650db004e306fc9d9cce97eee71666064856115e99190612100565b61178e565b5060646063836115fe9190612131565b6116089190612100565b91505b61161684848461178e565b90509392505050565b6000600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806116c25750600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b156116d05760019050611788565b7f0000000000000000000000004212a9b491e0836b950fdc517777ffeaa471e75673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16148061177557507f0000000000000000000000004212a9b491e0836b950fdc517777ffeaa471e75673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b156117835760009050611788565b600190505b92915050565b60008073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16036117fe576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117f5906121bf565b60405180910390fd5b600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054821115611880576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118779061222b565b60405180910390fd5b6000820361189157600190506119a7565b81600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546118e09190611e4e565b9250508190555081600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546119369190611fc5565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161199a9190611ba8565b60405180910390a3600190505b9392505050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006119d9826119ae565b9050919050565b6119e9816119ce565b82525050565b6000602082019050611a0460008301846119e0565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b83811015611a44578082015181840152602081019050611a29565b60008484015250505050565b6000601f19601f8301169050919050565b6000611a6c82611a0a565b611a768185611a15565b9350611a86818560208601611a26565b611a8f81611a50565b840191505092915050565b60006020820190508181036000830152611ab48184611a61565b905092915050565b600080fd5b611aca816119ce565b8114611ad557600080fd5b50565b600081359050611ae781611ac1565b92915050565b6000819050919050565b611b0081611aed565b8114611b0b57600080fd5b50565b600081359050611b1d81611af7565b92915050565b60008060408385031215611b3a57611b39611abc565b5b6000611b4885828601611ad8565b9250506020611b5985828601611b0e565b9150509250929050565b60008115159050919050565b611b7881611b63565b82525050565b6000602082019050611b936000830184611b6f565b92915050565b611ba281611aed565b82525050565b6000602082019050611bbd6000830184611b99565b92915050565b600080600060608486031215611bdc57611bdb611abc565b5b6000611bea86828701611ad8565b9350506020611bfb86828701611ad8565b9250506040611c0c86828701611b0e565b9150509250925092565b600060ff82169050919050565b611c2c81611c16565b82525050565b6000602082019050611c476000830184611c23565b92915050565b600060208284031215611c6357611c62611abc565b5b6000611c7184828501611ad8565b91505092915050565b600060208284031215611c9057611c8f611abc565b5b6000611c9e84828501611b0e565b91505092915050565b611cb081611b63565b8114611cbb57600080fd5b50565b600081359050611ccd81611ca7565b92915050565b60008060408385031215611cea57611ce9611abc565b5b6000611cf885828601611ad8565b9250506020611d0985828601611cbe565b9150509250929050565b60008060408385031215611d2a57611d29611abc565b5b6000611d3885828601611ad8565b9250506020611d4985828601611ad8565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680611d9a57607f821691505b602082108103611dad57611dac611d53565b5b50919050565b7f43616e277420757365207a65726f206164647265737320686572650000000000600082015250565b6000611de9601b83611a15565b9150611df482611db3565b602082019050919050565b60006020820190508181036000830152611e1881611ddc565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000611e5982611aed565b9150611e6483611aed565b9250828203905081811115611e7c57611e7b611e1f565b5b92915050565b7f496e73756666696369656e7420416c6c6f77616e636500000000000000000000600082015250565b6000611eb8601683611a15565b9150611ec382611e82565b602082019050919050565b60006020820190508181036000830152611ee781611eab565b9050919050565b7f4f6e6c7920746865206f776e65722063616e20646f2074686174000000000000600082015250565b6000611f24601a83611a15565b9150611f2f82611eee565b602082019050919050565b60006020820190508181036000830152611f5381611f17565b9050919050565b6000604082019050611f6f60008301856119e0565b611f7c6020830184611b99565b9392505050565b600081519050611f9281611ca7565b92915050565b600060208284031215611fae57611fad611abc565b5b6000611fbc84828501611f83565b91505092915050565b6000611fd082611aed565b9150611fdb83611aed565b9250828201905080821115611ff357611ff2611e1f565b5b92915050565b600081905092915050565b50565b6000612014600083611ff9565b915061201f82612004565b600082019050919050565b600061203582612007565b9150819050919050565b7f43616e2774207375627472616374206d6f7265207468616e2063757272656e7460008201527f20616c6c6f77616e636500000000000000000000000000000000000000000000602082015250565b600061209b602a83611a15565b91506120a68261203f565b604082019050919050565b600060208201905081810360008301526120ca8161208e565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061210b82611aed565b915061211683611aed565b925082612126576121256120d1565b5b828204905092915050565b600061213c82611aed565b915061214783611aed565b925082820261215581611aed565b9150828204841483151761216c5761216b611e1f565b5b5092915050565b7f43616e277420757365207a65726f206164647265737365732068657265000000600082015250565b60006121a9601d83611a15565b91506121b482612173565b602082019050919050565b600060208201905081810360008301526121d88161219c565b9050919050565b7f43616e2774207472616e73666572206d6f7265207468616e20796f75206f776e600082015250565b6000612215602083611a15565b9150612220826121df565b602082019050919050565b6000602082019050818103600083015261224481612208565b905091905056fea26469706673582212207ea2070b278a6d9f4ebeca15dbdde72ca4380966da583d3a883d8f8082a6e63464736f6c63430008120033

Deployed Bytecode Sourcemap

3865:6136:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4406:73;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5268:92;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6626:313;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5368:118;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7939:563;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5494:92;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5991:130;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6947:407;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4034:50;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6496:122;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5698:119;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9910:88;;;;;;;;;;;;;:::i;:::-;;5825:158;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4219:20;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5594:96;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7362:569;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4332:29;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6307:181;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4486:29;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9731:171;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6129:170;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4246:78;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4368:31;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4406:73;4437:42;4406:73;:::o;5268:92::-;5314:13;5347:5;5340:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5268:92;:::o;6626:313::-;6726:4;6770:1;6751:21;;:7;:21;;;6743:61;;;;;;;;;;;;:::i;:::-;;;;;;;;;6850:6;6815:11;:23;6827:10;6815:23;;;;;;;;;;;;;;;:32;6839:7;6815:32;;;;;;;;;;;;;;;:41;;;;6893:7;6872:37;;6881:10;6872:37;;;6902:6;6872:37;;;;;;:::i;:::-;;;;;;;;6927:4;6920:11;;6626:313;;;;:::o;5368:118::-;5421:7;5463:9;:15;4437:42;5463:15;;;;;;;;;;;;;;;;5448:12;;:30;;;;:::i;:::-;5441:37;;5368:118;:::o;7939:563::-;8073:4;8129:17;8094:11;:19;8106:6;8094:19;;;;;;;;;;;;;;;:31;8114:10;8094:31;;;;;;;;;;;;;;;;:52;8090:347;;8224:6;8189:11;:19;8201:6;8189:19;;;;;;;;;;;;;;;:31;8209:10;8189:31;;;;;;;;;;;;;;;;:41;;8163:125;;;;;;;;;;;;:::i;:::-;;;;;;;;;8338:6;8303:11;:19;8315:6;8303:19;;;;;;;;;;;;;;;:31;8323:10;8303:31;;;;;;;;;;;;;;;;:41;;;;;;;:::i;:::-;;;;;;;;8381:10;8364:61;;8373:6;8364:61;;;8393:11;:19;8405:6;8393:19;;;;;;;;;;;;;;;:31;8413:10;8393:31;;;;;;;;;;;;;;;;8364:61;;;;;;:::i;:::-;;;;;;;;8090:347;8454:40;8468:6;8476:9;8487:6;8454:13;:40::i;:::-;8447:47;;7939:563;;;;;:::o;5494:92::-;5544:5;3988:2;5562:16;;5494:92;:::o;5991:130::-;4581:5;;;;;;;;;;;4567:19;;:10;:19;;;4559:58;;;;;;;;;;;;:::i;:::-;;;;;;;;;6083:5:::1;6076:22;;;6099:5;;;;;;;;;;;6106:6;6076:37;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;5991:130:::0;;:::o;6947:407::-;7052:4;7096:1;7077:21;;:7;:21;;;7069:61;;;;;;;;;;;;:::i;:::-;;;;;;;;;7235:10;7189:30;7199:10;7211:7;7189:9;:30::i;:::-;:56;;;;:::i;:::-;7141:11;:23;7153:10;7141:23;;;;;;;;;;;;;;;:32;7165:7;7141:32;;;;;;;;;;;;;;;:104;;;;7282:7;7261:63;;7270:10;7261:63;;;7291:11;:23;7303:10;7291:23;;;;;;;;;;;;;;;:32;7315:7;7291:32;;;;;;;;;;;;;;;;7261:63;;;;;;:::i;:::-;;;;;;;;7342:4;7335:11;;6947:407;;;;:::o;4034:50::-;;;;;;;;;;;;;;;;;;;;;;:::o;6496:122::-;6551:4;6575:35;6583:7;6592:17;6575:7;:35::i;:::-;6568:42;;6496:122;;;:::o;5698:119::-;5764:7;5791:9;:18;5801:7;5791:18;;;;;;;;;;;;;;;;5784:25;;5698:119;;;:::o;9910:88::-;4581:5;;;;;;;;;;;4567:19;;:10;:19;;;4559:58;;;;;;;;;;;;:::i;:::-;;;;;;;;;9988:1:::1;9972:5;;:18;;;;;;;;;;;;;;;;;;9910:88::o:0;5825:158::-;4581:5;;;;;;;;;;;4567:19;;:10;:19;;;4559:58;;;;;;;;;;;;:::i;:::-;;;;;;;;;5894:12:::1;5920:5;;;;;;;;;;;5912:19;;5939:6;5912:38;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5893:57;;;5971:4;5961:14;;5882:101;5825:158:::0;:::o;4219:20::-;;;;;;;;;;;;;:::o;5594:96::-;5642:13;5675:7;5668:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5594:96;:::o;7362:569::-;7472:4;7516:1;7497:21;;:7;:21;;;7489:61;;;;;;;;;;;;:::i;:::-;;;;;;;;;7617:15;7583:30;7593:10;7605:7;7583:9;:30::i;:::-;:49;;7561:141;;;;;;;;;;;;:::i;:::-;;;;;;;;;7807:15;7761:30;7771:10;7783:7;7761:9;:30::i;:::-;:61;;;;:::i;:::-;7713:11;:23;7725:10;7713:23;;;;;;;;;;;;;;;:32;7737:7;7713:32;;;;;;;;;;;;;;;:109;;;;7859:7;7838:63;;7847:10;7838:63;;;7868:11;:23;7880:10;7868:23;;;;;;;;;;;;;;;:32;7892:7;7868:32;;;;;;;;;;;;;;;;7838:63;;;;;;:::i;:::-;;;;;;;;7919:4;7912:11;;7362:569;;;;:::o;4332:29::-;;;:::o;6307:181::-;6412:4;6436:44;6450:10;6462:9;6473:6;6436:13;:44::i;:::-;6429:51;;6307:181;;;;:::o;4486:29::-;;;:::o;9731:171::-;4581:5;;;;;;;;;;;4567:19;;:10;:19;;;4559:58;;;;;;;;;;;;:::i;:::-;;;;;;;;;9888:6:::1;9851:18;:34;9870:14;9851:34;;;;;;;;;;;;;;;;:43;;;;;;;;;;;;;;;;;;9731:171:::0;;:::o;6129:170::-;6236:7;6263:11;:19;6275:6;6263:19;;;;;;;;;;;;;;;:28;6283:7;6263:28;;;;;;;;;;;;;;;;6256:35;;6129:170;;;;:::o;4246:78::-;4282:42;4246:78;:::o;4368:31::-;;;:::o;8510:366::-;8636:4;8658:31;8671:6;8679:9;8658:12;:31::i;:::-;8653:156;;8706:48;8722:6;4282:42;8750:3;8741:6;:12;;;;:::i;:::-;8706:15;:48::i;:::-;;8794:3;8788:2;8779:6;:11;;;;:::i;:::-;8778:19;;;;:::i;:::-;8769:28;;8653:156;8826:42;8842:6;8850:9;8861:6;8826:15;:42::i;:::-;8819:49;;8510:366;;;;;:::o;8884:305::-;8989:4;9010:18;:26;9029:6;9010:26;;;;;;;;;;;;;;;;;;;;;;;;;:59;;;;9040:18;:29;9059:9;9040:29;;;;;;;;;;;;;;;;;;;;;;;;;9010:59;9006:89;;;9091:4;9084:11;;;;9006:89;9120:4;9110:14;;:6;:14;;;:35;;;;9141:4;9128:17;;:9;:17;;;9110:35;9106:53;;;9154:5;9147:12;;;;9106:53;9177:4;9170:11;;8884:305;;;;;:::o;9197:526::-;9325:4;9368:1;9350:20;;:6;:20;;;9342:62;;;;;;;;;;;;:::i;:::-;;;;;;;;;9447:9;:17;9457:6;9447:17;;;;;;;;;;;;;;;;9437:6;:27;;9415:109;;;;;;;;;;;;:::i;:::-;;;;;;;;;9549:1;9539:6;:11;9535:28;;9559:4;9552:11;;;;9535:28;9595:6;9574:9;:17;9584:6;9574:17;;;;;;;;;;;;;;;;:27;;;;;;;:::i;:::-;;;;;;;;9636:6;9612:9;:20;9622:9;9612:20;;;;;;;;;;;;;;;;:30;;;;;;;:::i;:::-;;;;;;;;9675:9;9658:35;;9667:6;9658:35;;;9686:6;9658:35;;;;;;:::i;:::-;;;;;;;;9711:4;9704:11;;9197:526;;;;;;:::o;7:126:1:-;44:7;84:42;77:5;73:54;62:65;;7:126;;;:::o;139:96::-;176:7;205:24;223:5;205:24;:::i;:::-;194:35;;139:96;;;:::o;241:118::-;328:24;346:5;328:24;:::i;:::-;323:3;316:37;241:118;;:::o;365:222::-;458:4;496:2;485:9;481:18;473:26;;509:71;577:1;566:9;562:17;553:6;509:71;:::i;:::-;365:222;;;;:::o;593:99::-;645:6;679:5;673:12;663:22;;593:99;;;:::o;698:169::-;782:11;816:6;811:3;804:19;856:4;851:3;847:14;832:29;;698:169;;;;:::o;873:246::-;954:1;964:113;978:6;975:1;972:13;964:113;;;1063:1;1058:3;1054:11;1048:18;1044:1;1039:3;1035:11;1028:39;1000:2;997:1;993:10;988:15;;964:113;;;1111:1;1102:6;1097:3;1093:16;1086:27;935:184;873:246;;;:::o;1125:102::-;1166:6;1217:2;1213:7;1208:2;1201:5;1197:14;1193:28;1183:38;;1125:102;;;:::o;1233:377::-;1321:3;1349:39;1382:5;1349:39;:::i;:::-;1404:71;1468:6;1463:3;1404:71;:::i;:::-;1397:78;;1484:65;1542:6;1537:3;1530:4;1523:5;1519:16;1484:65;:::i;:::-;1574:29;1596:6;1574:29;:::i;:::-;1569:3;1565:39;1558:46;;1325:285;1233:377;;;;:::o;1616:313::-;1729:4;1767:2;1756:9;1752:18;1744:26;;1816:9;1810:4;1806:20;1802:1;1791:9;1787:17;1780:47;1844:78;1917:4;1908:6;1844:78;:::i;:::-;1836:86;;1616:313;;;;:::o;2016:117::-;2125:1;2122;2115:12;2262:122;2335:24;2353:5;2335:24;:::i;:::-;2328:5;2325:35;2315:63;;2374:1;2371;2364:12;2315:63;2262:122;:::o;2390:139::-;2436:5;2474:6;2461:20;2452:29;;2490:33;2517:5;2490:33;:::i;:::-;2390:139;;;;:::o;2535:77::-;2572:7;2601:5;2590:16;;2535:77;;;:::o;2618:122::-;2691:24;2709:5;2691:24;:::i;:::-;2684:5;2681:35;2671:63;;2730:1;2727;2720:12;2671:63;2618:122;:::o;2746:139::-;2792:5;2830:6;2817:20;2808:29;;2846:33;2873:5;2846:33;:::i;:::-;2746:139;;;;:::o;2891:474::-;2959:6;2967;3016:2;3004:9;2995:7;2991:23;2987:32;2984:119;;;3022:79;;:::i;:::-;2984:119;3142:1;3167:53;3212:7;3203:6;3192:9;3188:22;3167:53;:::i;:::-;3157:63;;3113:117;3269:2;3295:53;3340:7;3331:6;3320:9;3316:22;3295:53;:::i;:::-;3285:63;;3240:118;2891:474;;;;;:::o;3371:90::-;3405:7;3448:5;3441:13;3434:21;3423:32;;3371:90;;;:::o;3467:109::-;3548:21;3563:5;3548:21;:::i;:::-;3543:3;3536:34;3467:109;;:::o;3582:210::-;3669:4;3707:2;3696:9;3692:18;3684:26;;3720:65;3782:1;3771:9;3767:17;3758:6;3720:65;:::i;:::-;3582:210;;;;:::o;3798:118::-;3885:24;3903:5;3885:24;:::i;:::-;3880:3;3873:37;3798:118;;:::o;3922:222::-;4015:4;4053:2;4042:9;4038:18;4030:26;;4066:71;4134:1;4123:9;4119:17;4110:6;4066:71;:::i;:::-;3922:222;;;;:::o;4150:619::-;4227:6;4235;4243;4292:2;4280:9;4271:7;4267:23;4263:32;4260:119;;;4298:79;;:::i;:::-;4260:119;4418:1;4443:53;4488:7;4479:6;4468:9;4464:22;4443:53;:::i;:::-;4433:63;;4389:117;4545:2;4571:53;4616:7;4607:6;4596:9;4592:22;4571:53;:::i;:::-;4561:63;;4516:118;4673:2;4699:53;4744:7;4735:6;4724:9;4720:22;4699:53;:::i;:::-;4689:63;;4644:118;4150:619;;;;;:::o;4775:86::-;4810:7;4850:4;4843:5;4839:16;4828:27;;4775:86;;;:::o;4867:112::-;4950:22;4966:5;4950:22;:::i;:::-;4945:3;4938:35;4867:112;;:::o;4985:214::-;5074:4;5112:2;5101:9;5097:18;5089:26;;5125:67;5189:1;5178:9;5174:17;5165:6;5125:67;:::i;:::-;4985:214;;;;:::o;5205:329::-;5264:6;5313:2;5301:9;5292:7;5288:23;5284:32;5281:119;;;5319:79;;:::i;:::-;5281:119;5439:1;5464:53;5509:7;5500:6;5489:9;5485:22;5464:53;:::i;:::-;5454:63;;5410:117;5205:329;;;;:::o;5540:::-;5599:6;5648:2;5636:9;5627:7;5623:23;5619:32;5616:119;;;5654:79;;:::i;:::-;5616:119;5774:1;5799:53;5844:7;5835:6;5824:9;5820:22;5799:53;:::i;:::-;5789:63;;5745:117;5540:329;;;;:::o;5875:116::-;5945:21;5960:5;5945:21;:::i;:::-;5938:5;5935:32;5925:60;;5981:1;5978;5971:12;5925:60;5875:116;:::o;5997:133::-;6040:5;6078:6;6065:20;6056:29;;6094:30;6118:5;6094:30;:::i;:::-;5997:133;;;;:::o;6136:468::-;6201:6;6209;6258:2;6246:9;6237:7;6233:23;6229:32;6226:119;;;6264:79;;:::i;:::-;6226:119;6384:1;6409:53;6454:7;6445:6;6434:9;6430:22;6409:53;:::i;:::-;6399:63;;6355:117;6511:2;6537:50;6579:7;6570:6;6559:9;6555:22;6537:50;:::i;:::-;6527:60;;6482:115;6136:468;;;;;:::o;6610:474::-;6678:6;6686;6735:2;6723:9;6714:7;6710:23;6706:32;6703:119;;;6741:79;;:::i;:::-;6703:119;6861:1;6886:53;6931:7;6922:6;6911:9;6907:22;6886:53;:::i;:::-;6876:63;;6832:117;6988:2;7014:53;7059:7;7050:6;7039:9;7035:22;7014:53;:::i;:::-;7004:63;;6959:118;6610:474;;;;;:::o;7090:180::-;7138:77;7135:1;7128:88;7235:4;7232:1;7225:15;7259:4;7256:1;7249:15;7276:320;7320:6;7357:1;7351:4;7347:12;7337:22;;7404:1;7398:4;7394:12;7425:18;7415:81;;7481:4;7473:6;7469:17;7459:27;;7415:81;7543:2;7535:6;7532:14;7512:18;7509:38;7506:84;;7562:18;;:::i;:::-;7506:84;7327:269;7276:320;;;:::o;7602:177::-;7742:29;7738:1;7730:6;7726:14;7719:53;7602:177;:::o;7785:366::-;7927:3;7948:67;8012:2;8007:3;7948:67;:::i;:::-;7941:74;;8024:93;8113:3;8024:93;:::i;:::-;8142:2;8137:3;8133:12;8126:19;;7785:366;;;:::o;8157:419::-;8323:4;8361:2;8350:9;8346:18;8338:26;;8410:9;8404:4;8400:20;8396:1;8385:9;8381:17;8374:47;8438:131;8564:4;8438:131;:::i;:::-;8430:139;;8157:419;;;:::o;8582:180::-;8630:77;8627:1;8620:88;8727:4;8724:1;8717:15;8751:4;8748:1;8741:15;8768:194;8808:4;8828:20;8846:1;8828:20;:::i;:::-;8823:25;;8862:20;8880:1;8862:20;:::i;:::-;8857:25;;8906:1;8903;8899:9;8891:17;;8930:1;8924:4;8921:11;8918:37;;;8935:18;;:::i;:::-;8918:37;8768:194;;;;:::o;8968:172::-;9108:24;9104:1;9096:6;9092:14;9085:48;8968:172;:::o;9146:366::-;9288:3;9309:67;9373:2;9368:3;9309:67;:::i;:::-;9302:74;;9385:93;9474:3;9385:93;:::i;:::-;9503:2;9498:3;9494:12;9487:19;;9146:366;;;:::o;9518:419::-;9684:4;9722:2;9711:9;9707:18;9699:26;;9771:9;9765:4;9761:20;9757:1;9746:9;9742:17;9735:47;9799:131;9925:4;9799:131;:::i;:::-;9791:139;;9518:419;;;:::o;9943:176::-;10083:28;10079:1;10071:6;10067:14;10060:52;9943:176;:::o;10125:366::-;10267:3;10288:67;10352:2;10347:3;10288:67;:::i;:::-;10281:74;;10364:93;10453:3;10364:93;:::i;:::-;10482:2;10477:3;10473:12;10466:19;;10125:366;;;:::o;10497:419::-;10663:4;10701:2;10690:9;10686:18;10678:26;;10750:9;10744:4;10740:20;10736:1;10725:9;10721:17;10714:47;10778:131;10904:4;10778:131;:::i;:::-;10770:139;;10497:419;;;:::o;10922:332::-;11043:4;11081:2;11070:9;11066:18;11058:26;;11094:71;11162:1;11151:9;11147:17;11138:6;11094:71;:::i;:::-;11175:72;11243:2;11232:9;11228:18;11219:6;11175:72;:::i;:::-;10922:332;;;;;:::o;11260:137::-;11314:5;11345:6;11339:13;11330:22;;11361:30;11385:5;11361:30;:::i;:::-;11260:137;;;;:::o;11403:345::-;11470:6;11519:2;11507:9;11498:7;11494:23;11490:32;11487:119;;;11525:79;;:::i;:::-;11487:119;11645:1;11670:61;11723:7;11714:6;11703:9;11699:22;11670:61;:::i;:::-;11660:71;;11616:125;11403:345;;;;:::o;11754:191::-;11794:3;11813:20;11831:1;11813:20;:::i;:::-;11808:25;;11847:20;11865:1;11847:20;:::i;:::-;11842:25;;11890:1;11887;11883:9;11876:16;;11911:3;11908:1;11905:10;11902:36;;;11918:18;;:::i;:::-;11902:36;11754:191;;;;:::o;11951:147::-;12052:11;12089:3;12074:18;;11951:147;;;;:::o;12104:114::-;;:::o;12224:398::-;12383:3;12404:83;12485:1;12480:3;12404:83;:::i;:::-;12397:90;;12496:93;12585:3;12496:93;:::i;:::-;12614:1;12609:3;12605:11;12598:18;;12224:398;;;:::o;12628:379::-;12812:3;12834:147;12977:3;12834:147;:::i;:::-;12827:154;;12998:3;12991:10;;12628:379;;;:::o;13013:229::-;13153:34;13149:1;13141:6;13137:14;13130:58;13222:12;13217:2;13209:6;13205:15;13198:37;13013:229;:::o;13248:366::-;13390:3;13411:67;13475:2;13470:3;13411:67;:::i;:::-;13404:74;;13487:93;13576:3;13487:93;:::i;:::-;13605:2;13600:3;13596:12;13589:19;;13248:366;;;:::o;13620:419::-;13786:4;13824:2;13813:9;13809:18;13801:26;;13873:9;13867:4;13863:20;13859:1;13848:9;13844:17;13837:47;13901:131;14027:4;13901:131;:::i;:::-;13893:139;;13620:419;;;:::o;14045:180::-;14093:77;14090:1;14083:88;14190:4;14187:1;14180:15;14214:4;14211:1;14204:15;14231:185;14271:1;14288:20;14306:1;14288:20;:::i;:::-;14283:25;;14322:20;14340:1;14322:20;:::i;:::-;14317:25;;14361:1;14351:35;;14366:18;;:::i;:::-;14351:35;14408:1;14405;14401:9;14396:14;;14231:185;;;;:::o;14422:410::-;14462:7;14485:20;14503:1;14485:20;:::i;:::-;14480:25;;14519:20;14537:1;14519:20;:::i;:::-;14514:25;;14574:1;14571;14567:9;14596:30;14614:11;14596:30;:::i;:::-;14585:41;;14775:1;14766:7;14762:15;14759:1;14756:22;14736:1;14729:9;14709:83;14686:139;;14805:18;;:::i;:::-;14686:139;14470:362;14422:410;;;;:::o;14838:179::-;14978:31;14974:1;14966:6;14962:14;14955:55;14838:179;:::o;15023:366::-;15165:3;15186:67;15250:2;15245:3;15186:67;:::i;:::-;15179:74;;15262:93;15351:3;15262:93;:::i;:::-;15380:2;15375:3;15371:12;15364:19;;15023:366;;;:::o;15395:419::-;15561:4;15599:2;15588:9;15584:18;15576:26;;15648:9;15642:4;15638:20;15634:1;15623:9;15619:17;15612:47;15676:131;15802:4;15676:131;:::i;:::-;15668:139;;15395:419;;;:::o;15820:182::-;15960:34;15956:1;15948:6;15944:14;15937:58;15820:182;:::o;16008:366::-;16150:3;16171:67;16235:2;16230:3;16171:67;:::i;:::-;16164:74;;16247:93;16336:3;16247:93;:::i;:::-;16365:2;16360:3;16356:12;16349:19;;16008:366;;;:::o;16380:419::-;16546:4;16584:2;16573:9;16569:18;16561:26;;16633:9;16627:4;16623:20;16619:1;16608:9;16604:17;16597:47;16661:131;16787:4;16661:131;:::i;:::-;16653:139;;16380:419;;;:::o

Swarm Source

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