BNB Price: $627.33 (-1.10%)
 

Overview

Max Total Supply

1,000,000MUSKRUG

Holders

196

Market

Price

$0.00 @ 0.000000 BNB

Onchain Market Cap

-

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
1 MUSKRUG

Value
$0.00
0xb080b94052f039ec2ca8bbaf7ec13329d1926973
Loading...
Loading
Loading...
Loading
Loading...
Loading

Click here to update the token information / general information

Contract Source Code Verified (Exact Match)

Contract Name:
Token

Compiler Version
v0.8.24+commit.e11b9ed9

Optimization Enabled:
Yes with 200 runs

Other Settings:
cancun EvmVersion, None license
/**
 *Submitted for verification at BscScan.com on 2025-06-21
*/

// File: token new 3/contracts/interfaces/ERC20.sol


pragma solidity 0.8.24;

interface IERC20 {
    event Approval(address indexed owner, address indexed spender, uint256 amount);
    event Transfer(address indexed from, address indexed to, uint256 amount);

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

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

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

    function totalSupply() external view returns (uint256);

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

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

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

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

    function decimals() external view returns (uint8);
}

interface IERC20Errors {
    error ERC20InsufficientBalance(address sender, uint256 balance, uint256 needed);
    error ERC20InvalidSender(address sender);
    error ERC20InvalidReceiver(address receiver);
    error ERC20InsufficientAllowance(address spender, uint256 allowance, uint256 needed);
    error ERC20InvalidApprover(address approver);
    error ERC20InvalidSpender(address spender);
}

// File: token new 3/contracts/interfaces/PancakeV2.sol


pragma solidity 0.8.24;


interface IPancakeV2Pair is IERC20 {
    function factory() external view returns (address);

    function token0() external view returns (IERC20);

    function token1() external view returns (IERC20);

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

// File: token new 3/contracts/libraries/FixedPointMath.sol


pragma solidity 0.8.24;

error FixedPointMathMulDivOverflow(uint256 prod1, uint256 denominator);

uint256 constant SCALE = 1e18;
uint256 constant HALF_SCALE = 5e17;
/// @dev Largest power of two divisor of scale.
uint256 constant SCALE_LPOTD = 262144;
/// @dev Scale inverted mod 2**256.
uint256 constant SCALE_INVERSE =
    78156646155174841979727994598816262306175212592076161876661508869554232690281;
uint256 constant LOG2_E = 1_442695040888963407;

function mul(uint256 a, uint256 b) pure returns (uint256 result) {
    uint256 prod0;
    uint256 prod1;
    assembly {
        let mm := mulmod(a, b, not(0))
        prod0 := mul(a, b)
        prod1 := sub(sub(mm, prod0), lt(mm, prod0))
    }

    if (prod1 >= SCALE) {
        revert FixedPointMathMulDivOverflow(prod1, SCALE);
    }

    uint256 remainder;
    uint256 roundUpUnit;
    assembly {
        remainder := mulmod(a, b, SCALE)
        roundUpUnit := gt(remainder, 499999999999999999)
    }

    if (prod1 == 0) {
        assembly {
            result := add(div(prod0, SCALE), roundUpUnit)
        }
        return result;
    }

    assembly {
        result := add(
            mul(
                or(
                    div(sub(prod0, remainder), SCALE_LPOTD),
                    mul(sub(prod1, gt(remainder, prod0)), add(div(sub(0, SCALE_LPOTD), SCALE_LPOTD), 1))
                ),
                SCALE_INVERSE
            ),
            roundUpUnit
        )
    }
}

function div(uint256 a, uint256 b) pure returns (uint256 result) {
    result = mulDiv(a, SCALE, b);
}

/// @notice Calculates ⌊a × b ÷ denominator⌋ with full precision.
/// @dev Credit to Remco Bloemen under MIT license https://2π.com/21/muldiv.
function mulDiv(
    uint256 a,
    uint256 b,
    uint256 denominator
) pure returns (uint256 result) {
    uint256 prod0;
    uint256 prod1;
    assembly {
        let mm := mulmod(a, b, not(0))
        prod0 := mul(a, b)
        prod1 := sub(sub(mm, prod0), lt(mm, prod0))
    }

    if (prod1 >= denominator) {
        revert FixedPointMathMulDivOverflow(prod1, denominator);
    }

    if (prod1 == 0) {
        assembly {
            result := div(prod0, denominator)
        }
        return result;
    }

    uint256 remainder;
    assembly {
        remainder := mulmod(a, b, denominator)

        prod1 := sub(prod1, gt(remainder, prod0))
        prod0 := sub(prod0, remainder)
    }

    unchecked {
        uint256 lpotdod = denominator & (~denominator + 1);
        assembly {
            denominator := div(denominator, lpotdod)
            prod0 := div(prod0, lpotdod)
            lpotdod := add(div(sub(0, lpotdod), lpotdod), 1)
        }
        prod0 |= prod1 * lpotdod;

        uint256 inverse = (3 * denominator) ^ 2;
        inverse *= 2 - denominator * inverse;
        inverse *= 2 - denominator * inverse;
        inverse *= 2 - denominator * inverse;
        inverse *= 2 - denominator * inverse;
        inverse *= 2 - denominator * inverse;
        inverse *= 2 - denominator * inverse;

        result = prod0 * inverse;
    }
}
// File: token new 3/contracts/libraries/PancakeV2.sol


pragma solidity 0.8.24;


error PancakeLibraryIdenticalAddresses(address account);
error PancakeLibraryZeroAddress();

bytes32 constant PAIR_INIT_CODE_HASH = 0x00fb7f630766e6a796048ea87d01acd3068e8ff67d078148a3fa3f4a84f69bd5;
address constant FACTORY_ADDRESS = 0xcA143Ce32Fe78f1f7019d7d551a6402fC5350c73;

function sortTokens(address tokenA, address tokenB) pure returns (address token0, address token1) {
    if (tokenA == tokenB) {
        revert PancakeLibraryIdenticalAddresses(tokenA);
    }
    (token0, token1) = tokenA < tokenB ? (tokenA, tokenB) : (tokenB, tokenA);
    if (token0 == address(0)) {
        revert PancakeLibraryZeroAddress();
    }
}

function pairFor(
    address tokenA,
    address tokenB
) pure returns (address pair) {
    (address token0, address token1) = sortTokens(tokenA, tokenB);

    pair = address(
        uint160(
            uint256(
                keccak256(
                    abi.encodePacked(
                        hex'ff',
                        FACTORY_ADDRESS,
                        keccak256(abi.encodePacked(token0, token1)),
                        PAIR_INIT_CODE_HASH
                    )
                )
            )
        )
    );
}

function getReserves(
    IPancakeV2Pair pair
) view returns (uint256 reserveA, uint256 reserveB) {
    if (address(pair).code.length == 0) {
        return (reserveA, reserveB);
    }

    (reserveA, reserveB, ) = pair.getReserves();
    return (reserveA, reserveB);
}
// File: token new 3/contracts/Token.sol


pragma solidity 0.8.24;





contract Token is IERC20, IERC20Errors {
    using { div, mulDiv } for uint256;

    address public immutable owner;

    uint256 public totalSupply;
    mapping(address account => uint256 balance) public balanceOf;
    mapping(address owner => mapping(address spender => uint256 amount)) public allowance;

    mapping(address account => uint256 price) public prices;

    address public token = 0x55d398326f99059fF775485246999027B3197955;
    IPancakeV2Pair public pair;

    uint256 public maxAllowedProfit = 10; // %
    uint256 public fee = 3; // %

    error OnlyOwnerAllowedToCall();

    modifier onlyOwner() {
        if (msg.sender != owner) {
            revert OnlyOwnerAllowedToCall();
        }
        _;     
    }

    constructor() {
        owner = msg.sender;

        pair = IPancakeV2Pair(pairFor(address(this), token));

        uint256 amount = 1_000_000 ether;
        balanceOf[msg.sender] = amount;
        totalSupply = amount;

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

    function transferFrom(
        address from,
        address to,
        uint256 amount
    ) external returns (bool) {
        if (from != msg.sender) {
            uint256 _allowance = allowance[from][msg.sender];
            if(_allowance < amount) {
                revert ERC20InsufficientAllowance(msg.sender, _allowance, amount);
            }
        }

        return _transfer(from, to, amount);
    }

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

    function approve(address spender, uint256 amount) external returns (bool) {
        if (spender == address(0)) {
            revert ERC20InvalidSpender(spender);
        }

        allowance[msg.sender][spender] = amount;

        emit Approval(msg.sender, spender, amount);

        return true;
    }

    function setToken(address _token) external onlyOwner {
        token = _token;
        pair = IPancakeV2Pair(pairFor(address(this), token));
    }

    function setMaxAllowedProfit(uint256 _maxAllowedProfit) external onlyOwner {
        maxAllowedProfit = _maxAllowedProfit;
    }

    function setFee(uint256 _fee) external onlyOwner {
        fee = _fee;
    }

    function name() external pure returns (string memory) {
        return "MUSKRUG";
    }

    function symbol() external pure returns (string memory) {
        return "MUSKRUG";
    }

    function decimals() external pure returns (uint8) {
        return 18;
    }

    function _transfer(
        address from,
        address to,
        uint256 amount
    ) internal returns (bool) {
        if (to == address(0)) {
            revert ERC20InvalidReceiver(to);
        }

        uint256 balance = balanceOf[from];
        if (balance < amount) {
            revert ERC20InsufficientBalance(from, balance, amount);
        }

        uint256 price0;
        if (from == address(pair) || to == address(pair)) {
            (uint256 reserveA, uint256 reserveB) = getReserves(pair);
            if (address(this) < token) {
                if (reserveA > 0) {
                    price0 = reserveB.div(reserveA);
                }
            } else {
                if (reserveB > 0) {
                    price0 = reserveA.div(reserveB);
                }  
            }
        }   

        if (from == address(pair)) {
            prices[to] = price0;
        }
        if (to == address(pair) && from != owner) {
            uint256 price1 = prices[from];
            if (price0 > price1 && price1 > 0) {
                uint256 delta = price0 - price1;
                uint256 profit = delta.mulDiv(10 ** 2, price1);
                if (profit >= maxAllowedProfit) {
                    return false;
                }
            }
        }

        unchecked {
            balanceOf[from] -= amount;
        }

        uint256 buyFee;
        uint256 sellFee;
        if (from == address(pair) && to != owner) {
            buyFee = amount.mulDiv(fee, 10 ** 2);
        }
        if (from != owner && to == address(pair)) {
            sellFee = amount.mulDiv(fee, 10 ** 2);
        }
        uint256 totalFee = buyFee + sellFee;
        if (totalFee > 0) {
            balanceOf[owner] += totalFee;
            amount -= totalFee;
            emit Transfer(to, owner, totalFee);
        }

        balanceOf[to] += amount;

        emit Transfer(from, to, amount);

        return true;
    }
}

Contract Security Audit

Contract ABI

API
[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"allowance","type":"uint256"},{"internalType":"uint256","name":"needed","type":"uint256"}],"name":"ERC20InsufficientAllowance","type":"error"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"uint256","name":"balance","type":"uint256"},{"internalType":"uint256","name":"needed","type":"uint256"}],"name":"ERC20InsufficientBalance","type":"error"},{"inputs":[{"internalType":"address","name":"approver","type":"address"}],"name":"ERC20InvalidApprover","type":"error"},{"inputs":[{"internalType":"address","name":"receiver","type":"address"}],"name":"ERC20InvalidReceiver","type":"error"},{"inputs":[{"internalType":"address","name":"sender","type":"address"}],"name":"ERC20InvalidSender","type":"error"},{"inputs":[{"internalType":"address","name":"spender","type":"address"}],"name":"ERC20InvalidSpender","type":"error"},{"inputs":[{"internalType":"uint256","name":"prod1","type":"uint256"},{"internalType":"uint256","name":"denominator","type":"uint256"}],"name":"FixedPointMathMulDivOverflow","type":"error"},{"inputs":[],"name":"OnlyOwnerAllowedToCall","type":"error"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"PancakeLibraryIdenticalAddresses","type":"error"},{"inputs":[],"name":"PancakeLibraryZeroAddress","type":"error"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","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":"amount","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":"amount","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":"balance","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"fee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxAllowedProfit","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pair","outputs":[{"internalType":"contract IPancakeV2Pair","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"prices","outputs":[{"internalType":"uint256","name":"price","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_fee","type":"uint256"}],"name":"setFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_maxAllowedProfit","type":"uint256"}],"name":"setMaxAllowedProfit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_token","type":"address"}],"name":"setToken","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"token","outputs":[{"internalType":"address","name":"","type":"address"}],"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"}]

60a0604052600480546001600160a01b0319167355d398326f99059ff775485246999027b3197955179055600a600655600360075534801561003f575f80fd5b503360805260045461005b9030906001600160a01b03166100d8565b600580546001600160a01b0319166001600160a01b0392909216919091179055335f81815260016020908152604080832069d3c21bcecceda1000000908190558084559051818152909392917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a350610256565b5f80806100e585856101bd565b604080516001600160601b0319606094851b81166020808401919091529390941b9093166034840152805180840360280181526048840182528051908301207fff0000000000000000000000000000000000000000000000000000000000000060688501527fca143ce32fe78f1f7019d7d551a6402fc5350c730000000000000000000000006069850152607d8401527efb7f630766e6a796048ea87d01acd3068e8ff67d078148a3fa3f4a84f69bd5609d808501919091528151808503909101815260bd9093019052815191012095945050505050565b5f80826001600160a01b0316846001600160a01b0316036102005760405163389b62c760e01b81526001600160a01b038516600482015260240160405180910390fd5b826001600160a01b0316846001600160a01b031610610220578284610223565b83835b90925090506001600160a01b03821661024f5760405163338204fb60e01b815260040160405180910390fd5b9250929050565b608051610e1a6102a65f395f818161020a015281816102da015281816103c4015281816104d50152818161074c0152818161081a01528181610869015281816108eb015261093c0152610e1a5ff3fe608060405234801561000f575f80fd5b5060043610610111575f3560e01c806370a082311161009e578063a9059cbb1161006e578063a9059cbb14610257578063cfed246b1461026a578063dd62ed3e14610289578063ddca3f43146102b3578063fc0c546a146102bc575f80fd5b806370a08231146101e65780638da5cb5b1461020557806395d89b411461012a578063a8aa1b3114610244575f80fd5b806318160ddd116100e457806318160ddd1461019257806323b872dd146101a8578063313ce567146101bb57806367e96a59146101ca57806369fe0e2d146101d3575f80fd5b80630226d43d1461011557806306fdde031461012a578063095ea7b31461015c578063144fa6d71461017f575b5f80fd5b610128610123366004610c1f565b6102cf565b005b60408051808201825260078152664d55534b52554760c81b602082015290516101539190610c36565b60405180910390f35b61016f61016a366004610c9d565b61031d565b6040519015158152602001610153565b61012861018d366004610cc5565b6103b9565b61019a5f5481565b604051908152602001610153565b61016f6101b6366004610cde565b61044e565b60405160128152602001610153565b61019a60065481565b6101286101e1366004610c1f565b6104ca565b61019a6101f4366004610cc5565b60016020525f908152604090205481565b61022c7f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b039091168152602001610153565b60055461022c906001600160a01b031681565b61016f610265366004610c9d565b610518565b61019a610278366004610cc5565b60036020525f908152604090205481565b61019a610297366004610d17565b600260209081525f928352604080842090915290825290205481565b61019a60075481565b60045461022c906001600160a01b031681565b336001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614610318576040516359660b9b60e11b815260040160405180910390fd5b600655565b5f6001600160a01b03831661035557604051634a1406b160e11b81526001600160a01b03841660048201526024015b60405180910390fd5b335f8181526002602090815260408083206001600160a01b03881680855290835292819020869055518581529192917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a35060015b92915050565b336001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614610402576040516359660b9b60e11b815260040160405180910390fd5b600480546001600160a01b0319166001600160a01b03831690811790915561042b903090610524565b600580546001600160a01b0319166001600160a01b039290921691909117905550565b5f6001600160a01b03841633146104b5576001600160a01b0384165f908152600260209081526040808320338452909152902054828110156104b357604051637dc7a0d960e11b8152336004820152602481018290526044810184905260640161034c565b505b6104c08484846105ed565b90505b9392505050565b336001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614610513576040516359660b9b60e11b815260040160405180910390fd5b600755565b5f6104c33384846105ed565b5f805f6105318585610a32565b604080516bffffffffffffffffffffffff19606094851b81166020808401919091529390941b9093166034840152805180840360280181526048840182528051908301206001600160f81b0319606885015273ca143ce32fe78f1f7019d7d551a6402fc5350c7360601b6069850152607d8401527efb7f630766e6a796048ea87d01acd3068e8ff67d078148a3fa3f4a84f69bd5609d808501919091528151808503909101815260bd9093019052815191012095945050505050565b5f6001600160a01b0383166106205760405163ec442f0560e01b81526001600160a01b038416600482015260240161034c565b6001600160a01b0384165f90815260016020526040902054828110156106725760405163391434e360e21b81526001600160a01b0386166004820152602481018290526044810184905260640161034c565b6005545f906001600160a01b038781169116148061069d57506005546001600160a01b038681169116145b15610701576005545f9081906106bb906001600160a01b0316610ac7565b60045491935091506001600160a01b03163010156106eb5781156106e6576106e38183610b55565b92505b6106fe565b80156106fe576106fb8282610b55565b92505b50505b6005546001600160a01b0390811690871603610732576001600160a01b0385165f9081526003602052604090208190555b6005546001600160a01b03868116911614801561078157507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316866001600160a01b031614155b156107e8576001600160a01b0386165f9081526003602052604090205480821180156107ac57505f81115b156107e6575f6107bc8284610d5c565b90505f6107cb82606485610b65565b905060065481106107e3575f955050505050506104c3565b50505b505b6001600160a01b038087165f8181526001602052604081208054889003905560055490928392911614801561084f57507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316876001600160a01b031614155b15610867576007546108649087906064610b65565b91505b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316886001600160a01b0316141580156108b657506005546001600160a01b038881169116145b156108ce576007546108cb9087906064610b65565b90505b5f6108d98284610d6f565b905080156109a8576001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000165f9081526001602052604081208054839290610928908490610d6f565b9091555061093890508188610d5c565b96507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316886001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161099f91815260200190565b60405180910390a35b6001600160a01b0388165f90815260016020526040812080548992906109cf908490610d6f565b92505081905550876001600160a01b0316896001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef89604051610a1b91815260200190565b60405180910390a350600198975050505050505050565b5f80826001600160a01b0316846001600160a01b031603610a715760405163389b62c760e01b81526001600160a01b038516600482015260240161034c565b826001600160a01b0316846001600160a01b031610610a91578284610a94565b83835b90925090506001600160a01b038216610ac05760405163338204fb60e01b815260040160405180910390fd5b9250929050565b5f80826001600160a01b03163b5f03610adf57915091565b826001600160a01b0316630902f1ac6040518163ffffffff1660e01b8152600401606060405180830381865afa158015610b1b573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610b3f9190610d98565b506001600160701b039182169591169350915050565b5f6104c383670de0b6b3a7640000845b5f80805f19858709858702925082811083820303915050838110610ba65760405163072fa3c960e31b8152600481018290526024810185905260440161034c565b805f03610bb8575082900490506104c3565b5f8486880960026001871981018816978890046003810283188082028403028082028403028082028403028082028403028082028403029081029092039091025f889003889004909101858311909403939093029303949094049190911702949350505050565b5f60208284031215610c2f575f80fd5b5035919050565b5f602080835283518060208501525f5b81811015610c6257858101830151858201604001528201610c46565b505f604082860101526040601f19601f8301168501019250505092915050565b80356001600160a01b0381168114610c98575f80fd5b919050565b5f8060408385031215610cae575f80fd5b610cb783610c82565b946020939093013593505050565b5f60208284031215610cd5575f80fd5b6104c382610c82565b5f805f60608486031215610cf0575f80fd5b610cf984610c82565b9250610d0760208501610c82565b9150604084013590509250925092565b5f8060408385031215610d28575f80fd5b610d3183610c82565b9150610d3f60208401610c82565b90509250929050565b634e487b7160e01b5f52601160045260245ffd5b818103818111156103b3576103b3610d48565b808201808211156103b3576103b3610d48565b80516001600160701b0381168114610c98575f80fd5b5f805f60608486031215610daa575f80fd5b610db384610d82565b9250610dc160208501610d82565b9150604084015163ffffffff81168114610dd9575f80fd5b80915050925092509256fea2646970667358221220a2369661082fc3487243213e9d5899d2cd4b9f5fcdd31951cfd76cf7c489342264736f6c63430008180033

Deployed Bytecode

0x608060405234801561000f575f80fd5b5060043610610111575f3560e01c806370a082311161009e578063a9059cbb1161006e578063a9059cbb14610257578063cfed246b1461026a578063dd62ed3e14610289578063ddca3f43146102b3578063fc0c546a146102bc575f80fd5b806370a08231146101e65780638da5cb5b1461020557806395d89b411461012a578063a8aa1b3114610244575f80fd5b806318160ddd116100e457806318160ddd1461019257806323b872dd146101a8578063313ce567146101bb57806367e96a59146101ca57806369fe0e2d146101d3575f80fd5b80630226d43d1461011557806306fdde031461012a578063095ea7b31461015c578063144fa6d71461017f575b5f80fd5b610128610123366004610c1f565b6102cf565b005b60408051808201825260078152664d55534b52554760c81b602082015290516101539190610c36565b60405180910390f35b61016f61016a366004610c9d565b61031d565b6040519015158152602001610153565b61012861018d366004610cc5565b6103b9565b61019a5f5481565b604051908152602001610153565b61016f6101b6366004610cde565b61044e565b60405160128152602001610153565b61019a60065481565b6101286101e1366004610c1f565b6104ca565b61019a6101f4366004610cc5565b60016020525f908152604090205481565b61022c7f00000000000000000000000056ecc62f9123f14c9b8f2412c70ea4f0fe1d3d5381565b6040516001600160a01b039091168152602001610153565b60055461022c906001600160a01b031681565b61016f610265366004610c9d565b610518565b61019a610278366004610cc5565b60036020525f908152604090205481565b61019a610297366004610d17565b600260209081525f928352604080842090915290825290205481565b61019a60075481565b60045461022c906001600160a01b031681565b336001600160a01b037f00000000000000000000000056ecc62f9123f14c9b8f2412c70ea4f0fe1d3d531614610318576040516359660b9b60e11b815260040160405180910390fd5b600655565b5f6001600160a01b03831661035557604051634a1406b160e11b81526001600160a01b03841660048201526024015b60405180910390fd5b335f8181526002602090815260408083206001600160a01b03881680855290835292819020869055518581529192917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a35060015b92915050565b336001600160a01b037f00000000000000000000000056ecc62f9123f14c9b8f2412c70ea4f0fe1d3d531614610402576040516359660b9b60e11b815260040160405180910390fd5b600480546001600160a01b0319166001600160a01b03831690811790915561042b903090610524565b600580546001600160a01b0319166001600160a01b039290921691909117905550565b5f6001600160a01b03841633146104b5576001600160a01b0384165f908152600260209081526040808320338452909152902054828110156104b357604051637dc7a0d960e11b8152336004820152602481018290526044810184905260640161034c565b505b6104c08484846105ed565b90505b9392505050565b336001600160a01b037f00000000000000000000000056ecc62f9123f14c9b8f2412c70ea4f0fe1d3d531614610513576040516359660b9b60e11b815260040160405180910390fd5b600755565b5f6104c33384846105ed565b5f805f6105318585610a32565b604080516bffffffffffffffffffffffff19606094851b81166020808401919091529390941b9093166034840152805180840360280181526048840182528051908301206001600160f81b0319606885015273ca143ce32fe78f1f7019d7d551a6402fc5350c7360601b6069850152607d8401527efb7f630766e6a796048ea87d01acd3068e8ff67d078148a3fa3f4a84f69bd5609d808501919091528151808503909101815260bd9093019052815191012095945050505050565b5f6001600160a01b0383166106205760405163ec442f0560e01b81526001600160a01b038416600482015260240161034c565b6001600160a01b0384165f90815260016020526040902054828110156106725760405163391434e360e21b81526001600160a01b0386166004820152602481018290526044810184905260640161034c565b6005545f906001600160a01b038781169116148061069d57506005546001600160a01b038681169116145b15610701576005545f9081906106bb906001600160a01b0316610ac7565b60045491935091506001600160a01b03163010156106eb5781156106e6576106e38183610b55565b92505b6106fe565b80156106fe576106fb8282610b55565b92505b50505b6005546001600160a01b0390811690871603610732576001600160a01b0385165f9081526003602052604090208190555b6005546001600160a01b03868116911614801561078157507f00000000000000000000000056ecc62f9123f14c9b8f2412c70ea4f0fe1d3d536001600160a01b0316866001600160a01b031614155b156107e8576001600160a01b0386165f9081526003602052604090205480821180156107ac57505f81115b156107e6575f6107bc8284610d5c565b90505f6107cb82606485610b65565b905060065481106107e3575f955050505050506104c3565b50505b505b6001600160a01b038087165f8181526001602052604081208054889003905560055490928392911614801561084f57507f00000000000000000000000056ecc62f9123f14c9b8f2412c70ea4f0fe1d3d536001600160a01b0316876001600160a01b031614155b15610867576007546108649087906064610b65565b91505b7f00000000000000000000000056ecc62f9123f14c9b8f2412c70ea4f0fe1d3d536001600160a01b0316886001600160a01b0316141580156108b657506005546001600160a01b038881169116145b156108ce576007546108cb9087906064610b65565b90505b5f6108d98284610d6f565b905080156109a8576001600160a01b037f00000000000000000000000056ecc62f9123f14c9b8f2412c70ea4f0fe1d3d53165f9081526001602052604081208054839290610928908490610d6f565b9091555061093890508188610d5c565b96507f00000000000000000000000056ecc62f9123f14c9b8f2412c70ea4f0fe1d3d536001600160a01b0316886001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161099f91815260200190565b60405180910390a35b6001600160a01b0388165f90815260016020526040812080548992906109cf908490610d6f565b92505081905550876001600160a01b0316896001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef89604051610a1b91815260200190565b60405180910390a350600198975050505050505050565b5f80826001600160a01b0316846001600160a01b031603610a715760405163389b62c760e01b81526001600160a01b038516600482015260240161034c565b826001600160a01b0316846001600160a01b031610610a91578284610a94565b83835b90925090506001600160a01b038216610ac05760405163338204fb60e01b815260040160405180910390fd5b9250929050565b5f80826001600160a01b03163b5f03610adf57915091565b826001600160a01b0316630902f1ac6040518163ffffffff1660e01b8152600401606060405180830381865afa158015610b1b573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610b3f9190610d98565b506001600160701b039182169591169350915050565b5f6104c383670de0b6b3a7640000845b5f80805f19858709858702925082811083820303915050838110610ba65760405163072fa3c960e31b8152600481018290526024810185905260440161034c565b805f03610bb8575082900490506104c3565b5f8486880960026001871981018816978890046003810283188082028403028082028403028082028403028082028403028082028403029081029092039091025f889003889004909101858311909403939093029303949094049190911702949350505050565b5f60208284031215610c2f575f80fd5b5035919050565b5f602080835283518060208501525f5b81811015610c6257858101830151858201604001528201610c46565b505f604082860101526040601f19601f8301168501019250505092915050565b80356001600160a01b0381168114610c98575f80fd5b919050565b5f8060408385031215610cae575f80fd5b610cb783610c82565b946020939093013593505050565b5f60208284031215610cd5575f80fd5b6104c382610c82565b5f805f60608486031215610cf0575f80fd5b610cf984610c82565b9250610d0760208501610c82565b9150604084013590509250925092565b5f8060408385031215610d28575f80fd5b610d3183610c82565b9150610d3f60208401610c82565b90509250929050565b634e487b7160e01b5f52601160045260245ffd5b818103818111156103b3576103b3610d48565b808201808211156103b3576103b3610d48565b80516001600160701b0381168114610c98575f80fd5b5f805f60608486031215610daa575f80fd5b610db384610d82565b9250610dc160208501610d82565b9150604084015163ffffffff81168114610dd9575f80fd5b80915050925092509256fea2646970667358221220a2369661082fc3487243213e9d5899d2cd4b9f5fcdd31951cfd76cf7c489342264736f6c63430008180033

Deployed Bytecode Sourcemap

6779:4617:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8886:130;;;;;;:::i;:::-;;:::i;:::-;;9110:89;9175:16;;;;;;;;;;;-1:-1:-1;;;9175:16:0;;;;9110:89;;;;9175:16;9110:89;:::i;:::-;;;;;;;;8409:312;;;;;;:::i;:::-;;:::i;:::-;;;1354:14:1;;1347:22;1329:41;;1317:2;1302:18;8409:312:0;1189:187:1;8729:149:0;;;;;;:::i;:::-;;:::i;6906:26::-;;;;;;;;;1718:25:1;;;1706:2;1691:18;6906:26:0;1572:177:1;7840:424:0;;;;;;:::i;:::-;;:::i;9306:78::-;;;9374:2;2229:36:1;;2217:2;2202:18;9306:78:0;2087:184:1;7271:36:0;;;;;;9024:78;;;;;;:::i;:::-;;:::i;6939:60::-;;;;;;:::i;:::-;;;;;;;;;;;;;;6867:30;;;;;;;;-1:-1:-1;;;;;2440:32:1;;;2422:51;;2410:2;2395:18;6867:30:0;2276:203:1;7236:26:0;;;;;-1:-1:-1;;;;;7236:26:0;;;8272:129;;;;;;:::i;:::-;;:::i;7100:55::-;;;;;;:::i;:::-;;;;;;;;;;;;;;7006:85;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;7319:22;;;;;;7164:65;;;;;-1:-1:-1;;;;;7164:65:0;;;8886:130;7430:10;-1:-1:-1;;;;;7444:5:0;7430:19;;7426:83;;7473:24;;-1:-1:-1;;;7473:24:0;;;;;;;;;;;7426:83;8972:16:::1;:36:::0;8886:130::o;8409:312::-;8477:4;-1:-1:-1;;;;;8498:21:0;;8494:89;;8543:28;;-1:-1:-1;;;8543:28:0;;-1:-1:-1;;;;;2440:32:1;;8543:28:0;;;2422:51:1;2395:18;;8543:28:0;;;;;;;;8494:89;8605:10;8595:21;;;;:9;:21;;;;;;;;-1:-1:-1;;;;;8595:30:0;;;;;;;;;;;;:39;;;8652:37;1718:25:1;;;8595:30:0;;8605:10;8652:37;;1691:18:1;8652:37:0;;;;;;;-1:-1:-1;8709:4:0;8409:312;;;;;:::o;8729:149::-;7430:10;-1:-1:-1;;;;;7444:5:0;7430:19;;7426:83;;7473:24;;-1:-1:-1;;;7473:24:0;;;;;;;;;;;7426:83;8793:5:::1;:14:::0;;-1:-1:-1;;;;;;8793:14:0::1;-1:-1:-1::0;;;;;8793:14:0;::::1;::::0;;::::1;::::0;;;8840:29:::1;::::0;8856:4:::1;::::0;8840:7:::1;:29::i;:::-;8818:4;:52:::0;;-1:-1:-1;;;;;;8818:52:0::1;-1:-1:-1::0;;;;;8818:52:0;;;::::1;::::0;;;::::1;::::0;;-1:-1:-1;8729:149:0:o;7840:424::-;7956:4;-1:-1:-1;;;;;7977:18:0;;7985:10;7977:18;7973:237;;-1:-1:-1;;;;;8033:15:0;;8012:18;8033:15;;;:9;:15;;;;;;;;8049:10;8033:27;;;;;;;;8078:19;;;8075:124;;;8125:58;;-1:-1:-1;;;8125:58:0;;8152:10;8125:58;;;3181:51:1;3248:18;;;3241:34;;;3291:18;;;3284:34;;;3154:18;;8125:58:0;2979:345:1;8075:124:0;7997:213;7973:237;8229:27;8239:4;8245:2;8249:6;8229:9;:27::i;:::-;8222:34;;7840:424;;;;;;:::o;9024:78::-;7430:10;-1:-1:-1;;;;;7444:5:0;7430:19;;7426:83;;7473:24;;-1:-1:-1;;;7473:24:0;;;;;;;;;;;7426:83;9084:3:::1;:10:::0;9024:78::o;8272:129::-;8336:4;8360:33;8370:10;8382:2;8386:6;8360:9;:33::i;5855:559::-;5931:12;5953:14;5969;5987:26;5998:6;6006;5987:10;:26::i;:::-;6256:32;;;-1:-1:-1;;3556:2:1;3552:15;;;3548:24;;6256:32:0;;;;3536:37:1;;;;3607:15;;;;3603:24;;;3589:12;;;3582:46;6256:32:0;;;;;;;;;3644:12:1;;;6256:32:0;;6246:43;;;;;;-1:-1:-1;;;;;;6127:231:0;;;3953:26:1;-1:-1:-1;;;3995:11:1;;;3988:74;4078:12;;;4071:28;5340:66:0;4115:12:1;;;;4108:28;;;;6127:231:0;;;;;;;;;;4152:12:1;;;;6127:231:0;;6095:282;;;;;;;-1:-1:-1;;;;;5855:559:0:o;9392:2001::-;9505:4;-1:-1:-1;;;;;9526:16:0;;9522:80;;9566:24;;-1:-1:-1;;;9566:24:0;;-1:-1:-1;;;;;2440:32:1;;9566:24:0;;;2422:51:1;2395:18;;9566:24:0;2276:203:1;9522:80:0;-1:-1:-1;;;;;9632:15:0;;9614;9632;;;:9;:15;;;;;;9662:16;;;9658:103;;;9702:47;;-1:-1:-1;;;9702:47:0;;-1:-1:-1;;;;;3199:32:1;;9702:47:0;;;3181:51:1;3248:18;;;3241:34;;;3291:18;;;3284:34;;;3154:18;;9702:47:0;2979:345:1;9658:103:0;9818:4;;9773:14;;-1:-1:-1;;;;;9802:21:0;;;9818:4;;9802:21;;:44;;-1:-1:-1;9841:4:0;;-1:-1:-1;;;;;9827:19:0;;;9841:4;;9827:19;9802:44;9798:434;;;9914:4;;9864:16;;;;9902:17;;-1:-1:-1;;;;;9914:4:0;9902:11;:17::i;:::-;9954:5;;9863:56;;-1:-1:-1;9863:56:0;-1:-1:-1;;;;;;9954:5:0;9946:4;9938:21;9934:287;;;9984:12;;9980:92;;10030:22;:8;10043;10030:12;:22::i;:::-;10021:31;;9980:92;9934:287;;;10116:12;;10112:92;;10162:22;:8;10175;10162:12;:22::i;:::-;10153:31;;10112:92;9848:384;;9798:434;10267:4;;-1:-1:-1;;;;;10267:4:0;;;10251:21;;;;10247:73;;-1:-1:-1;;;;;10289:10:0;;;;;;:6;:10;;;;;:19;;;10247:73;10348:4;;-1:-1:-1;;;;;10334:19:0;;;10348:4;;10334:19;:36;;;;;10365:5;-1:-1:-1;;;;;10357:13:0;:4;-1:-1:-1;;;;;10357:13:0;;;10334:36;10330:383;;;-1:-1:-1;;;;;10404:12:0;;10387:14;10404:12;;;:6;:12;;;;;;10435:15;;;:29;;;;;10463:1;10454:6;:10;10435:29;10431:271;;;10485:13;10501:15;10510:6;10501;:15;:::i;:::-;10485:31;-1:-1:-1;10535:14:0;10552:29;10485:31;10565:7;10574:6;10552:12;:29::i;:::-;10535:46;;10614:16;;10604:6;:26;10600:87;;10662:5;10655:12;;;;;;;;;10600:87;10466:236;;10431:271;10372:341;10330:383;-1:-1:-1;;;;;10750:15:0;;;;;;;:9;:15;;;;;:25;;;;;;;10870:4;;10750:15;;;;10870:4;;10854:21;:36;;;;;10885:5;-1:-1:-1;;;;;10879:11:0;:2;-1:-1:-1;;;;;10879:11:0;;;10854:36;10850:105;;;10930:3;;10916:27;;:6;;10935:7;10916:13;:27::i;:::-;10907:36;;10850:105;10977:5;-1:-1:-1;;;;;10969:13:0;:4;-1:-1:-1;;;;;10969:13:0;;;:36;;;;-1:-1:-1;11000:4:0;;-1:-1:-1;;;;;10986:19:0;;;11000:4;;10986:19;10969:36;10965:106;;;11046:3;;11032:27;;:6;;11051:7;11032:13;:27::i;:::-;11022:37;;10965:106;11081:16;11100;11109:7;11100:6;:16;:::i;:::-;11081:35;-1:-1:-1;11131:12:0;;11127:155;;-1:-1:-1;;;;;11170:5:0;11160:16;;;;;:9;:16;;;;;:28;;11180:8;;11160:16;:28;;11180:8;;11160:28;:::i;:::-;;;;-1:-1:-1;11203:18:0;;-1:-1:-1;11213:8:0;11203:18;;:::i;:::-;;;11254:5;-1:-1:-1;;;;;11241:29:0;11250:2;-1:-1:-1;;;;;11241:29:0;;11261:8;11241:29;;;;1718:25:1;;1706:2;1691:18;;1572:177;11241:29:0;;;;;;;;11127:155;-1:-1:-1;;;;;11294:13:0;;;;;;:9;:13;;;;;:23;;11311:6;;11294:13;:23;;11311:6;;11294:23;:::i;:::-;;;;;;;;11350:2;-1:-1:-1;;;;;11335:26:0;11344:4;-1:-1:-1;;;;;11335:26:0;;11354:6;11335:26;;;;1718:25:1;;1706:2;1691:18;;1572:177;11335:26:0;;;;;;;;-1:-1:-1;11381:4:0;;9392:2001;-1:-1:-1;;;;;;;;9392:2001:0:o;5491:360::-;5557:14;5573;5610:6;-1:-1:-1;;;;;5600:16:0;:6;-1:-1:-1;;;;;5600:16:0;;5596:88;;5636:40;;-1:-1:-1;;;5636:40:0;;-1:-1:-1;;;;;2440:32:1;;5636:40:0;;;2422:51:1;2395:18;;5636:40:0;2276:203:1;5596:88:0;5718:6;-1:-1:-1;;;;;5709:15:0;:6;-1:-1:-1;;;;;5709:15:0;;:53;;5747:6;5755;5709:53;;;5728:6;5736;5709:53;5690:72;;-1:-1:-1;5690:72:0;-1:-1:-1;;;;;;5773:20:0;;5769:79;;5813:27;;-1:-1:-1;;;5813:27:0;;;;;;;;;;;5769:79;5491:360;;;;;:::o;6418:278::-;6482:16;6500;6537:4;-1:-1:-1;;;;;6529:25:0;;6558:1;6529:30;6525:82;;6418:278;;;:::o;6525:82::-;6640:4;-1:-1:-1;;;;;6640:16:0;;:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;;6615:43:0;;;;;;;-1:-1:-1;6418:278:0;-1:-1:-1;;6418:278:0:o;3445:104::-;3494:14;3526:19;3533:1;2073:4;3543:1;3705:1409;3796:14;;;-1:-1:-1;;3899:1:0;3896;3889:20;3935:1;3932;3928:9;3919:18;;3983:5;3979:2;3976:13;3968:5;3964:2;3960:14;3956:34;3947:43;;;4018:11;4009:5;:20;4005:100;;4049:48;;-1:-1:-1;;;4049:48:0;;;;;5392:25:1;;;5433:18;;;5426:34;;;5365:18;;4049:48:0;5218:248:1;4005:100:0;4117:5;4126:1;4117:10;4113:126;;-1:-1:-1;4174:23:0;;;;-1:-1:-1;4218:13:0;;4113:126;4247:17;4317:11;4314:1;4311;4304:25;4783:1;4506;4491:12;;:16;;4476:32;;4558:25;;;;4764:1;:15;;4763:21;;4810;;;4806:25;;4795:36;4857:21;;;4853:25;;4842:36;4904:21;;;4900:25;;4889:36;4951:21;;;4947:25;;4936:36;4998:21;;;4994:25;;4983:36;5045:21;;;5041:25;;;5030:36;;;4458:15;4658;;;4654:29;;;4650:37;;;4361:20;;;4350:32;;;4717:15;;;;4401:21;;4606:19;;;;4708:24;;;;5088:15;;;-1:-1:-1;;;;3705:1409:0:o;14:180:1:-;73:6;126:2;114:9;105:7;101:23;97:32;94:52;;;142:1;139;132:12;94:52;-1:-1:-1;165:23:1;;14:180;-1:-1:-1;14:180:1:o;199:548::-;311:4;340:2;369;358:9;351:21;401:6;395:13;444:6;439:2;428:9;424:18;417:34;469:1;479:140;493:6;490:1;487:13;479:140;;;588:14;;;584:23;;578:30;554:17;;;573:2;550:26;543:66;508:10;;479:140;;;483:3;668:1;663:2;654:6;643:9;639:22;635:31;628:42;738:2;731;727:7;722:2;714:6;710:15;706:29;695:9;691:45;687:54;679:62;;;;199:548;;;;:::o;752:173::-;820:20;;-1:-1:-1;;;;;869:31:1;;859:42;;849:70;;915:1;912;905:12;849:70;752:173;;;:::o;930:254::-;998:6;1006;1059:2;1047:9;1038:7;1034:23;1030:32;1027:52;;;1075:1;1072;1065:12;1027:52;1098:29;1117:9;1098:29;:::i;:::-;1088:39;1174:2;1159:18;;;;1146:32;;-1:-1:-1;;;930:254:1:o;1381:186::-;1440:6;1493:2;1481:9;1472:7;1468:23;1464:32;1461:52;;;1509:1;1506;1499:12;1461:52;1532:29;1551:9;1532:29;:::i;1754:328::-;1831:6;1839;1847;1900:2;1888:9;1879:7;1875:23;1871:32;1868:52;;;1916:1;1913;1906:12;1868:52;1939:29;1958:9;1939:29;:::i;:::-;1929:39;;1987:38;2021:2;2010:9;2006:18;1987:38;:::i;:::-;1977:48;;2072:2;2061:9;2057:18;2044:32;2034:42;;1754:328;;;;;:::o;2714:260::-;2782:6;2790;2843:2;2831:9;2822:7;2818:23;2814:32;2811:52;;;2859:1;2856;2849:12;2811:52;2882:29;2901:9;2882:29;:::i;:::-;2872:39;;2930:38;2964:2;2953:9;2949:18;2930:38;:::i;:::-;2920:48;;2714:260;;;;;:::o;4175:127::-;4236:10;4231:3;4227:20;4224:1;4217:31;4267:4;4264:1;4257:15;4291:4;4288:1;4281:15;4307:128;4374:9;;;4395:11;;;4392:37;;;4409:18;;:::i;4440:125::-;4505:9;;;4526:10;;;4523:36;;;4539:18;;:::i;4570:188::-;4649:13;;-1:-1:-1;;;;;4691:42:1;;4681:53;;4671:81;;4748:1;4745;4738:12;4763:450;4850:6;4858;4866;4919:2;4907:9;4898:7;4894:23;4890:32;4887:52;;;4935:1;4932;4925:12;4887:52;4958:40;4988:9;4958:40;:::i;:::-;4948:50;;5017:49;5062:2;5051:9;5047:18;5017:49;:::i;:::-;5007:59;;5109:2;5098:9;5094:18;5088:25;5153:10;5146:5;5142:22;5135:5;5132:33;5122:61;;5179:1;5176;5169:12;5122:61;5202:5;5192:15;;;4763:450;;;;;:::o

Swarm Source

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